/* ============================================================
   NEBULA — squared monochrome design system
   ============================================================ */
:root {
  --ink: #f2f2ee;
  --paper: #070707;
  --panel: rgba(12, 12, 12, 0.82);
  --panel-solid: #101010;
  --line: rgba(255, 255, 255, 0.12);
  --line-strong: rgba(255, 255, 255, 0.30);
  --line-bright: rgba(255, 255, 255, 0.65);
  --dim: #7c7c7c;
  --muted: #a8a8a2;
  --danger: #ff776e;
  --ok: #d8ffd6;
  --mono: 'IBM Plex Mono', ui-monospace, monospace;
  --sans: 'Space Grotesk', system-ui, sans-serif;
  --sidebar-w: 236px;
  --page-accent: #d8e7ff;
  --page-accent-rgb: 216, 231, 255;
  --page-glow-rgb: 70, 105, 155;
  --wave-rgb: 216, 231, 255;
}

body[data-page="home"] { --page-accent: #b9d7ff; --page-accent-rgb: 185,215,255; --page-glow-rgb: 49,91,150; --wave-rgb: 185,215,255; }
body[data-page="models"] { --page-accent: #8ce9df; --page-accent-rgb: 140,233,223; --page-glow-rgb: 30,120,111; --wave-rgb: 140,233,223; }
body[data-page="chat"] { --page-accent: #c8afff; --page-accent-rgb: 200,175,255; --page-glow-rgb: 92,61,156; --wave-rgb: 200,175,255; }
body[data-page="keys"] { --page-accent: #ffc878; --page-accent-rgb: 255,200,120; --page-glow-rgb: 142,87,23; --wave-rgb: 255,200,120; }
body[data-page="usage"] { --page-accent: #a7e99d; --page-accent-rgb: 167,233,157; --page-glow-rgb: 55,125,45; --wave-rgb: 167,233,157; }
body[data-page="docs"] { --page-accent: #ffab9c; --page-accent-rgb: 255,171,156; --page-glow-rgb: 145,66,51; --wave-rgb: 255,171,156; }
body[data-page="login"] { --page-accent: #8fbfff; --page-accent-rgb: 143,191,255; --page-glow-rgb: 46,84,148; --wave-rgb: 143,191,255; }
body[data-page="register"] { --page-accent: #f4a8db; --page-accent-rgb: 244,168,219; --page-glow-rgb: 135,51,107; --wave-rgb: 244,168,219; }
body[data-page="plans"] { --page-accent: #e8b4ff; --page-accent-rgb: 232,180,255; --page-glow-rgb: 101,53,145; --wave-rgb: 232,180,255; }
body[data-page="account"] { --page-accent: #8ee6ff; --page-accent-rgb: 142,230,255; --page-glow-rgb: 34,113,142; --wave-rgb: 142,230,255; }
body[data-page="admin"] { --page-accent: #ff6f61; --page-accent-rgb: 255,111,97; --page-glow-rgb: 132,42,34; --wave-rgb: 255,111,97; }
body[data-page="tokenlogin"] { --page-accent: #ffe48f; --page-accent-rgb: 255,228,143; --page-glow-rgb: 135,106,32; --wave-rgb: 255,228,143; }

* { box-sizing: border-box; }
html, body { min-height: 100%; }
html { background: var(--paper); scroll-behavior: smooth; }
body {
  position: relative;
  isolation: isolate;
  margin: 0;
  overflow-x: hidden;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-feature-settings: 'ss01' 1, 'ss03' 1;
  transition: background-color .35s ease, color .35s ease;
}

body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 78% 12%, rgba(var(--page-glow-rgb), .13), transparent 32%),
    radial-gradient(circle at 18% 88%, rgba(var(--page-glow-rgb), .07), transparent 38%);
  transition: background .45s ease;
}

/* faint blueprint grid over the whole page */
body::after {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.02) 1px, transparent 1px);
  background-size: 56px 56px;
  mask-image: linear-gradient(to bottom, black, transparent 92%);
}

#ascii-waves {
  position: fixed;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  display: block;
  opacity: 1;
  pointer-events: none;
}

#app {
  position: relative;
  z-index: 2;
  min-height: 100vh;
}

::selection { background: var(--ink); color: #090909; }
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: #070707; }
::-webkit-scrollbar-thumb { background: #2c2c2c; border: 2px solid #070707; }
::-webkit-scrollbar-thumb:hover { background: #4a4a4a; }

a, button, input, textarea, select { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 1px solid var(--line-bright); outline-offset: 2px; }
button:focus, input:focus, textarea:focus, select:focus { outline: none; }

/* ============================================================
   SHELL / SIDEBAR
   ============================================================ */
.shell { min-height: 100vh; position: relative; }

.sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 30;
  width: var(--sidebar-w);
  display: flex;
  flex-direction: column;
  padding: 22px 16px;
  background: rgba(7,7,7,.86);
  border-right: 1px solid var(--line);
  backdrop-filter: blur(22px);
}

.main-stage { min-height: 100vh; margin-left: var(--sidebar-w); position: relative; }

.page-frame {
  width: min(1120px, 100% - 72px);
  margin: 0 auto;
  padding: 56px 0 88px;
}

/* ============================================================
   TYPE
   ============================================================ */
.eyebrow {
  font: 500 10px/1.4 var(--mono);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--dim);
}
.eyebrow::before { content: '// '; color: #3d3d3d; }

.display-title {
  max-width: 880px;
  margin: 16px 0 18px;
  font-size: clamp(44px, 6.4vw, 92px);
  line-height: .95;
  letter-spacing: -.055em;
  font-weight: 600;
}
.page-title {
  margin: 12px 0 8px;
  font-size: clamp(30px, 3.6vw, 48px);
  line-height: 1.02;
  letter-spacing: -.045em;
  font-weight: 600;
}
.lede { max-width: 660px; color: var(--muted); font-size: 16px; line-height: 1.7; }

/* ============================================================
   PANELS — square frames with corner brackets
   ============================================================ */
.panel {
  position: relative;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 0;
  backdrop-filter: blur(14px);
  transition: border-color .18s;
}
.panel::before,
.panel::after {
  content: '';
  position: absolute;
  width: 8px;
  height: 8px;
  pointer-events: none;
}
.panel::before {
  top: -1px; left: -1px;
  border-top: 1px solid var(--line-bright);
  border-left: 1px solid var(--line-bright);
}
.panel::after {
  bottom: -1px; right: -1px;
  border-bottom: 1px solid var(--line-bright);
  border-right: 1px solid var(--line-bright);
}
.panel:hover { border-color: var(--line-strong); }
.panel:hover::before, .panel:hover::after { border-color: var(--page-accent); }
.hairline { border-color: var(--line) !important; }

/* ============================================================
   CONTROLS
   ============================================================ */
.btn {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 9px 16px;
  border: 1px solid var(--line);
  border-radius: 0;
  font: 500 11px/1 var(--mono);
  letter-spacing: .1em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  transition: background .15s, color .15s, border-color .15s;
  user-select: none;
}
.btn:disabled { opacity: .35; cursor: not-allowed; }
.btn-primary { background: var(--page-accent); color: #090909; border-color: var(--page-accent); }
.btn-primary:hover:not(:disabled) { background: transparent; color: var(--page-accent); border-color: var(--page-accent); }
.btn-secondary { background: rgba(255,255,255,.04); color: var(--ink); }
.btn-secondary:hover { background: rgba(255,255,255,.1); border-color: var(--line-strong); }
.btn-ghost { background: transparent; color: var(--muted); border-color: transparent; }
.btn-ghost:hover { color: var(--ink); border-color: var(--line); }
.btn-danger { color: var(--danger); background: transparent; border-color: rgba(255,119,110,.3); }
.btn-danger:hover { background: rgba(255,119,110,.09); }

.input {
  width: 100%;
  min-height: 42px;
  padding: 10px 12px;
  color: var(--ink);
  background: rgba(0,0,0,.5);
  border: 1px solid var(--line);
  border-radius: 0;
  font: 400 13px/1.45 var(--mono);
  transition: border-color .15s, background .15s;
}
.input:hover { border-color: var(--line-strong); }
.input:focus { border-color: var(--page-accent); background: #0a0a0a; box-shadow: 0 0 0 1px rgba(var(--page-accent-rgb), .12); }
.input::placeholder { color: #4e4e4e; }
select.input {
  appearance: none;
  padding-right: 30px;
  background-image: linear-gradient(45deg, transparent 50%, #888 50%), linear-gradient(135deg, #888 50%, transparent 50%);
  background-position: calc(100% - 16px) 50%, calc(100% - 11px) 50%;
  background-size: 5px 5px;
  background-repeat: no-repeat;
  cursor: pointer;
}

/* ============================================================
   BRAND / NAV
   ============================================================ */
.brand-mark {
  width: 34px; height: 34px; flex: none;
  display: grid; place-items: center;
  color: #080808; background: var(--ink);
  border-radius: 0;
  font: 600 14px var(--mono);
}
.brand-helm { background: transparent; border: 1px solid var(--line); }
.brand-helm img { width: 24px; height: 24px; display: block; }
.brand-word { font-size: 15px; font-weight: 600; letter-spacing: -.02em; }
.brand-sub { font: 400 8px var(--mono); letter-spacing: .16em; text-transform: uppercase; color: var(--dim); margin-top: 2px; }

.nav-item {
  display: flex; align-items: center; gap: 11px;
  min-height: 40px; padding: 9px 11px;
  border: 1px solid transparent; border-radius: 0;
  color: #767676; text-decoration: none;
  font: 500 11px var(--mono);
  letter-spacing: .07em;
  text-transform: uppercase;
  transition: color .14s, background .14s, border-color .14s;
  cursor: pointer;
  background: transparent;
}
.nav-item svg { opacity: .6; flex: none; }
.nav-item:hover { color: var(--ink); background: rgba(255,255,255,.03); }
.nav-item.active { color: var(--page-accent); border-color: rgba(var(--page-accent-rgb), .32); background: rgba(var(--page-accent-rgb), .08); }
.nav-item.active svg { opacity: 1; }
.nav-index { margin-left: auto; font-size: 9px; color: #454545; }

/* ============================================================
   DATA BITS
   ============================================================ */
.metric-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.metric-cell { padding: 14px 0 0; }
.metric-cell + .metric-cell { padding-left: 14px; border-left: 1px solid var(--line); }
.metric-label { color: var(--dim); font: 400 9px var(--mono); text-transform: uppercase; letter-spacing: .14em; }
.metric-value { margin-top: 6px; font: 500 14px var(--mono); }

.tag {
  display: inline-flex;
  padding: 4px 8px;
  border: 1px solid var(--line);
  color: #8a8a8a;
  font: 400 9px var(--mono);
  text-transform: uppercase;
  letter-spacing: .1em;
}
.status-dot { width: 6px; height: 6px; background: currentColor; box-shadow: 0 0 9px currentColor; flex: none; }

/* model catalog rows — one model per line */
.model-list { overflow: hidden; }
.model-group { margin-bottom: 28px; }
.model-group-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; margin: 0 2px 10px; }
.model-group-heading span { font: 500 12px var(--mono); letter-spacing: .14em; text-transform: uppercase; }
.model-group-heading small { color: var(--dim); font: 400 9px var(--mono); text-transform: uppercase; }
.model-row {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) 84px 84px 84px 96px;
  align-items: center;
  gap: 18px;
  padding: 14px 20px;
  transition: background .15s;
}
.model-row:hover { background: rgba(255,255,255,.025); }
.model-row + .model-row { border-top: 1px solid var(--line); }
.model-ico {
  width: 38px; height: 38px;
  display: grid; place-items: center;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.03);
}
.model-ico-img { width: 20px; height: 20px; display: block; filter: invert(1); opacity: .88; }
.model-ico-img + .model-ico-fallback, .model-ico:has(.model-ico-img) .model-ico-fallback { display: none; }
.model-ico-fallback { font: 500 13px var(--mono); color: var(--muted); }
.model-name { margin: 0; font: 500 13.5px var(--mono); letter-spacing: -.01em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.model-owner { margin-top: 4px; font: 400 9px var(--mono); text-transform: uppercase; letter-spacing: .14em; color: var(--dim); }
.model-idx { color: #3f3f3f; }
.model-stat { display: flex; flex-direction: column; gap: 4px; }
.model-status {
  display: flex; align-items: center; justify-content: flex-end; gap: 8px;
  font: 400 9px var(--mono); text-transform: uppercase; letter-spacing: .13em;
}
.status-up { color: var(--ok); }
.status-down { color: #ff8d84; }
.status-unknown { color: #8b8b87; }

body[data-page="models"] .status-up { color: var(--page-accent); }
body[data-page="models"] .model-ico { border-color: rgba(var(--page-accent-rgb), .22); }
body[data-page="models"] .model-row:hover { background: rgba(var(--page-accent-rgb), .045); }
body[data-page="keys"] .tag { border-color: rgba(var(--page-accent-rgb), .28); color: var(--page-accent); }
body[data-page="usage"] .usage-stats .panel:nth-child(2n) { border-color: rgba(var(--page-accent-rgb), .22); }
body[data-page="docs"] .docs-section { border-left: 1px solid rgba(var(--page-accent-rgb), .24); padding-left: 26px; }
body[data-page="chat"] .chat-msg.assistant .chat-msg-body { border-left-color: var(--page-accent); }
body[data-page="home"] .display-title span { color: var(--page-accent); opacity: .72; }
body[data-page="plans"] .display-title span {
  color: transparent;
  background: linear-gradient(90deg, #7ddcff, #bda0ff 35%, #ff93cf 68%, #ffd17d);
  background-clip: text;
}

/* Plans */
.plan-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.plan-card { min-height: 470px; padding: 26px; display: flex; flex-direction: column; overflow: hidden; }
.plan-card h2 { margin: 34px 0 8px; font-size: 30px; letter-spacing: -.045em; }
.plan-card p { color: var(--muted); font-size: 13px; line-height: 1.65; }
.plan-top { display: flex; justify-content: space-between; gap: 8px; }
.current-plan { color: var(--page-accent); border-color: var(--page-accent); }
.plan-price { display: flex; align-items: baseline; gap: 8px; margin-bottom: 14px; }
.plan-price strong { font: 500 46px/1 var(--mono); letter-spacing: -.08em; }
.plan-price span { color: var(--dim); font: 400 10px var(--mono); text-transform: uppercase; }
.plan-features { display: grid; gap: 11px; margin: 20px 0 30px; color: #c8c8c2; font-size: 13px; }
.plan-features span { color: var(--page-accent); margin-right: 10px; }
.plan-card .btn { margin-top: auto; }
.plan-unlimited { border-color: rgba(232,180,255,.4); background: linear-gradient(145deg, rgba(83,37,103,.24), rgba(8,8,8,.9) 55%); }
.plan-unlimited::before { width: 52px; height: 1px; border: 0; background: linear-gradient(90deg, #7ddcff, #ff93cf); }
.payment-strip { display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 24px 26px; margin: 26px 0 70px; }
.payment-strip strong { display: block; margin: 7px 0; font-size: 18px; }
.payment-strip p { margin: 0; color: var(--muted); font-size: 13px; }
.multiplier-section { max-width: 800px; margin: 0 auto; }
.pricing-sources { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.pricing-sources a { padding: 7px 9px; border: 1px solid var(--line); color: var(--muted); font: 400 9px var(--mono); letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.pricing-sources a:hover { color: var(--page-accent); border-color: rgba(var(--page-accent-rgb), .45); }
.multiplier-list { margin-top: 26px; padding: 8px 20px; }
.multiplier-row { display: flex; justify-content: space-between; align-items: center; gap: 20px; min-height: 48px; border-bottom: 1px solid var(--line); }
.multiplier-row:last-child { border-bottom: 0; }
.multiplier-row code { color: #c8c8c2; font: 400 12px var(--mono); }
.multiplier-row strong { color: var(--page-accent); font: 500 13px var(--mono); }

/* Account */
.account-link { border: 1px solid transparent; transition: border-color .15s, background .15s; }
.account-link:hover { border-color: var(--line); background: rgba(255,255,255,.03); }
.account-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 14px; }
.account-summary, .quota-panel, .telegram-panel { padding: 26px; }
.account-summary h2 { margin: 24px 0 10px; font: 500 30px var(--mono); letter-spacing: -.05em; }
.account-summary p, .telegram-panel p { color: var(--muted); font-size: 13px; line-height: 1.6; }
.account-meta { display: flex; gap: 8px; margin-bottom: 20px; }
.account-meta span { padding: 5px 8px; border: 1px solid var(--line); color: var(--page-accent); font: 500 9px var(--mono); text-transform: uppercase; letter-spacing: .1em; }
.quota-panel { grid-row: span 2; }
.quota-window { margin-top: 25px; }
.quota-window > div:first-child { display: flex; justify-content: space-between; gap: 20px; }
.quota-window strong { font: 500 11px var(--mono); text-transform: uppercase; }
.quota-window span, .quota-window small { color: var(--dim); font: 400 10px var(--mono); }
.quota-window small { display: block; margin-top: 8px; }
.quota-track { height: 4px; margin-top: 12px; background: rgba(255,255,255,.08); overflow: hidden; }
.quota-track i { display: block; height: 100%; background: var(--page-accent); box-shadow: 0 0 14px rgba(var(--page-accent-rgb), .55); }
.unlimited-signal { display: flex; align-items: center; gap: 18px; min-height: 160px; color: var(--page-accent); font: 500 70px var(--mono); }
.unlimited-signal span { color: var(--muted); font: 400 13px var(--mono); text-transform: uppercase; letter-spacing: .12em; }
.telegram-panel { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.telegram-panel .btn { flex: none; }

/* Admin */
.admin-toolbar { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; margin-bottom: 16px; }
.admin-tabs { display: flex; gap: 8px; margin-bottom: 20px; }
.admin-user-list { overflow: hidden; }
.admin-user-row { display: grid; grid-template-columns: minmax(150px, 1.25fr) minmax(90px, .45fr) minmax(130px, .75fr) 130px; align-items: center; gap: 12px; padding: 16px 18px; }
.admin-user-row + .admin-user-row { border-top: 1px solid var(--line); }
.admin-user-row > div:first-child { min-width: 0; }
.admin-user-row strong { display: block; overflow: hidden; text-overflow: ellipsis; font: 500 13px var(--mono); }
.admin-user-row span, .admin-user-row small { display: block; margin-top: 5px; color: var(--dim); font: 400 9px var(--mono); text-transform: uppercase; letter-spacing: .08em; }
.admin-plan-current .tag { display: inline-flex; margin: 0; color: var(--page-accent); }
.admin-banned-mark { display: inline-flex; margin-left: 7px; padding: 3px 5px; color: var(--danger); border: 1px solid rgba(255,119,110,.35); font: 500 8px var(--mono); text-transform: uppercase; font-style: normal; }
.admin-user-metrics { display: grid; gap: 2px; }
.admin-user-metrics span { margin: 0; }
.admin-user-dialog-stats { display: flex; flex-wrap: wrap; gap: 6px; margin: -8px 0 18px; }
.admin-user-dialog-stats span { padding: 5px 7px; border: 1px solid var(--line); color: var(--dim); font: 400 9px var(--mono); text-transform: uppercase; }
.admin-model-intro { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 22px; margin-bottom: 14px; }
.admin-model-intro p { margin: 8px 0 0; max-width: 680px; color: var(--muted); font-size: 12px; line-height: 1.6; }
.admin-model-list { overflow: hidden; }
.admin-model-row { display: grid; grid-template-columns: minmax(180px,1.4fr) .55fr .4fr .55fr auto; gap: 16px; align-items: center; padding: 15px 18px; }
.admin-model-row + .admin-model-row { border-top: 1px solid var(--line); }
.admin-model-row strong, .admin-model-row code { display: block; font: 500 11px var(--mono); }
.admin-model-row code { margin-top: 5px; color: var(--dim); font-weight: 400; overflow-wrap: anywhere; }
.model-policy-state { color: var(--ok); font: 500 9px var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.model-policy-state.disabled { color: var(--danger); }
.admin-user-row .input, .admin-user-row .btn { min-height: 36px; font-size: 10px; }
.upstream-add-panel { display: grid; grid-template-columns: minmax(180px, .75fr) minmax(0, 1.25fr); gap: 28px; padding: 22px; margin-bottom: 14px; }
.upstream-add-panel p { margin: 8px 0 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.upstream-add-panel form { display: grid; grid-template-columns: .65fr 1.35fr auto; gap: 8px; align-items: center; }
.upstream-actions { display: flex; justify-content: flex-end; margin: 14px 0; }
.upstream-key-list { overflow: hidden; }
.upstream-key-row { display: grid; grid-template-columns: minmax(170px, 1.3fr) .7fr .55fr .65fr auto; gap: 16px; align-items: center; padding: 15px 18px; }
.upstream-key-row + .upstream-key-row { border-top: 1px solid var(--line); }
.upstream-key-row strong { display: block; margin-top: 4px; font: 500 11px var(--mono); }
.upstream-key-identity code { display: block; margin-top: 5px; color: var(--dim); font: 400 10px var(--mono); }
.upstream-state { color: var(--page-accent); overflow-wrap: anywhere; }
.upstream-key-buttons { display: flex; gap: 6px; justify-content: flex-end; }
.upstream-key-buttons .btn { min-height: 34px; padding: 8px 10px; font-size: 9px; }
.admin-issued-create { display: grid; grid-template-columns: .8fr 1.2fr; gap: 28px; padding: 22px; margin-bottom: 14px; }
.admin-issued-create p { margin-top: 8px; color: var(--muted); font-size: 12px; line-height: 1.6; }
.admin-issued-create form { display: grid; grid-template-columns: 1fr .8fr auto; gap: 8px; align-items: center; }
.issued-key-list { overflow: hidden; }
.issued-key-row { display: grid; grid-template-columns: minmax(170px,1.2fr) .55fr .55fr .8fr auto; gap: 16px; align-items: center; padding: 16px 18px; }
.issued-key-row + .issued-key-row { border-top: 1px solid var(--line); }
.issued-key-row strong, .issued-key-row code { display: block; margin-top: 4px; font: 500 11px var(--mono); }
.issued-key-row code { color: var(--dim); font-weight: 400; }
.issued-budget span { color: var(--dim); font: 400 9px var(--mono); text-transform: uppercase; }
.issued-budget i { display: block; height: 3px; margin-top: 8px; background: rgba(255,255,255,.08); }
.issued-budget b { display: block; height: 100%; background: var(--page-accent); }
.issued-secret { display: block; padding: 14px; border: 1px solid var(--line); background: #050505; overflow-wrap: anywhere; font: 400 12px/1.6 var(--mono); }
.admin-analytics-toolbar { display: flex; align-items: end; justify-content: flex-end; gap: 10px; margin-bottom: 16px; }
.admin-analytics-toolbar label { display: grid; gap: 6px; }
.admin-analytics-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.analytics-rank-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 4px 16px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.analytics-rank-row span { overflow: hidden; text-overflow: ellipsis; font: 400 11px var(--mono); }
.analytics-rank-row strong { color: var(--page-accent); font: 500 11px var(--mono); }
.analytics-rank-row small { grid-column: 1 / -1; color: var(--dim); font: 400 9px var(--mono); }
.plan-manager-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.plan-manager-actions .btn { flex: 1 1 110px; }

/* Language */
.language-switch { position: relative; display: grid; grid-template-columns: 1fr 1fr; width: 100%; height: 34px; margin: auto 0 12px; padding: 3px; border: 1px solid var(--line); }
.language-switch i { position: absolute; top: 3px; bottom: 3px; left: 3px; width: calc(50% - 3px); background: #f4f4f0; transition: transform .28s cubic-bezier(.22,.8,.22,1); }
.language-switch[data-locale="ru"] i { transform: translateX(100%); }
.language-switch button { position: relative; z-index: 1; border: 0; background: transparent; color: var(--muted); font: 500 9px var(--mono); cursor: pointer; transition: color .25s; }
.language-switch[data-locale="en"] button[data-locale="en"], .language-switch[data-locale="ru"] button[data-locale="ru"] { color: #080808; }
.auth-language { position: fixed; top: 22px; right: 22px; width: 112px; z-index: 5; }
.auth-language .language-switch, .token-portal-top .language-switch { margin: 0; }

/* Token portal */
.token-portal-wrap { min-height: 100vh; padding: 22px; }
.token-portal-top { display: flex; justify-content: flex-end; align-items: center; gap: 10px; }
.token-portal-top .language-switch { width: 112px; }
.token-portal { width: min(1040px, calc(100% - 28px)); margin: 8vh auto 0; }
.token-portal > .auth-card { margin: auto; }
.token-dashboard > header { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin-bottom: 28px; }
.token-quota-panel { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 30px; }
.token-quota-panel strong { display: block; margin: 9px 0; color: var(--page-accent); font: 500 clamp(38px,7vw,72px)/1 var(--mono); letter-spacing: -.07em; }
.token-quota-panel small { color: var(--muted); font: 400 11px var(--mono); }
.token-quota-ring { width: 108px; height: 108px; flex: none; display: grid; place-items: center; border-radius: 50%; background: conic-gradient(var(--page-accent) var(--used), rgba(255,255,255,.08) 0); position: relative; }
.token-quota-ring::before { content: ''; position: absolute; inset: 7px; border-radius: inherit; background: var(--bg); }
.token-quota-ring span { position: relative; font: 500 15px var(--mono); }
.token-links { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 42px; }
.token-models > .eyebrow { color: var(--page-accent); }
.token-model-group { margin-bottom: 22px; }
.token-model-group h2 { margin-bottom: 9px; font: 500 12px var(--mono); text-transform: uppercase; letter-spacing: .14em; }
.token-model-group > div { border: 1px solid var(--line); }
.token-model-group article { display: grid; grid-template-columns: minmax(0,1fr) 60px 90px; gap: 14px; align-items: center; min-height: 48px; padding: 10px 14px; }
.token-model-group article + article { border-top: 1px solid var(--line); }
.token-model-group code { font: 400 11px var(--mono); overflow-wrap: anywhere; }
.token-model-group span, .token-model-group i { color: var(--dim); font: 400 9px var(--mono); text-align: right; text-transform: uppercase; font-style: normal; }
.token-model-group i.available { color: var(--ok); }

/* ============================================================
   HOME / HERO
   ============================================================ */
.hero-bg { min-height: 100vh; }
.hero-rule {
  width: 100%; height: 1px; margin: 44px 0;
  background: linear-gradient(90deg, var(--line-bright), var(--line) 30%, transparent 85%);
}
.hero-number { font: 400 10px var(--mono); letter-spacing: .1em; color: #5c5c5c; }

.feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; padding: 1px; background: var(--line); }
.feature-cell { position: relative; min-height: 186px; padding: 26px; background: #0a0a0a; transition: background .2s; }
.feature-cell:hover { background: #0f0f0f; }
.feature-glyph { font: 400 17px var(--mono); color: var(--page-accent); }
.feature-title { margin: 32px 0 8px; font-size: 17px; font-weight: 500; letter-spacing: -.02em; }
.feature-copy { color: #7e7e7e; font-size: 13px; line-height: 1.65; }

/* ============================================================
   CODE / MARKDOWN
   ============================================================ */
.code-shell { position: relative; overflow: hidden; border: 1px solid var(--line); background: rgba(4,4,4,.9); }
.docs-code-block { position: relative; }
.docs-copy-button { position: absolute; z-index: 2; top: 1px; right: 1px; height: 33px; min-width: 72px; padding: 0 13px; border: 0; border-left: 1px solid var(--line); background: rgba(12,12,12,.96); color: var(--muted); font: 500 9px var(--mono); letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }
.docs-copy-button:hover { color: var(--page-accent); background: rgba(var(--page-accent-rgb),.08); }
.code-shell::before {
  content: 'SH \\ OUTPUT';
  display: block;
  padding: 9px 14px;
  border-bottom: 1px solid var(--line);
  color: #4c4c4c;
  font: 500 8px var(--mono);
  letter-spacing: .22em;
}
pre { margin: 0; }
pre code { display: block; padding: 18px; overflow-x: auto; font: 400 12px/1.7 var(--mono); }

.markdown { color: #d9d9d4; line-height: 1.7; font-size: 14.5px; }
.markdown > :first-child { margin-top: 0; }
.markdown > :last-child { margin-bottom: 0; }
.markdown pre { margin: 14px 0; background: #050505 !important; border: 1px solid var(--line); }
.markdown code { font-family: var(--mono); font-size: .88em; background: rgba(255,255,255,.07); padding: 2px 5px; }
.markdown pre code { background: transparent; padding: 14px; }
.markdown p, .markdown ul, .markdown ol { margin: 9px 0; }
.markdown ul, .markdown ol { padding-left: 22px; }
.markdown h1, .markdown h2, .markdown h3 { margin: 18px 0 8px; color: #fff; font-weight: 600; letter-spacing: -.03em; }
.markdown a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.markdown blockquote { margin: 14px 0; padding-left: 14px; border-left: 1px solid var(--line-bright); color: #909090; }
.markdown table { border-collapse: collapse; margin: 12px 0; }
.markdown th, .markdown td { border: 1px solid var(--line); padding: 6px 10px; font-size: 13px; }

/* ============================================================
   CHAT — full-height column, in-flow composer
   ============================================================ */
.chat-shell {
  height: 100vh;
  display: flex;
  flex-direction: column;
}

.chat-top {
  flex: none;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 28px;
  border-bottom: 1px solid var(--line);
  background: rgba(7,7,7,.9);
  backdrop-filter: blur(18px);
}
.chat-top-title { margin-right: auto; min-width: 0; }
.chat-top-title .brand-word { white-space: nowrap; }
.chat-controls { display: flex; align-items: center; gap: 10px; }
.chat-controls .input { min-height: 36px; width: 220px; padding: 7px 30px 7px 10px; font-size: 11px; }
.chat-controls .btn { min-height: 36px; }

.chat-feed {
  flex: 1;
  overflow-y: auto;
  padding: 36px 28px 24px;
}
.chat-thread { width: min(760px, 100%); margin: 0 auto; }

.chat-msg { margin-bottom: 26px; }
.chat-msg-head {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 8px;
  font: 500 9px var(--mono);
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--dim);
}
.chat-msg-head .msg-idx { color: #3f3f3f; }
.chat-msg-copy {
  margin-left: auto;
  border: 0;
  background: transparent;
  color: #565656;
  font: 500 9px var(--mono);
  letter-spacing: .14em;
  cursor: pointer;
  opacity: 0;
  transition: opacity .15s, color .15s;
}
.chat-msg:hover .chat-msg-copy { opacity: 1; }
.chat-msg-copy:hover { color: var(--ink); }

.chat-msg.user .chat-msg-body {
  padding: 13px 16px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.045);
  white-space: pre-wrap;
  font-size: 14.5px;
  line-height: 1.6;
}
.chat-msg.assistant .chat-msg-body {
  padding: 2px 0 2px 16px;
  border-left: 1px solid var(--line-strong);
  min-width: 0;
}

.stream-caret {
  display: inline-block;
  width: 8px; height: 15px;
  margin-left: 3px;
  background: var(--page-accent);
  vertical-align: text-bottom;
  animation: blink 1s steps(1) infinite;
}
@keyframes blink { 50% { opacity: 0; } }

.empty-chat { text-align: center; padding-top: 14vh; }
.empty-chat-glyph {
  font: 400 clamp(28px, 4.4vw, 46px)/1.35 var(--mono);
  color: #2a2a2a;
  letter-spacing: .04em;
  user-select: none;
}

.chat-composer-zone {
  flex: none;
  padding: 14px 28px 20px;
  border-top: 1px solid var(--line);
  background: rgba(7,7,7,.92);
  backdrop-filter: blur(18px);
}
.chat-composer {
  position: relative;
  width: min(760px, 100%);
  margin: 0 auto;
  border: 1px solid var(--line-strong);
  background: rgba(10,10,10,.9);
}
.chat-composer::before,
.chat-composer::after {
  content: '';
  position: absolute;
  width: 8px; height: 8px;
  pointer-events: none;
}
.chat-composer::before { top: -1px; left: -1px; border-top: 1px solid var(--line-bright); border-left: 1px solid var(--line-bright); }
.chat-composer::after { bottom: -1px; right: -1px; border-bottom: 1px solid var(--line-bright); border-right: 1px solid var(--line-bright); }
.chat-composer:focus-within { border-color: var(--line-bright); }
.chat-composer:focus-within { border-color: var(--page-accent); }
.chat-composer textarea {
  display: block;
  width: 100%;
  border: 0;
  background: transparent;
  resize: none;
  min-height: 52px;
  max-height: 200px;
  padding: 13px 14px 4px;
  color: var(--ink);
  font: 400 14px/1.55 var(--sans);
}
.chat-composer textarea::placeholder { color: #4e4e4e; }
.composer-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 8px 8px 14px;
}
.composer-hint { margin-right: auto; font: 400 9px var(--mono); letter-spacing: .12em; text-transform: uppercase; color: #454545; }

/* ============================================================
   AUTH
   ============================================================ */
.auth-wrap { min-height: 100vh; display: grid; place-items: center; padding: 24px; }
.auth-card { width: min(420px, 100%); padding: 34px 32px; }
.auth-logo {
  width: 42px; height: 42px;
  display: grid; place-items: center;
  margin-bottom: 28px;
  border: 1px solid var(--line-strong);
  font: 500 13px var(--mono);
}
.auth-divider { display: flex; align-items: center; gap: 12px; margin: 20px 0; color: var(--dim); font: 400 9px var(--mono); text-transform: uppercase; }
.auth-divider::before, .auth-divider::after { content: ''; flex: 1; height: 1px; background: var(--line); }
.auth-telegram-status { margin-top: 12px; color: var(--page-accent); font: 400 10px var(--mono); text-align: center; }
.registration-trap { position: fixed !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; opacity: 0 !important; pointer-events: none !important; }

/* ============================================================
   MISC
   ============================================================ */
.spinner { width: 14px; height: 14px; border: 1px solid #333; border-top-color: #fff; animation: spin .7s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes fadeIn { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: none; } }
.fade-in { animation: fadeIn .28s ease-out both; }
.pulse { animation: softPulse 2.4s ease-in-out infinite; }
@keyframes softPulse { 50% { opacity: .32; } }

.toast {
  position: fixed; z-index: 100;
  right: 22px; bottom: 22px;
  max-width: 360px;
  padding: 12px 15px;
  background: var(--ink); color: #090909;
  border: 1px solid #fff;
  font: 500 11px var(--mono);
  letter-spacing: .04em;
}
.toast-error { background: #150807; color: #ff978f; border-color: #69231e; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 900px) {
  :root { --sidebar-w: 72px; }
  .sidebar { padding: 18px 10px; align-items: center; }
  .sidebar .brand-copy, .sidebar .nav-label, .sidebar .nav-index, .sidebar .user-copy { display: none; }
  .sidebar .nav-item { justify-content: center; width: 46px; padding: 10px; }
  .sidebar nav { width: 100%; display: flex; flex-direction: column; align-items: center; }
  .sidebar > .language-switch { width: 46px; grid-template-columns: 1fr; height: 62px; }
  .sidebar > .language-switch i { width: calc(100% - 6px); height: calc(50% - 3px); }
  .sidebar > .language-switch[data-locale="ru"] i { transform: translateY(100%); }
  .account-zone .brand-mark { margin: 0 auto; }
  .page-frame { width: min(calc(100% - 40px), 760px); padding: 40px 0 76px; }
  .display-title { font-size: clamp(48px, 9vw, 74px); }
  .feature-grid { grid-template-columns: repeat(3, 1fr); overflow-x: auto; scroll-snap-type: x mandatory; }
  .feature-cell { min-width: 240px; min-height: 164px; scroll-snap-align: start; }
  .home-lower { grid-template-columns: 1fr; }
  .model-row { grid-template-columns: 44px minmax(0, 1fr) 90px; gap: 14px; }
  .model-row .model-stat { display: none; }
  .chat-top { flex-wrap: wrap; padding: 12px 16px; }
  .chat-controls { width: 100%; }
  .chat-controls .input { flex: 1; width: auto; }
  .chat-feed { padding: 24px 16px 16px; }
  .chat-composer-zone { padding: 12px 16px 16px; }
  .usage-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .plan-grid { grid-template-columns: 1fr; }
  .plan-card { min-height: 390px; }
  .admin-user-row { grid-template-columns: minmax(140px, 1fr) 100px 120px; }
  .admin-plan-current { display: none; }
  .admin-model-row { grid-template-columns: minmax(160px,1fr) .5fr .6fr auto; }
  .admin-model-row > div:nth-child(2) { display: none; }
  .upstream-add-panel { grid-template-columns: 1fr; }
  .upstream-add-panel form { grid-template-columns: 1fr 1.5fr auto; }
  .upstream-key-row { grid-template-columns: minmax(160px, 1fr) .65fr .65fr auto; }
  .upstream-key-row > div:nth-child(2) { display: none; }
  .admin-issued-create { grid-template-columns: 1fr; }
  .admin-issued-create form { grid-template-columns: 1fr 1fr auto; }
  .issued-key-row { grid-template-columns: minmax(150px,1fr) .6fr .8fr auto; }
  .issued-key-row > div:nth-child(2) { display: none; }
  .docs-nav { flex-wrap: nowrap !important; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: none; }
  .docs-nav::-webkit-scrollbar { display: none; }
  .docs-nav .btn { flex: none; }
}

@media (max-width: 600px) {
  :root { --sidebar-w: 0px; }
  html { scroll-padding-bottom: 82px; }
  body { padding-bottom: env(safe-area-inset-bottom, 0px); }
  body::before {
    background:
      radial-gradient(circle at 88% 8%, rgba(var(--page-glow-rgb), .18), transparent 38%),
      linear-gradient(to bottom, transparent 50%, rgba(var(--page-glow-rgb), .045));
  }
  .sidebar {
    inset: auto 0 0 0;
    width: auto;
    height: calc(68px + env(safe-area-inset-bottom, 0px));
    padding: 7px 8px env(safe-area-inset-bottom, 0px);
    flex-direction: row;
    border-right: 0;
    border-top: 1px solid var(--line);
    background: rgba(7,7,7,.94);
    backdrop-filter: blur(24px) saturate(125%);
  }
  .sidebar .brand-link, .sidebar .account-zone { display: none; }
  .sidebar > .language-switch { position: fixed; display: grid; top: 10px; right: 10px; width: 104px; height: 34px; margin: 0; grid-template-columns: 1fr 1fr; z-index: 45; background: rgba(7,7,7,.92); backdrop-filter: blur(16px); }
  .sidebar > .language-switch i { width: calc(50% - 3px); height: auto; }
  .sidebar > .language-switch[data-locale="ru"] i { transform: translateX(100%); }
  .sidebar nav {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: row !important;
    justify-content: flex-start;
    align-items: stretch;
    gap: 4px;
    overflow-x: auto;
    scrollbar-width: none;
    scroll-snap-type: x proximity;
  }
  .sidebar nav::-webkit-scrollbar { display: none; }
  .sidebar .nav-item {
    width: auto;
    min-width: 52px;
    flex: 1 0 52px;
    min-height: 52px;
    padding: 8px;
    scroll-snap-align: center;
  }
  .sidebar .nav-item svg { width: 19px; height: 19px; }
  .main-stage { margin-left: 0; padding-bottom: calc(68px + env(safe-area-inset-bottom, 0px)); }
  .page-frame { width: calc(100% - 28px); padding: 28px 0 94px; }
  .page-heading { margin-bottom: 34px !important; }
  .page-heading .btn { width: 100%; margin-top: 4px; }
  .display-title { font-size: clamp(40px, 13.5vw, 58px); line-height: .98; overflow-wrap: anywhere; }
  .page-title { font-size: clamp(32px, 10vw, 42px); }
  .lede { font-size: 14px; line-height: 1.62; }
  .hero-meta .hero-number { display: none; }
  .hero-intro { align-items: flex-start !important; text-align: left !important; padding-top: 56px !important; padding-bottom: 44px !important; }
  .hero-intro .display-title, .hero-intro .lede { margin-left: 0 !important; margin-right: 0 !important; }
  .hero-intro > .flex { justify-content: flex-start !important; width: 100%; }
  .hero-intro .btn { flex: 1; min-width: 138px; }
  .hero-rule { margin: 28px 0; }
  .feature-grid { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; margin-right: -14px; padding-right: 14px; scrollbar-width: none; }
  .feature-grid::-webkit-scrollbar { display: none; }
  .feature-cell { flex: 0 0 82vw; min-width: 0; min-height: 170px; scroll-snap-align: start; }
  .home-lower .panel { min-height: 210px !important; }
  .code-shell { max-width: 100%; }
  pre code { font-size: 10.5px; padding: 14px; }

  /* Models become compact touch-friendly cards. */
  .model-list { background: transparent; border: 0; overflow: visible; }
  .model-list::before, .model-list::after { display: none; }
  .model-row {
    grid-template-columns: 42px minmax(0, 1fr) auto;
    gap: 12px;
    padding: 14px;
    border: 1px solid var(--line) !important;
    background: rgba(8,8,8,.76);
  }
  .model-row + .model-row { margin-top: 9px; }
  .model-ico { width: 40px; height: 40px; }
  .model-name { font-size: 12px; }
  .model-status { align-self: start; font-size: 0; gap: 0; }
  .model-status .status-dot { width: 8px; height: 8px; }

  /* Key records stack without clipping the token. */
  .key-card { padding: 16px !important; }
  .key-row { align-items: stretch !important; flex-direction: column; }
  .key-value { width: 100%; min-width: 0; }
  .key-value > span { flex: 1; min-width: 0; }
  .key-actions { width: 100%; padding-top: 10px; border-top: 1px solid var(--line); }
  .key-actions .btn { flex: 1; min-height: 42px; }

  /* Usage becomes a set of readable records, not a squeezed table. */
  .usage-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .usage-stats .panel { padding: 16px !important; }
  .usage-stats .text-3xl { font-size: 1.55rem; }
  .usage-charts { grid-template-columns: 1fr; }
  .usage-charts .panel, body[data-page="usage"] .page-frame > #usage-content > .panel { padding: 16px !important; }
  .usage-table, .usage-table tbody, .usage-table tr, .usage-table td { display: block; width: 100%; }
  .usage-table thead { display: none; }
  .usage-table tr { padding: 12px 0; border-top: 1px solid var(--line); }
  .usage-table td { display: grid; grid-template-columns: 82px minmax(0, 1fr); gap: 12px; padding: 5px 0 !important; text-align: left !important; overflow-wrap: anywhere; }
  .usage-table td::before { content: attr(data-label); color: var(--dim); font: 500 9px var(--mono); letter-spacing: .12em; text-transform: uppercase; }

  /* Docs use a scrollable chapter rail and mobile endpoint cards. */
  .docs-nav { margin-left: -14px; margin-right: -14px; padding-left: 14px !important; padding-right: 14px !important; top: 0; }
  .docs-nav .btn { min-height: 36px; padding: 8px 11px; font-size: 9px !important; }
  body[data-page="docs"] .docs-section { padding-left: 14px; }
  .docs-section h2 { font-size: 1.65rem; }
  .docs-section ol { list-style-position: outside; padding-left: 20px; }
  .docs-section .code-shell { margin-right: 0; }
  .docs-section [data-copy-code] { min-height: 32px; }
  .endpoint-row { align-items: flex-start !important; flex-wrap: wrap; }
  .endpoint-row > div:nth-child(2) { flex: 1 1 calc(100% - 70px); overflow-wrap: anywhere; }
  .endpoint-row > div:last-child { flex-basis: 100%; padding-left: 0; }

  /* Chat keeps controls and composer above the bottom navigation. */
  .chat-shell { height: calc(100dvh - 68px - env(safe-area-inset-bottom, 0px)); min-height: 480px; }
  .chat-top-title { display: none; }
  .chat-top { display: block; padding: 10px 12px; }
  .chat-controls { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 42px; gap: 7px; }
  .chat-controls .input { width: 100%; min-width: 0; height: 40px; font-size: 10px; }
  .chat-controls .chat-reset { width: 42px; min-width: 42px; padding: 0; font-size: 0; }
  .chat-controls .chat-reset::after { content: '×'; font-size: 20px; line-height: 1; }
  .chat-feed { padding: 20px 14px 10px; }
  .chat-msg { margin-bottom: 22px; }
  .chat-msg.user .chat-msg-body { padding: 12px; }
  .chat-msg.assistant .chat-msg-body { padding-left: 12px; }
  .chat-msg-copy { opacity: 1; }
  .empty-chat { padding-top: 8vh; text-align: left; }
  .empty-chat .lede { margin-left: 0 !important; }
  .empty-chat-glyph { font-size: clamp(20px, 7vw, 32px); white-space: nowrap; overflow: hidden; }
  .chat-composer-zone { padding: 10px 12px 12px; }
  .chat-composer textarea { min-height: 46px; padding: 11px 11px 3px; font-size: 16px; }
  .composer-row { padding: 5px 6px 6px 11px; }
  .composer-hint { font-size: 0; }
  .composer-hint::after { content: 'Shift+Enter / newline'; font-size: 8px; }
  .composer-row .btn { min-height: 38px; }

  /* Auth and overlays respect small screens and on-screen keyboards. */
  .auth-wrap { min-height: 100dvh; align-items: start; padding: 28px 14px 90px; }
  .auth-card { margin-top: max(2vh, 8px); padding: 24px 18px; }
  .auth-card .input { font-size: 16px; }
  .fixed.inset-0 { align-items: flex-end !important; padding: 0 !important; }
  .fixed.inset-0 > .panel { max-width: none !important; width: 100% !important; max-height: 88dvh; overflow-y: auto; padding: 22px 16px calc(22px + env(safe-area-inset-bottom, 0px)) !important; border-left: 0; border-right: 0; border-bottom: 0; }

  .toast { left: 14px; right: 14px; bottom: calc(82px + env(safe-area-inset-bottom, 0px)); max-width: none; }
  .plans-frame .display-title { font-size: clamp(42px, 15vw, 64px); }
  .plan-card { min-height: 360px; padding: 20px; }
  .payment-strip { align-items: stretch; flex-direction: column; padding: 20px; margin-bottom: 48px; }
  .payment-strip .btn { width: 100%; }
  .multiplier-list { padding: 6px 14px; }
  .multiplier-row code { font-size: 10px; overflow-wrap: anywhere; }
  .account-grid { grid-template-columns: 1fr; }
  .quota-panel { grid-row: auto; }
  .telegram-panel { align-items: stretch; flex-direction: column; }
  .admin-frame .page-heading .btn { width: 100%; }
  .admin-toolbar { grid-template-columns: 1fr; }
  .admin-user-list { border: 0; background: transparent; overflow: visible; }
  .admin-user-list::before, .admin-user-list::after { display: none; }
  .admin-user-row { grid-template-columns: minmax(0, 1fr); gap: 10px; padding: 15px; border: 1px solid var(--line) !important; background: rgba(8,8,8,.82); }
  .admin-user-row + .admin-user-row { margin-top: 10px; }
  .admin-user-row > div:first-child { grid-column: 1 / -1; }
  .admin-user-row .admin-manage-user { grid-column: 1 / -1; }
  .admin-tabs { overflow-x: auto; }
  .admin-tabs .btn { flex: none; }
  .upstream-add-panel form { grid-template-columns: 1fr; }
  .upstream-key-row { grid-template-columns: 1fr 1fr; border: 1px solid var(--line) !important; background: rgba(8,8,8,.82); }
  .upstream-key-row + .upstream-key-row { margin-top: 10px; }
  .upstream-key-identity, .upstream-key-buttons { grid-column: 1 / -1; }
  .upstream-key-buttons { justify-content: stretch; }
  .upstream-key-buttons .btn { flex: 1; }
  .admin-issued-create form { grid-template-columns: 1fr; }
  .issued-key-list { border: 0; background: transparent; }
  .issued-key-row { grid-template-columns: 1fr 1fr; border: 1px solid var(--line) !important; background: rgba(8,8,8,.82); }
  .issued-key-row + .issued-key-row { margin-top: 10px; }
  .issued-key-row > div:first-child, .issued-budget, .issued-key-row .upstream-key-buttons { grid-column: 1 / -1; }
  .admin-analytics-grid { grid-template-columns: 1fr; }
  .admin-analytics-toolbar { align-items: stretch; flex-direction: column; }
  .admin-model-intro { align-items: stretch; flex-direction: column; }
  .admin-model-row { grid-template-columns: 1fr 1fr; border: 1px solid var(--line) !important; background: rgba(8,8,8,.82); }
  .admin-model-row + .admin-model-row { margin-top: 10px; }
  .admin-model-row > div:first-child, .admin-model-row .admin-model-toggle { grid-column: 1 / -1; }
  .token-portal-wrap { padding: 14px; }
  .token-portal { width: 100%; margin-top: 42px; padding-bottom: 40px; }
  .token-dashboard > header, .token-quota-panel { align-items: stretch; flex-direction: column; }
  .token-quota-ring { width: 88px; height: 88px; }
  .token-links .btn { flex: 1 1 140px; }
}

@media (max-width: 380px) {
  .sidebar .nav-item { min-width: 48px; flex-basis: 48px; }
  .usage-stats { grid-template-columns: 1fr; }
  .chat-controls { grid-template-columns: 1fr 42px; }
  .chat-controls #chat-key { grid-column: 1 / -1; grid-row: 2; }
  .chat-controls .chat-reset { grid-column: 2; grid-row: 1; }
  .hero-intro .btn { width: 100%; flex-basis: 100%; }
}
