:root {
  --bg: #0b1018;
  --panel: #151e2b;
  --panel-2: #101722;
  --panel-3: #1a2534;
  --surface: #151e2b;
  --surface-strong: #1a2534;
  --panel-raised: #1a2534;
  --line: #273449;
  --line-soft: #1e293b;
  --text: #f3f4f6;
  --muted: #94a3b8;
  --muted-2: #64748b;
  --faint: #64748b;
  --accent: #3b82f6;
  --blue: #3b82f6;
  --green: #22c55e;
  --green-dark: #15803d;
  --success: #22c55e;
  --gold: #f59e0b;
  --yellow: #f59e0b;
  --warning: #f59e0b;
  --red: #ef4444;
  --danger: #ef4444;
  --radius: 6px;
  --shadow: 0 18px 50px rgba(0, 0, 0, .28);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--text);
  background: var(--bg);
  letter-spacing: 0;
}

* { box-sizing: border-box; }
html, body { min-height: 100%; margin: 0; }
body { background: var(--bg); color: var(--text); }
button, input, select, textarea { font: inherit; letter-spacing: 0; }
button { color: inherit; }
code { padding: 2px 6px; border: 1px solid var(--line); border-radius: 4px; background: var(--panel-3); color: var(--yellow); }
.hidden { display: none !important; }
.honeypot { position: absolute !important; left: -9999px !important; }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }

