/* ==========================================================================
   Aeronation — Design System v2
   "Parchment & Forest" (light) / "Forest Night" (dark)
   Aviation editorial × cockpit HUD. Warm, natural, no neon.
   ========================================================================== */

@import url('/static/css/fonts.css');

/* ---------- Brand anchors (identical across themes) ---------- */
:root{
  --forest:#2d5240;
  --rust:#b85c3a;
  --gold:#c9923e;
  --hot:#a83d55;

  --font-display:'Unbounded', 'Manrope', sans-serif;
  --font-body:'Manrope', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono:'JetBrains Mono', ui-monospace, SFMono-Regular, monospace;

  --container:1180px;
  --nav-height:76px;
  --section-gap:110px;
  --radius:22px;
  --radius-sm:14px;
  --radius-xs:10px;

  --ease-out:cubic-bezier(0.22, 1, 0.36, 1);
}

/* ---------- Light theme: Parchment & Forest (default) ---------- */
:root,
[data-theme="light"]{
  --bg:#f5f0e8;
  --bg-soft:#ebe4d9;
  --bg-card:rgba(250,245,236,0.97);
  --bg-glass:rgba(245,240,232,0.92);
  --bg-inset:rgba(45,82,64,0.04);

  --text:#1f1a17;
  --text-secondary:rgba(31,26,23,0.68);
  --text-muted:rgba(31,26,23,0.42);
  --text-on-accent:#f5f0e8;

  --accent:#2d5240;
  --accent-bright:#3d6b54;
  --accent-dark:#1f3a2c;
  --secondary:#b85c3a;
  --secondary-bright:#d4754f;
  --warm:#c9923e;

  --border:rgba(31,26,23,0.10);
  --border-hover:rgba(45,82,64,0.35);
  --accent-border:rgba(45,82,64,0.28);
  --secondary-border:rgba(184,92,58,0.3);

  --shadow-card:0 10px 32px rgba(31,26,23,0.08), 0 2px 8px rgba(31,26,23,0.05);
  --shadow-glow:0 30px 90px rgba(45,82,64,0.10);
  --shadow-btn:0 10px 24px rgba(45,82,64,0.28);

  --grad-accent-text:linear-gradient(125deg, #2d5240, #b85c3a, #c9923e);
  --grad-accent-btn:linear-gradient(160deg, #3d6b54, #2d5240 55%, #1f3a2c);
  --grad-accent:linear-gradient(135deg, rgba(45,82,64,0.06), rgba(45,82,64,0.16));
  --grad-horizon:linear-gradient(180deg, transparent, rgba(45,82,64,0.16) 70%, rgba(184,92,58,0.22) 100%);
  --hero-horizon:linear-gradient(90deg, transparent, var(--accent) 35%, var(--secondary) 50%, var(--accent) 65%, transparent);
  --grad-footer-line:linear-gradient(90deg, transparent, var(--accent), var(--secondary), transparent);
  --intro-scan:linear-gradient(90deg, transparent, var(--accent), var(--secondary), transparent);

  --atmo-1: radial-gradient(circle at 12% 8%, rgba(45,82,64,0.10), transparent 55%);
  --atmo-2: radial-gradient(circle at 88% 18%, rgba(184,92,58,0.08), transparent 50%);
  --atmo-3: radial-gradient(circle at 50% 100%, rgba(201,146,62,0.09), transparent 60%);
  --grid-line: rgba(31,26,23,0.05);
  --noise-opacity:0.025;
  --scanline-opacity:0.12;
  --cursor-glow-color: rgba(45,82,64,0.10);

  --radar-border: rgba(31,26,23,0.14);
  --radar-sweep: rgba(45,82,64,0.16);
  --path-stroke: var(--secondary);
  --hero-fl370: rgba(31,26,23,0.06);
  --hud-color: rgba(31,26,23,0.5);
  --marquee-bg: var(--bg-soft);
  --marquee-text: rgba(31,26,23,0.5);

  color-scheme: light;
}

/* ---------- Dark theme: Forest Night ---------- */
[data-theme="dark"]{
  --bg:#0e1210;
  --bg-soft:#141a17;
  --bg-card:rgba(20,26,23,0.9);
  --bg-glass:rgba(14,18,16,0.9);
  --bg-inset:rgba(255,255,255,0.04);

  --text:#ede8e0;
  --text-secondary:rgba(237,232,224,0.66);
  --text-muted:rgba(237,232,224,0.4);
  --text-on-accent:#f5f0e8;

  --accent:#4d8a68;
  --accent-bright:#6aad86;
  --accent-dark:#2d5240;
  --secondary:#d4754f;
  --secondary-bright:#e8926e;
  --warm:#c9923e;

  --border:rgba(255,255,255,0.08);
  --border-hover:rgba(77,138,104,0.4);
  --accent-border:rgba(77,138,104,0.32);
  --secondary-border:rgba(212,117,79,0.32);

  --shadow-card:0 20px 50px rgba(0,0,0,0.45), 0 2px 10px rgba(0,0,0,0.3);
  --shadow-glow:0 40px 110px rgba(77,138,104,0.14);
  --shadow-btn:0 14px 30px rgba(45,82,64,0.5);

  --grad-accent-text:linear-gradient(125deg, #4d8a68, #d4754f, #c9923e);
  --grad-accent-btn:linear-gradient(160deg, #5da87a, #2d5240 55%, #1f3a2c);
  --grad-accent:linear-gradient(135deg, rgba(77,138,104,0.10), rgba(45,82,64,0.24));
  --grad-horizon:linear-gradient(180deg, transparent, rgba(77,138,104,0.22) 70%, rgba(212,117,79,0.26) 100%);
  --hero-horizon:linear-gradient(90deg, transparent, var(--accent) 35%, var(--secondary) 50%, var(--accent) 65%, transparent);
  --grad-footer-line:linear-gradient(90deg, transparent, var(--accent), var(--secondary), transparent);
  --intro-scan:linear-gradient(90deg, transparent, var(--accent), var(--secondary), transparent);

  --atmo-1: radial-gradient(circle at 12% 8%, rgba(77,138,104,0.16), transparent 55%);
  --atmo-2: radial-gradient(circle at 88% 18%, rgba(212,117,79,0.12), transparent 50%);
  --atmo-3: radial-gradient(circle at 50% 100%, rgba(201,146,62,0.10), transparent 60%);
  --grid-line: rgba(255,255,255,0.045);
  --noise-opacity:0.04;
  --scanline-opacity:0.28;
  --cursor-glow-color: rgba(77,138,104,0.16);

  --radar-border: rgba(255,255,255,0.14);
  --radar-sweep: rgba(77,138,104,0.28);
  --path-stroke: var(--secondary);
  --hero-fl370: rgba(255,255,255,0.05);
  --hud-color: rgba(237,232,224,0.45);
  --marquee-bg: var(--bg-soft);
  --marquee-text: rgba(237,232,224,0.42);

  color-scheme: dark;
}

/* ---------- Reset ---------- */
*, *::before, *::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; overflow-x:hidden; }
html, body{ background:var(--bg); }
body{
  margin:0;
  min-height:100vh;
  font-family:var(--font-body);
  color:var(--text);
  font-size:16px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  position:relative;
  transition:background-color .35s var(--ease-out), color .35s var(--ease-out);
}
h1,h2,h3,h4{ margin:0; font-family:var(--font-display); }
p{ margin:0; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; }
img{ max-width:100%; display:block; }
::selection{ background:var(--accent); color:var(--text-on-accent); }

@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}

/* ---------- Atmosphere layers ---------- */
body::before{
  content:"";
  position:fixed; inset:0; z-index:0; pointer-events:none;
  background-image: var(--atmo-1), var(--atmo-2), var(--atmo-3);
}
body::after{
  content:"";
  position:fixed; inset:0; z-index:0; pointer-events:none;
  background-image:
    linear-gradient(var(--grid-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);
  background-size:72px 72px;
  -webkit-mask-image: radial-gradient(ellipse 80% 60% at 50% 0%, #000 40%, transparent 90%);
          mask-image: radial-gradient(ellipse 80% 60% at 50% 0%, #000 40%, transparent 90%);
}
.noise-overlay{
  position:fixed; inset:0; z-index:1; pointer-events:none;
  opacity:var(--noise-opacity);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode:overlay;
}
.scanlines{
  position:fixed; inset:0; z-index:1; pointer-events:none;
  opacity:var(--scanline-opacity);
  background-image:repeating-linear-gradient(0deg, rgba(0,0,0,.35) 0px, rgba(0,0,0,.35) 1px, transparent 1px, transparent 3px);
  mix-blend-mode:overlay;
}
[data-theme="light"] .scanlines{ mix-blend-mode:multiply; opacity:calc(var(--scanline-opacity) * .6); }
.vignette{
  position:fixed; inset:0; z-index:1; pointer-events:none;
  background:radial-gradient(ellipse 120% 90% at 50% 40%, transparent 55%, rgba(0,0,0,.22) 100%);
}
[data-theme="light"] .vignette{ background:radial-gradient(ellipse 120% 90% at 50% 40%, transparent 60%, rgba(31,26,23,.08) 100%); }
.cursor-glow{
  position:fixed; z-index:1; pointer-events:none;
  width:420px; height:420px; border-radius:50%; left:0; top:0;
  transform:translate(-50%,-50%);
  background:radial-gradient(circle, var(--cursor-glow-color), transparent 70%);
  opacity:0; transition:opacity .4s var(--ease-out);
  will-change:transform;
}
@media (hover:none){ .cursor-glow{ display:none; } }

/* ---------- Layout ---------- */
.an-shell{ position:relative; z-index:2; min-height:100vh; display:flex; flex-direction:column; }
.an-container{ width:100%; max-width:var(--container); margin:0 auto; padding:0 40px; }
@media (max-width:640px){
  .an-container{ padding:0 max(20px, env(safe-area-inset-left)) 0 max(20px, env(safe-area-inset-right)); }
}

/* ---------- Navbar ---------- */
.an-nav-wrap{
  position:sticky; top:0; z-index:50;
  height:var(--nav-height);
  border-bottom:1px solid transparent;
  transition:background-color .35s var(--ease-out), border-color .35s var(--ease-out), backdrop-filter .35s var(--ease-out);
}
.an-nav-wrap.is-scrolled{
  background:var(--bg-glass);
  backdrop-filter:blur(24px) saturate(1.4);
  -webkit-backdrop-filter:blur(24px) saturate(1.4);
  border-bottom-color:var(--border);
}
.an-nav{
  height:var(--nav-height);
  display:flex; align-items:center; justify-content:space-between;
  gap:16px;
}
.an-brand{ display:flex; align-items:center; gap:12px; min-width:0; }
.an-brand-link{ display:flex; align-items:center; gap:11px; min-width:0; }
.an-brand-logo{ height:44px; width:auto; max-width:220px; object-fit:contain; flex-shrink:0; display:none; }
.an-brand-logo--light{ display:block; }
[data-theme="dark"] .an-brand-logo--light{ display:none; }
[data-theme="dark"] .an-brand-logo--dark{ display:block; }
.an-menu-toggle{
  display:none; align-items:center; justify-content:center;
  width:40px; height:40px; border-radius:var(--radius-xs);
  border:1px solid var(--border); background:var(--bg-inset); color:var(--text);
  cursor:pointer; flex-shrink:0; outline:none;
}
.an-menu-toggle:focus{ outline:none; }
.an-menu-toggle:focus-visible{ outline:2px solid var(--accent-border); outline-offset:2px; }
.an-nav-actions{ display:flex; align-items:center; gap:10px; }

/* Theme toggle — simple icon swap, no sliding parts to misalign */
.an-theme-toggle{
  position:relative;
  display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px; flex-shrink:0;
  border-radius:var(--radius-xs); border:1px solid var(--border);
  background:var(--bg-inset); color:var(--text); cursor:pointer;
  outline:none;
  transition:border-color .2s var(--ease-out), background-color .2s var(--ease-out);
}
.an-theme-toggle:hover{ border-color:var(--border-hover); }
.an-theme-toggle:focus{ outline:none; }
.an-theme-toggle:focus-visible{ outline:2px solid var(--accent-border); outline-offset:2px; }
.an-theme-toggle svg{
  position:absolute; width:18px; height:18px;
  transition:opacity .25s var(--ease-out), transform .3s var(--ease-out);
}
.an-theme-toggle .icon-sun{ opacity:1; transform:scale(1) rotate(0deg); }
.an-theme-toggle .icon-moon{ opacity:0; transform:scale(.4) rotate(-45deg); }
[data-theme="dark"] .an-theme-toggle .icon-sun{ opacity:0; transform:scale(.4) rotate(45deg); }
[data-theme="dark"] .an-theme-toggle .icon-moon{ opacity:1; transform:scale(1) rotate(0deg); }

/* Nav CTA / buttons */
.btn-primary, .btn-secondary, .btn-ghost, .nav-cta{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--font-body); font-weight:700; font-size:14px;
  border-radius:999px; border:1px solid transparent; cursor:pointer;
  padding:12px 22px; white-space:nowrap;
  transition:transform .22s var(--ease-out), box-shadow .22s var(--ease-out), background-color .22s var(--ease-out), border-color .22s var(--ease-out), color .22s var(--ease-out);
  text-decoration:none;
}
.btn-primary, .nav-cta{
  background:var(--accent); color:var(--text-on-accent);
  box-shadow:var(--shadow-btn);
}
.btn-primary:hover, .nav-cta:hover{ background:var(--accent-bright); transform:translateY(-2px); box-shadow:0 16px 34px rgba(45,82,64,.32); }
.btn-primary:active, .nav-cta:active{ transform:translateY(0); }
.btn-primary:disabled{ opacity:.5; cursor:default; transform:none; }
.btn-secondary{
  background:var(--bg-inset); color:var(--text); border-color:var(--border);
}
.btn-secondary:hover{ border-color:var(--border-hover); background:var(--bg-card); transform:translateY(-1px); }
.btn-ghost{
  background:transparent; color:var(--text-secondary); border-color:transparent; padding:10px 6px;
}
.btn-ghost:hover{ color:var(--accent); }

/* ---------- Sidebar (kept for pages migrated to v2 base) ---------- */
.an-sidebar{
  width:248px; flex-shrink:0;
  padding:22px 14px 22px 0;
}
.an-sidebar-section + .an-sidebar-section{ margin-top:22px; }
.an-sidebar-title{
  font-family:var(--font-mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--text-muted); padding:0 14px; margin-bottom:8px;
}
.an-side-link{
  display:block; padding:10px 14px; border-radius:var(--radius-xs);
  color:var(--text-secondary); font-size:14px; font-weight:500;
  transition:background-color .18s var(--ease-out), color .18s var(--ease-out);
}
.an-side-link:hover{ background:var(--bg-inset); color:var(--text); }
.an-side-link.active{ background:var(--bg-inset); color:var(--accent); font-weight:700; }

@media (max-width:960px){
  .an-menu-toggle{ display:inline-flex; }
  .an-sidebar{
    position:fixed; top:0; left:0; bottom:0; z-index:80;
    width:min(84vw, 300px); background:var(--bg-card); border-right:1px solid var(--border);
    transform:translateX(-100%); transition:transform .3s var(--ease-out);
    overflow-y:auto; padding:calc(var(--nav-height) + 16px) 16px 24px;
    box-shadow:0 0 0 100vmax rgba(0,0,0,0);
  }
  .an-sidebar.open{ transform:translateX(0); box-shadow:20px 0 60px rgba(0,0,0,.25); }
}

/* ---------- Cards ---------- */
.an-card{
  position:relative;
  background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius);
  box-shadow:var(--shadow-card);
  transition:border-color .25s var(--ease-out), transform .25s var(--ease-out), box-shadow .25s var(--ease-out);
}
.an-card::before{
  content:""; position:absolute; top:0; left:16px; right:16px; height:1px;
  background:linear-gradient(90deg, transparent, var(--accent), transparent);
  opacity:.5;
}
.an-card:hover{ border-color:var(--border-hover); }

/* ---------- Flash / alerts ---------- */
.an-flashes{ display:flex; flex-direction:column; gap:10px; margin-bottom:18px; }
.an-flash{
  display:flex; align-items:center; gap:10px;
  padding:12px 16px; border-radius:var(--radius-xs);
  font-size:14px; border:1px solid var(--border); background:var(--bg-inset); color:var(--text);
}
.an-flash--success{ border-color:rgba(45,82,64,.35); background:rgba(45,82,64,.08); }
.an-flash--error, .an-flash--danger{ border-color:rgba(168,61,85,.35); background:rgba(168,61,85,.08); }
.an-flash--warning{ border-color:rgba(201,146,62,.4); background:rgba(201,146,62,.1); }
.an-flash--info{ border-color:var(--accent-border); }

/* Breadcrumbs */
.an-crumbs{
  display:flex; flex-wrap:wrap; align-items:center; gap:6px 8px;
  margin:0 0 14px; font-size:13px; line-height:1.3; color:var(--text-muted);
}
.an-crumbs-link{
  color:var(--text-secondary); text-decoration:none;
  transition:color .15s var(--ease-out);
}
.an-crumbs-link:hover{ color:var(--accent); text-decoration:underline; }
.an-crumbs-sep{ color:var(--text-muted); opacity:.55; user-select:none; }
.an-crumbs-current{ color:var(--text); font-weight:600; }

/* ---------- Overlays ---------- */
.an-overlay{
  position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center;
  padding:20px; background:rgba(14,18,16,.6); backdrop-filter:blur(6px);
}
[data-theme="light"] .an-overlay{ background:rgba(31,26,23,.42); }
.an-overlay-modal{
  width:min(480px, 100%); background:var(--bg-card); border:1px solid var(--border);
  border-radius:var(--radius); padding:28px; box-shadow:var(--shadow-glow);
  text-align:center;
}
.an-overlay-modal h3{ font-size:19px; font-weight:800; margin-bottom:8px; }
.an-overlay-modal p{ font-size:14px; color:var(--text-secondary); margin-bottom:18px; line-height:1.55; }
.an-overlay-badge{ font-size:26px; margin-bottom:10px; }

/* ---------- Notifications & user menu ---------- */
.notif-wrap{ position:relative; }
.notif-badge{
  position:absolute; top:2px; right:2px; min-width:16px; height:16px; padding:0 4px;
  border-radius:999px; background:var(--hot); color:#fff; font-size:10px; font-weight:800;
  display:inline-flex; align-items:center; justify-content:center; line-height:1;
  border:2px solid var(--bg);
}
.notif-dropdown{
  position:absolute; top:calc(100% + 10px); right:0; z-index:70;
  width:min(94vw,360px); max-height:420px; overflow-y:auto;
  background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius-sm);
  box-shadow:var(--shadow-glow);
}
.notif-head{ padding:14px 16px; font-weight:700; font-size:14px; border-bottom:1px solid var(--border); }
.notif-list{ display:flex; flex-direction:column; }
.notif-empty{ padding:18px 16px; color:var(--text-muted); font-size:13.5px; }
.notif-item{ display:flex; align-items:center; gap:10px; padding:12px 16px; border-bottom:1px solid var(--border); position:relative; }
.notif-item:last-child{ border-bottom:none; }
.notif-item:hover{ background:var(--bg-inset); }
.notif-msg{ font-size:13.5px; line-height:1.4; color:var(--text); flex:1; }
.notif-co{ display:flex; align-items:center; gap:6px; font-size:12px; color:var(--text-muted); flex-shrink:0; }
.notif-co img, .notif-co-placeholder{ width:20px; height:20px; border-radius:6px; object-fit:cover; }
.notif-co-placeholder{ display:inline-flex; align-items:center; justify-content:center; background:var(--bg-inset); font-weight:700; font-size:10px; }
.unread-dot{ width:7px; height:7px; border-radius:50%; background:var(--accent); flex-shrink:0; }

.user-menu-wrap{ position:relative; }
.user-menu-trigger{
  display:flex; align-items:center; gap:8px; padding:5px 10px 5px 5px;
  background:var(--bg-inset); border:1px solid var(--border); border-radius:999px; cursor:pointer; color:var(--text);
  transition:border-color .18s var(--ease-out);
}
.user-menu-trigger:hover{ border-color:var(--border-hover); }
.user-menu-avatar{ width:30px; height:30px; border-radius:50%; overflow:hidden; flex-shrink:0; }
.user-menu-avatar img{ width:100%; height:100%; object-fit:cover; display:block; }
.user-menu-avatar-placeholder{
  width:100%; height:100%; display:flex; align-items:center; justify-content:center;
  background:var(--grad-accent-btn); color:var(--text-on-accent); font-weight:800; font-size:13px;
  border-radius:50%;
}
.user-menu-name{ font-size:13.5px; font-weight:600; max-width:120px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.user-menu-chevron{ display:flex; opacity:.6; transition:transform .18s var(--ease-out); }
.user-menu-trigger[aria-expanded="true"] .user-menu-chevron{ transform:rotate(180deg); }
.user-menu-dropdown{
  position:absolute; top:calc(100% + 10px); right:0; z-index:70; min-width:190px;
  background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius-sm);
  box-shadow:var(--shadow-glow); padding:6px; flex-direction:column; gap:2px;
}
.user-menu-dropdown[hidden]{ display:none !important; }
.user-menu-dropdown:not([hidden]){ display:flex; }
.user-menu-item{ display:flex; align-items:center; gap:9px; padding:10px 12px; border-radius:var(--radius-xs); font-size:13.5px; font-weight:500; color:var(--text); }
.user-menu-item:hover{ background:var(--bg-inset); }
.user-menu-item--logout{ color:var(--hot); }

/* ---------- Announcements ---------- */
.announcement{ margin-bottom:18px; padding:16px 18px; border-radius:var(--radius-sm); background:var(--bg-inset); border:1px solid var(--border); border-left:3px solid var(--warm); }
.announcement-header{ display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.announcement-title{ font-family:var(--font-display); font-weight:700; font-size:15px; }
.announcement-message{ margin-top:6px; font-size:13.5px; color:var(--text-secondary); line-height:1.55; }
.announcement-actions{ margin-top:10px; }
.announcement-button{ display:inline-flex; padding:8px 16px; border-radius:999px; background:var(--accent); color:var(--text-on-accent); font-size:13px; font-weight:700; }
.announcement-close{ background:none; border:none; color:var(--text-muted); font-size:18px; line-height:1; cursor:pointer; flex-shrink:0; }
.announcement-close:hover{ color:var(--text); }

/* ---------- Footer ---------- */
.an-footer{ position:relative; z-index:2; margin-top:auto; padding:28px 0 32px; }
.an-footer::before{
  content:""; display:block; height:1px; margin-bottom:24px;
  background:var(--grad-footer-line); opacity:.6;
}
.an-footer-inner{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.an-footer-note{ font-family:var(--font-mono); font-size:11.5px; color:var(--text-muted); letter-spacing:.02em; }
.an-lang-switcher select{
  appearance:none; -webkit-appearance:none;
  background:var(--bg-inset); border:1px solid var(--border); color:var(--text);
  font-family:var(--font-body); font-size:13px; font-weight:600;
  padding:8px 30px 8px 14px; border-radius:999px; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%231f1a17' stroke-width='1.4' fill='none' fill-rule='evenodd'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 12px center;
}
[data-theme="dark"] .an-lang-switcher select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23ede8e0' stroke-width='1.4' fill='none' fill-rule='evenodd'/%3E%3C/svg%3E");
}

/* ---------- Impersonate banner ---------- */
.an-impersonate{
  position:relative; z-index:60;
  background:var(--hot); color:#fdf3f0; font-size:13px; font-weight:600;
  padding:9px 16px; text-align:center;
}
.an-impersonate a{ text-decoration:underline; font-weight:800; margin-left:8px; }

/* ---------- Reveal-on-scroll ---------- */
.an-reveal{ opacity:0; transform:translateY(18px); transition:opacity .6s var(--ease-out), transform .6s var(--ease-out); }
.an-reveal.is-visible{ opacity:1; transform:none; }

/* ---------- sr-only ---------- */
.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* ==========================================================================
   Auth / Login page
   ========================================================================== */
.auth-screen{
  flex:1; display:flex; align-items:center; justify-content:center;
  padding:44px 0 56px;
}
.auth-screen-inner{
  width:100%; max-width:1080px;
  display:grid; grid-template-columns:1.1fr 1fr; grid-template-rows:minmax(600px, auto);
  background:var(--bg); border:1px solid var(--border); border-radius:var(--radius);
  box-shadow:var(--shadow-glow); overflow:hidden;
}
.auth-side{
  position:relative; overflow:hidden;
  display:flex; flex-direction:column; justify-content:center;
  padding:48px 56px;
  background:var(--bg-soft);
  border-right:1px solid var(--border);
}
.auth-side::before{
  content:""; position:absolute; inset:0; z-index:0;
  background:var(--grad-horizon); opacity:.4; pointer-events:none;
}
.auth-side::after{
  content:""; position:absolute; left:0; right:0; bottom:38%; height:1px; z-index:0;
  background:var(--hero-horizon); opacity:.3; pointer-events:none;
}
.auth-side-eyebrow{
  position:relative; z-index:1;
  font-family:var(--font-body); font-weight:700; font-size:13px; letter-spacing:.02em;
  color:var(--accent);
}
.auth-side-title{
  position:relative; z-index:1;
  font-family:var(--font-display); font-weight:800;
  font-size:clamp(30px, 3.6vw, 46px); line-height:1.12; letter-spacing:-.02em;
  color:var(--text); margin-top:14px; max-width:480px;
}
.auth-side-lead{
  position:relative; z-index:1;
  margin-top:18px; max-width:420px; font-size:16px; line-height:1.65; color:var(--text-secondary);
}

.auth-form-side{
  display:flex; align-items:center; justify-content:center;
  padding:56px 40px;
}
.auth-card{
  width:100%; max-width:400px;
  background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius);
  box-shadow:var(--shadow-card);
  padding:40px 34px;
  position:relative;
}
.auth-card-eyebrow{
  font-family:var(--font-mono); font-size:10.5px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--text-muted); margin-bottom:10px;
}
.auth-card h1{
  font-family:var(--font-display); font-weight:800; font-size:26px; letter-spacing:-.01em;
  color:var(--text); margin-bottom:8px;
}
.auth-card-sub{ font-size:14px; color:var(--text-secondary); margin-bottom:28px; line-height:1.5; }

.vkid-primary-btn{
  display:flex; align-items:center; justify-content:center; gap:10px;
  width:100%; box-sizing:border-box;
  height:var(--oauth-btn-h, 44px); min-height:var(--oauth-btn-h, 44px);
  padding:0 16px;
  background:var(--grad-accent-btn); color:var(--text-on-accent);
  border:none; border-radius:var(--oauth-btn-radius, 8px);
  font-family:var(--font-body); font-size:16px; font-weight:600;
  cursor:pointer; text-decoration:none; box-shadow:none;
  transition:opacity .15s ease, background-color .15s ease;
}
.vkid-primary-btn:hover{ opacity:.92; }
.vkid-primary-btn:active{ opacity:.8; }
.vkid-primary-btn:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; }
.vkid-primary-btn--vk{
  background:#0077FF; color:#fff;
}
.vkid-primary-btn--vk:hover{
  background:#0077FF;
  opacity:.92;
}
.vkid-primary-btn--vk:focus-visible{ outline-color:#0077FF; }
.vkid-primary-btn__icon{ display:inline-flex; flex-shrink:0; width:24px; height:24px; }
.vkid-primary-btn__icon svg{ display:block; width:100%; height:100%; }
.vkid-primary-btn__text{ white-space:nowrap; }

/* Yandex ID OAuth button — official main button (colors / content / border fixed by guideline) */
.ya-id-btn{
  display:flex; align-items:center; justify-content:center; gap:10px;
  width:100%; box-sizing:border-box;
  margin:0; padding:0 16px;
  height:var(--oauth-btn-h, 44px); min-height:var(--oauth-btn-h, 44px);
  border:0; border-radius:var(--oauth-btn-radius, 8px);
  font-family:Arial, Helvetica, sans-serif;
  font-weight:500; font-size:16px; line-height:20px;
  text-decoration:none; white-space:nowrap;
  cursor:pointer;
  transition:opacity .15s ease;
  -webkit-tap-highlight-color:transparent;
}
.ya-id-btn:hover{ opacity:.85; }
.ya-id-btn:active{ opacity:.7; }
.ya-id-btn:focus-visible{ outline:2px solid #fc3f1d; outline-offset:3px; }
.ya-id-btn--main{
  background:#000; color:#fff;
  box-shadow:none;
}
[data-theme="dark"] .ya-id-btn--main{
  background:#fff; color:#000;
}
.ya-id-btn__logo{
  display:inline-flex; flex-shrink:0;
  width:24px; height:24px;
  color:inherit;
}
.ya-id-btn__logo svg{ display:block; width:100%; height:100%; }
.ya-id-btn__text{ white-space:nowrap; }

/* Google Sign-In — white/dark fill, no border (same footprint as other OAuth buttons) */
.google-id-btn{
  display:flex; align-items:center; justify-content:center; gap:10px;
  width:100%; box-sizing:border-box;
  margin:0; padding:0 16px;
  height:var(--oauth-btn-h, 44px); min-height:var(--oauth-btn-h, 44px);
  border:0; border-radius:var(--oauth-btn-radius, 8px);
  background:#fff; color:#1f1f1f;
  font-family:'Roboto', Arial, Helvetica, sans-serif;
  font-weight:500; font-size:16px; line-height:20px;
  text-decoration:none; white-space:nowrap;
  cursor:pointer;
  transition:background-color .15s ease, box-shadow .15s ease;
  -webkit-tap-highlight-color:transparent;
}
.google-id-btn:hover{ background:#f8f9fa; box-shadow:0 1px 2px rgba(60,64,67,.3), 0 1px 3px 1px rgba(60,64,67,.15); }
.google-id-btn:active{ background:#f1f3f4; box-shadow:0 1px 2px rgba(60,64,67,.3), 0 2px 6px 2px rgba(60,64,67,.15); }
.google-id-btn:focus-visible{ outline:2px solid #4285f4; outline-offset:3px; }
[data-theme="dark"] .google-id-btn{
  background:#131314; color:#e3e3e3;
}
[data-theme="dark"] .google-id-btn:hover{ background:#1e1f20; }
[data-theme="dark"] .google-id-btn:active{ background:#2a2b2c; }
.google-id-btn__logo{
  display:inline-flex; flex-shrink:0;
  width:20px; height:20px;
}
.google-id-btn__logo svg{ display:block; width:100%; height:100%; }
.google-id-btn__text{ white-space:nowrap; }

/* Discord OAuth — Blurple brand button */
.discord-id-btn{
  display:flex; align-items:center; justify-content:center; gap:10px;
  width:100%; box-sizing:border-box;
  margin:0; padding:0 16px;
  height:var(--oauth-btn-h, 44px); min-height:var(--oauth-btn-h, 44px);
  border:0; border-radius:var(--oauth-btn-radius, 8px);
  background:#5865F2; color:#fff;
  font-family:var(--font-body); font-weight:600; font-size:16px; line-height:20px;
  text-decoration:none; white-space:nowrap;
  cursor:pointer;
  transition:opacity .15s ease, background-color .15s ease;
  -webkit-tap-highlight-color:transparent;
}
.discord-id-btn:hover{ background:#4752c4; }
.discord-id-btn:active{ background:#3c45a5; }
.discord-id-btn:focus-visible{ outline:2px solid #5865F2; outline-offset:3px; }
.discord-id-btn__logo{
  display:inline-flex; flex-shrink:0;
  width:24px; height:24px; color:inherit;
}
.discord-id-btn__logo svg{ display:block; width:100%; height:100%; }
.discord-id-btn__text{ white-space:nowrap; }

/* Facebook Login — brand blue */
.facebook-id-btn{
  display:flex; align-items:center; justify-content:center; gap:10px;
  width:100%; box-sizing:border-box;
  margin:0; padding:0 16px;
  height:var(--oauth-btn-h, 44px); min-height:var(--oauth-btn-h, 44px);
  border:0; border-radius:var(--oauth-btn-radius, 8px);
  background:#1877F2; color:#fff;
  font-family:var(--font-body); font-weight:600; font-size:16px; line-height:20px;
  text-decoration:none; white-space:nowrap;
  cursor:pointer;
  transition:opacity .15s ease, background-color .15s ease;
  -webkit-tap-highlight-color:transparent;
}
.facebook-id-btn:hover{ background:#166fe5; }
.facebook-id-btn:active{ background:#1464d0; }
.facebook-id-btn:focus-visible{ outline:2px solid #1877F2; outline-offset:3px; }
.facebook-id-btn__logo{
  display:inline-flex; flex-shrink:0;
  width:24px; height:24px; color:inherit;
}
.facebook-id-btn__logo svg{ display:block; width:100%; height:100%; }
.facebook-id-btn__text{ white-space:nowrap; }

.auth-oauth-stack{
  --oauth-btn-h:44px;   /* Yandex M + VK medium / SDK 44 */
  --oauth-btn-radius:8px; /* allowed by both SDKs */
  display:flex; flex-direction:column; gap:10px;
}

.login-sep{ display:flex; align-items:center; gap:12px; margin:24px 0 18px; color:var(--text-muted); font-size:12.5px; font-family:var(--font-mono); letter-spacing:.08em; text-transform:uppercase; }
.login-sep::before, .login-sep::after{ content:""; flex:1; height:1px; background:var(--border); }

.login-alt{ margin-top:2px; }
.login-form-toggle{
  display:inline-flex; align-items:center; gap:6px;
  width:100%; justify-content:center;
  padding:11px 0; background:none; border:1px dashed var(--border); border-radius:999px;
  color:var(--text-secondary); font-size:13.5px; font-weight:600; cursor:pointer;
  transition:border-color .2s var(--ease-out), color .2s var(--ease-out);
}
.login-form-toggle:hover{ color:var(--accent); border-color:var(--border-hover); }
.login-form-wrap{ margin-top:20px; padding-top:20px; border-top:1px solid var(--border); text-align:left; }
.login-form label{ display:block; font-size:13px; font-weight:600; color:var(--text-secondary); margin-bottom:6px; }
.login-form input{
  width:100%; padding:12px 14px; margin:0 0 14px; border:1px solid var(--border); border-radius:var(--radius-xs);
  background:var(--bg-inset); color:var(--text); font-size:14.5px; font-family:var(--font-body);
  transition:border-color .18s var(--ease-out), background-color .18s var(--ease-out);
}
.login-form input:focus{ outline:none; border-color:var(--accent-border); background:var(--bg-card); }
.login-form .btn-primary{ width:100%; padding:14px; margin-top:6px; }
.login-form--primary .btn-primary{ margin-top:10px; }
.login-register-btn{ width:100%; margin-top:12px; }

.pg-flashes{ margin-bottom:16px; }
.pg-flash{ padding:11px 14px; border-radius:var(--radius-xs); font-size:13.5px; margin-bottom:8px; border:1px solid var(--border); background:var(--bg-inset); }
.pg-flash--success{ border-color:rgba(45,82,64,.35); background:rgba(45,82,64,.08); }
.pg-flash--error, .pg-flash--danger{ border-color:rgba(168,61,85,.35); background:rgba(168,61,85,.08); color:var(--hot); }
.pg-flash--warning{ border-color:rgba(201,146,62,.4); background:rgba(201,146,62,.1); }

#register-modal.hide{ display:none; }
#register-modal{
  position:fixed; inset:0; z-index:300; display:flex; align-items:center; justify-content:center;
  padding:20px; background:rgba(14,18,16,.6); backdrop-filter:blur(6px);
}
[data-theme="light"] #register-modal{ background:rgba(31,26,23,.42); }
#register-modal .modal-content{
  width:min(440px, 100%); background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius);
  padding:30px; box-shadow:var(--shadow-glow); text-align:left;
}
#register-modal h3{ font-family:var(--font-display); font-size:20px; font-weight:800; margin-bottom:12px; }
#register-modal p{ font-size:14px; color:var(--text-secondary); line-height:1.55; margin-bottom:14px; }
#register-modal .btn-primary{ margin-top:4px; }
#register-modal .btn-ghost{ margin-top:10px; display:inline-flex; }

@media (max-width:960px){
  .an-shell:has(.auth-screen){
    min-height:100dvh;
  }
  .an-shell:has(.auth-screen) main.an-container{
    flex:1;
    width:100%;
    max-width:none;
    padding:0;
  }
  .an-shell:has(.auth-screen) main.an-container > div,
  .an-shell:has(.auth-screen) main.an-container section{
    flex:1;
    display:flex;
    flex-direction:column;
    min-height:0;
  }
  .an-shell:has(.auth-screen) .an-footer{
    padding:12px 0 max(16px, env(safe-area-inset-bottom));
  }
  .an-shell:has(.auth-screen) .an-footer::before{ display:none; }
  .an-shell:has(.auth-screen) .an-footer-inner{
    justify-content:center;
    gap:10px;
  }

  .auth-screen{
    flex:1;
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    margin:0;
    padding:16px max(22px, env(safe-area-inset-left)) max(20px, env(safe-area-inset-bottom)) max(22px, env(safe-area-inset-right));
    min-height:0;
  }
  .auth-screen-inner{
    display:block;
    width:100%;
    max-width:380px;
    margin:0 auto;
    border:none;
    border-radius:0;
    box-shadow:none;
    background:transparent;
  }
  .auth-side{
    position:static;
    overflow:visible;
    background:transparent;
    border:none;
    padding:0 0 28px;
    text-align:center;
  }
  .auth-side::before,
  .auth-side::after{ display:none; }
  .auth-side-eyebrow{
    font-size:11px;
    letter-spacing:.06em;
    text-transform:uppercase;
  }
  .auth-side-title{
    margin-top:10px;
    font-size:clamp(24px, 7vw, 32px);
    line-height:1.15;
    max-width:none;
    text-wrap:balance;
  }
  .auth-side-lead{
    margin:12px auto 0;
    max-width:320px;
    font-size:14.5px;
    line-height:1.55;
    color:var(--text-secondary);
  }
  .auth-form-side{
    padding:0;
    align-items:stretch;
    justify-content:flex-start;
  }
  .auth-card{
    width:100%;
    max-width:none;
    padding:0;
    background:transparent;
    border:none;
    border-radius:0;
    box-shadow:none;
  }
  .auth-card h1{ display:none; }
  .auth-card-sub{
    text-align:center;
    font-size:14px;
    line-height:1.55;
    margin:0 0 24px;
    color:var(--text-secondary);
  }
  .login-form-wrap,
  .login-form{ text-align:left; }
}
@media (max-width:480px){
  :root{ --nav-height:64px; }
  .an-brand-logo{ height:36px; max-width:168px; }

  .auth-screen{
    padding:12px max(18px, env(safe-area-inset-left)) max(16px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-right));
  }
  .auth-screen-inner{ max-width:none; }
  .auth-side{ padding-bottom:22px; }
  .auth-side-title{ font-size:23px; }
  .auth-side-lead{ font-size:13.5px; max-width:280px; }
  .auth-card-sub{ font-size:13px; margin-bottom:20px; }

  .login-sep{ margin:18px 0 14px; }
}

/* ==========================================================================
   Panel / Dashboard (/panel)
   ========================================================================== */
.pnl{
  display:flex; flex-direction:column; gap:20px;
  padding-bottom:8px;
}

/* Hero */
.pnl-hero{ padding:28px 30px 26px; overflow:hidden; }
.pnl-hero::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:1px;
  background:var(--hero-horizon); opacity:.45; pointer-events:none;
}
.pnl-hero-grid{
  display:grid; grid-template-columns:1fr auto; gap:24px 28px; align-items:center;
}
.pnl-identity{ display:flex; align-items:center; gap:22px; min-width:0; }
.pnl-avatar-wrap{ position:relative; flex-shrink:0; }
.pnl-avatar-ring{
  width:88px; height:88px; border-radius:50%; padding:3px;
  background:linear-gradient(145deg, var(--accent), var(--secondary) 55%, var(--warm));
  box-shadow:0 12px 32px rgba(45,82,64,.22);
}
.pnl-avatar, .pnl-avatar-ph{
  display:block; width:100%; height:100%; border-radius:50%; object-fit:cover;
  background:var(--bg-soft);
}
.pnl-avatar-ph{
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:800; font-size:32px; color:var(--accent);
}
.pnl-staff-badge{
  position:absolute; right:-4px; bottom:-2px; width:28px; height:28px;
  border-radius:50%; border:2px solid var(--bg-card); background:var(--bg-card);
  object-fit:contain;
}
.pnl-identity-body{ min-width:0; }
.pnl-eyebrow{
  font-family:var(--font-mono); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--text-muted); margin-bottom:6px;
}
.pnl-name{
  font-family:var(--font-display); font-weight:800; font-size:clamp(22px, 3vw, 30px);
  line-height:1.12; letter-spacing:-.02em; color:var(--text);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.pnl-clock{
  margin-top:6px; font-size:13px; color:var(--text-secondary);
  font-family:var(--font-mono); letter-spacing:.02em;
}
.pnl-clock-label{
  display:inline-block; margin-right:6px; padding:2px 6px; border-radius:4px;
  font-size:10px; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  background:var(--bg-inset); color:var(--accent);
}
.pnl-tags{ display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.pnl-tag{
  display:inline-flex; align-items:center; padding:5px 11px; border-radius:999px;
  font-size:12px; font-weight:600; border:1px solid var(--border); background:var(--bg-inset);
  color:var(--text-secondary); max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.pnl-tag--ar{
  border-color:rgba(201,146,62,.35); background:rgba(201,146,62,.12); color:var(--warm);
  font-family:var(--font-mono); letter-spacing:.04em;
}
[data-theme="dark"] .pnl-tag--ar{ color:#e8b85a; }
.pnl-tag--co{ border-color:var(--accent-border); color:var(--accent); }
.pnl-tag--muted{ font-style:normal; opacity:.85; }

.pnl-hero-cta{ display:flex; align-items:center; justify-content:flex-end; }
.pnl-upload-btn{
  display:inline-flex; align-items:center; gap:14px;
  padding:14px 22px 14px 16px; border-radius:var(--radius-sm);
  background:var(--grad-accent-btn); color:var(--text-on-accent);
  text-decoration:none; box-shadow:var(--shadow-btn);
  transition:transform .22s var(--ease-out), box-shadow .22s var(--ease-out);
  min-width:min(260px, 100%);
}
.pnl-upload-btn:hover{ transform:translateY(-2px); box-shadow:0 18px 38px rgba(45,82,64,.34); }
.pnl-upload-btn:active{ transform:translateY(0); }
.pnl-upload-icon{
  display:flex; align-items:center; justify-content:center;
  width:42px; height:42px; border-radius:12px; flex-shrink:0;
  background:rgba(255,255,255,.14);
}
.pnl-upload-icon svg{ width:22px; height:22px; }
.pnl-upload-text{ display:flex; flex-direction:column; gap:2px; text-align:left; }
.pnl-upload-text strong{ font-size:15px; font-weight:800; line-height:1.2; }
.pnl-upload-text small{ font-size:12px; opacity:.82; font-weight:500; }

/* Stats */
.pnl-stats{
  display:grid; grid-template-columns:repeat(4, 1fr); gap:14px;
}
.pnl-stat{
  padding:18px 20px 16px; display:flex; flex-direction:column; gap:8px;
  transition:transform .25s var(--ease-out), border-color .25s var(--ease-out);
}
.pnl-stat:hover{ transform:translateY(-2px); border-color:var(--border-hover); }
.pnl-stat-label{
  font-family:var(--font-mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--text-muted);
}
.pnl-stat-value{
  font-family:var(--font-display); font-weight:800; font-size:28px; line-height:1;
  color:var(--text); letter-spacing:-.02em;
}
.pnl-stat-value em{
  font-style:normal; font-size:.55em; font-weight:700; color:var(--text-muted);
  margin-left:2px; font-family:var(--font-body);
}
.pnl-stat--alert .pnl-stat-value{ color:var(--secondary); }

/* Leader alert */
.pnl-alert{
  display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  padding:14px 18px; border-radius:var(--radius-sm);
  border:1px solid rgba(201,146,62,.35); background:rgba(201,146,62,.1);
  font-size:14px; color:var(--text-secondary);
}
.pnl-alert-dot{
  width:8px; height:8px; border-radius:50%; flex-shrink:0;
  background:var(--warm); box-shadow:0 0 0 4px rgba(201,146,62,.2);
  animation:pnl-pulse 2s ease-in-out infinite;
}
@keyframes pnl-pulse{
  0%,100%{ opacity:1; }
  50%{ opacity:.5; }
}
.pnl-alert p{ flex:1; min-width:0; margin:0; }
.pnl-alert a{
  font-size:13px; font-weight:700; color:var(--accent); text-decoration:none;
  padding:6px 14px; border-radius:999px; border:1px solid var(--accent-border);
  background:var(--bg-card); white-space:nowrap;
}
.pnl-alert a:hover{ background:var(--bg-inset); }

/* Section */
.pnl-section-head{ margin-bottom:14px; }
.pnl-section-head h2{
  font-family:var(--font-display); font-weight:800; font-size:17px; letter-spacing:-.01em;
  color:var(--text);
}

/* Quick actions */
.pnl-actions{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:12px;
}
.pnl-action{
  display:flex; align-items:flex-start; gap:12px; padding:16px 16px 14px;
  text-decoration:none; color:inherit; position:relative; overflow:hidden;
  transition:transform .22s var(--ease-out), border-color .22s var(--ease-out), box-shadow .22s var(--ease-out);
}
.pnl-action:hover{ transform:translateY(-2px); border-color:var(--border-hover); box-shadow:var(--shadow-card); }
.pnl-action-icon{
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  width:38px; height:38px; border-radius:11px;
  background:var(--bg-inset); color:var(--accent);
}
.pnl-action-icon svg{ width:18px; height:18px; }
.pnl-action-body{ display:flex; flex-direction:column; gap:3px; min-width:0; }
.pnl-action-body strong{ font-size:14px; font-weight:700; color:var(--text); line-height:1.25; }
.pnl-action-body small{ font-size:12px; color:var(--text-muted); line-height:1.35; }
.pnl-action--accent{ border-color:rgba(184,92,58,.28); }
.pnl-action--accent .pnl-action-icon{ color:var(--secondary); background:rgba(184,92,58,.1); }
.pnl-action-pill{
  position:absolute; top:12px; right:12px;
  font-family:var(--font-mono); font-size:9px; letter-spacing:.12em; text-transform:uppercase;
  padding:3px 7px; border-radius:999px;
  background:rgba(184,92,58,.15); color:var(--secondary); font-weight:700;
}

/* Feeds */
.pnl-feeds{
  display:grid; grid-template-columns:1fr 1.15fr; gap:16px;
}
.pnl-feed{ padding:0; overflow:hidden; display:flex; flex-direction:column; }
.pnl-feed-head{
  display:flex; align-items:center; gap:10px;
  padding:18px 20px 14px; border-bottom:1px solid var(--border);
}
.pnl-feed-icon{
  display:flex; align-items:center; justify-content:center;
  width:34px; height:34px; border-radius:10px; flex-shrink:0;
  background:var(--bg-inset); color:var(--accent);
}
.pnl-feed-icon svg{ width:17px; height:17px; }
.pnl-feed-head h2{
  flex:1; font-family:var(--font-display); font-weight:800; font-size:16px;
  letter-spacing:-.01em; color:var(--text);
}
.pnl-feed-badge{
  font-family:var(--font-mono); font-size:11px; font-weight:700;
  padding:3px 8px; border-radius:999px;
  background:rgba(184,92,58,.15); color:var(--secondary);
}
.pnl-filter-toggle{
  display:inline-flex; align-items:center; gap:6px;
  margin-left:auto; padding:6px 10px; border-radius:8px;
  border:1px solid var(--border); background:var(--bg-inset);
  color:var(--text-secondary); font-size:12.5px; font-weight:600; cursor:pointer;
  transition:border-color .15s, color .15s;
}
.pnl-filter-toggle:hover{ border-color:var(--border-hover); color:var(--text); }
.pnl-filter-toggle svg{ transition:transform .2s; }
.pnl-filter-toggle.is-open svg{ transform:rotate(180deg); }
.pnl-filter-form{ margin:0; }
.pnl-filter{
  padding:14px 20px 16px; border-bottom:1px solid var(--border);
  background:color-mix(in srgb, var(--bg-inset) 70%, transparent);
  max-width:100%; box-sizing:border-box;
}
.pnl-filter-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px 12px;
  align-items:end;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
.pnl-field{ display:flex; flex-direction:column; gap:5px; min-width:0; max-width:100%; }
.pnl-field--icao{ /* same 1fr cell — ICAO is short, fine */ }
.pnl-field--wide,
.pnl-filter-actions{ grid-column:1 / -1; }
.pnl-field-label{
  font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  color:var(--text-muted); font-family:var(--font-mono);
}
.pnl-input{
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
  padding:8px 10px; border-radius:8px;
  border:1px solid var(--border); background:var(--bg-card); color:var(--text);
  font-size:13.5px; font-family:var(--font-body);
}
.pnl-input[type="date"]{
  /* Stay inside the cell; Safari date UI scales with available width */
  min-width:0;
  max-width:100%;
  font-variant-numeric:tabular-nums;
}
.pnl-input--mono{ font-family:var(--font-mono); letter-spacing:.04em; text-transform:uppercase; }
.pnl-filter-actions{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.pnl-filter-btn{ font-size:13px; padding:8px 12px; }
@media (max-width:480px){
  .pnl-filter-grid{ grid-template-columns:1fr; }
}

.pnl-list{ list-style:none; margin:0; padding:0; flex:1; }
.pnl-list-item{
  display:block; padding:14px 20px; text-decoration:none; color:inherit;
  border-bottom:1px solid var(--border);
  transition:background-color .18s var(--ease-out);
}
.pnl-list-item:last-child{ border-bottom:none; }
.pnl-list-item:hover{ background:var(--bg-inset); }
.pnl-list-item--unread{
  border-left:3px solid var(--secondary);
  padding-left:17px;
}
.pnl-list-msg{ font-size:14px; line-height:1.45; color:var(--text); margin:0; }
.pnl-list-time{
  display:block; margin-top:5px;
  font-family:var(--font-mono); font-size:11px; color:var(--text-muted); letter-spacing:.02em;
}

/* Flight rows */
.pnl-flight{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:13px 20px; text-decoration:none; color:inherit;
  border-bottom:1px solid var(--border);
  transition:background-color .18s var(--ease-out);
}
.pnl-flight:last-child{ border-bottom:none; }
.pnl-flight:hover{ background:var(--bg-inset); }
.pnl-flight-route{ display:flex; align-items:center; gap:8px; min-width:0; }
.pnl-icao{
  font-family:var(--font-mono); font-size:15px; font-weight:600; letter-spacing:.06em;
  color:var(--text);
}
.pnl-flight-arrow{ color:var(--secondary); font-size:14px; flex-shrink:0; }
.pnl-flight-meta{
  display:flex; align-items:center; gap:10px; flex-shrink:0;
  font-size:12px; color:var(--text-muted);
}
.pnl-flight-meta time{ font-family:var(--font-mono); }
.pnl-flight-hours{
  font-family:var(--font-mono); font-weight:600; color:var(--accent);
  padding:2px 8px; border-radius:6px; background:var(--bg-inset);
}

.pnl-empty{
  padding:28px 20px; text-align:center; font-size:14px; color:var(--text-muted); margin:0;
}
.pnl-empty-cta{ display:block; width:fit-content; margin:0 auto 20px; }

/* Pagination */
.pnl-pager{
  display:flex; align-items:center; justify-content:center; gap:4px;
  padding:14px 16px; border-top:1px solid var(--border);
}
.pnl-page{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:34px; height:34px; padding:0 8px; border-radius:8px;
  font-family:var(--font-mono); font-size:13px; font-weight:600;
  color:var(--text-secondary); text-decoration:none;
  border:1px solid transparent; background:transparent;
  transition:background-color .15s, border-color .15s, color .15s;
}
.pnl-page:hover{ background:var(--bg-inset); color:var(--text); }
.pnl-page.is-active{
  background:var(--accent); color:var(--text-on-accent); border-color:var(--accent);
}
.pnl-page--gap{ pointer-events:none; color:var(--text-muted); }

/* Staggered reveal for panel sections */
.pnl .an-reveal.is-visible .pnl-stat,
.pnl .an-reveal.is-visible .pnl-action{
  animation:pnl-rise .5s var(--ease-out) backwards;
}
.pnl-stats.an-reveal.is-visible .pnl-stat:nth-child(1){ animation-delay:.04s; }
.pnl-stats.an-reveal.is-visible .pnl-stat:nth-child(2){ animation-delay:.08s; }
.pnl-stats.an-reveal.is-visible .pnl-stat:nth-child(3){ animation-delay:.12s; }
.pnl-stats.an-reveal.is-visible .pnl-stat:nth-child(4){ animation-delay:.16s; }
.pnl-actions .pnl-action:nth-child(1){ animation-delay:.05s; }
.pnl-actions .pnl-action:nth-child(2){ animation-delay:.09s; }
.pnl-actions .pnl-action:nth-child(3){ animation-delay:.13s; }
.pnl-actions .pnl-action:nth-child(4){ animation-delay:.17s; }
.pnl-actions .pnl-action:nth-child(5){ animation-delay:.21s; }
.pnl-actions .pnl-action:nth-child(6){ animation-delay:.25s; }
@keyframes pnl-rise{
  from{ opacity:0; transform:translateY(14px); }
  to{ opacity:1; transform:none; }
}

@media (prefers-reduced-motion: reduce){
  .pnl-alert-dot{ animation:none; }
  .pnl .an-reveal.is-visible .pnl-stat,
  .pnl .an-reveal.is-visible .pnl-action{ animation:none; }
}

/* Panel — tablet */
@media (max-width:960px){
  .pnl-hero-grid{ grid-template-columns:1fr; }
  .pnl-hero-cta{ justify-content:stretch; }
  .pnl-upload-btn{ width:100%; justify-content:center; }
  .pnl-stats{ grid-template-columns:repeat(2, 1fr); }
  .pnl-actions{ grid-template-columns:repeat(2, 1fr); }
  .pnl-feeds{ grid-template-columns:1fr; }
  .pnl-name{ white-space:normal; }
}

/* Panel — mobile */
@media (max-width:640px){
  .pnl{ gap:14px; }
  .pnl-hero{ padding:20px 18px 18px; }
  .pnl-identity{ flex-direction:column; align-items:flex-start; gap:14px; }
  .pnl-avatar-ring{ width:72px; height:72px; }
  .pnl-avatar-ph{ font-size:26px; }
  .pnl-upload-btn{ min-width:0; padding:12px 16px; }
  .pnl-upload-icon{ width:38px; height:38px; }
  .pnl-stat{ padding:14px 16px 12px; }
  .pnl-stat-value{ font-size:24px; }
  .pnl-actions{ grid-template-columns:1fr; }
  .pnl-action{ padding:14px; }
  .pnl-flight{
    flex-direction:column; align-items:flex-start; gap:6px;
    padding:12px 16px;
  }
  .pnl-flight-meta{ flex-wrap:wrap; gap:6px; }
  .pnl-feed-head{ padding:14px 16px 12px; }
  .pnl-list-item, .pnl-flight{ padding-left:16px; padding-right:16px; }
  .pnl-list-item--unread{ padding-left:13px; }
}

@media (max-width:400px){
  .pnl-stats{ gap:10px; }
  .pnl-stat-value{ font-size:21px; }
  .pnl-tags{ gap:6px; }
  .pnl-tag{ font-size:11px; padding:4px 9px; }
}

/* ═══════════════════════════════════════════════════════════════
   Flight upload — /flight/upload
   ═══════════════════════════════════════════════════════════════ */

.upl{
  display:flex; flex-direction:column; gap:24px;
  max-width:1100px;
}

.upl-head{
  display:flex; align-items:flex-start; gap:16px; flex-wrap:wrap;
}
.upl-back{
  flex-shrink:0; margin-top:4px;
  padding:8px 14px; font-size:13px;
}
@media (min-width:901px){
  .upl-back{ display:none; }
}
.upl-eyebrow{
  font-size:11px; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--accent);
  margin:0 0 6px;
}
.upl-title{
  font-family:var(--font-display); font-size:clamp(24px,4vw,32px);
  font-weight:800; letter-spacing:-.03em; line-height:1.1;
  margin:0 0 8px;
}
.upl-lead{
  font-size:14px; color:var(--text-secondary); line-height:1.55;
  margin:0; max-width:52ch;
}

.upl-grid{
  display:grid; grid-template-columns:1fr 340px; gap:20px;
  align-items:stretch;
}

.upl-form-card,
.upl-req-card{
  display:flex; flex-direction:column;
  height:100%;
}
.upl-form-card{ padding:24px; }
.upl-form{
  display:flex; flex-direction:column; gap:20px;
  flex:1;
}

.upl-drop{
  position:relative;
  border:2px dashed var(--border);
  border-radius:var(--radius-lg);
  padding:40px 24px;
  text-align:center;
  cursor:pointer;
  background:var(--bg-elevated);
  transition:border-color var(--transition), background var(--transition), box-shadow var(--transition);
}
.upl-drop:hover,
.upl-drop.is-dragover{
  border-color:var(--accent);
  background:var(--accent-soft);
  box-shadow:0 0 0 1px var(--accent-soft);
}
.upl-drop input[type="file"]{
  position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; height:100%;
}
.upl-drop-icon{
  width:52px; height:52px; margin:0 auto 14px;
  border-radius:14px;
  background:var(--accent-soft);
  color:var(--accent);
  display:flex; align-items:center; justify-content:center;
}
.upl-drop-icon svg{ width:26px; height:26px; }
.upl-drop-title{
  font-family:var(--font-display); font-size:17px; font-weight:700;
  margin:0 0 6px;
}
.upl-drop-hint{
  font-size:13px; color:var(--text-muted); margin:0;
}
.upl-file-name{
  margin-top:14px; font-size:13px; font-weight:600;
  color:var(--accent); min-height:1.2em;
}

.upl-tip{
  display:flex; gap:12px; align-items:flex-start;
  padding:14px 16px;
  border-radius:var(--radius-md);
  background:var(--accent-soft);
  border:1px solid color-mix(in srgb, var(--accent) 25%, transparent);
  font-size:13px; line-height:1.5; color:var(--text-secondary);
}
.upl-tip svg{ flex-shrink:0; color:var(--accent); margin-top:2px; }

.upl-submit{
  width:100%; justify-content:center;
  padding:14px 20px; font-size:15px;
}

.upl-req-card{ padding:22px; }
.upl-req-title{
  font-family:var(--font-display); font-size:15px; font-weight:700;
  margin:0 0 16px; padding-bottom:12px;
  border-bottom:1px solid var(--border);
}
.upl-req-list{ display:flex; flex-direction:column; gap:12px; }
.upl-req{
  padding:12px 14px;
  border-radius:var(--radius-md);
  border:1px solid var(--border);
  background:var(--bg-elevated);
  font-size:13px; line-height:1.5;
}
.upl-req strong{
  display:block; font-size:12px; font-weight:700;
  margin-bottom:4px; letter-spacing:.02em;
}
.upl-req--ok strong{ color:var(--accent); }
.upl-req--warn strong{ color:var(--warm); }
.upl-req--hot strong{ color:var(--hot); }
.upl-req--muted strong{ color:var(--text-secondary); }

@media (min-width:901px){
  .upl-drop{
    flex:1; display:flex; flex-direction:column;
    justify-content:center; min-height:220px;
  }
  .upl-req-list{
    flex:1; justify-content:space-between;
  }
}

@media (max-width:900px){
  .upl-grid{ grid-template-columns:1fr; }
  .upl-req-card{ order:-1; }
}

@media (max-width:600px){
  .upl-form-card, .upl-req-card{ padding:18px; }
  .upl-drop{ padding:32px 18px; }
  .upl-head{ flex-direction:column; }
  .upl-back{ margin-top:0; }
}

/* ═══════════════════════════════════════════════════════════════
   Flight upload processing — /flight/upload/processing
   ═══════════════════════════════════════════════════════════════ */

.fup{
  display:flex; flex-direction:column; align-items:center;
  justify-content:center;
  min-height:min(72vh, 640px);
  padding:24px 16px 48px;
  text-align:center;
}

.fup-card{
  width:100%; max-width:520px;
  padding:32px 28px 28px;
}

.fup-eyebrow{
  font-size:11px; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--accent);
  margin:0 0 8px;
}
.fup-title{
  font-family:var(--font-display); font-size:clamp(22px,4vw,28px);
  font-weight:800; letter-spacing:-.03em;
  margin:0 0 8px;
}
.fup-lead{
  font-size:14px; color:var(--text-secondary);
  margin:0 0 22px; line-height:1.5;
}

.fup-steps{
  display:flex; align-items:flex-start; justify-content:center;
  gap:0; margin:0 0 20px;
}
.fup-step{
  display:flex; flex-direction:column; align-items:center; gap:6px;
  position:relative; flex:1; min-width:0;
}
.fup-step + .fup-step::before{
  content:''; position:absolute; top:13px; right:50%; left:-50%;
  height:2px; background:var(--border); z-index:0;
}
.fup-step + .fup-step.is-active::before,
.fup-step + .fup-step.is-done::before{
  background:color-mix(in srgb, var(--accent) 45%, var(--border));
}
.fup-step-dot{
  width:26px; height:26px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:var(--bg-elevated); border:1px solid var(--border);
  color:var(--text-muted); font-size:11px; font-weight:800;
  position:relative; z-index:1; transition:all var(--transition);
}
.fup-step.is-active .fup-step-dot{
  background:var(--accent-soft); border-color:color-mix(in srgb, var(--accent) 50%, transparent);
  color:var(--accent);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 12%, transparent);
}
.fup-step.is-done .fup-step-dot{
  background:color-mix(in srgb, var(--accent) 18%, transparent);
  border-color:color-mix(in srgb, var(--accent) 40%, transparent);
  color:var(--accent);
}
.fup-step-label{
  font-size:10px; font-weight:600; color:var(--text-muted);
  text-align:center; line-height:1.25;
}
.fup-step.is-active .fup-step-label{ color:var(--accent); }
.fup-step.is-done .fup-step-label{ color:var(--text-secondary); }

/* Scanner viewport — report analysis atmosphere */
.fup-scanner{
  position:relative;
  height:168px; margin:0 0 22px;
  border-radius:var(--radius-lg);
  overflow:hidden;
  border:1px solid var(--border);
  background:
    radial-gradient(ellipse 80% 60% at 50% 100%, color-mix(in srgb, var(--accent) 10%, transparent), transparent 70%),
    linear-gradient(180deg, var(--bg-elevated) 0%, color-mix(in srgb, var(--accent) 4%, var(--bg)) 100%);
}
.fup-scanner-grid{
  position:absolute; inset:0; opacity:.35;
  background-image:
    linear-gradient(color-mix(in srgb, var(--border) 60%, transparent) 1px, transparent 1px),
    linear-gradient(90deg, color-mix(in srgb, var(--border) 60%, transparent) 1px, transparent 1px);
  background-size:22px 22px;
  mask-image:radial-gradient(ellipse 75% 75% at 50% 50%, #000 30%, transparent 100%);
}
.fup-scanner-cloud{
  position:absolute; border-radius:20px;
  background:color-mix(in srgb, var(--text-muted) 8%, transparent);
  border:1px solid color-mix(in srgb, var(--border) 80%, transparent);
  pointer-events:none;
}
.fup-scanner-cloud--1{
  width:72px; height:20px; top:18px; left:14%;
  animation:fup-drift 9s ease-in-out infinite;
}
.fup-scanner-cloud--2{
  width:54px; height:15px; top:36px; right:12%;
  animation:fup-drift 11s ease-in-out infinite 1.5s;
}
@keyframes fup-drift{
  0%, 100%{ transform:translateX(0); opacity:.45; }
  50%{ transform:translateX(10px); opacity:.75; }
}
.fup-scanner-frame{
  position:absolute; inset:18px 24px;
  pointer-events:none;
}
.fup-scanner-corner{
  position:absolute; width:14px; height:14px;
  border-color:color-mix(in srgb, var(--accent) 55%, transparent);
  border-style:solid; opacity:.7;
}
.fup-scanner-corner--tl{ top:0; left:0; border-width:2px 0 0 2px; }
.fup-scanner-corner--tr{ top:0; right:0; border-width:2px 2px 0 0; }
.fup-scanner-corner--bl{ bottom:0; left:0; border-width:0 0 2px 2px; }
.fup-scanner-corner--br{ bottom:0; right:0; border-width:0 2px 2px 0; }
.fup-scanner-beam{
  position:absolute; left:0; right:0; height:2px;
  background:linear-gradient(
    90deg,
    transparent 0%,
    color-mix(in srgb, var(--accent) 20%, transparent) 15%,
    var(--warm) 50%,
    color-mix(in srgb, var(--accent) 20%, transparent) 85%,
    transparent 100%
  );
  box-shadow:0 0 18px 4px color-mix(in srgb, var(--warm) 35%, transparent);
  animation:fup-scan 2.8s ease-in-out infinite;
  opacity:.85;
}
@keyframes fup-scan{
  0%{ top:22%; opacity:0; }
  8%{ opacity:.9; }
  92%{ opacity:.9; }
  100%{ top:78%; opacity:0; }
}
.fup-scanner-doc{
  position:absolute; left:50%; top:50%;
  width:52px; height:64px;
  transform:translate(-50%, -50%);
  color:color-mix(in srgb, var(--accent) 70%, var(--text-muted));
  filter:drop-shadow(0 4px 12px color-mix(in srgb, var(--accent) 20%, transparent));
  animation:fup-doc-pulse 3.2s ease-in-out infinite;
}
.fup-scanner-doc svg{ width:100%; height:100%; }
@keyframes fup-doc-pulse{
  0%, 100%{ transform:translate(-50%, -50%) scale(1); opacity:.75; }
  50%{ transform:translate(-50%, -52%) scale(1.03); opacity:1; }
}
.fup-scanner-ring{
  position:absolute; left:50%; top:50%;
  width:100px; height:100px;
  margin:-50px 0 0 -50px;
  border-radius:50%;
  border:1px solid color-mix(in srgb, var(--accent) 25%, transparent);
  animation:fup-ring 3s ease-out infinite;
  pointer-events:none;
}
.fup-scanner-ring--2{
  width:130px; height:130px; margin:-65px 0 0 -65px;
  animation-delay:1s;
}
@keyframes fup-ring{
  0%{ transform:scale(.7); opacity:.6; }
  100%{ transform:scale(1.15); opacity:0; }
}

.fup-bar-wrap{
  height:8px; border-radius:999px;
  background:var(--bg-elevated);
  border:1px solid var(--border);
  overflow:hidden; margin-bottom:12px;
  position:relative;
}
.fup-bar{
  height:100%; width:0%;
  border-radius:999px;
  background:linear-gradient(90deg, var(--accent), var(--warm));
  transition:width .35s ease;
  position:relative; overflow:hidden;
}
.fup-bar::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(
    90deg,
    transparent 0%,
    color-mix(in srgb, #fff 35%, transparent) 45%,
    transparent 100%
  );
  width:40%; animation:fup-bar-shimmer 1.6s ease-in-out infinite;
}
@keyframes fup-bar-shimmer{
  0%{ transform:translateX(-120%); }
  100%{ transform:translateX(320%); }
}
.fup-pct{
  font-family:var(--font-mono); font-size:13px; font-weight:600;
  color:var(--text-muted); margin-bottom:20px;
}

.fup-status{
  font-size:15px; font-weight:700; color:var(--accent);
  min-height:1.4em; margin:0 0 8px;
  transition:opacity .25s;
}
.fup-status.is-fade{ opacity:0; }
.fup-detail{
  font-size:13px; color:var(--text-secondary);
  min-height:1.4em; margin:0 0 20px; line-height:1.5;
  transition:opacity .25s;
}
.fup-detail.is-fade{ opacity:0; }
.fup-detail a{ color:var(--accent); text-decoration:underline; }

.fup-actions{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; }
.fup-actions[hidden]{ display:none !important; }

.fup-done .fup-scanner-beam{ animation-duration:1.4s; }
.fup-done .fup-scanner-doc{ color:var(--accent); }
.fup-error .fup-bar{
  background:linear-gradient(90deg, var(--hot), color-mix(in srgb, var(--hot) 70%, var(--warm)));
}
.fup-error .fup-scanner-beam{
  background:linear-gradient(90deg, transparent, var(--hot), transparent);
  box-shadow:0 0 14px 3px color-mix(in srgb, var(--hot) 30%, transparent);
}

@media (max-width:480px){
  .fup-card{ padding:24px 18px 22px; }
  .fup-scanner{ height:140px; }
}

/* ═══════════════════════════════════════════════════════════════
   Pilot profile — /pilot/id/{uuid}
   Editorial flight dossier × manifest logbook
   ═══════════════════════════════════════════════════════════════ */

.pfl{
  display:flex; flex-direction:column; gap:20px;
  max-width:1040px; margin:0 auto;
}

.pfl-back{
  align-self:flex-start; padding:8px 14px; font-size:13px;
}
@media (min-width:901px){
  .pfl-back{ display:none; }
}

/* Hero dossier */
.pfl-hero{
  position:relative; overflow:hidden; padding:0;
}
.pfl-hero-deco{
  position:absolute; inset:0; pointer-events:none; overflow:hidden;
}
.pfl-hero-grid{
  position:absolute; inset:0; opacity:.45;
  background-image:
    linear-gradient(var(--grid-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);
  background-size:28px 28px;
  mask-image:linear-gradient(180deg, #000 0%, transparent 85%);
}
.pfl-hero-fl{
  position:absolute; top:18px; right:22px;
  font-family:var(--font-mono); font-size:10px; font-weight:700;
  letter-spacing:.22em; color:var(--hero-fl370); opacity:.7;
}
.pfl-hero-mark{
  position:absolute; width:18px; height:18px;
  border-color:color-mix(in srgb, var(--accent) 40%, transparent);
  border-style:solid; opacity:.5;
}
.pfl-hero-mark--tl{ top:16px; left:16px; border-width:2px 0 0 2px; }
.pfl-hero-mark--br{ bottom:16px; right:16px; border-width:0 2px 2px 0; }

.pfl-hero-layout{
  position:relative; z-index:1;
  display:grid; grid-template-columns:1fr min(280px, 32%); gap:24px;
  padding:28px 28px 26px;
}
.pfl-identity{
  display:flex; gap:22px; align-items:flex-start; min-width:0;
}
.pfl-avatar-wrap{ position:relative; flex-shrink:0; }
.pfl-avatar-ring{
  width:104px; height:104px; border-radius:50%; padding:3px;
  background:linear-gradient(145deg, var(--warm), var(--accent), var(--secondary));
  box-shadow:0 12px 32px color-mix(in srgb, var(--accent) 22%, transparent);
}
.pfl-avatar, .pfl-avatar-ph{
  display:block; width:100%; height:100%; border-radius:50%;
  object-fit:cover; background:var(--bg-inset);
}
.pfl-avatar-ph{
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-size:36px; font-weight:800;
  color:var(--accent);
}
.pfl-staff-badge{
  position:absolute; bottom:2px; right:2px;
  width:26px; height:26px; border-radius:50%;
  border:2px solid var(--bg-card); background:var(--bg-card);
}

.pfl-identity-body{ flex:1; min-width:0; }
.pfl-eyebrow{
  font-size:11px; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--accent); margin:0 0 6px;
}
.pfl-name{
  font-family:var(--font-display); font-size:clamp(26px, 4vw, 34px);
  font-weight:800; letter-spacing:-.03em; line-height:1.08;
  margin:0 0 4px; color:var(--text);
}
.pfl-handle{
  margin:0 0 12px; font-family:var(--font-mono); font-size:13px;
  color:var(--text-muted); letter-spacing:.02em;
}
.pfl-tags{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.pfl-tag{
  display:inline-flex; align-items:center; gap:5px;
  padding:5px 11px; border-radius:999px; font-size:12px; font-weight:600;
  border:1px solid var(--border); background:var(--bg-inset);
  color:var(--text-secondary); text-decoration:none;
  max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.pfl-tag--ar{
  border-color:rgba(201,146,62,.35); background:rgba(201,146,62,.1);
  color:var(--warm); font-family:var(--font-mono);
}
.pfl-tag--rating{ border-color:var(--accent-border); color:var(--accent); }
.pfl-tag--rating svg{ color:var(--warm); flex-shrink:0; }
.pfl-tag-muted{ font-weight:500; color:var(--text-muted); }
.pfl-tag--co{ border-color:var(--accent-border); color:var(--accent); }
.pfl-tag--co:hover{ background:var(--bg-inset); border-color:var(--border-hover); }
.pfl-tag--muted{ font-style:normal; opacity:.9; }

.pfl-bio{
  margin:0 0 16px; font-size:14px; line-height:1.6;
  color:var(--text-secondary); white-space:pre-line;
}
.pfl-actions{ display:flex; flex-wrap:wrap; gap:10px; }
.pfl-action-btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 16px; font-size:13px;
}

/* Company aside */
.pfl-company-card{
  align-self:start; padding:16px;
  border-radius:var(--radius-sm);
  border:1px solid var(--border);
  background:color-mix(in srgb, var(--bg-inset) 80%, transparent);
}
.pfl-company-label{
  display:block; font-size:10px; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase;
  color:var(--text-muted); margin-bottom:10px;
}
.pfl-company-link{
  display:flex; align-items:center; gap:12px;
  text-decoration:none; color:inherit;
}
.pfl-company-logo{
  width:44px; height:44px; border-radius:12px;
  object-fit:cover; flex-shrink:0; border:1px solid var(--border);
  background:var(--bg-inset);
}
.pfl-company-logo--ph{
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:800; color:var(--accent);
}
.pfl-company-meta{
  display:flex; flex-direction:column; gap:3px; min-width:0;
}
.pfl-company-meta strong{
  font-size:14px; font-weight:700; color:var(--text);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.pfl-company-meta small{ font-size:11px; color:var(--text-muted); }
.pfl-company-verified{ flex-shrink:0; margin-left:auto; }

/* Metrics bento */
.pfl-metrics{
  display:grid; grid-template-columns:1.35fr repeat(3, 1fr); gap:12px;
}
.pfl-metric{
  padding:18px 18px 16px; display:flex; flex-direction:column; gap:6px;
}
.pfl-metric--feature{
  flex-direction:row; align-items:center; gap:14px;
  background:linear-gradient(135deg, color-mix(in srgb, var(--warm) 8%, var(--bg-card)), var(--bg-card));
  border-color:color-mix(in srgb, var(--warm) 28%, var(--border));
}
.pfl-metric-icon{
  display:flex; align-items:center; justify-content:center;
  width:44px; height:44px; border-radius:12px; flex-shrink:0;
  background:rgba(201,146,62,.12); color:var(--warm);
}
.pfl-metric-icon svg{ width:22px; height:22px; }
.pfl-metric-body{ display:flex; flex-direction:column; gap:4px; }
.pfl-metric-label{
  font-size:11px; font-weight:700; letter-spacing:.08em;
  text-transform:uppercase; color:var(--text-muted);
}
.pfl-metric-value{
  font-family:var(--font-display); font-size:28px; font-weight:800;
  letter-spacing:-.02em; line-height:1; color:var(--text);
}
.pfl-metric-value em{
  font-size:14px; font-weight:600; font-style:normal;
  color:var(--text-muted); margin-left:4px;
}
.pfl-metric-hint{ font-size:11px; color:var(--text-muted); line-height:1.35; }

/* Logbook */
#pfl-flights{ scroll-margin-top:calc(var(--nav-height) + 12px); }
.pfl-logbook{ padding:0; overflow:hidden; }
.pfl-logbook-head{
  padding:20px 22px 16px; border-bottom:1px solid var(--border);
}
.pfl-logbook-title-wrap{ display:flex; align-items:flex-start; gap:12px; }
.pfl-logbook-icon{
  display:flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:11px; flex-shrink:0;
  background:var(--bg-inset); color:var(--accent);
}
.pfl-logbook-icon svg{ width:18px; height:18px; }
.pfl-logbook-title{
  font-family:var(--font-display); font-size:17px; font-weight:800;
  letter-spacing:-.01em; margin:0 0 4px;
}
.pfl-logbook-sub{ margin:0; font-size:12px; color:var(--text-muted); }

.pfl-filter{
  padding:16px 22px; border-bottom:1px solid var(--border);
  background:color-mix(in srgb, var(--bg-inset) 50%, transparent);
}
.pfl-filter-grid{
  display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:10px;
  align-items:end;
}
.pfl-field{ display:flex; flex-direction:column; gap:5px; min-width:0; }
.pfl-field--icao{ max-width:120px; }
.pfl-field--wide{ grid-column:span 2; }
.pfl-field-label{ font-size:11px; font-weight:600; color:var(--text-muted); }
.pfl-input{
  width:100%; padding:9px 11px; border-radius:var(--radius-xs);
  border:1px solid var(--border); background:var(--bg-card);
  color:var(--text); font-size:13px; font-family:var(--font-body);
  outline:none; transition:border-color .18s var(--ease-out);
  box-sizing:border-box;
}
.pfl-input:focus{ border-color:var(--border-hover); }
.pfl-input--mono{ font-family:var(--font-mono); text-transform:uppercase; letter-spacing:.06em; }
.pfl-filter-actions{
  display:flex; gap:8px; grid-column:3 / -1;
  justify-content:flex-end;
}
.pfl-filter-btn{
  display:inline-flex; align-items:center; gap:6px;
  padding:9px 14px; font-size:13px; white-space:nowrap;
}

.pfl-flight-list{ list-style:none; margin:0; padding:8px 10px; }
.pfl-flight{
  display:grid; grid-template-columns:minmax(140px, 1fr) 1.4fr auto;
  align-items:center; gap:14px; padding:13px 14px; margin-bottom:4px;
  border-radius:var(--radius-xs); text-decoration:none; color:inherit;
  border:1px solid transparent;
  transition:background .18s var(--ease-out), border-color .18s var(--ease-out), transform .18s var(--ease-out);
}
.pfl-flight:hover{
  background:var(--bg-inset); border-color:var(--border);
  transform:translateX(3px);
}
.pfl-flight-route{ display:flex; align-items:center; gap:8px; }
.pfl-icao{
  font-family:var(--font-mono); font-size:16px; font-weight:600;
  letter-spacing:.08em; color:var(--text);
}
.pfl-flight-arrow{ color:var(--secondary); display:flex; flex-shrink:0; }
.pfl-flight-mid{ min-width:0; display:flex; flex-direction:column; gap:3px; }
.pfl-flight-ac{
  font-size:13px; font-weight:600; color:var(--text-secondary);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.pfl-flight-meta{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  font-size:12px; color:var(--text-muted);
}
.pfl-flight-meta time{ font-family:var(--font-mono); }
.pfl-flight-hours{
  font-family:var(--font-mono); font-weight:600; color:var(--accent);
  padding:2px 7px; border-radius:5px; background:var(--bg-inset);
}
.pfl-flight-badges{ display:flex; gap:5px; flex-shrink:0; }
.pfl-badge{
  font-family:var(--font-mono); font-size:9px; font-weight:700;
  letter-spacing:.08em; padding:3px 7px; border-radius:5px;
}
.pfl-badge--mod{
  background:color-mix(in srgb, var(--warm) 15%, transparent);
  border:1px solid color-mix(in srgb, var(--warm) 35%, transparent);
  color:var(--warm);
}
.pfl-badge--ai{
  background:color-mix(in srgb, var(--accent) 12%, transparent);
  border:1px solid var(--accent-border);
  color:var(--accent);
}

.pfl-pager{
  display:flex; justify-content:center; gap:4px; flex-wrap:wrap;
  padding:14px 16px; border-top:1px solid var(--border);
}
.pfl-page{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:34px; height:34px; padding:0 8px; border-radius:8px;
  font-family:var(--font-mono); font-size:13px; font-weight:600;
  color:var(--text-secondary); text-decoration:none;
  transition:background .15s, color .15s;
}
.pfl-page:hover{ background:var(--bg-inset); color:var(--text); }
.pfl-page.is-active{
  background:color-mix(in srgb, var(--accent) 14%, transparent);
  color:var(--accent); pointer-events:none;
}
.pfl-page--gap{ opacity:.4; pointer-events:none; }

.pfl-empty{
  display:flex; flex-direction:column; align-items:center; gap:14px;
  padding:44px 24px; text-align:center;
}
.pfl-empty-icon{
  width:48px; height:48px; color:var(--text-muted); opacity:.45;
}
.pfl-empty-icon svg{ width:100%; height:100%; }
.pfl-empty p{ margin:0; font-size:14px; color:var(--text-muted); }

@media (max-width:900px){
  .pfl-hero-layout{ grid-template-columns:1fr; }
  .pfl-company-card{ display:none; }
  .pfl-metrics{ grid-template-columns:repeat(2, 1fr); }
  .pfl-metric--feature{ grid-column:1 / -1; }
  .pfl-filter-grid{
    grid-template-columns:1fr 1fr;
  }
  .pfl-field--wide, .pfl-filter-actions{ grid-column:1 / -1; }
  .pfl-filter-actions{ justify-content:stretch; }
  .pfl-filter-btn{ flex:1; justify-content:center; }
}

@media (max-width:640px){
  .pfl-identity{ flex-direction:column; align-items:center; text-align:center; }
  .pfl-tags, .pfl-actions{ justify-content:center; }
  .pfl-hero-layout{ padding:22px 18px 20px; }
  .pfl-metrics{ grid-template-columns:1fr; }
  .pfl-flight{
    grid-template-columns:1fr auto;
    gap:8px 12px;
  }
  .pfl-flight-route{ grid-column:1 / -1; }
  .pfl-field--icao{ max-width:none; }
}

/* ═══════════════════════════════════════════════════════════════
   Pilot workbook — /pilot/id/{uuid}/workbook
   Career ledger × editorial timeline
   ═══════════════════════════════════════════════════════════════ */

.wbk{
  display:flex; flex-direction:column; gap:20px;
  max-width:820px; margin:0 auto;
}

.wbk-back{
  align-self:flex-start; padding:8px 14px; font-size:13px;
}
@media (min-width:901px){
  .wbk-back{ display:none; }
}

/* Hero */
.wbk-hero{
  position:relative; overflow:hidden; padding:0;
}
.wbk-hero-deco{
  position:absolute; inset:0; pointer-events:none;
}
.wbk-hero-spine{
  position:absolute; left:0; top:0; bottom:0; width:6px;
  background:linear-gradient(180deg, var(--warm), var(--accent), color-mix(in srgb, var(--accent) 60%, var(--warm)));
  opacity:.75;
}
.wbk-hero-mark{
  position:absolute; width:16px; height:16px;
  border-color:color-mix(in srgb, var(--warm) 45%, transparent);
  border-style:solid; opacity:.55;
}
.wbk-hero-mark--tl{ top:14px; left:20px; border-width:2px 0 0 2px; }
.wbk-hero-mark--br{ bottom:14px; right:14px; border-width:0 2px 2px 0; }

.wbk-hero-inner{
  position:relative; z-index:1;
  display:flex; align-items:center; gap:18px;
  padding:24px 24px 24px 28px;
}
.wbk-hero-icon{
  display:flex; align-items:center; justify-content:center;
  width:56px; height:56px; flex-shrink:0; border-radius:14px;
  background:color-mix(in srgb, var(--warm) 12%, var(--bg-inset));
  border:1px solid color-mix(in srgb, var(--warm) 30%, var(--border));
  color:var(--warm);
}
.wbk-hero-icon svg{ width:28px; height:28px; }
.wbk-eyebrow{
  font-size:11px; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--accent); margin:0 0 6px;
}
.wbk-title{
  font-family:var(--font-display); font-size:clamp(24px, 4vw, 32px);
  font-weight:800; letter-spacing:-.03em; line-height:1.1;
  margin:0 0 6px; color:var(--text);
}
.wbk-subtitle{
  margin:0; font-size:14px; color:var(--text-secondary);
  font-family:var(--font-mono); letter-spacing:.01em;
}

/* Summary */
.wbk-summary{
  display:grid; grid-template-columns:repeat(4, 1fr); gap:12px;
}
.wbk-stat{
  padding:16px 16px 14px; display:flex; flex-direction:column; gap:6px;
  text-align:center; align-items:center;
}
.wbk-stat-label{
  font-size:10px; font-weight:700; letter-spacing:.1em;
  text-transform:uppercase; color:var(--text-muted);
}
.wbk-stat-value{
  font-family:var(--font-display); font-size:26px; font-weight:800;
  letter-spacing:-.02em; line-height:1; color:var(--text);
}
.wbk-stat--active .wbk-stat-value{ color:var(--accent); }

/* Timeline */
.wbk-timeline{
  position:relative; display:flex; flex-direction:column;
  gap:0; padding-left:26px;
}
.wbk-timeline::before{
  content:''; position:absolute; left:7px; top:12px; bottom:12px;
  width:2px; border-radius:2px;
  background:linear-gradient(180deg, color-mix(in srgb, var(--warm) 50%, transparent), var(--border));
}
.wbk-entry{
  position:relative; padding-bottom:16px;
}
.wbk-entry:last-child{ padding-bottom:0; }

.wbk-node{
  position:absolute; left:-26px; top:22px;
  width:12px; height:12px; border-radius:50%; z-index:1;
  background:var(--bg-card);
  border:2px solid color-mix(in srgb, var(--warm) 55%, var(--border));
  box-shadow:0 0 0 3px color-mix(in srgb, var(--bg) 90%, transparent);
}
.wbk-entry--active .wbk-node{
  background:var(--accent); border-color:var(--accent);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent);
}

.wbk-card{ padding:18px 18px 16px; }
.wbk-entry--active .wbk-card{
  border-color:color-mix(in srgb, var(--accent) 35%, var(--border));
  background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 5%, var(--bg-card)), var(--bg-card));
}

.wbk-card-head{
  display:flex; align-items:flex-start; justify-content:space-between;
  gap:12px; margin-bottom:14px; flex-wrap:wrap;
}
.wbk-company{
  display:flex; align-items:center; gap:12px;
  text-decoration:none; color:inherit; flex:1; min-width:0;
}
.wbk-company:hover .wbk-co-name{ color:var(--accent); }
.wbk-co-logo{
  width:46px; height:46px; border-radius:12px; flex-shrink:0;
  object-fit:cover; border:1px solid var(--border); background:var(--bg-inset);
}
.wbk-co-logo--ph{
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:800; font-size:18px;
  color:var(--accent);
}
.wbk-co-meta{ display:flex; flex-direction:column; gap:4px; min-width:0; }
.wbk-co-name{
  font-size:15px; font-weight:700; color:var(--text);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  transition:color .18s var(--ease-out);
}
.wbk-co-dates{
  display:inline-flex; align-items:center; gap:5px;
  font-size:12px; color:var(--text-muted); font-family:var(--font-mono);
}
.wbk-co-dates svg{ flex-shrink:0; opacity:.7; }
.wbk-co-now{
  font-style:normal; font-weight:600; color:var(--accent);
}

.wbk-status{
  display:inline-flex; align-items:center; gap:6px;
  padding:5px 11px; border-radius:999px;
  font-size:11px; font-weight:700; white-space:nowrap; flex-shrink:0;
  border:1px solid var(--border); background:var(--bg-inset);
  color:var(--text-secondary);
}
.wbk-status-dot{
  width:7px; height:7px; border-radius:50%; background:var(--accent);
  animation:wbk-pulse 2s ease-in-out infinite;
}
@keyframes wbk-pulse{
  0%, 100%{ opacity:1; transform:scale(1); }
  50%{ opacity:.55; transform:scale(.85); }
}
.wbk-status--active{
  border-color:color-mix(in srgb, var(--accent) 35%, transparent);
  background:color-mix(in srgb, var(--accent) 10%, transparent);
  color:var(--accent);
}
.wbk-status--self{
  border-color:color-mix(in srgb, var(--warm) 35%, transparent);
  background:color-mix(in srgb, var(--warm) 10%, transparent);
  color:var(--warm);
}
.wbk-status--fired{
  border-color:color-mix(in srgb, var(--hot) 35%, transparent);
  background:color-mix(in srgb, var(--hot) 10%, transparent);
  color:var(--hot);
}
.wbk-status--company_closed{ opacity:.85; }

.wbk-metrics{
  display:flex; flex-wrap:wrap; gap:8px;
  padding-top:14px; border-top:1px solid var(--border);
}
.wbk-metric{
  display:flex; align-items:center; gap:8px; flex:1 1 120px;
  padding:8px 12px; border-radius:var(--radius-xs);
  border:1px solid var(--border); background:var(--bg-inset);
}
.wbk-metric-icon{
  display:flex; align-items:center; justify-content:center;
  width:28px; height:28px; border-radius:8px; flex-shrink:0;
}
.wbk-metric-icon svg{ width:14px; height:14px; }
.wbk-metric-icon--flights{
  background:color-mix(in srgb, var(--accent) 12%, transparent);
  color:var(--accent);
}
.wbk-metric-icon--rating{
  background:color-mix(in srgb, var(--warm) 12%, transparent);
  color:var(--warm);
}
.wbk-metric-icon--leader{
  background:color-mix(in srgb, var(--secondary) 10%, transparent);
  color:var(--secondary);
}
.wbk-metric-val{
  font-family:var(--font-mono); font-size:14px; font-weight:700;
  color:var(--text);
}
.wbk-metric-lbl{ font-size:11px; color:var(--text-muted); }

.wbk-comment{
  display:flex; align-items:flex-start; gap:10px;
  margin:14px 0 0; padding:12px 14px;
  border-radius:var(--radius-xs);
  border:1px solid var(--border);
  background:color-mix(in srgb, var(--bg-inset) 80%, transparent);
}
.wbk-comment svg{ flex-shrink:0; margin-top:2px; color:var(--text-muted); }
.wbk-comment p{
  margin:0; font-size:13px; line-height:1.55;
  color:var(--text-secondary); font-style:italic;
}

.wbk-empty{
  display:flex; flex-direction:column; align-items:center; gap:14px;
  padding:48px 24px; text-align:center;
}
.wbk-empty-icon{
  width:52px; height:52px; color:var(--text-muted); opacity:.4;
}
.wbk-empty-icon svg{ width:100%; height:100%; }
.wbk-empty p{ margin:0; font-size:14px; color:var(--text-muted); }

@media (max-width:720px){
  .wbk-summary{ grid-template-columns:repeat(2, 1fr); }
  .wbk-hero-inner{ padding:20px 18px 20px 22px; }
  .wbk-card-head{ flex-direction:column; align-items:flex-start; }
}

@media (max-width:480px){
  .wbk-summary{ grid-template-columns:1fr 1fr; }
  .wbk-stat-value{ font-size:22px; }
  .wbk-timeline{ padding-left:22px; }
  .wbk-node{ left:-22px; width:10px; height:10px; top:20px; }
  .wbk-timeline::before{ left:5px; }
  .wbk-metric{ flex:1 1 100%; }
}

/* ═══════════════════════════════════════════════════════════════
   Company rating — /rating
   Championship board × editorial podium
   ═══════════════════════════════════════════════════════════════ */

.rtg{
  display:flex; flex-direction:column; gap:20px;
  width:100%; max-width:960px; margin:0 auto;
  min-width:0;
}

/* Hero */
.rtg-hero{
  position:relative; overflow:hidden; padding:0;
}
.rtg-hero-deco{
  position:absolute; inset:0; pointer-events:none; overflow:hidden;
}
.rtg-hero-rays{
  position:absolute; inset:-40% -20%;
  background:conic-gradient(from 200deg at 50% 100%,
    transparent 0deg,
    color-mix(in srgb, var(--warm) 12%, transparent) 40deg,
    transparent 80deg,
    color-mix(in srgb, var(--accent) 10%, transparent) 120deg,
    transparent 160deg);
  opacity:.7;
}
.rtg-hero-inner{
  position:relative; z-index:1;
  display:grid; grid-template-columns:1fr auto; gap:20px; align-items:center;
  padding:26px 28px;
}
.rtg-hero-icon{
  display:none;
}
.rtg-hero-text{ min-width:0; }
.rtg-eyebrow{
  font-family:var(--font-mono); font-size:10px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--warm); margin:0 0 8px;
}
.rtg-title{
  font-family:var(--font-display); font-size:clamp(26px, 4vw, 36px);
  font-weight:800; letter-spacing:-.03em; line-height:1.05;
  margin:0 0 8px; color:var(--text);
}
.rtg-lead{
  margin:0; font-size:14px; line-height:1.55; color:var(--text-secondary);
  max-width:48ch;
}
.rtg-hero-nav{
  display:flex; flex-direction:column; gap:8px; align-items:stretch;
}
.rtg-hero-link{
  font-size:13px; padding:9px 14px; white-space:nowrap; text-align:center;
}

/* Board */
.rtg-board{ padding:0; overflow:hidden; min-width:0; }
.rtg-tabs{
  display:flex; gap:4px; padding:8px;
  border-bottom:1px solid var(--border);
  overflow-x:auto; scrollbar-width:none;
  background:color-mix(in srgb, var(--bg-inset) 40%, transparent);
}
.rtg-tabs::-webkit-scrollbar{ display:none; }
.rtg-tab{
  appearance:none; border:0; background:transparent;
  color:var(--text-muted); padding:10px 16px; border-radius:var(--radius-xs);
  cursor:pointer; white-space:nowrap; font-size:13px; font-weight:600;
  font-family:var(--font-body);
  flex:0 0 auto; text-align:center;
  transition:color .18s var(--ease-out), background .18s var(--ease-out);
}
@media (min-width:901px){
  .rtg-tabs{
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    overflow-x:visible;
  }
  .rtg-tab{ width:100%; min-width:0; }
}
.rtg-tab:hover{ color:var(--text); background:var(--bg-inset); }
.rtg-tab.active{
  color:var(--text-on-accent); background:var(--grad-accent-btn);
  font-weight:700; box-shadow:var(--shadow-btn);
}

.rtg-panels{ padding:20px 22px 22px; min-width:0; }
.rtg-panel{ display:none; min-width:0; max-width:100%; }
.rtg-panel.active{ display:block; }
.rtg-panel > [id$="-rating-content"]{ min-width:0; max-width:100%; }

.rtg-meta{
  display:flex; flex-wrap:wrap; gap:8px; margin-bottom:18px;
}
.rtg-chip{
  display:inline-flex; align-items:center; gap:6px;
  padding:6px 12px; border-radius:999px;
  font-size:12px; font-weight:600;
  border:1px solid var(--border); background:var(--bg-inset);
  color:var(--text-secondary);
}
.rtg-chip--warn{
  border-color:color-mix(in srgb, var(--warm) 35%, transparent);
  background:color-mix(in srgb, var(--warm) 10%, transparent);
  color:var(--warm);
}
.rtg-chip--muted{
  border-color:var(--accent-border);
  background:color-mix(in srgb, var(--accent) 8%, transparent);
  color:var(--accent);
}

/* Podium */
.rtg-podium{
  display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1.15fr) minmax(0, 1fr);
  gap:10px; align-items:end; margin-bottom:20px;
  padding:0 4px 8px; width:100%; min-width:0;
}
.rtg-podium-slot{
  display:flex; flex-direction:column; align-items:center; gap:8px;
  text-decoration:none; color:inherit; text-align:center;
  padding:14px 10px 12px; border-radius:var(--radius-sm);
  border:1px solid var(--border); background:var(--bg-inset);
  min-width:0; overflow:hidden;
  transition:transform .2s var(--ease-out), border-color .2s, box-shadow .2s;
}
.rtg-podium-slot:hover{
  transform:translateY(-3px); border-color:var(--border-hover);
  box-shadow:var(--shadow-card);
}
.rtg-podium-slot--1{
  padding-bottom:18px; padding-top:20px;
  border-color:color-mix(in srgb, var(--warm) 40%, var(--border));
  background:linear-gradient(180deg, color-mix(in srgb, var(--warm) 14%, var(--bg-card)), var(--bg-inset));
}
.rtg-podium-slot--2{
  border-color:color-mix(in srgb, var(--text-muted) 30%, var(--border));
}
.rtg-podium-slot--3{
  border-color:color-mix(in srgb, var(--secondary) 28%, var(--border));
}
.rtg-podium-medal{
  width:32px; height:32px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-size:14px; font-weight:800;
}
.rtg-podium-slot--1 .rtg-podium-medal{
  background:linear-gradient(145deg, #e8c96a, var(--warm));
  color:#1f1a17; box-shadow:0 4px 14px color-mix(in srgb, var(--warm) 40%, transparent);
}
.rtg-podium-slot--2 .rtg-podium-medal{
  background:linear-gradient(145deg, #d8dce0, #9aa3ad); color:#1f1a17;
}
.rtg-podium-slot--3 .rtg-podium-medal{
  background:linear-gradient(145deg, #ddb08a, var(--secondary)); color:#1f1a17;
}
.rtg-podium-logo{
  width:52px; height:52px; border-radius:50%;
  object-fit:cover; border:2px solid var(--border); background:var(--bg-card);
}
.rtg-podium-slot--1 .rtg-podium-logo{
  width:64px; height:64px;
  border-color:color-mix(in srgb, var(--warm) 45%, transparent);
}
.rtg-podium-name{
  font-size:12px; font-weight:700; line-height:1.3;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  overflow:hidden; color:var(--text);
}
.rtg-podium-score{
  font-family:var(--font-mono); font-size:15px; font-weight:700;
  color:var(--warm);
}

/* List rows */
.rtg-list{ display:flex; flex-direction:column; gap:6px; min-width:0; max-width:100%; }
.rtg-list--compact .rtg-row{ padding:10px 12px; }
.rtg-row{
  display:flex; align-items:center; gap:12px;
  padding:12px 14px; border-radius:var(--radius-xs);
  border:1px solid var(--border); background:var(--bg-card);
  text-decoration:none; color:inherit;
  min-width:0; max-width:100%;
  transition:transform .15s var(--ease-out), background .15s, border-color .15s;
}
.rtg-row:hover{
  background:var(--bg-inset); border-color:var(--border-hover);
  transform:translateX(3px);
}
.rtg-row--1{ border-color:color-mix(in srgb, var(--warm) 35%, var(--border)); }
.rtg-row--2{ border-color:color-mix(in srgb, var(--text-muted) 25%, var(--border)); }
.rtg-row--3{ border-color:color-mix(in srgb, var(--secondary) 25%, var(--border)); }

.rtg-rank{ flex:0 0 36px; display:flex; justify-content:center; }
.rtg-medal{
  width:30px; height:30px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-size:13px; font-weight:800;
}
.rtg-medal--1{ background:linear-gradient(145deg, #e8c96a, var(--warm)); color:#1f1a17; }
.rtg-medal--2{ background:linear-gradient(145deg, #d8dce0, #9aa3ad); color:#1f1a17; }
.rtg-medal--3{ background:linear-gradient(145deg, #ddb08a, var(--secondary)); color:#1f1a17; }
.rtg-rank-num{
  font-family:var(--font-mono); font-size:14px; font-weight:700;
  color:var(--text-muted);
}
.rtg-logo{
  width:42px; height:42px; flex-shrink:0; border-radius:50%;
  object-fit:cover; border:1px solid var(--border); background:var(--bg-inset);
}
.rtg-logo--fallback{
  display:flex; align-items:center; justify-content:center;
  background:color-mix(in srgb, var(--accent) 16%, var(--bg-inset));
  color:var(--accent); font-weight:800; font-size:16px;
  font-family:var(--font-display); line-height:1;
}
.rtg-podium-slot .rtg-podium-logo.rtg-logo--fallback{ font-size:18px; }
.rtg-podium-slot--1 .rtg-podium-logo.rtg-logo--fallback{ font-size:22px; }
.rtg-name{
  flex:1; min-width:0; font-size:14px; font-weight:600;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  color:var(--text);
}
.rtg-score{
  font-family:var(--font-mono); font-size:17px; font-weight:700;
  color:var(--warm); flex-shrink:0;
  font-variant-numeric:tabular-nums;
}

.rtg-empty{
  display:flex; flex-direction:column; align-items:center; gap:12px;
  padding:44px 20px; text-align:center; color:var(--text-muted);
}
.rtg-empty svg{ opacity:.4; }
.rtg-empty p{ margin:0; font-size:14px; }

/* Danger zones */
.rtg-zones{ display:flex; flex-direction:column; gap:14px; margin-top:22px; min-width:0; max-width:100%; }
.rtg-zone{
  border-radius:var(--radius-sm); padding:16px;
  border:1px solid var(--border);
  min-width:0; max-width:100%;
}
.rtg-zone--warn{
  background:color-mix(in srgb, var(--warm) 6%, var(--bg-card));
  border-color:color-mix(in srgb, var(--warm) 28%, var(--border));
}
.rtg-zone--danger{
  background:color-mix(in srgb, var(--hot) 6%, var(--bg-card));
  border-color:color-mix(in srgb, var(--hot) 28%, var(--border));
}
.rtg-zone-head{
  display:flex; align-items:center; flex-wrap:wrap; gap:8px;
  margin-bottom:12px; padding-bottom:10px;
  border-bottom:1px solid var(--border);
}
.rtg-zone-title{ font-size:14px; font-weight:700; }
.rtg-zone--warn .rtg-zone-title{ color:var(--warm); }
.rtg-zone--danger .rtg-zone-title{ color:var(--hot); }
.rtg-zone-sub{ font-size:12px; color:var(--text-muted); margin-left:auto; }
.rtg-row--zone-warn{
  border-color:color-mix(in srgb, var(--warm) 30%, var(--border)) !important;
  background:color-mix(in srgb, var(--warm) 5%, var(--bg-card)) !important;
}
.rtg-row--zone-danger{
  border-color:color-mix(in srgb, var(--hot) 30%, var(--border)) !important;
  background:color-mix(in srgb, var(--hot) 5%, var(--bg-card)) !important;
}

/* Week / year pickers */
.rtg-week-picker, .rtg-year-picker{ margin-bottom:16px; }
.rtg-week-btn{
  appearance:none; width:100%; max-width:420px;
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:11px 14px; border-radius:var(--radius-xs);
  border:1px solid var(--border); background:var(--bg-card);
  color:var(--text); font-size:14px; font-weight:500; cursor:pointer;
  font-family:var(--font-body);
  transition:border-color .18s, background .18s;
}
.rtg-week-btn:hover{ background:var(--bg-inset); border-color:var(--border-hover); }
.rtg-week-btn.is-open{
  border-color:color-mix(in srgb, var(--warm) 45%, var(--border));
}
.rtg-week-arrow{ opacity:.6; transition:transform .18s; flex-shrink:0; }
.rtg-week-btn.is-open .rtg-week-arrow{ transform:rotate(180deg); }

.rtg-year-select{
  appearance:none; width:100%; max-width:280px;
  padding:11px 36px 11px 14px; border-radius:var(--radius-xs);
  border:1px solid var(--border); background:var(--bg-card);
  color:var(--text); font-size:14px; font-weight:500; cursor:pointer;
  font-family:var(--font-body);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24'%3E%3Cpath fill='%23c9923e' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 12px center;
}
.rtg-year-select:focus{ outline:none; border-color:var(--border-hover); }

/* Calendar overlay */
.rtg-cal-overlay{
  position:fixed; inset:0; z-index:10000;
  display:flex; align-items:flex-start; justify-content:center;
  padding:20px; overflow-y:auto;
  background:color-mix(in srgb, var(--text) 45%, transparent);
  backdrop-filter:blur(6px);
}
.rtg-cal-overlay[hidden]{ display:none !important; }
.rtg-cal-modal{
  width:100%; max-width:480px; margin-top:8vh; margin-bottom:20px;
  padding:18px; display:flex; flex-direction:column; gap:12px;
}
.rtg-cal-head{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding-bottom:10px; border-bottom:1px solid var(--border);
}
.rtg-cal-nav{
  appearance:none; border:0; width:36px; height:36px; border-radius:8px;
  background:var(--bg-inset); color:var(--accent); cursor:pointer;
  font-size:20px; display:flex; align-items:center; justify-content:center;
}
.rtg-cal-nav:hover{ background:color-mix(in srgb, var(--accent) 12%, var(--bg-inset)); }
.rtg-cal-month{
  flex:1; text-align:center; font-family:var(--font-display);
  font-size:15px; font-weight:700; color:var(--text);
}
.rtg-cal-weekdays{
  display:grid; grid-template-columns:repeat(7, 1fr); gap:3px;
}
.rtg-cal-weekdays span{
  text-align:center; font-size:10px; font-weight:700;
  letter-spacing:.06em; text-transform:uppercase;
  color:var(--text-muted); padding:4px;
}
.rtg-cal-grid{ display:flex; flex-direction:column; gap:4px; }
.rtg-cal-week{
  border:1px solid var(--border); border-radius:8px; padding:8px 10px;
  background:var(--bg-inset); transition:all .15s;
}
.rtg-cal-week.is-available{ cursor:pointer; }
.rtg-cal-week.is-available:hover{
  background:var(--bg-card); border-color:var(--border-hover);
  transform:translateY(-1px);
}
.rtg-cal-week.is-selected{
  background:color-mix(in srgb, var(--warm) 12%, var(--bg-card));
  border-color:color-mix(in srgb, var(--warm) 40%, var(--border));
  cursor:pointer;
}
.rtg-cal-week.is-inactive{ opacity:.28; pointer-events:none; }
.rtg-cal-week.is-other-month{ opacity:.4; }
.rtg-cal-days{ display:flex; justify-content:space-between; gap:3px; }
.rtg-cal-day{
  flex:1; text-align:center; font-family:var(--font-mono);
  font-size:12px; font-weight:500; color:var(--text-secondary);
  padding:4px 2px; border-radius:4px;
}
.rtg-cal-week.is-selected .rtg-cal-day{
  color:var(--warm); font-weight:600;
  background:color-mix(in srgb, var(--warm) 10%, transparent);
}

@media (max-width:800px){
  .rtg-hero-inner{ grid-template-columns:1fr; }
  .rtg-hero-nav{ flex-direction:row; flex-wrap:wrap; }
  .rtg-hero-link{ flex:1; min-width:140px; }
  .rtg-zone-sub{ margin-left:0; width:100%; }
}

@media (max-width:640px){
  .rtg{ overflow-x:clip; }
  .rtg-panels{ padding:16px 14px 18px; }
  .rtg-podium{
    gap:6px;
    grid-template-columns:minmax(0, 1fr) minmax(0, 1.15fr) minmax(0, 1fr);
    padding:0 0 8px;
  }
  .rtg-podium-slot{ padding:10px 6px 10px; gap:6px; }
  .rtg-podium-slot--1{ padding-top:14px; padding-bottom:12px; }
  .rtg-podium-logo{ width:40px; height:40px; }
  .rtg-podium-slot--1 .rtg-podium-logo{ width:48px; height:48px; }
  .rtg-podium-medal{ width:26px; height:26px; font-size:12px; }
  .rtg-podium-name{ font-size:10px; }
  .rtg-podium-score{ font-size:12px; }
  .rtg-row{ gap:8px; padding:10px 10px; }
  .rtg-row:hover{ transform:none; }
  .rtg-rank{ flex:0 0 28px; }
  .rtg-medal{ width:26px; height:26px; font-size:11px; }
  .rtg-rank-num{ font-size:12px; }
  .rtg-name{ font-size:13px; }
  .rtg-score{ font-size:13px; }
  .rtg-logo{ width:34px; height:34px; }
  .rtg-week-btn, .rtg-year-select{ max-width:100%; }
  .rtg-cal-modal{ margin-top:4vh; }
}

/* ═══════════════════════════════════════════════════════════════
   Community suggestions — /suggestions
   Editorial idea board × forest ledger
   ═══════════════════════════════════════════════════════════════ */

.sgt{
  display:flex; flex-direction:column; gap:20px;
  width:100%; max-width:880px; margin:0 auto;
  min-width:0; padding-bottom:12px;
}

/* Hero */
.sgt-hero{
  position:relative; overflow:hidden; padding:0;
}
.sgt-hero-deco{
  position:absolute; inset:0; pointer-events:none; overflow:hidden;
}
.sgt-hero-glow{
  position:absolute; inset:-30% -15%;
  background:
    radial-gradient(ellipse 55% 45% at 12% 88%, color-mix(in srgb, var(--warm) 18%, transparent), transparent 70%),
    radial-gradient(ellipse 50% 40% at 88% 20%, color-mix(in srgb, var(--accent) 14%, transparent), transparent 68%),
    conic-gradient(from 210deg at 70% 100%,
      transparent 0deg,
      color-mix(in srgb, var(--warm) 10%, transparent) 50deg,
      transparent 100deg,
      color-mix(in srgb, var(--accent) 8%, transparent) 150deg,
      transparent 220deg);
  opacity:.85;
}
.sgt-hero-inner{
  position:relative; z-index:1;
  display:grid; grid-template-columns:1fr auto; gap:20px; align-items:center;
  padding:26px 28px;
}
.sgt-hero-icon{
  display:none;
}
.sgt-hero-text{ min-width:0; }
.sgt-eyebrow{
  font-family:var(--font-mono); font-size:10px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--warm); margin:0 0 8px;
}
.sgt-title{
  font-family:var(--font-display); font-size:clamp(26px, 4vw, 34px);
  font-weight:800; letter-spacing:-.03em; line-height:1.08;
  margin:0 0 8px; color:var(--text);
}
.sgt-lead{
  margin:0; font-size:14px; line-height:1.55; color:var(--text-secondary);
  max-width:46ch;
}
.sgt-hero-nav{
  display:flex; flex-direction:column; gap:8px; align-items:stretch;
}
.sgt-hero-cta{
  font-size:13px; padding:10px 16px; white-space:nowrap; text-align:center;
}
.sgt-stats{
  display:flex; flex-wrap:wrap; gap:8px;
  padding:0 28px 22px; margin-top:-6px; position:relative; z-index:1;
}
.sgt-stat{
  display:inline-flex; align-items:center; gap:6px;
  padding:6px 12px; border-radius:999px;
  font-size:12px; font-weight:600;
  border:1px solid var(--border); background:var(--bg-inset);
  color:var(--text-secondary); text-decoration:none;
  transition:border-color .18s, background .18s, color .18s;
}
.sgt-stat:hover{
  border-color:var(--border-hover); background:var(--bg-card); color:var(--text);
}
.sgt-stat--active{
  border-color:color-mix(in srgb, var(--warm) 40%, var(--border));
  background:color-mix(in srgb, var(--warm) 10%, var(--bg-card));
  color:var(--warm);
}
.sgt-stat-num{
  font-family:var(--font-mono); font-weight:700; color:var(--text);
}
.sgt-stat--active .sgt-stat-num{ color:var(--warm); }

/* Toolbar */
.sgt-board{ padding:0; overflow:hidden; min-width:0; }
.sgt-toolbar{
  display:grid; grid-template-columns:1fr auto auto auto;
  gap:8px; padding:14px 16px;
  border-bottom:1px solid var(--border);
  background:color-mix(in srgb, var(--bg-inset) 50%, transparent);
}
.sgt-search-wrap{ position:relative; min-width:0; }
.sgt-search-icon{
  position:absolute; left:12px; top:50%; transform:translateY(-50%);
  color:var(--text-muted); pointer-events:none; display:flex;
}
.sgt-input, .sgt-select, .sgt-textarea{
  width:100%; appearance:none;
  padding:10px 14px; border-radius:var(--radius-xs);
  border:1px solid var(--border); background:var(--bg-card);
  color:var(--text); font-size:14px; font-weight:500;
  font-family:var(--font-body);
  transition:border-color .18s, background .18s, box-shadow .18s;
}
.sgt-search{ padding-left:36px; }
.sgt-input:focus, .sgt-select:focus, .sgt-textarea:focus{
  outline:none; border-color:var(--border-hover);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 12%, transparent);
}
.sgt-input::placeholder, .sgt-textarea::placeholder{ color:var(--text-muted); }
.sgt-select{
  cursor:pointer; padding-right:32px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24'%3E%3Cpath fill='%23c9923e' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 10px center;
}
.sgt-filter-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:7px;
  padding:10px 16px; border-radius:var(--radius-xs);
  border:1px solid var(--border); background:var(--bg-card);
  color:var(--text-secondary); font-size:13px; font-weight:600;
  cursor:pointer; font-family:var(--font-body); white-space:nowrap;
  transition:background .18s, border-color .18s, color .18s;
}
.sgt-filter-btn:hover{
  background:var(--bg-inset); border-color:var(--border-hover); color:var(--text);
}

/* Idea cards */
.sgt-list{
  display:flex; flex-direction:column; gap:10px;
  padding:16px 16px 18px; min-width:0;
}
.sgt-card{
  display:flex; align-items:stretch; gap:0;
  border:1px solid var(--border); border-radius:var(--radius-sm);
  background:var(--bg-card); overflow:hidden; min-width:0;
  transition:border-color .2s, box-shadow .2s, transform .2s var(--ease-out);
}
.sgt-card:hover{
  border-color:color-mix(in srgb, var(--warm) 32%, var(--border));
  box-shadow:var(--shadow-card);
  transform:translateY(-1px);
}

/* Vote rail */
.sgt-vote{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:4px; padding:14px 12px; flex-shrink:0;
  border-right:1px solid var(--border);
  background:color-mix(in srgb, var(--bg-inset) 60%, var(--bg-card));
  min-width:54px;
}
.sgt-vote--lg{ padding:22px 14px; min-width:62px; align-self:stretch; }
.sgt-vote-btn{
  appearance:none; width:32px; height:32px; border-radius:9px;
  display:flex; align-items:center; justify-content:center;
  border:1px solid var(--border); background:var(--bg-card);
  color:var(--text-muted); cursor:pointer; padding:0;
  transition:background .15s, border-color .15s, color .15s, transform .15s;
}
.sgt-vote-btn:hover:not(:disabled){
  border-color:var(--border-hover); color:var(--text);
  background:var(--bg-inset); transform:translateY(-1px);
}
.sgt-vote-btn:disabled{ opacity:.35; cursor:default; }
.sgt-vote-btn--up[aria-pressed="true"]{
  border-color:color-mix(in srgb, var(--accent) 45%, var(--border));
  background:color-mix(in srgb, var(--accent) 12%, var(--bg-card));
  color:var(--accent);
}
.sgt-vote-btn--down[aria-pressed="true"]{
  border-color:color-mix(in srgb, var(--hot) 40%, var(--border));
  background:color-mix(in srgb, var(--hot) 10%, var(--bg-card));
  color:var(--hot);
}
.sgt-vote-score{
  font-family:var(--font-mono); font-size:14px; font-weight:800;
  color:var(--text-muted); line-height:1; padding:2px 0;
  font-variant-numeric:tabular-nums;
}
.sgt-vote-score--lg{ font-size:20px; padding:6px 0; }
.sgt-vote-score--pos{ color:var(--accent); }
.sgt-vote-score--neg{ color:var(--hot); }
.sgt-vote-spacer{ height:32px; }

.sgt-card-body{
  flex:1; min-width:0; padding:14px 16px 14px 18px;
  text-decoration:none; color:inherit;
  display:flex; flex-direction:column; gap:8px;
}
.sgt-card-head{
  display:flex; align-items:flex-start; justify-content:space-between;
  gap:10px; flex-wrap:wrap;
}
.sgt-card-title{
  margin:0; font-size:15px; font-weight:700; line-height:1.35;
  color:var(--text); flex:1; min-width:0;
}
.sgt-card-body:hover .sgt-card-title{ color:var(--warm); }
.sgt-card-desc{
  margin:0; font-size:13px; line-height:1.55; color:var(--text-secondary);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  overflow:hidden;
}
.sgt-card-meta{
  display:flex; align-items:center; flex-wrap:wrap; gap:8px;
  font-size:12px; color:var(--text-muted); margin-top:auto;
}
.sgt-meta-item{ display:inline-flex; align-items:center; gap:4px; }

/* Status & tags */
.sgt-badges{ display:flex; flex-wrap:wrap; gap:6px; flex-shrink:0; }
.sgt-status, .sgt-tag{
  display:inline-flex; align-items:center;
  padding:4px 10px; border-radius:999px;
  font-size:11px; font-weight:700; letter-spacing:.02em;
  border:1px solid var(--border);
}
.sgt-status--new{
  border-color:color-mix(in srgb, var(--secondary) 35%, var(--border));
  background:color-mix(in srgb, var(--secondary) 10%, transparent);
  color:var(--secondary);
}
.sgt-status--planned{
  border-color:color-mix(in srgb, var(--accent) 35%, var(--border));
  background:color-mix(in srgb, var(--accent) 10%, transparent);
  color:var(--accent);
}
.sgt-status--rejected{
  border-color:color-mix(in srgb, var(--hot) 35%, var(--border));
  background:color-mix(in srgb, var(--hot) 8%, transparent);
  color:var(--hot);
}
.sgt-status--implemented{
  border-color:color-mix(in srgb, var(--warm) 40%, var(--border));
  background:color-mix(in srgb, var(--warm) 12%, transparent);
  color:var(--warm);
}
.sgt-tag{
  font-weight:600; color:var(--text-secondary);
  background:var(--bg-inset);
}

/* Empty */
.sgt-empty{
  display:flex; flex-direction:column; align-items:center; gap:12px;
  padding:48px 24px; text-align:center; color:var(--text-muted);
}
.sgt-empty svg{ opacity:.45; }
.sgt-empty-title{ margin:0; font-size:16px; font-weight:700; color:var(--text-secondary); }
.sgt-empty-text{ margin:0; font-size:14px; max-width:36ch; line-height:1.5; }

/* Back link */
.sgt-back{
  display:inline-flex; align-items:center; gap:8px;
  color:var(--text-muted); font-size:13px; font-weight:600;
  text-decoration:none; margin-bottom:4px;
  transition:color .15s;
}
.sgt-back:hover{ color:var(--text); }

/* View — idea body */
.sgt-idea{
  display:flex; align-items:stretch; min-width:0;
  border:1px solid var(--border); border-radius:var(--radius-sm);
  background:var(--bg-card); overflow:hidden;
  box-shadow:var(--shadow-card);
}
.sgt-idea-body{ flex:1; min-width:0; padding:22px 24px; }
.sgt-idea-title{
  margin:0 0 12px; font-family:var(--font-display);
  font-size:clamp(22px, 3.5vw, 28px); font-weight:800;
  letter-spacing:-.02em; line-height:1.2; color:var(--text);
}
.sgt-idea-meta{
  display:flex; flex-wrap:wrap; align-items:center; gap:8px;
  margin-bottom:18px; padding-bottom:14px;
  border-bottom:1px solid var(--border);
}
.sgt-idea-views{ font-size:12px; color:var(--text-muted); }
.sgt-prose{
  font-size:15px; line-height:1.7; color:var(--text-secondary);
  white-space:pre-wrap; word-break:break-word;
}
.sgt-idea-foot{
  display:flex; flex-wrap:wrap; align-items:center; gap:10px;
  margin-top:18px; padding-top:14px; border-top:1px solid var(--border);
  font-size:12px; color:var(--text-muted);
}
.sgt-dot{
  width:3px; height:3px; border-radius:50%;
  background:var(--text-muted); opacity:.6;
}

/* Thread */
.sgt-thread{ padding:0; overflow:hidden; min-width:0; }
.sgt-thread-head{
  display:flex; align-items:center; gap:10px;
  padding:16px 20px; border-bottom:1px solid var(--border);
  font-size:14px; font-weight:700; color:var(--text-secondary);
}
.sgt-thread-count{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:24px; height:24px; padding:0 8px; border-radius:999px;
  font-family:var(--font-mono); font-size:12px; font-weight:700;
  background:var(--bg-inset); color:var(--text-muted);
}
.sgt-comments{
  display:flex; flex-direction:column; gap:10px;
  padding:14px 16px; min-width:0;
}
.sgt-comment{
  padding:14px 16px; border-radius:var(--radius-xs);
  border:1px solid var(--border); background:var(--bg-inset);
  min-width:0;
}
.sgt-comment--staff{
  border-color:color-mix(in srgb, var(--accent) 30%, var(--border));
  background:color-mix(in srgb, var(--accent) 6%, var(--bg-card));
  border-left-width:3px; border-left-color:var(--accent);
}
.sgt-comment-head{
  display:flex; flex-wrap:wrap; align-items:center; gap:8px;
  margin-bottom:8px;
}
.sgt-comment-author{
  font-size:13px; font-weight:700; color:var(--text);
}
.sgt-comment--staff .sgt-comment-author{ color:var(--accent); }
.sgt-staff-badge{
  font-size:10px; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
  padding:2px 8px; border-radius:999px;
  border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);
  background:color-mix(in srgb, var(--accent) 10%, transparent);
  color:var(--accent);
}
.sgt-comment-time{ font-size:11px; color:var(--text-muted); }
.sgt-comment-text{
  font-size:14px; line-height:1.6; color:var(--text-secondary);
  white-space:pre-wrap; word-break:break-word;
}
.sgt-comment-img{
  display:block; margin-top:10px; max-width:min(280px, 100%);
  border-radius:var(--radius-xs); border:1px solid var(--border);
  cursor:pointer; transition:opacity .15s, transform .15s;
}
.sgt-comment-img:hover{ opacity:.9; transform:scale(1.01); }

/* Compose */
.sgt-compose{
  padding:16px 18px; border-top:1px solid var(--border);
  background:color-mix(in srgb, var(--bg-inset) 40%, transparent);
}
.sgt-compose-label{
  display:block; font-size:12px; font-weight:700;
  color:var(--text-secondary); margin-bottom:8px;
}
.sgt-compose-actions{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:10px;
}
.sgt-file{
  flex:1; min-width:min(100%, 200px);
  padding:9px 12px; font-size:13px; cursor:pointer;
}
.sgt-file::file-selector-button{
  margin-right:10px; padding:5px 12px; border-radius:8px;
  border:1px solid var(--accent-border);
  background:color-mix(in srgb, var(--accent) 10%, transparent);
  color:var(--accent); font-weight:600; font-size:12px;
  cursor:pointer; font-family:var(--font-body);
}
.sgt-hint{
  padding:14px 18px; font-size:13px; color:var(--text-muted);
  border-top:1px solid var(--border);
}
.sgt-hint a{ color:var(--accent); font-weight:600; text-decoration:none; }
.sgt-hint a:hover{ text-decoration:underline; }

/* New idea form */
.sgt-form-card{ padding:0; overflow:hidden; }
.sgt-notice{
  display:flex; align-items:flex-start; gap:12px;
  padding:14px 16px; border-radius:var(--radius-sm);
  border:1px solid color-mix(in srgb, var(--warm) 35%, var(--border));
  background:color-mix(in srgb, var(--warm) 8%, var(--bg-card));
  color:var(--text-secondary); font-size:13px; line-height:1.55;
}
.sgt-notice svg{ flex-shrink:0; color:var(--warm); margin-top:1px; }
.sgt-section{
  padding:22px 24px;
  border-top:1px solid var(--border);
}
.sgt-section:first-child{ border-top:0; }
.sgt-section-title{
  margin:0 0 16px; font-family:var(--font-mono);
  font-size:10px; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--warm);
}
.sgt-field{ display:flex; flex-direction:column; gap:6px; margin-bottom:14px; }
.sgt-field:last-child{ margin-bottom:0; }
.sgt-label{
  font-size:13px; font-weight:600; color:var(--text-secondary);
}
.sgt-label-hint{ font-weight:400; color:var(--text-muted); }
.sgt-label-row{
  display:flex; align-items:baseline; justify-content:space-between; gap:10px;
}
.sgt-char{
  font-family:var(--font-mono); font-size:11px; color:var(--text-muted);
}
.sgt-char--warn{ color:var(--warm); }
.sgt-field-note{ font-size:12px; color:var(--text-muted); margin:0; }
.sgt-textarea{ resize:vertical; min-height:140px; line-height:1.6; }
.sgt-form-actions{
  display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  padding:18px 24px; border-top:1px solid var(--border);
  background:color-mix(in srgb, var(--bg-inset) 35%, transparent);
}

/* Image modal */
.sgt-modal{
  position:fixed; inset:0; z-index:10000;
  display:none; align-items:center; justify-content:center; flex-direction:column; gap:16px;
  padding:20px; background:color-mix(in srgb, var(--text) 55%, transparent);
  backdrop-filter:blur(8px);
}
.sgt-modal.is-open{ display:flex; }
.sgt-modal-pic{
  max-width:min(92vw, 900px); max-height:80vh;
  border-radius:var(--radius-sm); box-shadow:var(--shadow-glow);
  border:1px solid var(--border);
}

@media (max-width:800px){
  .sgt-hero-inner{ grid-template-columns:1fr; }
  .sgt-hero-nav{ flex-direction:row; flex-wrap:wrap; }
  .sgt-hero-cta{ flex:1; min-width:140px; }
  .sgt-stats{ padding:0 18px 18px; }
  .sgt-toolbar{
    grid-template-columns:1fr 1fr;
  }
  .sgt-search-wrap{ grid-column:1 / -1; }
  .sgt-filter-btn{ grid-column:1 / -1; }
}

@media (max-width:640px){
  .sgt{ overflow-x:clip; }
  .sgt-stats{ gap:6px; }
  .sgt-stat{ font-size:11px; padding:5px 10px; }
  .sgt-vote{ min-width:48px; padding:12px 8px; }
  .sgt-vote--lg{ min-width:52px; padding:16px 10px; }
  .sgt-card-body{ padding:12px 14px; }
  .sgt-idea-body{ padding:16px; }
  .sgt-section{ padding:18px 16px; }
  .sgt-form-actions{ padding:16px; flex-direction:column; align-items:stretch; }
  .sgt-form-actions .btn-primary{ width:100%; justify-content:center; }
  .sgt-compose-actions{ flex-direction:column; align-items:stretch; }
  .sgt-compose-actions .btn-primary{ width:100%; justify-content:center; }
  .sgt-card:hover{ transform:none; }
}

/* ═══════════════════════════════════════════════════════════════
   QA Testing program — /testing/*
   Preflight mission log × forest diagnostics
   ═══════════════════════════════════════════════════════════════ */

.tst{
  display:flex; flex-direction:column; gap:20px;
  width:100%; max-width:900px; margin:0 auto;
  min-width:0; padding-bottom:12px;
}

.tst-hero{
  position:relative; overflow:hidden; padding:0;
}
.tst-hero-deco{
  position:absolute; inset:0; pointer-events:none; overflow:hidden;
}
.tst-hero-grid{
  position:absolute; inset:0; opacity:.35;
  background-image:
    linear-gradient(color-mix(in srgb, var(--accent) 8%, transparent) 1px, transparent 1px),
    linear-gradient(90deg, color-mix(in srgb, var(--accent) 8%, transparent) 1px, transparent 1px);
  background-size:28px 28px;
  mask-image:radial-gradient(ellipse 80% 70% at 50% 40%, #000 20%, transparent 75%);
}
.tst-hero-glow{
  position:absolute; inset:-25% -10%;
  background:
    radial-gradient(ellipse 50% 45% at 15% 85%, color-mix(in srgb, var(--accent) 16%, transparent), transparent 70%),
    radial-gradient(ellipse 45% 40% at 90% 15%, color-mix(in srgb, var(--warm) 14%, transparent), transparent 68%);
}
.tst-hero-inner{
  position:relative; z-index:1;
  display:grid; grid-template-columns:1fr auto; gap:20px; align-items:center;
  padding:26px 28px;
}
.tst-hero-text{ min-width:0; }
.tst-eyebrow{
  font-family:var(--font-mono); font-size:10px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--accent); margin:0 0 8px;
}
.tst-title{
  font-family:var(--font-display); font-size:clamp(26px, 4vw, 34px);
  font-weight:800; letter-spacing:-.03em; line-height:1.08;
  margin:0 0 8px; color:var(--text);
}
.tst-lead{
  margin:0; font-size:14px; line-height:1.55; color:var(--text-secondary);
  max-width:48ch;
}
.tst-hero-nav{
  display:flex; flex-direction:column; gap:8px; align-items:stretch;
}
.tst-hero-actions{
  display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end;
}
.tst-hero-btn{
  font-size:13px; padding:10px 16px; white-space:nowrap; text-align:center;
}

.tst-back{
  display:inline-flex; align-items:center; gap:8px;
  color:var(--text-muted); font-size:13px; font-weight:600;
  text-decoration:none; transition:color .15s;
}
.tst-back:hover{ color:var(--text); }

/* Join benefits */
.tst-benefits{
  display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:12px;
}
.tst-benefit{
  padding:18px 16px; border-radius:var(--radius-sm);
  border:1px solid var(--border); background:var(--bg-card);
  display:flex; flex-direction:column; gap:12px;
  transition:border-color .2s, transform .2s var(--ease-out);
}
.tst-benefit:hover{
  border-color:var(--border-hover); transform:translateY(-2px);
}
.tst-benefit-icon{
  width:40px; height:40px; border-radius:12px;
  display:flex; align-items:center; justify-content:center;
  border:1px solid var(--border);
}
.tst-benefit-icon--accent{
  background:color-mix(in srgb, var(--accent) 10%, var(--bg-inset));
  border-color:color-mix(in srgb, var(--accent) 30%, var(--border));
  color:var(--accent);
}
.tst-benefit-icon--warm{
  background:color-mix(in srgb, var(--warm) 10%, var(--bg-inset));
  border-color:color-mix(in srgb, var(--warm) 30%, var(--border));
  color:var(--warm);
}
.tst-benefit-icon--secondary{
  background:color-mix(in srgb, var(--secondary) 10%, var(--bg-inset));
  border-color:color-mix(in srgb, var(--secondary) 28%, var(--border));
  color:var(--secondary);
}
.tst-benefit-title{ font-size:14px; font-weight:700; color:var(--text); margin:0; }
.tst-benefit-desc{ font-size:13px; line-height:1.5; color:var(--text-secondary); margin:0; }

.tst-notice{
  display:flex; align-items:flex-start; gap:12px;
  padding:14px 16px; border-radius:var(--radius-sm);
  border:1px solid color-mix(in srgb, var(--accent) 30%, var(--border));
  background:color-mix(in srgb, var(--accent) 7%, var(--bg-card));
  font-size:13px; line-height:1.55; color:var(--text-secondary);
}
.tst-notice svg{ flex-shrink:0; color:var(--accent); margin-top:1px; }

/* Board / filters */
.tst-board{ padding:0; overflow:hidden; min-width:0; }
.tst-toolbar{
  display:grid; grid-template-columns:1fr auto auto auto;
  gap:8px; padding:14px 16px;
  border-bottom:1px solid var(--border);
  background:color-mix(in srgb, var(--bg-inset) 50%, transparent);
}
.tst-input, .tst-select, .tst-textarea{
  width:100%; appearance:none;
  padding:10px 14px; border-radius:var(--radius-xs);
  border:1px solid var(--border); background:var(--bg-card);
  color:var(--text); font-size:14px; font-weight:500;
  font-family:var(--font-body);
  transition:border-color .18s, box-shadow .18s;
}
.tst-search-wrap{ position:relative; min-width:0; }
.tst-search-icon{
  position:absolute; left:12px; top:50%; transform:translateY(-50%);
  color:var(--text-muted); pointer-events:none; display:flex;
}
.tst-search{ padding-left:36px; }
.tst-input:focus, .tst-select:focus, .tst-textarea:focus{
  outline:none; border-color:var(--border-hover);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 12%, transparent);
}
.tst-input::placeholder, .tst-textarea::placeholder{ color:var(--text-muted); }
.tst-select{
  cursor:pointer; padding-right:32px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24'%3E%3Cpath fill='%232d5240' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 10px center;
}
.tst-filter-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:7px;
  padding:10px 16px; border-radius:var(--radius-xs);
  border:1px solid var(--border); background:var(--bg-card);
  color:var(--text-secondary); font-size:13px; font-weight:600;
  cursor:pointer; font-family:var(--font-body); white-space:nowrap;
  transition:background .18s, border-color .18s, color .18s;
}
.tst-filter-btn:hover{
  background:var(--bg-inset); border-color:var(--border-hover); color:var(--text);
}

/* Ticket cards */
.tst-list{
  display:flex; flex-direction:column; gap:8px;
  padding:16px; min-width:0;
}
.tst-ticket{
  display:grid; grid-template-columns:auto 1fr auto auto;
  gap:14px; align-items:center;
  padding:14px 16px; border-radius:var(--radius-sm);
  border:1px solid var(--border); background:var(--bg-card);
  text-decoration:none; color:inherit; min-width:0;
  border-left:3px solid color-mix(in srgb, var(--accent) 45%, var(--border));
  transition:border-color .18s, background .18s, transform .18s var(--ease-out);
}
.tst-ticket:hover{
  border-color:color-mix(in srgb, var(--accent) 35%, var(--border));
  border-left-color:var(--accent);
  background:var(--bg-inset); transform:translateX(3px);
}
.tst-ticket-id{
  font-family:var(--font-mono); font-size:13px; font-weight:700;
  color:var(--accent); white-space:nowrap;
}
.tst-ticket-main{ min-width:0; }
.tst-ticket-title{
  font-size:14px; font-weight:700; color:var(--text);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  margin:0 0 4px;
}
.tst-ticket-meta{
  font-size:12px; color:var(--text-muted);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.tst-ticket-badges{ display:flex; flex-wrap:wrap; gap:5px; justify-content:flex-end; }
.tst-ticket-date{
  font-family:var(--font-mono); font-size:11px; color:var(--text-muted);
  white-space:nowrap;
}

/* Badges */
.tst-badge{
  display:inline-flex; align-items:center;
  padding:4px 10px; border-radius:999px;
  font-size:11px; font-weight:700; letter-spacing:.02em;
  border:1px solid var(--border); white-space:nowrap;
}
.tst-badge--new, .tst-badge--need_info, .tst-badge--waiting_release{
  border-color:color-mix(in srgb, var(--secondary) 35%, var(--border));
  background:color-mix(in srgb, var(--secondary) 10%, transparent);
  color:var(--secondary);
}
.tst-badge--open, .tst-badge--pending, .tst-badge--pri-medium{
  border-color:color-mix(in srgb, var(--warm) 35%, var(--border));
  background:color-mix(in srgb, var(--warm) 10%, transparent);
  color:var(--warm);
}
.tst-badge--in_progress, .tst-badge--testing, .tst-badge--in_testing,
.tst-badge--confirmed, .tst-badge--verified, .tst-badge--fixed,
.tst-badge--fixed_in_beta, .tst-badge--resolved{
  border-color:color-mix(in srgb, var(--accent) 35%, var(--border));
  background:color-mix(in srgb, var(--accent) 10%, transparent);
  color:var(--accent);
}
.tst-badge--rejected, .tst-badge--wont_fix, .tst-badge--not_a_bug,
.tst-badge--pri-high, .tst-badge--pri-critical{
  border-color:color-mix(in srgb, var(--hot) 35%, var(--border));
  background:color-mix(in srgb, var(--hot) 8%, transparent);
  color:var(--hot);
}
.tst-badge--closed, .tst-badge--duplicate, .tst-badge--pri-low, .tst-badge--category{
  border-color:var(--border);
  background:var(--bg-inset); color:var(--text-muted);
}
.tst-badge--points{
  border-color:color-mix(in srgb, var(--warm) 40%, var(--border));
  background:color-mix(in srgb, var(--warm) 12%, transparent);
  color:var(--warm);
}

/* Empty */
.tst-empty{
  display:flex; flex-direction:column; align-items:center; gap:12px;
  padding:48px 24px; text-align:center; color:var(--text-muted);
}
.tst-empty svg{ opacity:.45; }
.tst-empty-title{ margin:0; font-size:16px; font-weight:700; color:var(--text-secondary); }
.tst-empty-text{ margin:0; font-size:14px; max-width:36ch; line-height:1.5; }

/* Exchange */
.tst-balance{
  display:grid; grid-template-columns:1fr 1fr; gap:12px;
}
.tst-stat{
  padding:18px 20px; border-radius:var(--radius-sm);
  border:1px solid var(--border); background:var(--bg-card);
  display:flex; flex-direction:column; gap:6px;
}
.tst-stat--points{
  border-color:color-mix(in srgb, var(--warm) 35%, var(--border));
  background:linear-gradient(145deg, color-mix(in srgb, var(--warm) 8%, var(--bg-card)), var(--bg-card));
}
.tst-stat--rep{
  border-color:color-mix(in srgb, var(--accent) 35%, var(--border));
  background:linear-gradient(145deg, color-mix(in srgb, var(--accent) 8%, var(--bg-card)), var(--bg-card));
}
.tst-stat-label{ font-size:12px; font-weight:600; color:var(--text-muted); }
.tst-stat-value{
  font-family:var(--font-display); font-size:clamp(28px, 5vw, 36px);
  font-weight:800; line-height:1; letter-spacing:-.02em;
}
.tst-stat--points .tst-stat-value{ color:var(--warm); }
.tst-stat--rep .tst-stat-value{ color:var(--accent); }
.tst-rate{
  display:flex; align-items:center; gap:8px;
  font-size:12px; color:var(--text-muted);
  padding:10px 14px; border-radius:var(--radius-xs);
  border:1px solid var(--border); background:var(--bg-inset);
}
.tst-rate-dot{
  width:7px; height:7px; border-radius:50%;
  background:var(--warm); flex-shrink:0;
}
.tst-exchange-card{ padding:22px 24px; }
.tst-preview{
  display:flex; align-items:center; justify-content:center; gap:16px;
  padding:20px; margin-bottom:20px; border-radius:var(--radius-sm);
  border:1px solid var(--border); background:var(--bg-inset);
}
.tst-preview-col{ text-align:center; }
.tst-preview-num{
  font-family:var(--font-display); font-size:clamp(28px, 5vw, 36px);
  font-weight:800; line-height:1; display:block;
}
.tst-preview-num--pts{ color:var(--warm); }
.tst-preview-num--rep{ color:var(--accent); }
.tst-preview-lbl{ font-size:12px; color:var(--text-muted); margin-top:4px; }
.tst-preview-arrow{ font-size:22px; color:var(--text-muted); }
.tst-slider{
  -webkit-appearance:none; appearance:none;
  width:100%; height:6px; border-radius:6px; outline:none; cursor:pointer;
  background:linear-gradient(
    to right,
    var(--warm) var(--slider-pct, 100%),
    color-mix(in srgb, var(--border) 80%, transparent) var(--slider-pct, 100%)
  );
}
.tst-slider::-webkit-slider-thumb{
  -webkit-appearance:none; width:22px; height:22px; border-radius:50%;
  background:linear-gradient(145deg, color-mix(in srgb, var(--warm) 90%, white), var(--warm));
  border:2px solid var(--bg-card);
  box-shadow:0 4px 12px color-mix(in srgb, var(--warm) 35%, transparent);
  cursor:pointer;
}
.tst-slider::-moz-range-thumb{
  width:22px; height:22px; border-radius:50%;
  background:var(--warm); border:2px solid var(--bg-card); cursor:pointer;
}
.tst-slider--fixed{
  height:6px; border-radius:6px; background:var(--warm); pointer-events:none;
}
.tst-slider-limits{
  display:flex; justify-content:space-between;
  font-family:var(--font-mono); font-size:11px; color:var(--text-muted);
  margin:8px 0 16px;
}
.tst-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:18px; }
.tst-chip{
  padding:7px 14px; border-radius:999px; font-size:12px; font-weight:700;
  border:1px solid var(--border); background:var(--bg-inset);
  color:var(--text-secondary); cursor:pointer; font-family:var(--font-body);
  transition:background .15s, border-color .15s, color .15s;
}
.tst-chip:hover, .tst-chip.is-active{
  border-color:color-mix(in srgb, var(--warm) 40%, var(--border));
  background:color-mix(in srgb, var(--warm) 12%, var(--bg-card));
  color:var(--warm);
}
.tst-chip--all{ color:var(--warm); }

/* Form */
.tst-form-card{ padding:0; overflow:hidden; }
.tst-section{
  padding:22px 24px; border-top:1px solid var(--border);
}
.tst-section:first-child{ border-top:0; }
.tst-section-title{
  margin:0 0 16px; font-family:var(--font-mono);
  font-size:10px; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--accent);
}
.tst-row{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.tst-field{ display:flex; flex-direction:column; gap:6px; margin-bottom:14px; }
.tst-field:last-child{ margin-bottom:0; }
.tst-label{ font-size:13px; font-weight:600; color:var(--text-secondary); }
.tst-label-hint{ font-weight:400; color:var(--text-muted); }
.tst-textarea{ resize:vertical; min-height:100px; line-height:1.55; }
.tst-file-list{ display:flex; flex-direction:column; gap:8px; }
.tst-file{
  padding:9px 12px; font-size:13px; cursor:pointer;
}
.tst-file::file-selector-button{
  margin-right:10px; padding:5px 12px; border-radius:8px;
  border:1px solid var(--accent-border);
  background:color-mix(in srgb, var(--accent) 10%, transparent);
  color:var(--accent); font-weight:600; font-size:12px;
  cursor:pointer; font-family:var(--font-body);
}
.tst-field-note{ font-size:12px; color:var(--text-muted); margin:4px 0 0; }
.tst-form-actions{
  display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  padding:18px 24px; border-top:1px solid var(--border);
  background:color-mix(in srgb, var(--bg-inset) 35%, transparent);
}

/* Ticket view */
.tst-case{
  padding:20px 22px; border-bottom:1px solid var(--border);
}
.tst-case-top{
  display:flex; align-items:flex-start; gap:14px; flex-wrap:wrap;
  margin-bottom:12px;
}
.tst-case-id{
  font-family:var(--font-mono); font-size:12px; font-weight:700;
  color:var(--accent); padding:6px 10px; border-radius:8px;
  border:1px solid color-mix(in srgb, var(--accent) 30%, var(--border));
  background:color-mix(in srgb, var(--accent) 8%, transparent);
}
.tst-case-title{
  flex:1; min-width:0; margin:0;
  font-family:var(--font-display); font-size:clamp(20px, 3.2vw, 26px);
  font-weight:800; letter-spacing:-.02em; line-height:1.2;
}
.tst-shots{
  display:flex; gap:8px; flex-wrap:wrap; padding-top:14px;
  border-top:1px solid var(--border); margin-top:14px;
}
.tst-shot{
  width:96px; height:64px; object-fit:cover; border-radius:8px;
  border:1px solid var(--border); cursor:pointer;
  transition:opacity .15s, transform .15s, border-color .15s;
}
.tst-shot:hover{
  opacity:.9; transform:scale(1.02);
  border-color:color-mix(in srgb, var(--accent) 40%, var(--border));
}

/* Comms log */
.tst-comms{ padding:0; overflow:hidden; display:flex; flex-direction:column; min-width:0; }
.tst-comms-head{
  padding:14px 18px; border-bottom:1px solid var(--border);
  font-size:13px; font-weight:700; color:var(--text-secondary);
  display:flex; align-items:center; gap:8px;
}
.tst-timeline{
  display:flex; flex-direction:column; gap:8px;
  padding:16px; max-height:min(56vh, 520px); overflow-y:auto;
  min-width:0;
}
.tst-timeline::-webkit-scrollbar{ width:5px; }
.tst-timeline::-webkit-scrollbar-thumb{
  background:color-mix(in srgb, var(--border) 80%, transparent);
  border-radius:4px;
}
.tst-msg{
  display:flex; flex-direction:column; max-width:min(78%, 520px);
  margin-bottom:2px;
}
.tst-msg--user{ align-self:flex-end; align-items:flex-end; }
.tst-msg--staff{ align-self:flex-start; align-items:flex-start; }
.tst-msg-sender{
  font-size:11px; font-weight:700; color:var(--text-muted);
  margin-bottom:4px; padding:0 4px;
}
.tst-msg--staff .tst-msg-sender{ color:var(--accent); }
.tst-msg-bubble{
  padding:11px 14px; border-radius:14px;
  font-size:14px; line-height:1.55; color:var(--text-secondary);
  word-break:break-word; border:1px solid var(--border);
}
.tst-msg--user .tst-msg-bubble{
  background:color-mix(in srgb, var(--accent) 8%, var(--bg-card));
  border-color:color-mix(in srgb, var(--accent) 22%, var(--border));
  border-bottom-right-radius:5px; color:var(--text);
}
.tst-msg--staff .tst-msg-bubble{
  background:var(--bg-inset);
  border-bottom-left-radius:5px;
}
.tst-msg-time{
  font-family:var(--font-mono); font-size:10px; color:var(--text-muted);
  margin-top:4px; padding:0 4px;
}
.tst-msg-img{
  display:block; margin-top:8px; max-width:min(260px, 100%);
  border-radius:8px; border:1px solid var(--border); cursor:pointer;
}
.tst-event{
  display:flex; align-items:center; gap:10px; padding:4px 0;
}
.tst-event-line{
  flex:1; height:1px; background:var(--border); min-width:20px;
}
.tst-event-text{
  font-size:11px; color:var(--text-muted); text-align:center;
  padding:6px 12px; border-radius:999px;
  border:1px solid var(--border); background:var(--bg-inset);
  line-height:1.45; max-width:90%;
}
.tst-compose{
  display:flex; gap:10px; align-items:flex-end;
  padding:14px 16px; border-top:1px solid var(--border);
  background:color-mix(in srgb, var(--bg-inset) 40%, transparent);
}
.tst-compose .tst-textarea{
  flex:1; min-height:44px; max-height:160px; resize:none;
  line-height:1.45;
}

/* Modal */
.tst-modal{
  position:fixed; inset:0; z-index:10000;
  display:none; align-items:center; justify-content:center; flex-direction:column; gap:16px;
  padding:20px; background:color-mix(in srgb, var(--text) 55%, transparent);
  backdrop-filter:blur(8px);
}
.tst-modal.is-open{ display:flex; }
.tst-modal-pic{
  max-width:min(92vw, 900px); max-height:80vh;
  border-radius:var(--radius-sm); box-shadow:var(--shadow-glow);
  border:1px solid var(--border);
}

@media (max-width:800px){
  .tst-hero-inner{ grid-template-columns:1fr; }
  .tst-hero-actions{ justify-content:stretch; }
  .tst-hero-btn{ flex:1; min-width:140px; }
  .tst-benefits{ grid-template-columns:1fr; }
  .tst-toolbar{ grid-template-columns:1fr 1fr; }
  .tst-search-wrap{ grid-column:1 / -1; }
  .tst-filter-btn{ grid-column:1 / -1; }
  .tst-ticket{
    grid-template-columns:auto 1fr;
    grid-template-rows:auto auto;
  }
  .tst-ticket-badges{ grid-column:1 / -1; justify-content:flex-start; }
  .tst-ticket-date{ grid-column:2; justify-self:end; }
}

@media (max-width:640px){
  .tst{ overflow-x:clip; }
  .tst-balance{ grid-template-columns:1fr; }
  .tst-row{ grid-template-columns:1fr; }
  .tst-section{ padding:18px 16px; }
  .tst-form-actions{ padding:16px; flex-direction:column; align-items:stretch; }
  .tst-form-actions .btn-primary{ width:100%; justify-content:center; }
  .tst-compose{ flex-direction:column; align-items:stretch; }
  .tst-compose .btn-primary{ width:100%; justify-content:center; }
  .tst-ticket:hover{ transform:none; }
  .tst-ticket-title, .tst-ticket-meta{ white-space:normal; }
  .tst-msg{ max-width:92%; }
}

/* ═══════════════════════════════════════════════════════════════
   Support — /support/*
   Signal tower × parchment help desk
   ═══════════════════════════════════════════════════════════════ */

.sup{
  display:flex; flex-direction:column; gap:20px;
  width:100%; max-width:860px; margin:0 auto;
  min-width:0; padding-bottom:12px;
}

.sup-hero{
  position:relative; overflow:hidden; padding:0;
}
.sup-hero-deco{
  position:absolute; inset:0; pointer-events:none; overflow:hidden;
}
.sup-hero-rings{
  position:absolute; right:-8%; top:50%; transform:translateY(-50%);
  width:min(280px, 55vw); height:min(280px, 55vw);
  border-radius:50%;
  border:1px solid color-mix(in srgb, var(--secondary) 18%, transparent);
  box-shadow:
    0 0 0 24px color-mix(in srgb, var(--secondary) 4%, transparent),
    0 0 0 48px color-mix(in srgb, var(--secondary) 2%, transparent);
  opacity:.7;
}
.sup-hero-glow{
  position:absolute; inset:-20% -5%;
  background:
    radial-gradient(ellipse 50% 50% at 85% 50%, color-mix(in srgb, var(--secondary) 14%, transparent), transparent 70%),
    radial-gradient(ellipse 40% 45% at 10% 90%, color-mix(in srgb, var(--warm) 10%, transparent), transparent 68%);
}
.sup-hero-inner{
  position:relative; z-index:1;
  display:grid; grid-template-columns:1fr auto; gap:20px; align-items:center;
  padding:26px 28px;
}
.sup-hero-text{ min-width:0; }
.sup-eyebrow{
  font-family:var(--font-mono); font-size:10px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--secondary); margin:0 0 8px;
}
.sup-title{
  font-family:var(--font-display); font-size:clamp(26px, 4vw, 34px);
  font-weight:800; letter-spacing:-.03em; line-height:1.08;
  margin:0 0 8px; color:var(--text);
}
.sup-lead{
  margin:0; font-size:14px; line-height:1.55; color:var(--text-secondary);
  max-width:48ch;
}
.sup-hero-nav{ display:flex; align-items:center; }
.sup-hero-btn{
  font-size:13px; padding:10px 18px; white-space:nowrap;
  display:inline-flex; align-items:center; gap:8px;
}

.sup-back{
  display:inline-flex; align-items:center; gap:8px;
  color:var(--text-muted); font-size:13px; font-weight:600;
  text-decoration:none; transition:color .15s;
}
.sup-back:hover{ color:var(--text); }

.sup-board{ padding:0; overflow:hidden; min-width:0; }

.sup-list{
  display:flex; flex-direction:column; gap:8px;
  padding:16px; min-width:0;
}
.sup-ticket{
  display:grid; grid-template-columns:auto 1fr auto auto;
  gap:14px; align-items:center;
  padding:14px 16px; border-radius:var(--radius-sm);
  border:1px solid var(--border); background:var(--bg-card);
  text-decoration:none; color:inherit; min-width:0;
  border-left:3px solid color-mix(in srgb, var(--secondary) 45%, var(--border));
  transition:border-color .18s, background .18s, transform .18s var(--ease-out);
}
.sup-ticket:hover{
  border-color:color-mix(in srgb, var(--secondary) 35%, var(--border));
  background:var(--bg-inset); transform:translateX(3px);
}
.sup-ticket--bug{
  border-left-color:color-mix(in srgb, var(--rust) 55%, var(--border));
}
.sup-ticket--bug:hover{
  border-left-color:var(--rust);
  border-color:color-mix(in srgb, var(--rust) 25%, var(--border));
}
.sup-ticket--proposal{
  border-left-color:color-mix(in srgb, var(--secondary) 55%, var(--border));
}
.sup-ticket--proposal:hover{ border-left-color:var(--secondary); }
.sup-ticket--complaint{
  border-left-color:color-mix(in srgb, var(--hot) 50%, var(--border));
}
.sup-ticket--complaint:hover{
  border-left-color:var(--hot);
  border-color:color-mix(in srgb, var(--hot) 20%, var(--border));
}
.sup-ticket--question{
  border-left-color:color-mix(in srgb, var(--accent) 50%, var(--border));
}
.sup-ticket--question:hover{
  border-left-color:var(--accent);
  border-color:color-mix(in srgb, var(--accent) 20%, var(--border));
}
.sup-ticket--closed{ opacity:.82; }
.sup-ticket-id{
  font-family:var(--font-mono); font-size:13px; font-weight:700;
  color:var(--secondary); white-space:nowrap;
}
.sup-ticket-main{ min-width:0; }
.sup-ticket-title{
  font-size:14px; font-weight:700; color:var(--text);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  margin:0 0 6px;
}
.sup-ticket-meta{ display:flex; flex-wrap:wrap; gap:5px; }
.sup-ticket-badges{ display:flex; flex-wrap:wrap; gap:5px; justify-content:flex-end; }
.sup-ticket-date{
  font-family:var(--font-mono); font-size:11px; color:var(--text-muted);
  white-space:nowrap;
}

/* Badges */
.sup-badge{
  display:inline-flex; align-items:center;
  padding:4px 10px; border-radius:999px;
  font-size:11px; font-weight:700; letter-spacing:.02em;
  border:1px solid var(--border); white-space:nowrap;
}
.sup-badge--type-bug{
  border-color:color-mix(in srgb, var(--rust) 35%, var(--border));
  background:color-mix(in srgb, var(--rust) 10%, transparent);
  color:var(--rust);
}
.sup-badge--type-proposal{
  border-color:color-mix(in srgb, var(--secondary) 35%, var(--border));
  background:color-mix(in srgb, var(--secondary) 10%, transparent);
  color:var(--secondary);
}
.sup-badge--type-complaint{
  border-color:color-mix(in srgb, var(--hot) 35%, var(--border));
  background:color-mix(in srgb, var(--hot) 8%, transparent);
  color:var(--hot);
}
.sup-badge--type-question{
  border-color:color-mix(in srgb, var(--accent) 35%, var(--border));
  background:color-mix(in srgb, var(--accent) 10%, transparent);
  color:var(--accent);
}
.sup-badge--pending{
  border-color:color-mix(in srgb, var(--warm) 35%, var(--border));
  background:color-mix(in srgb, var(--warm) 10%, transparent);
  color:var(--warm);
}
.sup-badge--confirmed, .sup-badge--answered{
  border-color:color-mix(in srgb, var(--secondary) 35%, var(--border));
  background:color-mix(in srgb, var(--secondary) 10%, transparent);
  color:var(--secondary);
}
.sup-badge--fixed, .sup-badge--implemented{
  border-color:color-mix(in srgb, var(--accent) 35%, var(--border));
  background:color-mix(in srgb, var(--accent) 10%, transparent);
  color:var(--accent);
}
.sup-badge--roadmap{
  border-color:color-mix(in srgb, var(--warm) 30%, var(--border));
  background:color-mix(in srgb, var(--warm) 8%, transparent);
  color:var(--warm);
}
.sup-badge--rejected, .sup-badge--pri-high{
  border-color:color-mix(in srgb, var(--hot) 35%, var(--border));
  background:color-mix(in srgb, var(--hot) 8%, transparent);
  color:var(--hot);
}
.sup-badge--not_repro, .sup-badge--closed, .sup-badge--pri-low{
  border-color:var(--border);
  background:var(--bg-inset); color:var(--text-muted);
}
.sup-badge--pri-medium{
  border-color:color-mix(in srgb, var(--warm) 35%, var(--border));
  background:color-mix(in srgb, var(--warm) 10%, transparent);
  color:var(--warm);
}

.sup-empty{
  display:flex; flex-direction:column; align-items:center; gap:12px;
  padding:52px 24px; text-align:center; color:var(--text-muted);
}
.sup-empty-icon{
  width:56px; height:56px; border-radius:16px;
  display:flex; align-items:center; justify-content:center;
  border:1px solid var(--border); background:var(--bg-inset);
  color:var(--secondary); opacity:.7;
}
.sup-empty-title{ margin:0; font-size:16px; font-weight:700; color:var(--text-secondary); }
.sup-empty-text{ margin:0; font-size:14px; max-width:40ch; line-height:1.55; }

/* Form */
.sup-form-card{ padding:0; overflow:hidden; }
.sup-form-card[data-type="bug"]{
  border-top:2px solid color-mix(in srgb, var(--rust) 50%, var(--border));
}
.sup-form-card[data-type="proposal"]{
  border-top:2px solid color-mix(in srgb, var(--secondary) 50%, var(--border));
}
.sup-form-card[data-type="complaint"]{
  border-top:2px solid color-mix(in srgb, var(--hot) 45%, var(--border));
}
.sup-form-card[data-type="question"]{
  border-top:2px solid color-mix(in srgb, var(--accent) 45%, var(--border));
}
.sup-section{
  padding:22px 24px; border-top:1px solid var(--border);
}
.sup-section:first-child{ border-top:0; }
.sup-section-title{
  margin:0 0 16px; font-family:var(--font-mono);
  font-size:10px; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--secondary);
}
.sup-row{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.sup-field{ display:flex; flex-direction:column; gap:6px; margin-bottom:14px; }
.sup-field:last-child{ margin-bottom:0; }
.sup-label{ font-size:13px; font-weight:600; color:var(--text-secondary); }
.sup-label-hint{ font-weight:400; color:var(--text-muted); }
.sup-label-row{
  display:flex; align-items:baseline; justify-content:space-between; gap:10px;
}
.sup-char{
  font-family:var(--font-mono); font-size:11px; color:var(--text-muted);
}
.sup-char--warn{ color:var(--warm); }
.sup-input, .sup-select, .sup-textarea{
  width:100%; box-sizing:border-box;
  padding:10px 14px; border-radius:var(--radius-xs);
  border:1px solid var(--border); background:var(--bg-inset);
  color:var(--text); font-size:14px; font-family:var(--font-body);
  outline:none; transition:border-color .18s, background .18s;
}
.sup-input:focus, .sup-select:focus, .sup-textarea:focus{
  border-color:color-mix(in srgb, var(--secondary) 45%, var(--border));
  background:var(--bg-card);
}
.sup-input::placeholder, .sup-textarea::placeholder{ color:var(--text-muted); }
.sup-select{
  cursor:pointer; appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 12px center;
  padding-right:36px;
}
.sup-textarea{ resize:vertical; min-height:100px; line-height:1.55; }
.sup-file{
  padding:9px 12px; font-size:13px; cursor:pointer;
  border:1px solid var(--border); border-radius:var(--radius-xs);
  background:var(--bg-inset); color:var(--text-secondary);
  width:100%; box-sizing:border-box; font-family:var(--font-body);
}
.sup-file::file-selector-button{
  margin-right:10px; padding:5px 12px; border-radius:8px;
  border:1px solid color-mix(in srgb, var(--secondary) 35%, var(--border));
  background:color-mix(in srgb, var(--secondary) 10%, transparent);
  color:var(--secondary); font-weight:600; font-size:12px;
  cursor:pointer; font-family:var(--font-body);
}
.sup-field-note{ font-size:12px; color:var(--text-muted); margin:4px 0 0; }
.sup-form-actions{
  display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  padding:18px 24px; border-top:1px solid var(--border);
  background:color-mix(in srgb, var(--bg-inset) 35%, transparent);
}

/* Ticket view */
.sup-comms{
  padding:0; overflow:hidden; display:flex; flex-direction:column; min-width:0;
}
.sup-comms--bug{ border-top:2px solid color-mix(in srgb, var(--rust) 45%, var(--border)); }
.sup-comms--proposal{ border-top:2px solid color-mix(in srgb, var(--secondary) 45%, var(--border)); }
.sup-comms--complaint{ border-top:2px solid color-mix(in srgb, var(--hot) 40%, var(--border)); }
.sup-comms--question{ border-top:2px solid color-mix(in srgb, var(--accent) 40%, var(--border)); }
.sup-case{
  padding:20px 22px; border-bottom:1px solid var(--border);
}
.sup-case-top{
  display:flex; align-items:flex-start; gap:14px; flex-wrap:wrap;
  margin-bottom:12px;
}
.sup-case-id{
  font-family:var(--font-mono); font-size:12px; font-weight:700;
  color:var(--secondary); padding:6px 10px; border-radius:8px;
  border:1px solid color-mix(in srgb, var(--secondary) 30%, var(--border));
  background:color-mix(in srgb, var(--secondary) 8%, transparent);
}
.sup-case-title{
  flex:1; min-width:0; margin:0;
  font-family:var(--font-display); font-size:clamp(20px, 3.2vw, 26px);
  font-weight:800; letter-spacing:-.02em; line-height:1.2;
}
.sup-case-badges{ display:flex; flex-wrap:wrap; gap:5px; }

.sup-comms-head{
  padding:14px 18px; border-bottom:1px solid var(--border);
  font-size:13px; font-weight:700; color:var(--text-secondary);
  display:flex; align-items:center; gap:8px;
}
.sup-timeline{
  display:flex; flex-direction:column; gap:8px;
  padding:16px; max-height:min(56vh, 520px); overflow-y:auto;
  min-width:0; scroll-behavior:smooth;
}
.sup-timeline::-webkit-scrollbar{ width:5px; }
.sup-timeline::-webkit-scrollbar-thumb{
  background:color-mix(in srgb, var(--border) 80%, transparent);
  border-radius:4px;
}
.sup-msg{
  display:flex; flex-direction:column;
  width:fit-content; max-width:min(72%, 400px);
  margin-bottom:2px;
}
.sup-msg--user{ align-self:flex-end; align-items:flex-end; }
.sup-msg--staff{ align-self:flex-start; align-items:flex-start; }
.sup-msg-sender{
  font-size:11px; font-weight:700; color:var(--text-muted);
  margin-bottom:4px; padding:0 4px;
}
.sup-msg--staff .sup-msg-sender{ color:var(--secondary); }
.sup-msg-bubble{
  width:fit-content; max-width:100%;
  padding:9px 12px; border-radius:14px;
  font-size:13px; line-height:1.5; color:var(--text-secondary);
  word-break:break-word; border:1px solid var(--border);
}
.sup-msg-text{
  white-space:pre-line;
}
.sup-msg-text:empty{ display:none; }
.sup-msg--user .sup-msg-bubble{
  background:color-mix(in srgb, var(--secondary) 8%, var(--bg-card));
  border-color:color-mix(in srgb, var(--secondary) 22%, var(--border));
  border-bottom-right-radius:5px; color:var(--text);
}
.sup-msg--staff .sup-msg-bubble{
  background:var(--bg-inset);
  border-bottom-left-radius:5px;
}
.sup-msg-time{
  font-family:var(--font-mono); font-size:10px; color:var(--text-muted);
  margin-top:4px; padding:0 4px;
}
.sup-msg-img{
  display:block; margin-top:8px; max-width:min(260px, 100%);
  border-radius:8px; border:1px solid var(--border); cursor:pointer;
  transition:opacity .15s;
}
.sup-msg-img:hover{ opacity:.88; }

.sup-compose{
  display:flex; gap:10px; align-items:flex-end;
  padding:14px 16px; border-top:1px solid var(--border);
  background:color-mix(in srgb, var(--bg-inset) 40%, transparent);
}
.sup-compose .sup-textarea{
  flex:1; min-height:44px; max-height:160px; resize:none;
  line-height:1.45;
}
.sup-closed{
  display:flex; align-items:center; gap:10px;
  padding:14px 18px; border-top:1px solid var(--border);
  font-size:13px; color:var(--text-muted);
  background:color-mix(in srgb, var(--bg-inset) 50%, transparent);
}
.sup-closed-dot{
  width:7px; height:7px; border-radius:50%;
  background:var(--text-muted); opacity:.5; flex-shrink:0;
}

.sup-modal{
  position:fixed; inset:0; z-index:10000;
  display:none; align-items:center; justify-content:center; flex-direction:column; gap:16px;
  padding:20px; background:color-mix(in srgb, var(--text) 55%, transparent);
  backdrop-filter:blur(8px);
}
.sup-modal.is-open{ display:flex; }
.sup-modal-pic{
  max-width:min(92vw, 900px); max-height:80vh;
  border-radius:var(--radius-sm); box-shadow:var(--shadow-glow);
  border:1px solid var(--border);
}

@media (max-width:800px){
  .sup-hero-inner{ grid-template-columns:1fr; }
  .sup-hero-nav{ justify-content:stretch; }
  .sup-hero-btn{ width:100%; justify-content:center; }
  .sup-ticket{
    grid-template-columns:auto 1fr;
    grid-template-rows:auto auto auto;
  }
  .sup-ticket-badges{ grid-column:1 / -1; justify-content:flex-start; }
  .sup-ticket-date{ grid-column:2; justify-self:end; }
}

@media (max-width:640px){
  .sup{ overflow-x:clip; }
  .sup-row{ grid-template-columns:1fr; }
  .sup-section{ padding:18px 16px; }
  .sup-form-actions{ padding:16px; flex-direction:column; align-items:stretch; }
  .sup-form-actions .btn-primary{ width:100%; justify-content:center; }
  .sup-compose{ flex-direction:column; align-items:stretch; }
  .sup-compose .btn-primary{ width:100%; justify-content:center; }
  .sup-ticket:hover{ transform:none; }
  .sup-ticket-title{ white-space:normal; }
  .sup-msg{ max-width:92%; }
}

/* ═══════════════════════════════════════════════════════════════
   Airline catalog — /companies
   Fleet registry × parchment boarding cards
   ═══════════════════════════════════════════════════════════════ */

.acl{
  display:flex; flex-direction:column; gap:20px;
  width:100%; max-width:1080px; margin:0 auto;
  min-width:0; padding-bottom:12px;
}

.acl-hero{
  position:relative; overflow:hidden; padding:0;
}
.acl-hero-deco{
  position:absolute; inset:0; pointer-events:none; overflow:hidden;
}
.acl-hero-runway{
  position:absolute; inset:0; opacity:.45;
  background:
    repeating-linear-gradient(
      -12deg,
      transparent,
      transparent 38px,
      color-mix(in srgb, var(--warm) 7%, transparent) 38px,
      color-mix(in srgb, var(--warm) 7%, transparent) 40px
    );
  mask-image:linear-gradient(105deg, transparent 30%, #000 75%);
}
.acl-hero-glow{
  position:absolute; inset:-15% -5%;
  background:
    radial-gradient(ellipse 55% 50% at 92% 40%, color-mix(in srgb, var(--warm) 16%, transparent), transparent 68%),
    radial-gradient(ellipse 45% 40% at 8% 85%, color-mix(in srgb, var(--accent) 12%, transparent), transparent 70%);
}
.acl-hero-inner{
  position:relative; z-index:1;
  display:flex; align-items:center; gap:18px;
  padding:26px 28px;
}
.acl-hero-icon{
  width:52px; height:52px; flex-shrink:0;
  border-radius:16px;
  display:flex; align-items:center; justify-content:center;
  border:1px solid color-mix(in srgb, var(--warm) 35%, var(--border));
  background:linear-gradient(145deg, color-mix(in srgb, var(--warm) 14%, var(--bg-card)), var(--bg-card));
  color:var(--warm);
  box-shadow:0 8px 24px color-mix(in srgb, var(--warm) 12%, transparent);
}
.acl-hero-text{ min-width:0; }
.acl-eyebrow{
  font-family:var(--font-mono); font-size:10px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--warm); margin:0 0 8px;
}
.acl-title{
  font-family:var(--font-display); font-size:clamp(26px, 4vw, 34px);
  font-weight:800; letter-spacing:-.03em; line-height:1.08;
  margin:0 0 8px; color:var(--text);
}
.acl-lead{
  margin:0; font-size:14px; line-height:1.55; color:var(--text-secondary);
  max-width:52ch;
}

.acl-board{ padding:0; overflow:hidden; min-width:0; }

.acl-toolbar{
  display:flex; flex-direction:column; gap:10px;
  padding:14px 16px;
  border-bottom:1px solid var(--border);
  background:color-mix(in srgb, var(--bg-inset) 50%, transparent);
}
.acl-search-wrap{ position:relative; min-width:0; }
.acl-search-icon{
  position:absolute; left:12px; top:50%; transform:translateY(-50%);
  color:var(--text-muted); pointer-events:none;
}
.acl-input, .acl-select{
  width:100%; box-sizing:border-box;
  padding:10px 14px; border-radius:var(--radius-xs);
  border:1px solid var(--border); background:var(--bg-card);
  color:var(--text); font-size:14px; font-family:var(--font-body);
  outline:none; transition:border-color .18s, background .18s;
}
.acl-search{ padding-left:36px; padding-right:40px; }
.acl-input:focus, .acl-select:focus{
  border-color:color-mix(in srgb, var(--warm) 45%, var(--border));
}
.acl-input::placeholder{ color:var(--text-muted); }
.acl-search-clear{
  position:absolute; right:8px; top:50%; transform:translateY(-50%);
  display:flex; align-items:center; justify-content:center;
  width:28px; height:28px; border-radius:8px;
  border:none; background:transparent; color:var(--text-muted);
  cursor:pointer; transition:color .15s, background .15s;
}
.acl-search-clear:hover{
  color:var(--text); background:var(--bg-inset);
}
.acl-toolbar-row{
  display:flex; align-items:center; justify-content:space-between;
  gap:10px; min-width:0; flex-wrap:wrap;
}
.acl-toggles{ display:flex; gap:6px; flex-wrap:wrap; }
.acl-toggle{
  display:inline-flex; align-items:center; gap:6px;
  padding:8px 14px; border-radius:999px;
  border:1px solid var(--border); background:var(--bg-card);
  color:var(--text-secondary); font-size:13px; font-weight:600;
  cursor:pointer; font-family:var(--font-body); white-space:nowrap;
  transition:background .15s, border-color .15s, color .15s, box-shadow .15s;
}
.acl-toggle:hover{
  border-color:var(--border-hover); color:var(--text);
  background:var(--bg-inset);
}
.acl-toggle.is-active{
  border-color:color-mix(in srgb, var(--warm) 45%, var(--border));
  background:color-mix(in srgb, var(--warm) 12%, var(--bg-card));
  color:var(--warm); font-weight:700;
  box-shadow:0 4px 14px color-mix(in srgb, var(--warm) 14%, transparent);
}
.acl-sort-wrap{
  display:flex; align-items:center; gap:8px;
  color:var(--text-muted); flex-shrink:0;
}
.acl-select{
  width:auto; min-width:160px;
  padding-right:36px; cursor:pointer; appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 12px center;
}

.acl-results{
  padding:12px 16px 0; min-height:28px;
}
.acl-count{
  font-family:var(--font-mono); font-size:11px; font-weight:600;
  color:var(--text-muted); letter-spacing:.04em;
}

.acl-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));
  gap:12px; padding:12px 16px 16px;
  min-width:0;
}

/* Company card */
.acl-card{
  position:relative; display:flex; flex-direction:column; gap:12px;
  padding:16px 16px 14px; min-width:0; overflow:hidden;
  border-radius:var(--radius-sm);
  border:1px solid var(--border); background:var(--bg-card);
  text-decoration:none; color:inherit;
  transition:border-color .2s, transform .2s var(--ease-out), box-shadow .2s;
}
.acl-card:hover{
  border-color:color-mix(in srgb, var(--accent) 35%, var(--border));
  transform:translateY(-3px);
  box-shadow:var(--shadow-card);
}
.acl-card-accent{
  position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg, var(--accent), color-mix(in srgb, var(--accent) 40%, var(--warm)));
  opacity:.55; transition:opacity .2s;
}
.acl-card:hover .acl-card-accent{ opacity:1; }
.acl-card--adv{
  border-color:color-mix(in srgb, var(--warm) 45%, var(--border));
  background:linear-gradient(155deg, color-mix(in srgb, var(--warm) 10%, var(--bg-card)), var(--bg-card));
  box-shadow:0 8px 28px color-mix(in srgb, var(--warm) 12%, transparent);
}
.acl-card--adv .acl-card-accent{
  background:linear-gradient(90deg, var(--warm), color-mix(in srgb, var(--warm) 60%, white));
  opacity:1; height:4px;
}
.acl-card-top{
  display:flex; align-items:flex-start; gap:14px; min-width:0;
}
.acl-avatar-wrap{ flex-shrink:0; }
.acl-avatar{
  width:52px; height:52px; border-radius:50%;
  object-fit:cover; display:block;
  border:2px solid var(--border);
  box-shadow:0 4px 12px color-mix(in srgb, var(--text) 8%, transparent);
}
.acl-avatar--fallback{
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-size:20px; font-weight:800;
  color:var(--warm);
  background:linear-gradient(145deg, color-mix(in srgb, var(--warm) 16%, var(--bg-inset)), var(--bg-inset));
  border-color:color-mix(in srgb, var(--warm) 30%, var(--border));
}
.acl-card-head{ flex:1; min-width:0; padding-top:2px; }
.acl-card-name{
  margin:0 0 6px; font-size:15px; font-weight:800;
  color:var(--text); line-height:1.25;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.acl-card-badges{ display:flex; flex-wrap:wrap; gap:5px; }
.acl-badge{
  display:inline-flex; align-items:center; gap:4px;
  padding:3px 9px; border-radius:999px;
  font-size:10px; font-weight:700; letter-spacing:.04em;
  border:1px solid var(--border); white-space:nowrap;
}
.acl-badge--adv{
  border-color:color-mix(in srgb, var(--warm) 50%, var(--border));
  background:linear-gradient(135deg, color-mix(in srgb, var(--warm) 90%, white), var(--warm));
  color:var(--text-on-accent);
}
.acl-badge--pro{
  border-color:color-mix(in srgb, var(--accent) 40%, var(--border));
  background:color-mix(in srgb, var(--accent) 12%, transparent);
  color:var(--accent);
}
.acl-badge--rating{
  border-color:color-mix(in srgb, var(--secondary) 35%, var(--border));
  background:color-mix(in srgb, var(--secondary) 10%, transparent);
  color:var(--secondary);
}
.acl-card-desc{
  margin:0; font-size:13px; line-height:1.55; color:var(--text-secondary);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  overflow:hidden; word-break:break-word; min-width:0;
}
.acl-card-desc--empty{ display:none; }
.acl-card-foot{
  display:flex; align-items:flex-end; gap:10px;
  margin-top:auto; min-width:0;
}
.acl-card-foot--empty .acl-card-cta{ align-self:center; margin-top:2px; }
.acl-card-cta{
  flex-shrink:0;
  width:28px; height:28px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  border:1px solid var(--border); background:var(--bg-inset);
  color:var(--text-muted);
  opacity:0; transform:translateX(-4px);
  transition:opacity .18s, transform .18s var(--ease-out), border-color .18s, color .18s;
}
.acl-card:hover .acl-card-cta{
  opacity:1; transform:translateX(0);
  border-color:color-mix(in srgb, var(--accent) 35%, var(--border));
  color:var(--accent);
}

/* Empty */
.acl-empty{
  grid-column:1 / -1;
  display:flex; flex-direction:column; align-items:center; gap:10px;
  padding:56px 24px; text-align:center; color:var(--text-muted);
}
.acl-empty svg{ opacity:.4; }
.acl-empty-title{ margin:0; font-size:15px; font-weight:700; color:var(--text-secondary); }

/* Skeleton */
.acl-skeleton{
  border-radius:var(--radius-sm); border:1px solid var(--border);
  background:var(--bg-card); padding:16px;
  display:flex; flex-direction:column; gap:10px;
}
.acl-sk-row{ display:flex; align-items:center; gap:14px; }
.acl-sk-col{ flex:1; display:flex; flex-direction:column; gap:8px; }
.acl-sk{
  border-radius:8px;
  background:linear-gradient(90deg, var(--bg-inset) 25%, color-mix(in srgb, var(--border) 60%, var(--bg-inset)) 50%, var(--bg-inset) 75%);
  background-size:200% 100%;
  animation:acl-shimmer 1.4s ease-in-out infinite;
}
.acl-sk-circle{ width:52px; height:52px; border-radius:50%; flex-shrink:0; }
.acl-sk-line{ height:12px; }
.acl-sk-line--lg{ width:72%; height:14px; }
.acl-sk-line--sm{ width:42%; height:10px; }
.acl-sk-line--full{ width:92%; }
.acl-sk-line--md{ width:64%; }
@keyframes acl-shimmer{
  0%{ background-position:100% 0; }
  100%{ background-position:-100% 0; }
}

/* Pagination */
.acl-pager{
  display:flex; flex-wrap:wrap; gap:6px; justify-content:center;
  padding:8px 16px 20px;
}
.acl-page-btn{
  appearance:none; min-width:40px;
  padding:8px 14px; border-radius:var(--radius-xs);
  border:1px solid var(--border); background:var(--bg-card);
  color:var(--text-secondary); font-size:14px; font-weight:600;
  cursor:pointer; font-family:var(--font-body);
  transition:background .15s, border-color .15s, color .15s;
}
.acl-page-btn:hover{
  background:var(--bg-inset); border-color:var(--border-hover); color:var(--text);
}
.acl-page-btn.is-active{
  background:var(--accent); border-color:var(--accent);
  color:var(--text-on-accent); font-weight:700;
}
.acl-page-btn:disabled{ opacity:.35; cursor:default; }
.acl-pager-gap{
  display:flex; align-items:center; padding:0 4px;
  font-size:13px; color:var(--text-muted);
}

@media (max-width:800px){
  .acl-hero-inner{ flex-direction:column; align-items:flex-start; }
  .acl-toolbar-row{ flex-direction:column; align-items:stretch; }
  .acl-sort-wrap{ width:100%; }
  .acl-select{ flex:1; min-width:0; }
}

@media (max-width:640px){
  .acl{ overflow-x:clip; }
  .acl-grid{ grid-template-columns:1fr; gap:10px; padding:10px 12px 14px; }
  .acl-toolbar{ padding:12px; }
  .acl-card:hover{ transform:none; }
  .acl-card-cta{ opacity:1; transform:none; }
  .acl-card-foot{ gap:8px; }
  .acl-toggle svg{ display:none; }
  .acl-sort-wrap > svg{ display:none; }
  .acl-select{ font-size:13px; min-width:0; }
}

/* ═══════════════════════════════════════════════════════════════
   Company profile — /company/{short_name}
   Operations center × airline manifest
   ═══════════════════════════════════════════════════════════════ */

.cpr{
  display:flex; flex-direction:column; gap:20px;
  width:100%; max-width:960px; margin:0 auto;
  min-width:0; padding-bottom:16px;
}
.cpr-back{ align-self:flex-start; }

/* Hero shell */
.cpr-hero{ padding:0; overflow:hidden; }
.cpr-cover{
  position:relative; height:min(220px, 34vw); min-height:140px;
  overflow:hidden; background:var(--bg-soft);
}
.cpr-cover--img{ height:min(260px, 38vw); }
.cpr-cover-img{
  width:100%; height:100%; object-fit:cover; object-position:center;
  display:block;
}
.cpr-cover-shade{
  position:absolute; inset:0; pointer-events:none;
  background:
    linear-gradient(to bottom, color-mix(in srgb, var(--text) 18%, transparent) 0%, transparent 42%),
    linear-gradient(to top, var(--bg-card) 0%, color-mix(in srgb, var(--bg-card) 72%, transparent) 38%, transparent 100%);
}
.cpr-cover-deco{
  position:absolute; inset:0; overflow:hidden;
}
.cpr-cover-runway{
  position:absolute; inset:0; opacity:.5;
  background:repeating-linear-gradient(
    -14deg, transparent, transparent 36px,
    color-mix(in srgb, var(--warm) 9%, transparent) 36px,
    color-mix(in srgb, var(--warm) 9%, transparent) 38px
  );
}
.cpr-cover-glow{
  position:absolute; inset:-20%;
  background:
    radial-gradient(ellipse 55% 50% at 12% 88%, color-mix(in srgb, var(--accent) 18%, transparent), transparent 68%),
    radial-gradient(ellipse 45% 42% at 88% 18%, color-mix(in srgb, var(--warm) 16%, transparent), transparent 70%);
}
.cpr-cover-code{
  position:absolute; right:24px; bottom:18px;
  font-family:var(--font-mono); font-size:clamp(28px, 5vw, 44px);
  font-weight:700; letter-spacing:.12em; opacity:.12;
  color:var(--accent); pointer-events:none; user-select:none;
}

.cpr-hero-body{ padding:0 24px 24px; margin-top:-52px; position:relative; z-index:1; }
.cpr-hero-row{
  display:grid; grid-template-columns:auto 1fr auto;
  gap:18px 20px; align-items:end;
}
.cpr-logo-wrap{ position:relative; flex-shrink:0; }
.cpr-logo-ring{
  width:96px; height:96px; border-radius:22px; padding:3px;
  background:linear-gradient(145deg, color-mix(in srgb, var(--warm) 55%, white), var(--warm), var(--accent));
  box-shadow:0 12px 32px color-mix(in srgb, var(--text) 14%, transparent);
}
.cpr-logo, .cpr-logo-ph{
  width:100%; height:100%; border-radius:19px;
  display:block; object-fit:cover;
  border:2px solid var(--bg-card); background:var(--bg-card);
}
.cpr-logo-ph{
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-size:36px; font-weight:800; color:var(--warm);
}
.cpr-verified{
  flex-shrink:0; width:22px; height:22px;
  display:block; object-fit:contain;
}

.cpr-identity{ min-width:0; padding-bottom:4px; }
.cpr-eyebrow{
  font-family:var(--font-mono); font-size:10px; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; color:var(--warm);
  margin:0 0 6px;
}
.cpr-name-row{
  display:flex; align-items:center; gap:10px;
  flex-wrap:wrap; margin-bottom:10px;
}
.cpr-name{
  margin:0; font-family:var(--font-display);
  font-size:clamp(24px, 4vw, 34px); font-weight:800;
  letter-spacing:-.03em; line-height:1.1; color:var(--text);
}
.cpr-tags{ display:flex; flex-wrap:wrap; gap:6px; margin-bottom:8px; }
.cpr-tag{
  display:inline-flex; align-items:center; padding:4px 10px;
  border-radius:999px; font-size:11px; font-weight:700;
  border:1px solid var(--border); background:var(--bg-inset);
  color:var(--text-secondary);
}
.cpr-tag--code{
  font-family:var(--font-mono); letter-spacing:.06em; text-transform:uppercase;
}
.cpr-tag--pro{
  border-color:color-mix(in srgb, var(--accent) 35%, var(--border));
  background:color-mix(in srgb, var(--accent) 10%, transparent); color:var(--accent);
}
.cpr-tag--rating{
  border-color:color-mix(in srgb, var(--secondary) 35%, var(--border));
  background:color-mix(in srgb, var(--secondary) 10%, transparent); color:var(--secondary);
}
.cpr-meta{ margin:0; font-size:13px; color:var(--text-muted); }
.cpr-meta strong{ color:var(--text); font-weight:700; }
.cpr-meta-dot{ opacity:.45; margin:0 4px; }

.cpr-actions{
  display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; align-self:end;
}
.cpr-action-btn{
  display:inline-flex; align-items:center; gap:7px;
  font-size:13px; padding:10px 16px; white-space:nowrap;
}
.cpr-action-btn--danger{
  border-color:color-mix(in srgb, var(--hot) 35%, var(--border)) !important;
  color:var(--hot) !important;
}
.cpr-action-btn--danger:hover{
  background:color-mix(in srgb, var(--hot) 8%, var(--bg-inset)) !important;
}

.cpr-notice{
  display:flex; align-items:flex-start; gap:12px;
  margin-top:18px; padding:14px 16px; border-radius:var(--radius-sm);
  font-size:13px; line-height:1.55;
}
.cpr-notice p{ margin:4px 0 0; opacity:.9; }
.cpr-notice svg{ flex-shrink:0; margin-top:1px; }
.cpr-notice--danger{
  border:1px solid color-mix(in srgb, var(--hot) 30%, var(--border));
  background:color-mix(in srgb, var(--hot) 7%, var(--bg-card)); color:var(--hot);
}
.cpr-notice--warn{
  border:1px solid color-mix(in srgb, var(--warm) 35%, var(--border));
  background:color-mix(in srgb, var(--warm) 8%, var(--bg-card)); color:var(--warm);
}

.cpr-stats{
  display:grid; grid-template-columns:1.2fr repeat(3, 1fr); gap:10px;
  margin-top:20px;
}
.cpr-stat{
  padding:16px; border-radius:var(--radius-sm);
  border:1px solid var(--border); background:var(--bg-inset);
  display:flex; flex-direction:column; gap:4px;
}
.cpr-stat--feature{
  background:linear-gradient(145deg, color-mix(in srgb, var(--warm) 10%, var(--bg-card)), var(--bg-card));
  border-color:color-mix(in srgb, var(--warm) 32%, var(--border));
}
.cpr-stat-label{
  font-size:10px; font-weight:700; letter-spacing:.1em;
  text-transform:uppercase; color:var(--text-muted);
}
.cpr-stat-value{
  font-family:var(--font-display); font-size:28px; font-weight:800;
  line-height:1; letter-spacing:-.02em; color:var(--text);
}
.cpr-stat--feature .cpr-stat-value{ color:var(--warm); }
.cpr-stat-hint{ font-size:11px; color:var(--text-muted); }

.cpr-copy{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
  gap:16px; margin-top:20px; padding-top:20px;
  border-top:1px solid var(--border);
}
.cpr-copy-title{
  margin:0 0 8px; font-family:var(--font-mono);
  font-size:10px; font-weight:700; letter-spacing:.12em;
  text-transform:uppercase; color:var(--accent);
}
.cpr-copy-text{
  font-size:14px; line-height:1.65; color:var(--text-secondary);
}

/* Logbook */
#cpr-flights{ scroll-margin-top:calc(var(--nav-height) + 12px); }
.cpr-logbook{ padding:0; overflow:hidden; }
.cpr-logbook-head{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:20px 22px 16px; border-bottom:1px solid var(--border); flex-wrap:wrap;
}
.cpr-logbook-title-wrap{ display:flex; align-items:flex-start; gap:12px; min-width:0; }
.cpr-logbook-icon{
  width:40px; height:40px; border-radius:12px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  background:color-mix(in srgb, var(--warm) 10%, var(--bg-inset));
  border:1px solid color-mix(in srgb, var(--warm) 28%, var(--border));
  color:var(--warm);
}
.cpr-logbook-icon svg{ width:18px; height:18px; }
.cpr-logbook-title{
  margin:0 0 4px; font-family:var(--font-display);
  font-size:18px; font-weight:800; letter-spacing:-.01em;
}
.cpr-logbook-sub{ margin:0; font-size:12px; color:var(--text-muted); }

.cpr-filter-toggle{
  display:inline-flex; align-items:center; gap:6px;
  padding:8px 14px; border-radius:999px;
  border:1px solid var(--border); background:var(--bg-inset);
  color:var(--text-secondary); font-size:13px; font-weight:600;
  cursor:pointer; font-family:var(--font-body);
  transition:background .15s, border-color .15s, color .15s;
}
.cpr-filter-toggle:hover{ border-color:var(--border-hover); color:var(--text); }
.cpr-filter-toggle svg{ transition:transform .2s; }
.cpr-filter-toggle.is-open svg{ transform:rotate(180deg); }

.cpr-filter{
  padding:16px 22px; border-bottom:1px solid var(--border);
  background:color-mix(in srgb, var(--bg-inset) 45%, transparent);
}
.cpr-filter-grid{
  display:grid; grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:10px; align-items:end;
}
.cpr-field{ display:flex; flex-direction:column; gap:5px; min-width:0; }
.cpr-field--icao{ max-width:130px; }
.cpr-field--wide{ grid-column:span 2; }
.cpr-field-label{ font-size:11px; font-weight:600; color:var(--text-muted); }
.cpr-input{
  width:100%; padding:9px 11px; border-radius:var(--radius-xs);
  border:1px solid var(--border); background:var(--bg-card);
  color:var(--text); font-size:13px; font-family:var(--font-body);
  outline:none; box-sizing:border-box;
  transition:border-color .18s;
}
.cpr-input:focus{ border-color:var(--border-hover); }
.cpr-input--mono{
  font-family:var(--font-mono); text-transform:uppercase; letter-spacing:.06em;
}
.cpr-filter-actions{
  display:flex; gap:8px; grid-column:3 / -1; justify-content:flex-end;
}
.cpr-filter-btn{ font-size:13px; padding:9px 14px; }

.cpr-flight-list{ list-style:none; margin:0; padding:8px 10px; }
.cpr-flight{
  display:grid; grid-template-columns:minmax(130px, 1fr) 1.5fr auto;
  align-items:center; gap:14px; padding:13px 14px; margin-bottom:4px;
  border-radius:var(--radius-xs); text-decoration:none; color:inherit;
  border:1px solid transparent;
  transition:background .18s, border-color .18s, transform .18s var(--ease-out);
}
.cpr-flight:hover{
  background:var(--bg-inset); border-color:var(--border); transform:translateX(3px);
}
.cpr-flight-route{ display:flex; align-items:center; gap:8px; }
.cpr-icao{
  font-family:var(--font-mono); font-size:16px; font-weight:600;
  letter-spacing:.08em; color:var(--text);
}
.cpr-flight-arrow{ color:var(--secondary); display:flex; flex-shrink:0; }
.cpr-flight-mid{ min-width:0; display:flex; flex-direction:column; gap:3px; }
.cpr-flight-ac{
  font-size:13px; font-weight:600; color:var(--text-secondary);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.cpr-flight-meta{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  font-size:12px; color:var(--text-muted);
}
.cpr-flight-meta time{ font-family:var(--font-mono); }
.cpr-flight-hours{
  font-family:var(--font-mono); font-weight:600; color:var(--accent);
  padding:2px 7px; border-radius:5px; background:var(--bg-inset);
}
.cpr-flight-pilot{ color:var(--text-muted); }
.cpr-flight-badges{ display:flex; gap:5px; flex-shrink:0; }
.cpr-badge{
  font-family:var(--font-mono); font-size:9px; font-weight:700;
  letter-spacing:.08em; padding:3px 7px; border-radius:5px;
}
.cpr-badge--mod{
  background:color-mix(in srgb, var(--warm) 14%, transparent);
  border:1px solid color-mix(in srgb, var(--warm) 32%, transparent); color:var(--warm);
}
.cpr-badge--ai{
  background:color-mix(in srgb, var(--accent) 12%, transparent);
  border:1px solid var(--accent-border); color:var(--accent);
}

.cpr-pager{
  display:flex; justify-content:center; gap:4px; flex-wrap:wrap;
  padding:14px 16px; border-top:1px solid var(--border);
}
.cpr-page{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:34px; height:34px; padding:0 8px; border-radius:8px;
  font-family:var(--font-mono); font-size:13px; font-weight:600;
  color:var(--text-secondary); text-decoration:none;
  transition:background .15s, color .15s;
}
.cpr-page:hover{ background:var(--bg-inset); color:var(--text); }
.cpr-page.is-active{
  background:color-mix(in srgb, var(--accent) 14%, transparent);
  color:var(--accent); pointer-events:none;
}
.cpr-page--gap, .cpr-page--disabled{ opacity:.35; pointer-events:none; }

.cpr-empty{
  display:flex; flex-direction:column; align-items:center; gap:12px;
  padding:44px 24px; text-align:center;
}
.cpr-empty-icon{ width:44px; height:44px; color:var(--text-muted); opacity:.45; }
.cpr-empty-icon svg{ width:100%; height:100%; }
.cpr-empty p{ margin:0; font-size:14px; color:var(--text-muted); }

/* Roster */
.cpr-roster{ padding:0; overflow:hidden; }
.cpr-roster-head{
  display:flex; align-items:flex-start; gap:12px;
  padding:20px 22px 16px; border-bottom:1px solid var(--border);
}
.cpr-roster-icon{
  width:40px; height:40px; border-radius:12px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  background:color-mix(in srgb, var(--accent) 10%, var(--bg-inset));
  border:1px solid color-mix(in srgb, var(--accent) 28%, var(--border));
  color:var(--accent);
}
.cpr-roster-icon svg{ width:18px; height:18px; }
.cpr-roster-title{
  margin:0 0 4px; font-family:var(--font-display);
  font-size:18px; font-weight:800; letter-spacing:-.01em;
}
.cpr-roster-sub{ margin:0; font-size:12px; color:var(--text-muted); }

.cpr-pilot-grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr));
  gap:8px; padding:12px 14px 16px;
}
.cpr-pilot{
  display:flex; align-items:center; gap:12px;
  padding:12px 14px; border-radius:var(--radius-sm);
  border:1px solid var(--border); background:var(--bg-card);
  text-decoration:none; color:inherit; min-width:0;
  transition:border-color .18s, background .18s, transform .18s var(--ease-out);
}
.cpr-pilot:hover{
  border-color:color-mix(in srgb, var(--accent) 30%, var(--border));
  background:var(--bg-inset); transform:translateY(-2px);
}
.cpr-pilot-avatar{
  width:44px; height:44px; border-radius:12px; flex-shrink:0;
  overflow:hidden; border:1px solid var(--border); background:var(--bg-inset);
  display:flex; align-items:center; justify-content:center;
}
.cpr-pilot-avatar img{ width:100%; height:100%; object-fit:cover; }
.cpr-pilot-ph{
  font-family:var(--font-display); font-size:16px; font-weight:800; color:var(--warm);
}
.cpr-pilot-body{ flex:1; min-width:0; }
.cpr-pilot-name{
  display:block; font-size:14px; font-weight:700; color:var(--text);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.cpr-pilot-stats{ font-size:11px; color:var(--text-muted); margin-top:2px; }
.cpr-pilot-badge{
  flex-shrink:0; padding:3px 8px; border-radius:999px;
  font-size:10px; font-weight:700; letter-spacing:.03em;
}
.cpr-pilot-badge--leader{
  border:1px solid color-mix(in srgb, var(--warm) 35%, var(--border));
  background:color-mix(in srgb, var(--warm) 12%, transparent); color:var(--warm);
}
.cpr-pilot-badge--deputy{
  border:1px solid color-mix(in srgb, var(--secondary) 30%, var(--border));
  background:color-mix(in srgb, var(--secondary) 10%, transparent); color:var(--secondary);
}

/* Modal */
.cpr-modal{
  position:fixed; inset:0; z-index:10000;
  display:none; align-items:center; justify-content:center;
  padding:20px; background:color-mix(in srgb, var(--text) 50%, transparent);
  backdrop-filter:blur(8px);
}
.cpr-modal.is-open{ display:flex; }
.cpr-modal-card{
  width:min(440px, 100%); padding:24px; border-radius:var(--radius);
  border:1px solid var(--border); background:var(--bg-card);
  box-shadow:var(--shadow-glow);
}
.cpr-modal-title{
  margin:0 0 16px; font-family:var(--font-display);
  font-size:18px; font-weight:800;
}
.cpr-modal-hint{
  margin:12px 0; font-size:13px; line-height:1.55; color:var(--text-secondary);
}
.cpr-modal-hint strong{ color:var(--text); }
.cpr-modal-actions{
  display:flex; flex-wrap:wrap; gap:8px; margin-top:16px;
}
.cpr-modal-form .cpr-field{ margin-bottom:10px; }

@media (max-width:900px){
  .cpr-hero-row{ grid-template-columns:auto 1fr; }
  .cpr-actions{ grid-column:1 / -1; justify-content:flex-start; }
  .cpr-stats{ grid-template-columns:repeat(2, 1fr); }
  .cpr-stat--feature{ grid-column:1 / -1; }
  .cpr-filter-grid{ grid-template-columns:1fr 1fr; }
  .cpr-field--wide, .cpr-filter-actions{ grid-column:1 / -1; }
  .cpr-filter-actions{ justify-content:stretch; }
  .cpr-filter-btn{ flex:1; justify-content:center; }
}

@media (max-width:640px){
  .cpr{ overflow-x:clip; }
  .cpr-hero-body{ padding:0 16px 18px; margin-top:-44px; }
  .cpr-logo-ring{ width:80px; height:80px; border-radius:18px; }
  .cpr-logo-ph{ font-size:30px; }
  .cpr-hero-row{ grid-template-columns:1fr; gap:14px; }
  .cpr-identity{ text-align:left; }
  .cpr-actions{ width:100%; }
  .cpr-action-btn{ flex:1; justify-content:center; }
  .cpr-stats{ grid-template-columns:1fr 1fr; }
  .cpr-copy{ grid-template-columns:1fr; }
  .cpr-flight{
    grid-template-columns:1fr auto; gap:8px 12px;
  }
  .cpr-flight-route{ grid-column:1 / -1; }
  .cpr-pilot-grid{ grid-template-columns:1fr; }
  .cpr-flight:hover, .cpr-pilot:hover{ transform:none; }
}

/* ==========================================================================
   Shared form / modal utilities (settings & legacy pages on base2)
   ========================================================================== */
.muted{ color:var(--text-muted); }
.link{ color:var(--accent); text-decoration:none; font-weight:600; }
.link:hover{ color:var(--accent-bright); text-decoration:underline; }

.btn-sm{ padding:8px 14px; font-size:13px; border-radius:999px; }
.btn-icon{
  display:inline-flex; align-items:center; justify-content:center;
  width:34px; height:34px; border-radius:var(--radius-xs);
  background:var(--bg-inset); border:1px solid var(--border);
  color:var(--text-secondary); text-decoration:none; flex-shrink:0;
  transition:background .18s var(--ease-out), color .18s var(--ease-out), border-color .18s var(--ease-out);
}
.btn-icon:hover{ background:var(--bg-card); color:var(--accent); border-color:var(--border-hover); }
.btn-danger{ color:var(--hot) !important; border-color:color-mix(in srgb, var(--hot) 35%, var(--border)) !important; }
.btn-danger:hover{ background:color-mix(in srgb, var(--hot) 8%, var(--bg-card)); }

.btn-premium{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  width:100%; padding:15px 24px; border:none; border-radius:999px; cursor:pointer;
  background:linear-gradient(135deg, var(--warm), color-mix(in srgb, var(--warm) 70%, #fff));
  color:#1a1208; font-family:var(--font-display); font-weight:800; font-size:15px;
  box-shadow:0 14px 32px color-mix(in srgb, var(--warm) 35%, transparent);
  transition:transform .22s var(--ease-out), box-shadow .22s var(--ease-out), opacity .18s;
}
.btn-premium:hover:not(:disabled){ transform:translateY(-2px); box-shadow:0 18px 40px color-mix(in srgb, var(--warm) 45%, transparent); }
.btn-premium:disabled{ opacity:.5; cursor:not-allowed; }

.form-label{
  display:block; margin-bottom:6px;
  font-family:var(--font-mono); font-size:10px; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase; color:var(--text-muted);
}
.form-field{ display:block; margin-bottom:14px; }
.form-input{
  width:100%; padding:11px 14px;
  background:var(--bg-inset); border:1px solid var(--border);
  border-radius:var(--radius-xs); color:var(--text); font-family:var(--font-body); font-size:14px;
  outline:none; transition:border-color .18s var(--ease-out), box-shadow .18s var(--ease-out), background .18s var(--ease-out);
}
.form-input:focus{
  border-color:var(--accent-border);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 14%, transparent);
  background:var(--bg-card);
}
.form-input::placeholder{ color:var(--text-muted); }
.form-input[type=number]::-webkit-outer-spin-button,
.form-input[type=number]::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.form-input[type=number]{ -moz-appearance:textfield; }
select.form-input{ cursor:pointer; }
textarea.form-input{ resize:vertical; min-height:88px; line-height:1.5; }
.form-actions{ display:flex; flex-wrap:wrap; gap:10px; margin-top:14px; }
.form-grid{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px; }
@media (max-width:640px){ .form-grid{ grid-template-columns:1fr; } }

.info-box{
  padding:14px 16px; border-radius:var(--radius-sm);
  background:var(--bg-inset); border:1px solid var(--border); margin-bottom:14px;
}
.info-box-title{ font-weight:700; font-size:13px; color:var(--text); margin-bottom:8px; }
.info-box-body{ font-size:14px; color:var(--text-secondary); line-height:1.5; }

.glass-card{
  background:var(--bg-card); border:1px solid var(--border);
  border-radius:var(--radius); padding:18px; box-shadow:var(--shadow-card);
}

.stars{ display:inline-flex; flex-direction:row-reverse; gap:2px; align-items:center; }
.stars input{ position:absolute; opacity:0; pointer-events:none; }
.stars label{
  font-size:22px; cursor:pointer; color:var(--text-muted);
  transition:color .15s var(--ease-out), transform .15s var(--ease-out);
}
.stars-large label{ font-size:28px; }
.stars label:hover, .stars label:hover ~ label, .stars input:checked ~ label{ color:var(--warm); }
.stars input:checked + label{ color:var(--warm); transform:scale(1.08); }

.modal{
  position:fixed; inset:0; z-index:10000;
  display:none; align-items:center; justify-content:center;
  padding:20px; overflow-y:auto;
  background:color-mix(in srgb, var(--text) 45%, transparent);
  backdrop-filter:blur(8px);
}
.modal.open{ display:flex; }
.modal-card{
  width:min(720px, 100%); max-height:min(90vh, 900px); overflow:hidden;
  background:var(--bg-card); border:1px solid var(--border);
  border-radius:var(--radius); box-shadow:var(--shadow-glow);
  display:flex; flex-direction:column;
}
.modal-head{
  padding:16px 20px; font-family:var(--font-display);
  font-size:16px; font-weight:800; border-bottom:1px solid var(--border);
}
.modal-body{ padding:16px 20px; overflow-y:auto; display:flex; flex-direction:column; gap:12px; }
.modal-actions{ display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; padding:0 20px 18px; }

.rebrand-result{ padding:14px 16px; border-radius:var(--radius-sm); font-size:14px; line-height:1.55; }
.rebrand-result--ok{
  background:color-mix(in srgb, var(--accent) 10%, var(--bg-card));
  border:1px solid var(--accent-border); color:var(--accent);
}
.rebrand-result--fail{
  background:color-mix(in srgb, var(--hot) 10%, var(--bg-card));
  border:1px solid color-mix(in srgb, var(--hot) 30%, var(--border)); color:var(--hot);
}
.rebrand-result--warn{
  background:color-mix(in srgb, var(--warm) 12%, var(--bg-card));
  border:1px solid color-mix(in srgb, var(--warm) 35%, var(--border)); color:color-mix(in srgb, var(--warm) 80%, var(--text));
}
.rb-spinner{
  width:44px; height:44px; margin:0 auto;
  border:3px solid color-mix(in srgb, var(--warm) 20%, transparent);
  border-top-color:var(--warm); border-radius:50%;
  animation:cst-spin .75s linear infinite;
}
@keyframes cst-spin{ to{ transform:rotate(360deg); } }

/* ==========================================================================
   Company Settings — .cst
   ========================================================================== */
.cst{ max-width:920px; min-width:0; }

.cst-back{
  display:inline-flex; align-items:center; gap:8px;
  margin-bottom:16px; font-size:14px; font-weight:600;
}

.cst-hero{
  position:relative; overflow:hidden; margin-bottom:18px; padding:0;
}
.cst-hero-deco{
  position:absolute; inset:0; pointer-events:none; overflow:hidden;
}
.cst-hero-glow{
  position:absolute; top:-30%; right:-10%; width:55%; height:120%;
  background:radial-gradient(circle, color-mix(in srgb, var(--warm) 18%, transparent), transparent 68%);
}
.cst-hero-runway{
  position:absolute; bottom:0; left:0; right:0; height:2px;
  background:var(--hero-horizon); opacity:.55;
}
.cst-hero-inner{
  position:relative; display:flex; align-items:center; gap:16px;
  padding:22px 24px; flex-wrap:wrap;
}
.cst-hero-logo{
  width:56px; height:56px; border-radius:16px; object-fit:cover; flex-shrink:0;
  border:2px solid color-mix(in srgb, var(--warm) 40%, var(--border));
  box-shadow:0 8px 24px color-mix(in srgb, var(--accent) 12%, transparent);
}
.cst-hero-logo--ph{
  display:flex; align-items:center; justify-content:center;
  background:var(--grad-accent); font-family:var(--font-display);
  font-size:22px; font-weight:800; color:var(--accent);
}
.cst-hero-text{ min-width:0; flex:1; }
.cst-eyebrow{
  margin:0 0 4px; font-family:var(--font-mono); font-size:10px; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; color:var(--warm);
}
.cst-title{
  margin:0; font-family:var(--font-display); font-size:clamp(20px, 3.5vw, 28px);
  font-weight:800; letter-spacing:-.03em; line-height:1.15; color:var(--text);
}
.cst-sub{
  display:flex; align-items:center; flex-wrap:wrap; gap:8px;
  margin:6px 0 0; font-size:13px; color:var(--text-secondary);
}
.cst-pro-pill{
  display:inline-flex; align-items:center; padding:2px 8px; border-radius:999px;
  font-family:var(--font-mono); font-size:10px; font-weight:800; letter-spacing:.08em;
  background:linear-gradient(135deg, var(--warm), color-mix(in srgb, var(--warm) 65%, #fff));
  color:#1a1208;
}

/* Mobile section nav */
.cst-mnav{
  display:none; gap:8px; overflow-x:auto; padding:4px 2px 14px;
  margin-bottom:4px; scrollbar-width:none; -webkit-overflow-scrolling:touch;
}
.cst-mnav::-webkit-scrollbar{ display:none; }
.cst-mnav-link{
  flex-shrink:0; padding:8px 14px; border-radius:999px;
  font-size:13px; font-weight:600; white-space:nowrap;
  background:var(--bg-inset); border:1px solid var(--border);
  color:var(--text-secondary); text-decoration:none;
  transition:background .18s var(--ease-out), border-color .18s var(--ease-out), color .18s var(--ease-out);
}
.cst-mnav-link:hover{ border-color:var(--border-hover); color:var(--text); }
.cst-mnav-link.active{
  background:color-mix(in srgb, var(--accent) 10%, var(--bg-card));
  border-color:var(--accent-border); color:var(--accent); font-weight:700;
}
.cst-mnav-badge{
  display:inline-flex; min-width:18px; height:18px; align-items:center; justify-content:center;
  margin-left:5px; padding:0 5px; border-radius:999px;
  font-size:10px; font-weight:800;
  background:color-mix(in srgb, var(--hot) 14%, var(--bg-card));
  color:var(--hot);
}
.cst-mnav-badge--gold{
  background:color-mix(in srgb, var(--warm) 18%, var(--bg-card)); color:var(--warm);
}

.cst-main{ display:flex; flex-direction:column; gap:14px; min-width:0; }

/* Settings sidebar */
.cst-sidebar.an-sidebar{ width:260px; padding-top:8px; }
.cst-sidebar .cst-back{
  display:flex; align-items:center; gap:8px;
  margin:0 8px 12px; padding:8px 10px; border-radius:var(--radius-xs);
  font-size:13px; font-weight:600; color:var(--text-muted); text-decoration:none;
  transition:color .18s, background .18s;
}
.cst-sidebar .cst-back:hover{ color:var(--text); background:var(--bg-inset); }
.cst-sidebar .cst-back svg{ width:16px; height:16px; flex-shrink:0; }

.cst-pro-block{
  margin:0 8px 14px; padding:14px 16px; border-radius:var(--radius-sm);
  border:1px solid var(--border); position:relative; overflow:hidden;
}
.cst-pro-block--active{
  background:linear-gradient(135deg, color-mix(in srgb, var(--warm) 16%, var(--bg-card)), var(--bg-inset));
  border-color:color-mix(in srgb, var(--warm) 40%, var(--border));
}
.cst-pro-block--inactive{ background:var(--bg-inset); }
.cst-pro-badge{
  display:inline-flex; align-items:center; gap:5px;
  font-family:var(--font-mono); font-size:10px; font-weight:800;
  letter-spacing:.08em; text-transform:uppercase;
  padding:3px 9px; border-radius:999px; margin-bottom:6px;
}
.cst-pro-badge--active{
  background:linear-gradient(135deg, var(--warm), color-mix(in srgb, var(--warm) 70%, #fff));
  color:#1a1208;
}
.cst-pro-badge--inactive{ background:var(--bg-card); color:var(--text-muted); border:1px solid var(--border); }
.cst-pro-title{ font-size:14px; font-weight:700; color:var(--text); margin-bottom:2px; }
.cst-pro-sub{ font-size:12px; color:var(--text-secondary); line-height:1.45; }
.cst-pro-link{
  display:inline-block; margin-top:8px; font-size:13px; font-weight:700;
  color:var(--warm); text-decoration:none;
}
.cst-pro-link:hover{ text-decoration:underline; }

.cst-nav-section{ padding:0 6px; }
.cst-nav-section + .cst-nav-section{
  margin-top:6px; padding-top:10px; border-top:1px solid var(--border);
}
.cst-nav-title{
  font-family:var(--font-mono); font-size:10px; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--text-muted); padding:4px 10px 6px;
}
.cst-nav-link{
  display:flex; align-items:center; gap:9px;
  padding:9px 10px; margin-bottom:2px; border-radius:var(--radius-xs);
  border:1px solid transparent; color:var(--text-secondary);
  font-size:14px; font-weight:500; text-decoration:none;
  transition:background .18s var(--ease-out), border-color .18s var(--ease-out), color .18s var(--ease-out);
}
.cst-nav-link:hover{ background:var(--bg-inset); color:var(--text); }
.cst-nav-link.active{
  background:color-mix(in srgb, var(--accent) 10%, var(--bg-card));
  border-color:var(--accent-border); color:var(--accent); font-weight:700;
}
.cst-nav-link.active .cst-nav-icon{ color:var(--accent); opacity:1; }
.cst-nav-link--danger{ color:var(--hot); }
.cst-nav-link--danger:hover, .cst-nav-link--danger.active{ color:var(--hot); border-color:color-mix(in srgb, var(--hot) 30%, var(--border)); }
.cst-nav-icon{ width:16px; height:16px; flex-shrink:0; opacity:.75; }
.cst-nav-badge{
  margin-left:auto; min-width:20px; height:20px; padding:0 6px;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:999px; font-size:11px; font-weight:800;
}
.cst-nav-badge--alert{ background:color-mix(in srgb, var(--hot) 14%, var(--bg-card)); color:var(--hot); }
.cst-nav-badge--count{ background:color-mix(in srgb, var(--warm) 16%, var(--bg-card)); color:var(--warm); }

/* Section panels */
.cst .js-section{
  background:var(--bg-card); border:1px solid var(--border);
  border-radius:var(--radius); padding:22px 24px;
  box-shadow:var(--shadow-card);
}
.cst .js-section .glass-card{
  background:var(--bg-inset); border:1px solid var(--border); box-shadow:none;
}

.csp-section-head{
  display:flex; align-items:flex-start; gap:12px;
  margin-bottom:18px; padding-bottom:14px; border-bottom:1px solid var(--border);
}
.csp-section-head--danger .csp-section-icon,
.csp-section-head--danger .csp-section-title{ color:var(--hot); }
.csp-section-icon{
  width:22px; height:22px; flex-shrink:0; margin-top:2px;
  color:var(--warm); opacity:.9;
}
.csp-section-title{
  font-family:var(--font-display); font-size:17px; font-weight:800;
  line-height:1.25; color:var(--text);
}
.csp-section-sub{
  margin-top:4px; font-size:13px; line-height:1.45; color:var(--text-secondary);
}
.cst-count{
  display:inline-flex; align-items:center; margin-left:6px;
  padding:1px 8px; border-radius:999px;
  font-size:11px; font-weight:700;
  background:color-mix(in srgb, var(--warm) 14%, var(--bg-card));
  color:var(--warm); border:1px solid color-mix(in srgb, var(--warm) 28%, var(--border));
}
.cst-count--muted{
  background:var(--bg-inset); color:var(--text-secondary);
  border-color:var(--border);
}
.cst-count--danger{
  background:color-mix(in srgb, var(--hot) 10%, var(--bg-card));
  color:var(--hot); border-color:color-mix(in srgb, var(--hot) 25%, var(--border));
}

.csp-empty{
  display:flex; flex-direction:column; align-items:center; gap:8px;
  padding:36px 20px; text-align:center;
}
.csp-empty svg{ width:40px; height:40px; color:var(--text-muted); opacity:.45; }
.csp-empty span:first-of-type{ font-size:15px; font-weight:700; color:var(--text-secondary); }
.csp-empty span:last-of-type{ font-size:13px; color:var(--text-muted); max-width:36ch; line-height:1.45; }

.cst-stack{ display:flex; flex-direction:column; gap:10px; margin-top:4px; }
.cst-name-link{
  font-weight:700; color:var(--text); text-decoration:none;
}
.cst-name-link:hover{ color:var(--accent); }
.cst-meta-line{ font-size:12px; color:var(--text-muted); margin-top:3px; }
.cst-meta-line strong{ color:var(--text-secondary); font-weight:700; }
.cst-chip{
  display:inline-flex; padding:1px 8px; border-radius:999px;
  font-size:11px; font-weight:600;
  background:var(--bg-inset); border:1px solid var(--border); color:var(--text-secondary);
}
.cst-callout{
  font-size:14px; color:var(--text-secondary); line-height:1.55;
  padding:14px 16px; border-radius:var(--radius-sm);
  background:var(--bg-inset); border:1px solid var(--border);
}
.cst-callout a{ color:var(--accent); font-weight:600; }
.cst-pro-price{
  text-align:center; margin:18px 0 22px; padding:18px;
  border-radius:var(--radius-sm);
  background:linear-gradient(135deg, color-mix(in srgb, var(--warm) 14%, var(--bg-card)), var(--bg-inset));
  border:1px solid color-mix(in srgb, var(--warm) 35%, var(--border));
}
.cst-pro-price-val{
  font-family:var(--font-display); font-size:32px; font-weight:800; color:var(--warm);
}
.cst-pro-price-val small{ font-size:.42em; font-weight:500; color:var(--text-muted); }
.cst-pro-active{
  margin:16px 0; padding:16px 18px; border-radius:var(--radius-sm);
  background:color-mix(in srgb, var(--accent) 8%, var(--bg-card));
  border:1px solid var(--accent-border);
}
.cst-pro-active-title{ display:flex; align-items:center; gap:8px; font-weight:800; color:var(--accent); margin-bottom:6px; }
.cst-pro-feats{ display:grid; grid-template-columns:repeat(auto-fill, minmax(180px, 1fr)); gap:10px; margin:16px 0; }
.cst-pro-feat{
  padding:14px 16px; border-radius:var(--radius-sm);
  background:var(--bg-inset); border:1px solid var(--border); text-align:left;
}
.cst-pro-feat-ico{ font-size:18px; margin-bottom:4px; }
.cst-pro-feat-title{ font-weight:700; font-size:14px; color:var(--text); }
.cst-pro-feat-sub{ font-size:12px; color:var(--text-muted); margin-top:2px; }
.cst-consent{
  display:flex; align-items:flex-start; gap:10px; margin-bottom:12px;
  font-size:13px; color:var(--text-secondary); line-height:1.5; cursor:pointer;
}
.cst-consent input{ margin-top:3px; flex-shrink:0; accent-color:var(--accent); }
.cst-consent a{ color:var(--accent); font-weight:600; }
.cst-crop-wrap{ display:none; margin:12px 0; border-radius:var(--radius-sm); overflow:hidden; border:1px solid var(--border); }
.cst-crop-wrap img{ max-width:100%; display:block; }
.cst-avatar-preview{ width:64px; height:64px; border-radius:16px; object-fit:cover; }
.cst-avatar-ph{
  width:64px; height:64px; border-radius:16px;
  display:flex; align-items:center; justify-content:center;
  background:var(--grad-accent); font-weight:800; color:var(--accent);
}
.cst-cover-preview{ width:100%; max-width:100%; height:auto; border-radius:var(--radius-sm); display:block; }

/* RDS shared atoms */
.rds-avatar-sm{
  width:40px; height:40px; border-radius:12px; object-fit:cover; flex-shrink:0;
  border:1px solid var(--border);
}
.rds-avatar-ph{
  display:flex; align-items:center; justify-content:center;
  background:var(--grad-accent); color:var(--accent);
  font-family:var(--font-display); font-weight:800; font-size:15px;
}
.rds-role-badge{
  display:inline-flex; align-items:center; gap:4px;
  font-size:10px; font-weight:700; padding:2px 8px; border-radius:999px; white-space:nowrap;
}
.rds-role-leader{
  background:color-mix(in srgb, var(--warm) 14%, var(--bg-card));
  border:1px solid color-mix(in srgb, var(--warm) 30%, var(--border)); color:var(--warm);
}
.rds-role-deputy{
  background:color-mix(in srgb, var(--accent) 10%, var(--bg-card));
  border:1px solid var(--accent-border); color:var(--accent);
}
.rds-icon-btn{
  display:inline-flex; align-items:center; justify-content:center;
  width:32px; height:32px; border-radius:var(--radius-xs);
  background:var(--bg-inset); border:1px solid var(--border);
  color:var(--text-muted); text-decoration:none; flex-shrink:0;
  transition:background .18s, color .18s, border-color .18s;
}
.rds-icon-btn:hover{ background:var(--bg-card); color:var(--accent); border-color:var(--border-hover); }
.rds-link-pill{
  display:inline-flex; align-items:center; gap:5px;
  padding:4px 10px; border-radius:999px; font-size:12px; font-weight:600;
  background:var(--bg-inset); border:1px solid var(--border);
  color:var(--text-secondary); text-decoration:none; white-space:nowrap; flex-shrink:0;
}
.rds-link-pill:hover{ color:var(--accent); border-color:var(--accent-border); }

.rds-grade-card, .rds-resign-card, .rds-deputy-card{
  background:var(--bg-inset); border:1px solid var(--border);
  border-radius:var(--radius-sm); overflow:hidden;
}
.rds-grade-head, .rds-resign-head, .rds-deputy-top{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  padding:12px 16px; border-bottom:1px solid var(--border);
  background:color-mix(in srgb, var(--bg-inset) 50%, var(--bg-card));
}
.rds-grade-body{ display:grid; grid-template-columns:minmax(160px, 240px) 1fr; }
.rds-grade-img-wrap{ padding:14px 16px; border-right:1px solid var(--border); }
.rds-grade-img{
  width:100%; aspect-ratio:16/9; object-fit:cover;
  border-radius:var(--radius-xs); cursor:zoom-in; display:block;
  border:1px solid var(--border);
}
.rds-no-img{
  width:100%; aspect-ratio:16/9; border-radius:var(--radius-xs);
  border:1px dashed var(--border); background:var(--bg-card);
  display:flex; align-items:center; justify-content:center;
  font-size:12px; color:var(--text-muted); text-align:center; padding:8px;
}
.rds-grade-form-wrap, .rds-resign-form{ padding:14px 16px; }
.rds-grade-label{
  font-family:var(--font-mono); font-size:10px; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; color:var(--text-muted); margin-bottom:8px;
}

.rds-pilot-row{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  padding:11px 12px; border-radius:var(--radius-sm);
  background:var(--bg-inset); border:1px solid var(--border);
}
.rds-pilot-left{ display:flex; align-items:center; gap:10px; flex:1; min-width:0; }
.rds-pilot-right{ display:flex; align-items:center; gap:6px; flex-shrink:0; flex-wrap:wrap; }

/* Ownership transfer picker */
.own-pick-list{
  display:flex; flex-direction:column; gap:8px;
}
.own-pick-card{
  display:block; cursor:pointer; margin:0;
  border:1px solid var(--border); border-radius:12px;
  background:var(--bg-inset);
  transition:border-color .15s, background .15s;
}
.own-pick-card:hover{
  border-color:color-mix(in srgb, var(--secondary) 35%, var(--border));
  background:color-mix(in srgb, var(--secondary) 6%, var(--bg-inset));
}
.own-pick-radio{
  position:absolute; opacity:0; pointer-events:none;
}
.own-pick-card:has(.own-pick-radio:checked){
  border-color:color-mix(in srgb, var(--secondary) 55%, var(--border));
  background:color-mix(in srgb, var(--secondary) 10%, var(--bg-inset));
  box-shadow:inset 3px 0 0 var(--secondary);
}
.own-pick-card:has(.own-pick-radio:focus-visible){
  outline:2px solid color-mix(in srgb, var(--secondary) 45%, transparent);
  outline-offset:2px;
}
.own-pick-body{
  display:flex; align-items:center; gap:12px;
  padding:12px 14px;
}
.own-pick-meta{
  display:flex; flex-direction:column; gap:3px; min-width:0;
}
.own-pick-name{
  display:flex; align-items:center; gap:7px; flex-wrap:wrap;
  font-size:14px; font-weight:700; color:var(--text);
}
.own-pick-sub{
  font-size:12px; line-height:1.4;
}

.rds-status-card{
  display:flex; align-items:flex-start; gap:14px;
  padding:14px 16px; border-radius:var(--radius-sm); border:1px solid; margin-bottom:14px;
}
.rds-status-icon{
  width:36px; height:36px; border-radius:var(--radius-xs);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.rds-status-icon svg{ width:18px; height:18px; }
.rds-status-title{ font-weight:800; font-size:15px; margin-bottom:3px; }
.rds-status-sub{ font-size:13px; color:var(--text-secondary); line-height:1.45; }
.rds-status-ok{ background:color-mix(in srgb, var(--accent) 8%, var(--bg-card)); border-color:var(--accent-border); }
.rds-status-ok .rds-status-icon{ background:color-mix(in srgb, var(--accent) 12%, var(--bg-card)); color:var(--accent); }
.rds-status-ok .rds-status-title{ color:var(--accent); }
.rds-status-warn{ background:color-mix(in srgb, var(--warm) 10%, var(--bg-card)); border-color:color-mix(in srgb, var(--warm) 30%, var(--border)); }
.rds-status-warn .rds-status-icon{ background:color-mix(in srgb, var(--warm) 14%, var(--bg-card)); color:var(--warm); }
.rds-status-warn .rds-status-title{ color:var(--warm); }
.rds-status-danger{ background:color-mix(in srgb, var(--hot) 8%, var(--bg-card)); border-color:color-mix(in srgb, var(--hot) 28%, var(--border)); }
.rds-status-danger .rds-status-icon{ background:color-mix(in srgb, var(--hot) 12%, var(--bg-card)); color:var(--hot); }
.rds-status-danger .rds-status-title{ color:var(--hot); }
.rds-status-none{ background:var(--bg-inset); border-color:var(--border); }
.rds-status-none .rds-status-icon{ background:var(--bg-card); color:var(--text-muted); }
.rds-status-none .rds-status-title{ color:var(--text-secondary); }

.rds-stat-box{
  background:var(--bg-inset); border:1px solid var(--border);
  border-radius:var(--radius-sm); padding:14px 12px; text-align:center;
}
.rds-stat-val{
  display:block; font-family:var(--font-display); font-size:26px; font-weight:800;
  background:var(--grad-accent-text); -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;
}
.rds-stat-lbl{ font-size:12px; color:var(--text-muted); margin-top:3px; line-height:1.35; }
.rds-stat-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(120px, 1fr)); gap:10px; margin-bottom:16px; }

.rds-rating-table-wrap{ overflow-x:auto; border-radius:var(--radius-sm); border:1px solid var(--border); }
.rds-rating-table{ width:100%; border-collapse:collapse; font-size:14px; }
.rds-rating-table th{
  padding:9px 12px; text-align:left;
  font-family:var(--font-mono); font-size:10px; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; color:var(--text-muted);
  border-bottom:1px solid var(--border); background:var(--bg-inset);
}
.rds-rating-table td{ padding:10px 12px; border-bottom:1px solid var(--border); color:var(--text-secondary); }
.rds-rating-table tr:last-child td{ border-bottom:none; }
.rds-row-us td{ background:color-mix(in srgb, var(--warm) 8%, var(--bg-card)); }
.rds-row-us td:first-child{ border-left:3px solid var(--warm); }
.rds-pos-badge{
  display:inline-flex; align-items:center; justify-content:center;
  width:26px; height:26px; border-radius:8px;
  background:var(--bg-inset); font-size:13px; font-weight:800; color:var(--text-muted);
}
.rds-pos-us{ background:color-mix(in srgb, var(--warm) 16%, var(--bg-card)); color:var(--warm); }
.rds-you-badge{
  display:inline-flex; margin-left:5px; padding:1px 7px; border-radius:999px;
  font-size:10px; font-weight:800;
  background:color-mix(in srgb, var(--warm) 14%, var(--bg-card));
  border:1px solid color-mix(in srgb, var(--warm) 30%, var(--border)); color:var(--warm);
}

.rds-ad-active-card{
  background:color-mix(in srgb, var(--warm) 10%, var(--bg-card));
  border:1px solid color-mix(in srgb, var(--warm) 32%, var(--border));
  border-radius:var(--radius-sm); padding:16px 18px; margin-bottom:14px;
}
.rds-ad-meta-row{ display:flex; align-items:stretch; gap:14px; flex-wrap:wrap; margin:12px 0; }
.rds-ad-price-box{
  background:var(--bg-inset); border:1px solid var(--border);
  border-radius:var(--radius-sm); padding:12px 18px; text-align:center; min-width:120px;
}
.rds-ad-price-val{
  font-family:var(--font-display); font-size:24px; font-weight:800;
  background:var(--grad-accent-text); -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;
}
.rds-ad-timeline{
  flex:1; min-width:200px; padding:12px 16px; border-radius:var(--radius-sm);
  background:var(--bg-inset); border:1px solid var(--border);
}
.rds-perm-chip{
  display:inline-block; padding:2px 9px; border-radius:999px;
  font-size:11px; font-weight:600;
  background:var(--bg-inset); border:1px solid var(--border); color:var(--text-muted);
}
.rds-perm-active{
  background:color-mix(in srgb, var(--accent) 10%, var(--bg-card));
  border-color:var(--accent-border); color:var(--accent);
}
.cst-apps-link{
  display:inline-flex; align-items:center; gap:4px;
  font-size:11px; font-weight:700; color:var(--warm); text-decoration:none;
  padding:2px 8px; border-radius:999px;
  background:color-mix(in srgb, var(--warm) 12%, var(--bg-card));
  border:1px solid color-mix(in srgb, var(--warm) 28%, var(--border));
}

/* Codeshare (cs2) */
.cs2-tabs{ display:flex; gap:6px; flex-wrap:wrap; margin-bottom:16px; }
.cs2-tab{
  padding:8px 16px; border-radius:999px; font-size:13px; font-weight:700;
  cursor:pointer; border:1px solid var(--border);
  background:var(--bg-inset); color:var(--text-secondary);
  transition:background .18s, color .18s, border-color .18s;
  white-space:nowrap; font-family:var(--font-body);
}
.cs2-tab.active{
  background:color-mix(in srgb, var(--accent) 10%, var(--bg-card));
  border-color:var(--accent-border); color:var(--accent);
}
.cs2-tab:not(.active):hover{ border-color:var(--border-hover); color:var(--text); }
.cs2-panel{ display:none; }
.cs2-panel.active{ display:block; }
.cs2-stats{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:14px; }
.cs2-stat-pill{
  display:inline-flex; align-items:center; gap:6px;
  padding:6px 12px; border-radius:999px; font-size:12px; font-weight:600;
  background:var(--bg-inset); border:1px solid var(--border); color:var(--text-secondary);
}
.cs2-stat-pill span{ color:var(--warm); font-weight:800; }
.cs2-stat-warn span{ color:var(--secondary); }
.cs2-partners{ display:flex; flex-direction:column; gap:8px; }
.cs2-partner-row{
  display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  padding:12px 14px; border-radius:var(--radius-sm);
  background:var(--bg-inset); border:1px solid var(--border);
}
.cs2-partner-avatar{
  width:40px; height:40px; border-radius:12px; object-fit:cover; flex-shrink:0;
  border:1px solid var(--border);
}
.cs2-partner-info{ flex:1; min-width:0; }
.cs2-partner-name{ font-weight:700; color:var(--text); font-size:14px; }
.cs2-partner-name span{ color:var(--text-muted); font-weight:500; }
.cs2-partner-actions{ display:flex; gap:6px; flex-shrink:0; flex-wrap:wrap; }
.cs2-badge{
  display:inline-block; padding:2px 9px; border-radius:999px;
  font-size:10px; font-weight:700; white-space:nowrap;
}
.cs2-badge-ok{
  background:color-mix(in srgb, var(--accent) 10%, var(--bg-card));
  border:1px solid var(--accent-border); color:var(--accent);
}
.cs2-badge-warn{
  background:color-mix(in srgb, var(--warm) 12%, var(--bg-card));
  border:1px solid color-mix(in srgb, var(--warm) 30%, var(--border)); color:var(--warm);
}
.cs2-sub-head{
  font-family:var(--font-mono); font-size:10px; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase; color:var(--text-muted);
  margin:16px 0 10px;
}
.cs2-sub-head:first-child{ margin-top:0; }
.cs2-empty{
  padding:20px 16px; text-align:center; font-size:14px; color:var(--text-muted);
  border-radius:var(--radius-sm); background:var(--bg-inset);
  border:1px dashed var(--border);
}
.cs2-search-wrap{ display:flex; gap:8px; align-items:center; margin-bottom:12px; flex-wrap:wrap; }
.cs2-search-input{
  flex:1; min-width:160px; padding:10px 14px;
  background:var(--bg-inset); border:1px solid var(--border);
  border-radius:var(--radius-xs); color:var(--text); font-size:14px; outline:none;
}
.cs2-search-input:focus{ border-color:var(--accent-border); }
.cs2-flight-list, .cs2-offer-list{ display:flex; flex-direction:column; gap:10px; }
.cs2-flight-card, .cs2-offer-card{
  display:flex; gap:14px; align-items:flex-start; flex-wrap:wrap;
  padding:14px; border-radius:var(--radius-sm);
  background:var(--bg-inset); border:1px solid var(--border);
}
.cs2-flight-thumb{
  flex:0 0 88px; width:88px; height:88px; border-radius:var(--radius-xs);
  overflow:hidden; cursor:pointer; background:var(--bg-card);
  border:1px solid var(--border); display:flex; align-items:center; justify-content:center;
}
.cs2-flight-thumb img{ width:100%; height:100%; object-fit:cover; }
.cs2-flight-no-img{ font-size:11px; color:var(--text-muted); text-align:center; padding:6px; }
.cs2-flight-body{ flex:1; min-width:0; }
.cs2-flight-title{ font-weight:800; font-size:14px; color:var(--text); margin-bottom:3px; }
.cs2-flight-meta, .cs2-flight-score{ font-size:12px; color:var(--text-muted); }
.cs2-flight-score strong{ color:var(--warm); }
.cs2-flight-actions{ margin-top:10px; display:flex; gap:6px; flex-wrap:wrap; }
.cs2-flight-pilot{ display:flex; align-items:center; gap:7px; margin-top:8px; }
.cs2-flight-pilot img{ width:22px; height:22px; border-radius:8px; object-fit:cover; }
.cs2-send-bar{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:14px; }
.cs2-send-label{
  font-family:var(--font-mono); font-size:10px; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; color:var(--text-muted);
}

/* Analytics (cst-an) */
.cst-an-card{
  background:var(--bg-inset); border:1px solid var(--border);
  border-radius:var(--radius-sm); padding:18px 20px; margin-bottom:14px;
}
.cst-an-card:last-child{ margin-bottom:0; }
.cst-an-card-title{ font-family:var(--font-display); font-size:16px; font-weight:800; color:var(--text); margin:0 0 4px; }
.cst-an-card-sub{ font-size:13px; color:var(--text-muted); margin:0 0 16px; }
.cst-an-stats{ display:grid; grid-template-columns:repeat(auto-fill, minmax(130px, 1fr)); gap:10px; margin-bottom:18px; }
.cst-an-stat{
  padding:14px 12px; text-align:center; border-radius:var(--radius-sm);
  background:var(--bg-card); border:1px solid var(--border);
}
.cst-an-stat-val{
  display:block; font-family:var(--font-display); font-size:26px; font-weight:800;
  background:var(--grad-accent-text); -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;
}
.cst-an-stat-lbl{ font-size:12px; color:var(--text-muted); margin-top:2px; line-height:1.35; }
.cst-an-chart-title{ font-size:14px; font-weight:700; color:var(--text-secondary); margin:0 0 10px; }
.cst-an-table-wrap{ overflow-x:auto; border-radius:var(--radius-sm); border:1px solid var(--border); }
.cst-an-table{ width:100%; border-collapse:collapse; font-size:14px; }
.cst-an-table th{
  padding:10px 14px; text-align:left;
  font-family:var(--font-mono); font-size:10px; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; color:var(--text-muted);
  border-bottom:1px solid var(--border); background:var(--bg-inset);
}
.cst-an-table td{ padding:11px 14px; border-bottom:1px solid var(--border); color:var(--text-secondary); }
.cst-an-table tr:last-child td{ border-bottom:none; }
.cst-an-table tr.cst-an-row-us td{ background:color-mix(in srgb, var(--warm) 8%, var(--bg-card)); }
.cst-an-table tr.cst-an-row-us td:first-child{ border-left:3px solid var(--warm); }
.cst-an-table a{ color:var(--text); text-decoration:none; font-weight:600; }
.cst-an-table a:hover{ color:var(--accent); }
.cst-an-pilot{
  padding:14px; border-radius:var(--radius-sm);
  background:var(--bg-card); border:1px solid var(--border); margin-bottom:10px;
}
.cst-an-pilot-head{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:12px; }
.cst-an-pilot-name{ font-weight:800; color:var(--text); text-decoration:none; font-size:14px; }
.cst-an-pilot-name:hover{ color:var(--accent); }
.cst-an-pilot-leader{
  display:inline-flex; align-items:center; gap:4px;
  font-size:10px; font-weight:700; padding:2px 8px; border-radius:999px;
  background:color-mix(in srgb, var(--warm) 12%, var(--bg-card));
  border:1px solid color-mix(in srgb, var(--warm) 28%, var(--border)); color:var(--warm);
}
.cst-an-pilot-meta{ font-size:12px; color:var(--text-muted); margin-left:auto; }

/* Public vacancies page */
.cva{ max-width:860px; min-width:0; }
.cva-hero{
  display:grid; grid-template-columns:auto 1fr; gap:16px; align-items:center;
  padding:20px 22px; margin-bottom:16px;
}
.cva-hero-logo{
  width:64px; height:64px; border-radius:16px; object-fit:cover;
  border:1px solid var(--border);
}
.cva-hero-ph{
  display:flex; align-items:center; justify-content:center;
  background:var(--grad-accent); font-family:var(--font-display);
  font-size:24px; font-weight:800; color:var(--accent);
}
.cva-title{ margin:0 0 4px; font-family:var(--font-display); font-size:22px; font-weight:800; }
.cva-lead{ margin:0; font-size:13px; color:var(--text-secondary); }
.cva-stats{ display:grid; grid-template-columns:repeat(auto-fill, minmax(140px, 1fr)); gap:10px; margin-bottom:16px; }
.cva-stat{
  padding:14px; border-radius:var(--radius-sm);
  background:var(--bg-inset); border:1px solid var(--border); text-align:center;
}
.cva-stat-val{ font-family:var(--font-display); font-size:22px; font-weight:800; color:var(--text); }
.cva-stat-lbl{ font-size:11px; color:var(--text-muted); margin-top:2px; }
.cva-ai-badge{
  display:inline-flex; padding:2px 8px; border-radius:999px;
  font-family:var(--font-mono); font-size:10px; font-weight:700;
  background:color-mix(in srgb, var(--accent) 10%, var(--bg-card));
  border:1px solid var(--accent-border); color:var(--accent);
}
.cva-list{ display:flex; flex-direction:column; gap:10px; }
.cva-card{
  display:flex; align-items:flex-start; gap:14px; padding:16px 18px;
  border-radius:var(--radius-sm); border:1px solid var(--border);
  background:var(--bg-inset); text-decoration:none; color:inherit;
  transition:border-color .18s var(--ease-out), transform .18s var(--ease-out), box-shadow .18s var(--ease-out);
}
.cva-card:hover{
  border-color:var(--border-hover); transform:translateY(-1px);
  box-shadow:var(--shadow-card);
}
.cva-card-main{ flex:1; min-width:0; }
.cva-card-title{ margin:0 0 4px; font-size:16px; font-weight:800; color:var(--text); }
.cva-card-desc{ margin:0; font-size:13px; color:var(--text-muted); line-height:1.45; }
.cva-card-status{
  flex-shrink:0; padding:4px 10px; border-radius:999px;
  font-size:11px; font-weight:700;
  background:var(--bg-card); border:1px solid var(--border); color:var(--text-secondary);
}
.cva-card-status--applied{
  background:color-mix(in srgb, var(--accent) 10%, var(--bg-card));
  border-color:var(--accent-border); color:var(--accent);
}
.cva-empty{
  padding:40px 20px; text-align:center; border-radius:var(--radius);
  border:1px dashed var(--border); background:var(--bg-inset);
}
.cva-empty-title{ font-weight:800; color:var(--text-secondary); margin-bottom:6px; }
.cva-empty-text{ font-size:13px; color:var(--text-muted); }

.cst .rds-pilot-left a:not(.rds-icon-btn):not(.rds-link-pill),
.cst .rds-deputy-top a:not(.rds-icon-btn){
  font-weight:700; color:var(--text); text-decoration:none;
}
.cst .rds-pilot-left a:not(.rds-icon-btn):not(.rds-link-pill):hover,
.cst .rds-deputy-top a:not(.rds-icon-btn):hover{ color:var(--accent); }
.cst .rds-rating-table a{ color:var(--text); text-decoration:none; font-weight:600; }
.cst .rds-rating-table a:hover{ color:var(--accent); }
.cst .rds-rating-table strong{ color:var(--text); }

.cst-mnav-link .cst-nav-badge{ margin-left:5px; }

@media (max-width:960px){
  .cst-mnav{ display:flex; }
  .cst-sidebar.an-sidebar{ width:min(84vw, 300px); }
}

@media (max-width:720px){
  .cst .js-section{ padding:16px; }
  .cst-hero-inner{ padding:18px 16px; }
  .rds-grade-body{ grid-template-columns:1fr; }
  .rds-grade-img-wrap{ border-right:none; border-bottom:1px solid var(--border); }
  .rds-pilot-row{ flex-direction:column; align-items:stretch; }
  .rds-pilot-right{ justify-content:flex-start; }
  .rds-pilot-right .btn-secondary, .rds-pilot-right .btn-primary{ flex:1; justify-content:center; }
  .cs2-flight-card, .cs2-offer-card{ flex-direction:column; }
  .cs2-flight-thumb{ width:100%; height:160px; flex:none; }
  .cva-hero{ grid-template-columns:1fr; text-align:left; }
  .cva-card{ flex-direction:column; }
  .modal-card{ max-height:92vh; }
}

/* ==========================================================================
   User Settings — .ust
   ========================================================================== */
.ust{ max-width:900px; min-width:0; }

.ust-back{
  display:inline-flex; align-items:center; gap:8px;
  margin-bottom:16px; font-size:14px; font-weight:600;
}

.ust-hero{
  position:relative; overflow:hidden; margin-bottom:18px; padding:0;
}
.ust-hero-deco{
  position:absolute; inset:0; pointer-events:none; overflow:hidden;
}
.ust-hero-glow{
  position:absolute; top:-20%; right:-5%; width:50%; height:110%;
  background:radial-gradient(circle, color-mix(in srgb, var(--accent) 14%, transparent), transparent 70%);
}
.ust-hero-runway{
  position:absolute; bottom:0; left:0; right:0; height:2px;
  background:var(--hero-horizon); opacity:.5;
}
.ust-hero-inner{
  position:relative; display:flex; align-items:center; gap:16px;
  padding:20px 22px; flex-wrap:wrap;
}
.ust-hero-avatar{
  width:52px; height:52px; border-radius:14px; object-fit:cover; flex-shrink:0;
  border:2px solid var(--accent-border);
}
.ust-hero-avatar--ph{
  display:flex; align-items:center; justify-content:center;
  background:var(--grad-accent); font-family:var(--font-display);
  font-size:20px; font-weight:800; color:var(--accent);
}
.ust-hero-text{ min-width:0; flex:1; }
.ust-eyebrow{
  margin:0 0 4px; font-family:var(--font-mono); font-size:10px; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; color:var(--warm);
}
.ust-title{
  margin:0; font-family:var(--font-display); font-size:clamp(20px, 3.2vw, 26px);
  font-weight:800; letter-spacing:-.03em; line-height:1.15;
}
.ust-sub{ margin:5px 0 0; font-size:13px; color:var(--text-secondary); }

.ust-mnav{
  display:none; gap:8px; overflow-x:auto; padding:4px 2px 14px;
  margin-bottom:4px; scrollbar-width:none;
}
.ust-mnav::-webkit-scrollbar{ display:none; }
.ust-mnav-link{
  flex-shrink:0; padding:8px 14px; border-radius:999px;
  font-size:13px; font-weight:600; white-space:nowrap;
  background:var(--bg-inset); border:1px solid var(--border);
  color:var(--text-secondary); text-decoration:none;
  transition:background .18s var(--ease-out), border-color .18s var(--ease-out), color .18s var(--ease-out);
}
.ust-mnav-link:hover{ border-color:var(--border-hover); color:var(--text); }
.ust-mnav-link.active{
  background:color-mix(in srgb, var(--accent) 10%, var(--bg-card));
  border-color:var(--accent-border); color:var(--accent); font-weight:700;
}

.ust-main{ display:flex; flex-direction:column; gap:14px; min-width:0; }

/* Sidebar */
.ust-sidebar.an-sidebar{ width:248px; padding-top:8px; }
.ust-sidebar .ust-back{
  display:flex; align-items:center; gap:8px;
  margin:0 8px 12px; padding:8px 10px; border-radius:var(--radius-xs);
  font-size:13px; font-weight:600; color:var(--text-muted); text-decoration:none;
}
.ust-sidebar .ust-back:hover{ color:var(--text); background:var(--bg-inset); }
.ust-nav-section{ padding:0 6px; }
.ust-nav-title{
  font-family:var(--font-mono); font-size:10px; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--text-muted); padding:4px 10px 6px;
}
.ust-nav-link{
  display:flex; align-items:center; gap:9px;
  padding:9px 10px; margin-bottom:2px; border-radius:var(--radius-xs);
  border:1px solid transparent; color:var(--text-secondary);
  font-size:14px; font-weight:500; text-decoration:none;
  transition:background .18s var(--ease-out), border-color .18s var(--ease-out), color .18s var(--ease-out);
}
.ust-nav-link:hover{ background:var(--bg-inset); color:var(--text); }
.ust-nav-link.active{
  background:color-mix(in srgb, var(--accent) 10%, var(--bg-card));
  border-color:var(--accent-border); color:var(--accent); font-weight:700;
}
.ust-nav-icon{ width:16px; height:16px; flex-shrink:0; opacity:.8; }

/* Sections */
.ust .js-section{
  background:var(--bg-card); border:1px solid var(--border);
  border-radius:var(--radius); padding:22px 24px; box-shadow:var(--shadow-card);
}
.ust-sec-head{
  display:flex; align-items:flex-start; gap:12px;
  margin-bottom:18px; padding-bottom:14px; border-bottom:1px solid var(--border);
}
.ust-sec-icon{
  width:36px; height:36px; border-radius:var(--radius-xs); flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  background:color-mix(in srgb, var(--warm) 12%, var(--bg-inset));
  color:var(--warm);
}
.ust-sec-icon svg{ width:18px; height:18px; }
.ust-sec-title{
  margin:0; font-family:var(--font-display); font-size:17px; font-weight:800;
  line-height:1.25; color:var(--text);
}
.ust-sec-sub{ margin:4px 0 0; font-size:13px; line-height:1.45; color:var(--text-secondary); }
.ust-lead{
  margin:0 0 16px; font-size:14px; line-height:1.55; color:var(--text-secondary);
  padding:12px 14px; border-radius:var(--radius-sm);
  background:var(--bg-inset); border:1px solid var(--border);
}
.ust-divider{ border:none; border-top:1px solid var(--border); margin:20px 0; }
.ust-subhead{
  font-family:var(--font-mono); font-size:10px; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase; color:var(--text-muted);
  margin:0 0 12px;
}

.ust-form{ display:flex; flex-direction:column; gap:16px; }
.ust-field{ display:flex; flex-direction:column; gap:6px; }
.ust-field-group{ display:flex; flex-direction:column; gap:14px; }
.ust-hint{ margin:0; font-size:12px; color:var(--text-muted); line-height:1.45; }

.ust-avatar-row{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.ust-avatar-wrap{ flex-shrink:0; }
.ust-avatar-img{
  width:76px; height:76px; border-radius:18px; object-fit:cover;
  border:2px solid color-mix(in srgb, var(--accent) 35%, var(--border));
}
.ust-avatar-ph{
  width:76px; height:76px; border-radius:18px;
  display:flex; align-items:center; justify-content:center;
  background:var(--grad-accent); color:var(--accent);
  border:2px solid var(--border);
}
.ust-avatar-actions{ display:flex; flex-direction:column; gap:6px; }
.ust-file-btn{ display:inline-flex; align-items:center; gap:7px; cursor:pointer; }
.ust-hidden-input{ display:none; }

.ust-username-wrap{ position:relative; display:flex; align-items:center; }
.ust-username-prefix{
  position:absolute; left:13px; font-size:15px; color:var(--text-muted);
  pointer-events:none; z-index:1;
}
.ust-username-input{ padding-left:28px !important; padding-right:36px !important; }
.ust-username-status{
  position:absolute; right:12px; font-size:12px; font-weight:700;
}
.ust-username-status.ok{ color:var(--accent); }
.ust-username-status.err{ color:var(--hot); }
.ust-username-status.chk{ color:var(--text-muted); }

/* Identity provider cards */
.ust-id-list{ display:flex; flex-direction:column; gap:10px; margin-bottom:16px; }
.ust-id-card{
  display:flex; align-items:flex-start; gap:14px; flex-wrap:wrap;
  padding:14px 16px; border-radius:var(--radius-sm);
  background:var(--bg-inset); border:1px solid var(--border);
}
.ust-id-card--linked{
  border-color:color-mix(in srgb, var(--accent) 28%, var(--border));
  background:color-mix(in srgb, var(--accent) 5%, var(--bg-card));
}
.ust-id-card--unlinked{
  border-style:dashed; background:var(--bg-card);
}
.ust-id-icon{
  width:42px; height:42px; border-radius:12px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-family:var(--font-display); font-weight:800; font-size:14px;
}
.ust-id-icon--vk{ background:#0077ff; }
.ust-id-icon--yandex{ background:transparent; }
.ust-id-icon--google{ background:#fff; }
[data-theme="dark"] .ust-id-icon--google{ background:#131314; }
.ust-id-icon--discord{ background:#5865F2; }
.ust-id-icon--facebook{ background:#1877F2; }
.ust-id-body{ flex:1; min-width:180px; }
.ust-id-name{ font-weight:800; font-size:15px; color:var(--text); margin-bottom:4px; }
.ust-id-meta{ font-size:13px; color:var(--text-secondary); line-height:1.45; }
.ust-id-meta a{ color:var(--accent); font-weight:600; text-decoration:none; }
.ust-id-meta a:hover{ text-decoration:underline; }
.ust-id-status{
  display:inline-flex; align-items:center; gap:5px;
  font-size:12px; font-weight:700; margin-top:4px;
}
.ust-id-status--ok{ color:var(--accent); }
.ust-id-status--off{ color:var(--text-muted); }
.ust-id-actions{ display:flex; align-items:center; gap:8px; flex-shrink:0; flex-wrap:wrap; }
.ust-id-unlink{ display:inline; margin:0; }
.ust-id-badge{
  font-family:var(--font-mono); font-size:10px; font-weight:700;
  letter-spacing:.06em; text-transform:uppercase;
  padding:3px 9px; border-radius:999px;
  background:color-mix(in srgb, var(--accent) 12%, var(--bg-card));
  border:1px solid var(--accent-border); color:var(--accent);
}
.ust-id-badge--muted{
  background:var(--bg-inset); border-color:var(--border); color:var(--text-muted);
}
.ust-id-source{
  display:block; margin-top:4px; font-size:11px; color:var(--text-muted);
}

/* Toggle rows */
.ust-toggle-row{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:13px 0; border-bottom:1px solid var(--border);
}
.ust-toggle-row:last-child{ border-bottom:none; }
.ust-toggle-info{ flex:1; min-width:0; }
.ust-toggle-label{ font-size:14px; font-weight:700; color:var(--text); margin-bottom:2px; }
.ust-toggle-desc{ font-size:12px; color:var(--text-muted); line-height:1.45; }

/* iOS-style toggle */
.ios-toggle{
  position:relative; display:inline-block; width:46px; height:28px; flex-shrink:0;
}
.ios-toggle input{ opacity:0; width:0; height:0; position:absolute; }
.ios-slider{
  position:absolute; cursor:pointer; inset:0;
  background:var(--bg-inset); border:1px solid var(--border); border-radius:999px;
  transition:background .2s var(--ease-out), border-color .2s var(--ease-out);
}
.ios-slider::before{
  content:''; position:absolute; width:22px; height:22px;
  left:2px; top:2px; background:var(--bg-card);
  border-radius:50%; transition:transform .2s var(--ease-out);
  box-shadow:0 1px 4px color-mix(in srgb, var(--text) 18%, transparent);
}
.ios-toggle input:checked + .ios-slider{
  background:var(--accent); border-color:var(--accent);
}
.ios-toggle input:checked + .ios-slider::before{ transform:translateX(18px); }
.ios-sm{ width:38px; height:22px; }
.ios-sm .ios-slider::before{ width:16px; height:16px; }
.ios-sm input:checked + .ios-slider::before{ transform:translateX(16px); }

/* Notification channels & events */
.ust-channels{
  display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px;
  margin-bottom:18px;
}
.ust-channel-card{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:12px 14px; border-radius:var(--radius-sm);
  background:var(--bg-inset); border:1px solid var(--border);
  transition:opacity .2s;
}
.ust-channel-card.ch-off{ opacity:.45; }
.ust-channel-info{ display:flex; align-items:center; gap:10px; min-width:0; }
.ust-channel-info svg{ flex-shrink:0; color:var(--text-muted); }
.ust-channel-label{ font-size:14px; font-weight:700; color:var(--text); }
.ust-channel-sub{ font-size:12px; color:var(--text-muted); }

.ust-events-block{ margin-bottom:16px; }
.ust-events-title{
  font-family:var(--font-mono); font-size:10px; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; color:var(--text-muted);
  margin-bottom:10px;
}
.ust-events-grid{
  display:grid; grid-template-columns:1fr 58px 58px; gap:8px 6px;
  align-items:center;
}
.ust-eg-head{
  font-size:11px; font-weight:700; color:var(--text-muted);
  display:flex; align-items:center; gap:4px; justify-content:center;
}
.ust-eg-head:first-child{ justify-content:flex-start; }
.ust-eg-row{ font-size:13px; color:var(--text-secondary); line-height:1.35; padding:2px 0; }
.ust-eg-cell{ display:flex; justify-content:center; }
.ust-eg-ch{ transition:opacity .25s; }
.ust-eg-ch.ch-off{ opacity:.28; pointer-events:none; }

@media (max-width:960px){
  .ust-mnav{ display:flex; }
  .ust-sidebar.an-sidebar{ width:min(84vw, 300px); }
}

@media (max-width:720px){
  .ust .js-section{ padding:16px; }
  .ust-hero-inner{ padding:16px; }
  .ust-channels{ grid-template-columns:1fr; }
  .ust-avatar-row{ flex-direction:column; align-items:flex-start; }
  .ust-events-grid{ grid-template-columns:1fr 48px 48px; }
  .ust-id-card{ flex-direction:column; }
  .ust-id-actions{ width:100%; }
  .ust-id-actions .btn-secondary, .ust-id-actions .btn-primary{ flex:1; justify-content:center; }
}

/* ═══════════════════════════════════════════════════════════════
   Flight view — /flight/{id}
   Flight strip dossier × destination board
   ═══════════════════════════════════════════════════════════════ */

.fv{
  display:flex; flex-direction:column; gap:18px;
  width:100%; max-width:1040px; margin:0 auto; min-width:0;
}
.fv-back{
  align-self:flex-start; padding:8px 14px; font-size:13px;
}

/* Hero — destination board */
.fv-hero{
  position:relative; overflow:hidden; padding:0;
}
.fv-hero-deco{
  position:absolute; inset:0; pointer-events:none; overflow:hidden;
}
.fv-hero-horizon{
  position:absolute; left:-10%; right:-10%; bottom:28%;
  height:1px;
  background:var(--hero-horizon);
  opacity:.35;
}
.fv-hero-runway{
  position:absolute; left:50%; bottom:0; width:120%; height:42%;
  transform:translateX(-50%);
  background:
    repeating-linear-gradient(90deg,
      transparent 0 18px,
      color-mix(in srgb, var(--warm) 18%, transparent) 18px 20px),
    linear-gradient(180deg, transparent, color-mix(in srgb, var(--accent) 8%, transparent)));
  opacity:.55;
  -webkit-mask-image:linear-gradient(180deg, transparent, #000 40%);
          mask-image:linear-gradient(180deg, transparent, #000 40%);
}
.fv-hero-mark{
  position:absolute; width:18px; height:18px;
  border-color:color-mix(in srgb, var(--accent) 45%, transparent);
  border-style:solid; opacity:.55;
}
.fv-hero-mark--tl{ top:14px; left:14px; border-width:2px 0 0 2px; }
.fv-hero-mark--br{ bottom:14px; right:14px; border-width:0 2px 2px 0; }

.fv-hero-top{
  position:relative; z-index:1;
  display:flex; align-items:flex-start; justify-content:space-between;
  gap:16px; flex-wrap:wrap;
  padding:22px 24px 0;
}
.fv-eyebrow{
  margin:0 0 6px;
  font-family:var(--font-mono); font-size:10.5px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:var(--accent);
}
.fv-title{
  margin:0;
  font-family:var(--font-display); font-size:clamp(22px, 3.2vw, 28px);
  font-weight:800; letter-spacing:-.02em; line-height:1.15; color:var(--text);
}
.fv-title-num{
  font-family:var(--font-mono); font-weight:700; font-size:.82em;
  color:var(--text-secondary); letter-spacing:.02em;
}

.fv-badges{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.fv-badge{
  display:inline-flex; align-items:center;
  padding:5px 12px; border-radius:999px;
  font-family:var(--font-mono); font-size:10.5px; font-weight:800;
  letter-spacing:.08em; text-transform:uppercase; white-space:nowrap;
  border:1px solid var(--border); background:var(--bg-inset); color:var(--text-secondary);
}
.fv-badge--mod{
  background:color-mix(in srgb, var(--accent) 14%, transparent);
  border-color:color-mix(in srgb, var(--accent) 35%, transparent);
  color:var(--accent);
}
.fv-badge--ai{
  background:color-mix(in srgb, var(--warm) 16%, transparent);
  border-color:color-mix(in srgb, var(--warm) 40%, transparent);
  color:var(--warm);
}
.fv-badge--pending{
  background:color-mix(in srgb, var(--warm) 10%, transparent);
  border-color:color-mix(in srgb, var(--warm) 28%, transparent);
  color:color-mix(in srgb, var(--warm) 85%, var(--text));
}
.fv-badge--zero{
  background:color-mix(in srgb, var(--hot) 14%, transparent);
  border-color:color-mix(in srgb, var(--hot) 35%, transparent);
  color:var(--hot);
}
.fv-badge--arch{
  background:var(--bg-inset);
  border-color:var(--border);
  color:var(--text-muted);
}

/* Route board */
.fv-route{
  position:relative; z-index:1;
  display:grid; grid-template-columns:1fr auto 1fr;
  align-items:end; gap:12px;
  padding:28px 28px 18px;
}
.fv-airport{ display:flex; flex-direction:column; gap:6px; min-width:0; }
.fv-airport--arr{ text-align:right; align-items:flex-end; }
.fv-airport-label{
  font-family:var(--font-mono); font-size:10px; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; color:var(--text-muted);
}
.fv-icao{
  font-family:var(--font-display); font-weight:800;
  font-size:clamp(2.2rem, 6vw, 3.4rem);
  letter-spacing:.04em; line-height:1; color:var(--text);
  text-shadow:0 0 40px color-mix(in srgb, var(--accent) 18%, transparent);
}

.fv-connector{
  display:flex; align-items:center; gap:0;
  min-width:72px; width:clamp(72px, 18vw, 160px);
  padding-bottom:10px;
}
.fv-connector-dash{
  flex:1; height:2px; border-radius:2px;
  background:repeating-linear-gradient(90deg,
    color-mix(in srgb, var(--secondary) 55%, transparent) 0 6px,
    transparent 6px 12px);
  background-size:18px 2px;
  animation:fv-dash 1.4s linear infinite;
}
.fv-connector-plane{
  display:flex; align-items:center; justify-content:center;
  width:36px; height:36px; flex-shrink:0;
  color:var(--secondary);
  transform:rotate(90deg);
  filter:drop-shadow(0 4px 10px color-mix(in srgb, var(--secondary) 35%, transparent));
  animation:fv-plane-bob 2.8s ease-in-out infinite;
}
.fv-connector-plane svg{ width:20px; height:20px; }
@keyframes fv-dash{
  to{ background-position:18px 0; }
}
@keyframes fv-plane-bob{
  0%, 100%{ transform:rotate(90deg) translateY(0); }
  50%{ transform:rotate(90deg) translateY(-3px); }
}

.fv-hero-meta{
  position:relative; z-index:1;
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  padding:0 24px 22px;
}
.fv-date-chip{
  display:inline-flex; align-items:center; gap:7px;
  padding:6px 12px; border-radius:999px;
  background:var(--bg-inset); border:1px solid var(--border);
  font-family:var(--font-mono); font-size:12.5px; font-weight:600;
  color:var(--text-secondary);
}
.fv-date-chip svg{ opacity:.7; flex-shrink:0; }

/* Body grid */
.fv-body{
  display:grid;
  grid-template-columns:minmax(260px, 380px) 1fr;
  gap:16px; align-items:start;
}
.fv-col{ display:flex; flex-direction:column; gap:14px; min-width:0; }

/* Section cards */
.fv-s{ padding:16px 18px 18px; }
.fv-s--danger{ padding:14px 16px; }
.fv-s--rating{
  background:linear-gradient(160deg,
    color-mix(in srgb, var(--warm) 7%, var(--bg-card)),
    var(--bg-card) 55%);
}
.fv-s--zero{
  background:linear-gradient(160deg,
    color-mix(in srgb, var(--hot) 8%, var(--bg-card)),
    var(--bg-card) 55%);
  border-color:color-mix(in srgb, var(--hot) 28%, var(--border));
}

.fv-sh{
  display:flex; align-items:center; gap:10px; margin-bottom:14px;
}
.fv-sh h2{
  margin:0;
  font-family:var(--font-mono); font-size:11px; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase; color:var(--text-muted);
}
.fv-si{
  width:28px; height:28px; border-radius:8px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  background:var(--bg-inset); color:var(--text-muted);
  border:1px solid var(--border);
}
.fv-si svg{
  width:13px; height:13px;
  stroke:currentColor; stroke-width:2.1; stroke-linecap:round; stroke-linejoin:round; fill:none;
}
.fv-si--accent{
  background:color-mix(in srgb, var(--accent) 12%, transparent);
  border-color:color-mix(in srgb, var(--accent) 28%, transparent);
  color:var(--accent);
}
.fv-si--warm{
  background:color-mix(in srgb, var(--warm) 14%, transparent);
  border-color:color-mix(in srgb, var(--warm) 32%, transparent);
  color:var(--warm);
}
.fv-si--hot{
  background:color-mix(in srgb, var(--hot) 12%, transparent);
  border-color:color-mix(in srgb, var(--hot) 30%, transparent);
  color:var(--hot);
}

/* Screenshot */
.fv-shot{
  position:relative; display:block; width:100%; padding:0; margin:0;
  border:none; background:transparent; cursor:pointer; border-radius:var(--radius-sm);
  overflow:hidden;
}
.fv-report-img{
  width:100%; border-radius:var(--radius-sm);
  border:1px solid var(--border);
  transition:transform .35s var(--ease-out), box-shadow .35s var(--ease-out);
}
.fv-shot:hover .fv-report-img,
.fv-shot:focus-visible .fv-report-img{
  transform:scale(1.015);
  box-shadow:var(--shadow-glow);
}
.fv-shot-hint{
  position:absolute; left:50%; bottom:12px; transform:translateX(-50%) translateY(6px);
  display:inline-flex; align-items:center; gap:6px;
  padding:6px 12px; border-radius:999px;
  background:color-mix(in srgb, var(--bg-card) 92%, transparent);
  border:1px solid var(--border); backdrop-filter:blur(8px);
  font-size:12px; font-weight:700; color:var(--text-secondary);
  opacity:0; transition:opacity .25s var(--ease-out), transform .25s var(--ease-out);
  pointer-events:none; white-space:nowrap;
}
.fv-shot:hover .fv-shot-hint,
.fv-shot:focus-visible .fv-shot-hint{
  opacity:1; transform:translateX(-50%) translateY(0);
}

/* Stars / review */
.fv-stars-row{ display:flex; align-items:center; gap:12px; }
.fv-stars{ display:flex; gap:2px; }
.fv-star{
  font-size:22px; line-height:1; color:color-mix(in srgb, var(--text) 12%, transparent);
  user-select:none; transition:color .2s, transform .2s var(--ease-out);
}
.fv-star.is-on{
  color:var(--warm);
  text-shadow:0 0 12px color-mix(in srgb, var(--warm) 40%, transparent);
}
.fv-stars-score{
  font-family:var(--font-mono); font-size:14px; font-weight:700; color:var(--text);
}
.fv-review-comment{
  margin:12px 0 0; font-size:14px; line-height:1.55; color:var(--text-secondary);
}

/* Pilot */
.fv-pilot-row{ display:flex; align-items:center; gap:10px; }
.fv-pilot-name{
  font-weight:700; font-size:15px; color:var(--text);
  transition:color .18s var(--ease-out);
}
.fv-pilot-name:hover{ color:var(--accent); }
.fv-vk-btn{
  display:inline-flex; align-items:center; justify-content:center;
  width:32px; height:32px; border-radius:10px;
  color:var(--text-muted); background:var(--bg-inset); border:1px solid var(--border);
  transition:color .15s, border-color .15s, background .15s, transform .15s;
}
.fv-vk-btn:hover{
  color:#0077ff; border-color:color-mix(in srgb, #0077ff 35%, var(--border));
  background:color-mix(in srgb, #0077ff 8%, var(--bg-inset));
  transform:translateY(-1px);
}
.fv-muted{ color:var(--text-muted); }
.fv-mod-row{
  margin-top:14px; padding-top:14px; border-top:1px solid var(--border);
}
.fv-mod-label{
  font-family:var(--font-mono); font-size:10px; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; color:var(--text-muted); margin-bottom:4px;
}
.fv-mod-name{ font-weight:700; font-size:14px; color:var(--text); }
.fv-mod-date{ font-family:var(--font-mono); font-size:12px; color:var(--text-muted); margin-top:3px; }

/* Params */
.fv-params{ margin:0; display:flex; flex-direction:column; }
.fv-param-row{
  display:flex; justify-content:space-between; align-items:baseline;
  gap:14px; padding:9px 0;
}
.fv-param-row + .fv-param-row{ border-top:1px solid var(--border); }
.fv-param-key{ font-size:13px; color:var(--text-muted); flex-shrink:0; margin:0; }
.fv-param-val{
  margin:0; font-family:var(--font-mono); font-size:13.5px; font-weight:600;
  color:var(--text); text-align:right; word-break:break-word;
}

/* Rating */
.fv-rating-header{ display:flex; align-items:flex-end; gap:10px; margin-bottom:10px; }
.fv-rating-num{
  font-family:var(--font-display); font-size:clamp(2.4rem, 5vw, 3.1rem);
  font-weight:800; line-height:1; letter-spacing:-.03em;
  background:var(--grad-accent-text);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
}
.fv-rating-num--zero{
  background:linear-gradient(140deg, var(--hot), color-mix(in srgb, var(--hot) 50%, #fff));
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
}
.fv-rating-label{
  font-family:var(--font-mono); font-size:11px; font-weight:700;
  letter-spacing:.08em; text-transform:uppercase; color:var(--text-muted);
  padding-bottom:8px;
}
.fv-rating-bar{
  height:6px; border-radius:999px; background:var(--bg-inset);
  overflow:hidden; margin-bottom:14px; border:1px solid var(--border);
}
.fv-rating-bar-fill{
  height:100%; border-radius:999px;
  background:linear-gradient(90deg, var(--accent), var(--warm));
  box-shadow:0 0 12px color-mix(in srgb, var(--warm) 40%, transparent);
  transition:width .6s var(--ease-out);
}
.fv-pills{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.fv-pill{
  padding:10px 12px; border-radius:var(--radius-xs);
  background:var(--bg-inset); border:1px solid var(--border);
}
.fv-pill-label{
  font-family:var(--font-mono); font-size:10px; font-weight:700;
  letter-spacing:.08em; text-transform:uppercase; color:var(--text-muted);
}
.fv-pill-value{
  margin-top:4px; font-family:var(--font-mono); font-size:14px; font-weight:700; color:var(--text);
}
.fv-meta-row{
  margin-top:10px; font-size:13px; color:var(--text-muted); line-height:1.55;
}
.fv-meta-row a{
  color:var(--accent); font-weight:600; text-decoration:underline; text-underline-offset:3px;
}
.fv-meta-row strong{ color:var(--warm); font-weight:700; }
.fv-zero-note{
  margin-top:4px; padding:12px 14px;
  background:color-mix(in srgb, var(--hot) 8%, transparent);
  border-left:3px solid color-mix(in srgb, var(--hot) 55%, transparent);
  border-radius:0 var(--radius-xs) var(--radius-xs) 0;
  font-size:13.5px; color:color-mix(in srgb, var(--hot) 85%, var(--text)); line-height:1.5;
}
.fv-zero-note strong{ color:var(--hot); }
.fv-decision-btn{ margin-top:12px; padding:9px 16px; font-size:13px; }

/* Appeal */
.fv-appeal-box{
  padding:12px 14px; border-radius:var(--radius-xs);
  background:color-mix(in srgb, var(--warm) 8%, transparent);
  border-left:3px solid color-mix(in srgb, var(--warm) 45%, transparent);
  font-size:14px; line-height:1.55; color:var(--text);
}
.fv-appeal-meta{ margin-top:8px; font-size:12.5px; color:var(--text-muted); }
.fv-fl{
  display:block; margin-bottom:7px;
  font-size:13px; font-weight:700; color:var(--text);
}
.fv-fl-req{ color:var(--hot); }
.fv-ta{
  width:100%; padding:12px 14px; resize:vertical;
  background:var(--bg-inset); border:1px solid var(--border);
  border-radius:var(--radius-sm); color:var(--text);
  font-size:14px; font-family:var(--font-body); line-height:1.5;
  transition:border-color .2s var(--ease-out), box-shadow .2s var(--ease-out);
}
.fv-ta:focus{
  outline:none; border-color:var(--border-hover);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 16%, transparent);
}
.fv-ta::placeholder{ color:var(--text-muted); }
.fv-hint{ margin:6px 0 0; font-size:12px; color:var(--text-muted); }
.fv-submit{ width:100%; margin-top:14px; }
.fv-archive-btn{ width:100%; }

/* Modal image */
.fv-modal-card{ width:min(1000px, 96%); }
.fv-modal-body{ align-items:center; }
.fv-modal-body img{
  max-width:100%; max-height:74vh; border-radius:var(--radius-sm);
  border:1px solid var(--border);
}

@media (max-width:980px){
  .fv-body{ grid-template-columns:1fr; }
}
@media (max-width:640px){
  .fv-hero-top{ padding:18px 18px 0; }
  .fv-route{ padding:22px 18px 14px; gap:8px; }
  .fv-icao{ font-size:clamp(1.85rem, 11vw, 2.4rem); }
  .fv-connector{ min-width:48px; width:auto; padding-bottom:6px; }
  .fv-hero-meta{ padding:0 18px 18px; }
  .fv-s{ padding:14px 14px 16px; }
  .fv-pills{ grid-template-columns:1fr 1fr; }
}
@media (max-width:380px){
  .fv-route{ grid-template-columns:1fr; gap:14px; text-align:center; }
  .fv-airport, .fv-airport--arr{ align-items:center; text-align:center; }
  .fv-connector{ width:100%; justify-content:center; padding-bottom:0; }
  .fv-pills{ grid-template-columns:1fr; }
}
@media (prefers-reduced-motion: reduce){
  .fv-connector-dash, .fv-connector-plane{ animation:none; }
}

/* ═══════════════════════════════════════════════════════════════
   Flight view blocked — /flight/{id} (locked / archived)
   Restricted strip notice
   ═══════════════════════════════════════════════════════════════ */

.fvb{
  flex:1; display:flex; align-items:center; justify-content:center;
  min-height:min(62vh, 560px); padding:24px 0 40px;
}
.fvb-card{
  position:relative; overflow:hidden;
  width:100%; max-width:460px;
  padding:44px 36px 36px; text-align:center;
}
.fvb-card--locked{
  background:linear-gradient(165deg,
    color-mix(in srgb, var(--warm) 8%, var(--bg-card)),
    var(--bg-card) 50%);
}
.fvb-card--archived{
  background:linear-gradient(165deg,
    color-mix(in srgb, var(--hot) 8%, var(--bg-card)),
    var(--bg-card) 50%);
  border-color:color-mix(in srgb, var(--hot) 22%, var(--border));
}
.fvb-deco{ position:absolute; inset:0; pointer-events:none; }
.fvb-deco-ring{
  position:absolute; left:50%; top:38px; width:120px; height:120px;
  margin-left:-60px; border-radius:50%;
  border:1px dashed color-mix(in srgb, var(--border-hover) 70%, transparent);
  opacity:.55; animation:fvb-spin 28s linear infinite;
}
.fvb-deco-ring--2{
  width:160px; height:160px; margin-left:-80px; top:18px;
  opacity:.28; animation-direction:reverse; animation-duration:40s;
}
.fvb-mark{
  position:absolute; width:16px; height:16px;
  border-color:color-mix(in srgb, var(--accent) 40%, transparent);
  border-style:solid; opacity:.5;
}
.fvb-mark--tl{ top:12px; left:12px; border-width:2px 0 0 2px; }
.fvb-mark--br{ bottom:12px; right:12px; border-width:0 2px 2px 0; }
@keyframes fvb-spin{ to{ transform:rotate(360deg); } }

.fvb-icon{
  position:relative; z-index:1;
  width:64px; height:64px; margin:0 auto 22px;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  border:1px solid var(--border);
}
.fvb-icon--lock{
  background:color-mix(in srgb, var(--warm) 12%, transparent);
  border-color:color-mix(in srgb, var(--warm) 32%, transparent);
  color:var(--warm);
  box-shadow:0 0 0 8px color-mix(in srgb, var(--warm) 6%, transparent);
}
.fvb-icon--trash{
  background:color-mix(in srgb, var(--hot) 12%, transparent);
  border-color:color-mix(in srgb, var(--hot) 30%, transparent);
  color:var(--hot);
  box-shadow:0 0 0 8px color-mix(in srgb, var(--hot) 6%, transparent);
}

.fvb-eyebrow{
  position:relative; z-index:1; margin:0 0 10px;
  font-family:var(--font-mono); font-size:11px; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; color:var(--accent);
}
.fvb-title{
  position:relative; z-index:1; margin:0 0 12px;
  font-family:var(--font-display); font-size:clamp(22px, 4vw, 28px);
  font-weight:800; letter-spacing:-.02em; color:var(--text);
}
.fvb-desc{
  position:relative; z-index:1; margin:0 0 28px;
  font-size:14.5px; line-height:1.6; color:var(--text-secondary);
}
.fvb-back{ position:relative; z-index:1; }

@media (max-width:480px){
  .fvb-card{ padding:36px 22px 28px; }
}
@media (prefers-reduced-motion: reduce){
  .fvb-deco-ring{ animation:none; }
}


/* ═══════════════════════════════════════════════════════════════
   Company create — /company/create
   Fleet founding form × registry card
   ═══════════════════════════════════════════════════════════════ */

.ccr{
  display:flex; flex-direction:column; gap:18px;
  width:100%; max-width:920px; margin:0 auto; min-width:0;
}
.ccr-back{ align-self:flex-start; padding:8px 14px; font-size:13px; }

.ccr-hero{ position:relative; overflow:hidden; padding:0; }
.ccr-hero-deco{ position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.ccr-hero-runway{
  position:absolute; left:50%; bottom:0; width:130%; height:48%;
  transform:translateX(-50%);
  background:
    repeating-linear-gradient(90deg,
      transparent 0 16px,
      color-mix(in srgb, var(--accent) 16%, transparent) 16px 18px),
    linear-gradient(180deg, transparent, color-mix(in srgb, var(--accent) 8%, transparent)));
  opacity:.5;
  -webkit-mask-image:linear-gradient(180deg, transparent, #000 45%);
          mask-image:linear-gradient(180deg, transparent, #000 45%);
}
.ccr-hero-mark{
  position:absolute; width:16px; height:16px;
  border-color:color-mix(in srgb, var(--accent) 45%, transparent);
  border-style:solid; opacity:.55;
}
.ccr-hero-mark--tl{ top:14px; left:14px; border-width:2px 0 0 2px; }
.ccr-hero-mark--br{ bottom:14px; right:14px; border-width:0 2px 2px 0; }

.ccr-hero-inner{
  position:relative; z-index:1;
  display:flex; align-items:center; gap:18px;
  padding:24px 26px;
}
.ccr-hero-icon{
  display:flex; align-items:center; justify-content:center;
  width:56px; height:56px; flex-shrink:0; border-radius:14px;
  background:color-mix(in srgb, var(--accent) 12%, var(--bg-inset));
  border:1px solid color-mix(in srgb, var(--accent) 30%, var(--border));
  color:var(--accent);
}
.ccr-hero-icon svg{ width:28px; height:28px; }
.ccr-eyebrow{
  margin:0 0 6px;
  font-family:var(--font-mono); font-size:10.5px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:var(--accent);
}
.ccr-title{
  margin:0 0 6px;
  font-family:var(--font-display); font-size:clamp(22px, 3.5vw, 30px);
  font-weight:800; letter-spacing:-.03em; line-height:1.1; color:var(--text);
}
.ccr-lead{
  margin:0; font-size:14px; line-height:1.55; color:var(--text-secondary); max-width:52ch;
}

.ccr-grid{
  display:grid; grid-template-columns:minmax(0, 1.15fr) minmax(0, .85fr);
  gap:16px; align-items:start;
}
.ccr-form{
  display:flex; flex-direction:column; gap:22px;
  padding:24px 26px 26px;
}
.ccr-field{ display:flex; flex-direction:column; gap:8px; }
.ccr-label{
  font-family:var(--font-mono); font-size:11px; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; color:var(--text-muted);
}
.ccr-req{ color:var(--hot); }
.ccr-avatar-row{ display:flex; align-items:center; gap:16px; }
.ccr-avatar-preview{
  width:76px; height:76px; border-radius:16px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  background:var(--bg-inset); border:2px dashed var(--border);
  color:var(--text-muted); overflow:hidden;
  transition:border-color .2s var(--ease-out), background .2s var(--ease-out);
}
.ccr-avatar-preview.has-img{
  border-style:solid; border-color:var(--accent-border);
}
.ccr-avatar-preview img{ width:100%; height:100%; object-fit:cover; }
.ccr-avatar-actions{ display:flex; flex-direction:column; gap:6px; align-items:flex-start; }
.ccr-upload-btn{ padding:9px 14px; font-size:13px; cursor:pointer; }
.ccr-hint{ margin:0; font-size:12px; color:var(--text-muted); }

.ccr-input{
  width:100%; padding:12px 14px;
  background:var(--bg-inset); border:1px solid var(--border);
  border-radius:var(--radius-sm); color:var(--text);
  font-size:15px; font-family:var(--font-body);
  transition:border-color .2s var(--ease-out), box-shadow .2s var(--ease-out);
}
.ccr-input:focus{
  outline:none; border-color:var(--border-hover);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 16%, transparent);
}
.ccr-input::placeholder{ color:var(--text-muted); }
.ccr-submit{ width:100%; margin-top:4px; }

.ccr-aside{ padding:22px 22px 20px; }
.ccr-aside-title{
  margin:0 0 14px;
  font-family:var(--font-display); font-size:16px; font-weight:800; color:var(--text);
}
.ccr-checklist{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.ccr-check{
  display:flex; align-items:flex-start; gap:10px;
  font-size:13.5px; line-height:1.5; color:var(--text-secondary);
}
.ccr-check-icon{
  width:22px; height:22px; border-radius:50%; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  background:color-mix(in srgb, var(--accent) 12%, transparent);
  border:1px solid color-mix(in srgb, var(--accent) 28%, transparent);
  color:var(--accent); margin-top:1px;
}
.ccr-check-icon svg{ width:12px; height:12px; }

@media (max-width:820px){
  .ccr-grid{ grid-template-columns:1fr; }
  .ccr-hero-inner{ padding:20px; }
}
@media (max-width:480px){
  .ccr-form{ padding:18px 16px 20px; }
  .ccr-aside{ padding:18px 16px; }
}

/* ═══════════════════════════════════════════════════════════════
   Leagues — /leagues
   Season ladder × championship board
   Open = accent · Challenger = secondary · Champions = warm
   ═══════════════════════════════════════════════════════════════ */

.lgs{
  display:flex; flex-direction:column; gap:18px;
  width:100%; max-width:860px; margin:0 auto; min-width:0;
}

.lgs-hero{ position:relative; overflow:hidden; padding:0; }
.lgs-hero-deco{ position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.lgs-hero-rays{
  position:absolute; inset:-40% -20%;
  background:conic-gradient(from 210deg at 50% 100%,
    transparent 0deg,
    color-mix(in srgb, var(--warm) 14%, transparent) 45deg,
    transparent 90deg,
    color-mix(in srgb, var(--accent) 12%, transparent) 140deg,
    transparent 180deg);
  opacity:.75;
}
.lgs-hero-mark{
  position:absolute; width:16px; height:16px;
  border-color:color-mix(in srgb, var(--warm) 45%, transparent);
  border-style:solid; opacity:.5;
}
.lgs-hero-mark--tl{ top:14px; left:14px; border-width:2px 0 0 2px; }
.lgs-hero-mark--br{ bottom:14px; right:14px; border-width:0 2px 2px 0; }

.lgs-hero-inner{
  position:relative; z-index:1;
  display:flex; align-items:center; gap:18px; flex-wrap:wrap;
  padding:24px 26px;
}
.lgs-hero-icon{
  display:flex; align-items:center; justify-content:center;
  width:56px; height:56px; flex-shrink:0; border-radius:14px;
  background:color-mix(in srgb, var(--warm) 12%, var(--bg-inset));
  border:1px solid color-mix(in srgb, var(--warm) 32%, var(--border));
  color:var(--warm);
}
.lgs-hero-icon svg{ width:28px; height:28px; }
.lgs-hero-text{ flex:1; min-width:180px; }
.lgs-eyebrow{
  margin:0 0 6px;
  font-family:var(--font-mono); font-size:10.5px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:var(--warm);
}
.lgs-title{
  margin:0 0 6px;
  font-family:var(--font-display); font-size:clamp(24px, 4vw, 34px);
  font-weight:800; letter-spacing:-.03em; line-height:1.05; color:var(--text);
}
.lgs-lead{ margin:0; font-size:14px; color:var(--text-secondary); font-family:var(--font-mono); }
.lgs-season-chip{
  display:inline-flex; align-items:center; gap:7px;
  padding:7px 13px; border-radius:999px;
  background:var(--bg-inset); border:1px solid var(--border);
  font-family:var(--font-mono); font-size:12px; font-weight:600;
  color:var(--text-secondary); white-space:nowrap;
}
.lgs-season-chip svg{ opacity:.7; flex-shrink:0; }

.lgs-board{ padding:0; overflow:hidden; }

.lgs-tabs{
  display:flex; gap:4px; padding:8px;
  border-bottom:1px solid var(--border);
  overflow-x:auto; scrollbar-width:none;
  background:color-mix(in srgb, var(--bg-inset) 40%, transparent);
}
.lgs-tabs::-webkit-scrollbar{ display:none; }
.lgs-tab{
  appearance:none; border:1px solid transparent;
  display:inline-flex; align-items:center; gap:7px;
  background:transparent; color:var(--text-muted);
  padding:10px 14px; border-radius:var(--radius-xs);
  cursor:pointer; white-space:nowrap; font-size:13px; font-weight:600;
  font-family:var(--font-body);
  transition:color .18s var(--ease-out), background .18s var(--ease-out), border-color .18s var(--ease-out);
}
.lgs-tab:hover{ color:var(--text); background:var(--bg-inset); }
.lgs-tab-count{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:20px; height:20px; padding:0 6px; border-radius:999px;
  font-family:var(--font-mono); font-size:11px; font-weight:700;
  background:var(--bg-inset); border:1px solid var(--border); color:var(--text-muted);
}
.lgs-tab--open.is-active{
  background:color-mix(in srgb, var(--accent) 14%, transparent);
  border-color:color-mix(in srgb, var(--accent) 35%, transparent);
  color:var(--accent); font-weight:700;
}
.lgs-tab--open.is-active .lgs-tab-count{
  background:color-mix(in srgb, var(--accent) 16%, transparent);
  border-color:color-mix(in srgb, var(--accent) 30%, transparent);
  color:var(--accent);
}
.lgs-tab--challenger.is-active{
  background:color-mix(in srgb, var(--secondary) 14%, transparent);
  border-color:color-mix(in srgb, var(--secondary) 35%, transparent);
  color:var(--secondary); font-weight:700;
}
.lgs-tab--challenger.is-active .lgs-tab-count{
  background:color-mix(in srgb, var(--secondary) 16%, transparent);
  border-color:color-mix(in srgb, var(--secondary) 30%, transparent);
  color:var(--secondary);
}
.lgs-tab--champions.is-active{
  background:color-mix(in srgb, var(--warm) 16%, transparent);
  border-color:color-mix(in srgb, var(--warm) 40%, transparent);
  color:var(--warm); font-weight:700;
}
.lgs-tab--champions.is-active .lgs-tab-count{
  background:color-mix(in srgb, var(--warm) 18%, transparent);
  border-color:color-mix(in srgb, var(--warm) 35%, transparent);
  color:var(--warm);
}

@media (min-width:720px){
  .lgs-tabs{
    display:grid; grid-template-columns:repeat(3, minmax(0, 1fr));
    overflow-x:visible;
  }
  .lgs-tab{ justify-content:center; width:100%; }
}

.lgs-panels{ padding:18px 20px 20px; }
.lgs-panel{ display:none; }
.lgs-panel.is-active{ display:block; }
.lgs-panel[hidden]{ display:none !important; }

.lgs-league-head{
  display:flex; align-items:center; gap:14px;
  padding:14px 16px; border-radius:var(--radius-sm);
  margin-bottom:14px; border:1px solid;
}
.lgs-league-head--open{
  background:color-mix(in srgb, var(--accent) 7%, transparent);
  border-color:color-mix(in srgb, var(--accent) 28%, transparent);
}
.lgs-league-head--challenger{
  background:color-mix(in srgb, var(--secondary) 7%, transparent);
  border-color:color-mix(in srgb, var(--secondary) 28%, transparent);
}
.lgs-league-head--champions{
  background:color-mix(in srgb, var(--warm) 9%, transparent);
  border-color:color-mix(in srgb, var(--warm) 32%, transparent);
}
.lgs-league-icon{
  width:44px; height:44px; flex-shrink:0; border-radius:12px;
  display:flex; align-items:center; justify-content:center;
  border:1px solid var(--border); background:var(--bg-inset);
}
.lgs-league-head--open .lgs-league-icon{
  color:var(--accent);
  background:color-mix(in srgb, var(--accent) 12%, transparent);
  border-color:color-mix(in srgb, var(--accent) 28%, transparent);
}
.lgs-league-head--challenger .lgs-league-icon{
  color:var(--secondary);
  background:color-mix(in srgb, var(--secondary) 12%, transparent);
  border-color:color-mix(in srgb, var(--secondary) 28%, transparent);
}
.lgs-league-head--champions .lgs-league-icon{
  color:var(--warm);
  background:color-mix(in srgb, var(--warm) 14%, transparent);
  border-color:color-mix(in srgb, var(--warm) 32%, transparent);
}
.lgs-league-text{ min-width:0; }
.lgs-league-name{
  margin:0; font-family:var(--font-display); font-size:16px; font-weight:800; color:var(--text);
}
.lgs-league-desc{ margin:3px 0 0; font-size:12.5px; color:var(--text-muted); }

.lgs-list{ display:flex; flex-direction:column; gap:6px; }
.lgs-item{
  display:flex; align-items:center; gap:12px;
  padding:11px 14px; border-radius:var(--radius-sm);
  border:1px solid var(--border); background:var(--bg-inset);
  text-decoration:none; color:inherit;
  transition:background .18s var(--ease-out), border-color .18s var(--ease-out), transform .18s var(--ease-out);
}
.lgs-item:hover{
  background:var(--bg-card); transform:translateY(-1px);
}
.lgs-item--open:hover{ border-color:color-mix(in srgb, var(--accent) 35%, var(--border)); }
.lgs-item--challenger:hover{ border-color:color-mix(in srgb, var(--secondary) 35%, var(--border)); }
.lgs-item--champions:hover{ border-color:color-mix(in srgb, var(--warm) 40%, var(--border)); }

.lgs-item--open.is-first{
  background:color-mix(in srgb, var(--accent) 8%, var(--bg-card));
  border-color:color-mix(in srgb, var(--accent) 30%, var(--border));
}
.lgs-item--challenger.is-first{
  background:color-mix(in srgb, var(--secondary) 8%, var(--bg-card));
  border-color:color-mix(in srgb, var(--secondary) 30%, var(--border));
}
.lgs-item--champions.is-first{
  background:color-mix(in srgb, var(--warm) 10%, var(--bg-card));
  border-color:color-mix(in srgb, var(--warm) 35%, var(--border));
}

.lgs-rank{
  flex:0 0 28px; height:28px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-mono); font-size:12px; font-weight:800;
  background:var(--bg-card); border:1px solid var(--border); color:var(--text-secondary);
}
.lgs-item--open .lgs-rank{ color:var(--accent); border-color:color-mix(in srgb, var(--accent) 28%, var(--border)); }
.lgs-item--challenger .lgs-rank{ color:var(--secondary); border-color:color-mix(in srgb, var(--secondary) 28%, var(--border)); }
.lgs-item--champions .lgs-rank{ color:var(--warm); border-color:color-mix(in srgb, var(--warm) 32%, var(--border)); }

.lgs-avatar{
  width:40px; height:40px; flex:0 0 40px; border-radius:50%;
  object-fit:cover; border:1px solid var(--border); background:var(--bg-card);
}
.lgs-avatar--ph{
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:800; font-size:16px;
  color:var(--accent); background:color-mix(in srgb, var(--accent) 10%, var(--bg-card));
}
.lgs-item--challenger .lgs-avatar--ph{ color:var(--secondary); background:color-mix(in srgb, var(--secondary) 10%, var(--bg-card)); }
.lgs-item--champions .lgs-avatar--ph{ color:var(--warm); background:color-mix(in srgb, var(--warm) 12%, var(--bg-card)); }

.lgs-name{
  flex:1; min-width:0; font-weight:700; font-size:14px; color:var(--text);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.lgs-points{
  display:inline-flex; align-items:center; gap:5px;
  font-family:var(--font-mono); font-weight:800; font-size:14px; flex-shrink:0;
}
.lgs-item--open .lgs-points{ color:var(--accent); }
.lgs-item--challenger .lgs-points{ color:var(--secondary); }
.lgs-item--champions .lgs-points{ color:var(--warm); }

.lgs-empty{
  display:flex; flex-direction:column; align-items:center; gap:10px;
  padding:44px 20px; text-align:center; color:var(--text-muted);
}
.lgs-empty svg{ opacity:.4; }
.lgs-empty p{ margin:0; font-size:14px; }

@media (max-width:640px){
  .lgs-hero-inner{ padding:18px; }
  .lgs-panels{ padding:14px; }
  .lgs-league-desc{ display:none; }
  .lgs-points{ font-size:13px; }
}


/* ═══════════════════════════════════════════════════════════════
   Alliance list — /alliances
   Sky coalition registry × orbital cards
   ═══════════════════════════════════════════════════════════════ */

.aln{
  display:flex; flex-direction:column; gap:18px;
  width:100%; max-width:1040px; margin:0 auto; min-width:0;
}

.aln-hero{ position:relative; overflow:hidden; padding:0; }
.aln-hero-deco{ position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.aln-orbit{
  position:absolute; border-radius:50%;
  border:1px solid color-mix(in srgb, var(--secondary) 28%, transparent);
  opacity:.55;
}
.aln-orbit--1{
  width:220px; height:220px; right:-40px; top:-70px;
  animation:aln-spin 48s linear infinite;
}
.aln-orbit--2{
  width:140px; height:140px; right:10px; top:-20px;
  border-color:color-mix(in srgb, var(--warm) 30%, transparent);
  animation:aln-spin 32s linear infinite reverse;
}
.aln-orbit--3{
  width:80px; height:80px; right:40px; top:20px;
  border-style:dashed; opacity:.4;
  animation:aln-spin 22s linear infinite;
}
.aln-hero-mark{
  position:absolute; width:16px; height:16px;
  border-color:color-mix(in srgb, var(--secondary) 45%, transparent);
  border-style:solid; opacity:.55;
}
.aln-hero-mark--tl{ top:14px; left:14px; border-width:2px 0 0 2px; }
.aln-hero-mark--br{ bottom:14px; right:14px; border-width:0 2px 2px 0; }
@keyframes aln-spin{ to{ transform:rotate(360deg); } }

.aln-hero-inner{
  position:relative; z-index:1;
  display:flex; align-items:center; gap:18px;
  padding:24px 26px;
}
.aln-hero-icon{
  display:flex; align-items:center; justify-content:center;
  width:56px; height:56px; flex-shrink:0; border-radius:14px;
  background:color-mix(in srgb, var(--secondary) 12%, var(--bg-inset));
  border:1px solid color-mix(in srgb, var(--secondary) 32%, var(--border));
  color:var(--secondary);
}
.aln-hero-icon svg{ width:28px; height:28px; }
.aln-eyebrow{
  margin:0 0 6px;
  font-family:var(--font-mono); font-size:10.5px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:var(--secondary);
}
.aln-title{
  margin:0 0 6px;
  font-family:var(--font-display); font-size:clamp(24px, 4vw, 34px);
  font-weight:800; letter-spacing:-.03em; line-height:1.05; color:var(--text);
}
.aln-lead{
  margin:0 0 8px; font-size:14px; line-height:1.55; color:var(--text-secondary); max-width:52ch;
}
.aln-count{
  margin:0; font-family:var(--font-mono); font-size:12px; font-weight:600; color:var(--text-muted);
}

.aln-board{ padding:0; overflow:hidden; }
.aln-toolbar{
  display:grid; grid-template-columns:1fr auto; gap:10px; align-items:center;
  padding:14px 16px; border-bottom:1px solid var(--border);
  background:color-mix(in srgb, var(--bg-inset) 45%, transparent);
}
.aln-search-wrap{ position:relative; min-width:0; }
.aln-search-icon{
  position:absolute; left:12px; top:50%; transform:translateY(-50%);
  color:var(--text-muted); pointer-events:none; display:flex;
}
.aln-input, .aln-select{
  width:100%; appearance:none;
  padding:10px 14px; border-radius:var(--radius-xs);
  border:1px solid var(--border); background:var(--bg-card);
  color:var(--text); font-size:14px; font-weight:500; font-family:var(--font-body);
  transition:border-color .18s, box-shadow .18s;
}
.aln-search{ padding-left:36px; padding-right:36px; }
.aln-input:focus, .aln-select:focus{
  outline:none; border-color:var(--border-hover);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--secondary) 14%, transparent);
}
.aln-input::placeholder{ color:var(--text-muted); }
.aln-search-clear{
  position:absolute; right:8px; top:50%; transform:translateY(-50%);
  width:28px; height:28px; border:0; border-radius:8px;
  background:transparent; color:var(--text-muted); cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center;
}
.aln-search-clear:hover{ background:var(--bg-inset); color:var(--text); }
.aln-sort-wrap{
  display:flex; align-items:center; gap:8px; color:var(--text-muted); flex-shrink:0;
}
.aln-select{ cursor:pointer; padding-right:28px; min-width:160px; }

.aln-grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));
  gap:12px; padding:16px; min-width:0;
}
.aln-card{
  position:relative; display:flex; flex-direction:column;
  border:1px solid var(--border); border-radius:var(--radius);
  background:var(--bg-card); overflow:hidden; min-width:0;
  transition:border-color .22s var(--ease-out), transform .22s var(--ease-out), box-shadow .22s var(--ease-out);
}
.aln-card:hover{
  border-color:color-mix(in srgb, var(--secondary) 40%, var(--border));
  transform:translateY(-2px); box-shadow:var(--shadow-card);
}
.aln-card-accent{
  position:absolute; top:0; left:16px; right:16px; height:1px;
  background:linear-gradient(90deg, transparent, var(--secondary), transparent);
  opacity:.55;
}
.aln-card-link{
  display:flex; flex-direction:column; gap:12px; flex:1;
  padding:18px 18px 12px; text-decoration:none; color:inherit; min-width:0;
}
.aln-card-top{ display:flex; align-items:center; gap:12px; min-width:0; }
.aln-card-avatar{
  width:52px; height:52px; border-radius:14px; flex-shrink:0;
  overflow:hidden; display:flex; align-items:center; justify-content:center;
  background:var(--bg-inset); border:1px solid var(--border);
}
.aln-card-avatar img{ width:100%; height:100%; object-fit:cover; }
.aln-card-letter{
  font-family:var(--font-display); font-size:22px; font-weight:800;
  background:var(--grad-accent-text);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
}
.aln-card-meta{ min-width:0; }
.aln-card-name{
  margin:0 0 4px; font-size:15px; font-weight:800; color:var(--text);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.aln-card:hover .aln-card-name{ color:var(--secondary); }
.aln-card-leader{
  margin:0; font-size:12px; color:var(--text-muted);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.aln-card-desc{
  margin:0; font-size:13px; line-height:1.5; color:var(--text-secondary);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.aln-card-foot{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:10px 16px 14px; border-top:1px solid var(--border); margin-top:auto;
}
.aln-badge{
  display:inline-flex; align-items:center; gap:5px;
  padding:4px 10px; border-radius:999px;
  font-family:var(--font-mono); font-size:11px; font-weight:700;
  background:color-mix(in srgb, var(--secondary) 10%, transparent);
  border:1px solid color-mix(in srgb, var(--secondary) 28%, transparent);
  color:var(--secondary);
}
.aln-card-cta{
  width:28px; height:28px; border-radius:8px;
  display:flex; align-items:center; justify-content:center;
  color:var(--text-muted); background:var(--bg-inset); border:1px solid var(--border);
  transition:color .18s, border-color .18s, transform .18s;
}
.aln-card:hover .aln-card-cta{
  color:var(--secondary); border-color:color-mix(in srgb, var(--secondary) 35%, var(--border));
  transform:translateX(2px);
}

.aln-skeleton{
  padding:18px; border-radius:var(--radius); border:1px solid var(--border);
  background:var(--bg-card); display:flex; flex-direction:column; gap:10px;
}
.aln-sk-row{ display:flex; gap:12px; align-items:center; }
.aln-sk-col{ flex:1; display:flex; flex-direction:column; gap:8px; }
.aln-sk{
  background:var(--bg-inset); border-radius:8px;
  animation:aln-pulse 1.4s ease-in-out infinite;
}
.aln-sk-sq{ width:52px; height:52px; border-radius:14px; flex-shrink:0; }
.aln-sk-line{ height:10px; width:100%; }
.aln-sk-line--lg{ width:72%; height:14px; }
.aln-sk-line--md{ width:80%; }
.aln-sk-line--sm{ width:44%; }
.aln-sk-pill{ width:90px; height:22px; border-radius:999px; margin-top:4px; }
@keyframes aln-pulse{ 0%,100%{ opacity:.45; } 50%{ opacity:.8; } }

.aln-empty{
  grid-column:1 / -1;
  display:flex; flex-direction:column; align-items:center; gap:12px;
  padding:56px 20px; text-align:center; color:var(--text-muted);
}
.aln-empty svg{ opacity:.4; }
.aln-empty p{ margin:0; font-size:14px; }

.aln-pager{
  display:flex; align-items:center; justify-content:center; gap:4px;
  padding:8px 16px 18px; flex-wrap:wrap;
}
.aln-page{
  appearance:none; min-width:34px; height:34px; padding:0 8px;
  border-radius:8px; border:1px solid transparent;
  background:transparent; color:var(--text-secondary);
  font-family:var(--font-mono); font-size:13px; font-weight:600; cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center;
  transition:background .15s, border-color .15s, color .15s;
}
.aln-page:hover{ background:var(--bg-inset); color:var(--text); }
.aln-page.is-active{
  background:var(--secondary); color:var(--text-on-accent); border-color:var(--secondary);
}
.aln-page--gap{ pointer-events:none; color:var(--text-muted); }

@media (max-width:640px){
  .aln-toolbar{ grid-template-columns:1fr; }
  .aln-select{ min-width:0; width:100%; }
  .aln-hero-inner{ padding:20px; }
}
@media (prefers-reduced-motion: reduce){
  .aln-orbit{ animation:none; }
  .aln-sk{ animation:none; }
}

/* ═══════════════════════════════════════════════════════════════
   Alliance profile — /alliance/{short}
   Coalition dossier × orbital banner
   ═══════════════════════════════════════════════════════════════ */

.alp{
  display:flex; flex-direction:column; gap:18px;
  width:100%; max-width:920px; margin:0 auto; min-width:0;
}
.alp-back{ align-self:flex-start; padding:8px 14px; font-size:13px; }

.alp-hero{ position:relative; overflow:hidden; padding:0; }
.alp-cover{
  position:relative; height:148px; overflow:hidden;
  background:
    radial-gradient(ellipse 50% 70% at 18% 60%, color-mix(in srgb, var(--secondary) 22%, transparent), transparent 70%),
    radial-gradient(ellipse 45% 60% at 82% 30%, color-mix(in srgb, var(--warm) 16%, transparent), transparent 65%),
    linear-gradient(145deg, var(--bg-soft), color-mix(in srgb, var(--secondary) 8%, var(--bg-soft)));
}
.alp-cover-deco{ position:absolute; inset:0; pointer-events:none; }
.alp-cover-orbit{
  position:absolute; border-radius:50%;
  border:1px solid color-mix(in srgb, var(--secondary) 30%, transparent);
}
.alp-cover-orbit--1{ width:240px; height:240px; right:-50px; top:-80px; opacity:.5; }
.alp-cover-orbit--2{ width:150px; height:150px; right:0; top:-30px; opacity:.4; border-color:color-mix(in srgb, var(--warm) 35%, transparent); }
.alp-cover-orbit--3{ width:70px; height:70px; right:40px; top:20px; opacity:.35; border-style:dashed; }
.alp-cover-code{
  position:absolute; right:24px; bottom:16px;
  font-family:var(--font-mono); font-size:11px; font-weight:700;
  letter-spacing:.18em; text-transform:uppercase;
  color:color-mix(in srgb, var(--text) 28%, transparent);
}

.alp-hero-body{
  padding:0 24px 24px; margin-top:-44px;
  position:relative; z-index:1;
}
.alp-hero-row{
  display:grid; grid-template-columns:auto 1fr auto;
  gap:16px 18px; align-items:end;
  margin-bottom:18px;
}
.alp-logo-wrap{ flex-shrink:0; }
.alp-logo-ring{
  width:92px; height:92px; border-radius:22px; padding:3px;
  background:linear-gradient(145deg, var(--secondary), var(--warm), var(--accent));
  box-shadow:var(--shadow-card);
}
.alp-logo, .alp-logo-ph{
  width:100%; height:100%; border-radius:19px;
  background:var(--bg-card); border:2px solid var(--bg-card);
  display:flex; align-items:center; justify-content:center; object-fit:cover;
}
.alp-logo-ph{
  font-family:var(--font-display); font-size:34px; font-weight:800;
  background-image:var(--grad-accent-text);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
  background-color:var(--bg-card);
}

.alp-identity{ min-width:0; padding-bottom:4px; }
.alp-eyebrow{
  margin:0 0 4px;
  font-family:var(--font-mono); font-size:10px; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; color:var(--secondary);
}
.alp-name{
  margin:0 0 6px;
  font-family:var(--font-display); font-size:clamp(24px, 4vw, 32px);
  font-weight:800; letter-spacing:-.03em; line-height:1.1; color:var(--text);
  overflow-wrap:anywhere;
}
.alp-founded{
  display:flex; align-items:center; gap:6px; flex-wrap:wrap;
  margin:0 0 6px; font-size:13px; color:var(--text-muted);
}
.alp-founded svg{ color:var(--warm); flex-shrink:0; }
.alp-founded a{ color:var(--secondary); font-weight:600; text-decoration:underline; text-underline-offset:3px; }
.alp-dot{ opacity:.5; }
.alp-meta{
  margin:0; font-size:13px; color:var(--text-secondary);
}
.alp-meta strong{
  font-family:var(--font-display); font-size:18px; font-weight:800; color:var(--text); margin-right:4px;
}

.alp-actions{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; padding-bottom:6px; }
.alp-btn{ padding:9px 16px; font-size:13px; }
.alp-btn--danger{
  color:var(--hot) !important;
  border-color:color-mix(in srgb, var(--hot) 30%, var(--border)) !important;
  background:color-mix(in srgb, var(--hot) 8%, var(--bg-inset)) !important;
}
.alp-btn--danger:hover{
  background:color-mix(in srgb, var(--hot) 14%, var(--bg-inset)) !important;
  border-color:color-mix(in srgb, var(--hot) 45%, var(--border)) !important;
}
.alp-actions--bottom{ display:none; margin-top:16px; padding-bottom:0; }

.alp-notice{
  display:flex; align-items:flex-start; gap:12px;
  padding:14px 16px; border-radius:var(--radius-sm); margin-bottom:16px;
  border:1px solid var(--border); background:var(--bg-inset);
}
.alp-notice--warn{
  background:color-mix(in srgb, var(--warm) 10%, transparent);
  border-color:color-mix(in srgb, var(--warm) 32%, transparent);
  color:color-mix(in srgb, var(--warm) 90%, var(--text));
}
.alp-notice svg{ flex-shrink:0; margin-top:1px; }
.alp-notice strong{ display:block; margin-bottom:2px; color:var(--text); }
.alp-notice p{ margin:0; font-size:13px; line-height:1.5; color:var(--text-secondary); }

.alp-copy{
  padding-top:16px; border-top:1px solid var(--border);
}
.alp-copy-title{
  margin:0 0 8px;
  font-family:var(--font-mono); font-size:11px; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; color:var(--text-muted);
}
.alp-copy-text{
  font-size:14px; line-height:1.65; color:var(--text-secondary); white-space:pre-wrap;
}

.alp-roster{ padding:0; overflow:hidden; }
.alp-roster-head{
  display:flex; align-items:center; gap:12px;
  padding:18px 20px; border-bottom:1px solid var(--border);
}
.alp-roster-icon{
  width:40px; height:40px; border-radius:12px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  background:color-mix(in srgb, var(--secondary) 12%, transparent);
  border:1px solid color-mix(in srgb, var(--secondary) 28%, transparent);
  color:var(--secondary);
}
.alp-roster-icon svg{ width:20px; height:20px; }
.alp-roster-title{
  margin:0; font-family:var(--font-display); font-size:17px; font-weight:800; color:var(--text);
}
.alp-roster-sub{ margin:2px 0 0; font-size:12px; color:var(--text-muted); }
.alp-roster-count{
  margin-left:auto;
  min-width:28px; height:28px; padding:0 9px; border-radius:999px;
  display:inline-flex; align-items:center; justify-content:center;
  font-family:var(--font-mono); font-size:12px; font-weight:700;
  background:color-mix(in srgb, var(--secondary) 12%, transparent);
  border:1px solid color-mix(in srgb, var(--secondary) 28%, transparent);
  color:var(--secondary);
}
.alp-roster-list{ display:flex; flex-direction:column; padding:6px 0; }
.alp-member{
  display:flex; align-items:center; gap:12px;
  padding:11px 20px; text-decoration:none; color:inherit;
  transition:background .15s var(--ease-out);
}
.alp-member:hover{ background:var(--bg-inset); }
.alp-member.is-leader{
  background:color-mix(in srgb, var(--warm) 6%, transparent);
}
.alp-member-avatar{
  width:42px; height:42px; border-radius:12px; flex-shrink:0;
  overflow:hidden; display:flex; align-items:center; justify-content:center;
  background:var(--bg-inset); border:1px solid var(--border);
}
.alp-member-avatar img{ width:100%; height:100%; object-fit:cover; }
.alp-member-letter{
  font-family:var(--font-display); font-size:16px; font-weight:800;
  color:var(--secondary);
}
.alp-member-info{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.alp-member-name{
  font-size:14px; font-weight:700; color:var(--text);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.alp-member:hover .alp-member-name{ color:var(--secondary); }
.alp-member-since{
  font-family:var(--font-mono); font-size:11px; color:var(--text-muted);
}
.alp-leader-badge{
  display:inline-flex; align-items:center; gap:4px; flex-shrink:0;
  padding:4px 10px; border-radius:999px;
  font-size:11px; font-weight:700;
  background:color-mix(in srgb, var(--warm) 14%, transparent);
  border:1px solid color-mix(in srgb, var(--warm) 35%, transparent);
  color:var(--warm);
}

@media (max-width:640px){
  .alp-cover{ height:110px; }
  .alp-hero-body{ padding:0 16px 18px; margin-top:-36px; }
  .alp-logo-ring{ width:76px; height:76px; border-radius:18px; }
  .alp-logo, .alp-logo-ph{ border-radius:15px; }
  .alp-hero-row{ grid-template-columns:auto 1fr; gap:14px; }
  .alp-actions--top{ display:none; }
  .alp-actions--bottom{ display:flex; }
  .alp-roster-head, .alp-member{ padding-left:16px; padding-right:16px; }
}

/* ═══════════════════════════════════════════════════════════════
   Alliance create — /alliance/create
   Founding a sky coalition
   ═══════════════════════════════════════════════════════════════ */

.alc{
  display:flex; flex-direction:column; gap:18px;
  width:100%; max-width:920px; margin:0 auto; min-width:0;
}
.alc-back{ align-self:flex-start; padding:8px 14px; font-size:13px; }

.alc-hero{ position:relative; overflow:hidden; padding:0; }
.alc-hero-deco{ position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.alc-orbit{
  position:absolute; border-radius:50%;
  border:1px solid color-mix(in srgb, var(--secondary) 28%, transparent);
  opacity:.5;
}
.alc-orbit--1{ width:180px; height:180px; right:-40px; top:-60px; }
.alc-orbit--2{ width:100px; height:100px; right:10px; top:-10px; border-style:dashed; opacity:.35; }
.alc-hero-mark{
  position:absolute; width:16px; height:16px;
  border-color:color-mix(in srgb, var(--secondary) 45%, transparent);
  border-style:solid; opacity:.55;
}
.alc-hero-mark--tl{ top:14px; left:14px; border-width:2px 0 0 2px; }
.alc-hero-mark--br{ bottom:14px; right:14px; border-width:0 2px 2px 0; }

.alc-hero-inner{
  position:relative; z-index:1;
  display:flex; align-items:center; gap:18px; padding:24px 26px;
}
.alc-hero-icon{
  display:flex; align-items:center; justify-content:center;
  width:56px; height:56px; flex-shrink:0; border-radius:14px;
  background:color-mix(in srgb, var(--secondary) 12%, var(--bg-inset));
  border:1px solid color-mix(in srgb, var(--secondary) 32%, var(--border));
  color:var(--secondary);
}
.alc-hero-icon svg{ width:28px; height:28px; }
.alc-eyebrow{
  margin:0 0 6px;
  font-family:var(--font-mono); font-size:10.5px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:var(--secondary);
}
.alc-title{
  margin:0 0 6px;
  font-family:var(--font-display); font-size:clamp(22px, 3.5vw, 30px);
  font-weight:800; letter-spacing:-.03em; line-height:1.1; color:var(--text);
}
.alc-lead{
  margin:0; font-size:14px; line-height:1.55; color:var(--text-secondary); max-width:48ch;
}

.alc-grid{
  display:grid; grid-template-columns:minmax(0, 1.15fr) minmax(0, .85fr);
  gap:16px; align-items:start;
}
.alc-form{
  display:flex; flex-direction:column; gap:20px;
  padding:24px 26px 26px;
}
.alc-company-hint{
  display:flex; align-items:flex-start; gap:10px;
  padding:12px 14px; border-radius:var(--radius-sm);
  background:color-mix(in srgb, var(--secondary) 8%, transparent);
  border:1px solid color-mix(in srgb, var(--secondary) 28%, transparent);
  font-size:13.5px; line-height:1.5; color:var(--text-secondary);
}
.alc-company-hint svg{ flex-shrink:0; margin-top:2px; color:var(--secondary); }
.alc-company-hint strong{ color:var(--secondary); font-weight:700; }

.alc-field{ display:flex; flex-direction:column; gap:8px; }
.alc-label{
  font-family:var(--font-mono); font-size:11px; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; color:var(--text-muted);
}
.alc-req{ color:var(--hot); }
.alc-avatar-row{ display:flex; align-items:center; gap:16px; }
.alc-avatar-preview{
  width:76px; height:76px; border-radius:16px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  background:var(--bg-inset); border:2px dashed var(--border);
  color:var(--text-muted); overflow:hidden;
  transition:border-color .2s, background .2s;
}
.alc-avatar-preview.has-img{
  border-style:solid; border-color:color-mix(in srgb, var(--secondary) 40%, var(--border));
}
.alc-avatar-preview img{ width:100%; height:100%; object-fit:cover; }
.alc-avatar-actions{ display:flex; flex-direction:column; gap:6px; align-items:flex-start; }
.alc-upload-btn{ padding:9px 14px; font-size:13px; cursor:pointer; }
.alc-hint{ margin:0; font-size:12px; color:var(--text-muted); }

.alc-input, .alc-textarea{
  width:100%; padding:12px 14px;
  background:var(--bg-inset); border:1px solid var(--border);
  border-radius:var(--radius-sm); color:var(--text);
  font-size:15px; font-family:var(--font-body); line-height:1.5;
  transition:border-color .2s, box-shadow .2s;
}
.alc-textarea{ resize:vertical; min-height:100px; }
.alc-input:focus, .alc-textarea:focus{
  outline:none; border-color:var(--border-hover);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--secondary) 16%, transparent);
}
.alc-input::placeholder, .alc-textarea::placeholder{ color:var(--text-muted); }
.alc-submit{ width:100%; margin-top:4px; }

.alc-aside{ padding:22px; }
.alc-aside-title{
  margin:0 0 14px;
  font-family:var(--font-display); font-size:16px; font-weight:800; color:var(--text);
}
.alc-checklist{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.alc-check{
  display:flex; align-items:flex-start; gap:10px;
  font-size:13.5px; line-height:1.5; color:var(--text-secondary);
}
.alc-check-icon{
  width:22px; height:22px; border-radius:50%; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  background:color-mix(in srgb, var(--secondary) 12%, transparent);
  border:1px solid color-mix(in srgb, var(--secondary) 28%, transparent);
  color:var(--secondary); margin-top:1px;
}
.alc-check-icon svg{ width:12px; height:12px; }

@media (max-width:820px){
  .alc-grid{ grid-template-columns:1fr; }
  .alc-hero-inner{ padding:20px; }
}
@media (max-width:480px){
  .alc-form{ padding:18px 16px 20px; }
  .alc-aside{ padding:18px 16px; }
}


/* ═══════════════════════════════════════════════════════════════
   Alliance settings — /alliance/{short}/settings
   Coalition control room × sectioned ops panel
   ═══════════════════════════════════════════════════════════════ */

.als{
  display:flex; flex-direction:column; gap:18px;
  width:100%; max-width:1040px; margin:0 auto; min-width:0;
}
.als-back{ align-self:flex-start; padding:8px 14px; font-size:13px; }

.als-hero{ position:relative; overflow:hidden; padding:0; }
.als-hero-deco{ position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.als-orbit{
  position:absolute; border-radius:50%;
  border:1px solid color-mix(in srgb, var(--secondary) 28%, transparent); opacity:.5;
}
.als-orbit--1{ width:200px; height:200px; right:-50px; top:-70px; }
.als-orbit--2{ width:110px; height:110px; right:10px; top:-20px; border-style:dashed; opacity:.35; }
.als-hero-mark{
  position:absolute; width:16px; height:16px;
  border-color:color-mix(in srgb, var(--secondary) 45%, transparent);
  border-style:solid; opacity:.55;
}
.als-hero-mark--tl{ top:14px; left:14px; border-width:2px 0 0 2px; }
.als-hero-mark--br{ bottom:14px; right:14px; border-width:0 2px 2px 0; }

.als-hero-inner{
  position:relative; z-index:1;
  display:flex; align-items:center; gap:16px; padding:22px 24px;
}
.als-hero-logo{
  width:56px; height:56px; border-radius:14px; flex-shrink:0;
  object-fit:cover; border:1px solid var(--border); background:var(--bg-inset);
}
.als-hero-logo--ph{
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-size:22px; font-weight:800; color:var(--secondary);
  background:color-mix(in srgb, var(--secondary) 12%, var(--bg-inset));
  border-color:color-mix(in srgb, var(--secondary) 30%, var(--border));
}
.als-eyebrow{
  margin:0 0 4px;
  font-family:var(--font-mono); font-size:10.5px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:var(--secondary);
}
.als-title{
  margin:0 0 4px;
  font-family:var(--font-display); font-size:clamp(22px, 3.5vw, 28px);
  font-weight:800; letter-spacing:-.03em; color:var(--text);
}
.als-sub{ margin:0; font-size:14px; color:var(--text-secondary); }

.als-layout{
  display:grid; grid-template-columns:220px minmax(0, 1fr);
  gap:16px; align-items:start;
}
.als-sidebar{ position:sticky; top:88px; }
.als-nav{
  padding:8px; display:flex; flex-direction:column; gap:2px;
}
.als-nav-item{
  appearance:none; border:0; background:transparent; cursor:pointer;
  display:flex; align-items:center; gap:10px; width:100%;
  padding:10px 12px; border-radius:var(--radius-xs);
  font-family:var(--font-body); font-size:13.5px; font-weight:600;
  color:var(--text-muted); text-align:left;
  transition:background .15s, color .15s;
}
.als-nav-item:hover{ background:var(--bg-inset); color:var(--text); }
.als-nav-item.is-active{
  background:color-mix(in srgb, var(--secondary) 12%, transparent);
  color:var(--secondary);
}
.als-nav-item--danger{ color:color-mix(in srgb, var(--hot) 80%, var(--text-muted)); }
.als-nav-item--danger:hover,
.als-nav-item--danger.is-active{
  background:color-mix(in srgb, var(--hot) 10%, transparent);
  color:var(--hot);
}
.als-nav-badge{
  margin-left:auto;
  min-width:20px; height:20px; padding:0 6px; border-radius:999px;
  display:inline-flex; align-items:center; justify-content:center;
  font-family:var(--font-mono); font-size:11px; font-weight:700;
  background:var(--hot); color:#fff;
}

.als-section{ display:none; padding:22px 24px; }
.als-section.is-active{ display:block; }
.als-section[hidden]{ display:none !important; }
.als-section--danger{
  border-color:color-mix(in srgb, var(--hot) 28%, var(--border));
  background:linear-gradient(160deg, color-mix(in srgb, var(--hot) 6%, var(--bg-card)), var(--bg-card));
}
.als-sec-head{ margin-bottom:18px; }
.als-sec-title{
  margin:0 0 4px;
  font-family:var(--font-display); font-size:18px; font-weight:800; color:var(--text);
}
.als-sec-title--danger{ color:var(--hot); }
.als-sec-sub{ margin:0; font-size:13.5px; color:var(--text-muted); }

.als-form{ display:flex; flex-direction:column; gap:16px; }
.als-field{ display:flex; flex-direction:column; gap:8px; }
.als-label{
  font-family:var(--font-mono); font-size:11px; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; color:var(--text-muted);
}
.als-req{ color:var(--hot); }
.als-input, .als-textarea{
  width:100%; padding:11px 14px;
  background:var(--bg-inset); border:1px solid var(--border);
  border-radius:var(--radius-sm); color:var(--text);
  font-size:14.5px; font-family:var(--font-body); line-height:1.5;
  transition:border-color .2s, box-shadow .2s;
}
.als-textarea{ resize:vertical; min-height:100px; }
.als-input:focus, .als-textarea:focus{
  outline:none; border-color:var(--border-hover);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--secondary) 14%, transparent);
}
.als-input--danger{ border-color:color-mix(in srgb, var(--hot) 30%, var(--border)); }
.als-input--danger:focus{
  box-shadow:0 0 0 3px color-mix(in srgb, var(--hot) 16%, transparent);
}

.als-avatar-row{
  display:flex; align-items:center; gap:14px;
  padding:12px; border-radius:var(--radius-sm);
  background:var(--bg-inset); border:1px solid var(--border);
}
.als-avatar-img, .als-avatar-ph{
  width:64px; height:64px; border-radius:14px; flex-shrink:0;
  object-fit:cover; border:1px solid var(--border);
}
.als-avatar-ph{
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-size:22px; font-weight:800;
  color:var(--secondary);
  background:color-mix(in srgb, var(--secondary) 12%, transparent);
}
.als-avatar-actions{ display:flex; flex-direction:column; gap:6px; align-items:flex-start; }
.als-upload-btn{ padding:8px 14px; font-size:13px; cursor:pointer; }
.als-hint{ margin:0; font-size:12px; color:var(--text-muted); }

.als-rows{ display:flex; flex-direction:column; gap:8px; }
.als-row{
  display:flex; align-items:center; gap:12px;
  padding:12px 14px; border-radius:var(--radius-sm);
  background:var(--bg-inset); border:1px solid var(--border);
  transition:border-color .15s, background .15s;
}
.als-row:hover{ border-color:var(--border-hover); background:var(--bg-card); }
.als-row.is-leader{
  background:color-mix(in srgb, var(--warm) 7%, var(--bg-inset));
  border-color:color-mix(in srgb, var(--warm) 28%, var(--border));
}
.als-row-ava{
  width:42px; height:42px; border-radius:11px; flex-shrink:0;
  object-fit:cover; border:1px solid var(--border); background:var(--bg-card);
}
.als-row-ava--ph{
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:800; font-size:16px; color:var(--secondary);
  background:color-mix(in srgb, var(--secondary) 12%, transparent);
}
.als-row-info{ flex:1; min-width:0; }
.als-row-name{
  display:inline-flex; align-items:center; gap:8px; flex-wrap:wrap;
  font-size:14px; font-weight:700; color:var(--text); text-decoration:none;
}
.als-row-name:hover{ color:var(--secondary); }
.als-row-meta{ margin-top:2px; font-family:var(--font-mono); font-size:11.5px; color:var(--text-muted); }
.als-row-actions{ display:flex; gap:8px; flex-shrink:0; flex-wrap:wrap; }
.als-btn-sm{ padding:8px 14px; font-size:13px; }
.als-btn-kick:hover{
  color:var(--hot) !important;
  border-color:color-mix(in srgb, var(--hot) 35%, var(--border)) !important;
  background:color-mix(in srgb, var(--hot) 8%, var(--bg-inset)) !important;
}
.als-leader-badge{
  display:inline-flex; align-items:center; gap:4px;
  padding:2px 8px; border-radius:999px;
  font-size:10.5px; font-weight:700;
  background:color-mix(in srgb, var(--warm) 14%, transparent);
  border:1px solid color-mix(in srgb, var(--warm) 35%, transparent);
  color:var(--warm);
}

.als-empty{
  display:flex; flex-direction:column; align-items:center; gap:10px;
  padding:36px 16px; text-align:center; color:var(--text-muted);
}
.als-empty svg{ opacity:.4; }
.als-empty p{ margin:0; font-size:14px; }

.als-confirm-box{
  padding:14px 16px; margin-bottom:16px; border-radius:var(--radius-sm);
  background:color-mix(in srgb, var(--hot) 8%, transparent);
  border:1px solid color-mix(in srgb, var(--hot) 28%, transparent);
  font-size:13.5px; line-height:1.55; color:var(--text-secondary);
}
.als-confirm-box strong{ display:block; margin-top:6px; color:var(--hot); }
.als-btn-danger{
  color:var(--hot) !important;
  border-color:color-mix(in srgb, var(--hot) 35%, var(--border)) !important;
  background:color-mix(in srgb, var(--hot) 10%, var(--bg-inset)) !important;
}
.als-btn-danger:hover{
  background:color-mix(in srgb, var(--hot) 16%, var(--bg-inset)) !important;
}

@media (max-width:800px){
  .als-layout{ grid-template-columns:1fr; }
  .als-sidebar{ position:static; }
  .als-nav{ flex-direction:row; flex-wrap:wrap; }
  .als-nav-item{ width:auto; flex:1 1 auto; justify-content:center; }
}
@media (max-width:540px){
  .als-section{ padding:16px; }
  .als-row{ flex-wrap:wrap; }
  .als-row-actions{ width:100%; }
  .als-row-actions .btn-primary,
  .als-row-actions .btn-secondary{ flex:1; justify-content:center; }
}

/* ═══════════════════════════════════════════════════════════════
   Alliance reports — /alliance/{short}/reports
   Report exchange board × weekly ops desk
   ═══════════════════════════════════════════════════════════════ */

.alr{
  display:flex; flex-direction:column; gap:18px;
  width:100%; max-width:1040px; margin:0 auto; min-width:0;
}
.alr-back{ align-self:flex-start; padding:8px 14px; font-size:13px; }

.alr-hero{ position:relative; overflow:hidden; padding:0; }
.alr-hero-deco{ position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.alr-orbit{
  position:absolute; border-radius:50%;
  border:1px solid color-mix(in srgb, var(--secondary) 28%, transparent); opacity:.5;
}
.alr-orbit--1{ width:210px; height:210px; right:-45px; top:-75px; }
.alr-orbit--2{ width:120px; height:120px; right:15px; top:-25px; border-style:dashed; opacity:.35; }
.alr-hero-mark{
  position:absolute; width:16px; height:16px;
  border-color:color-mix(in srgb, var(--secondary) 45%, transparent);
  border-style:solid; opacity:.55;
}
.alr-hero-mark--tl{ top:14px; left:14px; border-width:2px 0 0 2px; }
.alr-hero-mark--br{ bottom:14px; right:14px; border-width:0 2px 2px 0; }

.alr-hero-inner{
  position:relative; z-index:1;
  display:flex; align-items:center; gap:16px; flex-wrap:wrap;
  padding:22px 24px;
}
.alr-hero-icon{
  width:52px; height:52px; border-radius:14px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  background:color-mix(in srgb, var(--secondary) 12%, var(--bg-inset));
  border:1px solid color-mix(in srgb, var(--secondary) 30%, var(--border));
  color:var(--secondary);
}
.alr-hero-icon svg{ width:24px; height:24px; }
.alr-hero-text{ flex:1; min-width:180px; }
.alr-eyebrow{
  margin:0 0 4px;
  font-family:var(--font-mono); font-size:10.5px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:var(--secondary);
}
.alr-title{
  margin:0 0 4px;
  font-family:var(--font-display); font-size:clamp(22px, 3.5vw, 30px);
  font-weight:800; letter-spacing:-.03em; color:var(--text);
}
.alr-sub{ margin:0; font-size:14px; color:var(--text-secondary); }
.alr-week-chip{
  display:inline-flex; align-items:center; gap:7px;
  padding:7px 12px; border-radius:999px;
  background:var(--bg-inset); border:1px solid var(--border);
  font-family:var(--font-mono); font-size:12px; font-weight:600;
  color:var(--text-secondary); white-space:nowrap;
}

.alr-stats{
  display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:12px;
}
.alr-stat{
  padding:16px 16px 14px; display:flex; flex-direction:column; gap:6px;
  text-align:center; align-items:center;
}
.alr-stat-val{
  font-family:var(--font-display); font-size:26px; font-weight:800;
  letter-spacing:-.02em; line-height:1; color:var(--text);
}
.alr-stat-cap{
  font-size:.65em; font-weight:700; color:var(--text-muted); margin-left:2px;
}
.alr-stat-lbl{
  font-size:11px; font-weight:700; letter-spacing:.06em;
  text-transform:uppercase; color:var(--text-muted);
}
.alr-stat--accent .alr-stat-val{ color:var(--secondary); }

.alr-board{ padding:0; overflow:hidden; }
.alr-tabs{
  display:flex; gap:4px; padding:8px;
  border-bottom:1px solid var(--border);
  overflow-x:auto; scrollbar-width:none;
  background:color-mix(in srgb, var(--bg-inset) 45%, transparent);
}
.alr-tabs::-webkit-scrollbar{ display:none; }
.alr-tab{
  appearance:none; border:1px solid transparent; background:transparent;
  display:inline-flex; align-items:center; gap:7px;
  padding:10px 14px; border-radius:var(--radius-xs);
  color:var(--text-muted); font-size:13px; font-weight:600;
  font-family:var(--font-body); cursor:pointer; white-space:nowrap;
  transition:color .18s, background .18s, border-color .18s;
}
.alr-tab:hover{ color:var(--text); background:var(--bg-inset); }
.alr-tab.is-active{
  background:color-mix(in srgb, var(--secondary) 14%, transparent);
  border-color:color-mix(in srgb, var(--secondary) 35%, transparent);
  color:var(--secondary); font-weight:700;
}

.alr-panel{ display:none; padding:18px 20px 20px; }
.alr-panel.is-active{ display:block; }
.alr-panel[hidden]{ display:none !important; }

.alr-filter-toggle{
  appearance:none; width:100%; margin-bottom:12px;
  display:flex; align-items:center; gap:8px;
  padding:10px 14px; border-radius:var(--radius-sm);
  border:1px solid var(--border); background:var(--bg-inset);
  color:var(--text-secondary); font-size:13.5px; font-weight:600;
  font-family:var(--font-body); cursor:pointer;
  transition:background .15s, border-color .15s, color .15s;
}
.alr-filter-toggle:hover{ background:var(--bg-card); color:var(--text); border-color:var(--border-hover); }
.alr-filter-chevron{ margin-left:auto; transition:transform .2s var(--ease-out); }
.alr-filter-toggle.is-open .alr-filter-chevron{ transform:rotate(180deg); }

.alr-filter-box{
  display:none; grid-template-columns:repeat(auto-fill, minmax(150px, 1fr));
  gap:10px; padding:14px; margin-bottom:16px;
  border-radius:var(--radius-sm); border:1px solid var(--border);
  background:var(--bg-inset);
}
.alr-filter-box.is-open{ display:grid; }
.alr-filter-field{ display:flex; flex-direction:column; gap:5px; }
.alr-filter-label{
  font-family:var(--font-mono); font-size:10px; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; color:var(--text-muted);
}
.alr-input{
  width:100%; padding:9px 12px;
  background:var(--bg-card); border:1px solid var(--border);
  border-radius:var(--radius-xs); color:var(--text);
  font-size:13.5px; font-family:var(--font-body);
  transition:border-color .18s, box-shadow .18s;
}
.alr-input:focus{
  outline:none; border-color:var(--border-hover);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--secondary) 14%, transparent);
}
.alr-input--icao{ text-transform:uppercase; font-family:var(--font-mono); letter-spacing:.06em; }
.alr-filter-actions{
  display:flex; align-items:flex-end; gap:8px; flex-wrap:wrap;
  grid-column:1 / -1;
}
.alr-btn-sm{ padding:8px 14px; font-size:13px; }

.alr-flight-list{ display:flex; flex-direction:column; gap:10px; }
.alr-flight{
  display:flex; gap:14px; align-items:flex-start;
  padding:14px; border-radius:var(--radius-sm);
  border:1px solid var(--border); background:var(--bg-inset);
  transition:border-color .18s, background .18s;
}
.alr-flight:hover{ border-color:var(--border-hover); background:var(--bg-card); }

.alr-thumb{
  flex:0 0 96px; width:96px; height:96px; padding:0; margin:0;
  border-radius:12px; overflow:hidden; cursor:pointer;
  background:var(--bg-card); border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
}
.alr-thumb img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .25s var(--ease-out);
}
.alr-thumb:hover img{ transform:scale(1.04); }
.alr-thumb--empty{ color:var(--text-muted); cursor:default; }

.alr-flight-body{ flex:1; min-width:0; }
.alr-flight-head{
  display:flex; align-items:flex-start; justify-content:space-between;
  gap:12px; flex-wrap:wrap;
}
.alr-flight-id{
  font-family:var(--font-mono); font-size:11px; font-weight:700;
  color:var(--text-muted); margin-bottom:2px;
}
.alr-flight-route{
  font-family:var(--font-mono); font-size:16px; font-weight:700;
  letter-spacing:.04em; color:var(--text); margin-bottom:4px;
}
.alr-flight-meta{ font-size:12.5px; color:var(--text-muted); margin-bottom:4px; }
.alr-flight-score{
  display:inline-flex; align-items:center; gap:5px;
  font-size:13px; color:var(--text-secondary);
}
.alr-flight-score svg{ color:var(--warm); }
.alr-flight-score strong{ color:var(--warm); font-family:var(--font-mono); }
.alr-pilot{
  display:flex; align-items:center; gap:7px; margin-top:10px;
  font-size:12px; color:var(--text-muted);
}
.alr-pilot-ava{
  width:22px; height:22px; border-radius:50%; object-fit:cover;
  border:1px solid var(--border);
}
.alr-sent-time{
  display:inline-flex; align-items:center; gap:5px;
  margin-top:6px; font-size:12px; color:var(--text-muted);
}

.alr-offers{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(250px, 1fr)); gap:12px;
}
.alr-offer{
  display:flex; flex-direction:column;
  border:1px solid var(--border); border-radius:var(--radius);
  background:var(--bg-inset); overflow:hidden;
  transition:border-color .18s, transform .18s var(--ease-out);
}
.alr-offer:hover{
  border-color:color-mix(in srgb, var(--secondary) 35%, var(--border));
  transform:translateY(-1px);
}
.alr-offer-head{
  display:flex; align-items:center; gap:10px; padding:14px 14px 0;
}
.alr-offer-ava{
  width:38px; height:38px; border-radius:10px; flex-shrink:0; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  background:var(--bg-card); border:1px solid var(--border);
}
.alr-offer-ava img{ width:100%; height:100%; object-fit:cover; }
.alr-offer-letter{
  font-family:var(--font-display); font-weight:800; font-size:15px; color:var(--secondary);
}
.alr-offer-company{ font-size:13.5px; font-weight:700; color:var(--text); }
.alr-offer-date{ font-family:var(--font-mono); font-size:11px; color:var(--text-muted); }
.alr-offer-thumb{
  margin:10px 14px 0; height:140px; padding:0; border:0;
  border-radius:10px; overflow:hidden; cursor:pointer; background:var(--bg-card);
}
.alr-offer-thumb img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .25s var(--ease-out);
}
.alr-offer-thumb:hover img{ transform:scale(1.03); }
.alr-offer-info{ padding:10px 14px; flex:1; }
.alr-offer-route{
  font-family:var(--font-mono); font-size:13px; font-weight:700; color:var(--text); margin-bottom:4px;
}
.alr-offer-score{ font-size:12.5px; font-weight:700; color:var(--warm); }
.alr-offer-action{ padding:0 14px 14px; }
.alr-accept{ width:100%; justify-content:center; }

.alr-empty{
  display:flex; flex-direction:column; align-items:center; gap:12px;
  padding:48px 20px; text-align:center; color:var(--text-muted);
}
.alr-empty svg{ opacity:.35; }
.alr-empty p{ margin:0; font-size:14px; }

.alr-pager{
  display:flex; align-items:center; justify-content:center; gap:4px;
  margin-top:16px; flex-wrap:wrap;
}
.alr-page{
  min-width:34px; height:34px; padding:0 8px; border-radius:8px;
  display:inline-flex; align-items:center; justify-content:center;
  border:1px solid transparent; background:transparent;
  font-family:var(--font-mono); font-size:13px; font-weight:600;
  color:var(--text-secondary); text-decoration:none;
  transition:background .15s, border-color .15s, color .15s;
}
.alr-page:hover{ background:var(--bg-inset); color:var(--text); }
.alr-page.is-active{
  background:var(--secondary); color:var(--text-on-accent); border-color:var(--secondary);
}
.alr-page--gap{ pointer-events:none; color:var(--text-muted); }

.alr-modal-card{ width:min(960px, 96%); }
.alr-modal-body{ align-items:center; }
.alr-modal-body img{
  max-width:100%; max-height:74vh; border-radius:var(--radius-sm);
  border:1px solid var(--border);
}

@media (max-width:900px){
  .alr-stats{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
}
@media (max-width:640px){
  .alr-hero-inner{ padding:18px; }
  .alr-panel{ padding:14px; }
  .alr-thumb{ flex:0 0 72px; width:72px; height:72px; }
  .alr-offers{ grid-template-columns:1fr; }
  .alr-flight-head{ flex-direction:column; }
}
@media (max-width:420px){
  .alr-stats{ grid-template-columns:1fr 1fr; }
  .alr-stat-val{ font-size:22px; }
}

/* ═══════════════════════════════════════════════════════════════
   Vacancy view — /vacancy/{id}
   Hiring hangar · open listing dossier
   ═══════════════════════════════════════════════════════════════ */

.jv{
  display:flex; flex-direction:column; gap:16px;
  width:100%; max-width:720px; margin:0 auto; min-width:0; padding-bottom:24px;
}
.jv-back{ align-self:flex-start; padding:8px 14px; font-size:13px; }

.jv-hero{ position:relative; overflow:hidden; padding:0; }
.jv-hero-deco{ position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.jv-hero-glow{
  position:absolute; right:-20%; top:-40%; width:55%; height:120%;
  background:radial-gradient(circle, color-mix(in srgb, var(--warm) 18%, transparent), transparent 70%);
  opacity:.7;
}
.jv-hero-mark{
  position:absolute; width:16px; height:16px;
  border-color:color-mix(in srgb, var(--warm) 45%, transparent);
  border-style:solid; opacity:.55;
}
.jv-hero-mark--tl{ top:14px; left:14px; border-width:2px 0 0 2px; }
.jv-hero-mark--br{ bottom:14px; right:14px; border-width:0 2px 2px 0; }
.jv-hero-inner{
  position:relative; z-index:1;
  display:flex; align-items:flex-start; gap:18px; padding:22px 24px;
}
.jv-hero-logo{
  width:60px; height:60px; border-radius:14px; flex-shrink:0; overflow:hidden;
  background:color-mix(in srgb, var(--warm) 10%, var(--bg-inset));
  border:1px solid color-mix(in srgb, var(--warm) 28%, var(--border));
  display:flex; align-items:center; justify-content:center;
}
.jv-hero-logo img{ width:100%; height:100%; object-fit:cover; }
.jv-hero-logo-ph{
  font-family:var(--font-display); font-size:22px; font-weight:800; color:var(--warm);
}
.jv-hero-text{ flex:1; min-width:0; }
.jv-eyebrow{
  margin:0 0 6px;
  font-family:var(--font-mono); font-size:10.5px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:var(--warm);
}
.jv-title{
  margin:0 0 6px;
  font-family:var(--font-display); font-size:clamp(20px, 3.2vw, 28px);
  font-weight:800; letter-spacing:-.03em; line-height:1.15; color:var(--text);
}
.jv-company-link{
  display:inline-flex; align-items:center; gap:5px;
  font-size:14px; color:var(--text-secondary); text-decoration:none; margin-bottom:12px;
}
.jv-company-link:hover{ color:var(--accent); }
.jv-hero-actions{ display:flex; gap:8px; flex-wrap:wrap; }

.jv-card{ padding:20px 22px; }
.jv-card-head{
  display:flex; align-items:center; gap:10px; margin-bottom:14px; flex-wrap:wrap;
}
.jv-section-title{
  margin:0 0 14px;
  font-family:var(--font-mono); font-size:11px; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; color:var(--text-muted);
}
.jv-card-head .jv-section-title{ margin:0; }
.jv-ai-pill{
  display:inline-flex; align-items:center; gap:5px;
  padding:3px 10px; border-radius:999px;
  font-family:var(--font-mono); font-size:10px; font-weight:700;
  background:color-mix(in srgb, var(--warm) 10%, var(--bg-card));
  border:1px solid color-mix(in srgb, var(--warm) 28%, var(--border));
  color:var(--warm);
}
.jv-stats{ display:flex; gap:8px; flex-wrap:wrap; }
.jv-stat{
  padding:12px 16px; border-radius:var(--radius-sm); text-align:center; min-width:80px;
  background:var(--bg-inset); border:1px solid var(--border);
}
.jv-stat-val{
  display:block; font-family:var(--font-display); font-size:1.15rem; font-weight:800;
  background:var(--grad-accent-text); -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:var(--accent);
}
.jv-stat-val--sm{ font-size:.88rem; -webkit-text-fill-color:var(--text); background:none; color:var(--text); }
.jv-stat-lbl{ font-size:11px; color:var(--text-muted); margin-top:2px; }
.jv-content-text{
  font-size:14.5px; color:var(--text-secondary); line-height:1.7; white-space:pre-line;
}

.jv-apply{ padding:20px 22px; border-top:2px solid color-mix(in srgb, var(--warm) 22%, transparent); }
.jv-apply-title{
  margin:0 0 12px; font-family:var(--font-display); font-size:17px; font-weight:800; color:var(--text);
}
.jv-form{ display:flex; flex-direction:column; gap:14px; }
.jv-field{ display:flex; flex-direction:column; gap:6px; }
.jv-label{
  font-family:var(--font-mono); font-size:11px; font-weight:700;
  letter-spacing:.08em; text-transform:uppercase; color:var(--text-muted);
}
.jv-optional{
  color:var(--text-muted); font-weight:400; text-transform:none; letter-spacing:0;
  font-family:var(--font-body); font-size:12px;
}

.jv-notice{
  display:flex; align-items:flex-start; gap:12px;
  padding:14px 16px; border-radius:var(--radius-sm);
  font-size:14px; line-height:1.5;
}
.jv-notice svg{ flex-shrink:0; margin-top:1px; }
.jv-notice-title{ font-weight:700; margin-bottom:4px; color:inherit; }
.jv-notice--success{
  background:color-mix(in srgb, var(--accent) 8%, transparent);
  border:1px solid color-mix(in srgb, var(--accent) 28%, transparent);
  color:var(--accent);
}
.jv-notice--warn{
  background:color-mix(in srgb, var(--warm) 10%, transparent);
  border:1px solid color-mix(in srgb, var(--warm) 30%, transparent);
  color:var(--warm);
}
.jv-notice--muted{
  background:var(--bg-inset); border:1px solid var(--border); color:var(--text-secondary);
}
.jv-apply .jv-notice{ margin-bottom:12px; }

.jv-report{ margin-top:4px; }
.jv-report-toggle{
  cursor:pointer; list-style:none;
  font-size:13px; color:var(--text-muted);
  text-decoration:underline; text-underline-offset:3px;
}
.jv-report-toggle::-webkit-details-marker{ display:none; }
.jv-report-toggle:hover{ color:var(--text-secondary); }
.jv-report-box{
  margin-top:10px; padding:16px; border-radius:var(--radius-sm);
  background:var(--bg-inset); border:1px solid var(--border);
}

@media (max-width:480px){
  .jv-hero-inner{ flex-direction:column; gap:12px; padding:18px; }
  .jv-hero-logo{ width:48px; height:48px; }
  .jv-card, .jv-apply{ padding:16px; }
}

/* ═══════════════════════════════════════════════════════════════
   Vacancies manage — /company/{sn}/vacancies/manage
   Hiring hangar · recruiter hangar board
   ═══════════════════════════════════════════════════════════════ */

.jm{
  display:flex; flex-direction:column; gap:16px;
  width:100%; max-width:860px; margin:0 auto; min-width:0; padding-bottom:24px;
}
.jm-back{ align-self:flex-start; padding:8px 14px; font-size:13px; }

.jm-hero{ position:relative; overflow:hidden; padding:0; }
.jm-hero-deco{ position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.jm-hero-glow{
  position:absolute; right:-15%; top:-50%; width:50%; height:140%;
  background:radial-gradient(circle, color-mix(in srgb, var(--warm) 16%, transparent), transparent 70%);
}
.jm-hero-mark{
  position:absolute; width:16px; height:16px;
  border-color:color-mix(in srgb, var(--warm) 45%, transparent);
  border-style:solid; opacity:.55;
}
.jm-hero-mark--tl{ top:14px; left:14px; border-width:2px 0 0 2px; }
.jm-hero-mark--br{ bottom:14px; right:14px; border-width:0 2px 2px 0; }
.jm-hero-inner{
  position:relative; z-index:1;
  display:flex; align-items:center; gap:18px; padding:22px 24px; flex-wrap:wrap;
}
.jm-hero-icon{
  display:flex; align-items:center; justify-content:center;
  width:52px; height:52px; flex-shrink:0; border-radius:14px;
  background:color-mix(in srgb, var(--warm) 12%, var(--bg-inset));
  border:1px solid color-mix(in srgb, var(--warm) 30%, var(--border));
  color:var(--warm);
}
.jm-hero-icon svg{ width:26px; height:26px; }
.jm-hero-text{ flex:1; min-width:0; }
.jm-eyebrow{
  margin:0 0 6px;
  font-family:var(--font-mono); font-size:10.5px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:var(--warm);
}
.jm-title{
  margin:0 0 4px;
  font-family:var(--font-display); font-size:clamp(20px, 3vw, 26px);
  font-weight:800; letter-spacing:-.03em; line-height:1.15; color:var(--text);
}
.jm-lead{ margin:0; font-size:13.5px; color:var(--text-secondary); }
.jm-hero-nav{ display:flex; gap:8px; flex-wrap:wrap; }

.jm-limits{ padding:16px 20px; }
.jm-limits-title{
  font-weight:700; font-size:13px; color:var(--text); margin-bottom:6px;
}
.jm-limits-body{ font-size:14px; color:var(--text-secondary); line-height:1.55; }
.jm-limits-sep{ margin:0 6px; color:var(--text-muted); }
.jm-tier{ font-family:var(--font-mono); letter-spacing:.04em; }
.jm-tier--pro{ color:var(--warm); }

.jm-create{ padding:20px 22px; }
.jm-sec-title{
  margin:0 0 14px; font-family:var(--font-display); font-size:17px; font-weight:800; color:var(--text);
}
.jm-muted{ margin:0 0 10px; font-size:14px; color:var(--text-muted); line-height:1.5; }
.jm-form{ display:flex; flex-direction:column; gap:12px; }
.jm-field{ display:flex; flex-direction:column; gap:6px; }
.jm-req{ color:var(--hot); }

.jm-empty{
  padding:40px 20px; text-align:center;
  border-style:dashed;
}
.jm-empty-title{ font-weight:800; color:var(--text-secondary); margin:0 0 6px; }
.jm-empty-text{ margin:0; font-size:13px; color:var(--text-muted); }

.jm-list{ display:flex; flex-direction:column; gap:12px; }
.jm-item{ padding:18px 20px; }
.jm-item-top{
  display:flex; align-items:flex-start; justify-content:space-between; gap:12px; flex-wrap:wrap;
}
.jm-item-main{ flex:1; min-width:0; }
.jm-item-head{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:4px; }
.jm-item-title{ margin:0; font-size:16px; font-weight:800; color:var(--text); }
.jm-status{
  display:inline-flex; align-items:center; padding:3px 9px; border-radius:999px;
  font-size:11px; font-weight:700;
  background:var(--bg-inset); border:1px solid var(--border); color:var(--text-muted);
}
.jm-status--active{
  background:color-mix(in srgb, var(--accent) 10%, var(--bg-card));
  border-color:var(--accent-border); color:var(--accent);
}
.jm-app-badge{
  display:inline-flex; align-items:center; padding:2px 8px; border-radius:999px;
  font-size:11px; font-weight:700; text-decoration:none;
  background:color-mix(in srgb, var(--warm) 14%, var(--bg-card));
  border:1px solid color-mix(in srgb, var(--warm) 30%, var(--border));
  color:var(--warm);
}
.jm-app-badge:hover{ border-color:var(--warm); }
.jm-item-desc{ margin:0 0 4px; font-size:13px; color:var(--text-muted); line-height:1.45; }
.jm-item-meta{ font-size:12px; color:var(--text-muted); }
.jm-item-actions{ display:flex; gap:6px; flex-wrap:wrap; align-items:flex-start; }

.jm-edit{ margin-top:12px; }
.jm-edit-toggle{
  cursor:pointer; list-style:none;
  font-size:13px; color:var(--text-muted);
}
.jm-edit-toggle::-webkit-details-marker{ display:none; }
.jm-edit-toggle:hover{ color:var(--text-secondary); }
.jm-edit-box{
  margin-top:10px; padding:14px; border-radius:var(--radius-sm);
  background:var(--bg-inset); border:1px solid var(--border);
}
.jm-edit-actions{ display:flex; gap:8px; flex-wrap:wrap; }

.jm-item-ops{ display:flex; gap:8px; flex-wrap:wrap; margin-top:12px; }
.jm-inline-form{ display:inline; }
.jm-btn-danger{ color:var(--hot) !important; }
.jm-btn-danger:hover{
  border-color:color-mix(in srgb, var(--hot) 35%, var(--border)) !important;
}

@media (max-width:560px){
  .jm-hero-inner{ padding:18px; }
  .jm-item{ padding:16px; }
}

/* ═══════════════════════════════════════════════════════════════
   Job applications — /company/{sn}/vacancies/{id}/applications
   Hiring hangar · recruiter inbox
   ═══════════════════════════════════════════════════════════════ */

.jap{
  display:flex; flex-direction:column; gap:16px;
  width:100%; max-width:720px; margin:0 auto; min-width:0; padding-bottom:24px;
}
.jap-back{ align-self:flex-start; padding:8px 14px; font-size:13px; }

.jap-hero{ position:relative; overflow:hidden; padding:0; }
.jap-hero-deco{ position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.jap-hero-glow{
  position:absolute; right:-20%; top:-40%; width:55%; height:120%;
  background:radial-gradient(circle, color-mix(in srgb, var(--warm) 16%, transparent), transparent 70%);
}
.jap-hero-mark{
  position:absolute; width:16px; height:16px;
  border-color:color-mix(in srgb, var(--warm) 45%, transparent);
  border-style:solid; opacity:.55;
}
.jap-hero-mark--tl{ top:14px; left:14px; border-width:2px 0 0 2px; }
.jap-hero-mark--br{ bottom:14px; right:14px; border-width:0 2px 2px 0; }
.jap-hero-inner{
  position:relative; z-index:1;
  display:flex; align-items:center; gap:16px; padding:22px 24px;
}
.jap-hero-icon{
  display:flex; align-items:center; justify-content:center;
  width:48px; height:48px; flex-shrink:0; border-radius:12px;
  background:color-mix(in srgb, var(--warm) 12%, var(--bg-inset));
  border:1px solid color-mix(in srgb, var(--warm) 30%, var(--border));
  color:var(--warm);
}
.jap-hero-icon svg{ width:24px; height:24px; }
.jap-hero-text{ min-width:0; flex:1; }
.jap-eyebrow{
  margin:0 0 6px;
  font-family:var(--font-mono); font-size:10.5px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:var(--warm);
}
.jap-title{
  margin:0 0 4px;
  font-family:var(--font-display); font-size:clamp(18px, 3vw, 24px);
  font-weight:800; letter-spacing:-.03em; line-height:1.15; color:var(--text);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.jap-lead{ margin:0; font-size:13px; color:var(--text-secondary); }

.jap-empty{
  text-align:center; padding:48px 24px;
  border-style:dashed;
}
.jap-empty-icon{
  width:52px; height:52px; border-radius:14px; margin:0 auto 14px;
  background:var(--bg-inset); color:var(--text-muted);
  display:flex; align-items:center; justify-content:center;
}
.jap-empty-title{ font-size:16px; font-weight:800; color:var(--text-secondary); margin-bottom:6px; }
.jap-empty-text{ font-size:13.5px; color:var(--text-muted); }

.jap-list{ display:flex; flex-direction:column; gap:12px; }
.jap-card{ padding:20px; }

.jap-pilot-row{
  display:flex; align-items:flex-start; gap:14px; margin-bottom:14px;
}
.jap-avatar{
  width:52px; height:52px; border-radius:12px; flex-shrink:0; overflow:hidden;
  background:var(--bg-inset); border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
}
.jap-avatar img{ width:100%; height:100%; object-fit:cover; }
.jap-avatar-letter{
  font-family:var(--font-display); font-size:1.2rem; font-weight:800; color:var(--text-muted);
}
.jap-pilot-info{ flex:1; min-width:0; }
.jap-pilot-top{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:4px; }
.jap-pilot-name{
  font-size:15px; font-weight:700; color:var(--text); text-decoration:none;
}
.jap-pilot-name:hover{ color:var(--accent); }
.jap-applied-at{ font-size:12px; color:var(--text-muted); }

.jap-status{
  display:inline-flex; align-items:center; gap:5px;
  font-size:11px; font-weight:700; letter-spacing:.04em;
  padding:3px 9px; border-radius:999px;
}
.jap-status::before{
  content:''; width:5px; height:5px; border-radius:50%; flex-shrink:0;
}
.jap-status--pending{
  background:color-mix(in srgb, var(--warm) 12%, transparent);
  border:1px solid color-mix(in srgb, var(--warm) 28%, transparent);
  color:var(--warm);
}
.jap-status--pending::before{ background:var(--warm); }
.jap-status--accepted{
  background:color-mix(in srgb, var(--accent) 10%, transparent);
  border:1px solid color-mix(in srgb, var(--accent) 28%, transparent);
  color:var(--accent);
}
.jap-status--accepted::before{ background:var(--accent); }
.jap-status--rejected{
  background:color-mix(in srgb, var(--hot) 10%, transparent);
  border:1px solid color-mix(in srgb, var(--hot) 28%, transparent);
  color:var(--hot);
}
.jap-status--rejected::before{ background:var(--hot); }
.jap-status--cancelled{
  background:var(--bg-inset); border:1px solid var(--border); color:var(--text-muted);
}
.jap-status--cancelled::before{ background:var(--text-muted); }

.jap-stats{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:12px; align-items:center; }
.jap-stat{
  padding:8px 14px; border-radius:var(--radius-xs); text-align:center; min-width:72px;
  background:var(--bg-inset); border:1px solid var(--border);
}
.jap-stat-val{
  display:block; font-family:var(--font-display); font-size:1.05rem; font-weight:800;
  background:var(--grad-accent-text); -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:var(--accent);
}
.jap-stat-val--sm{ font-size:.88rem; -webkit-text-fill-color:var(--text); background:none; color:var(--text); }
.jap-stat-lbl{ font-size:10.5px; color:var(--text-muted); margin-top:2px; }
.jap-ai-pill{
  display:inline-flex; align-items:center; gap:5px;
  padding:4px 10px; border-radius:999px;
  font-family:var(--font-mono); font-size:10px; font-weight:700;
  background:color-mix(in srgb, var(--warm) 10%, var(--bg-card));
  border:1px solid color-mix(in srgb, var(--warm) 28%, var(--border));
  color:var(--warm);
}

.jap-cover{
  padding:12px 14px; border-radius:var(--radius-xs);
  background:var(--bg-inset); border:1px solid var(--border);
  margin-bottom:12px;
}
.jap-cover-label{
  font-family:var(--font-mono); font-size:10.5px; font-weight:700;
  letter-spacing:.08em; text-transform:uppercase; color:var(--text-muted); margin-bottom:6px;
}
.jap-cover-text{ font-size:14px; color:var(--text-secondary); line-height:1.55; white-space:pre-line; }

.jap-divider{
  border:none; height:1px; margin:14px 0; background:var(--border);
}
.jap-actions{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; }

@media (max-width:480px){
  .jap-card{ padding:16px; }
  .jap-pilot-row{ gap:10px; }
  .jap-avatar{ width:44px; height:44px; border-radius:10px; }
  .jap-title{ white-space:normal; }
}

/* ═══════════════════════════════════════════════════════════════
   Jobs board — /jobs
   Hiring hangar · open listings & pilot resumes
   ═══════════════════════════════════════════════════════════════ */

.jb{
  display:flex; flex-direction:column; gap:16px;
  width:100%; max-width:920px; margin:0 auto; min-width:0; padding-bottom:24px;
}

.jb-hero{ position:relative; overflow:hidden; padding:0; }
.jb-hero-deco{ position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.jb-hero-glow{
  position:absolute; right:-18%; top:-45%; width:58%; height:130%;
  background:radial-gradient(circle, color-mix(in srgb, var(--warm) 18%, transparent), transparent 70%);
  opacity:.75;
}
.jb-hero-mark{
  position:absolute; width:16px; height:16px;
  border-color:color-mix(in srgb, var(--warm) 45%, transparent);
  border-style:solid; opacity:.55;
}
.jb-hero-mark--tl{ top:14px; left:14px; border-width:2px 0 0 2px; }
.jb-hero-mark--br{ bottom:14px; right:14px; border-width:0 2px 2px 0; }
.jb-hero-inner{
  position:relative; z-index:1;
  display:flex; align-items:center; gap:18px; padding:22px 24px; flex-wrap:wrap;
}
.jb-hero-icon{
  display:flex; align-items:center; justify-content:center;
  width:54px; height:54px; flex-shrink:0; border-radius:14px;
  background:color-mix(in srgb, var(--warm) 12%, var(--bg-inset));
  border:1px solid color-mix(in srgb, var(--warm) 30%, var(--border));
  color:var(--warm);
}
.jb-hero-icon svg{ width:26px; height:26px; }
.jb-hero-text{ flex:1; min-width:0; }
.jb-eyebrow{
  margin:0 0 6px;
  font-family:var(--font-mono); font-size:10.5px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:var(--warm);
}
.jb-title{
  margin:0 0 4px;
  font-family:var(--font-display); font-size:clamp(22px, 3.2vw, 28px);
  font-weight:800; letter-spacing:-.03em; line-height:1.15; color:var(--text);
}
.jb-lead{ margin:0; font-size:13.5px; color:var(--text-secondary); }
.jb-hero-nav{ display:flex; gap:8px; flex-wrap:wrap; }
.jb-hero-link{ position:relative; }
.jb-notif{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:18px; height:18px; padding:0 5px; margin-left:6px;
  border-radius:999px; font-size:11px; font-weight:800;
  background:var(--hot); color:#fff; line-height:1;
}

.jb-board{ padding:0; overflow:hidden; }
.jb-tabs{
  display:flex; gap:0; border-bottom:1px solid var(--border);
  background:color-mix(in srgb, var(--warm) 4%, var(--bg-card));
}
.jb-tab{
  flex:1; display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:14px 16px; text-decoration:none;
  font-size:13.5px; font-weight:700; color:var(--text-muted);
  border-bottom:2px solid transparent; margin-bottom:-1px;
  transition:color .18s var(--ease-out), border-color .18s var(--ease-out), background .18s var(--ease-out);
}
.jb-tab:hover{ color:var(--text-secondary); background:color-mix(in srgb, var(--warm) 6%, transparent); }
.jb-tab.is-active{
  color:var(--warm);
  border-bottom-color:var(--warm);
  background:color-mix(in srgb, var(--warm) 8%, transparent);
}

.jb-search{
  display:flex; gap:10px; align-items:center; flex-wrap:wrap;
  padding:14px 16px; border-bottom:1px solid var(--border);
}
.jb-search-wrap{ position:relative; flex:1; min-width:180px; }
.jb-search-icon{
  position:absolute; left:12px; top:50%; transform:translateY(-50%);
  color:var(--text-muted); pointer-events:none; display:flex;
}
.jb-input{
  width:100%; padding:11px 14px 11px 38px;
  background:var(--bg-inset); border:1px solid var(--border);
  border-radius:var(--radius-xs); color:var(--text); font-family:var(--font-body); font-size:14px;
  outline:none; transition:border-color .18s var(--ease-out), box-shadow .18s var(--ease-out), background .18s var(--ease-out);
}
.jb-input:focus{
  border-color:var(--accent-border);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 14%, transparent);
  background:var(--bg-card);
}
.jb-input::placeholder{ color:var(--text-muted); }
.jb-search-btn{ flex-shrink:0; }

.jb-panel{ padding:16px; }
.jb-empty{
  display:flex; flex-direction:column; align-items:center; gap:8px;
  padding:48px 20px; text-align:center; color:var(--text-muted);
}
.jb-empty svg{ opacity:.45; color:var(--warm); }
.jb-empty strong{ font-size:15px; color:var(--text-secondary); }
.jb-empty p{ margin:0; font-size:13.5px; max-width:320px; line-height:1.5; }

.jb-grid{
  display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px;
}
.jb-card{
  position:relative; display:flex; flex-direction:column; gap:10px;
  padding:16px 16px 14px; text-decoration:none; color:inherit;
  background:var(--bg-inset); border:1px solid var(--border);
  border-radius:var(--radius-sm); overflow:hidden;
  transition:border-color .18s var(--ease-out), transform .18s var(--ease-out), box-shadow .18s var(--ease-out);
}
.jb-card:hover{
  border-color:color-mix(in srgb, var(--warm) 35%, var(--border));
  transform:translateY(-1px);
  box-shadow:0 8px 24px color-mix(in srgb, var(--warm) 8%, transparent);
}
.jb-card-accent{
  position:absolute; left:0; top:0; bottom:0; width:3px;
  background:linear-gradient(180deg, var(--warm), color-mix(in srgb, var(--accent) 70%, var(--warm)));
  opacity:.75;
}
.jb-card--resume .jb-card-accent{
  background:linear-gradient(180deg, var(--accent), color-mix(in srgb, var(--warm) 60%, var(--accent)));
}
.jb-card-top{ display:flex; gap:12px; align-items:flex-start; }
.jb-avatar{
  width:44px; height:44px; flex-shrink:0; border-radius:11px; overflow:hidden;
  background:color-mix(in srgb, var(--warm) 10%, var(--bg-card));
  border:1px solid color-mix(in srgb, var(--warm) 22%, var(--border));
  display:flex; align-items:center; justify-content:center;
}
.jb-avatar--round{ border-radius:999px; }
.jb-avatar img{ width:100%; height:100%; object-fit:cover; }
.jb-avatar-ph{
  font-family:var(--font-display); font-weight:800; font-size:16px; color:var(--warm);
}
.jb-card-meta{ flex:1; min-width:0; }
.jb-card-title{
  margin:0 0 3px; font-size:15px; font-weight:800; color:var(--text);
  line-height:1.3; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.jb-card-sub{
  margin:0; font-size:12.5px; color:var(--text-muted);
  display:flex; align-items:center; gap:5px; flex-wrap:wrap;
}
.jb-card-desc{
  margin:0; font-size:13px; color:var(--text-secondary); line-height:1.45;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.jb-card-skills{
  margin:0; font-size:12px; color:var(--text-muted); line-height:1.4;
}
.jb-card-skills span{ color:var(--warm); font-weight:700; }
.jb-card-foot{
  display:flex; align-items:center; justify-content:space-between; gap:8px;
  margin-top:auto; padding-top:4px;
  font-size:11.5px; color:var(--text-muted); font-family:var(--font-mono);
}
.jb-card-cta{
  display:flex; color:var(--warm); opacity:.7;
  transition:opacity .18s, transform .18s;
}
.jb-card:hover .jb-card-cta{ opacity:1; transform:translateX(2px); }

@media (max-width:640px){
  .jb-hero-inner{ padding:18px; }
  .jb-grid{ grid-template-columns:1fr; }
  .jb-tabs{ flex-direction:column; }
  .jb-tab{ justify-content:flex-start; padding:12px 16px; }
  .jb-search{ flex-direction:column; align-items:stretch; }
}

/* ═══════════════════════════════════════════════════════════════
   My job activity — /jobs/activity
   Hiring hangar · offers & applications inbox
   ═══════════════════════════════════════════════════════════════ */

.jy{
  display:flex; flex-direction:column; gap:16px;
  width:100%; max-width:720px; margin:0 auto; min-width:0; padding-bottom:24px;
}
.jy-back{ align-self:flex-start; padding:8px 14px; font-size:13px; }

.jy-hero{ position:relative; overflow:hidden; padding:0; }
.jy-hero-deco{ position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.jy-hero-glow{
  position:absolute; right:-20%; top:-40%; width:55%; height:120%;
  background:radial-gradient(circle, color-mix(in srgb, var(--warm) 16%, transparent), transparent 70%);
}
.jy-hero-mark{
  position:absolute; width:16px; height:16px;
  border-color:color-mix(in srgb, var(--warm) 45%, transparent);
  border-style:solid; opacity:.55;
}
.jy-hero-mark--tl{ top:14px; left:14px; border-width:2px 0 0 2px; }
.jy-hero-mark--br{ bottom:14px; right:14px; border-width:0 2px 2px 0; }
.jy-hero-inner{
  position:relative; z-index:1;
  display:flex; align-items:center; gap:18px; padding:22px 24px; flex-wrap:wrap;
}
.jy-hero-icon{
  display:flex; align-items:center; justify-content:center;
  width:52px; height:52px; flex-shrink:0; border-radius:14px;
  background:color-mix(in srgb, var(--warm) 12%, var(--bg-inset));
  border:1px solid color-mix(in srgb, var(--warm) 30%, var(--border));
  color:var(--warm);
}
.jy-hero-icon svg{ width:26px; height:26px; }
.jy-hero-text{ flex:1; min-width:0; }
.jy-eyebrow{
  margin:0 0 6px;
  font-family:var(--font-mono); font-size:10.5px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:var(--warm);
}
.jy-title{
  margin:0 0 4px;
  font-family:var(--font-display); font-size:clamp(20px, 3vw, 26px);
  font-weight:800; letter-spacing:-.03em; line-height:1.15; color:var(--text);
}
.jy-lead{ margin:0; font-size:13.5px; color:var(--text-secondary); }

.jy-section{ padding:18px 20px; }
.jy-section-head{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  margin-bottom:14px;
}
.jy-section-title{
  margin:0; font-family:var(--font-display); font-size:17px; font-weight:800; color:var(--text);
}
.jy-section-count{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:24px; height:24px; padding:0 7px; border-radius:999px;
  font-family:var(--font-mono); font-size:12px; font-weight:700;
  background:color-mix(in srgb, var(--warm) 12%, var(--bg-inset));
  border:1px solid color-mix(in srgb, var(--warm) 28%, var(--border));
  color:var(--warm);
}
.jy-empty{
  padding:28px 12px; text-align:center;
  font-size:13.5px; color:var(--text-muted); line-height:1.5;
  border:1px dashed var(--border); border-radius:var(--radius-sm);
}
.jy-list{ display:flex; flex-direction:column; gap:10px; }
.jy-item{
  display:flex; flex-direction:column; gap:12px;
  padding:14px 16px; border-radius:var(--radius-sm);
  background:var(--bg-inset); border:1px solid var(--border);
}
.jy-item-body{ min-width:0; }
.jy-item-top{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:6px;
}
.jy-avatar{
  width:36px; height:36px; flex-shrink:0; border-radius:9px; overflow:hidden;
  background:color-mix(in srgb, var(--warm) 10%, var(--bg-card));
  border:1px solid color-mix(in srgb, var(--warm) 22%, var(--border));
  display:flex; align-items:center; justify-content:center;
}
.jy-avatar img{ width:100%; height:100%; object-fit:cover; }
.jy-avatar-ph{
  font-family:var(--font-display); font-weight:800; font-size:13px; color:var(--warm);
}
.jy-item-link{
  font-size:14.5px; font-weight:750; color:var(--text); text-decoration:none;
}
.jy-item-link:hover{ color:var(--accent); }
.jy-item-sub{ font-size:12.5px; color:var(--text-muted); }
.jy-status{
  display:inline-flex; align-items:center; gap:6px;
  padding:3px 9px; border-radius:999px;
  font-size:11px; font-weight:700;
  background:var(--bg-card); border:1px solid var(--border); color:var(--text-muted);
}
.jy-status::before{
  content:""; width:6px; height:6px; border-radius:50%; background:currentColor; opacity:.8;
}
.jy-status--pending{
  background:color-mix(in srgb, var(--warm) 10%, var(--bg-card));
  border-color:color-mix(in srgb, var(--warm) 28%, var(--border)); color:var(--warm);
}
.jy-status--pending::before{ background:var(--warm); }
.jy-status--accepted{
  background:color-mix(in srgb, var(--accent) 10%, var(--bg-card));
  border-color:var(--accent-border); color:var(--accent);
}
.jy-status--accepted::before{ background:var(--accent); }
.jy-status--rejected{
  background:color-mix(in srgb, var(--hot) 10%, var(--bg-card));
  border-color:color-mix(in srgb, var(--hot) 28%, var(--border)); color:var(--hot);
}
.jy-status--rejected::before{ background:var(--hot); }
.jy-status--cancelled{
  background:var(--bg-card); border-color:var(--border); color:var(--text-muted);
}
.jy-status--cancelled::before{ background:var(--text-muted); }
.jy-vacancy-ref{
  margin:0 0 6px; font-size:13px; color:var(--text-secondary);
}
.jy-vacancy-ref a{ color:var(--warm); text-decoration:none; font-weight:650; }
.jy-vacancy-ref a:hover{ text-decoration:underline; }
.jy-message{
  margin:0 0 8px; padding:10px 12px; border-radius:var(--radius-xs);
  background:var(--bg-card); border:1px solid var(--border);
  font-size:13.5px; color:var(--text-secondary); line-height:1.5; white-space:pre-line;
}
.jy-message--compact{ white-space:normal; }
.jy-date{
  display:block; font-size:11.5px; color:var(--text-muted); font-family:var(--font-mono);
}
.jy-actions{ display:flex; gap:8px; flex-wrap:wrap; }

@media (max-width:480px){
  .jy-hero-inner{ padding:18px; }
  .jy-section{ padding:16px; }
}

/* ═══════════════════════════════════════════════════════════════
   Resume edit / public view — /resume, /resume/{id}
   Hiring hangar · career board dossier
   ═══════════════════════════════════════════════════════════════ */

.jr{
  display:flex; flex-direction:column; gap:16px;
  width:100%; max-width:720px; margin:0 auto; min-width:0; padding-bottom:24px;
}
.jr-back{ align-self:flex-start; padding:8px 14px; font-size:13px; }

.jr-hero,
.jr-pilot{ position:relative; overflow:hidden; padding:0; }
.jr-hero-deco,
.jr-pilot-deco{ position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.jr-hero-glow{
  position:absolute; right:-20%; top:-40%; width:55%; height:120%;
  background:radial-gradient(circle, color-mix(in srgb, var(--warm) 16%, transparent), transparent 70%);
}
.jr-hero-mark{
  position:absolute; width:16px; height:16px;
  border-color:color-mix(in srgb, var(--warm) 45%, transparent);
  border-style:solid; opacity:.55;
}
.jr-hero-mark--tl{ top:14px; left:14px; border-width:2px 0 0 2px; }
.jr-hero-mark--br{ bottom:14px; right:14px; border-width:0 2px 2px 0; }
.jr-hero-inner{
  position:relative; z-index:1;
  display:flex; align-items:center; gap:18px; padding:22px 24px; flex-wrap:wrap;
}
.jr-hero-icon{
  display:flex; align-items:center; justify-content:center;
  width:52px; height:52px; flex-shrink:0; border-radius:14px;
  background:color-mix(in srgb, var(--warm) 12%, var(--bg-inset));
  border:1px solid color-mix(in srgb, var(--warm) 30%, var(--border));
  color:var(--warm);
}
.jr-hero-icon svg{ width:26px; height:26px; }
.jr-hero-text{ flex:1; min-width:0; }
.jr-eyebrow{
  margin:0 0 6px;
  font-family:var(--font-mono); font-size:10.5px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:var(--warm);
}
.jr-title{
  margin:0 0 4px;
  font-family:var(--font-display); font-size:clamp(20px, 3vw, 26px);
  font-weight:800; letter-spacing:-.03em; line-height:1.15; color:var(--text);
}
.jr-lead{ margin:0; font-size:13.5px; color:var(--text-secondary); }

.jr-status-badge{
  display:inline-flex; align-items:center; padding:5px 11px; border-radius:999px;
  font-size:11.5px; font-weight:750; white-space:nowrap;
  background:var(--bg-inset); border:1px solid var(--border); color:var(--text-muted);
}
.jr-status-badge--active{
  background:color-mix(in srgb, var(--accent) 10%, var(--bg-card));
  border-color:var(--accent-border); color:var(--accent);
}
.jr-status-badge--hidden{
  background:color-mix(in srgb, var(--warm) 10%, var(--bg-card));
  border-color:color-mix(in srgb, var(--warm) 28%, var(--border)); color:var(--warm);
}

.jr-notice{
  display:flex; gap:12px; align-items:flex-start;
  padding:14px 16px; border-radius:var(--radius-sm);
  border:1px solid var(--border); background:var(--bg-inset);
}
.jr-notice svg{ flex-shrink:0; margin-top:1px; }
.jr-notice strong{ display:block; margin-bottom:4px; color:var(--text); }
.jr-notice p{ margin:0; font-size:13.5px; color:var(--text-secondary); line-height:1.5; }
.jr-notice--warn{
  background:color-mix(in srgb, var(--warm) 8%, var(--bg-card));
  border-color:color-mix(in srgb, var(--warm) 28%, var(--border));
  color:var(--warm);
}

.jr-card{ padding:20px 22px; }
.jr-card--accent{ border-top:2px solid color-mix(in srgb, var(--warm) 28%, transparent); }
.jr-section-title{
  margin:0 0 14px;
  font-family:var(--font-display); font-size:17px; font-weight:800; color:var(--text);
}
.jr-form{ display:flex; flex-direction:column; gap:14px; }
.jr-field{ display:flex; flex-direction:column; gap:6px; }
.jr-label{
  font-size:13px; font-weight:700; color:var(--text-secondary);
}
.jr-label-opt{ font-weight:500; color:var(--text-muted); }
.jr-textarea,
.jr-select{
  width:100%; padding:11px 14px;
  background:var(--bg-inset); border:1px solid var(--border);
  border-radius:var(--radius-xs); color:var(--text); font-family:var(--font-body); font-size:14px;
  outline:none; transition:border-color .18s var(--ease-out), box-shadow .18s var(--ease-out), background .18s var(--ease-out);
}
.jr-textarea{ resize:vertical; min-height:100px; line-height:1.55; }
.jr-select{ cursor:pointer; }
.jr-textarea:focus,
.jr-select:focus{
  border-color:var(--accent-border);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 14%, transparent);
  background:var(--bg-card);
}
.jr-textarea::placeholder{ color:var(--text-muted); }
.jr-hint{ font-size:12px; color:var(--text-muted); }
.jr-actions{ display:flex; gap:8px; flex-wrap:wrap; }
.jr-updated{
  margin:14px 0 0; font-size:12px; color:var(--text-muted); font-family:var(--font-mono);
}
.jr-divider{
  border:none; height:1px; margin:16px 0; background:var(--border);
}
.jr-btn-hide{ display:inline-flex; align-items:center; gap:7px; }

.jr-stats-head{
  display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap;
  margin-bottom:8px;
}
.jr-stats-head .jr-section-title{ margin:0; }
.jr-ai-pill{
  display:inline-flex; align-items:center; gap:5px;
  padding:4px 10px; border-radius:999px;
  font-family:var(--font-mono); font-size:10px; font-weight:700;
  background:color-mix(in srgb, var(--warm) 10%, var(--bg-card));
  border:1px solid color-mix(in srgb, var(--warm) 28%, var(--border));
  color:var(--warm);
}
.jr-stats-desc{
  margin:0 0 14px; font-size:13px; color:var(--text-muted); line-height:1.5;
}
.jr-stats{ display:flex; gap:8px; flex-wrap:wrap; }
.jr-stat{
  flex:1 1 110px; min-width:100px; padding:12px 14px; border-radius:var(--radius-xs);
  background:var(--bg-inset); border:1px solid var(--border); text-align:center;
}
.jr-stat-val{
  display:block;
  font-family:var(--font-display); font-size:1.35rem; font-weight:800; line-height:1.1;
  background:linear-gradient(135deg, var(--warm), var(--accent));
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
.jr-stat-val--sm{
  font-size:.88rem; -webkit-text-fill-color:var(--text); background:none; color:var(--text);
}
.jr-stat-lbl{ font-size:11px; color:var(--text-muted); margin-top:4px; }
.jr-stat--review .jr-stat-val{
  background:linear-gradient(135deg, var(--warm), color-mix(in srgb, var(--warm) 40%, #f5d76e));
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}

.jr-emp-label{
  margin:0 0 10px; font-size:13px; font-weight:750; color:var(--text-secondary);
}
.jr-emp-list{ display:flex; flex-direction:column; gap:8px; }
.jr-emp-item{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  padding:8px 10px; border-radius:var(--radius-xs);
  background:var(--bg-inset); border:1px solid var(--border);
}
.jr-emp-logo{
  width:28px; height:28px; border-radius:7px; overflow:hidden; flex-shrink:0;
  border:1px solid var(--border);
}
.jr-emp-logo img{ width:100%; height:100%; object-fit:cover; }
.jr-emp-name{
  font-size:13.5px; font-weight:700; color:var(--text); text-decoration:none;
}
.jr-emp-name:hover{ color:var(--accent); }
.jr-emp-dates{ font-size:12px; color:var(--text-muted); font-family:var(--font-mono); margin-left:auto; }

.jr-pilot-row{
  position:relative; z-index:1;
  display:flex; gap:18px; align-items:flex-start; padding:22px 24px; flex-wrap:wrap;
}
.jr-avatar{
  width:72px; height:72px; flex-shrink:0; border-radius:999px; overflow:hidden;
  background:color-mix(in srgb, var(--warm) 10%, var(--bg-inset));
  border:2px solid color-mix(in srgb, var(--warm) 30%, var(--border));
  display:flex; align-items:center; justify-content:center;
}
.jr-avatar img{ width:100%; height:100%; object-fit:cover; }
.jr-avatar-letter{
  font-family:var(--font-display); font-weight:800; font-size:26px; color:var(--warm);
}
.jr-pilot-body{ flex:1; min-width:0; }
.jr-pilot-top{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:4px; }
.jr-pilot-name{
  margin:0; font-family:var(--font-display); font-size:clamp(20px, 3vw, 26px);
  font-weight:800; letter-spacing:-.03em; line-height:1.15; color:var(--text);
}
.jr-vk-link{
  display:inline-flex; color:var(--text-muted);
  transition:color .18s;
}
.jr-vk-link:hover{ color:#4a76a8; }
.jr-not-looking{
  display:inline-flex; padding:4px 10px; border-radius:999px;
  font-size:11.5px; font-weight:700;
  background:color-mix(in srgb, var(--hot) 10%, var(--bg-card));
  border:1px solid color-mix(in srgb, var(--hot) 28%, var(--border));
  color:var(--hot);
}
.jr-company-ref{
  margin:0 0 10px; font-size:13.5px; color:var(--text-secondary);
}
.jr-company-ref a{ color:var(--warm); text-decoration:none; font-weight:700; }
.jr-company-ref a:hover{ text-decoration:underline; }
.jr-pilot-actions{ display:flex; gap:8px; flex-wrap:wrap; }

.jr-content-text{
  font-size:14.5px; color:var(--text-secondary); line-height:1.6; white-space:pre-line;
}
.jr-content-text--spaced{ margin-bottom:4px; }

.jr-existing-offer{
  display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
  padding:12px 14px; border-radius:var(--radius-xs);
  background:color-mix(in srgb, var(--warm) 8%, var(--bg-inset));
  border:1px solid color-mix(in srgb, var(--warm) 24%, var(--border));
  font-size:14px; color:var(--text-secondary);
}
.jr-inline-form{ display:inline; }
.jr-company-plain{ margin:0; font-size:14px; font-weight:700; color:var(--text); }

.jr-report{ margin-top:4px; }
.jr-report-toggle{
  cursor:pointer; list-style:none;
  font-size:13px; color:var(--text-muted);
}
.jr-report-toggle::-webkit-details-marker{ display:none; }
.jr-report-toggle:hover{ color:var(--text-secondary); }
.jr-report-box{
  margin-top:10px; padding:14px; border-radius:var(--radius-sm);
  background:var(--bg-inset); border:1px solid var(--border);
}

@media (max-width:560px){
  .jr-hero-inner, .jr-pilot-row{ padding:18px; }
  .jr-card{ padding:16px; }
  .jr-avatar{ width:60px; height:60px; }
  .jr-emp-dates{ margin-left:0; width:100%; }
}

/* ═══════════════════════════════════════════════════════════════
   System gates — 2FA / banned / 403 / 404 / beta / payment
   Tower Clearance · centered clearance cards
   ═══════════════════════════════════════════════════════════════ */

.an-shell:has(.sys){
  min-height:100dvh;
}
.an-shell:has(.sys) main.an-container{
  flex:1; width:100%; max-width:none;
  padding-top:0 !important; padding-bottom:0 !important;
}
.an-shell:has(.sys) main.an-container > div{
  flex:1; display:flex; flex-direction:column; min-height:0;
}

.sys{
  flex:1; display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  gap:14px; padding:40px 16px 48px;
  width:100%; min-width:0;
}
.sys-flashes{
  width:100%; max-width:420px;
}
.sys-hidden-form{ display:none !important; }

.sys-card{
  position:relative; overflow:hidden;
  width:100%; max-width:420px; padding:0;
}
.sys-card--hot{
  border-color:color-mix(in srgb, var(--hot) 28%, var(--border));
}
.sys-card--warm{
  border-top:2px solid color-mix(in srgb, var(--warm) 40%, transparent);
}

.sys-deco{ position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.sys-glow{
  position:absolute; left:50%; top:-30%; transform:translateX(-50%);
  width:70%; height:90%; border-radius:50%; opacity:.7;
}
.sys-glow--warm{
  background:radial-gradient(circle, color-mix(in srgb, var(--warm) 20%, transparent), transparent 70%);
}
.sys-glow--hot{
  background:radial-gradient(circle, color-mix(in srgb, var(--hot) 18%, transparent), transparent 70%);
}
.sys-glow--muted{
  background:radial-gradient(circle, color-mix(in srgb, var(--secondary) 14%, transparent), transparent 70%);
}
.sys-mark{
  position:absolute; width:14px; height:14px;
  border-color:color-mix(in srgb, var(--warm) 45%, transparent);
  border-style:solid; opacity:.55;
}
.sys-mark--tl{ top:12px; left:12px; border-width:2px 0 0 2px; }
.sys-mark--br{ bottom:12px; right:12px; border-width:0 2px 2px 0; }
.sys-mark--hot{ border-color:color-mix(in srgb, var(--hot) 45%, transparent); }

.sys-strip{
  position:relative; z-index:1;
  display:flex; flex-direction:column; align-items:center; gap:8px;
  padding:28px 20px 20px;
  border-bottom:1px solid var(--border);
}
.sys-strip--hot{
  background:color-mix(in srgb, var(--hot) 7%, var(--bg-card));
  border-bottom-color:color-mix(in srgb, var(--hot) 16%, var(--border));
}
.sys-strip--warm{
  background:color-mix(in srgb, var(--warm) 7%, var(--bg-card));
  border-bottom-color:color-mix(in srgb, var(--warm) 16%, var(--border));
}
.sys-strip--muted{
  background:color-mix(in srgb, var(--secondary) 5%, var(--bg-card));
}
.sys-strip--code{ padding-bottom:12px; }

.sys-icon{
  display:flex; align-items:center; justify-content:center;
  width:56px; height:56px; border-radius:16px;
  border:1px solid var(--border); background:var(--bg-inset); color:var(--text-muted);
}
.sys-icon--warm{
  background:color-mix(in srgb, var(--warm) 12%, var(--bg-inset));
  border-color:color-mix(in srgb, var(--warm) 30%, var(--border));
  color:var(--warm);
}
.sys-icon--hot{
  background:color-mix(in srgb, var(--hot) 12%, var(--bg-inset));
  border-color:color-mix(in srgb, var(--hot) 30%, var(--border));
  color:var(--hot);
}
.sys-icon--muted{
  background:var(--bg-inset); border-color:var(--border); color:var(--text-muted);
}

.sys-code{
  font-family:var(--font-display); font-size:clamp(64px, 16vw, 96px);
  font-weight:900; line-height:1; letter-spacing:-.04em;
  user-select:none; opacity:.28;
}
.sys-code--hot{
  background:linear-gradient(135deg, var(--hot), color-mix(in srgb, var(--hot) 40%, #fff));
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
.sys-code--muted{
  position:relative;
  background:linear-gradient(135deg, var(--text-secondary), var(--text-muted));
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  opacity:.22;
}

.sys-body{
  position:relative; z-index:1;
  display:flex; flex-direction:column; align-items:center;
  text-align:center; padding:26px 28px 28px;
}
.sys-eyebrow{
  margin:0 0 8px;
  font-family:var(--font-mono); font-size:10.5px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:var(--warm);
}
.sys-eyebrow--hot{ color:var(--hot); }
.sys-title{
  margin:0 0 8px;
  font-family:var(--font-display); font-size:clamp(20px, 3vw, 24px);
  font-weight:800; letter-spacing:-.02em; line-height:1.2; color:var(--text);
}
.sys-title--hot{ color:var(--hot); }
.sys-lead{
  margin:0 0 22px; max-width:34ch;
  font-size:14px; line-height:1.55; color:var(--text-secondary);
}

.sys-meta{
  width:100%; text-align:left; margin-bottom:14px;
}
.sys-meta-label{
  display:block; margin-bottom:6px;
  font-family:var(--font-mono); font-size:10.5px; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; color:var(--text-muted);
}
.sys-meta-value{
  font-size:15px; font-weight:700; color:var(--text);
  font-family:var(--font-mono);
}
.sys-meta-value--hot{ color:var(--hot); }
.sys-reason{
  padding:12px 14px; border-radius:var(--radius-xs);
  background:color-mix(in srgb, var(--hot) 8%, var(--bg-inset));
  border:1px solid color-mix(in srgb, var(--hot) 24%, var(--border));
  border-left:3px solid var(--hot);
  font-size:14px; line-height:1.55; color:color-mix(in srgb, var(--hot) 70%, var(--text));
  text-align:left;
}

.sys-info{
  display:flex; align-items:flex-start; gap:10px; width:100%;
  padding:12px 14px; margin-bottom:18px; text-align:left;
  border-radius:var(--radius-xs);
  background:color-mix(in srgb, var(--warm) 8%, var(--bg-inset));
  border:1px solid color-mix(in srgb, var(--warm) 22%, var(--border));
  color:var(--warm);
}
.sys-info svg{ flex-shrink:0; margin-top:2px; }
.sys-info p{ margin:0; font-size:13.5px; line-height:1.55; }
.sys-info a{
  color:var(--warm); font-weight:700; text-decoration:none;
}
.sys-info a:hover{ text-decoration:underline; }

.sys-actions{
  display:flex; gap:10px; justify-content:center; flex-wrap:wrap; width:100%;
}
.sys-actions .btn-primary,
.sys-actions .btn-secondary{
  display:inline-flex; align-items:center; gap:7px;
}

.sys-foot{
  position:relative; z-index:1;
  display:flex; align-items:flex-start; gap:10px;
  padding:14px 22px 18px;
  border-top:1px solid var(--border);
  color:var(--text-muted);
}
.sys-foot svg{ flex-shrink:0; margin-top:2px; }
.sys-foot p{ margin:0; font-size:13px; line-height:1.5; text-align:left; }

.sys-hint{
  margin:18px 0 0; font-size:13px; color:var(--text-muted);
}
.sys-hint a,
.sys-hint-link{
  display:inline-flex; align-items:center; gap:5px;
  color:var(--text-muted); text-decoration:none;
  transition:color .15s;
}
.sys-hint a:hover,
.sys-hint-link:hover{ color:var(--text-secondary); }

/* ── 2FA digits ─────────────────────────────────────────── */
.tfa-form{ width:100%; }
.tfa-inputs{
  display:flex; gap:8px; justify-content:center; margin-bottom:20px;
}
.tfa-digit{
  width:46px; height:54px; border-radius:var(--radius-xs);
  background:var(--bg-inset); border:1.5px solid var(--border);
  color:var(--text); font-family:var(--font-display);
  font-size:1.35rem; font-weight:800; text-align:center;
  outline:none; caret-color:var(--warm);
  -moz-appearance:textfield;
  transition:border-color .18s, background .18s, box-shadow .18s;
}
.tfa-digit::-webkit-outer-spin-button,
.tfa-digit::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.tfa-digit:focus{
  border-color:color-mix(in srgb, var(--warm) 55%, var(--border));
  background:color-mix(in srgb, var(--warm) 6%, var(--bg-card));
  box-shadow:0 0 0 3px color-mix(in srgb, var(--warm) 14%, transparent);
}
.tfa-digit.is-filled{
  border-color:color-mix(in srgb, var(--warm) 35%, var(--border));
  background:color-mix(in srgb, var(--warm) 5%, var(--bg-inset));
}
.tfa-digit.is-error{
  border-color:color-mix(in srgb, var(--hot) 45%, var(--border));
  background:color-mix(in srgb, var(--hot) 6%, var(--bg-inset));
}
.tfa-sep{
  align-self:center; color:var(--text-muted); font-size:.7rem; flex-shrink:0;
}
.tfa-submit{ width:100%; }
.tfa-submit:disabled{ opacity:.4; cursor:default; }

/* ── Payment redirect ───────────────────────────────────── */
.prk-progress{
  position:relative; z-index:1; height:3px;
  background:color-mix(in srgb, var(--warm) 8%, var(--bg-inset));
  overflow:hidden;
}
.prk-progress-bar{
  position:absolute; top:0; left:-60%; width:60%; height:100%;
  background:linear-gradient(90deg, transparent, var(--warm), transparent);
  animation:prk-slide 1.4s ease-in-out infinite;
}
@keyframes prk-slide{
  0%{ left:-60%; }
  100%{ left:110%; }
}

.prk-spinner{
  position:relative; width:64px; height:64px; margin-bottom:20px;
  display:flex; align-items:center; justify-content:center;
}
.prk-ring{
  position:absolute; inset:0; border-radius:50%;
  border:2.5px solid color-mix(in srgb, var(--warm) 12%, transparent);
  border-top-color:var(--warm);
  animation:prk-spin .9s linear infinite;
}
.prk-ring--outer{
  inset:-8px; border-width:2px;
  border-color:color-mix(in srgb, var(--warm) 6%, transparent);
  border-top-color:color-mix(in srgb, var(--warm) 40%, transparent);
  animation-duration:1.4s; animation-direction:reverse;
}
@keyframes prk-spin{ to{ transform:rotate(360deg); } }
.prk-spinner-icon{ color:color-mix(in srgb, var(--warm) 70%, var(--text-muted)); }

.prk-test-badge{
  display:inline-flex; align-items:center; gap:5px;
  margin-bottom:12px; padding:4px 10px; border-radius:999px;
  font-family:var(--font-mono); font-size:10.5px; font-weight:700;
  background:color-mix(in srgb, var(--warm) 12%, var(--bg-card));
  border:1px solid color-mix(in srgb, var(--warm) 30%, var(--border));
  color:var(--warm);
}

.prk-amount{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:14px 16px; margin-bottom:14px; border-radius:var(--radius-sm);
  background:color-mix(in srgb, var(--warm) 8%, var(--bg-inset));
  border:1px solid color-mix(in srgb, var(--warm) 24%, var(--border));
  text-align:left;
}
.prk-amount-label{ display:flex; flex-direction:column; gap:2px; }
.prk-amount-label span{ font-size:12.5px; font-weight:650; color:var(--text-secondary); }
.prk-amount-label small{ font-size:11px; color:var(--text-muted); }
.prk-amount-value{
  font-family:var(--font-display); font-size:1.45rem; font-weight:900;
  color:var(--warm); letter-spacing:-.02em; white-space:nowrap;
}

.prk-notice{
  display:flex; align-items:flex-start; gap:8px; width:100%;
  padding:10px 12px; margin-bottom:18px; border-radius:var(--radius-xs);
  background:var(--bg-inset); border:1px solid var(--border);
  text-align:left; color:var(--text-muted);
}
.prk-notice svg{ flex-shrink:0; margin-top:1px; }
.prk-notice p{ margin:0; font-size:12.5px; line-height:1.5; }

@media (max-width:420px){
  .sys{ padding:28px 12px 36px; }
  .sys-body{ padding:22px 18px 24px; }
  .tfa-digit{ width:40px; height:48px; font-size:1.15rem; }
  .tfa-inputs{ gap:6px; }
  .sys-code{ font-size:72px; }
}

/* ═══════════════════════════════════════════════════════════════
   Admin shell — Tower Ops
   Shared nav + list surfaces for /admin/*
   ═══════════════════════════════════════════════════════════════ */

.adm{
  display:flex; gap:18px; align-items:flex-start;
  width:100%; max-width:1200px; margin:0 auto; padding:8px 0 32px; min-width:0;
}
.adm-main{ flex:1; min-width:0; display:flex; flex-direction:column; gap:14px; }
.adm-content{ display:flex; flex-direction:column; gap:14px; min-width:0; }

.adm-nav{
  flex:0 0 240px; position:sticky; top:88px; padding:0; overflow:hidden;
  display:flex; flex-direction:column; max-height:calc(100vh - 110px);
}
.adm-nav-head{
  padding:16px 16px 12px;
  border-bottom:1px solid var(--border);
  background:color-mix(in srgb, var(--secondary) 6%, var(--bg-card));
}
.adm-nav-eyebrow{
  margin:0 0 4px;
  font-family:var(--font-mono); font-size:10px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:var(--secondary);
}
.adm-nav-level{ font-size:13px; color:var(--text-secondary); font-weight:650; }
.adm-nav-sections{ padding:10px 8px; overflow:auto; flex:1; }
.adm-nav-section{ margin-bottom:12px; }
.adm-nav-title{
  padding:4px 10px 6px;
  font-family:var(--font-mono); font-size:10px; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase; color:var(--text-muted);
}
.adm-nav-link{
  display:flex; align-items:center; gap:8px;
  padding:8px 10px; margin:1px 0; border-radius:var(--radius-xs);
  font-size:13px; font-weight:600; color:var(--text-secondary);
  text-decoration:none;
  transition:background .15s, color .15s;
}
.adm-nav-link:hover{
  background:var(--bg-inset); color:var(--text);
}
.adm-nav-link.is-active{
  background:color-mix(in srgb, var(--secondary) 12%, var(--bg-inset));
  color:var(--secondary);
  box-shadow:inset 3px 0 0 var(--secondary);
}
.adm-nav-link--back{ color:var(--text-muted); }
.adm-nav-foot{
  padding:8px; border-top:1px solid var(--border);
}

.adm-hero{ position:relative; overflow:hidden; padding:0; }
.adm-hero-deco{ position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.adm-hero-glow{
  position:absolute; right:-15%; top:-50%; width:55%; height:140%;
  background:radial-gradient(circle, color-mix(in srgb, var(--secondary) 16%, transparent), transparent 70%);
}
.adm-mark{
  position:absolute; width:14px; height:14px;
  border-color:color-mix(in srgb, var(--secondary) 45%, transparent);
  border-style:solid; opacity:.55;
}
.adm-mark--tl{ top:12px; left:12px; border-width:2px 0 0 2px; }
.adm-mark--br{ bottom:12px; right:12px; border-width:0 2px 2px 0; }
.adm-hero-inner{
  position:relative; z-index:1;
  display:flex; align-items:center; gap:16px; padding:22px 24px; flex-wrap:wrap;
}
.adm-hero-icon{
  display:flex; align-items:center; justify-content:center;
  width:52px; height:52px; border-radius:14px; flex-shrink:0;
  background:color-mix(in srgb, var(--secondary) 12%, var(--bg-inset));
  border:1px solid color-mix(in srgb, var(--secondary) 28%, var(--border));
  color:var(--secondary);
}
.adm-hero-icon svg{ width:26px; height:26px; }
.adm-eyebrow{
  margin:0 0 6px;
  font-family:var(--font-mono); font-size:10.5px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:var(--secondary);
}
.adm-title{
  margin:0 0 4px;
  font-family:var(--font-display); font-size:clamp(22px, 3vw, 28px);
  font-weight:800; letter-spacing:-.03em; color:var(--text);
}
.adm-lead{ margin:0; font-size:13.5px; color:var(--text-secondary); line-height:1.5; }

.adm-home-grid{
  display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px;
}
.adm-tile{
  display:flex; flex-direction:column; gap:6px;
  padding:18px 18px 16px; text-decoration:none; color:inherit;
  border-top:2px solid color-mix(in srgb, var(--secondary) 25%, transparent);
  transition:transform .18s var(--ease-out), border-color .18s;
}
.adm-tile:hover{
  transform:translateY(-2px);
  border-top-color:var(--secondary);
}
.adm-tile-label{
  font-family:var(--font-mono); font-size:10px; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase; color:var(--secondary);
}
.adm-tile-title{
  font-family:var(--font-display); font-size:17px; font-weight:800; color:var(--text);
}
.adm-tile-hint{ font-size:13px; color:var(--text-muted); line-height:1.45; }

.adm-panel{ padding:20px 22px; }
.adm-page-title{
  margin:0 0 8px;
  font-family:var(--font-display); font-size:20px; font-weight:800; color:var(--text);
}
.adm-page-lead{ margin:0 0 16px; font-size:13.5px; color:var(--text-secondary); line-height:1.55; }
.adm-list{ display:flex; flex-direction:column; gap:12px; }
.adm-list-card{
  padding:14px 16px; border-radius:var(--radius-sm);
  background:var(--bg-inset); border:1px solid var(--border);
}
.adm-list-head{
  display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap;
  margin-bottom:12px;
}
.adm-chip{
  display:inline-flex; padding:3px 9px; border-radius:999px;
  font-size:11px; font-weight:700;
  background:color-mix(in srgb, var(--secondary) 10%, var(--bg-card));
  border:1px solid color-mix(in srgb, var(--secondary) 25%, var(--border));
  color:var(--secondary);
}
.adm-empty{
  padding:28px 16px; text-align:center; color:var(--text-muted);
  border:1px dashed var(--border); border-radius:var(--radius-sm);
}
.adm-empty-title{
  margin:0 0 6px; font-family:var(--font-display); font-weight:800;
  font-size:15px; letter-spacing:-.01em; color:var(--text);
}
.adm-empty-text{
  margin:0 auto; max-width:36em; font-size:13.5px; line-height:1.5;
  color:var(--text-muted);
}
.adm-table-wrap{ overflow:auto; margin-bottom:12px; }
.adm-table{
  width:100%; border-collapse:collapse; font-size:13px;
}
.adm-table th, .adm-table td{
  padding:8px 10px; text-align:left; border-bottom:1px solid var(--border);
  vertical-align:middle;
}
.adm-table th{
  font-family:var(--font-mono); font-size:10.5px; font-weight:700;
  letter-spacing:.06em; text-transform:uppercase; color:var(--text-muted);
}
.adm-radio{ display:inline-flex; align-items:center; gap:6px; font-size:12.5px; cursor:pointer; }
.adm-form{ margin:0; }

/* Legacy admin surfaces inside new shell */
.adm .glass-card{
  background:var(--bg-card); border:1px solid var(--border);
  border-radius:var(--radius); padding:18px 20px; box-shadow:var(--shadow-card);
}
.adm .glass-card > h2,
.adm .adm-content > .glass-card h2{
  font-family:var(--font-display); font-weight:800; letter-spacing:-.02em;
}

.adm-grid{ display:grid; gap:14px; }
.adm-grid--2{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
.adm-grid--3{ grid-template-columns:repeat(3, minmax(0, 1fr)); }
.adm-grid--auto{ grid-template-columns:1fr 1fr auto auto; align-items:end; }
@media (max-width:980px){
  .adm-grid--2, .adm-grid--3, .adm-grid--auto{ grid-template-columns:1fr; }
}

.adm-section-title{
  margin:0 0 10px;
  font-family:var(--font-display); font-size:16px; font-weight:800; color:var(--text);
}
.adm-head-row{
  display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
  margin-bottom:14px;
}
.adm-page-title{ margin:0 0 8px; }
.adm-head-row .adm-page-title{ margin:0; }

.adm-callout{
  padding:14px 16px; border-radius:var(--radius-sm); margin:12px 0;
  background:var(--bg-inset); border:1px solid var(--border);
}
.adm-callout--warn{
  background:color-mix(in srgb, var(--warm) 10%, var(--bg-inset));
  border-color:color-mix(in srgb, var(--warm) 35%, var(--border));
}
.adm-callout--ok{
  background:color-mix(in srgb, var(--accent) 10%, var(--bg-inset));
  border-color:color-mix(in srgb, var(--accent) 30%, var(--border));
  border-left:3px solid var(--accent);
}
.adm-callout--danger{
  background:color-mix(in srgb, var(--hot) 10%, var(--bg-inset));
  border-color:color-mix(in srgb, var(--hot) 30%, var(--border));
  border-left:3px solid var(--hot);
}
.adm-callout--info{
  background:color-mix(in srgb, var(--secondary) 8%, var(--bg-inset));
  border-color:color-mix(in srgb, var(--secondary) 28%, var(--border));
  border-left:3px solid var(--secondary);
}
.adm-callout-title{
  margin:0 0 6px; font-size:13px; font-weight:700; color:var(--text);
}
.adm-callout--warn .adm-callout-title{ color:color-mix(in srgb, var(--warm) 85%, var(--text)); }
.adm-callout p{ margin:0 0 4px; font-size:13.5px; color:var(--text-secondary); line-height:1.5; }
.adm-callout p:last-child{ margin-bottom:0; }
.adm-quote{
  margin-top:6px; padding:8px 10px; border-radius:var(--radius-xs);
  background:var(--bg-card); border:1px solid var(--border);
  white-space:pre-line; font-size:13px; color:var(--text);
}

.adm-status-ok{ color:var(--accent); font-weight:700; }
.adm-status-bad{ color:var(--hot); font-weight:700; }
.adm-status-muted{ color:var(--text-muted); }

.adm-chip--count{
  background:var(--bg-inset); border-color:var(--border); color:var(--text-secondary);
}
.adm-chip--on{
  background:color-mix(in srgb, var(--accent) 12%, var(--bg-card));
  border-color:color-mix(in srgb, var(--accent) 30%, var(--border));
  color:var(--accent);
}
.adm-chip--off{
  background:color-mix(in srgb, var(--text-muted) 10%, var(--bg-card));
  border-color:var(--border); color:var(--text-muted);
}

.adm-slider-row{
  display:grid; grid-template-columns:180px 1fr 70px; gap:12px; align-items:center; margin:12px 0;
}
@media (max-width:640px){ .adm-slider-row{ grid-template-columns:1fr; gap:6px; } }
.adm-sumline{ margin:8px 0 4px; font-size:13.5px; color:var(--text-secondary); }
.adm-badge-sum{
  display:inline-block; border-radius:999px; padding:.2rem .55rem;
  border:1px solid var(--border); background:var(--bg-inset); color:var(--text);
  font-variant-numeric:tabular-nums;
}
.adm-badge-sum.is-ok{ border-color:color-mix(in srgb, var(--accent) 40%, var(--border)); }
.adm-badge-sum.is-bad{ border-color:color-mix(in srgb, var(--hot) 40%, var(--border)); }

.adm-range{
  -webkit-appearance:none; appearance:none;
  width:100%; height:6px; border-radius:999px;
  background:color-mix(in srgb, var(--text-muted) 22%, transparent); outline:none;
}
.adm-range::-webkit-slider-thumb{
  -webkit-appearance:none; appearance:none;
  width:18px; height:18px; border-radius:50%;
  background:var(--warm); border:none;
  box-shadow:0 0 0 3px color-mix(in srgb, var(--warm) 20%, transparent);
  margin-top:-6px; cursor:pointer;
}
.adm-range::-moz-range-thumb{
  width:18px; height:18px; border-radius:50%;
  background:var(--warm); border:none;
  box-shadow:0 0 0 3px color-mix(in srgb, var(--warm) 20%, transparent); cursor:pointer;
}
.adm-range::-moz-range-track{
  height:6px; border-radius:999px;
  background:color-mix(in srgb, var(--text-muted) 22%, transparent);
}

.adm-add-rule{
  display:grid; grid-template-columns:1.2fr .6fr 1fr .8fr auto; gap:8px;
  margin:10px 0; align-items:center;
}
.adm-rules{ margin-top:8px; display:flex; flex-direction:column; gap:8px; }
.adm-rules-head, .adm-rules-row{
  display:grid; grid-template-columns:1.2fr .8fr .6fr .8fr .5fr; gap:8px; align-items:center;
  padding:10px 12px; border:1px solid var(--border); border-radius:var(--radius-sm);
}
.adm-rules-head{
  font-family:var(--font-mono); font-size:10.5px; font-weight:700;
  letter-spacing:.06em; text-transform:uppercase; color:var(--text-muted);
  background:var(--bg-inset);
}
.adm-rules-row{ background:var(--bg-card); font-size:13px; }
@media (max-width:980px){
  .adm-add-rule, .adm-rules-head, .adm-rules-row{ grid-template-columns:1fr; }
}

.adm-btn-on{
  padding:6px 10px; font-size:12px; border-radius:999px; cursor:pointer;
  background:color-mix(in srgb, var(--accent) 12%, transparent);
  color:var(--accent); border:1px solid color-mix(in srgb, var(--accent) 28%, var(--border));
}
.adm-btn-off{
  padding:6px 10px; font-size:12px; border-radius:999px; cursor:pointer;
  background:color-mix(in srgb, var(--hot) 10%, transparent);
  color:var(--hot); border:1px solid color-mix(in srgb, var(--hot) 28%, var(--border));
}

.adm-check{
  display:flex; align-items:flex-start; gap:10px; cursor:pointer;
  font-size:13.5px; color:var(--text-secondary); line-height:1.45;
}
.adm-check input{ width:18px; height:18px; margin-top:2px; flex-shrink:0; accent-color:var(--accent); }

.adm-lang-block{
  margin-bottom:16px; padding:14px 16px;
  background:var(--bg-inset); border:1px solid var(--border);
  border-left:3px solid var(--warm); border-radius:var(--radius-sm);
}
.adm-lang-block h4{
  margin:0 0 12px; font-size:13px; font-weight:700;
  color:color-mix(in srgb, var(--warm) 85%, var(--text));
}

.adm-modal{
  display:none; position:fixed; inset:0; z-index:1000;
  align-items:center; justify-content:center; padding:20px;
  background:color-mix(in srgb, var(--text) 45%, transparent);
  backdrop-filter:blur(6px);
}
.adm-modal.is-open{ display:flex; }
.adm-modal-card{
  background:var(--bg-card); border:1px solid var(--border);
  border-radius:var(--radius); box-shadow:var(--shadow-glow);
  padding:24px 26px; max-width:600px; width:100%; max-height:90vh; overflow-y:auto;
}
.adm-modal-card h3{
  margin:0 0 18px;
  font-family:var(--font-display); font-size:18px; font-weight:800; color:var(--text);
}

.adm-filters{
  display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:14px;
}
.adm-filters .form-input{ min-width:0; max-width:220px; padding:9px 12px; font-size:13px; }
.adm-filters select.form-input{ min-width:120px; max-width:none; }

.adm-inline-form{ display:inline; margin:0; }
.adm-row-actions{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; justify-content:flex-end; }
.adm-meta{ font-size:12.5px; color:var(--text-muted); margin:0; }
.adm-edit-row{ display:none; }
.adm-edit-row.is-open{ display:table-row; }
.adm-edit-cell{
  padding:12px !important;
  background:var(--bg-inset);
}
.adm-avatar{
  width:48px; height:48px; border-radius:50%; object-fit:cover; flex-shrink:0;
}
.adm-avatar--sq{ border-radius:12px; }
.adm-avatar-ph{
  width:48px; height:48px; border-radius:50%; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  background:var(--bg-inset); border:1px solid var(--border);
  color:var(--text-muted); font-weight:800; font-size:14px;
}
.adm-entity{
  display:flex; align-items:center; gap:12px; margin:8px 0 14px;
}
.adm-tabs{
  display:flex; gap:8px; margin-bottom:14px;
  border-bottom:1px solid var(--border); padding-bottom:0;
  list-style:none; margin-left:0; padding-left:0;
}
.adm-tabs a{
  display:inline-block; padding:8px 12px; margin-bottom:-1px;
  font-size:13px; font-weight:650; color:var(--text-muted);
  text-decoration:none; border-bottom:2px solid transparent;
}
.adm-tabs a.active, .adm-tabs a:hover{
  color:var(--secondary); border-bottom-color:var(--secondary);
}
.adm-log-item{
  padding:10px 12px; border-bottom:1px solid var(--border);
  display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap;
  font-size:13px;
}
.adm-log-item:last-child{ border-bottom:none; }
.adm-log-list{ list-style:none; margin:0; padding:0; border:1px solid var(--border); border-radius:var(--radius-sm); overflow:hidden; }
.adm-ticket-row{
  display:grid; grid-template-columns:56px 1.2fr .9fr 1.4fr 1fr .9fr auto;
  gap:10px; align-items:center; padding:10px 12px;
  border-bottom:1px solid var(--border); font-size:13px;
}
.adm-ticket-head{
  font-family:var(--font-mono); font-size:10.5px; font-weight:700;
  letter-spacing:.06em; text-transform:uppercase; color:var(--text-muted);
  background:var(--bg-inset);
}
@media (max-width:900px){
  .adm-ticket-row{ grid-template-columns:1fr 1fr; }
  .adm-ticket-head{ display:none; }
}

.adm-form-grid-3{
  display:grid; grid-template-columns:1fr 1fr 1fr; gap:12px; margin-top:10px;
}
.adm-form-grid-edit{
  display:grid; grid-template-columns:1fr 1fr 1fr auto; gap:12px; align-items:end;
}
@media (max-width:980px){
  .adm-form-grid-3, .adm-form-grid-edit{ grid-template-columns:1fr; }
}

.form-help{ font-size:12px; color:var(--text-muted); margin-top:4px; display:block; }
.mono{ font-variant-numeric:tabular-nums; font-family:var(--font-mono); font-size:12.5px; }
.prewrap{ white-space:pre-line; }

.adm-btn-danger-fill{
  background:var(--hot) !important; color:#fdf3f0 !important; border-color:var(--hot) !important;
}
.adm-btn-danger-fill:hover{ filter:brightness(1.08); }

.adm-img-modal{
  display:none; position:fixed; inset:0; z-index:9999;
  align-items:center; justify-content:center; padding:20px;
  background:color-mix(in srgb, var(--text) 55%, transparent);
}
.adm-img-modal img{
  max-width:100%; max-height:100%; border-radius:var(--radius);
  box-shadow:var(--shadow-glow);
}
.adm-img-modal .btn-secondary{ position:absolute; top:20px; right:20px; }

.adm .report-check-grid{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:16px;
  padding:0; background:transparent; border:none; box-shadow:none;
}
.adm .report-img{
  width:100%; border-radius:var(--radius-sm); border:1px solid var(--border);
  cursor:zoom-in; background:var(--bg-inset);
}
.adm .danger-zone{
  border-top:1px dashed color-mix(in srgb, var(--hot) 35%, var(--border));
  padding-top:12px; margin-top:12px;
}
.adm .btn-danger-solid{
  background:var(--hot); border:1px solid color-mix(in srgb, var(--hot) 80%, #000);
  color:#fff; border-radius:var(--radius-xs); padding:8px 12px; font-weight:700; cursor:pointer;
}

/* Admin ticket / suggestion cards */
.adm-card-list{ display:flex; flex-direction:column; gap:8px; }
.adm-card-link{
  display:flex; align-items:center; gap:14px; flex-wrap:wrap;
  padding:12px 14px; text-decoration:none; color:inherit;
  background:var(--bg-inset); border:1px solid var(--border);
  border-radius:var(--radius-sm);
  transition:border-color .15s, background .15s;
}
.adm-card-link:hover{ border-color:var(--border-hover); background:var(--bg-card); }
.adm-card-link__main{ flex:1; min-width:140px; }
.adm-card-link__title{ font-weight:700; font-size:14px; color:var(--text); }
.adm-card-link__meta{ font-size:12px; color:var(--text-muted); margin-top:2px; }
.adm-card-link__action{ font-size:12.5px; font-weight:650; color:var(--secondary); }

/* Admin users search (theme tokens) */
.adm .au-search-wrap{ position:relative; margin-top:12px; }
.adm .au-search{
  width:100%; padding:11px 14px 11px 40px;
  background:var(--bg-inset); border:1px solid var(--border);
  border-radius:var(--radius-xs); color:var(--text); font-size:14px; outline:none;
}
.adm .au-search:focus{
  border-color:var(--accent-border);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 14%, transparent);
}
.adm .au-search-icon{
  position:absolute; left:12px; top:50%; transform:translateY(-50%);
  color:var(--text-muted); pointer-events:none;
}
.adm .au-count{ font-size:13px; color:var(--text-muted); padding:8px 0 4px; }
.adm .au-grid{ display:flex; flex-direction:column; gap:6px; }
.adm .au-row{
  display:flex; align-items:center; gap:12px;
  padding:10px 14px; border-radius:var(--radius-sm);
  background:var(--bg-inset); border:1px solid var(--border);
}
.adm .au-row:hover{ border-color:var(--border-hover); }
.adm .au-avatar{ width:36px; height:36px; border-radius:50%; object-fit:cover; flex-shrink:0; }
.adm .au-avatar-ph{
  width:36px; height:36px; border-radius:50%; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  background:var(--bg-card); border:1px solid var(--border);
  color:var(--text-muted); font-size:14px; font-weight:700; text-transform:uppercase;
}
.adm .au-info{ flex:1; min-width:0; }
.adm .au-name{ font-weight:650; color:var(--text); font-size:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.adm .au-meta{ font-size:12px; color:var(--text-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.adm .au-badges{ display:flex; gap:6px; align-items:center; flex-shrink:0; flex-wrap:wrap; }
.adm .au-badge{ font-size:11px; font-weight:700; padding:2px 8px; border-radius:999px; white-space:nowrap; }
.adm .au-badge--admin{ background:var(--warm); color:#1a1208; }
.adm .au-badge--banned{ background:var(--hot); color:#fff; }
.adm .au-badge--staff{ background:var(--accent); color:var(--text-on-accent); }
.adm .au-imp-btn{
  padding:5px 14px; border-radius:var(--radius-xs); border:1px solid var(--border);
  background:var(--bg-card); color:var(--text); font-size:12px; font-weight:600; cursor:pointer;
}
.adm .au-imp-btn:hover{ border-color:var(--border-hover); }
.adm .au-pager{ display:flex; justify-content:center; gap:4px; padding:16px 0; flex-wrap:wrap; }
.adm .au-page-btn{
  padding:6px 12px; border-radius:var(--radius-xs); border:1px solid var(--border);
  background:transparent; color:var(--text-muted); font-size:13px; cursor:pointer;
}
.adm .au-page-btn:hover{ background:var(--bg-inset); color:var(--text); }
.adm .au-page-btn.active{ background:var(--accent); color:var(--text-on-accent); border-color:var(--accent); font-weight:700; }
.adm .au-empty{ text-align:center; padding:48px 16px; color:var(--text-muted); font-size:14px; }
.adm .au-skeleton{
  padding:10px 14px; border-radius:var(--radius-sm);
  background:var(--bg-inset); border:1px solid var(--border);
  display:flex; align-items:center; gap:12px;
}
.adm .au-sk{ background:color-mix(in srgb, var(--text-muted) 18%, transparent); border-radius:6px; animation:adm-pulse 1.2s ease-in-out infinite; }
.adm .au-sk-circle{ width:36px; height:36px; border-radius:50%; }
@keyframes adm-pulse{ 0%,100%{ opacity:.4 } 50%{ opacity:.8 } }

@media (max-width:900px){
  .adm{ flex-direction:column; }
  .adm-nav{
    flex:none; width:100%; position:static; max-height:none;
  }
  .adm-nav-sections{
    display:flex; flex-wrap:wrap; gap:4px; padding:8px;
  }
  .adm-nav-section{ margin:0; flex:1 1 140px; }
  .adm-home-grid{ grid-template-columns:1fr; }
  .adm .report-check-grid{ grid-template-columns:1fr; }
}

/* ── Admin detail (support / suggestions / tester tickets) ── */
.adm-back{
  display:inline-flex; align-items:center; gap:6px; align-self:flex-start;
  font-size:13px; font-weight:650; color:var(--text-muted); text-decoration:none;
  margin-bottom:2px;
}
.adm-back:hover{ color:var(--text); }

.adm-detail{ padding:0; overflow:hidden; }
.adm-case{
  padding:20px 22px 16px;
  border-bottom:1px solid var(--border);
  background:color-mix(in srgb, var(--secondary) 5%, var(--bg-card));
}
.adm-case .adm-eyebrow{ margin-bottom:8px; }
.adm-case-top{
  display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; margin-bottom:10px;
}
.adm-case-id{
  font-family:var(--font-mono); font-size:12px; font-weight:700;
  color:var(--secondary); letter-spacing:.04em;
}
.adm-case-title{
  margin:0; font-family:var(--font-display); font-size:clamp(18px, 2.5vw, 22px);
  font-weight:800; letter-spacing:-.02em; color:var(--text); line-height:1.25;
}
.adm-case-badges{ display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px; }
.adm-case-meta{ margin:0; font-size:13px; color:var(--text-muted); }
.adm-case-body{
  margin:12px 0 0; padding:12px 14px; border-radius:var(--radius-xs);
  background:var(--bg-inset); border:1px solid var(--border);
  font-size:14px; color:var(--text-secondary); line-height:1.55; white-space:pre-wrap;
}

.adm-badge{
  display:inline-flex; align-items:center; padding:3px 9px; border-radius:999px;
  font-size:11px; font-weight:700; border:1px solid var(--border);
  background:var(--bg-inset); color:var(--text-muted);
}
.adm-badge--type-bug, .adm-badge--pri-high, .adm-badge--rejected, .adm-badge--closed{
  background:color-mix(in srgb, var(--hot) 10%, var(--bg-card));
  border-color:color-mix(in srgb, var(--hot) 28%, var(--border)); color:var(--hot);
}
.adm-badge--type-proposal, .adm-badge--roadmap, .adm-badge--confirmed, .adm-badge--implemented{
  background:color-mix(in srgb, var(--secondary) 10%, var(--bg-card));
  border-color:color-mix(in srgb, var(--secondary) 28%, var(--border)); color:var(--secondary);
}
.adm-badge--type-complaint, .adm-badge--pri-medium, .adm-badge--pending, .adm-badge--tag{
  background:color-mix(in srgb, var(--warm) 10%, var(--bg-card));
  border-color:color-mix(in srgb, var(--warm) 28%, var(--border)); color:var(--warm);
}
.adm-badge--type-question{
  background:color-mix(in srgb, var(--accent) 10%, var(--bg-card));
  border-color:color-mix(in srgb, var(--accent) 28%, var(--border)); color:var(--accent);
}
.adm-badge--pri-low, .adm-badge--fixed, .adm-badge--answered, .adm-badge--muted, .adm-badge--not_repro{
  background:color-mix(in srgb, var(--accent) 10%, var(--bg-card));
  border-color:var(--accent-border); color:var(--accent);
}

.adm-comms-head{
  display:flex; align-items:center; gap:8px; padding:12px 22px 8px;
  font-family:var(--font-mono); font-size:11px; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; color:var(--text-muted);
}
.adm-comms-count{ margin-left:auto; font-weight:650; }

.adm-timeline{
  display:flex; flex-direction:column; gap:10px;
  padding:4px 22px 18px; max-height:min(52vh, 520px); overflow:auto;
}
.adm-msg{ display:flex; flex-direction:column; gap:4px; max-width:min(520px, 92%); }
.adm-msg--user{ align-self:flex-start; }
.adm-msg--staff{ align-self:flex-end; align-items:flex-end; }
.adm-msg-sender{
  font-size:11.5px; font-weight:700; color:var(--text-muted); padding:0 4px;
}
.adm-msg-bubble{
  padding:10px 14px; border-radius:14px; border:1px solid var(--border);
  background:var(--bg-inset); font-size:14px; color:var(--text); line-height:1.5;
}
.adm-msg--staff .adm-msg-bubble{
  background:color-mix(in srgb, var(--secondary) 10%, var(--bg-card));
  border-color:color-mix(in srgb, var(--secondary) 22%, var(--border));
}
.adm-msg-body{ white-space:pre-wrap; }
.adm-msg-img{
  display:block; max-width:min(240px, 100%); margin-top:8px; border-radius:var(--radius-xs);
  border:1px solid var(--border); cursor:zoom-in;
}
.adm-msg-time{
  font-family:var(--font-mono); font-size:10.5px; color:var(--text-muted); padding:0 4px;
}

.adm-event{
  align-self:center; display:flex; flex-wrap:wrap; gap:8px; justify-content:center;
  padding:6px 12px; border-radius:999px;
  background:var(--bg-inset); border:1px dashed var(--border);
  font-size:12px; color:var(--text-muted); max-width:90%;
}
.adm-event-time{ font-family:var(--font-mono); font-size:10.5px; }
.adm-event-text{ color:var(--text-secondary); }

.adm-shots{
  display:flex; flex-wrap:wrap; gap:8px; padding:0 22px 12px;
}
.adm-shots .adm-msg-img{ margin:0; max-width:120px; }

.adm-compose{
  padding:16px 22px 20px; border-top:1px solid var(--border);
  background:color-mix(in srgb, var(--secondary) 4%, var(--bg-card));
  display:flex; flex-direction:column; gap:12px;
}
.adm-compose-row{
  display:flex; flex-wrap:wrap; gap:12px; align-items:flex-end;
}
.adm-compose-row .form-field{ flex:1; min-width:160px; margin:0; }
.adm-check{
  display:inline-flex; align-items:center; gap:8px;
  font-size:13.5px; color:var(--text-secondary); cursor:pointer;
  padding-bottom:4px;
}
.adm-check input{ width:16px; height:16px; accent-color:var(--secondary); }

.adm-lightbox{
  position:fixed; inset:0; z-index:10000;
  display:none; flex-direction:column; align-items:center; justify-content:center; gap:14px;
  padding:24px; background:color-mix(in srgb, var(--text) 55%, transparent);
  backdrop-filter:blur(8px);
}
.adm-lightbox.is-open{ display:flex; }
.adm-lightbox img{
  max-width:min(960px, 94vw); max-height:78vh; border-radius:var(--radius-sm);
  border:1px solid var(--border); box-shadow:var(--shadow-glow);
}

/* ---------- UGC translation editor ---------- */
.ugc-tr{
  margin-top:1.5rem;
  padding:1.25rem 1.35rem 1.4rem;
  border-radius:var(--radius-sm);
  background:var(--bg-inset);
  border:1px solid var(--border);
}
.ugc-tr__eyebrow{
  margin:0 0 .2rem;
  font-size:.72rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--text-muted);
  font-family:var(--font-mono);
}
.ugc-tr__title{
  margin:0 0 .35rem;
  font-family:var(--font-display);
  font-size:1.05rem;
  font-weight:700;
  color:var(--text);
}
.ugc-tr__lead{
  margin:0;
  font-size:.88rem;
  color:var(--text-secondary);
  line-height:1.45;
}
.ugc-tr__fields{ margin-top:1rem; display:flex; flex-direction:column; gap:.65rem; }
.ugc-tr__field{
  border:1px solid var(--border);
  border-radius:var(--radius-xs);
  background:var(--bg-card);
  overflow:hidden;
}
.ugc-tr__summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  padding:.85rem 1rem;
  user-select:none;
}
.ugc-tr__summary::-webkit-details-marker{ display:none; }
.ugc-tr__summary-main{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.4rem .55rem;
  min-width:0;
}
.ugc-tr__field-name{
  font-weight:700;
  font-size:.95rem;
  color:var(--text);
}
.ugc-tr__chip{
  display:inline-flex;
  align-items:center;
  padding:.15rem .5rem;
  border-radius:999px;
  font-size:.72rem;
  font-weight:600;
  border:1px solid var(--border);
  color:var(--text-secondary);
  background:var(--bg-inset);
}
.ugc-tr__chip--src{ border-color:var(--accent-border); color:var(--accent); }
.ugc-tr__chip--auto{ border-color:rgba(201,146,62,.35); color:var(--warm); }
.ugc-tr__chip--manual{ border-color:var(--secondary-border); color:var(--secondary); }
.ugc-tr__chip--pending{ opacity:.75; }
.ugc-tr__chevron{
  flex-shrink:0;
  color:var(--text-muted);
  transition:transform .2s var(--ease-out);
}
.ugc-tr__field[open] .ugc-tr__chevron{ transform:rotate(180deg); }
.ugc-tr__body{
  display:grid;
  gap:1rem;
  padding:0 1rem 1.1rem;
  border-top:1px solid var(--border);
  padding-top:1rem;
}
@media (min-width:840px){
  .ugc-tr__body{
    grid-template-columns:1fr 1fr;
    align-items:start;
  }
}
.ugc-tr__pane-label{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.4rem .55rem;
  margin-bottom:.45rem;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.02em;
  text-transform:uppercase;
  color:var(--text-muted);
}
.ugc-tr__pane-lang{
  font-family:var(--font-mono);
  font-size:.72rem;
  text-transform:none;
  letter-spacing:0;
  color:var(--accent);
  font-weight:600;
}
.ugc-tr__status{
  margin-left:auto;
  font-size:.72rem;
  font-weight:600;
  text-transform:none;
  letter-spacing:0;
  padding:.12rem .45rem;
  border-radius:999px;
  border:1px solid var(--border);
}
.ugc-tr__status--auto{ color:var(--warm); border-color:rgba(201,146,62,.35); }
.ugc-tr__status--manual{ color:var(--secondary); border-color:var(--secondary-border); }
.ugc-tr__status--pending{ color:var(--text-muted); }
.ugc-tr__original-text{
  white-space:pre-wrap;
  word-break:break-word;
  padding:.85rem 1rem;
  border-radius:var(--radius-xs);
  background:var(--bg-inset);
  border:1px dashed var(--border);
  color:var(--text-secondary);
  font-size:.9rem;
  line-height:1.5;
  max-height:14rem;
  overflow:auto;
}
.ugc-tr__textarea{
  width:100%;
  min-height:7.5rem;
  resize:vertical;
  box-sizing:border-box;
}
.ugc-tr__actions{ margin-top:.55rem; display:flex; gap:.5rem; flex-wrap:wrap; }
.ugc-tr__reset{ margin-top:.45rem; }

/* ==========================================================================
   Complete registration — Departure Clearance
   ========================================================================== */
.an-shell:has(.clr){
  min-height:100dvh;
}
.an-shell:has(.clr) main.an-container{
  flex:1; width:100%; max-width:none; padding:0;
}
.an-shell:has(.clr) main.an-container > div{
  flex:1; display:flex; flex-direction:column; min-height:0;
}
.an-shell:has(.clr) .an-footer{
  padding:10px 0 max(14px, env(safe-area-inset-bottom));
}
.an-shell:has(.clr) .an-footer::before{ display:none; }

.clr{
  flex:1; display:flex; align-items:stretch; justify-content:center;
  padding:28px 20px 36px;
  animation: clr-enter .7s var(--ease-out) both;
}
@keyframes clr-enter{
  from{ opacity:0; transform:translateY(14px); }
  to{ opacity:1; transform:none; }
}

.clr-stage{
  width:100%; max-width:1080px; margin:0 auto;
  display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.15fr);
  min-height:min(560px, calc(100dvh - 140px));
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:calc(var(--radius) + 4px);
  box-shadow:var(--shadow-glow);
  overflow:hidden;
}

.clr-aside{
  position:relative; overflow:hidden;
  padding:44px 40px;
  background:var(--bg-soft);
  border-right:1px solid var(--border);
  display:flex; flex-direction:column; justify-content:center;
}
.clr-aside-sky{
  position:absolute; inset:0; z-index:0;
  background:
    radial-gradient(ellipse 80% 55% at 20% 10%, rgba(45,82,64,.18), transparent 60%),
    radial-gradient(ellipse 70% 50% at 90% 20%, rgba(184,92,58,.12), transparent 55%),
    linear-gradient(180deg, transparent 40%, rgba(45,82,64,.08) 100%);
  pointer-events:none;
}
.clr-aside-horizon{
  display:none;
}
.clr-aside-runway{
  position:absolute; left:18%; right:18%; bottom:0; height:42%; z-index:0;
  background:
    linear-gradient(180deg, transparent, rgba(31,26,23,.06)),
    repeating-linear-gradient(
      90deg,
      transparent 0 46%,
      rgba(245,240,232,.55) 46% 54%,
      transparent 54% 100%
    );
  clip-path:polygon(32% 0, 68% 0, 100% 100%, 0 100%);
  opacity:.55; pointer-events:none;
}
[data-theme="dark"] .clr-aside-runway{
  background:
    linear-gradient(180deg, transparent, rgba(245,240,232,.04)),
    repeating-linear-gradient(
      90deg,
      transparent 0 46%,
      rgba(245,240,232,.12) 46% 54%,
      transparent 54% 100%
    );
}
.clr-aside-content{ position:relative; z-index:1; }

.clr-stamp{
  display:inline-flex; align-items:baseline; gap:10px;
  margin-bottom:22px;
  padding:8px 14px 8px 12px;
  border:1.5px dashed rgba(45,82,64,.35);
  border-radius:999px;
  background:rgba(245,240,232,.55);
  backdrop-filter:blur(6px);
  transform:rotate(-2deg);
  animation: clr-stamp .8s var(--ease-out) .15s both;
}
[data-theme="dark"] .clr-stamp{ background:rgba(20,28,24,.45); border-color:rgba(245,240,232,.2); }
@keyframes clr-stamp{
  from{ opacity:0; transform:rotate(-8deg) scale(.92); }
  to{ opacity:1; transform:rotate(-2deg) scale(1); }
}
.clr-stamp-code{
  font-family:var(--font-mono); font-weight:700; font-size:13px;
  letter-spacing:.18em; color:var(--accent);
}
.clr-stamp-label{
  font-size:12px; font-weight:700; text-transform:uppercase;
  letter-spacing:.12em; color:var(--text-muted);
}

.clr-aside-kicker{
  font-family:var(--font-mono); font-size:11px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--secondary); margin:0 0 10px;
  animation: clr-rise .6s var(--ease-out) .2s both;
}
.clr-aside-title{
  font-family:var(--font-display); font-weight:800;
  font-size:clamp(28px, 3.2vw, 40px); line-height:1.12; letter-spacing:-.02em;
  color:var(--text); margin:0; max-width:16ch;
  animation: clr-rise .65s var(--ease-out) .28s both;
}
.clr-aside-lead{
  margin:16px 0 0; max-width:34ch; font-size:15px; line-height:1.6;
  color:var(--text-secondary);
  animation: clr-rise .65s var(--ease-out) .36s both;
}
@keyframes clr-rise{
  from{ opacity:0; transform:translateY(10px); }
  to{ opacity:1; transform:none; }
}

.clr-checklist{
  list-style:none; margin:28px 0 0; padding:0;
  display:flex; flex-direction:column; gap:10px;
  animation: clr-rise .65s var(--ease-out) .44s both;
}
.clr-checklist li{
  display:flex; align-items:center; gap:12px;
  font-size:13.5px; font-weight:600; color:var(--text-muted);
}
.clr-checklist li.is-active{ color:var(--text); }
.clr-checklist li.is-current span:first-child{
  color:var(--secondary);
}
.clr-checklist li span{
  font-family:var(--font-mono); font-size:11px; letter-spacing:.08em;
  color:var(--accent); min-width:1.8em;
}
.clr-checklist li:not(.is-active) span{ color:var(--text-muted); }

.clr-step-indicator{
  margin:0 0 4px;
  font-family:var(--font-mono); font-size:11px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--text-muted);
}
.clr-step{ display:flex; flex-direction:column; gap:22px; }
.clr-step[hidden]{ display:none !important; }

.clr-main{
  display:flex; align-items:stretch; justify-content:center;
  padding:36px 34px 40px;
  background:
    radial-gradient(ellipse 60% 40% at 100% 0%, rgba(201,146,62,.06), transparent 55%),
    var(--bg);
}
.clr-card{
  width:100%; max-width:520px; margin:0 auto;
  display:flex; flex-direction:column; gap:22px;
  animation: clr-rise .7s var(--ease-out) .2s both;
}

.clr-card-head{ margin-bottom:2px; }
.clr-eyebrow{
  font-family:var(--font-mono); font-size:10.5px; letter-spacing:.2em;
  text-transform:uppercase; color:var(--text-muted); margin:0 0 8px;
}
.clr-card-title{
  font-family:var(--font-display); font-weight:800; font-size:24px;
  letter-spacing:-.015em; color:var(--text); margin:0 0 8px;
}
.clr-card-sub{
  margin:0; font-size:14px; line-height:1.55; color:var(--text-secondary);
}

.clr-form{ display:flex; flex-direction:column; gap:22px; }
.clr-field{ display:flex; flex-direction:column; gap:8px; }
.clr-label{
  display:flex; align-items:center; gap:10px;
  font-size:14px; font-weight:700; color:var(--text);
}
.clr-label-num{
  font-family:var(--font-mono); font-size:11px; letter-spacing:.1em;
  color:var(--accent); opacity:.85;
}
.clr-hint{
  margin:0; font-size:12.5px; line-height:1.45; color:var(--text-muted);
}

/* Country combobox */
.clr-combo{ position:relative; }
.clr-combo-control{
  display:flex; align-items:center; gap:10px;
  padding:0 12px 0 14px;
  min-height:52px;
  background:var(--bg-inset);
  border:1px solid var(--border);
  border-radius:var(--radius-xs);
  transition:border-color .18s var(--ease-out), box-shadow .18s var(--ease-out), background .18s var(--ease-out);
}
.clr-combo.is-open .clr-combo-control,
.clr-combo-control:focus-within{
  border-color:var(--accent-border);
  background:var(--bg-card);
  box-shadow:0 0 0 3px rgba(45,82,64,.12);
}
.clr-combo.is-shake{ animation: clr-shake .4s ease; }
@keyframes clr-shake{
  0%,100%{ transform:translateX(0); }
  25%{ transform:translateX(-4px); }
  75%{ transform:translateX(4px); }
}
.clr-combo-icon{ color:var(--text-muted); flex-shrink:0; }
.clr-combo-input{
  flex:1; min-width:0; border:0; background:transparent;
  font-family:var(--font-body); font-size:15px; color:var(--text);
  padding:12px 0; outline:none;
}
.clr-combo-input::placeholder{ color:var(--text-muted); }
.clr-combo-clear{
  width:28px; height:28px; border:0; border-radius:50%;
  background:transparent; color:var(--text-muted); cursor:pointer;
  font-size:18px; line-height:1;
}
.clr-combo-clear:hover{ color:var(--text); background:var(--bg-inset); }

.clr-combo-list{
  position:absolute; left:0; right:0; top:calc(100% + 6px); z-index:20;
  max-height:240px; overflow:auto;
  margin:0; padding:6px;
  list-style:none;
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  box-shadow:var(--shadow-card);
  animation: clr-rise .2s var(--ease-out);
}
.clr-combo-option{
  display:flex; align-items:center; gap:12px;
  padding:10px 12px; border-radius:8px; cursor:pointer;
  transition:background .12s var(--ease-out);
}
.clr-combo-option:hover,
.clr-combo-option.is-active{ background:var(--bg-inset); }
.clr-combo-opt-code{
  font-family:var(--font-mono); font-size:11px; font-weight:700;
  letter-spacing:.06em; color:var(--accent); min-width:2.2em;
}
.clr-combo-opt-name{ font-size:14px; color:var(--text); }
.clr-combo-empty{
  padding:14px; text-align:center; color:var(--text-muted); font-size:13px;
}

.clr-selected{
  display:inline-flex; align-items:center; gap:8px;
  margin:2px 0 0; padding:6px 10px;
  border-radius:999px;
  background:rgba(45,82,64,.08);
  border:1px solid rgba(45,82,64,.18);
  font-size:12.5px;
  animation: clr-rise .25s var(--ease-out);
}
.clr-selected-code{
  font-family:var(--font-mono); font-weight:700; color:var(--accent);
  letter-spacing:.06em;
}
.clr-selected-name{ color:var(--text); font-weight:600; }

/* Language pills */
.clr-langs{
  display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:8px;
}
.clr-lang{
  position:relative; display:flex; flex-direction:column; gap:2px;
  padding:12px 12px 11px;
  border:1px solid var(--border);
  border-radius:var(--radius-xs);
  background:var(--bg-inset);
  cursor:pointer;
  transition:border-color .18s var(--ease-out), background .18s var(--ease-out),
              transform .18s var(--ease-out), box-shadow .18s var(--ease-out);
}
.clr-lang:hover{
  border-color:var(--border-hover);
  transform:translateY(-1px);
}
.clr-lang.is-selected{
  border-color:var(--accent-border);
  background:rgba(45,82,64,.08);
  box-shadow:0 0 0 3px rgba(45,82,64,.1);
}
.clr-lang-input{
  position:absolute; opacity:0; pointer-events:none;
}
.clr-lang-code{
  font-family:var(--font-mono); font-size:10.5px; letter-spacing:.14em;
  color:var(--text-muted); font-weight:700;
}
.clr-lang.is-selected .clr-lang-code{ color:var(--accent); }
.clr-lang-name{
  font-size:13.5px; font-weight:700; color:var(--text);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.clr-lang-badge{
  position:absolute; top:8px; right:8px;
  font-family:var(--font-mono); font-size:9px; letter-spacing:.08em;
  text-transform:uppercase; color:var(--warm);
  padding:2px 6px; border-radius:999px;
  background:rgba(201,146,62,.12); border:1px solid rgba(201,146,62,.28);
}

/* Live banner */
.clr-banner{
  display:flex; flex-direction:column; gap:10px;
  transition:opacity .2s var(--ease-out), transform .2s var(--ease-out);
}
.clr-banner.is-switching{
  opacity:0; transform:translateY(4px);
}
.clr-banner.is-switched{
  animation: clr-rise .35s var(--ease-out);
}
.clr-banner-item{
  display:flex; gap:12px; align-items:flex-start;
  padding:14px 14px 14px 12px;
  border-radius:var(--radius-sm);
  border:1px solid var(--border);
  background:var(--bg-card);
}
.clr-banner-item[hidden]{
  display:none !important;
}
.clr-banner-item--tos{
  border-color:rgba(45,82,64,.22);
  background:linear-gradient(135deg, rgba(45,82,64,.06), rgba(45,82,64,.02));
}
.clr-banner-item--beta{
  border-color:rgba(201,146,62,.3);
  background:linear-gradient(135deg, rgba(201,146,62,.1), rgba(201,146,62,.03));
}
.clr-banner-icon{
  flex-shrink:0; width:36px; height:36px;
  display:flex; align-items:center; justify-content:center;
  border-radius:10px;
  color:var(--accent);
  background:rgba(45,82,64,.1);
}
.clr-banner-icon svg{
  display:block; width:20px; height:20px;
}
.clr-banner-item--beta .clr-banner-icon{
  color:var(--warm);
  background:rgba(201,146,62,.14);
}
.clr-banner-copy{ min-width:0; flex:1; }
.clr-banner-title{
  display:block; font-size:13px; font-weight:800; color:var(--text);
  margin-bottom:4px;
}
.clr-banner-body{
  margin:0; font-size:12.5px; line-height:1.5; color:var(--text-secondary);
}

.clr-actions{
  display:flex; flex-direction:column; align-items:stretch; gap:12px;
  padding-top:4px;
}
.clr-actions--split{
  flex-direction:row; align-items:center; gap:10px;
}
.clr-actions--split .clr-submit{ flex:1; width:auto; }
.clr-back{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:52px; padding:12px 18px;
  border:1px solid var(--border); border-radius:999px;
  background:transparent; color:var(--text-secondary);
  font-family:var(--font-body); font-size:14px; font-weight:700;
  cursor:pointer;
  transition:border-color .18s var(--ease-out), color .18s var(--ease-out), background .18s;
}
.clr-back:hover{
  border-color:var(--border-hover); color:var(--text); background:var(--bg-inset);
}
.clr-submit{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  width:100%; min-height:52px; padding:14px 22px;
  border:none; border-radius:999px; cursor:pointer;
  background:var(--grad-accent-btn); color:var(--text-on-accent);
  font-family:var(--font-body); font-size:15px; font-weight:700;
  box-shadow:var(--shadow-btn);
  transition:transform .2s var(--ease-out), box-shadow .2s var(--ease-out), opacity .2s;
}
.clr-submit:hover:not(:disabled){
  transform:translateY(-2px);
  box-shadow:0 18px 36px rgba(45,82,64,.34);
}
.clr-submit:disabled,
.clr-submit.is-disabled{
  opacity:.45; cursor:not-allowed; transform:none; box-shadow:none;
}
.clr-logout{
  display:block; text-align:center;
  font-size:13px; font-weight:600; color:var(--text-muted);
  text-decoration:none; padding:6px 10px; margin-top:4px;
  transition:color .15s;
}
.clr-logout:hover{ color:var(--secondary); }

@media (max-width:960px){
  .clr{ padding:16px max(18px, env(safe-area-inset-left)) 20px max(18px, env(safe-area-inset-right)); }
  .clr-stage{
    display:block; min-height:0;
    border:none; background:transparent; box-shadow:none; border-radius:0;
    max-width:440px;
  }
  .clr-aside{
    padding:8px 0 22px; border:none; background:transparent; text-align:center;
    justify-content:flex-start;
  }
  .clr-aside-sky, .clr-aside-horizon, .clr-aside-runway{ display:none; }
  .clr-stamp{ margin-bottom:14px; }
  .clr-aside-title{ max-width:none; font-size:clamp(24px, 6.5vw, 30px); }
  .clr-aside-lead{ margin-left:auto; margin-right:auto; }
  .clr-checklist{ display:none; }
  .clr-main{ padding:0; background:transparent; }
  .clr-card{ max-width:none; }
  .clr-card-title{ font-size:20px; }
  .clr-langs{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .clr-actions--split{ flex-direction:column-reverse; }
  .clr-actions--split .clr-submit,
  .clr-back{ width:100%; }
}
@media (max-width:400px){
  .clr-langs{ grid-template-columns:1fr 1fr; }
  .clr-lang{ padding:10px; }
  .clr-lang-name{ font-size:12.5px; }
}

.clr.is-lang-pulse .clr-aside-title,
.clr.is-lang-pulse .clr-card-title,
.clr.is-lang-pulse .clr-banner{
  animation: clr-rise .35s var(--ease-out);
}
