/* =====================================================================
 *  rx-apps.css — кнопка «Сервисы RobX», её панель и кнопка «Войти»
 *  одного вида во всех приложениях RobX (rx-apps.js — там же, зачем и как
 *  копируется в приложения). Только классы rxa-*: стили приложения не
 *  задевает, и от них не зависит.
 * ===================================================================== */

/* ── Кнопка приложений: круг 40 px, четыре квадрата (как в шапке портала) ── */
.rxa-btn {
  width: 40px; height: 40px; flex: none;
  display: inline-flex; align-items: center; justify-content: center;
  padding: 0; margin: 0; border: 0; border-radius: 50%; cursor: pointer;
  color: #475569; background: #fff;
  box-shadow: inset 0 0 0 1.5px rgba(15, 23, 42, .10);
  font: inherit; -webkit-appearance: none; appearance: none;
  transition: transform .12s, color .14s, box-shadow .14s, background .14s;
}
.rxa-btn svg { width: 20px; height: 20px; display: block; }
.rxa-btn:hover, .rxa-btn.is-open { color: #2563eb; box-shadow: inset 0 0 0 1.5px rgba(37, 99, 235, .55); }
.rxa-btn:hover { transform: translateY(-1px); }
.rxa-btn:focus-visible { outline: 2px solid #2563eb; outline-offset: 2px; }
/* На тёмной шапке (симулятор) — тот же круг, но тёмный. */
.rxa-btn.is-dark { color: #cbd5e1; background: rgba(255, 255, 255, .06); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14); }
.rxa-btn.is-dark:hover, .rxa-btn.is-dark.is-open { color: #fff; background: rgba(255, 255, 255, .1); box-shadow: inset 0 0 0 1px rgba(147, 197, 253, .55); }

/* ── «Войти»: синяя «пилюля» 40 px со значком человека ────────────────── */
.rxa-login {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; flex: none;
  height: 40px; padding: 0 18px 0 15px; margin: 0; border: 0; border-radius: 999px;
  background: #2563eb; color: #fff; cursor: pointer; text-decoration: none; white-space: nowrap;
  font-family: inherit; font-size: 14px; font-weight: 600; line-height: 1; letter-spacing: 0;
  box-shadow: 0 8px 20px -8px rgba(37, 99, 235, .6);
  -webkit-appearance: none; appearance: none;
  transition: background .14s, transform .12s, box-shadow .14s;
}
.rxa-login svg { width: 17px; height: 17px; flex: none; display: block; }
.rxa-login:hover { background: #1d4ed8; color: #fff; transform: translateY(-1px); }
.rxa-login:focus-visible { outline: 2px solid #93c5fd; outline-offset: 2px; }
.rxa-login:disabled { opacity: .6; cursor: default; transform: none; }
/* Узкая шапка: остаётся круг со значком. */
.rxa-login.is-compact { width: 40px; padding: 0; }
.rxa-login.is-compact > span { display: none; }

/* ── Панель ──────────────────────────────────────────────────────────── */
.rxa-pop {
  position: fixed; z-index: 100000; box-sizing: border-box;
  width: 324px; max-width: calc(100vw - 16px); max-height: calc(100vh - 24px); overflow-y: auto;
  padding: 12px; border-radius: 20px;
  background: #fff; color: #0f172a; text-align: left;
  border: 1px solid rgba(15, 23, 42, .08);
  box-shadow: 0 26px 60px -18px rgba(30, 50, 110, .38), 0 6px 16px -8px rgba(30, 50, 110, .18);
  font-family: "Montserrat", "Segoe UI", system-ui, -apple-system, Arial, sans-serif;
  font-size: 14px; line-height: 1.3; -webkit-font-smoothing: antialiased;
  animation: rxa-in .2s cubic-bezier(.2, .8, .25, 1.05) both;
}
.rxa-pop *, .rxa-pop *::before, .rxa-pop *::after { box-sizing: border-box; }
@keyframes rxa-in { from { opacity: 0; transform: translateY(-6px) scale(.97); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .rxa-pop { animation: none; } }

.rxa-head { display: flex; align-items: center; justify-content: space-between; padding: 2px 4px 8px; }
.rxa-title { font-size: 15.5px; font-weight: 700; letter-spacing: -.01em; color: #0f172a; }
.rxa-label {
  display: flex; align-items: center; justify-content: space-between;
  padding: 8px 6px 6px; font-size: 10.5px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #94a3b8;
}
.rxa-label-apps { margin-top: 6px; border-top: 1px solid rgba(15, 23, 42, .06); padding-top: 12px; }
.rxa-more {
  width: 28px; height: 28px; margin: -4px -2px -4px 0; display: inline-flex; align-items: center; justify-content: center;
  border-radius: 8px; color: #94a3b8; text-decoration: none;
}
.rxa-more svg { width: 15px; height: 15px; }
.rxa-more:hover { color: #2563eb; background: rgba(37, 99, 235, .08); }

.rxa-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; }
.rxa-tile {
  position: relative; display: flex; flex-direction: column; align-items: center; gap: 6px; min-width: 0;
  padding: 9px 2px 8px; border-radius: 14px; text-align: center; text-decoration: none; color: #0f172a;
  transition: background .13s, transform .12s;
}
.rxa-tile:hover { background: rgba(37, 99, 235, .06); color: #0f172a; transform: translateY(-1px); }
.rxa-tile:focus-visible { outline: 2px solid #2563eb; outline-offset: -2px; }
.rxa-name {
  max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  font-size: 11.5px; font-weight: 600; letter-spacing: -.01em; color: #1e293b;
}
.rxa-orb { width: 42px; height: 42px; display: flex; align-items: center; justify-content: center; line-height: 0; }
.rxa-orb > svg { display: block; }
/* Приложения — их логотипы (круг с кольцом своего цвета). */
.rxa-logo { width: 42px; height: 42px; border-radius: 50%; box-shadow: 0 6px 14px -8px rgba(15, 27, 61, .7); }
.rxa-tile.is-current { background: rgba(37, 99, 235, .08); cursor: default; }
.rxa-tile.is-current::after {
  content: ''; position: absolute; top: 7px; right: calc(50% - 25px); width: 9px; height: 9px; border-radius: 50%;
  background: #22c55e; box-shadow: 0 0 0 2px #fff;
}
/* Разделы RobX Online — цветные квадраты, как в панели портала. */
.rxa-tile.is-robx .rxa-orb {
  border-radius: 12px; color: var(--rxa-tone, #2563eb);
  background: rgba(37, 99, 235, .12);
  background: color-mix(in srgb, var(--rxa-tone, #2563eb) 15%, #fff);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .6);
}
.rxa-tile.is-robx .rxa-orb svg { width: 21px; height: 21px; }