.login-scene { position: fixed; inset: 0; z-index: 200; min-height: 100vh; overflow: hidden; background: #080a0b; isolation: isolate; }
.login-scene::before { content: ""; position: absolute; inset: 0; z-index: -3; background: url("/assets/bos-flight-hero.webp") center center / cover no-repeat; transform: scale(1.035); animation: login-scene-arrive 1.4s cubic-bezier(.2,.7,.2,1) both; }
.login-scrim { position: absolute; inset: 0; z-index: -2; background: rgba(5,7,8,.5); box-shadow: inset 36vw 0 22vw rgba(5,7,8,.76), inset 0 -180px 130px rgba(5,7,8,.76), inset 0 120px 100px rgba(5,7,8,.4); }
.login-header { position: absolute; inset: 0 0 auto; min-height: 94px; display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 20px 48px; border-bottom: 1px solid rgba(255,255,255,.1); }
.login-wordmark { display: flex; align-items: center; gap: 12px; color: white; text-decoration: none; }
.login-wordmark img { width: 52px; height: 52px; object-fit: contain; }
.login-wordmark span { display: grid; gap: 2px; }
.login-wordmark strong { font-size: 17px; }
.login-wordmark small { color: #a7b1b8; font-size: 9px; }
.login-hero { position: absolute; inset: 94px 0 58px; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: 42px 7%; }
.login-title-stack { position: relative; width: min(910px, 72vw); padding: 70px 0 26px; animation: login-copy-arrive .9s .18s cubic-bezier(.2,.7,.2,1) both; }
.login-ghost-title { position: absolute; top: -40px; left: -12px; z-index: -1; color: rgba(255,255,255,.045); font-size: 230px; line-height: .9; font-weight: 850; white-space: nowrap; }
.login-title-stack h1 { max-width: 880px; margin: 10px 0 14px; color: white; font-size: 92px; line-height: .94; font-weight: 820; }
.login-tagline { max-width: 660px; margin: 0; color: #c3cbd0; font-size: 17px; line-height: 1.55; }
.login-actions { width: min(540px, 92vw); display: flex; align-items: center; gap: 10px; flex-wrap: wrap; animation: login-copy-arrive .9s .32s cubic-bezier(.2,.7,.2,1) both; }
.login-choice-heading { flex: 1 0 100%; display: grid; gap: 4px; margin-bottom: 3px; }
.login-choice-heading strong { color: white; font-size: 17px; }
.login-choice-heading span { color: #aab3b8; font-size: 11px; }
.login-divider { flex: 0 0 auto; color: #8f999f; font-size: 10px; text-transform: uppercase; }
.torn-login { min-height: 48px; padding: 0 18px; border: 1px solid rgba(213,170,77,.52); background: rgba(12,14,14,.76); color: #f0ce7e; backdrop-filter: blur(10px); }
.torn-login:hover { border-color: var(--gold); background: rgba(213,170,77,.1); }
.torn-login-form { flex: 1 0 100%; display: grid; gap: 11px; padding: 15px; border: 1px solid rgba(213,170,77,.34); border-left: 3px solid var(--gold); border-radius: var(--radius); background: rgba(10,12,12,.9); box-shadow: var(--shadow); }
.torn-login-form p { margin: 0; color: #aab3b8; font-size: 11px; line-height: 1.5; }
.torn-login-form .inline-actions { justify-content: flex-start; }
.secret-input { display: grid; grid-template-columns: minmax(0, 1fr) 42px; }
.secret-input input { border-radius: 5px 0 0 5px; }
.secret-input .icon-button { width: 42px; height: 42px; border-left: 0; border-radius: 0 5px 5px 0; }
.discord-login { min-height: 48px; padding: 0 19px; border-color: #7289da; background: #5865f2; color: white; }
.discord-login:hover { background: #6d78f5; }
.login-feedback { min-height: 48px; padding: 0 16px; border: 1px solid rgba(255,255,255,.24); background: rgba(7,9,10,.48); color: white; backdrop-filter: blur(10px); }
.login-feedback:hover { border-color: rgba(255,255,255,.48); background: rgba(255,255,255,.08); }
.login-fallback { flex-basis: 100%; margin: 3px 0 0; color: #8f999f; font-size: 11px; }
.login-fallback code { color: #dce2e6; background: rgba(10,12,13,.5); border-color: rgba(255,255,255,.15); }
.flight-trivia { position: absolute; right: 48px; bottom: 90px; width: min(420px, 38vw); padding: 15px 0 15px 18px; border-left: 2px solid var(--gold); background: rgba(7,9,10,.42); backdrop-filter: blur(12px); animation: login-copy-arrive .9s .5s cubic-bezier(.2,.7,.2,1) both; }
.flight-trivia span { color: var(--gold); font-size: 9px; font-weight: 800; }
.flight-trivia p { margin: 7px 0 0; color: #dce1e4; font-size: 13px; line-height: 1.5; }
.login-footer { position: absolute; inset: auto 0 0; min-height: 58px; display: flex; align-items: center; gap: 22px; padding: 0 48px; border-top: 1px solid rgba(255,255,255,.1); color: #7f898f; font-size: 10px; }
.login-footer .version-button { margin-left: auto; padding: 5px 0; border: 0; border-bottom: 1px solid transparent; background: transparent; color: inherit; font: inherit; letter-spacing: 0; cursor: pointer; }
.login-footer .version-button:hover, .login-footer .version-button:focus-visible { border-bottom-color: var(--gold); color: var(--gold); }
.login-progress { display: flex; align-items: center; gap: 14px; color: white; }
.login-progress div { display: grid; gap: 4px; }
.login-progress small { color: #aab3b8; }
.login-error { max-width: 620px; margin-top: 16px; }
.login-scene.departing { pointer-events: none; animation: login-depart .7s cubic-bezier(.7,0,.2,1) both; }
.app-shell.entering { animation: portal-arrive .72s .18s cubic-bezier(.2,.7,.2,1) both; }
@keyframes login-scene-arrive { from { opacity: 0; transform: scale(1.08); } to { opacity: 1; transform: scale(1.035); } }
@keyframes login-copy-arrive { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
@keyframes login-depart { to { opacity: 0; transform: scale(1.04); filter: blur(8px); } }
@keyframes portal-arrive { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
.service-line, .sidebar-service { display: flex; align-items: center; gap: 9px; color: var(--muted); font-size: 13px; }
.status-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--faint); box-shadow: 0 0 0 4px rgba(112,122,114,.1); flex: 0 0 auto; }
.status-dot.online { background: var(--green); box-shadow: 0 0 0 4px rgba(55,201,120,.12); }
.status-dot.offline { background: var(--red); box-shadow: 0 0 0 4px rgba(226,93,85,.12); }
.section-icon { width: 46px; height: 46px; display: grid; place-items: center; border: 1px solid rgba(55,201,120,.3); border-radius: var(--radius); color: var(--green); background: rgba(55,201,120,.08); }
.section-icon svg { width: 23px; }
.eyebrow { margin: 0; color: var(--gold); font-size: 11px; font-weight: 750; letter-spacing: 0; }
.notice { display: flex; gap: 10px; align-items: center; margin-top: 22px; padding: 12px 14px; border-left: 2px solid var(--gold); background: rgba(213,170,77,.06); color: var(--muted); font-size: 13px; }
.notice svg { width: 17px; color: var(--gold); }
.spinner { display: inline-block; width: 34px; height: 34px; border: 3px solid var(--line); border-top-color: var(--green); border-radius: 50%; animation: spin .8s linear infinite; }
.icon-button.refreshing svg { animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.error-block { padding: 14px; border: 1px solid rgba(226,93,85,.35); border-radius: var(--radius); background: rgba(226,93,85,.08); color: #ffaaa4; line-height: 1.5; }
.friendly-error { min-height: 170px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 24px; }
.friendly-error strong { color: var(--text); }
.friendly-error p { max-width: 680px; margin: 7px 0 0; color: #ffaaa4; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 248px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; border-right: 1px solid var(--line); background: #111411; }
.sidebar-brand { height: 82px; display: flex; align-items: center; gap: 12px; padding: 16px 20px; border-bottom: 1px solid var(--line); }
.sidebar-brand img { width: 44px; height: 44px; object-fit: contain; }
.sidebar-brand div { display: grid; gap: 2px; }
.sidebar-brand strong { font-size: 17px; }
.sidebar-brand span { color: var(--muted); font-size: 11px; }
.main-nav { display: grid; gap: 3px; padding: 16px 12px; overflow-y: auto; }
.nav-section { margin: 14px 11px 5px; color: var(--faint); font-size: 10px; font-weight: 750; text-transform: uppercase; }
.nav-section:first-child { margin-top: 2px; }
.nav-item { width: 100%; min-height: 42px; display: grid; grid-template-columns: 22px 1fr auto; align-items: center; gap: 10px; padding: 0 11px; border: 1px solid transparent; border-radius: 5px; background: transparent; color: var(--muted); text-align: left; cursor: pointer; }
.nav-item svg { width: 18px; }
.nav-item:hover { color: var(--text); background: var(--panel-2); }
.nav-item.active { border-color: #344038; background: #1b211c; color: var(--text); }
.nav-item.active svg { color: var(--green); }
.nav-badge { min-width: 20px; height: 20px; display: grid; place-items: center; padding: 0 6px; border-radius: 10px; background: var(--red); color: white; font-size: 10px; }
.sidebar-footer { position: relative; margin-top: auto; padding: 10px 12px; border-top: 1px solid var(--line); }
.sidebar-footer-trigger { width: 100%; min-height: 40px; display: grid; grid-template-columns: 10px 18px minmax(0, 1fr) 16px; align-items: center; gap: 9px; padding: 0 10px; border: 1px solid transparent; border-radius: var(--radius); background: transparent; color: var(--muted); text-align: left; cursor: pointer; }
.sidebar-footer-trigger:hover, .sidebar-footer[data-expanded="true"] .sidebar-footer-trigger { border-color: var(--line); color: var(--text); background: var(--panel); }
.sidebar-footer-trigger svg { width: 17px; }
.sidebar-footer-chevron { transition: transform .2s ease; }
.sidebar-footer[data-expanded="true"] .sidebar-footer-chevron { transform: rotate(180deg); }
.sidebar-footer-panel { position: absolute; z-index: 40; inset: auto 10px calc(100% + 8px); display: grid; gap: 12px; padding: 14px; border: 1px solid var(--line); border-radius: var(--radius); background: #171b18; box-shadow: var(--shadow); opacity: 0; transform: translateY(8px); pointer-events: none; transition: opacity .18s ease, transform .18s ease; }
.sidebar-footer[data-expanded="true"] .sidebar-footer-panel { opacity: 1; transform: translateY(0); pointer-events: auto; }
.connection-mini-grid { display: grid; gap: 8px; padding-bottom: 10px; border-bottom: 1px solid var(--line-soft); }
.connection-mini-grid > div { display: grid; grid-template-columns: 10px minmax(0, 1fr); align-items: center; gap: 9px; }
.connection-mini-grid > div > span:last-child { display: grid; gap: 2px; }
.connection-mini-grid strong { font-size: 11px; }
.connection-mini-grid small { color: var(--faint); font-size: 9px; }
.icon-text-button { display: flex; align-items: center; gap: 9px; padding: 0; border: 0; background: transparent; color: var(--muted); cursor: pointer; }
.icon-text-button:hover { color: var(--text); }
.icon-text-button svg { width: 17px; }

.workspace { min-width: 0; overflow: hidden; }
.topbar { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 15px clamp(22px, 4vw, 54px); border-bottom: 1px solid var(--line); background: rgba(14,16,15,.94); position: sticky; top: 0; z-index: 10; backdrop-filter: blur(14px); }
.topbar h1 { margin: 3px 0 0; font-size: 23px; }
.topbar-actions { display: flex; align-items: center; gap: 12px; }
.account-chip { display: flex; align-items: center; gap: 10px; min-width: 190px; }
.account-chip img { width: 36px; height: 36px; border-radius: 50%; background: var(--panel-3); }
.account-chip div { display: grid; gap: 2px; }
.account-chip strong { font-size: 13px; }
.account-chip span { color: var(--muted); font-size: 11px; }
.view-root { width: min(1480px, 100%); min-width: 0; margin-inline: auto; padding: clamp(22px, 4vw, 52px); }
.view-loading { min-height: 360px; display: grid; place-items: center; color: var(--muted); }

.page-intro { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin-bottom: 28px; }
.page-intro > * { min-width: 0; }
.page-intro h2 { margin: 0 0 7px; font-size: 25px; }
.page-intro p { max-width: 720px; margin: 0; color: var(--muted); line-height: 1.55; overflow-wrap: anywhere; }
.freshness { display: block; margin-top: 8px; color: var(--faint); font-size: 10px; }
.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 28px; }
.metric { min-height: 116px; padding: 18px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); }
.metric-head { display: flex; justify-content: space-between; gap: 10px; color: var(--muted); font-size: 12px; }
.metric-head svg { width: 18px; color: var(--green); }
.metric strong { display: block; margin-top: 13px; font-size: 27px; }
.metric small { display: block; margin-top: 4px; color: var(--faint); }
.split-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr); gap: 18px; }
.surface { border-top: 1px solid var(--line); padding: 22px 0 10px; }
.surface:first-child { border-top: 0; padding-top: 0; }
.surface-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.surface-header h3 { margin: 0; font-size: 16px; }
.surface-header p { margin: 5px 0 0; color: var(--muted); font-size: 13px; line-height: 1.5; }
.health-row, .audit-row, .list-row { display: grid; align-items: center; gap: 12px; min-height: 52px; padding: 10px 0; border-bottom: 1px solid var(--line-soft); }
.health-row { grid-template-columns: 1fr auto; }
.health-label { display: flex; align-items: center; gap: 10px; }
.health-label svg { width: 17px; color: var(--muted); }
.health-row strong { font-size: 13px; }
.health-row span { color: var(--muted); font-size: 12px; }

.toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 18px; }
.toolbar-spacer { flex: 1; }
.toolbar-select { width: min(280px, 100%); }
.inline-form { display: flex; align-items: end; gap: 8px; }
.inline-form label { width: 170px; }
.seller-picker { min-width: min(360px, 100%); }
.search-field { position: relative; min-width: min(360px, 100%); flex: 1; }
.search-field svg { position: absolute; left: 12px; top: 50%; width: 17px; color: var(--muted); transform: translateY(-50%); pointer-events: none; }
.search-field input { padding-left: 38px; }
.segment { display: inline-flex; padding: 3px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); }
.segment button { min-height: 32px; padding: 0 12px; border: 0; border-radius: 4px; background: transparent; color: var(--muted); font-size: 12px; cursor: pointer; }
.segment button.active { background: var(--panel-3); color: var(--text); }
.segment.wrap { flex-wrap: wrap; }
.segment button small { margin-left: 5px; color: var(--faint); }
.segmented-control { display: inline-flex; gap: 2px; padding: 3px; border: 1px solid var(--line); background: var(--panel); }
.segmented-control button { min-height: 36px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 0 13px; border: 1px solid transparent; border-radius: 4px; background: transparent; color: var(--muted); font: inherit; font-size: 11px; font-weight: 700; cursor: pointer; transition: .15s ease; }
.segmented-control button:hover { border-color: #4b554d; color: var(--text); background: var(--panel-2); }
.segmented-control button.active { border-color: color-mix(in srgb, var(--gold) 70%, var(--line)); background: color-mix(in srgb, var(--gold) 18%, var(--panel-3)); color: #f4d98f; box-shadow: inset 0 -2px 0 var(--gold); }
.segmented-control button svg { width: 14px; height: 14px; }
.control-list { border-top: 1px solid var(--line); }
.control-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 18px; min-height: 68px; padding: 12px 0; border-bottom: 1px solid var(--line-soft); }
.control-row h4 { margin: 0 0 5px; font-size: 14px; }
.control-row p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.control-meta { display: inline-flex; gap: 8px; margin-top: 7px; color: var(--faint); font-size: 10px; text-transform: uppercase; }
.toggle { position: relative; width: 42px; height: 24px; border: 0; border-radius: 12px; background: #3a413b; cursor: pointer; transition: .18s ease; }
.toggle::after { content: ""; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #bcc3bd; transition: .18s ease; }
.toggle.on { background: var(--green-dark); }
.toggle.on::after { left: 21px; background: #e9fff2; }
.toggle:disabled { opacity: .45; cursor: not-allowed; }

.settings-section { padding: 24px 0; border-bottom: 1px solid var(--line); }
.settings-section:first-child { padding-top: 0; }
.settings-header { display: grid; grid-template-columns: minmax(220px, .38fr) minmax(0, .62fr); gap: 28px; margin-bottom: 18px; }
.settings-header h3 { margin: 0 0 6px; font-size: 16px; }
.settings-header p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.5; }
.settings-grid { margin-left: calc(38% + 28px); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.settings-actions { display: flex; justify-content: flex-end; padding-top: 22px; }

label { display: grid; gap: 7px; color: var(--muted); font-size: 12px; font-weight: 600; }
input, select, textarea { width: 100%; border: 1px solid var(--line); border-radius: 5px; background: var(--panel); color: var(--text); outline: none; }
input, select { min-height: 42px; padding: 0 11px; }
textarea { resize: vertical; padding: 11px; line-height: 1.5; }
input:focus, select:focus, textarea:focus { border-color: #55705e; box-shadow: 0 0 0 3px rgba(55,201,120,.08); }
select[multiple] { min-height: 150px; padding: 7px; }
select option { padding: 7px; }
.field-help { color: var(--faint); font-size: 11px; font-weight: 400; }
.boolean-field { min-height: 42px; display: flex; align-items: center; justify-content: space-between; padding: 0 12px; border: 1px solid var(--line); border-radius: 5px; background: var(--panel); }
.boolean-field span { color: var(--text); font-size: 13px; }
.map-list { display: grid; gap: 8px; grid-column: 1 / -1; }
.map-row { display: grid; grid-template-columns: minmax(130px, .35fr) minmax(190px, .65fr) 36px; gap: 8px; }

.button, .icon-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: 5px; cursor: pointer; transition: .15s ease; }
.button { min-height: 40px; padding: 0 15px; border: 1px solid transparent; font-size: 13px; font-weight: 700; }
.button svg { width: 16px; }
.button.primary { background: var(--green); color: #07150d; }
.button.primary:hover { background: #53da8d; }
.button.secondary { border-color: var(--line); background: var(--panel-3); color: var(--text); }
.button.secondary:hover, .button.ghost:hover { border-color: #4b554d; background: #262c27; }
.button.ghost { border-color: var(--line); background: transparent; color: var(--muted); }
.button.danger { border-color: rgba(226,93,85,.45); background: rgba(226,93,85,.08); color: #ffaca6; }
.button.wide { width: 100%; }
.button.small { min-height: 32px; padding: 0 10px; font-size: 11px; }
.button:disabled { opacity: .5; cursor: wait; }
.icon-button { width: 38px; height: 38px; padding: 0; border: 1px solid var(--line); background: var(--panel); color: var(--muted); }
.icon-button:hover { color: var(--text); border-color: #4b554d; }
.icon-button svg { width: 17px; }

.data-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.data-table th { padding: 10px 8px; border-bottom: 1px solid var(--line); color: var(--faint); font-size: 10px; text-align: left; text-transform: uppercase; }
.data-table td { padding: 12px 8px; border-bottom: 1px solid var(--line-soft); vertical-align: middle; }
.data-table td:last-child, .data-table th:last-child { text-align: right; }
.data-table.dense td { padding-top: 9px; padding-bottom: 9px; }
.table-sort-button { display: inline-flex; align-items: center; gap: 5px; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; text-transform: inherit; cursor: pointer; }
.table-sort-button svg { width: 13px; height: 13px; }
.table-sort-button:hover, .table-sort-button.active { color: var(--text); }
.table-wrap { width: 100%; max-width: 100%; overflow-x: auto; }
.positive { color: #78e5a7; }
.negative { color: #ff9a93; }
.muted-text { color: var(--muted); }
.person { display: flex; align-items: center; gap: 10px; }
.person img { width: 31px; height: 31px; border-radius: 50%; background: var(--panel-3); }
.person span { display: grid; gap: 2px; }
.person small { color: var(--faint); }
.pill { display: inline-flex; align-items: center; min-height: 22px; padding: 0 8px; border: 1px solid var(--line); border-radius: 11px; color: var(--muted); font-size: 10px; text-transform: uppercase; }
.pill.green { border-color: rgba(55,201,120,.35); color: #84e8ad; background: rgba(55,201,120,.06); }
.pill.gold { border-color: rgba(213,170,77,.35); color: #e8c679; background: rgba(213,170,77,.06); }
.pill.red { border-color: rgba(226,93,85,.35); color: #ffaaa4; background: rgba(226,93,85,.06); }
.inline-actions { display: flex; justify-content: flex-end; gap: 7px; }
.inline-actions .icon-button { width: 32px; height: 32px; }
.empty-state { min-height: 180px; display: grid; place-items: center; text-align: center; color: var(--muted); border-top: 1px solid var(--line); }
.empty-state svg { width: 26px; margin-bottom: 10px; color: var(--faint); }
.compact-metrics { margin-top: 6px; }
.split-grid.equal { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.checkbox-control { display: inline-flex; align-items: center; justify-content: flex-end; gap: 7px; cursor: pointer; }
.checkbox-control input { width: 17px; height: 17px; min-height: 0; accent-color: var(--green); }
.checkbox-control span { color: var(--muted); font-size: 11px; }

.oc-grid { display: grid; gap: 12px; margin-bottom: 30px; }
.oc-crime { border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); }
.oc-crime > header { display: flex; justify-content: space-between; align-items: start; gap: 18px; padding: 16px 18px; border-bottom: 1px solid var(--line); }
.crime-title { display: flex; align-items: center; gap: 10px; }
.crime-title h3 { margin: 0; font-size: 16px; }
.oc-crime header p { margin: 6px 0 0; color: var(--muted); font-size: 12px; }
.slot-count { font-size: 20px; }
.oc-slots { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.oc-slot { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 12px 16px; border-bottom: 1px solid var(--line-soft); }
.oc-slot:nth-child(odd) { border-right: 1px solid var(--line-soft); }
.oc-slot-person { display: flex; align-items: center; gap: 10px; min-width: 0; }
.oc-slot-person > div { display: grid; gap: 3px; min-width: 0; }
.oc-slot-person strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.oc-slot-person small { color: var(--faint); }
.slot-state { color: var(--green); }
.oc-slot.open .slot-state { color: var(--faint); }
.slot-state svg { width: 18px; }
.item-requirement { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 11px; text-align: right; }
.item-requirement svg { width: 17px; flex: 0 0 auto; }
.item-requirement.available { color: #78e5a7; }
.item-requirement.missing { color: #ff9a93; }
.member-token-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.member-token { min-width: 0; display: grid; grid-template-columns: 8px minmax(0, 1fr); align-items: center; gap: 2px 9px; padding: 10px 0; border-bottom: 1px solid var(--line-soft); color: var(--text); text-decoration: none; }
.member-token strong, .member-token small { grid-column: 2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.member-token small { color: var(--faint); }
.member-token .status-dot { grid-row: 1 / 3; }

.guide-layout { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 32px; align-items: start; }
.guide-nav { position: sticky; top: 112px; display: grid; border-top: 1px solid var(--line); }
.guide-nav-item { display: grid; gap: 4px; padding: 13px 10px; border: 0; border-bottom: 1px solid var(--line-soft); background: transparent; color: var(--text); text-align: left; cursor: pointer; }
.guide-nav-item span { color: var(--faint); font-size: 11px; }
.guide-nav-item:hover, .guide-nav-item.active { background: var(--panel-2); }
.guide-nav-item.active { box-shadow: inset 2px 0 var(--green); }
.guide-content { max-width: 920px; }
.guide-content > h2 { margin: 7px 0 13px; font-size: 27px; }
.guide-intro { margin: 0 0 28px; color: var(--muted); font-size: 15px; line-height: 1.7; }
.guide-section { padding: 21px 0; border-top: 1px solid var(--line); }
.guide-section h3 { margin: 0 0 10px; font-size: 16px; }
.guide-section p { margin: 0; color: var(--muted); line-height: 1.72; }
.guide-section a, .guide-intro a, .data-table a, .oc-slot a { color: #8ebcff; text-decoration: none; }
.guide-section a:hover, .guide-intro a:hover, .data-table a:hover, .oc-slot a:hover { text-decoration: underline; }
.guide-toolbar { display: grid; grid-template-columns: minmax(280px, 1fr) minmax(190px, 260px); gap: 12px; margin-bottom: 18px; }
.guide-toolbar select { min-height: 44px; }
.guide-nav-item > .pill { width: max-content; color: var(--text); }
.guide-nav-item > small { color: var(--faint); }
.guide-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 9px 15px; margin-bottom: 18px; color: var(--muted); font-size: 12px; }
.guide-meta span { display: inline-flex; align-items: center; gap: 6px; }
.guide-meta svg { width: 14px; }
.guide-checklist { margin: 20px 0 28px; border: 1px solid var(--line); background: var(--panel-2); }
.guide-checklist .surface-header { padding: 16px 18px; }
.checklist-items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line-soft); }
.checklist-row { display: block; padding: 13px 16px; border-right: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); cursor: pointer; }
.checklist-row:nth-child(even) { border-right: 0; }
.checklist-row input { position: absolute; opacity: 0; pointer-events: none; }
.checklist-row span { display: flex; align-items: center; gap: 9px; color: var(--muted); }
.checklist-row svg { width: 17px; color: var(--faint); }
.checklist-row.completed span { color: var(--text); text-decoration: line-through; text-decoration-color: var(--muted); }
.checklist-row.completed svg { color: var(--success); }
.guide-sections { border-top: 1px solid var(--line); }
.guide-section { padding: 0; }
.guide-section > summary { display: grid; grid-template-columns: 28px 30px minmax(0, 1fr) 20px; align-items: center; gap: 9px; min-height: 58px; list-style: none; cursor: pointer; }
.guide-section > summary::-webkit-details-marker { display: none; }
.guide-section > summary h3 { margin: 0; font-size: 16px; }
.guide-step-number { display: grid; place-items: center; width: 26px; height: 26px; border: 1px solid var(--line); color: var(--muted); font-variant-numeric: tabular-nums; }
.guide-section-icon { display: grid; place-items: center; color: var(--gold); }
.guide-section-icon svg { width: 17px; }
.guide-section > summary > svg { width: 16px; color: var(--muted); transition: transform .18s ease; }
.guide-section[open] > summary > svg { transform: rotate(180deg); }
.guide-section-body { padding: 0 0 22px 76px; color: var(--muted); line-height: 1.72; }
.guide-footer { display: flex; justify-content: space-between; gap: 20px; margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--line); }
.guide-footer > div > div { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 8px; }

.star-button.tracked { color: var(--gold); background: rgba(213,170,77,.08); }
.star-button.tracked svg { fill: currentColor; }
.attack-link { color: #ff8f87; }

.member-status-band { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; padding: 13px 15px; border-left: 3px solid var(--green); background: var(--panel); }
.member-status-band > div { display: flex; align-items: center; gap: 10px; min-width: 0; }
.member-status-band span:not(.status-dot), .member-status-band small { color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.member-status-actions { justify-content: flex-end; }
.compact-button { min-height: 32px; padding: 0 10px; }
.home-welcome { align-items: center; }
.home-welcome > div:first-child { flex: 1; }
.clock-board { min-width: min(430px, 100%); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); }
.clock-board > div { min-width: 0; display: grid; gap: 5px; padding: 13px 15px; }
.clock-board > div + div { border-left: 1px solid var(--line); }
.clock-board span { color: var(--faint); font-size: 10px; text-transform: uppercase; }
.clock-board strong { overflow: hidden; color: var(--text); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.home-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.home-panel { min-height: 280px; display: flex; flex-direction: column; padding: 17px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); }
.home-panel-wide { grid-column: 1 / -1; }
.home-panel header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 24px; }
.home-panel header > div { display: flex; align-items: center; gap: 9px; }
.home-panel header svg { width: 18px; color: var(--green); }
.home-panel h3 { margin: 0; font-size: 14px; }
.home-panel p { margin: 8px 0 13px; color: var(--muted); line-height: 1.5; }
.home-value { display: block; font-size: 22px; }
.home-detail { display: block; margin-top: 13px; color: var(--faint); }
.exact-time { display: grid; gap: 7px; margin: 2px 0 14px; padding: 11px 0; border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); }
.exact-time > strong { color: var(--gold); font-size: 12px; }
.exact-time span { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 8px; color: var(--muted); font-size: 11px; line-height: 1.4; }
.exact-time b { color: var(--faint); font-size: 9px; text-transform: uppercase; }
.home-target-list { display: grid; }
.home-target-row { min-height: 58px; display: grid; grid-template-columns: minmax(0, 1fr) auto 38px; align-items: center; gap: 12px; border-bottom: 1px solid var(--line-soft); }
.home-target-row:last-child { border-bottom: 0; }
.home-target-row > div { display: grid; gap: 3px; min-width: 0; }
.home-target-row small { color: var(--faint); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.home-intelligence-strip { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 16px; margin-bottom: 18px; padding: 14px 16px; border: 1px solid var(--line); background: var(--panel); }
.home-resource-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.home-resource { min-width: 0; display: grid; gap: 6px; }
.home-resource span { display: inline-flex; align-items: center; gap: 6px; color: var(--faint); font-size: 10px; text-transform: uppercase; }
.home-resource svg { width: 14px; color: var(--green); }
.home-resource strong { font-size: 13px; }
.home-resource progress { width: 100%; height: 5px; border: 0; appearance: none; background: var(--panel-3); }
.home-resource progress::-webkit-progress-bar { background: var(--panel-3); }
.home-resource progress::-webkit-progress-value { background: var(--green); }
.home-resource progress::-moz-progress-bar { background: var(--green); }
.home-focus-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr); gap: 22px; margin-bottom: 22px; }
.home-priority-row { min-height: 64px; display: grid; grid-template-columns: 72px minmax(0, 1fr) 36px; align-items: center; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--line-soft); }
.home-priority-row > span { color: var(--gold); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.home-priority-row.critical > span { color: #ff918a; }
.home-priority-row > div { display: grid; gap: 3px; }
.home-priority-row small, .checklist-row small { color: var(--faint); line-height: 1.45; }
.daily-checklist { display: grid; }
.checklist-row { min-height: 58px; display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; align-items: center; gap: 10px; border-bottom: 1px solid var(--line-soft); }
.checklist-row > svg { width: 17px; color: var(--green); }
.checklist-row > div { display: grid; gap: 3px; }
.inline-warning { display: flex; align-items: center; gap: 9px; margin: 12px 0 0; padding: 10px 12px; border-left: 2px solid var(--gold); background: rgba(213,170,77,.06); color: var(--muted); font-size: 12px; }
.inline-warning svg { width: 16px; color: var(--gold); }
.assigned-pill { margin-left: 8px; border-color: rgba(108,162,239,.4); color: #9dc3f8; background: rgba(108,162,239,.07); }

.intelligence-connect { max-width: 760px; }
.secure-key-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px; }
.intelligence-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.intelligence-priorities, .intelligence-history { grid-column: 1 / -1; }
.premium-intelligence-intro { padding: 17px 0; border-top: 1px solid rgba(213,170,77,.48); border-bottom: 1px solid rgba(213,170,77,.24); }
.premium-intelligence-intro .eyebrow, .premium-intelligence-intro h2 { color: #f0cb72; }
.premium-badge { min-height: 34px; display: inline-flex; align-items: center; gap: 7px; padding: 0 11px; border: 1px solid rgba(213,170,77,.45); border-radius: 4px; background: rgba(213,170,77,.09); color: #f0cb72; font-size: 11px; font-weight: 750; text-transform: uppercase; }
.premium-badge svg { width: 16px; }
.premium-metrics .metric { border-top-color: rgba(213,170,77,.32); }
.premium-metrics .metric-head svg { color: var(--gold); }
.intel-bars { display: grid; gap: 18px; }
.intel-bar { display: grid; gap: 7px; }
.intel-bar > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.intel-bar > div:first-child span { display: inline-flex; align-items: center; gap: 7px; color: var(--muted); font-size: 12px; }
.intel-bar svg { width: 15px; color: var(--green); }
.intel-progress, .stat-balance-row progress, .war-probability-grid progress { width: 100%; height: 8px; border: 0; border-radius: 0; overflow: hidden; appearance: none; background: var(--panel-3); }
.intel-progress::-webkit-progress-bar, .stat-balance-row progress::-webkit-progress-bar, .war-probability-grid progress::-webkit-progress-bar { background: var(--panel-3); }
.intel-progress::-webkit-progress-value { background: var(--green); }
.intel-progress::-moz-progress-bar { background: var(--green); }
.intel-bar small { color: var(--faint); font-size: 10px; }
.stat-balance { display: grid; gap: 14px; }
.stat-balance-row { border-bottom: 1px solid var(--line-soft); }
.stat-balance-row > summary { display: grid; grid-template-columns: 86px 82px minmax(0, 1fr); align-items: center; gap: 10px; padding: 5px 0 10px; cursor: pointer; list-style: none; }
.stat-balance-row > summary::-webkit-details-marker { display: none; }
.stat-balance-row > summary > span { color: var(--muted); font-size: 11px; text-transform: capitalize; }
.stat-balance-row > summary > strong { text-align: right; }
.stat-balance-row > summary > div { min-width: 0; display: grid; gap: 5px; }
.stat-balance-row progress::-webkit-progress-value { background: var(--blue); }
.stat-balance-row progress::-moz-progress-bar { background: var(--blue); }
.stat-balance-row small { color: var(--faint); font-size: 9px; text-align: right; }
.stat-balance-row small.positive { color: #84e8ad; }
.stat-balance-row small.negative { color: #f0cb72; }
.stat-detail { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px 18px; padding: 8px 0 13px 96px; }
.stat-detail span { display: flex; justify-content: space-between; gap: 10px; color: var(--faint); font-size: 10px; }
.stat-detail b { color: var(--text); text-align: right; }
.smart-daily-plan { padding-left: 16px; padding-right: 16px; border: 1px solid rgba(213,170,77,.2); border-left: 3px solid var(--gold); background: rgba(213,170,77,.025); }
.priority-row { min-height: 84px; display: grid; grid-template-columns: 28px 28px minmax(0, 1fr); gap: 10px; align-items: start; padding: 13px 0; border-bottom: 1px solid var(--line-soft); }
.priority-row:last-child { border-bottom: 0; }
.priority-row > svg { width: 20px; color: var(--gold); }
.priority-row > div { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 10px; }
.priority-row span { color: var(--gold); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.priority-row strong { font-size: 13px; }
.priority-row p { grid-column: 1 / -1; margin: 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.priority-row.severity-critical { border-left: 2px solid var(--red); padding-left: 10px; }
.priority-row.severity-critical > svg, .priority-row.severity-critical > div > span { color: #ff918a; }
.priority-row.severity-do-now { border-left: 2px solid var(--gold); padding-left: 10px; }
.priority-rank { width: 24px; height: 24px; display: grid; place-items: center; border: 1px solid rgba(213,170,77,.38); color: #f0cb72; font-size: 10px; }
.guide-source-link { grid-column: 1 / -1; width: max-content; display: inline-flex; align-items: center; gap: 6px; padding: 3px 0; border: 0; background: transparent; color: #9dc3f8; cursor: pointer; }
.guide-source-link svg { width: 13px; }
.guide-source-link:hover span { text-decoration: underline; }
.explanation { grid-column: 1 / -1; margin-top: 3px; }
.explanation summary { width: max-content; color: #aeb7b0; font-size: 10px; cursor: pointer; }
.explanation[open] summary { color: var(--gold); }
.explanation dl { display: grid; gap: 0; margin: 9px 0 4px; border-top: 1px solid var(--line-soft); }
.explanation dl > div { display: grid; grid-template-columns: 105px minmax(0, 1fr); gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--line-soft); }
.explanation dt { color: var(--faint); font-size: 9px; font-weight: 750; text-transform: uppercase; }
.explanation dd { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.readiness-list { display: grid; }
.readiness-row { padding: 8px 0; border-bottom: 1px solid var(--line-soft); }
.readiness-row > summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 5px 12px; align-items: center; cursor: pointer; list-style: none; }
.readiness-row > summary::-webkit-details-marker { display: none; }
.readiness-row summary > div { display: grid; gap: 2px; }
.readiness-row small { color: var(--faint); }
.readiness-row summary > span { color: var(--gold); font-size: 11px; }
.readiness-row progress { grid-column: 1 / -1; width: 100%; height: 4px; border: 0; appearance: none; background: var(--panel-3); }
.readiness-row progress::-webkit-progress-bar { background: var(--panel-3); }
.readiness-row progress::-webkit-progress-value { background: var(--gold); }
.readiness-row progress::-moz-progress-bar { background: var(--gold); }
.readiness-method { margin-top: 9px; padding: 9px 10px; border-left: 2px solid var(--gold); background: rgba(214,167,70,.045); }
.readiness-method p { margin: 0 0 4px; color: var(--muted); font-size: 11px; }
.readiness-method small { display: block; line-height: 1.45; }
.target-preference-form { display: grid; grid-template-columns: minmax(130px, .6fr) minmax(160px, 1fr) auto; align-items: end; gap: 9px; margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--line); }
.custom-stat-targets { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.target-preference-form label > span { text-transform: capitalize; }
.breakdown-list { display: grid; }
.breakdown-list > div { display: flex; justify-content: space-between; gap: 12px; min-height: 38px; align-items: center; border-bottom: 1px solid var(--line-soft); }
.breakdown-list span { color: var(--muted); font-size: 11px; }
.data-caveat { margin: 14px 0 0; color: var(--faint); font-size: 10px; line-height: 1.55; }
.privacy-toggle { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 10px; margin-top: 14px; padding: 13px 0; border-top: 1px solid var(--line); cursor: pointer; }
.privacy-toggle input { width: 18px; height: 18px; min-height: 0; accent-color: var(--green); }
.privacy-toggle span { display: grid; gap: 3px; }
.privacy-toggle small { color: var(--faint); }
.snapshot-meta { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-top: 14px; padding-top: 13px; border-top: 1px solid var(--line-soft); color: var(--faint); font-size: 10px; }
.snapshot-meta b { color: var(--text); }
.snapshot-meta .button { margin-left: auto; }
.connection-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--line-soft); }
.connection-grid > div { display: grid; gap: 5px; padding: 13px; background: var(--panel); }
.connection-grid span { color: var(--faint); font-size: 9px; text-transform: uppercase; }
.connection-grid strong { overflow-wrap: anywhere; font-size: 11px; line-height: 1.45; }
.onboarding-panel { margin-bottom: 22px; padding: 18px; border: 1px solid rgba(108,162,239,.28); border-left: 3px solid var(--blue); background: rgba(108,162,239,.035); }
.setup-progress { width: 100%; height: 6px; margin: 0 0 14px; accent-color: var(--blue); }
.onboarding-panel ol { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; counter-reset: onboarding; list-style: none; }
.onboarding-panel li { display: grid; align-content: space-between; gap: 6px; min-height: 66px; padding: 10px; border: 1px solid var(--line-soft); color: var(--muted); font-size: 10px; line-height: 1.4; counter-increment: onboarding; }
.onboarding-panel li::before { content: counter(onboarding); display: block; margin-bottom: 5px; color: var(--blue); font-weight: 800; }
.onboarding-panel li b { color: var(--faint); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.onboarding-panel li.setup-completed { color: #8bdcad; border-color: rgba(55,201,120,.22); }
.onboarding-panel li.setup-completed b { color: var(--green); }
.onboarding-panel li.setup-optional { border-style: dashed; }
.travel-intelligence { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 14px; padding: 16px 18px; border-left: 3px solid var(--blue); }
.travel-intelligence h3, .travel-intelligence p { margin: 0; }
.travel-intelligence p { margin-top: 4px; color: var(--muted); }
.today-summary { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 14px; padding: 10px 12px; border: 1px solid var(--line-soft); background: var(--panel-2); }
.today-summary strong { margin-right: 4px; color: var(--gold); text-transform: uppercase; }
.today-summary span { padding: 5px 8px; border: 1px solid var(--line-soft); color: var(--muted); font-size: 10px; }
.training-planner { grid-column: 1 / -1; }
.training-profile-form { display: grid; gap: 14px; }
.training-profile-form .form-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.training-profile-form label { display: grid; gap: 6px; color: var(--muted); font-size: 11px; }
.training-profile-form input, .training-profile-form select { width: 100%; }
.advanced-training { border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); padding: 12px 0; }
.advanced-training > summary { cursor: pointer; color: var(--text); font-weight: 800; }
.advanced-training .form-grid { margin-top: 14px; }
.calculation-notice { padding: 12px; border-left: 3px solid var(--gold); background: rgba(214,167,70,.045); }
.calculation-notice p { margin: 4px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.technical-details { margin: 12px 0; padding: 10px 0; border-top: 1px solid var(--line-soft); }
.technical-details summary { cursor: pointer; color: var(--muted); font-weight: 700; }
.methodology-panel, .plan-onboarding { margin: 0 0 18px; }
.methodology-panel > summary, .plan-onboarding > summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; cursor: pointer; list-style: none; }
.methodology-panel > summary::-webkit-details-marker, .plan-onboarding > summary::-webkit-details-marker { display: none; }
.methodology-panel > summary span, .plan-onboarding > summary span { display: flex; align-items: center; gap: 9px; }
.methodology-panel > summary svg, .plan-onboarding > summary svg { width: 17px; color: var(--gold); transition: transform .18s ease; }
.methodology-panel[open] > summary > svg:last-child, .plan-onboarding[open] > summary > svg:last-child { transform: rotate(180deg); }
.methodology-panel > p { margin: 15px 0 10px; color: var(--muted); line-height: 1.55; }
.methodology-panel > small, .plan-onboarding > small { display: block; margin-top: 12px; color: var(--faint); line-height: 1.5; }
.methodology-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 14px; }
.methodology-grid > div { padding: 12px; border: 1px solid var(--line-soft); background: var(--panel-2); }
.methodology-grid strong { font-size: 12px; }
.methodology-grid p { margin: 5px 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.methodology-grid small { color: var(--faint); font-size: 10px; }
.faction-intel-toolbar { display: grid; grid-template-columns: minmax(280px, 1fr) minmax(180px, .35fr); gap: 10px; margin-bottom: 12px; }
.faction-intel-toolbar > label > span { display: block; margin-bottom: 5px; color: var(--muted); font-size: 10px; font-weight: 700; text-transform: uppercase; }
.target-reason { margin-top: 7px; max-width: 280px; }
.target-reason summary { width: max-content; color: #8ebcff; font-size: 10px; cursor: pointer; }
.target-reason p, .target-reason small { display: block; margin: 5px 0 0; color: var(--muted); font-size: 10px; line-height: 1.45; white-space: normal; }
.target-reason small { color: var(--faint); }
.release-dialog-content { display: grid; gap: 16px; padding: 24px; }
.release-note-list { display: grid; max-height: 55vh; overflow-y: auto; border-top: 1px solid var(--line); }
.release-note-list > div { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 9px; padding: 12px 0; border-bottom: 1px solid var(--line-soft); }
.release-note-list svg { width: 16px; color: var(--green); }
.release-note-list p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.release-date { padding: 12px 0 2px; color: var(--gold) !important; font-weight: 700; }
.release-section { padding: 14px 0 4px; border-bottom: 1px solid var(--line); }
.release-section h3 { margin: 0 0 5px; font-size: 13px; }
.release-section > div { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 9px; padding: 8px 0; }
.release-section:last-of-type svg { color: var(--gold); }
.release-history { padding: 14px 0; }
.peer-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--line-soft); }
.peer-grid > div { min-width: 0; display: grid; gap: 7px; padding: 18px; background: var(--panel); }
.peer-grid span { color: var(--faint); font-size: 10px; text-transform: uppercase; }
.peer-grid strong { overflow-wrap: anywhere; font-size: 16px; }
.trend-chart { display: block; width: 100%; height: 190px; }

.prewar-intelligence { margin-bottom: 24px; padding: 20px; border: 1px solid rgba(213,170,77,.22); border-left: 3px solid var(--gold); background: rgba(213,170,77,.025); }
.war-probability-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.war-probability-grid article { min-width: 0; padding: 14px; border: 1px solid var(--line-soft); background: var(--panel); }
.war-probability-grid header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 11px; }
.war-probability-grid header b { color: #f0cb72; font-size: 20px; }
.war-probability-grid progress::-webkit-progress-value { background: var(--gold); }
.war-probability-grid progress::-moz-progress-bar { background: var(--gold); }
.war-probability-grid p { margin: 9px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.prediction-disclaimer { display: flex; align-items: flex-start; gap: 8px; margin: 14px 0 0; color: var(--faint); font-size: 10px; line-height: 1.5; }
.prediction-disclaimer svg { width: 14px; flex: 0 0 auto; color: var(--gold); }

.market-search-shell { position: relative; z-index: 8; max-width: 680px; margin-bottom: 18px; }
.market-search-results { position: absolute; inset: calc(100% + 5px) 0 auto; max-height: 360px; overflow-y: auto; border: 1px solid var(--line); background: #171a18; box-shadow: var(--shadow); }
.market-search-results button { width: 100%; min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 9px 12px; border: 0; border-bottom: 1px solid var(--line-soft); background: transparent; color: var(--text); text-align: left; cursor: pointer; }
.market-search-results button:hover { background: var(--panel-3); }
.market-search-results button span { display: grid; gap: 3px; min-width: 0; }
.market-search-results button small { color: var(--faint); }
.market-search-results button b { color: var(--gold); font-size: 12px; white-space: nowrap; }
.market-search-results > p { padding: 12px; color: var(--muted); }
.market-item-intro { align-items: flex-start; }
.market-item-identity { display: grid; grid-template-columns: 72px minmax(0, 1fr); align-items: start; gap: 15px; }
.item-visual { display: grid; place-items: center; flex: 0 0 auto; overflow: hidden; border: 1px solid var(--line); background: var(--panel); }
.item-visual > * { grid-area: 1 / 1; }
.item-visual img { width: 100%; height: 100%; object-fit: contain; }
.item-visual-fallback { width: 100%; height: 100%; display: none; place-items: center; color: var(--gold); }
.item-visual-fallback.visible { display: grid; }
.item-visual-fallback svg { width: 42%; height: 42%; }
.market-item-identity .item-visual { width: 72px; height: 72px; }
.market-action-panel { position: sticky; top: 94px; z-index: 9; display: flex; align-items: center; flex-wrap: wrap; gap: 7px; margin: -12px 0 18px; padding: 9px; border: 1px solid var(--line); background: rgba(21,24,22,.96); box-shadow: 0 10px 32px rgba(0,0,0,.22); backdrop-filter: blur(12px); }
.market-action-panel .button { min-height: 36px; margin: 0; }
.market-action-panel .icon-button { flex: 0 0 auto; }
.favorite-active { color: var(--gold); border-color: rgba(213,170,77,.5); }
.market-browser { position: relative; z-index: 8; margin-bottom: 18px; padding: 14px; border: 1px solid var(--line); background: var(--panel); }
.market-browser-controls { display: grid; grid-template-columns: minmax(180px, .35fr) minmax(280px, .65fr); gap: 10px; }
.market-browser-controls > label > span { display: block; margin-bottom: 6px; color: var(--muted); font-size: 11px; font-weight: 700; text-transform: uppercase; }
.market-favorites { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.market-favorites > span { color: var(--muted); font-size: 11px; font-weight: 700; text-transform: uppercase; }
.favorite-item { display: inline-flex; align-items: center; gap: 5px; min-height: 30px; padding: 0 9px; border: 1px solid var(--line); background: transparent; color: var(--text); cursor: pointer; }
.favorite-item svg { width: 13px; color: var(--gold); }
.market-category-items { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); max-height: 360px; overflow-y: auto; margin-top: 10px; border-top: 1px solid var(--line); }
.market-category-items button { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 56px; padding: 8px 10px; border: 0; border-bottom: 1px solid var(--line-soft); background: transparent; color: var(--text); text-align: left; cursor: pointer; }
.market-category-items button:hover { background: var(--panel-3); }
.market-category-items button span { min-width: 0; display: grid; gap: 2px; }
.market-category-items button strong, .market-category-items button small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.market-category-items button small { color: var(--faint); }
.market-category-items button b { color: var(--gold); font-size: 11px; white-space: nowrap; }
.market-analytics-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin-bottom: 22px; border: 1px solid var(--line); background: var(--line); }
.market-analytics-strip > div { min-width: 0; display: grid; gap: 4px; padding: 12px; background: var(--surface); }
.market-analytics-strip span, .market-analytics-strip small { color: var(--muted); font-size: 11px; }
.market-analytics-strip strong { overflow-wrap: anywhere; }
.market-layout { align-items: stretch; }
.alert-form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(150px, .55fr); gap: 12px; }
.alert-form .alert-delivery, .alert-form #market-alert-email, .alert-form .button, .alert-form .alert-advanced { grid-column: 1 / -1; }
.alert-advanced summary { cursor: pointer; color: var(--muted); font-size: 12px; font-weight: 700; }
.alert-advanced .form-grid { margin-top: 10px; }
.alert-delivery { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; }
.alert-delivery label { display: inline-flex; grid-auto-flow: column; align-items: center; gap: 7px; cursor: pointer; }
.alert-delivery input { width: 17px; height: 17px; min-height: 0; accent-color: var(--green); }
.alert-delivery .disabled { opacity: .45; cursor: not-allowed; }
.market-alert-list { display: grid; }
.market-alert-row { min-height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 0; border-bottom: 1px solid var(--line-soft); }
.market-alert-row:last-child { border-bottom: 0; }
.market-alert-row > div { display: grid; gap: 3px; }
.market-alert-row span { color: var(--muted); font-size: 12px; }
.market-alert-row small { color: var(--faint); }
.market-alert-row em { color: var(--muted); font-size: 10px; font-style: normal; }
.compact-range-table { margin-top: 14px; }
.market-listings-table td { vertical-align: middle; }
.market-listings-table td > small { display: block; margin-top: 3px; }
.source-unavailable { color: var(--faint); font-size: 11px; }
.listing-possibly-stale { opacity: .58; }
.pagination { display: flex; align-items: center; justify-content: center; gap: 12px; padding-top: 12px; color: var(--muted); font-size: 12px; }
.calculator-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--line); }
.calculator-summary span { display: grid; gap: 3px; padding: 9px; background: var(--surface); color: var(--muted); font-size: 10px; }
.calculator-summary b { color: var(--text); font-size: 13px; }
.source-transparency { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 12px 0; background: var(--line); }
.source-transparency > div { display: grid; gap: 4px; padding: 12px; background: var(--surface); }
.source-transparency span, .source-transparency small { color: var(--muted); font-size: 10px; }

.finance-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px 20px; margin: -12px 0 18px; border-top: 1px solid var(--line-soft); }
.finance-details span { display: flex; justify-content: space-between; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--line-soft); color: var(--muted); font-size: 12px; }
.finance-details strong { color: var(--text); text-align: right; }
.faction-stock-grid { display: grid; gap: 22px; }
.stock-item-name { display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: center; gap: 9px; }
.stock-item-name > div { display: grid; gap: 2px; }
.stock-item-name small, .faction-stock-section td > small { display: block; margin-top: 3px; color: var(--muted); }
.stock-item-name .item-visual { width: 34px; height: 34px; }
.stock-item-icon { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid var(--line); color: var(--green); background: var(--panel); }
.stock-item-icon svg { width: 17px; }
.stock-threshold summary { cursor: pointer; color: var(--gold); font-size: 11px; white-space: nowrap; }
.stock-threshold form { display: grid; grid-template-columns: repeat(3, minmax(90px, 1fr)) 34px; gap: 6px; min-width: 390px; margin-top: 8px; }
.stock-threshold label span { display: block; color: var(--muted); font-size: 9px; }
.stock-threshold input { min-height: 34px; padding: 5px 7px; }

.assignment-manager { margin-top: 24px; }
.assignment-toolbar { display: grid; grid-template-columns: minmax(260px, .45fr) minmax(260px, .55fr); gap: 10px; margin-bottom: 12px; }
.assignment-list { max-height: 420px; overflow-y: auto; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.assignment-row { min-height: 54px; display: grid; grid-template-columns: 20px minmax(0, 1fr); align-items: center; gap: 10px; padding: 8px 5px; border-bottom: 1px solid var(--line-soft); cursor: pointer; }
.assignment-row:last-child { border-bottom: 0; }
.assignment-row:hover { background: var(--panel-2); }
.assignment-row input { width: 17px; height: 17px; min-height: 0; accent-color: var(--green); }
.assignment-row span { display: grid; gap: 3px; min-width: 0; }
.assignment-row a { color: #8ebcff; text-decoration: none; }
.assignment-row a:hover { text-decoration: underline; }
.assignment-row small { color: var(--faint); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.recommended-targets-panel { margin: 18px 0; padding: 14px; background: #1b2737; border-color: #31435a; }
.recommended-target-grid { display: grid; grid-template-columns: repeat(5, minmax(180px, 1fr)); gap: 8px; }
.recommended-target-card { min-width: 0; display: grid; align-content: start; gap: 10px; padding: 10px; border: 1px solid #34465e; border-radius: 6px; background: #0f1a2c; }
.recommended-target-card.attackable { border-color: #1c927d; box-shadow: inset 0 0 0 1px rgba(28,146,125,.12); }
.recommended-target-card.unavailable { opacity: .72; }
.recommended-target-card header, .recommended-target-meta, .recommended-target-card footer { display: flex; align-items: center; gap: 7px; }
.recommended-target-card header { justify-content: space-between; }
.recommended-target-card header small { color: #8fa3b9; font-size: 9px; white-space: nowrap; }
.recommended-target-name { min-width: 0; display: grid; gap: 3px; color: #f3f6fb; text-decoration: none; }
.recommended-target-name:hover strong { color: #67d5bd; }
.recommended-target-name strong, .recommended-target-name small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.recommended-target-name small { color: #8599b0; font-size: 9px; }
.recommended-target-meta { flex-wrap: wrap; color: #ffcb27; }
.recommended-target-meta > small { margin-left: auto; color: #8599b0; font-size: 9px; }
.recommended-target-card footer { margin-top: auto; }
.recommended-target-card .button.compact { min-height: 28px; padding: 0 8px; font-size: 9px; }
.recommended-target-card .button.compact svg { width: 12px; }
.recommendation-link-note { display: flex; align-items: center; gap: 12px; margin: 18px 0; }
.recommendation-link-note > svg { flex: 0 0 auto; color: var(--gold); }
.recommendation-link-note p { margin: 4px 0 0; color: var(--muted); }
@media (max-width: 1280px) {
  .recommended-target-grid { grid-template-columns: repeat(3, minmax(180px, 1fr)); }
}
@media (max-width: 760px) {
  .recommended-target-grid { grid-template-columns: 1fr; }
  .recommended-target-card footer { flex-wrap: wrap; }
}

.war-plan-toolbar { position: sticky; top: 98px; z-index: 5; padding: 9px; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(21,24,22,.96); backdrop-filter: blur(10px); }
.war-room-scale { display: inline-flex; align-items: center; gap: 5px; min-height: 40px; padding: 0 5px; border: 1px solid var(--line); border-radius: 4px; background: var(--panel); }
.war-room-scale strong { min-width: 42px; color: var(--muted); font-size: 10px; text-align: center; }
.war-room-scale .icon-button { min-width: 30px; min-height: 30px; font-size: 11px; font-weight: 800; }
.war-room-scale .icon-button:disabled { opacity: .28; cursor: default; }
.war-room-scaled { zoom: var(--war-room-scale, 1); }
.tier-legend { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 16px; }
.tier-key { display: inline-flex; gap: 6px; align-items: center; padding: 5px 8px; border-left: 3px solid var(--faint); background: var(--panel); color: var(--faint); font-size: 10px; }
.tier-key b { color: var(--text); }
.tier-key.alpha { border-left-color: #7d3db8; }
.tier-key.beta { border-left-color: #147fba; }
.tier-key.charlie { border-left-color: #ee263b; }
.tier-key.delta { border-left-color: #a75508; }
.tier-key.sigma { border-left-color: #ffbd16; }
.tier-key.gama { border-left-color: #f0ef16; }
.tier-key.teens { border-left-color: #0ca45d; }
.tier-key.angels { border-left-color: #dfe4df; }
.war-plan-board { border: 1px solid var(--line); border-radius: var(--radius); background: #111411; overflow: hidden; }
.war-plan-table { width: 100%; min-width: 1080px; border-collapse: separate; border-spacing: 0; table-layout: fixed; font-size: 12px; }
.war-plan-table.with-defend { min-width: 1460px; }
.war-plan-table.with-xanax { min-width: 1280px; }
.war-plan-table.with-defend.with-xanax { min-width: 1680px; }
.war-plan-table th { position: sticky; top: 0; z-index: 4; height: 42px; padding: 0 10px; border-right: 1px solid #35433a; border-bottom: 1px solid #486052; background: #1a211d; color: #8d9890; font-size: 10px; text-align: left; text-transform: uppercase; }
.war-plan-table th:nth-child(1) { width: 58px; text-align: center; }
.war-plan-table th:nth-child(2) { width: 78px; text-align: center; }
.war-plan-table th:nth-child(3) { width: 220px; }
.war-plan-table th:nth-child(4) { width: 120px; text-align: right; }
.war-plan-table th:nth-child(5) { width: 330px; }
.war-plan-table th:nth-child(6) { width: 58px; text-align: center; }
.war-plan-table th:nth-child(7) { width: 120px; text-align: right; }
.war-plan-table.with-defend th:nth-child(8) { width: 220px; }
.war-plan-table.with-defend th:nth-child(9) { width: 58px; text-align: center; }
.war-plan-table.with-defend th:nth-child(10) { width: 120px; text-align: right; }
.war-plan-table.with-xanax th:nth-child(8),
.war-plan-table.with-xanax th:nth-child(9) { width: 105px; text-align: right; }
.war-plan-table.with-defend.with-xanax th:nth-child(10) { width: 220px; text-align: left; }
.war-plan-table.with-defend.with-xanax th:nth-child(11) { width: 58px; text-align: center; }
.war-plan-table.with-defend.with-xanax th:nth-child(12) { width: 120px; text-align: right; }
.war-plan-table td { padding: 8px 10px; border-right: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); vertical-align: middle; background: #171a18; }
.war-plan-table tbody tr:nth-child(even) > td:not(.plan-team-cell) { background: #1a1816; }
.war-plan-table tbody tr:hover > td:not(.plan-team-cell) { background: #1d231f; }
.war-plan-table .plan-tier-start > td { border-top: 4px solid #75c846; }
.plan-team-cell { width: 78px; padding: 0 !important; text-align: center; color: white; font-weight: 800; text-transform: uppercase; }
.plan-team-cell span { display: inline-block; writing-mode: vertical-rl; transform: rotate(180deg); }
.plan-team-cell.alpha { background: #7d3db8 !important; }
.plan-team-cell.beta { background: #147fba !important; }
.plan-team-cell.charlie { background: #ee263b !important; }
.plan-team-cell.delta { background: #a75508 !important; }
.plan-team-cell.sigma { background: #ffbd16 !important; color: #171a18; }
.plan-team-cell.gama { background: #f0ef16 !important; color: #171a18; }
.plan-team-cell.teens { background: #0ca45d !important; }
.plan-team-cell.angels { background: #e7eae7 !important; color: #171a18; }
.plan-rank-cell { padding: 6px !important; text-align: center; }
.plan-rank-controls { display: grid; justify-items: center; gap: 5px; color: var(--muted); }
.plan-rank-controls > strong { color: var(--text); font-size: 13px; }
.plan-row-grip, .plan-row-actions button, .plan-target-grip, .plan-target-action, .chip-remove { width: 24px; height: 24px; display: inline-grid; place-items: center; padding: 0; border: 0; background: transparent; color: var(--faint); cursor: pointer; }
.plan-row-grip, .plan-target-grip { cursor: grab; }
.plan-row-grip:active, .plan-target-grip:active { cursor: grabbing; }
.plan-row-grip:hover, .plan-target-grip:hover, .plan-target-action:hover { color: var(--text); }
.plan-row-grip svg, .plan-target-grip svg, .plan-target-action svg, .chip-remove svg { width: 14px; }
.plan-row-actions { display: flex; gap: 1px; }
.plan-row-actions button:hover { color: var(--green); }
.plan-row-actions button:disabled { opacity: .25; cursor: default; }
.plan-hitter-list, .plan-value-stack, .plan-target-stack { display: grid; min-width: 0; }
.plan-hitter-line, .plan-cell-line, .plan-target-line { min-height: 42px; border-bottom: 1px solid var(--line-soft); }
.plan-hitter-line:last-child, .plan-cell-line:last-child, .plan-target-line:last-child { border-bottom: 0; }
.plan-hitter-line { display: flex; align-items: center; justify-content: space-between; gap: 7px; }
.plan-person-link { min-width: 0; display: grid; gap: 3px; color: #8ebcff; text-decoration: none; }
.plan-person-link:hover { text-decoration: underline; }
.plan-person-link strong, .plan-person-link small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.plan-person-link small { color: var(--faint); font-size: 9px; text-transform: uppercase; }
.chip-remove:hover { color: var(--red); }
.plan-cell-line { display: grid; align-content: center; gap: 2px; }
.plan-cell-line small { color: var(--faint); font-size: 9px; }
.plan-cell-line.centered { justify-items: center; text-align: center; }
.plan-cell-line.numeric { justify-items: end; text-align: right; }
.plan-target-line { display: flex; align-items: center; gap: 6px; padding-left: 5px; border-left: 3px solid var(--yellow); }
.plan-target-line.easy { border-left-color: var(--green); }
.plan-target-line.hard { border-left-color: var(--red); }
.plan-target-line .plan-person-link { flex: 1; }
.plan-target-line .pill { flex: 0 0 auto; }
.plan-target-action { flex: 0 0 auto; }
.plan-target-action[href]:hover { color: var(--green); }
.plan-inline-editor { margin-top: 8px; }
.plan-inline-editor select, .plan-defend-cell select { min-height: 32px; padding: 0 8px; font-size: 10px; }
.admin-xanax-cell { color: #ffd166; }
.admin-xanax-value small { color: var(--muted); white-space: nowrap; }
.battle-stat-override-panel { margin: 16px 0; }
.battle-stat-override-form { display: grid; grid-template-columns: minmax(190px, 1fr) minmax(160px, .7fr) minmax(220px, 1.2fr) auto auto; gap: 10px; align-items: end; }
.battle-stat-override-form label { display: grid; gap: 6px; color: var(--muted); font-size: 11px; }
.battle-stat-override-form input, .battle-stat-override-form select { width: 100%; min-height: 40px; }
@media (max-width: 1050px) {
  .battle-stat-override-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .battle-stat-override-form { grid-template-columns: 1fr; }
}
.plan-defend-cell > a, .plan-defend-cell > small { display: block; margin-top: 7px; }
.plan-defend-cell > a { overflow: hidden; color: #8ebcff; text-overflow: ellipsis; white-space: nowrap; text-decoration: none; }
.plan-defend-cell > a:hover { text-decoration: underline; }
.plan-defend-cell > small { color: var(--faint); }
.plan-empty-line { min-height: 42px; display: flex; align-items: center; color: var(--faint); font-size: 10px; }
.plan-drop-empty { grid-column: 1 / -1; min-height: 52px; display: grid; place-items: center; border: 1px dashed var(--line); color: var(--faint); font-size: 11px; }
.plan-pool { margin-top: 24px; }
.plan-pool-grid { min-height: 68px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.plan-target.pool { min-width: 0; min-height: 48px; display: flex; align-items: center; gap: 7px; padding: 7px 8px; border: 1px solid var(--line); border-left: 3px solid var(--faint); background: var(--panel); }
.plan-target.pool .plan-person-link { flex: 1; }
.save-note { margin: 13px 0 0; color: var(--faint); font-size: 11px; }
.work-stats-toolbar { display: grid; grid-template-columns: minmax(260px, 1fr) minmax(210px, .75fr) auto auto; align-items: end; }
.work-stats-toolbar .toolbar-spacer { display: none; }
.work-stats-form { grid-template-columns: minmax(220px, 1.2fr) repeat(3, minmax(130px, .7fr)) auto; }
.work-refresh-actions { display: grid; grid-template-columns: minmax(240px, 1fr) repeat(3, auto); gap: 9px; align-items: center; }
.employment-events { display: grid; border-top: 1px solid var(--line); }
.employment-event { min-height: 48px; display: grid; grid-template-columns: 160px minmax(0, 1fr) auto; align-items: center; gap: 12px; border-bottom: 1px solid var(--line-soft); }
.employment-event small { color: var(--muted); }

.member-access-picker { max-width: 520px; margin-bottom: 16px; }
.member-access-panel { position: relative; border-top: 1px solid var(--line); transition: opacity .18s ease, transform .18s ease; }
.member-access-panel.switching { opacity: .45; transform: translateY(4px); pointer-events: none; }
.member-access-row { min-height: 72px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 18px; padding: 10px 8px; border-bottom: 1px solid var(--line-soft); transition: background .22s ease, opacity .18s ease, box-shadow .22s ease; }
.member-access-row.updating { opacity: .68; }
.member-access-row.updated { background: rgba(55,201,120,.07); box-shadow: inset 2px 0 var(--green); }
.member-access-row > div:first-child { display: grid; gap: 5px; min-width: 0; }
.member-access-row small { color: var(--muted); line-height: 1.4; }
.compact-segment button { min-width: 64px; }
.access-mode-segment button { transition: color .16s ease, background .16s ease, transform .16s ease; }
.access-mode-segment button.active { transform: translateY(-1px); }
.access-mode-segment button:disabled { cursor: wait; }
.view-loading.compact { min-height: 120px; }


.shop-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.shop-status { min-height: 190px; padding: 17px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); }
.shop-status.opportunity { border-left: 3px solid var(--green); }
.shop-status.secured { border-left: 3px solid var(--faint); }
.shop-status header { display: flex; gap: 11px; align-items: center; }
.shop-status h3 { margin: 0; font-size: 15px; }
.shop-status header p { margin: 4px 0 0; color: var(--faint); font-size: 11px; }
.shop-icon { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 5px; color: var(--green); }
.shop-icon svg { width: 18px; }
.shop-condition { display: flex; align-items: center; gap: 9px; margin: 20px 0; }
.shop-condition strong { font-size: 13px; }
.shop-subscriptions { display: grid; gap: 5px; color: var(--muted); font-size: 11px; }
.shop-subscriptions small { color: var(--faint); }

.bonus-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.bonus-column { padding: 16px 0; border-top: 2px solid var(--green); }
.bonus-column.lost { border-top-color: var(--red); }
.bonus-column h4 { margin: 0 0 13px; }
.rank-inputs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.compact-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; gap: 10px; align-items: end; margin-bottom: 20px; }
.compact-form.two { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; }

.feedback-item { display: grid; grid-template-columns: minmax(0, 1fr) 160px; gap: 20px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.feedback-item h4 { margin: 0 0 7px; }
.feedback-item p { margin: 0; color: var(--muted); line-height: 1.55; white-space: pre-wrap; }
.feedback-meta { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.feedback-side { display: grid; gap: 10px; align-content: start; }
.feedback-context { margin-top: 12px; }
.feedback-context summary { width: max-content; color: #8ebcff; font-size: 10px; cursor: pointer; }
.feedback-context > div { display: grid; gap: 5px; margin-top: 8px; padding: 10px; border: 1px solid var(--line-soft); background: var(--panel); }
.feedback-context span { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 8px; color: var(--muted); font-size: 10px; overflow-wrap: anywhere; }
.feedback-context b { color: var(--faint); text-transform: capitalize; }
.audit-row { grid-template-columns: 150px 170px minmax(0, 1fr) auto; }
.audit-row time, .audit-row small { color: var(--faint); font-size: 11px; }
.audit-change { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); }

.dialog { width: min(650px, calc(100% - 28px)); max-height: calc(100vh - 32px); padding: 0; border: 1px solid var(--line); border-radius: 7px; background: var(--panel-2); color: var(--text); box-shadow: var(--shadow); }
.compact-dialog { width: min(560px, calc(100% - 28px)); }
.dialog::backdrop { background: rgba(0,0,0,.72); backdrop-filter: blur(5px); }
.dialog form { display: grid; gap: 15px; padding: 24px; }
.dialog-header { display: flex; justify-content: space-between; align-items: start; gap: 14px; }
.dialog-header h2 { margin: 4px 0 0; }
.dialog-copy { margin: 0 0 4px; color: var(--muted); line-height: 1.55; }
.form-grid { display: grid; gap: 12px; }
.form-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.form-grid.four > .button { align-self: end; justify-self: start; }
.dialog-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 5px; }
.navigation-order-list { display: grid; max-height: 52vh; overflow-y: auto; border-top: 1px solid var(--line); }
.navigation-order-row { min-height: 52px; display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; align-items: center; gap: 10px; border-bottom: 1px solid var(--line-soft); }
.navigation-order-row > svg { width: 17px; color: var(--faint); }
.navigation-order-row .icon-button:disabled { opacity: .3; cursor: default; }
.toast-region { position: fixed; right: 18px; bottom: 18px; z-index: 100; display: grid; gap: 8px; width: min(380px, calc(100% - 36px)); }
.toast { padding: 13px 15px; border: 1px solid var(--line); border-left: 3px solid var(--green); border-radius: var(--radius); background: #1b201c; color: var(--text); box-shadow: var(--shadow); font-size: 13px; animation: toast-in .2s ease; }
.toast.error { border-left-color: var(--red); }
@keyframes toast-in { from { opacity: 0; transform: translateY(8px); } }

@media (max-width: 1100px) {
  .login-title-stack { width: 82vw; }
  .login-title-stack h1 { font-size: 72px; }
  .login-ghost-title { font-size: 180px; }
  .flight-trivia { width: 360px; }
  .metric-grid { grid-template-columns: repeat(2, 1fr); }
  .split-grid { grid-template-columns: 1fr; }
  .settings-grid { margin-left: 0; }
  .settings-header { grid-template-columns: 1fr; gap: 6px; }
  .compact-form { grid-template-columns: repeat(2, 1fr); }
  .compact-form .button { align-self: end; }
  .member-token-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .plan-pool-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .work-stats-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .intelligence-grid { grid-template-columns: 1fr; }
  .training-profile-form .form-grid.three { grid-template-columns: 1fr 1fr; }
  .intelligence-priorities, .intelligence-history { grid-column: auto; }
}

.calendar-toolbar {
  display: flex;
  align-items: end;
  gap: 12px;
  margin-bottom: 18px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--line);
}
.calendar-view-switch { width: max-content; max-width: 100%; margin: 0 0 12px auto; overflow-x: auto; }
.calendar-period-controls { display: flex; align-items: center; gap: 8px; min-width: 210px; }
.calendar-period-controls strong { min-width: 130px; text-align: center; }
.calendar-nav-button { position: relative; color: var(--text); background: var(--panel-3); }
.calendar-nav-button > span { position: absolute; font-size: 24px; line-height: 1; }
.calendar-nav-button svg + span { display: none; }
.calendar-board { margin-bottom: 14px; padding: 14px; overflow: hidden; }
.calendar-weekdays, .calendar-month-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.calendar-weekdays span { padding: 6px; color: var(--faint); font-size: 9px; font-weight: 800; text-align: center; text-transform: uppercase; }
.calendar-month-grid { border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.calendar-day { min-width: 0; min-height: 92px; display: grid; align-content: start; gap: 7px; padding: 9px; border: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: transparent; color: var(--text); text-align: left; cursor: pointer; }
.calendar-day:hover:not(:disabled), .calendar-day.today { background: color-mix(in srgb, var(--gold) 8%, var(--panel)); }
.calendar-day.selected { outline: 2px solid var(--gold); outline-offset: -2px; background: color-mix(in srgb, var(--gold) 15%, var(--panel)); }
.calendar-day:disabled { cursor: default; }
.calendar-day.outside { color: var(--faint); opacity: .5; }
.calendar-day > span { display: flex; gap: 4px; min-height: 7px; }
.calendar-day small { overflow: hidden; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.calendar-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--faint); }
.calendar-dot.blue { background: var(--blue); } .calendar-dot.gold { background: var(--gold); } .calendar-dot.red { background: var(--red); } .calendar-dot.green { background: var(--green); }
.calendar-week-grid { display: grid; grid-template-columns: repeat(7, minmax(145px, 1fr)); overflow-x: auto; }
.calendar-week-day { min-height: 250px; border-right: 1px solid var(--line); }
.calendar-week-day:last-child { border-right: 0; }
.calendar-week-day > header { display: flex; align-items: center; justify-content: space-between; padding: 9px; border-bottom: 1px solid var(--line); color: var(--muted); }
.calendar-week-day > p { padding: 10px; color: var(--faint); font-size: 10px; }
.calendar-agenda { display: grid; }
.calendar-agenda-row { position: relative; width: 100%; min-width: 0; display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: 11px; min-height: 64px; padding: 9px 40px 9px 11px; border: 0; border-left: 3px solid transparent; border-bottom: 1px solid var(--line-soft); background: transparent; color: var(--text); text-align: left; cursor: pointer; }
.calendar-agenda-row:hover { background: var(--panel-2); }
.calendar-agenda-row.selected { border-left-color: var(--gold); background: color-mix(in srgb, var(--gold) 13%, var(--panel-2)); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--gold) 28%, transparent); }
.calendar-selected-check { position: absolute; right: 13px; width: 16px; height: 16px; color: var(--gold); }
.calendar-agenda-row span:nth-child(2) { min-width: 0; display: grid; gap: 3px; }
.calendar-agenda-row small { overflow: hidden; color: var(--muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.calendar-agenda-row em { color: var(--faint); font-size: 10px; font-style: normal; white-space: nowrap; }
.calendar-agenda-row.compact { min-height: 52px; grid-template-columns: 28px minmax(0, 1fr); }
.calendar-agenda-row.compact em { display: none; }
.calendar-category-icon, .calendar-selected-icon { display: grid; place-items: center; border: 1px solid var(--line); color: var(--muted); background: var(--panel); }
.calendar-category-icon { width: 32px; height: 32px; }
.calendar-category-icon svg { width: 15px; }
.calendar-category-icon.blue, .calendar-selected-icon.blue { color: var(--blue); } .calendar-category-icon.gold, .calendar-selected-icon.gold { color: var(--gold); } .calendar-category-icon.red, .calendar-selected-icon.red { color: var(--red); } .calendar-category-icon.green, .calendar-selected-icon.green { color: var(--green); }
.calendar-selected-detail { display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 15px; margin-bottom: 18px; }
.calendar-selected-icon { width: 46px; height: 46px; }
.calendar-selected-detail h3 { margin: 7px 0; }
.calendar-selected-detail p { color: var(--muted); line-height: 1.5; }
.calendar-detail-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin-top: 12px; background: var(--line-soft); }
.calendar-detail-grid span { display: grid; gap: 4px; padding: 10px; background: var(--panel); color: var(--faint); font-size: 9px; }
.calendar-detail-grid b { color: var(--text); font-size: 11px; }
.home-plan-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 14px 0; overflow: hidden; border: 1px solid var(--line); background: var(--line); }
.home-plan-strip button { display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: center; gap: 10px; min-height: 84px; padding: 14px; border: 0; color: var(--text); background: var(--surface); text-align: left; cursor: pointer; }
.home-plan-strip button:hover { background: var(--surface-strong); }
.home-plan-strip svg { color: var(--gold); }
.home-plan-strip span { display: grid; gap: 2px; }
.home-plan-strip small, .home-plan-strip em { color: var(--muted); font-size: 11px; font-style: normal; }
.energy-scenarios { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin: 14px 0; border: 1px solid var(--line); background: var(--line); }
.energy-scenarios > div { display: grid; gap: 3px; min-height: 82px; padding: 12px; background: var(--surface); }
.energy-scenarios span, .energy-scenarios small { color: var(--muted); font-size: 11px; }
.modifier-list, .confirmation-block { display: grid; gap: 1px; margin-top: 12px; background: var(--line-soft); }
.modifier-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto 36px; align-items: center; gap: 10px; min-height: 62px; padding: 10px 12px; background: var(--surface); }
.modifier-row > div:first-child { display: grid; gap: 3px; }
.modifier-row small, .confidence-label { color: var(--muted); font-size: 11px; }
.modifier-row.needs-confirmation { grid-template-columns: minmax(0, 1fr) auto auto; }
.confirmation-block h4, .confirmation-block > p { margin: 10px 12px 0; }
.confirmation-block > p { color: var(--muted); }
.stack-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin: 14px 0; background: var(--line); border: 1px solid var(--line); }
.stack-summary span { display: grid; gap: 4px; padding: 12px; color: var(--muted); background: var(--surface); font-size: 11px; }
.stack-summary b { color: var(--text); font-size: 14px; }
.active-plan { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px; border-left: 3px solid var(--gold); background: color-mix(in srgb, var(--gold) 7%, var(--surface)); }
.active-plan h4, .active-plan p { margin: 3px 0; }
.training-plan-surface .form-grid { margin-top: 14px; }
.calendar-toolbar label { min-width: 220px; }
.calendar-toolbar label span { display: block; margin-bottom: 6px; color: var(--muted); font-size: 12px; font-weight: 700; text-transform: uppercase; }
.calendar-toolbar .pill { margin-left: auto; }
.calendar-list { display: grid; gap: 12px; }
.calendar-list[data-layout="month"] { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
.calendar-list[data-layout="month"] .calendar-event { min-height: 250px; }
.calendar-list[data-layout="week"] .calendar-event { border-left: 3px solid var(--gold); }
.calendar-list[data-layout="upcoming"] .calendar-event { border-left: 3px solid var(--green); }
.calendar-event { padding: 18px; }
.calendar-event .surface-header { align-items: flex-start; }
.calendar-event h3 { margin: 8px 0 5px; font-size: 19px; }
.calendar-event p { max-width: 820px; }
.calendar-event-meta, .calendar-event-actions, .calendar-guide-meta, .calendar-plan-settings {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}
.calendar-event-meta { color: var(--muted); font-size: 12px; }
.verified-source { display: inline-flex; align-items: center; gap: 5px; color: var(--success); }
.verified-source svg { width: 14px; height: 14px; }
.calendar-date { display: grid; min-width: 150px; text-align: right; }
.calendar-date span, .calendar-date small { color: var(--muted); }
.calendar-event-actions { margin-top: 14px; }
.calendar-plan-settings { justify-content: space-between; margin-top: 14px; padding: 12px 0; border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); }
.calendar-plan-settings > div:first-child { display: grid; gap: 3px; }
.calendar-plan-settings span { color: var(--muted); font-size: 12px; }
.calendar-event-details { margin-top: 14px; }
.calendar-event-details > summary, .calendar-admin > summary { cursor: pointer; color: var(--text); font-weight: 700; }
.calendar-guide { display: grid; gap: 12px; margin-top: 14px; }
.calendar-guide-meta { color: var(--muted); font-size: 12px; }
.calendar-guide-section { padding-left: 12px; border-left: 2px solid var(--line); }
.calendar-guide-section p { margin: 4px 0 0; color: var(--muted); line-height: 1.55; }
.calendar-checklist { display: grid; gap: 8px; padding-top: 8px; border-top: 1px solid var(--line-soft); }
.calendar-check { display: flex; align-items: center; gap: 9px; }
.calendar-admin { margin-top: 20px; }
.calendar-admin form { margin-top: 16px; }
.full-span { grid-column: 1 / -1; }

.percent-help { width: 24px; height: 24px; display: inline-grid; place-items: center; padding: 0; border: 0; background: transparent; color: var(--muted); cursor: help; vertical-align: middle; }
.percent-help svg { width: 15px; height: 15px; }
.percent-help:hover, .percent-help:focus-visible { color: var(--text); }
.build-explainer { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin-bottom: 14px; border: 1px solid var(--line); background: var(--line); }
.build-explainer span { padding: 10px 12px; background: var(--surface); color: var(--muted); font-size: 11px; line-height: 1.45; }
.build-explainer b { display: block; color: var(--text); }
.goal-projection { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 18px; margin-top: 6px; padding: 12px; border-left: 2px solid var(--gold); background: color-mix(in srgb, var(--gold) 4%, var(--surface)); }
.goal-projection > strong, .goal-projection > p, .goal-projection > small { grid-column: 1 / -1; }
.goal-projection span { display: grid; gap: 2px; }
.goal-projection span small, .goal-projection > small { color: var(--muted); }

html[data-density="compact"] .surface { padding-top: 20px; }
html[data-density="compact"] .metric { min-height: 104px; padding: 16px; }
html[data-density="compact"] .data-table th,
html[data-density="compact"] .data-table td { padding: 10px 12px; }
html[data-density="compact"] .calendar-event { padding: 15px; }
html[data-density="dense"] .surface { padding-top: 14px; }
html[data-density="dense"] .metric { min-height: 88px; padding: 11px; }
html[data-density="dense"] .data-table th,
html[data-density="dense"] .data-table td { padding: 6px 8px; }
html[data-density="dense"] .calendar-event { padding: 11px; }
html[data-density="dense"] .metric strong { font-size: 22px; }
html[data-density="dense"] .surface-header { margin-bottom: 12px; }

.table-wrap .data-table thead th { position: sticky; top: 0; z-index: 2; background: var(--panel-2); }
.table-wrap .data-table th:first-child,
.table-wrap .data-table td:first-child { position: sticky; left: 0; z-index: 1; background: var(--surface); }
.table-wrap .data-table thead th:first-child { z-index: 3; background: var(--panel-2); }

@media (max-width: 760px) {
  .login-scene::before { background-position: 39% center; }
  .login-header { min-height: 72px; padding: 12px 18px; }
  .login-wordmark img { width: 42px; height: 42px; }
  .login-header .service-line span:last-child { display: none; }
  .login-hero { inset: 72px 0 132px; justify-content: flex-end; padding: 28px 20px; }
  .login-title-stack { width: 100%; padding: 30px 0 18px; }
  .login-title-stack h1 { max-width: 420px; font-size: 54px; }
  .login-ghost-title { top: -16px; left: -4px; font-size: 118px; }
  .login-tagline { max-width: 460px; font-size: 14px; }
  .login-actions { align-items: stretch; }
  .discord-login { flex: 1 1 230px; }
  .login-divider { flex: 0 0 100%; text-align: center; }
  .torn-login { flex: 1 1 230px; }
  .login-feedback { flex: 0 0 48px; padding: 0; }
  .login-feedback span { display: none; }
  .flight-trivia { right: 20px; bottom: 66px; left: 20px; width: auto; padding: 11px 0 11px 14px; }
  .flight-trivia p { font-size: 11px; }
  .login-footer { min-height: 48px; gap: 12px; padding: 0 20px; }
  .login-footer span:nth-child(2) { display: none; }
  .app-shell { display: block; }
  .sidebar { position: sticky; top: 0; z-index: 20; width: 100%; height: auto; border-right: 0; border-bottom: 1px solid var(--line); }
  .sidebar-brand { height: 62px; padding: 9px 16px; }
  .sidebar-brand img { width: 38px; height: 38px; }
  .main-nav { display: flex; gap: 4px; padding: 7px 58px 7px 10px; overflow-x: auto; }
  .nav-section { display: none; }
  .nav-item { width: auto; min-width: max-content; min-height: 38px; grid-template-columns: 18px auto auto; padding: 0 10px; }
  .nav-item svg { width: 16px; }
  .sidebar-footer { position: absolute; top: 9px; right: 8px; display: block; margin: 0; padding: 0; border: 0; }
  .sidebar-footer-trigger { width: 42px; grid-template-columns: 8px 18px; padding: 0 8px; }
  .sidebar-footer-label, .sidebar-footer-chevron { display: none; }
  .sidebar-footer-panel { inset: 48px 0 auto auto; width: min(300px, calc(100vw - 20px)); }
  .topbar { position: static; min-height: 70px; padding: 12px 16px; top: auto; }
  .topbar h1 { font-size: 20px; }
  .account-chip { min-width: 0; }
  .account-chip div { display: none; }
  .view-root { padding: 22px 16px 42px; }
  .page-intro { display: block; }
  .page-intro .button { margin-top: 14px; }
  .market-action-panel { position: sticky; top: 8px; flex-wrap: nowrap; overflow-x: auto; margin: -8px -8px 16px; }
  .market-action-panel .button { min-width: max-content; }
  .calendar-toolbar { align-items: stretch; flex-direction: column; }
  .calendar-toolbar .pill { margin-left: 0; width: fit-content; }
  .calendar-period-controls { width: 100%; justify-content: space-between; }
  .calendar-weekdays { display: none; }
  .calendar-month-grid { grid-template-columns: 1fr; border: 0; }
  .calendar-day { min-height: 52px; grid-template-columns: 32px 50px minmax(0, 1fr); align-items: center; border: 0; border-bottom: 1px solid var(--line); }
  .calendar-day.outside, .calendar-day:disabled { display: none; }
  .calendar-selected-detail { grid-template-columns: 1fr; }
  .calendar-detail-grid, .travel-detail-grid { grid-template-columns: 1fr 1fr; }
  .travel-status-summary.detailed { grid-template-columns: 28px minmax(0, 1fr); }
  .travel-status-details { grid-column: 1 / -1; }
  .connection-page-grid { grid-template-columns: 1fr; }
  .connection-card { min-height: 0; }
  .routing-rule-title { grid-template-columns: 36px minmax(0, 1fr); }
  .routing-rule-title .toggle-control { grid-column: 2; }
  .routing-rule-grid { grid-template-columns: 1fr 1fr; }
  .routing-rule-grid .routing-roles { grid-column: 1 / -1; }
  .routing-channels .button { width: 100%; margin-left: 0; }
  .department-assignment form { grid-template-columns: 1fr; align-items: stretch; }
  .metric-grid { grid-template-columns: 1fr 1fr; }
  .metric { min-height: 105px; padding: 14px; }
  .metric strong { font-size: 23px; }
  .settings-grid, .bonus-grid, .rank-inputs { grid-template-columns: 1fr; }
  .split-grid.equal, .shop-grid, .oc-slots { grid-template-columns: 1fr; }
  .oc-slot:nth-child(odd) { border-right: 0; }
  .oc-history-summary, .oc-history-members { grid-template-columns: 1fr; }
  .oc-history-member:nth-child(odd) { border-right: 0; }
  .guide-layout { grid-template-columns: 1fr; gap: 22px; }
  .guide-nav { position: static; display: flex; overflow-x: auto; }
  .guide-nav-item { min-width: 190px; border-right: 1px solid var(--line-soft); }
  .guide-toolbar { grid-template-columns: 1fr; }
  .checklist-items { grid-template-columns: 1fr; }
  .checklist-row { border-right: 0; }
  .guide-section-body { padding-left: 0; }
  .guide-footer { flex-direction: column; }
  .member-token-grid { grid-template-columns: 1fr; }
  .inline-form { width: 100%; }
  .inline-form label { flex: 1; }
  .compact-form, .compact-form.two { grid-template-columns: 1fr; }
  .feedback-item { grid-template-columns: 1fr; }
  .feedback-side { grid-template-columns: 1fr auto; }
  .feedback-context span { grid-template-columns: 1fr; gap: 2px; }
  .audit-row { grid-template-columns: 110px 1fr; }
  .audit-row .audit-change { grid-column: 1 / -1; }
  .form-grid.two { grid-template-columns: 1fr; }
  .home-grid { grid-template-columns: 1fr; }
  .home-intelligence-strip { grid-template-columns: 1fr; }
  .home-resource-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-focus-grid { grid-template-columns: 1fr; }
  .home-panel-wide { grid-column: auto; }
  .member-status-band { align-items: start; }
  .member-status-band > div { display: grid; grid-template-columns: 8px minmax(0, 1fr); }
  .member-status-band strong, .member-status-band span:not(.status-dot) { grid-column: 2; }
  .member-status-band .member-status-actions { display: flex; flex-wrap: wrap; justify-content: flex-start; }
  .home-welcome .clock-board { margin-top: 16px; }
  .war-plan-toolbar { position: static; }
  .war-plan-toolbar .button { flex: 1; }
  .plan-pool-grid { grid-template-columns: 1fr; }
  .work-stats-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .work-stats-toolbar .search-field, .work-stats-toolbar .toolbar-select { grid-column: 1 / -1; }
  .work-stats-toolbar .button { width: 100%; }
  .work-stats-form { grid-template-columns: 1fr; }
  .work-refresh-actions { grid-template-columns: 1fr 1fr; }
  .work-refresh-actions select { grid-column: 1 / -1; }
  .work-refresh-actions .button:last-child { grid-column: 1 / -1; }
  .employment-event { grid-template-columns: 1fr auto; }
  .employment-event .pill { grid-column: 1 / -1; justify-self: start; }
  .assignment-toolbar, .finance-details { grid-template-columns: 1fr; }
  .member-access-row { grid-template-columns: 1fr; }
  .secure-key-form, .alert-form, .target-preference-form { grid-template-columns: 1fr; }
  .secure-key-form .button, .alert-form .alert-delivery, .alert-form #market-alert-email, .alert-form .button { grid-column: auto; }
  .peer-grid { grid-template-columns: 1fr; }
  .war-probability-grid { grid-template-columns: 1fr; }
  .stat-balance-row > summary { grid-template-columns: 70px 66px minmax(0, 1fr); }
  .stat-detail { grid-template-columns: 1fr; padding-left: 0; }
  .custom-stat-targets { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .onboarding-panel ol { grid-template-columns: 1fr 1fr; }
  .connection-grid { grid-template-columns: 1fr; }
  .methodology-grid { grid-template-columns: 1fr; }
  .faction-intel-toolbar { grid-template-columns: 1fr; }
  .compact-segment { width: 100%; }
  .compact-segment button { flex: 1; }
  .market-browser-controls, .source-transparency { grid-template-columns: 1fr; }
  .market-category-items { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .market-analytics-strip { grid-template-columns: 1fr 1fr; }
  .calendar-list[data-layout="month"] { grid-template-columns: 1fr; }
  .calendar-view-switch { width: 100%; margin-left: 0; }
  .calendar-view-switch button { flex: 1 0 auto; }
  .build-explainer { grid-template-columns: 1fr 1fr; }
  .goal-projection { grid-template-columns: 1fr; }
}

@media (max-width: 420px) {
  .login-title-stack h1 { font-size: 44px; }
  .login-ghost-title { font-size: 94px; }
  .login-fallback { line-height: 1.5; }
  .metric-grid { grid-template-columns: 1fr; }
  .topbar-actions { gap: 7px; }
  .map-row { grid-template-columns: 1fr 36px; }
  .map-row input { grid-column: 1 / -1; }
  .oc-crime > header, .oc-slot { align-items: start; }
  .oc-slot { display: grid; }
  .home-target-row { grid-template-columns: minmax(0, 1fr) 38px; }
  .home-target-row .pill { grid-column: 1; grid-row: 2; justify-self: start; }
  .home-target-row .icon-button { grid-column: 2; grid-row: 1 / 3; }
  .clock-board { grid-template-columns: 1fr; }
  .clock-board > div + div { border-left: 0; border-top: 1px solid var(--line); }
  .home-resource-grid, .custom-stat-targets, .onboarding-panel ol { grid-template-columns: 1fr; }
  .training-profile-form .form-grid.three { grid-template-columns: 1fr; }
  .travel-intelligence { align-items: flex-start; flex-direction: column; }
  .calendar-toolbar { align-items: stretch; flex-direction: column; }
  .calendar-toolbar label { min-width: 0; }
  .calendar-toolbar .pill { margin-left: 0; align-self: flex-start; }
  .calendar-date { min-width: 0; margin-top: 10px; text-align: left; }
  .build-explainer { grid-template-columns: 1fr; }
  .market-item-identity { grid-template-columns: 52px minmax(0, 1fr); }
  .market-item-identity .item-visual { width: 52px; height: 52px; }
  .market-category-items, .market-analytics-strip, .calculator-summary { grid-template-columns: 1fr; }
  .home-plan-strip { grid-template-columns: 1fr; }
  .energy-scenarios, .stack-summary { grid-template-columns: 1fr 1fr; }
  .modifier-row, .modifier-row.needs-confirmation { grid-template-columns: 1fr; align-items: start; }
  .active-plan { align-items: flex-start; flex-direction: column; }
  .home-priority-row { grid-template-columns: 62px minmax(0, 1fr) 36px; }
  .explanation dl > div { grid-template-columns: 1fr; gap: 4px; }
}

.oc-risk-strip,
.oc-alert-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.oc-risk-strip {
  padding: 10px 18px;
  border-top: 1px solid var(--line-soft);
  border-bottom: 1px solid var(--line-soft);
  color: var(--danger);
  background: color-mix(in srgb, var(--danger) 7%, transparent);
}

.oc-risk-strip span,
.oc-alert {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.oc-risk-strip svg,
.oc-alert svg { width: 16px; height: 16px; }

.oc-alert {
  min-height: 42px;
  padding: 9px 12px;
  border: 1px solid var(--line);
  color: var(--text);
  text-decoration: none;
  background: var(--panel-raised);
}

.oc-alert.critical { border-left: 3px solid var(--danger); }
.oc-alert.warning { border-left: 3px solid var(--warning); }
.oc-alert.ready { border-left: 3px solid var(--success); }
.oc-history-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); background: var(--line-soft); }
.oc-history-summary span { display: grid; gap: 3px; padding: 11px 16px; color: var(--muted); background: var(--panel); font-size: 10px; }
.oc-history-summary strong { color: var(--text); font-size: 12px; overflow-wrap: anywhere; }
.oc-history-members { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.oc-history-member { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-width: 0; padding: 11px 16px; border-bottom: 1px solid var(--line-soft); }
.oc-history-member:nth-child(odd) { border-right: 1px solid var(--line-soft); }
.oc-history-member > span:first-child { min-width: 0; display: grid; gap: 2px; }
.oc-history-member strong, .oc-history-member small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.oc-history-member small { color: var(--muted); }

.oc-analysis-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
  gap: 18px;
}

.oc-analysis-grid > section,
.oc-ranking-grid > section {
  min-width: 0;
  border: 1px solid var(--line-soft);
  background: var(--panel-raised);
}

.oc-analysis-grid h4,
.oc-ranking-grid h4 { margin: 0; padding: 14px 16px; border-bottom: 1px solid var(--line-soft); }

.oc-ranking-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 16px;
}

.oc-ranking-grid ol { list-style: none; margin: 0; padding: 8px 14px 14px; }
.oc-ranking-grid li { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--line-soft); }
.oc-ranking-grid li:last-child { border-bottom: 0; }

.war-history-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.war-history-column {
  min-width: 0;
  border: 1px solid var(--line-soft);
  background: var(--panel-raised);
}

.travel-context {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-top: 16px;
  padding-bottom: 16px;
}

.travel-context > div { display: flex; align-items: center; gap: 10px; }
.travel-context > div > div { display: grid; gap: 3px; }
.stock-item-image { object-fit: contain; background: var(--panel-2); }
.activity-breakdown { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.activity-breakdown > div { display: grid; gap: 6px; padding: 12px; border: 1px solid var(--line-soft); background: var(--panel-raised); }
.activity-breakdown progress { width: 100%; accent-color: var(--green); }
.activity-breakdown small { color: var(--muted); }
.member-evidence-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.evidence-score-group { padding: 14px 18px 0; }
.evidence-score-group h4 { margin: 0 0 10px; color: var(--muted); font-size: 12px; text-transform: uppercase; }

@media (max-width: 1100px) {
  .activity-breakdown { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
  .activity-breakdown { grid-template-columns: 1fr; }
}
.data-freshness { display: inline-flex; align-items: center; gap: 7px; min-height: 34px; padding: 0 10px; border: 1px solid var(--line); color: var(--muted); font-size: 11px; white-space: nowrap; }
.data-freshness.live .status-dot { background: var(--success); }
.data-freshness.recent .status-dot { background: var(--warning); }
.data-freshness.stale .status-dot { background: var(--danger); }
#notification-center-button { position: relative; }
#notification-center-button .nav-badge { position: absolute; top: -5px; right: -5px; }

.dialog#notification-dialog { width: min(900px, calc(100vw - 28px)); overflow: hidden; }
.notification-dialog-content { width: 100%; min-width: 0; max-height: calc(100vh - 34px); display: flex; flex-direction: column; overflow: hidden; }
.notification-dialog-content > .dialog-header { flex: 0 0 auto; padding: 20px 22px 14px; }
.notification-dialog-content > .dialog-header > div { min-width: 0; }
.notification-dialog-content > .dialog-header .icon-button { flex: 0 0 auto; }
.notification-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 0 22px 16px; border-bottom: 1px solid var(--line-soft); }
.notification-toolbar p { min-width: 0; margin: 0; color: var(--muted); overflow-wrap: anywhere; }
.notification-toolbar .button { flex: 0 0 auto; }
.notification-list { min-height: 0; max-height: min(68vh, 680px); overflow: auto; }
.notification-row { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 15px 22px; border-bottom: 1px solid var(--line-soft); }
.notification-row.unread { background: color-mix(in srgb, var(--gold) 7%, transparent); }
.notification-row.read { opacity: .74; }
.notification-row > div { min-width: 0; }
.notification-row strong, .notification-row p { overflow-wrap: anywhere; word-break: break-word; }
.notification-row p { margin: 4px 0; color: var(--muted); line-height: 1.45; }
.notification-row small { color: var(--muted-2); text-transform: capitalize; }
.notification-icon { display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid var(--line); color: var(--gold); background: var(--panel-raised); }
.notification-icon svg { width: 17px; height: 17px; }
.notification-summary { display: flex; align-items: center; gap: 8px; padding: 12px 22px 8px; color: var(--muted); font-size: 11px; }
.notification-summary > * { padding: 5px 8px; border: 1px solid var(--line-soft); }
.notification-summary strong { color: var(--text); }
.notification-filters { display: flex; align-items: center; gap: 14px; padding: 0 22px 12px; border-bottom: 1px solid var(--line-soft); }
.notification-filters select { width: min(210px, 100%); }
.notification-filters label { display: inline-flex; align-items: center; gap: 7px; color: var(--muted); font-size: 11px; cursor: pointer; }
.notification-filters input { width: 16px; height: 16px; min-height: 0; accent-color: var(--green); }
.notification-group { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 12px; padding: 16px 22px; border-bottom: 1px solid var(--line-soft); }
.notification-group.unread { background: color-mix(in srgb, var(--gold) 7%, transparent); }
.notification-group.read { opacity: .76; }
.notification-group.severity-critical { border-left: 3px solid var(--red); }
.notification-group.severity-high { border-left: 3px solid var(--gold); }
.notification-copy { min-width: 0; }
.notification-title { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.notification-copy > small { display: block; margin-top: 4px; color: var(--faint); text-transform: capitalize; }
.notification-copy ul { display: grid; gap: 5px; margin: 10px 0; padding-left: 18px; color: var(--muted); line-height: 1.45; }
.notification-copy p { overflow-wrap: anywhere; color: var(--muted); line-height: 1.45; }
.notification-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 11px; }
.notification-details { margin-top: 10px; color: var(--muted); }
.notification-details summary { width: fit-content; color: var(--blue); font-size: 10px; font-weight: 700; cursor: pointer; }
.notification-details p { margin: 9px 0 0; }

.identity-statuses { display: flex; align-items: stretch; gap: 5px; max-width: 430px; }
.identity-status { min-width: 82px; display: grid; align-content: center; gap: 2px; padding: 6px 8px; border-left: 2px solid var(--line); background: var(--panel); color: var(--muted); font-size: 9px; line-height: 1.25; }
.identity-status b { color: var(--faint); font-size: 8px; text-transform: uppercase; }
.identity-status.torn-subscriber, .identity-status.plan-premium { border-left-color: var(--gold); color: #f0cb72; }
.identity-status.torn-donator { border-left-color: #b9b8aa; color: #d8d7cb; }
.identity-status.torn-unknown { border-left-color: var(--yellow); }
.release-unread-dot { width: 7px; height: 7px; margin-left: auto; border-radius: 50%; background: var(--gold); }
.profile-badge { width: 32px; height: 32px; display: inline-grid; place-items: center; flex: 0 0 auto; padding: 0; border: 1px solid var(--line); border-radius: 50%; background: var(--panel); color: var(--muted); }
button.profile-badge { cursor: pointer; }
.profile-badge svg { width: 15px; height: 15px; }
.profile-badge.discord { border-color: rgba(114,137,218,.46); color: #94a6f3; }
.profile-badge.api { border-color: rgba(55,201,120,.42); color: #71e2a0; }
.profile-badge.admin { border-color: rgba(226,93,85,.42); color: #ff9992; }
.profile-badge.premium, .profile-badge.earned { border-color: rgba(213,170,77,.46); color: #e9c66f; }
.profile-badge.more { width: auto; min-width: 32px; padding: 0 7px; border-radius: 16px; font-size: 9px; }
.home-badge-strip { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin: 9px 0; }
.badge-strip-label { padding: 0 4px; border: 0; background: transparent; color: var(--muted); font-size: 10px; cursor: pointer; }
.badge-strip-label:hover { color: var(--text); }

.connection-page-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-bottom: 26px; }
.connection-card { min-height: 260px; display: flex; flex-direction: column; padding: 18px; border: 1px solid var(--line); background: var(--panel); }
.connection-card .inline-actions, .connection-card > .button { margin-top: auto; align-self: flex-start; }
.connection-state { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid var(--line); color: var(--faint); }
.connection-state.connected { border-color: rgba(55,201,120,.4); color: var(--green); background: rgba(55,201,120,.06); }
.connection-state.disconnected { border-color: rgba(226,93,85,.3); color: var(--red); }
.connection-state svg { width: 20px; }
.connection-facts { display: grid; gap: 0; margin: 3px 0 18px; border-top: 1px solid var(--line-soft); }
.connection-facts span { display: flex; justify-content: space-between; gap: 14px; padding: 9px 0; border-bottom: 1px solid var(--line-soft); color: var(--muted); font-size: 11px; }
.connection-facts b { color: var(--text); text-align: right; overflow-wrap: anywhere; }
.connection-facts .connection-error { color: #ffaaa4; }
.connection-key-form { display: grid; gap: 12px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.connection-key-form p { margin: 0; color: var(--faint); font-size: 10px; line-height: 1.5; }
.toggle-control { display: inline-grid; grid-template-columns: 34px auto; align-items: center; gap: 8px; cursor: pointer; }
.toggle-control input { position: absolute; opacity: 0; pointer-events: none; }
.toggle-control > span { width: 34px; height: 19px; padding: 2px; border: 1px solid var(--line); border-radius: 10px; background: var(--panel-3); }
.toggle-control > span::after { content: ""; display: block; width: 13px; height: 13px; border-radius: 50%; background: var(--faint); transition: transform .18s ease, background .18s ease; }
.toggle-control input:checked + span::after { transform: translateX(15px); background: var(--green); }
.toggle-control input:disabled + span { opacity: .45; }
.toggle-control b { color: var(--muted); font-size: 10px; }

.routing-rule-list { display: grid; gap: 12px; }
.department-assignment { margin-bottom: 24px; }
.department-assignment form { display: grid; grid-template-columns: minmax(220px, .35fr) minmax(0, 1fr) auto; align-items: end; gap: 14px; }
.department-check-grid { min-height: 42px; display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.department-check-grid label { display: inline-flex; align-items: center; gap: 6px; padding: 7px 9px; border: 1px solid var(--line-soft); background: var(--panel-2); color: var(--muted); font-size: 10px; text-transform: capitalize; cursor: pointer; }
.department-check-grid input { width: 15px; height: 15px; min-height: 0; accent-color: var(--green); }
.routing-rule { padding: 17px; border: 1px solid var(--line); border-left: 3px solid var(--gold); background: var(--panel); }
.routing-rule-title { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; align-items: center; gap: 11px; padding-bottom: 14px; border-bottom: 1px solid var(--line-soft); }
.routing-rule-title > div { display: grid; gap: 3px; }
.routing-rule-title small { color: var(--faint); }
.routing-rule-grid { display: grid; grid-template-columns: repeat(5, minmax(120px, 1fr)); gap: 10px; padding: 14px 0; }
.routing-rule-grid .routing-roles { grid-column: span 2; }
.routing-rule-grid select[multiple] { min-height: 100px; }
.routing-channels { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; padding-top: 12px; border-top: 1px solid var(--line-soft); }
.routing-channels label { display: inline-flex; grid-auto-flow: column; align-items: center; gap: 7px; }
.routing-channels input { width: 16px; height: 16px; min-height: 0; accent-color: var(--green); }
.routing-channels > span { color: var(--faint); font-size: 10px; }
.routing-channels .button { margin-left: auto; }

.favorite-restock-list { display: grid; border-top: 1px solid var(--line-soft); }
.favorite-restock-list > div { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 10px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--line-soft); }
.favorite-restock-list > div > div { display: grid; gap: 2px; }
.favorite-restock-list small { color: var(--muted); }
.favorite-restock-list > div > small { grid-column: 1 / -1; }
.travel-route { display: grid; grid-template-columns: minmax(0, 1fr) 24px minmax(0, 1fr); align-items: center; gap: 8px; margin: 13px 0; }
.travel-route > div { display: grid; gap: 3px; }
.travel-route > div:last-child { text-align: right; }
.travel-route span { color: var(--faint); font-size: 9px; text-transform: uppercase; }
.travel-route svg { width: 18px; color: var(--blue); }
.travel-resource-state { display: flex; gap: 8px; margin-top: 12px; }
.travel-resource-state span { flex: 1; display: flex; justify-content: space-between; gap: 8px; padding: 8px; border: 1px solid var(--line-soft); color: var(--muted); font-size: 10px; }
.travel-resource-state b { color: var(--text); }
.travel-status-summary { display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: center; gap: 11px; margin: 10px 0 14px; padding: 11px 13px; border: 1px solid var(--line); border-left: 2px solid var(--blue); background: var(--panel); }
.travel-status-summary > svg { width: 19px; color: var(--blue); }
.travel-status-summary > div { min-width: 0; display: grid; gap: 2px; }
.travel-status-summary small, .travel-status-summary span { color: var(--muted); font-size: 10px; }
.travel-status-summary.detailed { grid-template-columns: 34px minmax(0, 1fr) minmax(180px, auto); }
.travel-status-details summary { color: var(--blue); font-size: 10px; font-weight: 700; cursor: pointer; }
.travel-status-details[open] { grid-column: 1 / -1; margin-top: 8px; }
.travel-detail-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin-top: 10px; background: var(--line-soft); }
.travel-detail-grid span { display: grid; gap: 3px; padding: 9px; background: var(--surface); }
.travel-detail-grid b { color: var(--text); }
.travel-status-details p { margin: 9px 0 0; color: var(--muted); font-size: 10px; }
.intelligence-status-row .travel-status-summary { width: fit-content; max-width: 100%; }

.table-link { display: grid; gap: 2px; padding: 0; border: 0; background: transparent; color: var(--text); text-align: left; cursor: pointer; }
.table-link small { color: var(--faint); }
.data-table progress { width: 110px; height: 5px; accent-color: var(--green); }
.stock-preferences { margin-bottom: 24px; }
.stock-card-list { display: grid; gap: 10px; }
.stock-recommendation, .stock-scenario { margin: 0; }
.stock-recommendation p, .stock-scenario p { color: var(--muted); line-height: 1.5; }
.stock-recommendation ul { padding-left: 18px; color: var(--muted); font-size: 11px; }
.stock-allocation { display: grid; grid-template-columns: 80px minmax(0, 1fr); gap: 3px 10px; padding: 9px 0; border-top: 1px solid var(--line-soft); }
.stock-allocation small { grid-column: 2; color: var(--faint); }
.stock-detail-slot { margin: 20px 0; }
.stock-detail { border-left: 3px solid var(--green); }
.stock-detail-metrics, .stock-benefit-detail { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: var(--line-soft); }
.stock-detail-metrics > div, .stock-benefit-detail > div { min-width: 0; display: grid; gap: 4px; padding: 12px; background: var(--panel); }
.stock-detail-metrics span, .stock-benefit-detail span { color: var(--faint); font-size: 9px; text-transform: uppercase; }
.stock-detail-metrics strong, .stock-benefit-detail strong { overflow-wrap: anywhere; }
.stock-price-chart { height: 180px; display: flex; align-items: end; gap: 2px; margin: 16px 0; padding: 12px; border: 1px solid var(--line-soft); background: var(--panel-2); }
.stock-price-chart > span { flex: 1; min-width: 2px; max-height: 100%; background: var(--green); opacity: .72; }
.stock-price-chart > p { margin: auto; color: var(--muted); }

.badge-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.badge-card { min-width: 0; display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: 12px; padding: 16px; border: 1px solid var(--line); background: var(--panel); }
.badge-card.locked { opacity: .66; }
.badge-card h3 { margin: 4px 0; }
.badge-card p { margin: 0 0 10px; color: var(--muted); font-size: 11px; line-height: 1.5; }
.badge-card progress { width: 100%; height: 5px; accent-color: var(--gold); }
.badge-emblem { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid rgba(213,170,77,.35); color: var(--gold); background: rgba(213,170,77,.06); }
.badge-emblem svg { width: 22px; }
.badge-pin { display: grid; justify-items: center; align-content: start; gap: 4px; color: var(--muted); font-size: 9px; }
.badge-pin input { width: 17px; height: 17px; min-height: 0; accent-color: var(--gold); }
.release-admin-list, .badge-admin-list { display: grid; border-top: 1px solid var(--line); }
.release-admin-row, .badge-admin-row { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--line-soft); }
.release-admin-row h3, .badge-admin-row h3 { margin: 6px 0; }
.release-admin-row p, .badge-admin-row p { margin: 0 0 5px; color: var(--muted); line-height: 1.45; }
.release-admin-row small, .badge-admin-row small { color: var(--faint); }
.badge-admin-row { grid-template-columns: 44px minmax(0, 1fr) auto; }
.admin-editor { display: grid; gap: 12px; }
.admin-editor label { display: grid; gap: 5px; }
.admin-editor label > span { color: var(--muted); font-size: 10px; text-transform: uppercase; }
.release-record { padding: 14px 0 20px; border-bottom: 1px solid var(--line); }
.release-record > header { display: flex; justify-content: space-between; align-items: start; gap: 14px; }
.release-record h3 { margin: 7px 0; }
.release-record > p { color: var(--muted); line-height: 1.5; }
.release-record time { color: var(--faint); font-size: 10px; white-space: nowrap; }

.saved-view-controls,
.export-menu { display: inline-flex; align-items: center; gap: 6px; }
.saved-view-controls select { min-width: 128px; max-width: 190px; }
.export-menu .button { min-height: 34px; padding: 0 10px; }

.listing-suspicious { opacity: .68; background: color-mix(in srgb, var(--danger) 5%, transparent); }
.listing-suspicious:hover { opacity: 1; }
.listing-suspicious td:nth-child(2) > .pill { margin-left: 8px; }
.market-protection { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 12px; padding: 14px 18px; border: 1px solid var(--line); }
.market-protection.warning { border-left: 3px solid var(--warning); background: color-mix(in srgb, var(--warning) 6%, transparent); }
.market-protection.clear { border-left: 3px solid var(--success); }
.market-protection svg { color: var(--success); }
.market-protection.warning svg { color: var(--warning); }
.market-protection p { margin: 4px 0; color: var(--muted); }
.market-protection small { color: var(--muted-2); }
.market-alert-row.muted { opacity: .62; }
.watchlist-list { display: grid; border-top: 1px solid var(--line-soft); }
.watchlist-row { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 12px 18px; border-bottom: 1px solid var(--line-soft); }
.watchlist-row > div:first-child { display: grid; gap: 3px; }
.watchlist-row small { color: var(--muted); }
.scanner-health .metric-grid { margin-bottom: 12px; }
.scoring-rule-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; padding: 18px; }
.scoring-rule-grid fieldset { min-width: 0; display: grid; gap: 10px; margin: 0; padding: 14px; border: 1px solid var(--line-soft); }
.scoring-rule-grid legend { padding: 0 7px; color: var(--gold); font-size: 12px; font-weight: 700; }
.scoring-rule-grid label { display: grid; grid-template-columns: minmax(0, 1fr) 86px; align-items: center; gap: 10px; text-transform: capitalize; }

@media (max-width: 560px) {
  .data-freshness span:last-child { display: none; }
  .data-freshness { min-width: 34px; padding: 0; justify-content: center; }
  .notification-toolbar, .notification-row, .watchlist-row { align-items: stretch; }
  .notification-toolbar, .watchlist-row { flex-direction: column; }
  .notification-row { grid-template-columns: 34px minmax(0, 1fr); }
  .notification-row > .button, .notification-row > a.button { grid-column: 2; justify-self: start; }
  .notification-summary, .notification-filters { align-items: stretch; flex-direction: column; }
  .notification-filters select { width: 100%; }
  .notification-title { align-items: flex-start; }
  .badge-grid { grid-template-columns: 1fr; }
  .badge-card { grid-template-columns: 42px minmax(0, 1fr); }
  .badge-pin { grid-column: 2; grid-auto-flow: column; justify-content: start; }
  .release-admin-row, .badge-admin-row { grid-template-columns: 1fr; }
  .stock-detail-metrics, .stock-benefit-detail { grid-template-columns: 1fr; }
  .travel-resource-state { flex-direction: column; }
  .saved-view-controls select { min-width: 0; width: 120px; }
  .export-menu .button span { display: none; }
}

@media (max-width: 1100px) {
  .identity-statuses { display: none; }
  .badge-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stock-detail-metrics, .stock-benefit-detail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .oc-analysis-grid { grid-template-columns: 1fr; }
  .oc-ranking-grid { grid-template-columns: 1fr 1fr; }
  .war-history-grid { grid-template-columns: 1fr; }
  .scoring-rule-grid { grid-template-columns: 1fr; }
  .form-grid.four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .routing-rule-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
  .oc-ranking-grid { grid-template-columns: 1fr; }
  .form-grid.two, .form-grid.four { grid-template-columns: 1fr; }
  .badge-grid { grid-template-columns: 1fr; }
  .stock-detail-metrics, .stock-benefit-detail { grid-template-columns: 1fr; }
  .routing-rule-grid { grid-template-columns: 1fr; }
  .routing-rule-grid .routing-roles { grid-column: auto; }
  .connection-facts span { display: grid; gap: 3px; }
  .connection-facts b { text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
  .login-scene::before, .login-title-stack, .login-actions, .flight-trivia,
  .login-scene.departing, .app-shell.entering { animation: none !important; }
}

@media (max-width: 1100px) {
  .connection-page-grid { grid-template-columns: 1fr; }
  .department-assignment form { grid-template-columns: 1fr; align-items: stretch; }
  .routing-rule-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .routing-rule-grid .routing-roles { grid-column: 1 / -1; }
}

@media (max-width: 620px) {
  .routing-rule-title { grid-template-columns: 32px minmax(0, 1fr); }
  .routing-rule-title > .toggle-control { grid-column: 2; }
  .routing-rule-grid { grid-template-columns: 1fr; }
  .routing-rule-grid .routing-roles { grid-column: auto; }
  .routing-channels { align-items: flex-start; flex-direction: column; }
  .routing-channels .button { width: 100%; margin-left: 0; }
  .connection-page-grid .inline-actions { align-items: stretch; flex-direction: column; }
  .connection-page-grid .inline-actions .button { width: 100%; }
  .travel-status-summary.detailed { grid-template-columns: 34px minmax(0, 1fr); }
}

/* 0.22 control-center hierarchy */
.app-shell { grid-template-columns: 240px minmax(0, 1fr); }
.sidebar { background: var(--panel-2); }
.sidebar-brand { height: 74px; padding-inline: 18px; }
.main-nav { gap: 2px; padding: 14px 10px; }
.nav-section {
  width: 100%; min-height: 34px; display: flex; align-items: center; justify-content: space-between;
  gap: 10px; margin: 8px 0 2px; padding: 0 10px; border: 0; background: transparent;
  color: var(--faint); font-size: 10px; font-weight: 800; text-align: left; text-transform: uppercase; cursor: pointer;
}
.nav-section:first-child { margin-top: 0; }
.nav-section svg { width: 14px; transition: transform .18s ease; }
.nav-section[aria-expanded="true"] { color: var(--text); }
.nav-section[aria-expanded="true"] svg { color: var(--accent); transform: rotate(180deg); }
.nav-group-collapsed { display: none; }
.nav-item { min-height: 40px; border-radius: var(--radius); }
.nav-item:hover { background: var(--panel-3); }
.nav-item.active { border-color: color-mix(in srgb, var(--accent) 36%, var(--line)); background: color-mix(in srgb, var(--accent) 12%, var(--panel)); }
.nav-item.active svg { color: var(--accent); }
.admin-panel-entry { margin-top: 12px; border-top-color: var(--line); background: color-mix(in srgb, var(--accent) 5%, transparent); }
.admin-panel-entry > svg:last-child { width: 14px; color: var(--faint); }
.admin-nav-routes { display: none !important; }
.sidebar-footer-panel { background: var(--panel); }

.workspace { background: var(--bg); }
.topbar { min-height: 74px; padding: 12px clamp(20px, 3vw, 42px); background: color-mix(in srgb, var(--bg) 92%, transparent); }
.topbar h1 { font-size: 21px; }
.eyebrow { color: var(--accent); }
.view-root { width: min(1440px, 100%); padding: clamp(24px, 3vw, 42px); }
.button.primary { background: var(--accent); color: white; }
.button.primary:hover { background: #60a5fa; }
.button.secondary:hover, .button.ghost:hover, .icon-button:hover { border-color: #43536d; background: var(--panel-3); }
input:focus, select:focus, textarea:focus { border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 15%, transparent); }
.segment button.active, .segmented-control button.active {
  border-color: color-mix(in srgb, var(--accent) 65%, var(--line));
  background: color-mix(in srgb, var(--accent) 16%, var(--panel-3)); color: #bfdbfe;
  box-shadow: inset 0 -2px 0 var(--accent);
}

.home-profile-summary { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.home-profile-identity { min-width: 0; display: flex; align-items: center; gap: 15px; }
.home-profile-copy { min-width: 0; }
.home-profile-summary h2 { margin: 2px 0 4px; font-size: clamp(24px, 3vw, 34px); }
.home-profile-summary h2 small { color: var(--muted); font-size: .52em; font-weight: 600; }
.home-profile-summary p { margin: 0; color: var(--muted); }
.home-avatar { width: 58px; height: 58px; flex: 0 0 58px; border: 1px solid var(--line); border-radius: 50%; object-fit: cover; background: var(--panel); }
.home-avatar.fallback { display: grid; place-items: center; color: #bfdbfe; font-size: 22px; font-weight: 800; background: color-mix(in srgb, var(--accent) 18%, var(--panel)); }
.home-summary-tools { display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.home-summary-tools > small { color: var(--faint); white-space: nowrap; }
.clock-board.compact { min-width: 270px; }
.clock-board.compact > div { padding: 9px 11px; }
.clock-board.compact strong { font-size: 11px; }
.home-badge-strip { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
.identity-chip { min-height: 25px; display: inline-flex; align-items: center; gap: 6px; padding: 0 8px; border: 1px solid var(--line); border-radius: 13px; background: var(--panel); color: var(--muted); font-size: 9px; font-weight: 700; }
.identity-chip svg { width: 13px; }
.identity-chip.discord, .identity-chip.api { border-color: color-mix(in srgb, var(--accent) 35%, var(--line)); color: #bfdbfe; }
.identity-chip.premium { border-color: color-mix(in srgb, var(--warning) 38%, var(--line)); color: #fcd34d; }
.identity-chip.admin { border-color: color-mix(in srgb, var(--red) 32%, var(--line)); color: #fca5a5; }

.home-primary-status { margin-bottom: 16px; padding: 20px; border: 1px solid var(--line); border-left: 3px solid var(--accent); border-radius: var(--radius); background: var(--panel); }
.home-current-state { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 13px; }
.home-current-state > div { min-width: 0; display: grid; gap: 3px; }
.home-current-state small, .home-current-state span, .home-current-state time { color: var(--muted); }
.home-current-state strong { font-size: 20px; }
.state-icon { width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid var(--line); background: var(--panel-3); }
.state-icon svg { width: 19px; }
.state-icon.success { color: var(--success); }
.state-icon.warning { color: var(--warning); }
.home-primary-status .travel-status-summary { margin: 0; padding: 0; border: 0; background: transparent; }
.home-primary-status .travel-status-summary > svg { width: 25px; }
.home-primary-status .travel-status-summary strong { font-size: 20px; }
.home-primary-status .travel-status-summary small, .home-primary-status .travel-status-summary span { font-size: 11px; }
.home-primary-status .travel-status-details p { margin-bottom: 0; }

.home-resource-card { display: grid; grid-template-columns: minmax(0, 1fr) 38px; align-items: center; gap: 16px; margin-bottom: 26px; padding: 16px 18px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); }
.home-resource-grid { gap: 22px; }
.home-resource { grid-template-columns: minmax(0, 1fr) auto; gap: 5px 10px; }
.home-resource > span { color: var(--muted); }
.home-resource svg { color: var(--accent); }
.home-resource strong { text-align: right; }
.home-resource strong small { color: var(--faint); font-weight: 500; }
.home-resource progress { grid-column: 1 / -1; height: 6px; overflow: hidden; border-radius: 3px; }
.home-resource progress::-webkit-progress-value { background: var(--accent); }
.home-resource progress::-moz-progress-bar { background: var(--accent); }
.home-resource em { grid-column: 1 / -1; color: var(--faint); font-size: 9px; font-style: normal; }

.home-dashboard-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr); grid-template-areas: "actions upcoming" "actions oc" "targets restocks"; gap: 16px; align-items: stretch; }
.home-card { min-width: 0; padding: 19px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); }
.home-card > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 17px; }
.home-card > header > div { min-width: 0; display: flex; align-items: center; gap: 8px; }
.home-card > header > div:has(.eyebrow) { display: grid; gap: 3px; }
.home-card > header svg { width: 17px; color: var(--accent); }
.home-card h3 { margin: 0; font-size: 15px; }
.home-card header span { color: var(--muted); font-size: 11px; }
.home-card p { margin: 5px 0 12px; color: var(--muted); line-height: 1.5; }
.home-card .empty-state { min-height: 100px; border-top: 0; }
.action-center { grid-area: actions; }
.upcoming-card { grid-area: upcoming; }
.oc-card { grid-area: oc; }
.restock-card { grid-area: restocks; }
.targets-card { grid-area: targets; }
.action-center-row { min-height: 86px; display: grid; grid-template-columns: 30px minmax(0, 1fr) 34px 34px; align-items: center; gap: 10px; padding: 12px 0; border-top: 1px solid var(--line-soft); }
.action-center-row > div { min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 8px; align-items: center; }
.action-center-row strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.action-center-row small { grid-column: 1 / -1; color: var(--muted); line-height: 1.45; }
.action-rank { width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--muted); font-size: 11px; }
.action-center-row .icon-button { width: 32px; height: 32px; }
.status-label { width: max-content; display: inline-flex; align-items: center; gap: 5px; color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.status-label svg { width: 13px; }
.status-label.success { color: var(--success); }
.status-label.warning { color: var(--warning); }
.status-label.critical { color: var(--danger); }
.status-label.neutral { color: #93c5fd; }
.compact-data-row { min-height: 60px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 9px 0; border-top: 1px solid var(--line-soft); }
.compact-data-row > div { min-width: 0; display: grid; gap: 3px; }
.compact-data-row > div:last-child { text-align: right; }
.compact-data-row small { color: var(--muted); }
.oc-home-summary { display: flex; align-items: start; justify-content: space-between; gap: 10px; }
.oc-card > progress { width: 100%; height: 6px; margin: 12px 0; border: 0; appearance: none; background: var(--panel-3); }
.oc-card > progress::-webkit-progress-bar { background: var(--panel-3); }
.oc-card > progress::-webkit-progress-value { background: var(--accent); }
.oc-card > progress::-moz-progress-bar { background: var(--accent); }
.home-value { font-size: 19px; }
.text-link { margin-top: 10px; padding: 0; border: 0; background: transparent; color: #93c5fd; cursor: pointer; }
.home-connect-empty { min-height: 360px; border: 1px solid var(--line); background: var(--panel); }
.home-connect-empty h3 { margin: 4px 0; color: var(--text); }
.home-connect-empty p { max-width: 540px; }

.admin-console-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.admin-console-grid button { min-width: 0; min-height: 78px; display: grid; grid-template-columns: 34px minmax(0, 1fr) 16px; align-items: center; gap: 10px; padding: 12px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); color: var(--text); text-align: left; cursor: pointer; }
.admin-console-grid button:hover { border-color: color-mix(in srgb, var(--accent) 45%, var(--line)); background: var(--panel-3); }
.admin-console-grid button > svg:first-child { width: 18px; color: var(--accent); }
.admin-console-grid button > svg:last-child { width: 14px; color: var(--faint); }
.admin-console-grid span { min-width: 0; display: grid; gap: 4px; }
.admin-console-grid small { color: var(--muted); }

.dialog { width: min(620px, calc(100% - 28px)); background: var(--panel-2); }
.dialog form { padding: 22px; }
.dialog#notification-dialog { position: fixed; inset: 0 0 0 auto; width: min(520px, 100vw); max-width: 100vw; height: 100vh; max-height: 100vh; margin: 0; border-radius: 0; }
.notification-dialog-content { max-height: 100vh; }
.notification-list { max-height: none; flex: 1; }

@media (max-width: 1100px) {
  .home-profile-summary { align-items: flex-start; }
  .home-summary-tools { align-items: flex-end; flex-direction: column; }
  .home-dashboard-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-areas: "actions actions" "upcoming oc" "targets restocks"; }
  .admin-console-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .main-nav { align-items: center; }
  .nav-section { width: auto; min-width: max-content; min-height: 38px; display: inline-flex; margin: 0; padding: 0 9px; border: 1px solid transparent; border-radius: var(--radius); }
  .nav-section[aria-expanded="true"] { border-color: var(--line); background: var(--panel-3); }
  .nav-section svg { display: none; }
  .admin-panel-entry { margin-top: 0; }
  .home-profile-summary { align-items: stretch; flex-direction: column; }
  .home-profile-identity { align-items: flex-start; }
  .home-summary-tools { align-items: center; justify-content: space-between; flex-direction: row; flex-wrap: wrap; }
  .clock-board.compact { min-width: 0; flex: 1 1 250px; }
  .home-current-state { grid-template-columns: 40px minmax(0, 1fr); }
  .home-current-state time { grid-column: 2; }
  .home-resource-card { grid-template-columns: 1fr; }
  .home-resource-card > .icon-button { display: none; }
  .home-resource-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-dashboard-grid { grid-template-columns: 1fr; grid-template-areas: "actions" "upcoming" "oc" "restocks" "targets"; }
  .action-center-row { grid-template-columns: 28px minmax(0, 1fr) 32px; }
  .action-center-row .action-info { display: none; }
  .compact-data-row { grid-template-columns: 1fr auto; }
  .admin-console-grid { grid-template-columns: 1fr; }
  .dialog#notification-dialog { width: 100vw; }
}

@media (max-width: 440px) {
  .home-profile-identity { display: grid; grid-template-columns: 48px minmax(0, 1fr); }
  .home-avatar { width: 48px; height: 48px; flex-basis: 48px; }
  .home-badge-strip { grid-column: 1 / -1; }
  .identity-chip span { display: none; }
  .home-resource-grid { grid-template-columns: 1fr; gap: 13px; }
  .home-primary-status, .home-resource-card, .home-card { padding: 15px; }
  .travel-detail-grid { grid-template-columns: 1fr; }
  .compact-data-row { align-items: start; grid-template-columns: 1fr; }
  .compact-data-row > div:last-child { text-align: left; }
}

/* Global command bar */
.topbar-heading { min-width: 150px; }
.topbar-heading .data-freshness { width: max-content; margin-top: 5px; }
.topbar-actions { min-width: 0; }
.global-command-trigger { width: clamp(360px, 35vw, 480px); min-height: 42px; display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 0 10px 0 13px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel-2); color: var(--muted); text-align: left; cursor: text; transition: border-color .18s ease, background .18s ease; }
.global-command-trigger:hover, .global-command-trigger:focus-visible { border-color: color-mix(in srgb, var(--accent) 55%, var(--line)); background: var(--panel); outline: 0; }
.global-command-trigger svg { width: 17px; color: var(--accent); }
.global-command-trigger > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.global-command-trigger kbd, .command-palette-footer kbd { padding: 2px 6px; border: 1px solid var(--line); border-radius: 4px; background: var(--panel-3); color: var(--muted); font-size: 9px; font-family: inherit; white-space: nowrap; }
.account-menu-wrap { position: relative; flex: 0 0 auto; }
.account-avatar-button { width: 40px; height: 40px; display: grid; place-items: center; padding: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 50%; background: var(--panel-2); cursor: pointer; transition: border-color .18s ease, background .18s ease; }
.account-avatar-button:hover, .account-avatar-button:focus-visible, .account-avatar-button[aria-expanded="true"] { border-color: var(--accent); background: var(--panel-3); outline: 0; }
.account-avatar-button img { width: 100%; height: 100%; display: block; object-fit: cover; }
.account-avatar-button > span { width: 100%; height: 100%; display: none; place-items: center; color: var(--muted); }
.account-avatar-button > span svg { width: 18px; }
.account-avatar-button img.hidden + span { display: grid; }
.account-menu { position: absolute; z-index: 80; top: calc(100% + 10px); right: 0; width: 210px; display: grid; padding: 7px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); box-shadow: var(--shadow); opacity: 0; transform: translateY(-5px); pointer-events: none; transition: opacity .18s ease, transform .18s ease; }
.account-menu[aria-hidden="false"] { opacity: 1; transform: translateY(0); pointer-events: auto; }
.account-menu button { min-height: 39px; display: grid; grid-template-columns: 20px minmax(0, 1fr); align-items: center; gap: 9px; padding: 0 10px; border: 0; border-radius: 4px; background: transparent; color: var(--muted); text-align: left; cursor: pointer; }
.account-menu button:hover, .account-menu button:focus-visible { background: var(--panel-3); color: var(--text); outline: 0; }
.account-menu button:last-child { margin-top: 5px; border-top: 1px solid var(--line-soft); border-radius: 0 0 4px 4px; color: #fca5a5; }
.account-menu svg { width: 16px; }

.command-palette-dialog { width: min(720px, calc(100vw - 28px)); max-height: 70vh; margin: 10vh auto auto; padding: 0; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel-2); color: var(--text); box-shadow: var(--shadow); }
.command-palette-dialog::backdrop { background: rgba(3, 7, 12, .76); backdrop-filter: blur(4px); }
.command-palette-dialog[open] { animation: command-palette-in .18s ease both; }
@keyframes command-palette-in { from { opacity: 0; transform: translateY(-8px); } }
.command-palette-shell { max-height: 70vh; display: flex; flex-direction: column; }
.command-palette-input-row { min-height: 62px; display: grid; grid-template-columns: 24px minmax(0, 1fr) auto 38px; align-items: center; gap: 10px; padding: 0 12px 0 18px; border-bottom: 1px solid var(--line); }
.command-mode-icon { display: grid; place-items: center; color: var(--accent); }
.command-mode-icon.ai { color: #a78bfa; }
.command-mode-icon svg { width: 19px; }
#command-palette-input { width: 100%; min-height: 46px; padding: 0; border: 0; background: transparent; box-shadow: none; color: var(--text); font-size: 15px; }
#command-palette-input:focus { border: 0; box-shadow: none; outline: 0; }
.command-mode-label { padding: 4px 8px; border: 1px solid var(--line); border-radius: 4px; color: var(--muted); font-size: 9px; font-weight: 750; text-transform: uppercase; white-space: nowrap; }
.command-mode-label.ai { border-color: color-mix(in srgb, #a78bfa 42%, var(--line)); color: #c4b5fd; }
.command-palette-status { min-height: 0; color: var(--muted); font-size: 11px; }
.command-palette-status:not(:empty) { min-height: 36px; display: flex; align-items: center; gap: 9px; padding: 0 18px; border-bottom: 1px solid var(--line-soft); }
.command-palette-status .spinner { width: 15px; height: 15px; border-width: 2px; }
.command-palette-results { min-height: 220px; overflow-y: auto; overscroll-behavior: contain; padding: 9px; }
.command-empty { min-height: 210px; display: grid; place-items: center; padding: 28px; color: var(--muted); text-align: center; }
.command-empty svg { width: 25px; margin-bottom: 10px; color: var(--faint); }
.command-group + .command-group { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line-soft); }
.command-group-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 5px 9px 7px; color: var(--faint); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.command-result { width: 100%; min-height: 54px; display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: 11px; padding: 8px 10px; border: 1px solid transparent; border-radius: var(--radius); background: transparent; color: var(--text); text-align: left; cursor: pointer; }
.command-result:hover, .command-result.active, .command-result:focus-visible { border-color: var(--line); background: var(--panel-3); outline: 0; }
.command-result-icon { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 5px; color: var(--accent); background: var(--panel); }
.command-result-icon.ai { color: #a78bfa; }
.command-result-icon svg { width: 16px; }
.command-result-copy { min-width: 0; display: grid; gap: 3px; }
.command-result-copy strong, .command-result-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.command-result-copy strong { font-size: 12px; }
.command-result-copy small { color: var(--muted); font-size: 10px; }
.command-result-type { color: var(--faint); font-size: 9px; text-transform: uppercase; white-space: nowrap; }
.command-result.locked { opacity: .62; }
.command-view-all { min-height: 32px; margin: 2px 9px; padding: 0; border: 0; background: transparent; color: #93c5fd; font-size: 10px; cursor: pointer; }
.command-palette-footer { min-height: 38px; display: flex; align-items: center; gap: 18px; padding: 0 18px; border-top: 1px solid var(--line); color: var(--faint); font-size: 9px; }
.command-palette-footer span { display: inline-flex; align-items: center; gap: 4px; }
.ai-response { padding: 14px; border: 1px solid color-mix(in srgb, #a78bfa 24%, var(--line)); border-radius: var(--radius); background: color-mix(in srgb, #a78bfa 5%, var(--panel)); }
.ai-response header { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.ai-response header span { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid color-mix(in srgb, #a78bfa 35%, var(--line)); color: #c4b5fd; }
.ai-response header svg { width: 17px; }
.ai-response h3 { margin: 0; font-size: 15px; }
.ai-response p { margin: 6px 0 0; color: var(--muted); line-height: 1.55; }
.ai-response ul { display: grid; gap: 7px; margin: 12px 0; padding: 0; list-style: none; }
.ai-response li { padding-left: 14px; color: var(--text); font-size: 12px; line-height: 1.45; }
.ai-response li::before { content: ""; width: 5px; height: 5px; float: left; margin: 6px 0 0 -14px; border-radius: 50%; background: #a78bfa; }
.ai-response-actions { display: flex; flex-wrap: wrap; gap: 7px; padding-top: 10px; border-top: 1px solid var(--line-soft); }
.ai-response-source { display: block; margin-top: 10px; color: var(--faint); font-size: 9px; }

@media (max-width: 1180px) {
  .global-command-trigger { width: clamp(260px, 30vw, 360px); }
  .global-command-trigger > span { font-size: 0; }
  .global-command-trigger > span::after { content: "Search or ask BOSBOT..."; font-size: 12px; }
}

@media (max-width: 760px) {
  .topbar { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .topbar-actions { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) 40px 40px 40px; gap: 8px; }
  .global-command-trigger { width: 100%; min-width: 0; }
  .global-command-trigger kbd { display: none; }
  .account-menu { position: fixed; top: 128px; right: 12px; }
  .command-palette-dialog { width: calc(100vw - 16px); max-height: calc(100vh - 24px); margin: 12px auto; }
  .command-palette-shell { max-height: calc(100vh - 24px); }
  .command-palette-input-row { grid-template-columns: 22px minmax(0, 1fr) 36px; padding-left: 13px; }
  .command-mode-label { display: none; }
  .command-palette-results { min-height: 280px; }
  .command-palette-footer { justify-content: center; }
  .command-palette-footer span:first-child { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .command-palette-dialog[open], .account-menu { animation: none; transition: none; }
}

/* Account-wide appearance */
:root[data-theme="slate"] {
  --bg: #0d121b; --panel: #172131; --panel-2: #111925; --panel-3: #1d2a3c;
  --line: #314056; --line-soft: #243247; --accent: #60a5fa; --blue: #60a5fa;
}
:root[data-theme="graphite"] {
  --bg: #0d0f12; --panel: #181b20; --panel-2: #121419; --panel-3: #21252c;
  --line: #343941; --line-soft: #282d34; --accent: #8b9db7; --blue: #8b9db7;
}
:root[data-login-scene="command-grid"] .login-scene::before {
  background-color: #080d15;
  background-image: linear-gradient(rgba(59,130,246,.10) 1px, transparent 1px), linear-gradient(90deg, rgba(59,130,246,.10) 1px, transparent 1px), radial-gradient(circle at 72% 38%, rgba(59,130,246,.22), transparent 34%);
  background-size: 44px 44px, 44px 44px, 100% 100%;
}
:root[data-login-scene="command-grid"] .login-scrim { background: linear-gradient(90deg, rgba(4,8,14,.88), rgba(4,8,14,.32)); }
:root[data-login-scene="starfield"] .login-scene::before {
  background-color: #060912;
  background-image: radial-gradient(circle at 18% 28%, rgba(255,255,255,.75) 0 1px, transparent 1.5px), radial-gradient(circle at 72% 62%, rgba(147,197,253,.8) 0 1px, transparent 1.6px), radial-gradient(circle at 68% 28%, rgba(59,130,246,.28), transparent 28%), radial-gradient(circle at 40% 70%, rgba(255,255,255,.35) 0 1px, transparent 1.3px);
  background-size: 170px 170px, 230px 230px, 100% 100%, 110px 110px;
}
:root[data-login-scene="starfield"] .login-scrim { background: linear-gradient(90deg, rgba(3,5,11,.92), rgba(3,5,11,.24)); }
:root[data-login-scene="instant"] .login-scene::before { background: linear-gradient(135deg, var(--panel-2), var(--bg)); transform: none; animation: none; }
:root[data-login-scene="instant"] .login-scrim { background: rgba(3,6,10,.3); }
:root[data-login-scene="instant"] .login-title-stack,
:root[data-login-scene="instant"] .login-actions,
:root[data-login-scene="instant"] .flight-trivia,
:root[data-motion="reduced"] .login-scene::before,
:root[data-motion="reduced"] .login-title-stack,
:root[data-motion="reduced"] .login-actions,
:root[data-motion="reduced"] .flight-trivia,
:root[data-motion="reduced"] .login-scene.departing,
:root[data-motion="reduced"] .app-shell.entering { animation: none !important; transition: none !important; }

/* Appearance settings */
.settings-dialog { width: min(790px, calc(100% - 28px)); }
.settings-dialog form { max-height: calc(100vh - 32px); overflow-y: auto; }
.preference-section { display: grid; gap: 11px; padding-top: 15px; border-top: 1px solid var(--line-soft); }
.preference-section > div:first-child { display: grid; gap: 3px; }
.preference-section small { color: var(--muted); line-height: 1.4; }
.preference-choice-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.login-scene-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.preference-card { min-width: 0; min-height: 72px; display: grid; grid-template-columns: 18px minmax(0, 1fr); align-items: center; gap: 9px; padding: 11px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); cursor: pointer; transition: border-color .16s ease, transform .16s ease, background .16s ease; }
.preference-card:hover { border-color: color-mix(in srgb, var(--accent) 55%, var(--line)); transform: translateY(-1px); }
.preference-card:has(input:checked) { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 10%, var(--panel)); box-shadow: inset 0 -2px var(--accent); }
.preference-card input { width: 16px; height: 16px; min-height: 0; margin: 0; accent-color: var(--accent); }
.preference-card > span:last-child { min-width: 0; display: grid; gap: 3px; }
.preference-card b { font-size: 11px; }
.preference-card small { font-size: 9px; }
.login-scene-grid .preference-card { grid-template-columns: 16px minmax(0, 1fr); align-content: start; }
.scene-preview { grid-column: 1 / -1; height: 38px; overflow: hidden; border: 1px solid var(--line-soft); border-radius: 4px; background: var(--panel-2); }
.scene-flight .scene-preview { background: linear-gradient(130deg, rgba(2,5,8,.9), rgba(213,170,77,.22)), url("/assets/bos-flight-hero.webp") center / cover; }
.scene-command .scene-preview { background-color: #0a111d; background-image: linear-gradient(rgba(59,130,246,.2) 1px, transparent 1px), linear-gradient(90deg, rgba(59,130,246,.2) 1px, transparent 1px); background-size: 9px 9px; }
.scene-starfield .scene-preview { background: radial-gradient(circle at 25% 30%, white 0 1px, transparent 1.4px), radial-gradient(circle at 68% 62%, #93c5fd 0 1px, transparent 1.4px), radial-gradient(circle at 60% 30%, #1e3a8a, #050914 48%); background-size: 32px 32px, 45px 45px, 100% 100%; }
.scene-instant .scene-preview { background: linear-gradient(135deg, var(--panel-3), var(--bg)); }
.preference-inline-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.navigation-settings-details { border-top: 1px solid var(--line-soft); }
.navigation-settings-details > summary { min-height: 48px; display: flex; align-items: center; justify-content: space-between; cursor: pointer; list-style: none; }
.navigation-settings-details > summary::-webkit-details-marker { display: none; }
.navigation-settings-details > summary span { display: flex; align-items: center; gap: 8px; }
.navigation-settings-details > summary svg { width: 16px; color: var(--accent); }
.navigation-settings-details > summary > svg { transition: transform .18s ease; }
.navigation-settings-details[open] > summary > svg { transform: rotate(180deg); }
.navigation-settings-details > p { margin: 0 0 10px; color: var(--muted); font-size: 11px; }

/* Feedback popup and ticket history */
.feedback-dialog { width: min(840px, calc(100% - 28px)); }
.feedback-dialog-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(220px, .7fr); gap: 18px; }
.feedback-compose { min-width: 0; display: grid; gap: 14px; }
.field-counter { display: block; margin-top: -2px; color: var(--faint); text-align: right; font-size: 9px; }
.feedback-recent-panel { min-width: 0; padding: 14px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); }
.feedback-recent-panel > header { display: grid; gap: 3px; margin-bottom: 10px; }
.feedback-recent-panel > header small { color: var(--muted); }
.feedback-recent-row { min-height: 62px; display: flex; align-items: center; justify-content: space-between; gap: 9px; padding: 9px 0; border-top: 1px solid var(--line-soft); }
.feedback-recent-row > div { min-width: 0; display: grid; gap: 3px; }
.feedback-recent-row strong, .feedback-recent-row small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.feedback-recent-row strong { font-size: 10px; }
.feedback-recent-row small { color: var(--faint); font-size: 9px; }
.feedback-ticket-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.feedback-ticket-card { min-width: 0; padding: 16px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); }
.feedback-ticket-card header { display: flex; align-items: center; justify-content: space-between; gap: 9px; }
.feedback-ticket-card header > div { display: flex; gap: 6px; }
.feedback-ticket-card header > small { color: var(--faint); }
.feedback-ticket-card h3 { margin: 14px 0 6px; font-size: 14px; }
.feedback-ticket-card p { margin: 0 0 10px; overflow: hidden; color: var(--muted); line-height: 1.5; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; }

/* Premium access map */
.premium-hero { position: relative; min-height: 250px; display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(220px, .5fr); align-items: center; gap: 30px; margin-bottom: 18px; padding: clamp(24px, 4vw, 42px); overflow: hidden; border: 1px solid color-mix(in srgb, var(--gold) 34%, var(--line)); border-radius: var(--radius); background: radial-gradient(circle at 82% 18%, rgba(245,158,11,.16), transparent 30%), linear-gradient(135deg, var(--panel), var(--panel-2)); }
.premium-hero::after { content: ""; position: absolute; width: 260px; height: 260px; right: -90px; bottom: -150px; border: 1px solid rgba(245,158,11,.18); border-radius: 50%; }
.premium-hero h2 { max-width: 760px; margin: 7px 0 10px; font-size: clamp(26px, 4vw, 42px); line-height: 1.08; }
.premium-hero p { max-width: 720px; margin: 0 0 20px; color: var(--muted); line-height: 1.6; }
.premium-orbit { position: relative; z-index: 1; display: grid; justify-items: center; gap: 7px; color: var(--gold); text-align: center; }
.premium-orbit > span { width: 92px; height: 92px; display: grid; place-items: center; border: 1px solid rgba(245,158,11,.42); border-radius: 50%; background: rgba(245,158,11,.08); box-shadow: 0 0 50px rgba(245,158,11,.12); }
.premium-orbit svg { width: 38px; }
.premium-orbit b { color: var(--text); font-size: 13px; text-transform: uppercase; }
.premium-orbit small { color: var(--muted); }
.premium-capability-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.premium-capability { min-height: 88px; display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; align-items: center; gap: 11px; padding: 13px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); }
.premium-capability > span { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--line); color: var(--accent); }
.premium-capability > span svg { width: 17px; }
.premium-capability > div { min-width: 0; }
.premium-capability h3 { margin: 0 0 4px; font-size: 12px; }
.premium-capability p { margin: 0; color: var(--muted); font-size: 10px; }
.premium-capability > b { display: inline-flex; align-items: center; gap: 5px; color: var(--success); font-size: 9px; text-transform: uppercase; }
.premium-capability > b svg { width: 13px; }
.premium-capability.locked { background: color-mix(in srgb, var(--panel) 72%, transparent); }
.premium-capability.locked > span, .premium-capability.locked > b { color: var(--gold); }
.premium-transparency { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.premium-transparency > div { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 10px; padding: 14px; border: 1px solid var(--line); background: var(--panel); }
.premium-transparency > div > svg { width: 19px; color: var(--accent); }
.premium-transparency span { display: grid; gap: 5px; }
.premium-transparency small { color: var(--muted); line-height: 1.5; }

/* Lightweight, dependency-free faction chart */
.intel-chart-card { margin-bottom: 18px; padding: 20px; border: 1px solid var(--line); border-top: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); }
.intel-chart-status { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 5px; }
.intel-chart-status span { min-height: 28px; display: inline-flex; align-items: center; gap: 7px; padding: 0 9px; border: 1px solid var(--line-soft); color: var(--muted); font-size: 10px; }
.intel-chart-status .status-dot { width: 6px; height: 6px; }
.intel-distribution-chart svg { width: 100%; min-height: 210px; display: block; overflow: visible; }
.chart-grid line { stroke: var(--line-soft); stroke-width: 1; stroke-dasharray: 4 7; }
.chart-area { fill: url(#intel-chart-fill); }
.chart-line { fill: none; stroke: var(--accent); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; filter: url(#intel-chart-glow); }
.chart-point circle { fill: var(--panel); stroke: var(--accent); stroke-width: 3; }
.chart-point text { fill: var(--text); font-size: 11px; font-weight: 800; }
.chart-point .chart-axis-label { fill: var(--muted); font-size: 10px; font-weight: 500; }
.chart-caption { display: flex; justify-content: space-between; gap: 12px; color: var(--faint); font-size: 9px; }

@media (max-width: 760px) {
  .topbar-actions { grid-template-columns: minmax(0, 1fr) repeat(4, 40px); }
  .preference-choice-grid, .login-scene-grid, .feedback-ticket-grid, .premium-capability-grid, .premium-transparency { grid-template-columns: 1fr; }
  .feedback-dialog-grid, .premium-hero { grid-template-columns: 1fr; }
  .feedback-recent-panel { display: none; }
  .premium-orbit { display: none; }
  .preference-inline-grid { grid-template-columns: 1fr; }
  .settings-dialog .dialog-actions { flex-wrap: wrap; }
  .settings-dialog #reset-navigation { margin-right: auto; }
}
