@font-face{
  font-family:'Aurebesh';
  src:url('/fonts/aurebesh.woff') format('woff');
  font-display:swap;
}
.decrypt-code{ font-family:'Aurebesh', monospace; letter-spacing:2px; }
/* ============================================================
   Zevra — Sector Archives · visual system
   deep-space navy starfield, gold accents, soft rounded panels
   ============================================================ */
:root{
  --gold:#e8c47a;
  --gold-soft:rgba(232,196,122,.14);
  --gold-line:rgba(232,196,122,.28);
  --bg0:#04070f;
  --bg1:#0a1124;
  --panel:rgba(13,20,38,.78);
  --panel-solid:#0d1426;
  --line:#1e2c4d;
  --panel-border:rgba(140,170,230,.14);
  --text:#dfe6f5;
  --muted:#8b96b3;
  --faint:#5d6884;
  --green:#6fdc9a;   --green-bg:rgba(111,220,154,.12);   --green-line:rgba(111,220,154,.38);
  --red:#e8747a;     --red-bg:rgba(232,116,122,.12);     --red-line:rgba(232,116,122,.38);
  --grayblue:#8fa2c8;--grayblue-bg:rgba(143,162,200,.12);--grayblue-line:rgba(143,162,200,.32);
  --amber:#e0a95e;   --amber-bg:rgba(224,169,94,.12);    --amber-line:rgba(224,169,94,.38);
  --violet:#9573e8;  --violet-bg:rgba(100,60,190,.20); --violet-line:rgba(112,72,208,.9);
  --radius:20px;
  --font:'Segoe UI',system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;
  --cur:url(/img/cursor-a.svg) 3 2,auto;
  --cur-hot:url(/img/cursor-a-hover.svg) 3 2,pointer;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{cursor:var(--cur)}
a[href],button,select,summary,label[for],input[type=checkbox],input[type=radio],input[type=range],input[type=file],input[type=submit],input[type=button]{cursor:var(--cur-hot)}
button:disabled,select:disabled{cursor:var(--cur)}
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=submit]):not([type=button]),textarea,[contenteditable]{cursor:text}
body{
  font-family:var(--font);
  color:var(--text);
  min-height:100vh;
  background:
    radial-gradient(1200px 600px at 70% -10%, #101b36 0%, #070d1d 55%);
  background-attachment:fixed;
  background-color:#070d1d;
}
/* ---------- starfield ---------- */
.starfield{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.starfield i{position:absolute;border-radius:50%;background:#cfe0ff}
.starfield i.pink{
  background:#ff8fd0;
  box-shadow:0 0 7px 1px rgba(255,140,205,.9),0 0 16px 4px rgba(255,140,205,.35);
  animation:pinktw 4.2s ease-in-out infinite;
}
@keyframes pinktw{0%,100%{opacity:.75}50%{opacity:1}}

/* ---------- chrome ---------- */
.wrap{position:relative;z-index:1;max-width:1180px;margin:0 auto;padding:0 22px}

.brand{display:flex;align-items:center;gap:0;text-decoration:none}
.brand-text{display:flex;flex-direction:column;line-height:1.15}
.brand-star{
  width:68px;height:68px;flex:0 0 auto;
}
.wordmark{font-size:30px;letter-spacing:.42em;color:var(--gold);font-weight:300;font-family:'Josefin Sans',var(--font);white-space:nowrap;transition:text-shadow .25s ease,filter .25s ease}
/* N'sec wordmark: shorter SEC capitals, Cormorant apostrophe */
.wm-sec{font-size:.70em}
.wm-apos{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:1.05em}
/* light gold rising from the base of the letters */
.side-brand .wordmark,.cover-title{background:linear-gradient(to top,#e6c47e 0%,#efd9a8 22%,#f4ead2 42%,#f2f5fc 68%);-webkit-background-clip:text;background-clip:text;color:transparent}
.brand:hover .wordmark{filter:drop-shadow(0 0 10px rgba(232,196,122,.6))}

.linkbtn{background:none;border:none;color:var(--muted);font:inherit;font-size:15px;cursor:var(--cur-hot);padding:4px 2px}
.linkbtn:hover{color:var(--gold)}
.linkbtn.logout-btn{font-size:12px;letter-spacing:.06em;opacity:.85;padding-top:7px}

main{min-height:calc(100vh - 220px);padding:34px 0 46px}

/* ---------- footer ---------- */

#clock{color:var(--gold);font-variant-numeric:tabular-nums}

/* ---------- gold accent bar (section headers) ---------- */
.section-title, .sub-title{position:relative}
.section-title::before, .sub-title::before{
  content:none;
}
/* collapsible summary keeps its disclosure triangle (::before); card provides the edge bar */
details.collapsible > summary{position:relative;padding-left:20px}
details.collapsible > summary::after{
  content:none;
}

/* ---------- dashboard ---------- */
.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:18px;margin-bottom:18px}
.new-marker{display:inline-block;color:#7db9ff;font-size:14px;margin-right:8px;animation:slow-spin 6s linear infinite;vertical-align:1px}
@keyframes slow-spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
.dash-card h3{margin-top:0}
.watch-badge{
  display:inline-block;min-width:22px;height:22px;line-height:22px;text-align:center;
  border-radius:999px;background:var(--red-bg);color:var(--red);border:1px solid var(--red-line);
  font-size:12px;font-weight:700;padding:0 6px;margin-left:8px;vertical-align:middle;
}
.stale-row{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid #182540;font-size:13.5px}
.stale-row:last-child{border-bottom:none}
.stale-row .sname{font-weight:400;margin-right:auto;color:var(--text)}
.tbl tr.session-alt td{background:rgba(232,196,122,.04)}

/* ---------- inline editing (profile detail) ---------- */
.ie-field{cursor:var(--cur-hot);border-radius:8px;padding:2px 6px;margin:-2px -6px;transition:background .15s}
.ie-field:hover{background:rgba(232,196,122,.08)}
.ie-area{
  font:inherit;color:var(--text);background:rgba(8,13,26,.85);
  border:1px solid var(--gold-line);border-radius:10px;padding:8px 12px;width:100%;outline:none;
}
.ie-area{min-height:90px;resize:vertical}
.ie-saving{font-size:12px;color:var(--muted);font-style:italic;margin-top:10px;min-height:18px}

/* ---------- watch button ---------- */
.watch-btn{
  background:none;border:1px solid var(--panel-border);color:var(--muted);border-radius:999px;
  font-size:11.5px;letter-spacing:.08em;padding:5px 13px;cursor:var(--cur-hot);transition:all .15s;white-space:nowrap;
}
.watch-btn:hover{border-color:var(--star-line,var(--gold-line));color:var(--star,var(--gold))}
.watch-btn.watching{border-color:var(--star-line,var(--gold-line));color:var(--star,var(--gold));background:var(--star-soft,var(--gold-soft))}

/* ---------- admin permission checkboxes ---------- */

/* ---------- section headers (unified pattern) ---------- */
.section-head{
  padding:0 2px;margin-bottom:18px;
  position:relative;
}
.section-title{
  margin:0 0 6px;font-size:24px;font-weight:600;letter-spacing:0;color:var(--text);
}
.section-sub{color:var(--muted);font-size:14px;margin:0 0 14px;letter-spacing:0}
.section-sub.quote{font-style:italic}
.head-row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.section-head .head-row{margin-top:20px}
.head-row.grow .search-input{flex:1 1 320px}
.filters-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:14px}
.filters-row .lbl{font-size:11px;letter-spacing:.22em;color:var(--faint);text-transform:uppercase}

/* ---------- inputs / buttons / chips ---------- */
.search-input,.text-input,.text-area,select.chip-select{
  background:rgba(8,13,26,.75);border:1px solid var(--panel-border);color:var(--text);
  border-radius:999px;padding:12px 20px;font:inherit;font-size:14.5px;outline:none;
  transition:border-color .15s, box-shadow .15s;
}
.search-input{min-width:0}
.search-input::placeholder,.text-input::placeholder{color:var(--faint)}
.search-input:focus,.text-input:focus,.text-area:focus,select.chip-select:focus{
  border-color:var(--gold-line);box-shadow:0 0 0 3px rgba(232,196,122,.10);
}
/* Classified fields: visible only because of the viewer's permissions (Dawn, Oct 12, 2026).
   Violet outline on entry fields; matching accent on display-only rows. */
.text-input.classified-field,.text-area.classified-field,select.chip-select.classified-field{
  border-color:var(--violet-line);box-shadow:0 0 0 1px var(--violet-line) inset;
}
.text-input.classified-field:focus,.text-area.classified-field:focus,select.chip-select.classified-field:focus{
  border-color:var(--violet);box-shadow:0 0 0 3px var(--violet-bg);
}
.detail-item.classified-item{border-left:2px solid var(--violet-line);padding-left:10px}
.detail-item.classified-item .k{color:var(--violet)}
.text-input{width:100%}
.text-area{width:100%;border-radius:16px;min-height:110px;resize:vertical}
.field{margin-bottom:16px}
.field label{display:block;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
select.chip-select{
  appearance:none;-webkit-appearance:none;cursor:var(--cur-hot);padding-right:40px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%238b96b3' stroke-width='1.6' stroke-linecap='round'/></svg>");
  background-repeat:no-repeat;background-position:right 16px center;
}
/* text inputs with a suggestion list (the Faction type-ahead) get the same
   dropdown chevron as the selects (Dawn, Oct 13, 2026) */
.text-input[list]{
  padding-right:40px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%238b96b3' stroke-width='1.6' stroke-linecap='round'/></svg>");
  background-repeat:no-repeat;background-position:right 16px center;
}
/* empty select shows placeholder-style muted text like inputs */
select.chip-select:invalid{color:var(--faint)}
select.chip-select option{color:var(--text);background:#0a1120}
.btn{
  display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:12px 26px;
  font:inherit;font-size:14px;letter-spacing:.06em;cursor:var(--cur-hot);border:1px solid var(--panel-border);
  background:rgba(20,30,55,.8);color:var(--text);transition:all .15s;text-decoration:none;white-space:nowrap;
}
.btn:hover{border-color:var(--gold-line);box-shadow:0 0 14px rgba(232,196,122,.15)}
.btn-gold{
  background:linear-gradient(180deg,#f2d38c,#dfb862);border-color:#f2d38c;color:#1c1508;font-weight:600;
  box-shadow:0 6px 22px rgba(232,196,122,.28);
}
.btn-gold:hover{box-shadow:0 8px 28px rgba(232,196,122,.42);border-color:#f2d38c}
.btn-sm{padding:8px 18px;font-size:13px}
.btn-violet{background:var(--violet-bg);color:var(--violet);border-color:var(--violet-line)}
.btn-violet:hover{border-color:var(--violet);box-shadow:0 0 14px rgba(139,92,246,.3)}
.btn-thin{padding:3px 13px;font-size:12px;letter-spacing:.04em}
.btn-danger{background:rgba(232,116,122,.08);border-color:var(--red-line);color:var(--red)}
.btn-danger:hover{border-color:var(--red);box-shadow:0 0 14px rgba(232,116,122,.2)}
.btn:disabled{opacity:.45;cursor:var(--cur);box-shadow:none}

/* ---------- pills ---------- */
.pill{
  display:inline-flex;align-items:center;gap:7px;padding:5px 14px;border-radius:999px;
  font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;border:1px solid transparent;white-space:nowrap;
}
.pill .dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex:0 0 auto}
.pill.green{background:var(--green-bg);color:var(--green);border-color:var(--green-line)}
.pill.red{background:var(--red-bg);color:var(--red);border-color:var(--red-line)}
.pill.gray{background:var(--grayblue-bg);color:var(--grayblue);border-color:var(--grayblue-line)}
.pill.amber{background:var(--amber-bg);color:var(--amber);border-color:var(--amber-line)}
.pill.gold{background:var(--gold-soft);color:var(--gold);border-color:var(--gold-line)}
/* ---------- cards / panels ---------- */
.card{
  background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);
  padding:24px 26px;margin-bottom:18px;box-shadow:0 18px 44px rgba(0,0,0,.32);
  position:relative;
}
.card-title{margin:0 0 6px;font-size:17px;letter-spacing:.06em;color:var(--text);font-weight:600}
.card .meta{color:var(--muted);font-size:13.5px;line-height:1.6}
.hl-card{overflow:hidden}
.hl-card,.dash-card{
  border-left:3px solid var(--accent, var(--gold));
  transition:border-color .3s ease;
}
/* Accent color presets */
:root{--accent:#e1b353;--accent-faint:rgba(225,179,83,.15);--accent-glow:rgba(225,179,83,.65);--accent-line:rgba(225,179,83,.4);--accent-soft:rgba(225,179,83,.12)}
:root[data-accent="sky"]{--accent:#6ec6ff;--accent-faint:rgba(110,198,255,.15);--accent-glow:rgba(110,198,255,.65)}
:root[data-accent="red"]{--accent:#e87a7a;--accent-faint:rgba(232,122,122,.15);--accent-glow:rgba(232,122,122,.65)}
:root[data-accent="green"]{--accent:#a8e6a3;--accent-faint:rgba(168,230,163,.15);--accent-glow:rgba(168,230,163,.65)}
:root[data-accent="orange"]{--accent:#f2a65a;--accent-faint:rgba(242,166,90,.15);--accent-glow:rgba(242,166,90,.65)}
:root[data-accent="steel"]{--accent:#7d93ad;--accent-faint:rgba(125,147,173,.15);--accent-glow:rgba(125,147,173,.65)}
:root{--star:#ebcd70;--star-line:rgba(235,205,112,.4);--star-soft:rgba(235,205,112,.12)}
:root[data-star="gold"]{--star:#ebcd70;--star-line:rgba(235,205,112,.4);--star-soft:rgba(235,205,112,.12)}
:root[data-star="blush"]{--star:#f7cddb;--star-line:rgba(247,205,219,.4);--star-soft:rgba(247,205,219,.12)}
:root[data-star="sky"]{--star:#6ec6ff;--star-line:rgba(110,198,255,.4);--star-soft:rgba(110,198,255,.12)}
:root[data-star="green"]{--star:#a8e6a3;--star-line:rgba(168,230,163,.4);--star-soft:rgba(168,230,163,.12)}
:root[data-star="orange"]{--star:#f2a65a;--star-line:rgba(242,166,90,.4);--star-soft:rgba(242,166,90,.12)}
:root[data-star="red"]{--star:#e87a7a;--star-line:rgba(232,122,122,.4);--star-soft:rgba(232,122,122,.12)}
:root[data-star="steel"]{--star:#7d93ad;--star-line:rgba(125,147,173,.4);--star-soft:rgba(125,147,173,.12)}
:root[data-accent="ice"]{--accent:#cfe6ff;--accent-faint:rgba(207,230,255,.15);--accent-glow:rgba(207,230,255,.65);--accent-line:rgba(207,230,255,.4);--accent-soft:rgba(207,230,255,.12)}
:root[data-star="ice"]{--star:#cfe6ff;--star-line:rgba(207,230,255,.4);--star-soft:rgba(207,230,255,.12)}
:root[data-accent="teal"]{--accent:#4fd6c4;--accent-faint:rgba(79,214,196,.15);--accent-glow:rgba(79,214,196,.65);--accent-line:rgba(79,214,196,.4);--accent-soft:rgba(79,214,196,.12)}
:root[data-star="teal"]{--star:#4fd6c4;--star-line:rgba(79,214,196,.4);--star-soft:rgba(79,214,196,.12)}
:root[data-accent="sky"]{--accent-line:rgba(110,198,255,.4);--accent-soft:rgba(110,198,255,.12)}
:root[data-accent="red"]{--accent-line:rgba(232,122,122,.4);--accent-soft:rgba(232,122,122,.12)}
:root[data-accent="green"]{--accent-line:rgba(168,230,163,.4);--accent-soft:rgba(168,230,163,.12)}
:root[data-accent="orange"]{--accent-line:rgba(242,166,90,.4);--accent-soft:rgba(242,166,90,.12)}
:root[data-accent="steel"]{--accent-line:rgba(125,147,173,.4);--accent-soft:rgba(125,147,173,.12)}
:root[data-accent="moss"]{--accent:#8f9f63;--accent-faint:rgba(143,159,99,.15);--accent-glow:rgba(143,159,99,.65);--accent-line:rgba(143,159,99,.4);--accent-soft:rgba(143,159,99,.12)}
:root[data-star="moss"]{--star:#8f9f63;--star-line:rgba(143,159,99,.4);--star-soft:rgba(143,159,99,.12)}
:root[data-accent="dune"]{--accent:#c4a484;--accent-faint:rgba(196,164,132,.15);--accent-glow:rgba(196,164,132,.65);--accent-line:rgba(196,164,132,.4);--accent-soft:rgba(196,164,132,.12)}
:root[data-star="dune"]{--star:#c4a484;--star-line:rgba(196,164,132,.4);--star-soft:rgba(196,164,132,.12)}
.dash-card{overflow:hidden;position:relative;}
.profile-card{cursor:var(--cur-hot);transition:transform .15s,border-color .15s}
.profile-card:hover{border-color:var(--gold-line);transform:translateY(-2px)}
.profile-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.profile-avatar{width:64px;height:64px;object-fit:cover;border-radius:14px;border:1px solid var(--panel-border);flex:none}
.faction-logo{height:92px;width:auto;max-width:260px;object-fit:contain;border-radius:10px;border:1px solid var(--panel-border);flex:none}
.profile-row .pname{font-size:19px;font-weight:600;letter-spacing:.02em;margin-right:auto}
.profile-row .ppills{display:flex;gap:8px;flex-wrap:wrap}
.member-row{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:13px 18px;margin-top:10px;
  background:rgba(8,13,26,.5);border:1px solid var(--panel-border);border-radius:16px;cursor:var(--cur-hot);
}
.member-row:hover{border-color:var(--gold-line)}
.member-row .mname{font-weight:600;margin-right:auto}
.sub-title{
  font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:var(--star, var(--gold));
  margin:26px 0 10px;font-weight:700;
}
.sub-title:first-child{margin-top:0}

/* ---------- sidebar layout (Dawn, Oct 14, 2026) ----------
   Replaces the top header nav. Brand + who-block + greeting at the
   top, grouped permission-gated nav, End Transmission at the foot.
   Hide/show is per-operator (users.sidebar_hidden); when hidden, the
   pulsing star alone remains as the way back. Section titles follow
   the operator's star colour via --star. The canvas starfield stays
   exactly as it was. */
.layout{display:flex;align-items:flex-start;min-height:100vh;position:relative;z-index:1;max-width:1180px;margin:0 auto;padding:14px 20px 20px}
.sidebar{
  width:228px;flex:none;position:sticky;top:48px;height:auto;max-height:calc(100vh - 64px);overflow-y:auto;margin-top:34px;
  display:flex;flex-direction:column;
  padding:18px 12px 14px;margin-right:18px;
  border:1px solid var(--line);border-radius:12px;
  background:linear-gradient(180deg,#0c1528,#0b1226);
}
/* The left menu keeps its scroll, loses the visible bar (Dawn). */
.sidebar{scrollbar-width:none;-ms-overflow-style:none}
.sidebar::-webkit-scrollbar{display:none;width:0;height:0}
.side-brand{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:0 4px 12px;border-bottom:1px solid var(--line)}
.side-brand .brand{gap:9px}
.side-brand .brand-star{width:46px;height:46px}
.side-brand .wordmark{font-size:21px;letter-spacing:.38em}
.side-toggle{
  cursor:var(--cur-hot);border:1px solid var(--line);background:#111b33;color:var(--gold);
  border-radius:8px;padding:3px 10px;font-size:14px;line-height:1.2;flex:none;margin-top:2px;
}
.side-who{padding:12px 10px 10px;border-bottom:1px solid var(--line)}
.side-who .who-btn{font-size:13.5px;font-weight:700;color:var(--text);padding:0;text-align:left}
.side-usertitle{font-size:12.5px;color:var(--muted);margin-top:1px}
.side-bubble{
  position:relative;flex:none;margin:10px 4px 12px;padding:9px 11px;font-size:12.5px;color:var(--text);font-style:italic;
  background:linear-gradient(180deg,#0d1628,#0a101f);border:1px solid var(--line);border-radius:10px;min-height:34px;
}
.side-bubble::before{
  content:'';position:absolute;top:-6px;left:22px;width:10px;height:10px;transform:rotate(45deg);
  background:#0d1628;border-left:1px solid var(--line);border-top:1px solid var(--line);
}
.bubble-who{display:block;font-style:normal;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--star, var(--gold));margin-bottom:3px}
.side-status{font-size:12.5px;color:var(--muted);line-height:1.5}
.side-status .ss-row{padding:0 10px}
.side-status .ss-row{margin-top:8px}
.side-status .ss-k{display:block;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase}
.side-status .ss-row b{display:block;margin-top:1px}
.side-status .ss-t{font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--star, var(--gold));margin-bottom:2px}
.side-status b{color:var(--text);font-weight:600}
.side-nav{display:flex;flex-direction:column;padding:6px 0;flex:none}
.side-nav a{
  display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:8px;
  color:var(--muted);text-decoration:none;font-size:14px;
}
.side-nav a:hover{background:rgba(232,196,122,.06);color:var(--text)}
.side-nav a.active{background:var(--star-soft, rgba(232,196,122,.12));color:var(--star, var(--gold));font-weight:600}
.side-group{
  font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;
  color:var(--star, var(--gold));opacity:.85;padding:14px 10px 5px;
}
/* Folding menu groups (Oct 28, 2026): shut by default, the open page's group unfolds. */
.side-sec{border-top:1px solid rgba(140,170,230,.07)}
.side-sec:first-of-type{margin-top:4px}
button.side-group{
  display:flex;align-items:center;gap:8px;width:100%;background:none;border:0;text-align:left;
  font-family:inherit;padding:11px 10px;cursor:var(--cur-hot);
}
button.side-group:hover{opacity:1}
.side-group .sg-n{margin-left:auto;font-size:11px;letter-spacing:0;color:var(--faint);text-transform:none}
.side-group::after{content:'\203A';width:10px;text-align:center;font-size:14px;letter-spacing:0;color:var(--muted)}
.side-sec.open .side-group::after{content:'\2304'}
.side-sec-body{display:none;flex-direction:column;padding-bottom:6px}
.side-sec.open .side-sec-body{display:flex}
.side-sec-body a{padding-left:16px}
/* Tabs over a page that shares one menu entry with its neighbours. */
.hub-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:-6px 0 18px}
.hub-tabs a{display:inline-flex;align-items:center;gap:6px;padding:6px 13px;border:1px solid var(--line);border-radius:999px;font-size:13px;color:var(--muted);text-decoration:none}
.hub-tabs a:hover{color:var(--text)}
.hub-tabs a.on{border-color:var(--star-line, var(--gold-line));background:var(--star-soft, rgba(232,196,122,.12));color:var(--star, var(--gold))}
/* Filter pills under a page's stage buttons: same look as the hub tabs */
.stab{display:inline-flex;align-items:center;gap:6px;padding:6px 13px;border:1px solid var(--line);border-radius:999px;background:none;font:inherit;font-size:13px;color:var(--muted);cursor:var(--cur-hot, pointer);line-height:1.2}
.stab:hover{color:var(--text)}
.stab.on{border-color:var(--star-line, var(--gold-line));background:var(--star-soft, rgba(232,196,122,.12));color:var(--star, var(--gold))}
.wl-mins{gap:6px}
.side-foot{padding-top:12px;margin-top:8px}
/* a short gold line between the System group and Terminal Options (Oct 31, 2026) */
.side-foot::before,.nrail-sp::after{content:'';display:block;width:44px;height:9px;margin:0 auto 10px;
  background:radial-gradient(circle at 50% 50%,#f3dca6 0 2px,transparent 2.5px),linear-gradient(90deg,transparent,rgba(232,196,122,.8) 22%,transparent 42%,transparent 58%,rgba(232,196,122,.8) 78%,transparent);
  background-size:100% 100%,100% 1px;background-position:center;background-repeat:no-repeat}
.side-colors{margin-bottom:10px}
.side-colors summary{
  cursor:var(--cur-hot);list-style:none;font-size:11px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--star, var(--gold));padding:2px 10px 4px;
}
.side-colors summary::-webkit-details-marker{display:none}
.side-colors summary::after{content:'›';float:right;font-size:14px;letter-spacing:0}
.side-colors[open ] summary::after{content:'⌄'}
.sc-label{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint);padding:8px 10px 5px}
.sc-label{display:flex;flex-wrap:wrap;column-gap:8px}
.sc-label .sc-name{margin-left:auto;letter-spacing:.04em;text-transform:none;color:var(--muted);white-space:nowrap}
.sc-row{display:flex;gap:6px;flex-wrap:wrap;padding:0 10px 2px}
/* Gold shimmer sweeps down a card's left accent bar on hover
   (Dawn, Oct 14, 2026). The band lives in the bar's own strip; at
   rest it sits parked above the visible slice. */
.section-head{position:relative}
.hl-card::after,.dash-card::after{
  content:'';position:absolute;left:0;top:0;bottom:0;width:3px;pointer-events:none;border-radius:20px 0 0 20px;
  background:linear-gradient(180deg, transparent 0%, transparent 34%, rgba(255,238,190,.95) 50%, transparent 66%, transparent 100%);
  background-size:100% 300%;background-position:0 0%;background-repeat:no-repeat;
}
.hl-card:hover::after,.dash-card:hover::after{
  background-position:0 100%;
  transition:background-position .9s ease;
}
.side-foot .logout-btn{font-size:13px;color:var(--muted);padding:4px 10px}

/* Overflow hardening (Dawn, Oct 14, 2026): nothing in the content
   column may exceed the space the collapsed layout gives it. */
#view{min-width:0;max-width:100%}
.card,.dash-card,.hl-card{min-width:0}
.stale-row{min-width:0}
.stale-row .sname{min-width:0;overflow-wrap:anywhere}
.tbl-wrap{overflow-x:auto;max-width:100%}
#view img{max-width:100%}
.content{flex:1;min-width:0;display:flex;flex-direction:column}
.content .wrap{width:100%;flex:1;display:flex;flex-direction:column;max-width:none;margin:0;padding:0}
.content main{flex:1}
.side-rail{
  display:none;width:48px;flex:none;position:sticky;top:48px;height:auto;margin-right:18px;margin-top:34px;
  border:1px solid var(--line);border-radius:12px;padding:14px 0;text-align:center;
  background:linear-gradient(180deg,#0c1528,#0b1226);
}
.side-show{background:none;border:none;padding:0;cursor:var(--cur-hot);width:46px;height:46px;display:flex;align-items:center;justify-content:center;margin:0 auto}
.side-rail .brand-star{width:36px;height:36px}
.side-show img{width:38px;height:38px;display:block}
.side-show:hover img{filter:drop-shadow(0 0 6px var(--star, var(--gold)))}
.layout.side-hidden .sidebar{display:none}
.layout.side-hidden .side-rail{display:block}
.side-rail .wordmark,.side-veil{display:none}
/* Phones and tablets (Oct 28, 2026): the closed menu is a slim bar across the top so
   the page keeps its full width; the open menu slides over a dimmed page and closes
   when a page is picked or the dimmed part is tapped. */
@media (max-width: 900px){
  .layout{flex-direction:column;align-items:stretch;padding:10px 14px 20px}
  .sidebar{display:none}
  .side-rail,.layout.side-hidden .side-rail{
    display:flex;align-items:center;width:auto;position:sticky;top:8px;z-index:30;
    margin:0 0 16px;padding:4px 10px;
  }
  .content main{padding-top:6px}
  .side-show{width:auto;height:40px;gap:10px;margin:0}
  .side-show img{width:32px;height:32px}
  .side-rail .wordmark{display:inline;font-size:17px;letter-spacing:.38em}
  .layout.side-open .sidebar{
    display:flex;position:fixed;left:10px;top:10px;bottom:10px;z-index:60;margin:0;
    width:min(300px, calc(100vw - 50px));max-height:none;box-shadow:0 0 40px rgba(0,0,0,.5);
  }
  .layout.side-open .side-veil{display:block;position:fixed;inset:0;z-index:55;background:rgba(3,6,14,.62)}
}

/* ---------- tables ---------- */
.tbl-wrap{overflow-x:auto;border-radius:14px}
.tbl{width:100%;border-collapse:collapse;min-width:640px}
.tbl th{
  font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:500;
  text-align:left;padding:12px 14px;border-bottom:1px solid rgba(232,196,122,.16);white-space:nowrap;
}
.tbl td{padding:12px 14px;border-bottom:1px solid rgba(140,170,230,.08);font-size:14px;vertical-align:top}
.tbl tbody tr:last-child td{border-bottom:none}
.tbl tbody tr.clickable{cursor:var(--cur-hot)}
.tbl tbody tr.clickable:hover{background:rgba(120,150,220,.07)}
.tbl .num{font-variant-numeric:tabular-nums;color:var(--muted)}
.tbl .nowrap{white-space:nowrap}

/* ---------- bars ---------- */
.bar{height:10px;border-radius:999px;background:rgba(140,170,230,.14);overflow:hidden;min-width:120px}
.bar>i{display:block;height:100%;border-radius:999px}
.bar.hull>i{background:linear-gradient(90deg,#9ec2ff,#4f7fe0)}
.bar.shield>i{background:linear-gradient(90deg,#8fe8b0,#4fae74)}
.bar-row{display:flex;align-items:center;gap:12px;margin:8px 0}
.bar-row .bar-lbl{width:64px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.bar-row .bar{flex:1}
.bar-row .bar-val{width:120px;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums;text-align:right}

/* ---------- shield dot ---------- */
.shield-dot{
  display:inline-block;width:14px;height:14px;border-radius:50%;
  flex:0 0 auto;vertical-align:middle;
  box-shadow:0 0 8px 1px currentColor;
}
.shield-cell{display:flex;align-items:center;gap:10px}
.shield-cell .shield-dot{cursor:var(--cur)}

/* ---------- collapsible ---------- */
details.collapsible{margin:6px 0 0}
details.collapsible > summary{
  cursor:var(--cur-hot);list-style:none;display:flex;align-items:center;gap:10px;
  font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);
  font-weight:500;padding:10px 2px;user-select:none;
}
details.collapsible > summary::-webkit-details-marker{display:none}
details.collapsible > summary::before{
  content:"";width:0;height:0;flex:0 0 auto;
  border-left:7px solid var(--gold);border-top:5px solid transparent;border-bottom:5px solid transparent;
  transition:transform .18s;
}
details.collapsible[open] > summary::before{transform:rotate(90deg)}
details.collapsible > summary .count{color:var(--muted);letter-spacing:.08em}

/* ---------- detail grids ---------- */
.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px;margin:10px 0}
.detail-item{padding:4px 0}
.detail-item .k{font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--faint);margin-bottom:2px}
.detail-item .v{font-size:15px}
.notes-box{
  background:rgba(8,13,26,.5);border:1px solid var(--panel-border);border-radius:14px;
  padding:16px 18px;font-size:14.5px;line-height:1.7;color:var(--text);white-space:pre-wrap;
}
.transit{padding:7px 0;border-bottom:1px solid #182540;font-size:13.5px}
.transit:last-child{border-bottom:none}
.transit .arrow{color:var(--gold);margin:0 10px}
.transit .meta{font-size:12.5px;color:var(--muted)}
/* Dashboard list names in plain text white, like the mockup's Enemy
   Movements rows (Dawn) — no gold names in any dashboard section. */
.dash-card .mname{font-weight:400}
.dash-card .sname a, .dash-card a.mname{color:var(--text) !important}
.back-link{display:inline-flex;align-items:center;gap:8px;color:var(--muted);text-decoration:none;font-size:14px;margin-bottom:18px}
.back-link:hover{color:var(--gold)}

/* ---------- dropzone ---------- */
.dropzone{
  border:2px dashed rgba(232,196,122,.35);border-radius:18px;padding:36px 24px;text-align:center;
  color:var(--muted);cursor:var(--cur-hot);transition:all .2s;font-size:14.5px;line-height:1.8;
}
.dropzone.dragover{border-color:var(--gold);background:rgba(232,196,122,.07);color:var(--text)}
.dropzone .dz-title{color:var(--gold);letter-spacing:.14em;font-size:13px;text-transform:uppercase;margin-bottom:8px}
.upload-list{margin-top:12px;font-size:13.5px;color:var(--muted)}

/* ---------- empty / misc ---------- */
.empty{
  text-align:center;color:var(--muted);padding:64px 24px;font-size:15px;line-height:1.9;
  background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);
}
.empty .big{font-size:17px;color:var(--text);letter-spacing:.08em;margin-bottom:8px}
.droid-line{color:var(--gold);font-style:italic}
.muted{color:var(--muted)}
.gold{color:var(--gold)}
.result-count{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:4px 0 14px}
.movement-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.movement-group{background:rgba(8,13,26,.5);border:1px solid var(--panel-border);border-radius:16px;padding:16px 18px}
.movement-group h4{margin:0 0 10px;font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.movement-group ul{margin:0;padding-left:18px;font-size:13.5px;color:var(--muted);line-height:1.9}
.movement-group .mname{color:var(--text)}

/* ---------- modal ---------- */
.modal-overlay{
  position:fixed;inset:0;background:rgba(3,5,10,.72);backdrop-filter:blur(5px);
  display:flex;align-items:center;justify-content:center;z-index:100;padding:20px;
}
.modal{
  background:var(--panel-solid);border:1px solid var(--panel-border);border-radius:22px;
  max-width:600px;width:100%;padding:30px;max-height:92vh;overflow:auto;
  box-shadow:0 30px 80px rgba(0,0,0,.6);
}
.modal h3{margin:0 0 20px;font-size:16px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);font-weight:500}
.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:22px;flex-wrap:wrap}
.modal .form-row{margin-bottom:16px}
.modal .form-row label{display:block;margin-bottom:8px;font-size:13px;letter-spacing:.08em;color:var(--muted)}
.modal .form-row .search-input{width:100%;box-sizing:border-box;padding:10px 12px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
@media(max-width:560px){.grid2{grid-template-columns:1fr}}

/* ---------- confirm box ---------- */
.zc-overlay{
  position:fixed;inset:0;background:rgba(3,5,10,.6);backdrop-filter:blur(3px);
  display:flex;align-items:center;justify-content:center;z-index:1100;padding:16px;
}
.zc-box{
  background:rgba(9,14,28,.97);border:1px solid var(--gold-line);border-radius:14px;
  width:100%;max-width:420px;padding:18px 20px 16px;box-shadow:0 20px 60px rgba(0,0,0,.6);
}
.zc-tag{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);font-style:italic;margin-bottom:10px}
.zc-msg{font-size:14.5px;line-height:1.5;color:var(--text);word-break:break-word}
.zc-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:16px;flex-wrap:wrap}

/* ---------- toast ---------- */
#toast{
  position:fixed;left:50%;bottom:30px;transform:translateX(-50%) translateY(16px);
  background:rgba(9,14,28,.96);border:1px solid var(--gold-line);color:var(--text);
  padding:15px 24px;border-radius:14px;font-size:14px;opacity:0;transition:all .3s;z-index:200;
  max-width:min(560px,90vw);text-align:center;pointer-events:none;
  box-shadow:0 14px 40px rgba(0,0,0,.55);
}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto;cursor:var(--cur-hot)}
#toast .droid-tag{color:var(--gold);font-style:italic}

/* ---------- cover / login ---------- */
body.cover{
  background:url('/img/zevra-cover.webp') center center / cover no-repeat fixed, #04070f;
  overflow-x:hidden;
}
#coverStars{position:fixed;inset:0;z-index:1;pointer-events:none}
/* The outpost doors video behind the login (Oct 29, 2026). The page starts deep dark blue; the still of the shut doors stands in when the video can't play. */
body.doors{background:#04070f}
.door-stage{position:fixed;inset:0;z-index:0;background:#04070f center center / cover no-repeat}
.door-stage.still{background-image:url('/img/login/doors-hold.webp?v=5')}
#doorVideo{opacity:0;transition:opacity 1.2s ease}
#doorVideo.on{opacity:1}
.door-stage video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.door-shade{position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(4,7,15,.58) 0%,rgba(4,7,15,.66) 45%,rgba(4,7,15,.85) 100%);transition:opacity .5s ease}
body.doors #coverStars{display:none}
body.doors .cover-top,body.doors .cover-rule,body.doors .cover-hero,body.doors .cover-foot{transition:opacity .4s ease}
body.doors-opening .door-shade{opacity:.25}
body.doors-opening .cover-top,body.doors-opening .cover-rule,body.doors-opening .cover-hero,body.doors-opening .cover-foot{opacity:0;pointer-events:none}
.cover-top{
  position:relative;z-index:2;
  display:flex;align-items:center;justify-content:space-between;
  padding:34px 60px 0;flex-wrap:wrap;gap:12px;
}
.cover-brand{display:flex;align-items:center;gap:6px}
.brand-star.sm{width:84px;height:auto}
.cover-brand .wordmark{font-size:26px;color:#eef2fb}
.cover-slogan{
  font-size:14px;letter-spacing:.34em;color:var(--muted);text-transform:uppercase;font-weight:300;
}
/* New Republic Command header on the login (Oct 29, 2026): gold fade like the title, gold hairlines either side. */
.cover-slogan.nr{display:flex;align-items:center;gap:16px;font-family:'Josefin Sans',var(--font);font-weight:300;font-size:13px;letter-spacing:.46em;white-space:nowrap;
  background:linear-gradient(to top,#e6c47e 0%,#f4ead2 55%,#f2f5fc 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 10px rgba(232,196,122,.25))}
.cover-slogan.nr .nr-dash{display:block;flex:none;width:54px;height:1px;background:linear-gradient(90deg,transparent,#e8c47a)}
.cover-slogan.nr .nr-dash.r{background:linear-gradient(270deg,transparent,#e8c47a)}
.cover-slogan.nr .nr-word{margin-right:-.46em}
.cover-tag{text-wrap:balance}
@media(max-width:760px){
  .cover-slogan.nr{font-size:11px;letter-spacing:.3em;gap:10px}
  .cover-slogan.nr .nr-word{margin-right:-.3em}
  .cover-slogan.nr .nr-dash{width:22px}
  .cover-tag{font-size:11px;letter-spacing:.14em;line-height:1.9;padding:0 8px;margin-bottom:36px}
  .cover-tag .tg-main{display:block}
  .cover-tag .tg-dot.first{display:none}
}
.cover-rule{
  position:relative;z-index:2;height:1px;margin:22px 0 0;
  background:linear-gradient(90deg,transparent,rgba(200,215,245,.22) 30%,rgba(200,215,245,.22) 70%,transparent);
}
.cover-hero{
  position:relative;z-index:2;min-height:calc(100vh - 260px);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:30px 20px;
}
.cover-title{
  margin:0;font-size:clamp(72px, 12vw, 150px);font-weight:200;font-family:'Josefin Sans',var(--font);
  letter-spacing:.28em;padding-left:.28em;white-space:nowrap;
  filter:drop-shadow(0 6px 26px rgba(232,196,122,.18)) drop-shadow(0 4px 30px rgba(0,0,0,.45));
  transition:filter .25s ease;cursor:var(--cur);
}
.cover-title:hover{
  filter:drop-shadow(0 0 30px rgba(242,245,252,.3)) drop-shadow(0 4px 30px rgba(0,0,0,.45));
}
.cover-goldline{
  width:min(460px,60vw);height:2px;margin:26px 0 30px;border-radius:2px;
  background:linear-gradient(90deg,transparent,var(--gold) 25%,#f6d98e 50%,var(--gold) 75%,transparent);
  box-shadow:0 0 18px rgba(232,196,122,.75);
}
.cover-tag{
  margin:0 0 44px;font-size:13px;letter-spacing:.42em;color:#c9d4ea;font-weight:300;
}
.cover-form{display:flex;flex-direction:column;align-items:center;gap:26px;min-height:170px}
.cover-fields{
  display:flex;gap:22px;flex-wrap:wrap;justify-content:center;
  opacity:1;transform:none;pointer-events:auto;
  transition:opacity .55s ease, transform .55s ease;
}
/* The fields are gated in the markup itself — hidden by default
   (Dawn, Oct 14, 2026: no default show). Hovering the cover reveals
   them in pure CSS, so even a dead script cannot lock anyone out;
   the script adds tap and focus reveals on top. */
.cover-form.gated .cover-fields{opacity:0;transform:translateY(10px);pointer-events:none}
.cover-form.gated.revealed .cover-fields,
.cover-form.gated:hover .cover-fields,
.cover-form:focus-within .cover-fields{opacity:1;transform:none;pointer-events:auto}
.cover-input{
  width:230px;padding:13px 26px;font:inherit;font-size:15px;color:var(--text);
  background:rgba(8,13,26,.55);border:1px solid rgba(232,196,122,.55);border-radius:999px;
  outline:none;transition:border-color .15s, box-shadow .15s;text-align:center;
}
.cover-input::placeholder{color:#a8b4d0;letter-spacing:.04em}
.cover-input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(232,196,122,.14),0 0 22px rgba(232,196,122,.25)}
.cover-enter{
  font:inherit;font-size:19px;letter-spacing:.06em;color:#f6e3b8;cursor:var(--cur-hot);
  width:min(340px,72vw);padding:17px;border-radius:999px;
  background:rgba(10,15,30,.45);border:1px solid rgba(232,196,122,.8);
  box-shadow:0 0 26px rgba(232,196,122,.35),inset 0 0 18px rgba(232,196,122,.08);
  transition:all .2s;
}
.cover-enter:hover{box-shadow:0 0 40px rgba(232,196,122,.6),inset 0 0 24px rgba(232,196,122,.14);color:#fff}
.cover-enter:disabled{opacity:.5;cursor:var(--cur)}
.cover-foot{
  position:relative;z-index:2;text-align:center;padding:0 20px 34px;
  font-size:11.5px;letter-spacing:.3em;color:var(--muted);text-transform:uppercase;
}
/* New Republic sign-off at the foot of every page, same as the public /submit page. */
.nr-foot{position:relative;z-index:1;text-align:center;color:var(--faint);font-size:11.5px;letter-spacing:.12em;padding:0 16px 22px}
.cover-foot .nr-foot{text-transform:none;letter-spacing:.12em;padding:12px 0 0}
.login-error{
  margin-top:4px;font-size:14px;color:var(--red);font-style:italic;line-height:1.6;min-height:24px;max-width:420px;
}
.login-error.droid{color:var(--gold)}
@media(max-width:760px){
  .cover-top{padding:24px 24px 0;justify-content:center;text-align:center}
  .cover-slogan{font-size:11px;letter-spacing:.22em}
  .cover-fields{flex-direction:column;gap:14px}
  .cover-input{width:min(300px,80vw)}
}

/* ---------- responsive ---------- */
@media(max-width:760px){
  
  .wordmark{font-size:24px}
  .section-head{padding:20px}
  .head-row.grow .search-input{flex:1 1 100%}
  .card{padding:20px}
  
  
}
.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:1000}
.modal-box{background:var(--card);border:2px solid #e8907a;border-radius:12px;padding:24px;min-width:320px;max-width:400px;box-shadow:0 0 24px rgba(232,144,122,.3)}
.modal-box h3{margin:0 0 12px 0;color:var(--text);font-size:18px}
.modal-box input{width:100%;padding:10px;background:var(--bg);border:1px solid var(--line);border-radius:6px;color:var(--text);font-size:14px;margin-bottom:16px;box-sizing:border-box}
.modal-box .modal-btns{display:flex;gap:10px;justify-content:flex-end}

/* Decrypting loading bar */
.decrypt-bar {
  width: 200px; height: 4px; background: rgba(255,255,255,0.1);
  border-radius: 2px; margin: 16px auto; overflow: hidden;
}
.decrypt-fill {
  height: 100%; width: 40%; background: var(--gold);
  border-radius: 2px; animation: decryptSlide 1.2s ease-in-out infinite;
}
@keyframes decryptSlide {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(500%); }
}
/* 404 starfield */
.starfield-404 { position: relative; }

/* Shield generation animation (login) */

@keyframes shieldDraw {
  to { stroke-dashoffset: 0; }
}
@keyframes shieldFill {
  to { opacity: 1; }
}
/* Decrypting code effect (font set above via @font-face) */
.decrypt-code {
  font-size: 12px; color: var(--gold);
  letter-spacing: 2px; margin-top: 8px; min-height: 16px;
}

/* Hologram easter egg */
.holo-overlay {
  position: fixed; inset: 0; z-index: 10000;
  background: rgba(0, 10, 20, 0.85);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; transition: opacity 0.5s; pointer-events: none;
}
.holo-overlay.show { opacity: 1; pointer-events: auto; }
.holo-container { text-align: center; }
.holo-img-wrap {
  position: relative; display: inline-block;
  filter: sepia(1) hue-rotate(180deg) saturate(3) brightness(1.2);
  animation: holoFlicker 0.3s infinite;
}
.holo-img-wrap::after {
  content: ''; position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0, 200, 255, 0.15) 2px, rgba(0, 200, 255, 0.15) 4px);
  pointer-events: none;
}
.holo-img-wrap img {
  max-width: 300px; max-height: 400px; border-radius: 8px;
  mask-image: linear-gradient(to bottom, black 80%, transparent 100%);
}
@keyframes holoFlicker {
  0%, 100% { opacity: 1; transform: translateY(0); }
  50% { opacity: 0.85; transform: translateY(-1px); }
  25% { opacity: 0.95; }
  75% { opacity: 0.9; transform: translateY(1px); }
}
.holo-label {
  color: #4dc3ff; font-family: monospace; margin-top: 16px;
  letter-spacing: 3px; text-transform: uppercase; font-size: 14px;
  text-shadow: 0 0 10px rgba(77, 195, 255, 0.8);
}
.holo-hint { color: #666; font-size: 12px; margin-top: 8px; }
.holo-speech {
  color: #4dc3ff; font-style: italic; margin-top: 12px; font-size: 15px;
  max-width: 400px; text-shadow: 0 0 8px rgba(77, 195, 255, 0.6);
}

/* Rebel firebird easter egg */
.firebird-egg {
  position: fixed; z-index: 9998; cursor:var(--cur-hot);
  font-size: 24px; color: #4dc3ff; opacity: 0;
  transition: opacity 1s; pointer-events: none;
  text-shadow: 0 0 12px rgba(77, 195, 255, 0.9);
  animation: firebirdFloat 3s ease-in-out infinite;
}
.firebird-egg.show { opacity: 0.7; pointer-events: auto; }
.firebird-egg:hover { opacity: 1; transform: scale(1.2); }
@keyframes firebirdFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}
.firebird-egg.zavra-bird {
  color: #ffd700;
  text-shadow: 0 0 16px rgba(255, 215, 0, 0.9), 0 0 4px rgba(255, 255, 200, 0.6);
}

/* Shield grid */
.sg-cell {
  width: 28px; height: 28px; display: flex; align-items: center; justify-content: center;
  border: 1px solid rgba(255,255,255,0.1); border-radius: 4px; cursor:var(--cur-hot);
  font-size: 14px; transition: all 0.15s;
}
.sg-cell:hover { border-color: var(--gold); transform: scale(1.1); }
.sg-gen { background: rgba(77, 195, 255, 0.3); border-color: #4dc3ff; color: #4dc3ff; }
.sg-covered { background: rgba(100, 200, 100, 0.15); border-color: rgba(100,200,100,0.3); }
.sg-gap { background: rgba(255, 80, 80, 0.12); border-color: rgba(255,80,80,0.25); color: rgba(255,120,120,0.5); }

/* Violet pill: restricted / watchlist marker, same violet as the restricted fields */
.pill.violet{background:var(--violet-bg);color:var(--violet);border-color:var(--violet-line)}

/* Scrolling list with the slim gold scrollbar used on the Access page */
.gold-scroll{overflow-y:auto;overflow-x:hidden;max-height:380px;padding-right:6px}
@supports not selector(::-webkit-scrollbar){.gold-scroll{scrollbar-width:thin;scrollbar-color:rgba(232,196,122,.6) rgba(140,170,230,.07)}}
.gold-scroll::-webkit-scrollbar{width:12px}
.gold-scroll::-webkit-scrollbar-button{display:none;width:0;height:0}
.gold-scroll::-webkit-scrollbar-track{background:rgba(140,170,230,.07);border-radius:999px;margin:6px 0}
.gold-scroll::-webkit-scrollbar-thumb{background:rgba(232,196,122,.6);border-radius:999px;border:3px solid transparent;background-clip:padding-box}
.gold-scroll::-webkit-scrollbar-thumb:hover{background:rgba(232,196,122,.85);background-clip:padding-box}
.tbl.tbl-flat{min-width:0}

/* View as: a bar across the top while a superadmin looks through another person's permissions. */
.viewas-bar{position:fixed;top:0;left:0;right:0;z-index:9999;display:flex;gap:14px;align-items:center;justify-content:center;
  padding:7px 16px;background:linear-gradient(90deg,#3b1f6b,#5b2d8f);color:#efe6ff;font-size:13px;letter-spacing:.02em;
  border-bottom:1px solid rgba(190,150,255,.45);box-shadow:0 2px 14px rgba(0,0,0,.35)}
.viewas-bar b{color:#fff}
.viewas-bar button{font:inherit;font-size:12px;padding:3px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.55);
  background:rgba(255,255,255,.12);color:#fff;cursor:var(--cur-hot)}
.viewas-bar button:hover{background:rgba(255,255,255,.24)}
body.viewing-as{padding-top:36px}

/* ---------- Holotable (Dawn, Oct 16, 2026) ----------
   The newest card sits in the middle of the table, the rest orbit it. */
.holo{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) minmax(0,1fr);gap:18px;align-items:center;margin-bottom:18px}
.holo.holo-solo{grid-template-columns:minmax(0,1fr)}
.holo-col{display:flex;flex-direction:column;gap:18px;position:relative;min-width:0}
.holo .card{margin-bottom:0}
.holo-ring{position:absolute;left:50%;top:50%;border-radius:50%;pointer-events:none}
.holo-ring.a{width:520px;height:520px;margin:-260px 0 0 -260px;border:1px dashed var(--panel-border)}
.holo-ring.b{width:340px;height:340px;margin:-170px 0 0 -170px;border:1px solid var(--panel-border);opacity:.7}
.holo-solo .holo-ring{display:none}
.holo-hero{position:relative;padding:28px 30px;box-shadow:0 0 60px var(--accent-faint, rgba(232,196,122,.12)),0 18px 44px rgba(0,0,0,.4)}
.holo-ago{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#7db9ff;margin-bottom:8px}
.holo-rail{border:1px solid var(--panel-border);border-radius:16px;padding:16px 20px;background:rgba(8,13,26,.5);margin-bottom:18px}
.holo-rail .rail-top{display:flex;justify-content:space-between;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.holo-rail .rail-top{flex-wrap:wrap;gap:4px 16px}
.holo-rail .rail-foot{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.holo-rail .meta{font-size:12.5px;color:var(--muted);margin-top:0}
.holo-rail .rail-foot{margin-top:6px}
.holo-rail .rail-now{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);flex:none}
.holo-rail .rail-track{position:relative;height:44px;margin-top:8px}
.holo-rail .rail-track:before{content:'';position:absolute;left:0;right:0;top:21px;height:2px;background:var(--line)}
.holo-rail .rail-dot{position:absolute;top:15px;width:12px;height:12px;border-radius:50%;background:#7db9ff;margin-left:-6px}
.holo-rail .rail-dot.new{top:12px;width:18px;height:18px;margin-left:-9px;background:var(--accent, var(--gold));box-shadow:0 0 14px var(--accent-glow, rgba(232,196,122,.6))}
.holo-rail .rail-join{position:absolute;top:8px;width:11px;height:11px;margin-left:-5.5px;background:var(--gold);clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);filter:drop-shadow(0 0 3px var(--gold));animation:railTwinkle 3.6s ease-in-out infinite}
@keyframes railTwinkle{0%,100%{opacity:.65;transform:scale(.9)}50%{opacity:1;transform:scale(1.12)}}
@media (prefers-reduced-motion:reduce){.holo-rail .rail-join{animation:none}}
.holo-join{display:block;margin-top:12px;font-size:15.5px;line-height:1.4;color:var(--text)}
.holo-join b{color:var(--gold);font-weight:600}
.holo-strips{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:12px;margin-bottom:18px}
.holo-strip{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:11px 18px;font-size:13.5px;border-radius:12px;border:1px solid var(--panel-border);border-left:3px solid var(--grayblue, #3a4a7a);background:rgba(13,20,38,.5);color:var(--muted);text-decoration:none}
a.holo-strip:hover{border-color:var(--gold-line);color:var(--text)}
@media (max-width:1060px){
  .holo{grid-template-columns:minmax(0,1fr)}
  .holo-ring{display:none}
  .holo-hero{order:-1}
}
.holo-col .stale-row{flex-wrap:wrap}
.shield-row{flex-direction:column;align-items:flex-start;gap:3px}
.shield-row .sname{margin-right:0}
.shield-row .muted{line-height:1.45}
details.collapsible.nested{margin:10px 0 0 4px}
details.collapsible.nested > summary{font-size:11px;letter-spacing:.22em;color:var(--text)}
details.collapsible.nested .tbl{table-layout:fixed;width:100%}
details.collapsible.nested .tbl td{overflow-wrap:anywhere}
details.collapsible.nested .tbl th:nth-child(1){width:18%}
details.collapsible.nested .tbl th:nth-child(2){width:18%}
details.collapsible.nested .tbl th:nth-child(3){width:14%}
.tbl .act-cell{text-align:right}
.tbl tr.has-acc td{border-bottom:none;padding-bottom:6px}
.tbl tr.acc-row td{padding-top:0;padding-bottom:14px}
.acc-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.acc-lab{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-right:6px}
.acc-line .ax-facline{flex-basis:100%;margin-top:2px}

/* ---------- Nebula picture (the public submit page): the old space picture, darkened and tinted blue ---------- */
:root[data-bg="nebula"] body{
  background:
    linear-gradient(rgba(10,24,60,.45), rgba(7,13,29,.6)),
    url('/img/zevra-interior.webp') center center / cover no-repeat fixed,
    #070d1d;
}
.bg-chip{font:inherit;font-size:12px;letter-spacing:.06em;color:var(--muted);background:transparent;border:1px solid var(--line);border-radius:999px;padding:3px 11px;cursor:var(--cur-hot)}
.bg-chip:hover{color:var(--text)}
.bg-chip[aria-pressed="true"]{color:var(--star, var(--gold));border-color:var(--star, var(--gold))}
.bg-chip:focus-visible{outline:2px solid #7db9ff;outline-offset:2px}

/* tiny lit dot beside a sidebar item that has something new */
.side-dot{display:inline-block;width:4px;height:4px;border-radius:50%;
  background:color-mix(in srgb, var(--accent) 45%, #fff); /* neon version of the person's Terminal Accent */
  box-shadow:0 0 3px 1px var(--accent),0 0 8px 2px var(--accent-glow);
  margin-left:-3px;vertical-align:middle;flex:none;position:relative;top:2px} /* the menu link is a flex row with a 9px gap */

/* ===== Holopad: alerts bar, map and timeline icons (Dawn, Oct 19, 2026) ===== */
.hm-eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--blue,#7db9ff)}
.al{background:var(--panel,#0d1426);border:1px solid var(--panel-border);border-radius:18px;padding:14px 18px;margin-bottom:16px}
.al .hm-eyebrow{margin-bottom:6px}
.al .hm-eyebrow:last-child{margin-bottom:0}
.al-items{display:flex;flex-wrap:wrap;gap:6px 26px}
.al a{color:var(--text);font-size:14px;text-decoration:none;display:inline-flex;align-items:center;gap:11px}
.al a:hover{color:var(--gold)}
/* the map's event icons, used on alerts and the timeline */
.hs-ic{position:relative;width:12px;height:12px;flex:none;display:inline-block}
.hs-ic:before,.hs-ic:after{content:"";position:absolute;left:50%;top:50%;opacity:0;animation:hsPulse 3.57s linear infinite}
.hs-ic:after{animation-delay:1.78s}
.hs-ic b{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
.hs-th:before,.hs-th:after{width:8px;height:8px;margin:-4px 0 0 -4px;border:1.4px dashed rgba(190,150,245,.9)}
.hs-th b{width:6px;height:6px;border-radius:50%;background:#d9c5fa}
.hs-sh:before,.hs-sh:after{width:8px;height:8px;margin:-4px 0 0 -4px;background:rgba(232,196,122,.8);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}
.hs-sh b{width:6px;height:6px;background:var(--gold);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}
.hs-as:before,.hs-as:after{width:8px;height:8px;margin:-4px 0 0 -4px;background:rgba(240,145,107,.8);clip-path:polygon(50% 0,100% 100%,0 100%);animation-name:hsPulseFlat}
.hs-as b{width:6px;height:6px;background:#f0916b;clip-path:polygon(50% 0,100% 100%,0 100%)}
@keyframes hsPulse{0%{transform:rotate(45deg) scale(1);opacity:.8}100%{transform:rotate(45deg) scale(3.4);opacity:0}}
.hs-sh:before,.hs-sh:after{animation-name:hsPulseFlat}
@keyframes hsPulseFlat{0%{transform:scale(1);opacity:.8}100%{transform:scale(3);opacity:0}}
/* the glowing gold star for new applications and new members */
.hs-star{display:inline-block;flex:none;width:12px;height:12px;background:var(--gold);clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);filter:drop-shadow(0 0 3px var(--gold));animation:railTwinkle 3.6s ease-in-out infinite}
.holo-join .hs-star{width:11px;height:11px;margin-right:4px}
@media (prefers-reduced-motion:reduce){.hs-ic:before,.hs-ic:after,.hs-star{animation:none}}
/* timeline marks take the map's shapes */
.holo-rail .rail-dot.rd-en{background:#e8747a;box-shadow:0 0 8px #e8747a;width:9px;height:9px;margin-left:-4.5px;top:16.5px}
.holo-rail .rail-dot.rd-sh{background:rgba(232,196,122,.9);border-radius:0;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}
.holo-rail .rail-dot.rd-sc{background:transparent;border:1.4px solid rgba(125,185,255,.9);width:11px;height:11px;margin-left:-5.5px;top:15.5px}
.holo-rail .rail-dot.rd-th{background:transparent;border:1.4px dashed rgba(190,150,245,.95);width:9px;height:9px;margin-left:-4.5px;top:16.5px;border-radius:0;transform:rotate(45deg)}
.holo-rail .rail-dot.new.rd-en{width:13px;height:13px;margin-left:-6.5px;top:14.5px;background:#e8747a;box-shadow:0 0 14px #e8747a}
.holo-rail .rail-dot.new.rd-sh{width:18px;height:18px;margin-left:-9px;top:12px;background:var(--gold);border-radius:0}
.holo-rail .rail-foot{margin-top:2px;align-items:center}
.holo-rail .holo-join{margin-top:0}
/* the map */
.hm{margin-bottom:16px}
.hm-grid{display:grid;grid-template-columns:154px minmax(0,1fr) 205px;gap:14px;align-items:stretch}
@media(max-width:900px){.hm-grid{grid-template-columns:minmax(0,1fr)}.hm-grid .hm-side{height:200px}}
.hm-box{position:relative;border-radius:18px;overflow:hidden;border:1px solid var(--panel-border);background:radial-gradient(ellipse at 50% 55%,#0e1a38 0,#060b18 70%)}
#hmCanvas{display:block;width:100%;height:470px}
.hm-head{position:absolute;left:18px;top:14px;pointer-events:none}
.hm-ttl{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:700;margin:2px 0 0}
.hm-stats{position:absolute;right:18px;top:14px;text-align:right;pointer-events:none}
.hm-stats b{display:block;font-size:22px;line-height:1.1;color:var(--gold)}
.hm-stats span{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.hm-tip{position:absolute;pointer-events:none;background:var(--panel,#0d1426);border:1px solid rgba(232,196,122,.3);border-radius:10px;padding:8px 12px;font-size:12.5px;opacity:0;transition:opacity .12s;max-width:230px;z-index:3}
.hm-tip strong{color:var(--gold)}.hm-tip span{color:var(--muted)}
.hm-legend{position:relative;padding:2px 14px 10px;display:flex;gap:6px;flex-wrap:wrap}
.hm-chip{border:1px solid var(--panel-border);border-radius:999px;padding:4px 12px;font-size:12px;cursor:var(--cur-hot);color:var(--muted);background:transparent;font-family:inherit}
.hm-chip[aria-pressed="true"]{color:var(--text)}
.hm-chip.c-enemy[aria-pressed="true"]{color:#e8747a;border-color:#e8747a}
.hm-chip.c-scan[aria-pressed="true"],.hm-chip.c-lane[aria-pressed="true"]{color:#7db9ff;border-color:#7db9ff}
.hm-chip.c-theft[aria-pressed="true"]{color:var(--violet);border-color:var(--violet)}
.hm-chip.c-shield[aria-pressed="true"]{color:var(--gold);border-color:var(--gold)}
.hm-chip.c-assign[aria-pressed="true"]{color:#f0916b;border-color:#f0916b}
.hm-side{position:relative;padding:0;margin:0;overflow:hidden;min-height:0}
.hm-sidein{position:absolute;top:14px;bottom:14px;left:10px;right:4px;overflow-y:auto;overflow-x:hidden;padding-right:4px}
.hm-scroll::-webkit-scrollbar{width:11px}
.hm-scroll::-webkit-scrollbar-button{display:none;width:0;height:0}
.hm-scroll::-webkit-scrollbar-track{background:rgba(140,170,230,.07);border-radius:999px;margin:12px 0}
.hm-scroll::-webkit-scrollbar-thumb{background:rgba(232,196,122,.55);border-radius:999px;border:3px solid transparent;background-clip:padding-box}
.hm-scroll::-webkit-scrollbar-thumb:hover{background:rgba(232,196,122,.85);background-clip:padding-box}
@supports not selector(::-webkit-scrollbar){.hm-scroll{scrollbar-width:thin;scrollbar-color:rgba(232,196,122,.55) rgba(140,170,230,.07)}}
.hm-sy{display:flex;align-items:center;gap:7px;width:100%;background:none;border:0;color:var(--muted);font:inherit;font-size:12.5px;padding:3px 4px;border-radius:8px;cursor:var(--cur-hot);text-align:left}
.hm-sy:hover,.hm-sy.on{background:rgba(255,255,255,.05);color:var(--text)}
.hm-sy i{width:6px;height:6px;border-radius:50%;background:rgba(139,150,179,.55);flex:none}
.hm-sy i.k-theft,.hm-rd.k-theft:before{background:#b48ce8;box-shadow:0 0 6px #b48ce8}
.hm-sy i.k-shield,.hm-rd.k-shield:before{background:#e8c47a;box-shadow:0 0 6px #e8c47a}
.hm-sy i.k-news,.hm-rd.k-news:before{background:#fff6d6;box-shadow:0 0 6px #fff6d6}
.hm-sy i.k-assign,.hm-rd.k-assign:before{background:#f0916b;box-shadow:0 0 6px #f0916b}
.hm-sy i.k-scan,.hm-rd.k-scan:before{background:#7db9ff;box-shadow:0 0 6px #7db9ff}
.hm-sg{display:grid;grid-template-columns:14px minmax(0,1fr);column-gap:8px;align-items:start;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid rgba(140,170,230,.1);color:var(--text);font:inherit;font-size:13px;padding:8px 4px;cursor:var(--cur-hot)}
.hm-sg:last-child{border:0}
.hm-sg small{display:block;color:var(--muted);font-size:11.5px}
.hm-quiet{color:var(--muted);font-size:13px;padding:8px 4px}

/* GNS: cream rings on the map, a slow gold scroll along the bottom */
.hm-chip.c-news[aria-pressed="true"]{color:#fff6d6;border-color:rgba(255,246,214,.6)}
.hm-ticker{position:relative;overflow:hidden;white-space:nowrap;border-top:1px solid var(--panel-border);padding:6px 0;background:rgba(4,8,18,.6)}
.hm-track{display:inline-block;animation:hmTick 170s linear infinite}
.hm-ticker:hover .hm-track{animation-play-state:paused}
@keyframes hmTick{to{transform:translateX(-50%)}}
.hm-ti{color:#d9a85a;font-size:12.5px;letter-spacing:.01em}
.hm-ti b{font-weight:600;color:#b8873a;margin-right:6px;letter-spacing:.06em}
.hm-ti.nr{color:#f3d58f;font-weight:600}
.hm-ti.nr b{color:#e8c47a}
.hm-sep{color:#8a6a35;margin:0 22px;font-size:11px}
@media (prefers-reduced-motion:reduce){.hm-track{animation:none}}

/* quieter new-member line under the six-month bar */
.holo-join{font-size:13px;color:var(--muted)}
.holo-join b{color:var(--text);font-weight:600}
/* scan ring icon for the watchlist alert */
.hs-sc:before,.hs-sc:after{width:8px;height:8px;margin:-4px 0 0 -4px;border:1.2px solid rgba(125,185,255,.9);border-radius:50%;animation-name:hsPulseFlat}
.hs-sc b{width:5px;height:5px;border-radius:50%;background:#7db9ff}
/* Facility Income card: a thin line, circles with dates on hover, no numbers */

/* The accent bar goes on information, search and form sections. Lists and tables (anything holding a table,
   a folding section, an item list or only a short note) stay plain, and a card can opt out with .no-bar. */
#view .card:not(.hl-card):not(.dash-card):not(.no-bar):not(.fi):not(.hm-side):not(article):not(.card .card):not(:has(table,.tbl-wrap,details,.no-bar)):not(:has(> p.muted:only-child)){
  border-left:3px solid var(--accent, var(--gold));
  transition:border-color .3s ease;
}

/* Systems: folds sideways into a thin bar of dots, one per system, coloured by what is happening there */
.hm-sysx{position:absolute;top:8px;right:6px;z-index:2;width:18px;height:18px;border:0;border-radius:6px;background:none;color:var(--muted);cursor:var(--cur-hot);font:inherit;line-height:1;padding:0}
.hm-sysx:before{content:"\2039"}
.hm-sysx:hover{color:var(--gold);background:rgba(255,255,255,.05)}
.hm-rail{display:none}
.hm-grid.rail{grid-template-columns:30px minmax(0,1fr) 205px}
.hm-grid.rail #hmSys{overflow:visible}
.hm-grid.rail #hmSys .hm-sidein{display:none}
.hm-grid.rail .hm-sysx{left:50%;right:auto;margin-left:-9px}
.hm-grid.rail .hm-sysx:before{content:"\203a"}
.hm-grid.rail .hm-rail{position:absolute;top:34px;bottom:12px;left:0;right:0;display:flex;flex-direction:column;justify-content:space-between;align-items:center}
.hm-rd{position:relative;width:22px;flex:1 1 0;min-height:0;max-height:13px;display:grid;place-items:center;background:none;border:0;padding:0;cursor:var(--cur-hot)}
.hm-rd:before{content:"";width:5px;height:5px;border-radius:50%;background:rgba(139,150,179,.55)}
.hm-rd:hover:before,.hm-rd.on:before{transform:scale(1.5)}
.hm-rd:hover:after{content:attr(data-n);position:absolute;left:100%;top:50%;transform:translateY(-50%);margin-left:6px;z-index:6;background:var(--panel,#0d1426);border:1px solid rgba(232,196,122,.3);border-radius:8px;padding:3px 10px;font-size:12px;color:var(--text);white-space:nowrap;pointer-events:none}
@media(max-width:900px){.hm-grid.rail{grid-template-columns:minmax(0,1fr)}.hm-grid.rail #hmSys{display:none}}

/* the map's event shapes, moving as they do on the map but smaller, in front of each signal */
.hm-sg{grid-template-columns:12px minmax(0,1fr)}
.hm-ic{width:11px;height:11px;margin-top:4px;flex:none;display:block;overflow:visible}
.hm-ic svg{display:block;width:11px;height:11px;overflow:visible}
.hm-ic .p{fill:none;stroke-width:1.3px;transform-box:fill-box;transform-origin:center;transform:scale(.7);animation:hmIcGrow 3.6s linear infinite;animation-delay:var(--d,0s)}
.hm-ic .p2{animation-delay:calc(var(--d,0s) - 1.8s)}
.hm-ic.k-scan .p{stroke:#7db9ff;animation-duration:2.9s;animation-name:hmIcRing}
.hm-ic.k-scan .p2{animation-delay:calc(var(--d,0s) - 1.45s)}
.hm-ic.k-shield .p{stroke:#e8c47a}
.hm-ic.k-assign .p{stroke:#f0916b}
.hm-ic.k-assign .c{fill:#f0916b}
.hm-ic.k-theft .p{stroke:#be96f5;stroke-dasharray:2 2}
.hm-ic.k-theft .c{fill:#d9c5fa}
.hm-ic.k-news .p{stroke:#fff6d6;stroke-dasharray:2.2 2.2;transform:none;animation:hmIcSpin 15.7s linear infinite;animation-delay:var(--d,0s)}
@keyframes hmIcGrow{from{transform:scale(.3);opacity:1}to{transform:scale(1);opacity:0}}
@keyframes hmIcRing{from{transform:scale(.14);opacity:1}to{transform:scale(1);opacity:0}}
@keyframes hmIcSpin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.hm-ic .p{animation:none;opacity:.8}.hm-ic .p2{display:none}}

/* ship distance calculator */
.sc-th{cursor:var(--cur-hot);user-select:none;white-space:nowrap}
.sc-th:hover{color:var(--gold)}
.sc-th.on:after{content:" \25BE";color:var(--gold)}
.sc-th.on.asc:after{content:" \25B4"}
.sc-drop{position:absolute;z-index:30;left:0;right:0;top:100%;margin-top:2px;max-height:260px;overflow-y:auto;background:var(--panel,#0e1a30);border:1px solid #243556;border-radius:8px}
.sc-drop div{padding:7px 12px;cursor:var(--cur-hot);font-size:13.5px;color:var(--text)}
.sc-drop div.on,.sc-drop div:hover{background:rgba(232,196,122,.16);color:var(--gold)}
.sc-drop small{color:var(--muted);margin-left:6px}

/* My Credits tables */
.cr-tbl th, .cr-tbl td { padding: 6px 8px; vertical-align: middle; }
/* Discord recipient picker and faction alert rules */
.dp-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.dp-chip{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;color:var(--text);border:1px solid var(--line);border-radius:999px;padding:2px 4px 2px 10px}
.dp-chip button{background:none;border:none;color:var(--muted);font-size:14px;line-height:1;cursor:var(--cur-hot);padding:0 4px}
.dp-chip button:hover{color:#e88}
.dp-chip.dp-off{color:var(--faint);text-decoration:line-through}
select.chip-select.dp-add{width:auto;min-width:0;padding:3px 26px 3px 10px;font-size:12.5px}
.fa-switch{display:flex;align-items:center;gap:10px;cursor:var(--cur-hot);text-transform:none;letter-spacing:.02em;font-size:14px;color:var(--text);margin-bottom:10px}
.fa-extra{margin:2px 0 14px}
.fx-head{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.fx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:8px;max-width:720px}
.fx-tile{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:9px 11px;border-radius:10px;cursor:var(--cur-hot);
  border:1px solid var(--line);background:rgba(255,255,255,.02);color:var(--muted);font:inherit;text-align:left;transition:border-color .2s,box-shadow .2s,background .2s,color .2s}
.fx-tile:hover{border-color:color-mix(in srgb,var(--gold) 45%,var(--line))}
.fx-name{font-size:14px;font-weight:600;letter-spacing:.04em}
.fx-mode{display:flex;align-items:center;gap:6px;white-space:nowrap;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase}
.fx-dot{width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.35}
.fx-tile[data-mode="hourly"]{color:var(--text);border-color:var(--gold);background:color-mix(in srgb,var(--gold) 10%,transparent);box-shadow:0 0 14px color-mix(in srgb,var(--gold) 22%,transparent)}
.fx-tile[data-mode="hourly"] .fx-mode{color:var(--gold)}
.fx-tile[data-mode="hourly"] .fx-dot{opacity:1;animation:fxPulse 2.4s ease-in-out infinite}
.fx-tile[data-mode="demand"]{color:var(--text);border-color:#6fb3ff;border-style:dashed;background:rgba(111,179,255,.06)}
.fx-tile[data-mode="demand"] .fx-mode{color:#6fb3ff}
.fx-tile[data-mode="demand"] .fx-dot{opacity:1;border-radius:2px;transform:rotate(45deg)}
@keyframes fxPulse{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--gold) 60%,transparent)}50%{box-shadow:0 0 0 4px transparent}}
@media (prefers-reduced-motion:reduce){.fx-tile[data-mode="hourly"] .fx-dot{animation:none}}
.fa-rule{border:1px solid var(--line);border-radius:8px;padding:8px;margin-bottom:8px}
.fa-rule-top{display:flex;gap:6px;align-items:center;margin-bottom:6px}
.fa-rule-top .text-input{flex:1;min-width:0;padding:6px 8px;font-size:13px}
.fa-rule-top .fa-del{font-size:18px;padding:0 6px}
.fa-ev{font-size:12.5px;padding:5px 0;border-bottom:1px solid var(--line);color:var(--text)}
.fa-ev-add{font-size:12px;padding:0 4px}
.fe-bar{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:0 0 12px}
.fe-chips{display:inline-flex;gap:6px}
.fa-ev.fa-hit{border-left:2px solid var(--gold);padding-left:8px}
.fe-sub{border-bottom:1px solid var(--line)}
.fe-sub>summary{cursor:var(--cur-hot);list-style:none;font-size:13px;color:var(--text);padding:6px 0}
.fe-sub>summary::-webkit-details-marker{display:none}
.fe-sub[open]>summary{color:var(--gold)}
.fe-sub-n{display:inline-block;min-width:28px;text-align:right;margin-right:6px;color:var(--gold);font-variant-numeric:tabular-nums}
.fe-sub .fa-ev{padding-left:34px}
/* Submit Scans / Scan Report */
.sp-code{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px}
.sp-in{width:140px;max-width:100%;padding:5px 8px;font-size:13px}
.sp-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.sp-row:last-child{border-bottom:0}
.sp-main{min-width:0;font-size:13.5px}
.sp-side{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end;font-size:13px}
.sr-sub{font-size:12.5px;margin-top:2px}
.sr-acts{display:flex;gap:6px;align-items:center}
.sr-rate{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0}
#srPay .btn-sm{padding:3px 12px;font-size:12px;line-height:1.4;min-height:0}
.sp-owed{font-size:13px;color:var(--gold)}
@media (max-width:600px){.sp-row{flex-direction:column;align-items:flex-start}.sp-side{justify-content:flex-start}}
/* Gold X-wing that chases the mouse pointer (js/cursor-wing.js) */
.cursor-wing{position:fixed;left:0;top:0;width:30px;height:30px;pointer-events:none;z-index:9998;opacity:0;transition:opacity .4s;filter:drop-shadow(0 0 3px rgba(232,196,122,.45));will-change:transform}
.cursor-wing.on{opacity:1}
.cursor-wing svg,.cursor-wing img{display:block}
.cursor-wing .cw-eng{fill:#f2a65a;stroke:none;opacity:0;transition:opacity .3s}
.cursor-wing.thrust .cw-eng{opacity:.9;animation:cwFlicker .12s steps(2) infinite}
@keyframes cwFlicker{50%{opacity:.5}}
.cw-bolt{position:fixed;width:12px;height:2px;margin:-1px 0 0 0;border-radius:2px;background:#ff6b5e;box-shadow:0 0 6px 1px rgba(255,90,80,.85);pointer-events:none;z-index:9998;transform-origin:0 50%}
.cw-flash{position:fixed;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:radial-gradient(circle,#fff6d6 0,rgba(255,120,90,.8) 45%,rgba(255,90,80,0) 70%);pointer-events:none;z-index:9998}
.z-switch{position:relative;width:38px;height:20px;padding:0;border-radius:999px;border:1px solid var(--line);background:rgba(8,13,26,.6);cursor:var(--cur-hot);transition:background .2s,border-color .2s}
.z-switch .z-knob{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--muted);transition:transform .2s,background .2s}
.z-switch[aria-checked="true"]{border-color:var(--star, var(--gold));background:var(--star-soft, var(--gold-soft))}
.z-switch[aria-checked="true"] .z-knob{transform:translateX(18px);background:var(--star, var(--gold))}
.z-switch:focus-visible{outline:2px solid #7db9ff;outline-offset:2px}

/* ---------- phones (Oct 28, 2026) ----------
   Text boxes at 16px so iPhones do not zoom in on tap, thumb-sized
   chips, tighter page tops and cards, date ranges in two tidy rows,
   a shorter Holopad map, and table rows as small labelled cards. */
.date-pair{display:flex;gap:10px;align-items:flex-end;flex-wrap:nowrap}
@media (max-width:760px){
  input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=date]),select,textarea{font-size:16px !important}
  main{padding:0 0 28px}
  .section-head{padding:4px 4px 0;margin-bottom:14px}
  .card{padding:16px;margin-bottom:14px;border-radius:16px}
  .bg-chip,.hm-chip,.fi-btn,.btn-thin,.hub-tabs a,.stab{min-height:36px;padding:7px 14px;display:inline-flex;align-items:center;justify-content:center}
  .fe-chips{flex-wrap:wrap}
  .date-toggle{position:static !important;order:-1;width:100%;justify-content:flex-end}
  .date-toggle .date-mode{font-size:13px !important;padding:10px 8px !important}
  .swc-cal{width:36px !important}
  #hmCanvas{height:300px}
}
@media (max-width:600px){
  .tbl[data-stk]{min-width:0}
  .tbl[data-stk] thead{display:none}
  /* each row becomes a small card: its name on top, the rest as label-over-value pairs, two across */
  .tbl[data-stk] tbody tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:8px;padding:10px 0;border-bottom:1px solid rgba(140,170,230,.12)}
  .tbl[data-stk] tbody tr:last-child{border-bottom:0}
  .tbl[data-stk] tbody td{display:block;border:0;padding:4px 10px;min-width:0;overflow-wrap:anywhere;font-size:14px;width:auto !important;text-align:left !important}
  .tbl[data-stk] tbody td::before{content:attr(data-label);display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin-bottom:1px}
  .tbl[data-stk] tbody td[data-label=""]{grid-column:1/-1}
  .tbl[data-stk] tbody td[data-label=""]::before{display:none}
  .tbl[data-stk] tbody td.stk-title{grid-column:1/-1;order:-1;padding:2px 10px 6px;font-size:15.5px;font-weight:600;color:var(--text)}
  .tbl[data-stk] tbody td.stk-title::before{display:none}
}

/* Phones: the menu opens from a round star button at the bottom right, where a
   thumb reaches, and slides in from the right (Oct 28, 2026). Tablets keep the top bar. */
@keyframes sideInRight{from{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}
@media (max-width:760px){
  .side-rail,.layout.side-hidden .side-rail{
    position:fixed;top:auto;left:auto;right:16px;bottom:calc(18px + env(safe-area-inset-bottom, 0px));
    width:58px;height:58px;margin:0;padding:0;border-radius:50%;justify-content:center;z-index:50;
    border-color:var(--gold-line);box-shadow:0 6px 24px rgba(0,0,0,.6);
  }
  .side-rail .wordmark{display:none}
  .side-show{height:58px;width:58px;justify-content:center}
  .side-show img{width:36px;height:36px}
  .layout.side-open .sidebar{left:auto;right:10px;animation:sideInRight .22s ease-out}
  .side-toggle{transform:scaleX(-1)}
  main{padding:14px 0 96px}
  #toast{bottom:92px}
}
@media (max-width:760px) and (prefers-reduced-motion:reduce){.layout.side-open .sidebar{animation:none}}

/* ---------- phone helpers, batch 2 (Oct 28, 2026) ---------- */
.copyable{cursor:copy;text-decoration:underline dotted rgba(140,170,230,.45);text-underline-offset:3px}
.tap-tip{position:fixed;z-index:300;max-width:240px;padding:8px 12px;border-radius:10px;font-size:13px;line-height:1.4;
  background:rgba(9,14,28,.97);border:1px solid var(--gold-line);color:var(--text);box-shadow:0 10px 30px rgba(0,0,0,.5);
  opacity:0;pointer-events:none;transition:opacity .15s}
.tap-tip.show{opacity:1}
.to-top{display:none}
.pull-refresh{position:fixed;left:50%;top:calc(10px + env(safe-area-inset-top, 0px));transform:translate(-50%,-70px);z-index:300;
  padding:8px 16px;border-radius:999px;font-size:13px;background:rgba(9,14,28,.97);border:1px solid var(--gold-line);color:var(--gold);transition:transform .2s}
.pull-refresh.show{transform:translate(-50%,0)}
@media (max-width:900px){
  .layout{padding-left:max(14px, env(safe-area-inset-left, 0px));padding-right:max(14px, env(safe-area-inset-right, 0px));padding-top:max(10px, env(safe-area-inset-top, 0px))}
  .layout.side-open .sidebar{top:calc(10px + env(safe-area-inset-top, 0px));bottom:calc(10px + env(safe-area-inset-bottom, 0px))}
}
@keyframes sheetUp{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
@media (max-width:760px){
  /* pop-ups rise from the bottom as sheets, their buttons under the thumb */
  .modal-overlay,.zc-overlay{align-items:flex-end;padding:0}
  .modal,.zc-box{max-width:none;border-radius:18px 18px 0 0;max-height:88vh;padding:20px 18px calc(18px + env(safe-area-inset-bottom, 0px));animation:sheetUp .22s ease-out}
  .modal-box{min-width:0;width:100%}
  .modal-actions .btn,.zc-actions .btn{flex:1 1 auto;min-height:44px;justify-content:center;text-align:center}
  /* back to top sits above the menu button */
  .to-top{display:flex;align-items:center;justify-content:center;position:fixed;right:23px;bottom:calc(88px + env(safe-area-inset-bottom, 0px));z-index:49;
    width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:rgba(12,21,40,.92);color:var(--gold);font-size:18px;
    opacity:0;pointer-events:none;transition:opacity .2s}
  .to-top.show{opacity:1;pointer-events:auto}
  #toast{bottom:calc(150px + env(safe-area-inset-bottom, 0px))}
  /* no label under 12px */
  #view label,#view th,#view summary,#view .count,#view .ax-pill,#view .ce-tag,#view .ce-k,#view .hm-eyebrow,#view .pill,#view .acc-lab,#view .au-k,#view .rail-now,.date-toggle{font-size:12px !important}
}
@media (max-width:760px) and (prefers-reduced-motion:reduce){.modal,.zc-box{animation:none}}
/* Holopad on phones: Latest Signals first, the map folded behind a bar (Oct 28, 2026). */
.hm-fold{display:none}
@media (max-width:760px){
  .hm-grid #hmSig{order:-1;height:220px}
  .hm-fold{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:48px;padding:0 18px;
    background:var(--panel,#0d1426);border:1px solid var(--panel-border);border-radius:18px;color:var(--star, var(--gold));
    font:inherit;font-size:12px;letter-spacing:.24em;text-transform:uppercase;cursor:var(--cur-hot)}
  .hm-fold .hm-fold-i{font-size:16px;letter-spacing:0;color:var(--muted)}
  .hm-grid:not(.map-open) #hmBox{display:none}
}
/* Bottom tabs on phones (Oct 28, 2026): Holopad, Scans, Reports, Me and the full menu. */
.tab-bar{display:none}
@media (max-width:760px){
  body.has-tabs .side-rail{display:none !important}
  .tab-bar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;
    padding:6px 6px calc(6px + env(safe-area-inset-bottom, 0px));
    background:rgba(8,13,27,.96);border-top:1px solid var(--line);backdrop-filter:blur(8px)}
  .tab-bar a,.tab-bar button{flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:50px;
    border:0;background:none;border-radius:12px;color:var(--muted);text-decoration:none;font:inherit;font-size:11.5px;letter-spacing:.04em;cursor:var(--cur-hot)}
  .tab-bar img{width:24px;height:24px}
  .tab-bar .on{color:var(--star, var(--gold));background:var(--star-soft, rgba(232,196,122,.10))}
  body.has-tabs main{padding-bottom:20px}
  body.has-tabs .nr-foot{padding-bottom:calc(84px + env(safe-area-inset-bottom, 0px))}
  body.has-tabs .to-top{bottom:calc(76px + env(safe-area-inset-bottom, 0px))}
  body.has-tabs #toast{bottom:calc(136px + env(safe-area-inset-bottom, 0px))}
  body.has-tabs .layout.side-open .sidebar{bottom:calc(76px + env(safe-area-inset-bottom, 0px))}
  body.has-tabs .side-veil{bottom:0}
}
/* Find a page and pinned pages at the top of the menu (Oct 28, 2026). */
.side-nav[hidden],.side-found[hidden],.side-pins[hidden]{display:none}
.side-find{padding:10px 4px 2px}
.side-find input,.nrail-tray input[type=search]{width:100%;box-sizing:border-box;padding:8px 12px;border-radius:9px;border:1px solid var(--line);background:#0a1122;color:var(--text);font:inherit;font-size:13.5px;outline:none}
.side-find input:focus,.nrail-tray input[type=search]:focus{border-color:var(--star-line, var(--gold-line))}
.side-find input::placeholder{color:var(--faint)}
.side-found{display:flex;flex-direction:column;padding:6px 0}
.side-found a{padding:8px 10px;border-radius:8px;color:var(--muted);text-decoration:none;font-size:14px}
.side-found a:first-child{background:rgba(232,196,122,.06);color:var(--text)}
.side-none{padding:8px 10px;color:var(--faint);font-size:13px}
.side-pins{display:flex;flex-direction:column;border-top:1px solid rgba(140,170,230,.07);padding-bottom:4px}
.side-pins-t{font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--star, var(--gold));opacity:.85;padding:11px 10px 5px}
.side-pins a{padding-left:16px}
.pin-btn{margin-left:10px;vertical-align:middle;border:0;background:none;padding:2px 4px;font-size:18px;line-height:1;color:var(--faint);cursor:var(--cur-hot)}
.pin-btn.on{color:var(--star, var(--gold))}
.pin-btn:hover{color:var(--star, var(--gold))}
@media (max-width:760px){.pin-btn{font-size:22px;padding:4px 8px}}
/* Phones: the page title stays in view at the top while scrolling (Oct 28, 2026). */
.sticky-title{display:none}
@media (max-width:760px){
  .sticky-title{display:block;position:fixed;left:0;right:0;top:0;z-index:45;
    padding:calc(10px + env(safe-area-inset-top, 0px)) 18px 10px;border:0;border-bottom:1px solid var(--line);
    background:rgba(8,13,27,.94);backdrop-filter:blur(8px);color:var(--text);font:inherit;font-size:15px;font-weight:600;text-align:left;
    transform:translateY(-110%);transition:transform .2s;cursor:var(--cur-hot)}
  .sticky-title.show{transform:none}
}
/* No signal: slim bar at the top while reading saved pages offline */
.signal-bar{position:fixed;left:50%;top:calc(10px + env(safe-area-inset-top, 0px));transform:translate(-50%,-140%);z-index:210;
  display:flex;align-items:center;gap:12px;background:rgba(9,14,28,.96);border:1px solid var(--gold-line);color:var(--muted);
  padding:7px 14px;border-radius:999px;font-size:13px;white-space:nowrap;box-shadow:0 8px 24px rgba(0,0,0,.5);transition:transform .3s}
.signal-bar.show{transform:translate(-50%,0)}
.signal-bar::before{content:'';width:7px;height:7px;border-radius:50%;background:#d9534f;box-shadow:0 0 6px #d9534f}
.signal-bar .linkbtn{color:var(--gold);font-size:13px;padding:0}
body.no-signal #view{padding-top:44px}
body.no-signal .sticky-title{top:calc(46px + env(safe-area-inset-top, 0px))}
/* Touch screens: enlarge a chart to zoom into it */
.chart-wrap{position:relative;display:block}
.chart-zoom{position:absolute;top:4px;right:4px;width:30px;height:30px;padding:0;border-radius:8px;border:1px solid var(--gold-line);
  background:rgba(9,14,28,.82);color:var(--gold);font-size:16px;line-height:1;display:flex;align-items:center;justify-content:center;opacity:.85}
.modal-overlay.chart-view{padding:0;align-items:stretch;background:rgba(3,5,10,.96)}
.modal-overlay.chart-view .modal{max-width:none;width:100%;height:100%;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;position:relative;overflow:hidden;animation:none}
.cv-stage{position:absolute;inset:0;overflow:hidden;touch-action:none;display:flex;align-items:center}
.cv-pan{width:100%;padding:0 10px;box-sizing:border-box;transform-origin:0 0}
.cv-close{position:absolute;z-index:2;top:calc(12px + env(safe-area-inset-top, 0px));right:14px;width:40px;height:40px;border-radius:50%;
  border:1px solid var(--gold-line);background:rgba(9,14,28,.9);color:var(--gold);font-size:22px;line-height:1;padding:0}

/* Space Combat tables: tighter titles, slim gold sideways scrollbar */
#scOut .tbl th{letter-spacing:.08em;white-space:nowrap}
#scOut .tbl th span[title]{cursor:help}
@supports not selector(::-webkit-scrollbar){#scOut .tbl-wrap{scrollbar-width:thin;scrollbar-color:rgba(232,196,122,.55) transparent}}
#scOut .tbl-wrap::-webkit-scrollbar{height:6px}
#scOut .tbl-wrap::-webkit-scrollbar-button{display:none;width:0;height:0}
#scOut .tbl-wrap::-webkit-scrollbar-track{background:rgba(140,170,230,.06);border-radius:999px}
#scOut .tbl-wrap::-webkit-scrollbar-thumb{background:rgba(232,196,122,.55);border-radius:999px}
#scOut .tbl-wrap::-webkit-scrollbar-thumb:hover{background:rgba(232,196,122,.85)}
/* ---------- Menu styles to compare (Oct 29, 2026), picked under Terminal Options ---------- */
.sc-opt{border:1px solid var(--line);background:none;color:var(--muted);font:inherit;font-size:12px;padding:4px 11px;border-radius:999px;cursor:var(--cur-hot)}
.sc-opt.on{border-color:var(--star-line, var(--gold-line));background:var(--star-soft, rgba(232,196,122,.12));color:var(--star, var(--gold))}
.sg-ic{display:none}
.nrailbox,.nrail-greet{display:none}
/* Full menu: an icon on each group, one group open at a time, pages drop down under it */
body.nav-drop .sg-ic{display:inline-flex;flex:none;width:22px;justify-content:center;color:var(--muted)}
body.nav-drop .sg-ic svg{width:19px;height:19px}
body.nav-drop button.side-group{gap:12px;padding:10px 10px;border-radius:10px;font-size:11px;letter-spacing:.2em;color:var(--muted);opacity:1}
body.nav-drop button.side-group:hover{background:rgba(232,196,122,.06);color:var(--text)}
body.nav-drop .side-sec.open button.side-group{background:var(--star-soft, rgba(232,196,122,.12));color:var(--star, var(--gold))}
body.nav-drop .side-sec.open .sg-ic{color:var(--star, var(--gold))}
body.nav-drop .side-group::after{display:none}
body.nav-drop .side-sec{border-top:0}
body.nav-drop .side-sec-body{display:flex;max-height:0;overflow:hidden;padding-bottom:0;transition:max-height .3s cubic-bezier(.2,.8,.2,1)}
body.nav-drop .side-sec.open .side-sec-body{max-height:420px;padding:4px 0 6px}
body.nav-drop .side-sec-body a{padding-left:44px;font-size:13.5px}
body.nav-drop #sideNav > a[data-route="dashboard"]{gap:12px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;padding:10px}
body.nav-drop #sideNav > a[data-route="dashboard"].active .sg-ic{color:var(--star, var(--gold))}
@media (prefers-reduced-motion:reduce){body.nav-drop .side-sec-body{transition:none}}
/* Rail: slim icons, a group's pages slide out from under the rail */
@media (min-width:761px){
  body.nav-rail .layout{flex-direction:row;align-items:flex-start;padding:14px 20px 20px}
  body.nav-rail .sidebar,body.nav-rail .side-rail,body.nav-rail .layout.side-hidden .side-rail,body.nav-rail .side-veil{display:none !important}
  body.nav-rail .nrailbox{display:block;flex:none;position:sticky;top:48px;margin:34px 22px 0 0;z-index:40}
  body.nav-rail .content main{padding-top:34px}
  body.nav-rail .nrail-greet{display:block;position:relative;align-self:flex-start;max-width:560px;margin:34px 0 18px;padding:9px 14px;font-size:13px;font-style:italic;color:var(--text);
    background:linear-gradient(180deg,#0d1628,#0a101f);border:1px solid var(--line);border-radius:10px;min-height:36px}
  body.nav-rail .nrail-greet::before{content:'';position:absolute;left:-6px;top:16px;width:10px;height:10px;transform:rotate(45deg);
    background:#0d1628;border-left:1px solid var(--line);border-bottom:1px solid var(--line)}
}
.nrail{position:relative;z-index:2;width:70px;box-sizing:border-box;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,#0c1528,#0b1226);
  padding:12px 0;display:flex;flex-direction:column;align-items:center;gap:3px;box-shadow:6px 0 22px rgba(0,0,0,.4);max-height:calc(100vh - 64px)}
.nrail-star{display:block;margin-bottom:8px}
.nrail-star img{width:42px;height:42px;display:block}
.nrail-star:hover img{filter:drop-shadow(0 0 6px var(--star, var(--gold)))}
.nrb{position:relative;width:58px;padding:8px 0 6px;border-radius:10px;border:0;background:none;color:var(--muted);font-family:inherit;text-decoration:none;
  display:flex;flex-direction:column;align-items:center;gap:3px;font-size:9px;letter-spacing:.12em;text-transform:uppercase;cursor:var(--cur-hot)}
.nrb:hover{color:var(--text);background:rgba(232,196,122,.06)}
.nrb.here{color:var(--star, var(--gold))}
.nrb.open{background:var(--star-soft, rgba(232,196,122,.12));color:var(--star, var(--gold))}
.nrb:focus-visible{outline:1px solid var(--star, var(--gold));outline-offset:1px}
.nrb .side-dot{position:absolute;top:7px;right:14px}
.nrail-sp{flex:1;min-height:28px;display:flex;align-items:center;justify-content:center}
.nrail-sp::after{width:44px;margin:0}
.nrail-tray{position:absolute;z-index:1;left:calc(100% - 14px);width:250px;box-sizing:border-box;max-height:calc(100vh - 64px);overflow-y:auto;
  border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,#0e182e,#0b1226);
  box-shadow:0 0 40px rgba(0,0,0,.55);padding:14px 12px 14px 26px;transform:translateX(-36px);opacity:0;
  transition:transform .28s cubic-bezier(.2,.8,.2,1),opacity .18s;scrollbar-width:none}
.nrail-tray.open{transform:none;opacity:1}
@media (prefers-reduced-motion:reduce){.nrail-tray{transition:none}}
.nrail-t{font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--star, var(--gold));padding:2px 10px 8px}
.nrail-list{display:flex;flex-direction:column}
.nrail-list a{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:9px;color:var(--muted);text-decoration:none;font-size:14px}
.nrail-list a:hover{background:rgba(232,196,122,.06);color:var(--text)}
.nrail-list a.active{background:var(--star-soft, rgba(232,196,122,.12));color:var(--star, var(--gold));font-weight:600}
.nrail-tray input[type=search]{width:100%;box-sizing:border-box;margin:0 0 8px;font-size:13.5px;padding:8px 12px}
.nrail-tray .side-none{padding:6px 10px;font-size:13px;color:var(--faint)}
.nrail-who{display:flex;flex-direction:column;align-items:flex-start;padding:2px 10px 10px;font-size:13.5px;font-weight:700;color:var(--text);text-align:left}
.nrail-who span{font-size:12.5px;font-weight:400;color:var(--muted)}
.nrail-tray .side-colors{margin:0}
.nrail-tray .side-colors summary{display:none}

/* ===== Zevra's small touches (Oct 29, 2026) ===== */
/* Outpost heartbeat: a dot beside her name that breathes slowly, and glows gold when something waits */
.bubble-who::after{content:'';display:inline-block;width:5px;height:5px;border-radius:50%;margin-left:7px;vertical-align:2px;
  background:var(--star, var(--gold));opacity:.35;animation:zBreathe 4.5s ease-in-out infinite}
body.z-pulse .bubble-who::after,.z-pulse-early .bubble-who::after{background:var(--gold);opacity:1;
  box-shadow:0 0 4px 1px rgba(232,196,122,.8),0 0 10px 3px rgba(232,196,122,.35);animation:zGlow 1.8s ease-in-out infinite}
@keyframes zBreathe{0%,100%{opacity:.2}50%{opacity:.55}}
@keyframes zGlow{0%,100%{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.25)}}
@media (prefers-reduced-motion:reduce){.bubble-who::after{animation:none}}
.side-bubble{cursor:default;-webkit-tap-highlight-color:transparent;user-select:none}
/* Droid Status, her secret report */
.ds-box .ds-row{margin-top:10px}
.ds-box .ss-k{display:block;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.ds-box .ds-row b{display:block;margin-top:2px;font-size:14.5px;color:var(--text);font-weight:600}
/* Terminal Options: callsign field */
.sc-input{width:100%;font:inherit;font-size:13px;color:var(--text);background:#0b1222;border:1px solid var(--line);border-radius:8px;padding:5px 9px}
.sc-input:focus{outline:none;border-color:var(--star, var(--gold))}
.sc-row + .sc-row{margin-top:6px}
/* the wingman only flies with a mouse */
@media (pointer:coarse){.wing-only{display:none!important}}
/* login: Zevra's welcome back for the last person on this device */
.cover-welcome{margin:-24px 0 24px;font-size:14px;font-style:italic;letter-spacing:.04em;color:rgba(232,196,122,.85);text-align:center}
/* Zevra's greeting as a comm line along the bottom while the rail is in use */
@media (min-width:761px){
  body.nav-rail .nrail-greet{position:sticky;bottom:14px;z-index:20;align-self:stretch;max-width:none;margin:22px 0 0;display:flex;align-items:center;gap:12px;
    padding:10px 18px;border-radius:999px;background:rgba(10,16,31,.92);backdrop-filter:blur(6px);box-shadow:0 10px 30px rgba(0,0,0,.45)}
  body.nav-rail .nrail-greet::before{display:none}
  body.nav-rail .nrail-greet .bubble-who{display:inline;margin:0}
  body.nav-rail .nrail-greet .greet-sep{color:var(--star, var(--gold));opacity:.55;font-style:normal;font-size:11px;margin:0 -4px}
}
.nrail-greet .greet-sep{display:none}
@media (min-width:761px){ body.nav-rail .nrail-greet .greet-sep{display:inline} }
/* Page quote: a saber ignites under it and the words draw in behind it */
.quote.q-saber{position:relative;animation:qSaberText 1s ease-out .55s both}
.quote.q-saber::after{content:'';position:absolute;left:0;bottom:-5px;height:2px;width:100%;border-radius:2px;background:var(--saber-core, #e6f4ff);
  box-shadow:0 0 4px var(--saber, #2f9bff),0 0 10px var(--saber, #2f9bff),0 0 18px var(--saber, #2f9bff);transform-origin:0 50%;animation:qSaberLine 2.4s cubic-bezier(.25,.7,.25,1) both}
@keyframes qSaberLine{0%{transform:scaleX(0);opacity:1}35%{transform:scaleX(1);opacity:1}100%{transform:scaleX(1);opacity:0}}
@keyframes qSaberText{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
/* Quote a touch brighter, Zevra's lines dimmer, and her lines arrive with the saber too */
.section-sub.quote{color:#b3bdd4}
.side-bubble,body.nav-rail .nrail-greet{color:var(--muted)}
#sideGreet,#railGreetText{position:relative;display:inline-block}
.g-saber{animation:qSaberText .8s ease-out .35s both}
.g-saber::after{content:'';position:absolute;left:0;bottom:-3px;height:1.5px;width:100%;border-radius:2px;background:var(--star, var(--gold));
  box-shadow:0 0 5px var(--star, var(--gold)),0 0 12px var(--star, var(--gold));transform-origin:0 50%;animation:qSaberLine 2s cubic-bezier(.25,.7,.25,1) both}
@media (prefers-reduced-motion:reduce){.g-saber,.g-saber::after,.quote.q-saber,.quote.q-saber::after{animation:none}.g-saber::after,.quote.q-saber::after{display:none}}
/* ===== Steel: the look of the crest doors (Oct 29, 2026), now the look of the whole outpost. Panels of door metal lit
   from above, gold kept for titles, the door crest faint behind every page. Four steel schemes are the backgrounds
   (Blue Steel by default); the painted skies of Hoth, Dantooine and Yavin keep their own ground under the same panels. ===== */
:root.steel{
  --st-g0:#0f1a29;--st-g1:#09111c;--st-g2:#040810;--st-light:rgba(110,160,215,.22);--st-side:rgba(40,110,190,.16);
  --st-p0:rgba(34,50,72,.985);--st-p1:rgba(21,33,49,.985);--st-p2:rgba(13,21,33,.99);
  --st-f0:#1b2a3e;--st-f1:#122031;--st-f2:#0b1522;--st-b0:#253a55;--st-b1:#16253a;
  --st-edge:#2a3d57;--st-border:rgba(150,190,240,.16);--st-well:#060b14;--st-hi:rgba(215,230,250,.09);
  --cm-ice:#cfe6ff;--cm-glow:rgba(120,185,255,.55);
  --panel:linear-gradient(180deg,var(--st-p0) 0%,var(--st-p1) 34%,var(--st-p2) 100%);
  --panel-solid:var(--st-f1);--line:var(--st-edge);--panel-border:var(--st-border);
  --muted:#8e9aae;--faint:#5f6b7e;
}
:root.steel[data-bg="gunmetal"]{--st-g0:#111821;--st-g1:#0a0f16;--st-g2:#05080e;--st-light:rgba(130,160,195,.20);--st-side:rgba(50,100,160,.13);
  --st-p0:rgba(36,46,58,.985);--st-p1:rgba(22,29,38,.985);--st-p2:rgba(14,19,26,.99);
  --st-f0:#1b232d;--st-f1:#121820;--st-f2:#0c1117;--st-b0:#26303c;--st-b1:#171e27;--st-edge:#2a3542;--st-border:rgba(170,195,225,.13);--st-well:#080c12}
:root.steel[data-bg="navy"]{--st-g0:#0c1730;--st-g1:#070f22;--st-g2:#03060f;--st-light:rgba(90,140,230,.22);--st-side:rgba(40,90,200,.18);
  --st-p0:rgba(26,42,78,.985);--st-p1:rgba(16,28,56,.985);--st-p2:rgba(10,18,38,.99);
  --st-f0:#16264a;--st-f1:#0f1b38;--st-f2:#091228;--st-b0:#1f3566;--st-b1:#132348;--st-edge:#243a68;--st-border:rgba(130,170,255,.18);--st-well:#050a18}
:root.steel[data-bg="ice"]{--st-g0:#14202d;--st-g1:#0c141e;--st-g2:#060a10;--st-light:rgba(170,210,250,.24);--st-side:rgba(110,180,255,.14);
  --st-p0:rgba(46,62,82,.985);--st-p1:rgba(29,41,57,.985);--st-p2:rgba(18,27,39,.99);
  --st-f0:#243347;--st-f1:#192536;--st-f2:#101924;--st-b0:#33475f;--st-b1:#1f2d40;--st-edge:#3a5068;--st-border:rgba(190,225,255,.22);--st-well:#09111b;--st-hi:rgba(207,230,255,.22)}
:root.steel body{
  background:
    radial-gradient(1000px 460px at 50% -10%, var(--st-light), transparent 70%),
    radial-gradient(520px 700px at -6% 55%, var(--st-side), transparent 70%),
    radial-gradient(520px 700px at 106% 55%, var(--st-side), transparent 70%),
    linear-gradient(180deg,var(--st-g0) 0%,var(--st-g1) 42%,var(--st-g2) 100%) fixed;
  background-color:var(--st-g2);
}
:root.steel .layout{position:relative;z-index:1}
/* panels: brushed door metal, a light strip along the top edge */
:root.steel .card,:root.steel .al,:root.steel .member-row,:root.steel .movement-group,:root.steel .hm-side{
  background:
    radial-gradient(ellipse 70% 120px at 50% 0, rgba(200,220,245,.07), transparent 100%),
    repeating-linear-gradient(90deg, rgba(255,255,255,.007) 0 1px, transparent 1px 3px),
    var(--panel);
  border:1px solid var(--panel-border);border-radius:12px;
  box-shadow:inset 0 1px 0 var(--st-hi),inset 0 -1px 0 rgba(0,0,0,.45),0 14px 34px rgba(0,0,0,.5);
}
/* the map is a viewscreen set into the console */
:root.steel .hm-box{border-radius:10px;border:1px solid var(--st-edge);
  box-shadow:0 0 0 4px var(--st-f2),0 0 0 5px var(--st-border),inset 0 0 40px rgba(0,0,0,.6)}
/* menus: the door frame */
:root.steel .sidebar,:root.steel .nrail{
  background:linear-gradient(180deg,var(--st-f0) 0%,var(--st-f1) 40%,var(--st-f2) 100%);
  border:1px solid var(--st-edge);
  box-shadow:inset 0 1px 0 rgba(215,230,250,.10),inset 1px 0 0 rgba(215,230,250,.04),6px 0 26px rgba(0,0,0,.55)}
:root.steel .nrail-tray{  /* the rail's pop-out tray, same brushed steel as the rail it slides from */
  background:
    radial-gradient(ellipse 80% 90px at 50% 0, rgba(200,220,245,.07), transparent 100%),
    repeating-linear-gradient(90deg, rgba(255,255,255,.007) 0 1px, transparent 1px 3px),
    linear-gradient(180deg,var(--st-f0) 0%,var(--st-f1) 40%,var(--st-f2) 100%);
  border:1px solid var(--st-edge);
  box-shadow:inset 0 1px 0 var(--st-hi),0 0 40px rgba(0,0,0,.55)}
:root.steel .nrail-t{color:#e8c47a}
:root.steel .nrail-list a:hover{background:rgba(215,230,250,.06)}
:root.steel .side-find input,:root.steel .nrail-tray input[type=search]{background:var(--st-well);border-color:var(--st-edge)}
:root.steel .side-nav a.active,:root.steel .nrb.here{box-shadow:inset 0 0 0 1px var(--star-line, var(--gold-line)),0 0 14px var(--star-soft, rgba(232,196,122,.12))}
:root.steel .side-bubble,:root.steel body.nav-rail .nrail-greet{
  background:linear-gradient(180deg,var(--st-f0),var(--st-f2));border-color:var(--st-edge);box-shadow:inset 0 1px 0 rgba(215,230,250,.08),0 10px 28px rgba(0,0,0,.5)}
:root.steel .side-bubble::before{background:var(--st-f0);border-color:var(--st-edge)}
/* buttons: raised steel; fields: recessed */
:root.steel .btn:not(.btn-gold):not(.btn-danger):not(.btn-violet){
  background:linear-gradient(180deg,var(--st-b0),var(--st-b1));border-color:var(--st-border);box-shadow:inset 0 1px 0 rgba(215,230,250,.10);border-radius:9px}
:root.steel .btn-gold{border-radius:9px}
:root.steel .btn:not(.btn-gold):not(.btn-danger):not(.btn-violet):hover{border-color:rgba(207,230,255,.45);box-shadow:inset 0 1px 0 rgba(215,230,250,.12),0 0 14px rgba(120,185,255,.18)}
:root.steel .search-input,:root.steel .text-input,:root.steel .text-area,:root.steel select.chip-select,:root.steel .sc-input,:root.steel #navFind{
  background:var(--st-well);border-color:var(--st-border);box-shadow:inset 0 2px 5px rgba(0,0,0,.55);border-radius:9px}
:root.steel .search-input:focus,:root.steel .text-input:focus,:root.steel .text-area:focus{border-color:rgba(207,230,255,.5);box-shadow:inset 0 2px 5px rgba(0,0,0,.55),0 0 0 3px rgba(120,185,255,.12)}
/* selects and type-ahead fields keep their chevron on the steel well (Oct 31, 2026) */
:root.steel select.chip-select,:root.steel .text-input[list],:root.steel .text-input[data-zlist]{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%23e8c47a' stroke-width='1.6' stroke-linecap='round'/></svg>");
  background-repeat:no-repeat;background-position:right 16px center;padding-right:40px}
:root.steel select.chip-select option{background:var(--st-f1,#14213a);color:var(--text)}
/* restricted fields: the normal steel well, edged like a Mace Windu saber blade — a bright violet core line
   with a soft bloom that hums slowly (Oct 31, 2026). Violet lives only on the edge, never inside. */
@keyframes saberHum{0%,100%{box-shadow:inset 0 2px 5px rgba(0,0,0,.55),inset 0 0 0 1px rgba(170,145,235,.2),0 0 0 1px #5f3bb0,0 0 3px 0 rgba(120,80,220,.32),0 0 8px 1px rgba(85,45,180,.16)}
  50%{box-shadow:inset 0 2px 5px rgba(0,0,0,.55),inset 0 0 0 1px rgba(170,145,235,.26),0 0 0 1px #6c45c4,0 0 4px 0 rgba(130,90,230,.4),0 0 11px 1px rgba(90,50,190,.22)}}
:root.steel .text-input.classified-field,:root.steel .text-area.classified-field,:root.steel select.chip-select.classified-field{
  border-color:#5f3bb0;animation:saberHum 4.5s ease-in-out infinite}
:root.steel .text-input.classified-field:focus,:root.steel .text-area.classified-field:focus{
  border-color:#8460d8;animation:none;box-shadow:inset 0 2px 5px rgba(0,0,0,.55),inset 0 0 0 1px rgba(215,195,255,.45),0 0 0 1px #7a54cc,0 0 5px 1px rgba(140,100,235,.42),0 0 12px rgba(95,55,200,.26)}
@media (prefers-reduced-motion:reduce){:root.steel .text-input.classified-field,:root.steel .text-area.classified-field,:root.steel select.chip-select.classified-field{animation:none}}
:root.steel .detail-item.classified-item{border-left:2px solid #6c45c4;box-shadow:-3px 0 7px -2px rgba(100,65,200,.28)}
:root.steel .pill.violet{background:var(--violet-bg);color:#9d86dc;border-color:#5f3bb0;box-shadow:0 0 4px rgba(100,65,200,.18)}
/* small labels glow ice-blue, like the star lights on the doors */
:root.steel .hm-eyebrow,:root.steel .sub-title{color:#e8c47a}  /* every card heading is gold, like the line under the page title */
:root.steel .tbl tbody tr.clickable:hover{background:rgba(160,195,235,.06)}
:root.steel .modal,:root.steel .zc-box,:root.steel #toast{
  background:linear-gradient(180deg,var(--st-f0) 0%,var(--st-f1) 45%,var(--st-f2) 100%);border-radius:12px;
  box-shadow:inset 0 1px 0 rgba(215,230,250,.10),0 24px 60px rgba(0,0,0,.65)}
:root.steel .tab-bar{background:linear-gradient(180deg,var(--st-f0),var(--st-f2));border-top-color:var(--st-edge);box-shadow:inset 0 1px 0 rgba(215,230,250,.08)}
:root.steel .holo-rail{border-radius:12px;background:linear-gradient(180deg,var(--st-p0),var(--st-p2));border-color:var(--panel-border);box-shadow:inset 0 1px 0 rgba(215,230,250,.08)}
:root.steel .sticky-title,:root.steel .to-top{background:var(--st-f1)}
:root.steel .z-switch{background:var(--st-well)}
:root.steel .side-toggle{background:linear-gradient(180deg,var(--st-b0),var(--st-b1));border-color:var(--st-border)}
/* page titles: thin Josefin letters in the gold-to-white fade, gold line below */
:root.steel .section-title::after{content:'';display:block;height:1px;width:min(340px,60%);margin-top:8px;
  background:linear-gradient(90deg,rgba(232,196,122,.65),rgba(232,196,122,0))}
:root.steel .section-head .section-title{font-family:'Josefin Sans',var(--font);font-weight:200;font-size:38px;letter-spacing:.12em;line-height:1.15;
  background:linear-gradient(to top,#e6c47e 0%,#efd9a8 25%,#f4ead2 45%,#f2f5fc 70%);-webkit-background-clip:text;background-clip:text;color:transparent}
:root.steel .section-head .section-title::after{margin-top:12px;width:min(380px,70%);background:linear-gradient(90deg,rgba(232,196,122,.8),rgba(232,196,122,0))}
:root.steel .section-head .section-title .pin-btn{-webkit-text-fill-color:currentColor;letter-spacing:0;font-family:var(--font);vertical-align:middle}
@media (max-width:760px){:root.steel .section-head .section-title{font-size:28px;letter-spacing:.1em}}
/* the coloured side bar as a polished metal rod in the accent colour, set into the panel */
:root.steel .hl-card,:root.steel .dash-card,:root.steel #view .card:not(.hl-card):not(.dash-card):not(.no-bar):not(.fi):not(.hm-side):not(article):not(.card .card):not(:has(table,.tbl-wrap,details,.no-bar)):not(:has(> p.muted:only-child)){border-left:1px solid var(--panel-border)}
:root.steel .hl-card::before,:root.steel .dash-card::before,:root.steel .holo-rail::before,:root.steel #view .al::before,:root.steel #view .card:not(.hl-card):not(.dash-card):not(.no-bar):not(.fi):not(.hm-side):not(article):not(.card .card):not(:has(table,.tbl-wrap,details,.no-bar)):not(:has(> p.muted:only-child))::before{content:'';position:absolute;left:8px;top:14px;bottom:14px;width:5px;border-radius:3px;pointer-events:none;
  background:
    linear-gradient(90deg,rgba(0,0,0,.45) 0%,rgba(0,0,0,0) 35%,rgba(255,255,255,.55) 55%,rgba(0,0,0,0) 75%,rgba(0,0,0,.4) 100%),
    linear-gradient(180deg,color-mix(in srgb,var(--accent) 45%,#fff) 0%,var(--accent) 20%,color-mix(in srgb,var(--accent) 55%,#000) 50%,var(--accent) 78%,color-mix(in srgb,var(--accent) 50%,#fff) 100%);
  box-shadow:0 0 0 1px rgba(0,0,0,.5),0 0 12px var(--accent-faint)}
:root.steel .hl-card::after,:root.steel .dash-card::after{left:8px;top:14px;bottom:14px;width:5px;border-radius:3px}
/* the six months of sensor logs and the Holopad alerts get a rod too, so Trim shows on the first page */
:root.steel .holo-rail,:root.steel #view .al{position:relative;padding-left:30px}
:root.steel #view .al::before{top:11px;bottom:11px}
/* Kyber Pink (Caisava's signature colour, Oct 29, 2026) */
:root[data-accent="pink"]{--accent:#ff6fae;--accent-faint:rgba(255,111,174,.15);--accent-glow:rgba(255,111,174,.65);--accent-line:rgba(255,111,174,.4);--accent-soft:rgba(255,111,174,.12)}
/* the footer signs off like the login header: New Republic Command in the gold fade between gold hairlines, same strength */
.nr-sig{display:inline-flex;align-items:center;gap:16px;font-family:'Josefin Sans',var(--font);font-weight:300;font-size:14px;letter-spacing:.46em;white-space:nowrap;margin-top:16px;filter:drop-shadow(0 0 10px rgba(232,196,122,.35));
  background:linear-gradient(to top,#e2b866 0%,#efd29a 50%,#f6ecd6 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.nr-sig .nr-dash{display:block;flex:none;width:64px;height:1px;background:linear-gradient(90deg,transparent,#e8c47a)}
.nr-sig .nr-dash.r{background:linear-gradient(270deg,transparent,#e8c47a)}
.nr-sig .nr-word{margin-right:-.46em}
@media (max-width:420px){.nr-sig{font-size:10px;letter-spacing:.28em;gap:9px}.nr-sig .nr-word{margin-right:-.28em}.nr-sig .nr-dash{width:20px}}
/* phones: room between the rod and the words */
@media (max-width:760px){:root.steel .hl-card,:root.steel .dash-card,:root.steel #view .card:not(.hl-card):not(.dash-card):not(.no-bar):not(.fi):not(.hm-side):not(article):not(.card .card):not(:has(table,.tbl-wrap,details,.no-bar)):not(:has(> p.muted:only-child)){padding-left:24px}}
/* the greeting in the full menu changes quietly; only the comm line at the foot of the page keeps the saber */
#sideGreet.g-saber::after{display:none}
/* Every scrollbar, on every page and every list, is a slim polished-steel rod in a recessed track; it turns gold under the pointer.
   Menus that hide their scrollbar keep it hidden. */
:root.steel ::-webkit-scrollbar{width:10px;height:10px}
:root.steel ::-webkit-scrollbar-button{display:none;width:0;height:0}
:root.steel ::-webkit-scrollbar-corner{background:transparent}
:root.steel ::-webkit-scrollbar-track{background:rgba(4,8,14,.55);border-radius:999px;box-shadow:inset 0 1px 3px rgba(0,0,0,.6)}
:root.steel ::-webkit-scrollbar-thumb{border-radius:999px;border:2px solid transparent;background-clip:padding-box;
  background-image:linear-gradient(90deg,#4e5d70 0%,#c7d4e4 50%,#4e5d70 100%)}
:root.steel ::-webkit-scrollbar-thumb:horizontal{background-image:linear-gradient(180deg,#4e5d70 0%,#c7d4e4 50%,#4e5d70 100%)}
:root.steel ::-webkit-scrollbar-thumb:hover{background-image:linear-gradient(90deg,#9c7a3c 0%,#f2d9a0 50%,#9c7a3c 100%)}
:root.steel ::-webkit-scrollbar-thumb:horizontal:hover{background-image:linear-gradient(180deg,#9c7a3c 0%,#f2d9a0 50%,#9c7a3c 100%)}
:root.steel .sidebar::-webkit-scrollbar,:root.steel .nrail-tray::-webkit-scrollbar{display:none;width:0;height:0}
@supports not selector(::-webkit-scrollbar){:root.steel *{scrollbar-color:#8c9bb0 rgba(4,8,14,.55)}}

/* Day By Day tables (My XP, Force XP): titles like every other table, header stays put while scrolling */
.day-th{vertical-align:bottom;padding:6px 8px 8px;line-height:1.3;position:sticky;top:0;z-index:1;
  font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:500;
  background:var(--panel-solid,#0a1124);background:color-mix(in srgb,var(--st-p0,#0a1124) 55%,var(--st-p1,#0a1124));border-bottom:1px solid rgba(232,196,122,.16)}

/* Watch list: one compact line per watch, ministry filter row above */
.section-head .wl-mins{margin-top:12px}
.wl-n{opacity:.6;font-size:11px;margin-left:2px}
.wl-list{padding:4px 14px}
.wl-row{display:grid;grid-template-columns:minmax(160px,1.5fr) minmax(90px,.8fr) minmax(150px,1fr) 80px auto;gap:4px 14px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.wl-row:last-child{border-bottom:0}
.wl-row.expired{box-shadow:inset 3px 0 0 var(--gold);padding-left:9px;margin-left:-12px}
.wl-meta{display:contents}
.wl-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wl-name a{color:var(--gold);text-decoration:none}
.wl-nbtn{background:none;border:0;padding:0 0 0 4px;color:var(--muted);font:inherit;font-size:11px;font-weight:400;cursor:pointer;text-decoration:underline dotted}
.wl-nbtn.on{color:var(--gold)}
.wl-dept,.wl-ends{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wl-left{white-space:nowrap;text-align:right}
.wl-left.gold{color:var(--gold)}
.wl-acts{display:flex;gap:6px;align-items:center;justify-content:flex-end}
.wl-acts .text-input{width:46px;padding:4px 6px}
.wl-acts .btn-sm{padding:4px 10px;font-size:12px}
.wl-notes{grid-column:1/-1;font-size:12.5px;padding:2px 0 4px}
.wl-note,.wl-hist{white-space:pre-line}
.wl-hist{font-size:12px;margin-top:2px}
@media(max-width:760px){
  .section-head .wl-mins{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-right:-16px;padding-right:16px}
  .wl-mins .stab{flex:0 0 auto}
  .wl-list{padding:2px 12px}
  .wl-row{grid-template-columns:1fr auto;gap:2px 10px;font-size:13px}
  .wl-row.expired{margin-left:-10px;padding-left:7px}
  .wl-meta{display:flex;flex-direction:column;grid-column:1;font-size:12px;min-width:0}
  .wl-left{grid-row:1;grid-column:2}
  .wl-acts{grid-column:2;grid-row:2}
}

/* steel dropdown lists: selects, type-ahead fields and name suggestions (Oct 31, 2026) */
.zdd{position:fixed;z-index:1200;box-sizing:border-box;overflow-y:auto;overflow-x:hidden;padding:5px;
  background:linear-gradient(180deg,var(--st-f0,#14213a) 0%,var(--st-f1,#101a2e) 45%,var(--st-f2,#0c1424) 100%);
  border:1px solid var(--st-edge,rgba(150,190,240,.22));border-radius:10px;color:var(--text);
  box-shadow:inset 0 1px 0 rgba(215,230,250,.10),0 14px 34px rgba(0,0,0,.6)}
.zdd-i{padding:7px 12px;border-radius:7px;font-size:14px;line-height:1.35;cursor:var(--cur-hot);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zdd-i:hover{background:rgba(215,230,250,.06)}
.zdd-i.sel{color:#e8c47a}
.zdd-i.on{background:rgba(232,196,122,.14);color:#f3dca6;box-shadow:inset 0 0 0 1px rgba(232,196,122,.28)}
.zdd-note{padding:8px 12px;font-size:13px;color:var(--muted);font-style:italic}
select.chip-select.zdd-open,.text-input.zdd-open{border-color:rgba(232,196,122,.45)}

/* Stay logged in: a small steel switch under the passcode (Oct 31, 2026) */
.cover-stay{display:flex;align-items:center;justify-content:center;gap:10px;margin:2px auto 0;padding:4px 6px;background:none;border:0;
  color:#a8b4d0;font:inherit;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;cursor:var(--cur-hot)}
.cover-stay .sw{position:relative;width:38px;height:20px;border-radius:12px;background:#060b14;border:1px solid rgba(150,190,240,.28);
  box-shadow:inset 0 2px 4px rgba(0,0,0,.6);transition:border-color .2s,box-shadow .2s}
.cover-stay .sw::after{content:'';position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;
  background:linear-gradient(180deg,#9fb3cf,#5b708d);box-shadow:0 1px 3px rgba(0,0,0,.6);transition:transform .2s,background .2s}
.cover-stay[aria-checked="true"]{color:#e4f3ff}
.cover-stay[aria-checked="true"] .sw{border-color:#4fb0ff;box-shadow:inset 0 2px 4px rgba(0,0,0,.6),0 0 6px 1px rgba(90,180,255,.6),0 0 16px rgba(30,120,255,.38)}
.cover-stay[aria-checked="true"] .sw::after{transform:translateX(18px);background:linear-gradient(180deg,#e4f3ff,#6cb8ff)}
.cover-stay:focus-visible .sw{outline:1px solid #e8c47a;outline-offset:2px}
/* the restricted Defense Stations bar wears the same saber edge as the restricted fields (Oct 31, 2026) */
.st-type-row.st-restricted{border-color:#5f3bb0 !important;animation:saberHum 4.5s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.st-type-row.st-restricted{animation:none}}

/* Section bars as saber blades (Oct 31, 2026): a near-white core with a bloom in the Trim colour, and a white
   light that runs down the blade on hover. Every section bar does it, the old gold sweep is retired. */
:root{--blade:#ffd23a;--blade-glow:rgba(255,200,40,.45)}
:root[data-accent="sky"]{--blade:#3aa0ff;--blade-glow:rgba(40,130,255,.45)}
:root[data-accent="green"]{--blade:#2fe06a;--blade-glow:rgba(40,220,100,.45)}
:root[data-accent="windu"]{--accent:#a98bff;--accent-faint:rgba(169,139,255,.15);--accent-glow:rgba(169,139,255,.65);--accent-line:rgba(169,139,255,.4);--accent-soft:rgba(169,139,255,.12);--blade:#9a5cff;--blade-glow:rgba(130,80,255,.45)}
:root[data-accent="red"]{--blade:#ff3b3b;--blade-glow:rgba(255,50,50,.45)}
:root[data-accent="white"]{--accent:#dfe9ff;--accent-faint:rgba(223,233,255,.15);--accent-glow:rgba(223,233,255,.65);--accent-line:rgba(223,233,255,.4);--accent-soft:rgba(223,233,255,.12);--blade:#dfe9ff;--blade-glow:rgba(210,225,255,.4)}
:root[data-accent="orange"]{--blade:#ff8a2b;--blade-glow:rgba(255,130,30,.45)}
:root[data-accent="pink"]{--blade:#ff6fae;--blade-glow:rgba(255,111,174,.45)}
:root.steel .hl-card::before,:root.steel .dash-card::before,:root.steel .holo-rail::before,:root.steel #view .al::before,:root.steel #view .card:not(.hl-card):not(.dash-card):not(.no-bar):not(.fi):not(.hm-side):not(article):not(.card .card):not(:has(table,.tbl-wrap,details,.no-bar)):not(:has(> p.muted:only-child))::before{
  background:linear-gradient(180deg,transparent 0%,transparent 34%,rgba(255,255,255,.95) 50%,transparent 66%,transparent 100%),linear-gradient(90deg,transparent 0,var(--blade) 25%,color-mix(in srgb,var(--blade) 70%,#fff) 50%,var(--blade) 75%,transparent 100%);
  background-size:100% 300%,100% 100%;background-position:0 0%,0 0;background-repeat:no-repeat;opacity:.85;
  box-shadow:0 0 3px 0 color-mix(in srgb,var(--blade) 60%,transparent),0 0 8px 1px color-mix(in srgb,var(--blade-glow) 45%,transparent)}
:root.steel .hl-card:hover::before,:root.steel .dash-card:hover::before,:root.steel .holo-rail:hover::before,:root.steel #view .al:hover::before,:root.steel #view .card:not(.hl-card):not(.dash-card):not(.no-bar):not(.fi):not(.hm-side):not(article):not(.card .card):not(:has(table,.tbl-wrap,details,.no-bar)):not(:has(> p.muted:only-child)):hover::before{background-position:0 100%,0 0;transition:background-position .9s ease}
:root.steel .hl-card::after,:root.steel .dash-card::after{display:none}
@media (prefers-reduced-motion:reduce){:root.steel .hl-card:hover::before,:root.steel .dash-card:hover::before,:root.steel .holo-rail:hover::before,:root.steel #view .al:hover::before,:root.steel #view .card:not(.hl-card):not(.dash-card):not(.no-bar):not(.fi):not(.hm-side):not(article):not(.card .card):not(:has(table,.tbl-wrap,details,.no-bar)):not(:has(> p.muted:only-child)):hover::before{transition:none}}

/* "Force decides" Trim choice (Oct 31, 2026): five Jedi colours as pie wedges set in a steel bezel. Static, no motion. */
.fd-gem{position:relative;width:20px;height:20px;border-radius:50%;border:2px solid transparent !important;padding:0;cursor:var(--cur-hot);background:none;flex:none;overflow:visible}
.fd-gem i{position:absolute;inset:-2px;border-radius:50%;background:conic-gradient(from -36deg,#ffb400 0 72deg,#1c78ff 72deg 144deg,#10d455 144deg 216deg,#7a2cff 216deg 288deg,#f2f6ff 288deg 360deg);box-shadow:0 0 0 2px #5d708a,0 0 0 3px #0b1422}

/* Darksaber Trim (Oct 31, 2026): a glossy black blade with a dim steel edge; the white sweep still runs over it. */
:root[data-accent="darksaber"]{--accent:#9aa7bb;--accent-faint:rgba(154,167,187,.15);--accent-glow:rgba(154,167,187,.5);--accent-line:rgba(154,167,187,.35);--accent-soft:rgba(154,167,187,.1);--blade:#8c99ad;--blade-glow:rgba(170,190,225,.16)}
:root[data-accent="darksaber"].steel .hl-card::before,:root[data-accent="darksaber"].steel .dash-card::before,:root[data-accent="darksaber"].steel .holo-rail::before,:root[data-accent="darksaber"].steel #view .al::before,:root[data-accent="darksaber"].steel #view .card:not(.hl-card):not(.dash-card):not(.no-bar):not(.fi):not(.hm-side):not(article):not(.card .card):not(:has(table,.tbl-wrap,details,.no-bar)):not(:has(> p.muted:only-child))::before{
  background:linear-gradient(180deg,transparent 0%,transparent 34%,rgba(255,255,255,.95) 50%,transparent 66%,transparent 100%),linear-gradient(90deg,#8c99ad 0,#4a5568 14%,#0a0b10 30%,#14161d 50%,#0a0b10 70%,#4a5568 86%,#8c99ad 100%);
  opacity:1;box-shadow:0 0 0 1px rgba(170,185,210,.4),0 0 6px 1px rgba(170,190,225,.16)}
#sideAccentPick [data-val="darksaber"]{box-shadow:inset 0 0 0 1px rgba(170,185,210,.55)}

/* Darksaber fix: the blade rule reset the sweep's size and position, so the white light sat still. Keep the sweep travelling. */
:root[data-accent="darksaber"].steel .hl-card::before,:root[data-accent="darksaber"].steel .dash-card::before,:root[data-accent="darksaber"].steel .holo-rail::before,:root[data-accent="darksaber"].steel #view .al::before,:root[data-accent="darksaber"].steel #view .card:not(.hl-card):not(.dash-card):not(.no-bar):not(.fi):not(.hm-side):not(article):not(.card .card):not(:has(table,.tbl-wrap,details,.no-bar)):not(:has(> p.muted:only-child))::before{background-size:100% 300%,100% 100%;background-position:0 0%,0 0;background-repeat:no-repeat}
:root[data-accent="darksaber"].steel .hl-card:hover::before,:root[data-accent="darksaber"].steel .dash-card:hover::before,:root[data-accent="darksaber"].steel .holo-rail:hover::before,:root[data-accent="darksaber"].steel #view .al:hover::before,:root[data-accent="darksaber"].steel #view .card:not(.hl-card):not(.dash-card):not(.no-bar):not(.fi):not(.hm-side):not(article):not(.card .card):not(:has(table,.tbl-wrap,details,.no-bar)):not(:has(> p.muted:only-child)):hover::before{background-position:0 100%,0 0;transition:background-position .9s ease}
@media (prefers-reduced-motion:reduce){:root[data-accent="darksaber"].steel .hl-card:hover::before,:root[data-accent="darksaber"].steel .dash-card:hover::before,:root[data-accent="darksaber"].steel .holo-rail:hover::before,:root[data-accent="darksaber"].steel #view .al:hover::before,:root[data-accent="darksaber"].steel #view .card:not(.hl-card):not(.dash-card):not(.no-bar):not(.fi):not(.hm-side):not(article):not(.card .card):not(:has(table,.tbl-wrap,details,.no-bar)):not(:has(> p.muted:only-child)):hover::before{transition:none}}

/* Blade option (Oct 31, 2026): Double shows the travelling light frozen in the middle of every bar, kept inside the blade width. Single is the plain bar. */
:root[data-blade="double"].steel .hl-card::before,:root[data-blade="double"].steel .dash-card::before,:root[data-blade="double"].steel .holo-rail::before,:root[data-blade="double"].steel #view .al::before,:root[data-blade="double"].steel #view .card:not(.hl-card):not(.dash-card):not(.no-bar):not(.fi):not(.hm-side):not(article):not(.card .card):not(:has(table,.tbl-wrap,details,.no-bar)):not(:has(> p.muted:only-child))::before{background:linear-gradient(180deg,transparent 34%,rgba(255,255,255,.95) 50%,transparent 66%),linear-gradient(180deg,transparent 0%,transparent 34%,rgba(255,255,255,.95) 50%,transparent 66%,transparent 100%),linear-gradient(90deg,transparent 0,var(--blade) 25%,color-mix(in srgb,var(--blade) 70%,#fff) 50%,var(--blade) 75%,transparent 100%);background-size:54% 100%,100% 300%,100% 100%;background-position:50% 0,0 0%,0 0;background-repeat:no-repeat}
:root[data-blade="double"].steel .hl-card:hover::before,:root[data-blade="double"].steel .dash-card:hover::before,:root[data-blade="double"].steel .holo-rail:hover::before,:root[data-blade="double"].steel #view .al:hover::before,:root[data-blade="double"].steel #view .card:not(.hl-card):not(.dash-card):not(.no-bar):not(.fi):not(.hm-side):not(article):not(.card .card):not(:has(table,.tbl-wrap,details,.no-bar)):not(:has(> p.muted:only-child)):hover::before{background-position:50% 0,0 100%,0 0}
:root[data-blade="double"][data-accent="darksaber"].steel .hl-card::before,:root[data-blade="double"][data-accent="darksaber"].steel .dash-card::before,:root[data-blade="double"][data-accent="darksaber"].steel .holo-rail::before,:root[data-blade="double"][data-accent="darksaber"].steel #view .al::before,:root[data-blade="double"][data-accent="darksaber"].steel #view .card:not(.hl-card):not(.dash-card):not(.no-bar):not(.fi):not(.hm-side):not(article):not(.card .card):not(:has(table,.tbl-wrap,details,.no-bar)):not(:has(> p.muted:only-child))::before{background:linear-gradient(180deg,transparent 34%,rgba(255,255,255,.95) 50%,transparent 66%),linear-gradient(180deg,transparent 0%,transparent 34%,rgba(255,255,255,.95) 50%,transparent 66%,transparent 100%),linear-gradient(90deg,#8c99ad 0,#4a5568 14%,#0a0b10 30%,#14161d 50%,#0a0b10 70%,#4a5568 86%,#8c99ad 100%);background-size:74% 100%,100% 300%,100% 100%;background-position:50% 0,0 0%,0 0;background-repeat:no-repeat}
:root[data-blade="double"][data-accent="darksaber"].steel .hl-card:hover::before,:root[data-blade="double"][data-accent="darksaber"].steel .dash-card:hover::before,:root[data-blade="double"][data-accent="darksaber"].steel .holo-rail:hover::before,:root[data-blade="double"][data-accent="darksaber"].steel #view .al:hover::before,:root[data-blade="double"][data-accent="darksaber"].steel #view .card:not(.hl-card):not(.dash-card):not(.no-bar):not(.fi):not(.hm-side):not(article):not(.card .card):not(:has(table,.tbl-wrap,details,.no-bar)):not(:has(> p.muted:only-child)):hover::before{background-position:50% 0,0 100%,0 0}

/* The Full menu folded away: its star tab wears the same brushed steel as the menu it slides from (Oct 31, 2026). */
:root.steel .side-rail{
  background:linear-gradient(180deg,var(--st-f0) 0%,var(--st-f1) 40%,var(--st-f2) 100%);
  border:1px solid var(--st-edge);
  box-shadow:inset 0 1px 0 rgba(215,230,250,.10),inset 1px 0 0 rgba(215,230,250,.04),6px 0 26px rgba(0,0,0,.55)}
