/* ── Reset & Variables ──────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root {
  --bg:#f9f9f8; --surface:#ffffff; --surface2:#f4f3f0; --surface3:#eeecea;
  --border:rgba(0,0,0,.09); --border2:rgba(0,0,0,.16);
  --text:#1a1a18; --text2:#6b6b67; --text3:#9d9d99;
  --rad:8px; --radl:12px; --radxl:16px;
  --font:'Inter',system-ui,sans-serif; --mono:'JetBrains Mono','Menlo',monospace;
  --red-bg:#FCEBEB; --red-t:#A32D2D; --red-b:#E24B4A;
  --amb-bg:#FAEEDA; --amb-t:#854F0B; --amb-b:#EF9F27;
  --grn-bg:#E1F5EE; --grn-t:#0F6E56; --grn-b:#1D9E75;
  --blu-bg:#E6F1FB; --blu-t:#185FA5;
  --pur-bg:#EEEDFE; --pur-t:#534AB7;
  --cor-bg:#FAECE7; --cor-t:#993C1D;
  --gry-bg:#F1EFE8; --gry-t:#5F5E5A;
}
@media(prefers-color-scheme:dark){:root{
  --bg:#111110; --surface:#1c1c1a; --surface2:#242422; --surface3:#2c2c2a;
  --border:rgba(255,255,255,.09); --border2:rgba(255,255,255,.16);
  --text:#f0ede8; --text2:#9d9d99; --text3:#6b6b67;
}}

body { font-family:var(--font); font-size:15px; line-height:1.6; background:var(--bg); color:var(--text); -webkit-font-smoothing:antialiased; }
a { color:var(--blu-t); text-decoration:none; }
a:hover { text-decoration:underline; }
select,input { font-family:var(--font); }

/* ── Layout ── */
.page { max-width:920px; margin:0 auto; padding:2rem 1.25rem 4rem; }

/* ── Header ── */
.header { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin-bottom:1.5rem; }
.header-title { font-size:1.15rem; font-weight:500; }
.header-sub { font-size:.78rem; color:var(--text3); margin-top:.2rem; }
.header-actions { display:flex; gap:.5rem; flex-wrap:wrap; align-items:center; }

/* ── Buttons ── */
.btn {
  display:inline-flex; align-items:center; gap:.4rem; padding:.45rem .9rem;
  font-size:.82rem; font-weight:500; font-family:var(--font);
  border:.5px solid var(--border2); border-radius:var(--rad);
  background:var(--surface); color:var(--text); cursor:pointer;
  transition:background .15s, transform .1s; white-space:nowrap;
}
.btn:hover { background:var(--surface2); }
.btn:active { transform:scale(.97); }
.btn:disabled { opacity:.45; cursor:not-allowed; transform:none; }
.btn-primary { background:var(--text); color:var(--bg); border-color:var(--text); }
.btn-primary:hover { opacity:.85; background:var(--text); }

/* ── Stats ── */
.stats {
  display:grid; grid-template-columns:repeat(6,1fr); gap:.6rem; margin-bottom:1.5rem;
}
@media(max-width:600px){ .stats { grid-template-columns:repeat(3,1fr); } }
.stat { background:var(--surface2); border-radius:var(--rad); padding:.7rem 1rem; }
.stat-label { font-size:.68rem; color:var(--text3); letter-spacing:.04em; }
.stat-value { font-size:1.5rem; font-weight:500; margin-top:.1rem; line-height:1.2; }

/* ── Tabs ── */
.tabs { display:flex; gap:.25rem; border-bottom:.5px solid var(--border2); margin-bottom:1.5rem; }
.tab-btn {
  padding:.5rem 1rem; font-size:.84rem; font-weight:500; font-family:var(--font);
  border:none; background:transparent; color:var(--text2); cursor:pointer;
  border-bottom:2px solid transparent; margin-bottom:-1px; transition:color .15s;
}
.tab-btn:hover { color:var(--text); }
.tab-btn.active { color:var(--text); border-bottom-color:var(--text); }

/* ── Log console ── */
.log {
  font-family:var(--mono); font-size:.73rem; line-height:1.7;
  background:#0d0d0c; border:.5px solid #252522; border-radius:var(--radl);
  padding:1rem 1.25rem; margin-bottom:1.25rem;
}
.log-row { display:flex; gap:.75rem; }
.log-t { color:#4a4a47; flex-shrink:0; }
.log-ok { color:#6fcf97; }
.log-run { color:#a8d8ea; }

/* ── Error banner ── */
.err-box {
  display:flex; align-items:flex-start; gap:.6rem; padding:.75rem 1rem;
  margin-bottom:1rem; background:var(--red-bg); border:.5px solid #f5aaaa;
  border-radius:var(--rad); font-size:.82rem; color:var(--red-t);
}

/* ── Badges ── */
.badge { display:inline-block; font-size:.7rem; font-weight:500; padding:.15rem .5rem; border-radius:6px; }
.b-crit   { background:var(--red-bg); color:var(--red-t); }
.b-urg    { background:var(--amb-bg); color:var(--amb-t); }
.b-act    { background:var(--grn-bg); color:var(--grn-t); }
.b-strat  { background:var(--blu-bg); color:var(--blu-t); }
.b-md     { background:var(--blu-bg); color:var(--blu-t); }
.b-crna   { background:var(--pur-bg); color:var(--pur-t); }
.b-gray   { background:var(--gry-bg); color:var(--gry-t); }
.b-green  { background:var(--grn-bg); color:var(--grn-t); }
.b-high   { background:var(--red-bg); color:var(--red-t); }
.b-med    { background:var(--amb-bg); color:var(--amb-t); }
.b-low    { background:var(--grn-bg); color:var(--grn-t); }
.b-crisis { background:var(--red-bg); color:var(--red-t); font-weight:700; }
.b-std    { background:var(--grn-bg); color:var(--grn-t); }
.b-stip   { background:var(--pur-bg); color:var(--pur-t); }
.b-neg    { background:var(--red-bg); color:var(--red-t); }
.b-neu    { background:var(--gry-bg); color:var(--gry-t); }
.b-pos    { background:var(--grn-bg); color:var(--grn-t); }

/* ── Filter bar ── */
.filters { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; margin-bottom:1rem; }
.filters select {
  font-size:.8rem; padding:.35rem .65rem; border:.5px solid var(--border2);
  border-radius:var(--rad); background:var(--surface); color:var(--text); cursor:pointer;
}
.f-count { font-size:.75rem; color:var(--text3); margin-left:auto; }

/* ── Section header ── */
.sec-head { display:flex; align-items:center; gap:.5rem; margin:1.25rem 0 .65rem; font-size:.73rem; font-weight:500; text-transform:uppercase; letter-spacing:.06em; color:var(--text3); }
.sec-line { flex:1; height:.5px; background:var(--border); }

/* ── Cards (shared) ── */
.card { background:var(--surface); border:.5px solid var(--border); border-radius:var(--radl); overflow:hidden; margin-bottom:.625rem; }
.card-header { padding:.9rem 1.1rem; cursor:pointer; transition:background .12s; }
.card-header:hover { background:var(--surface2); }
.card-body { border-top:.5px solid var(--border); padding:1rem 1.1rem; background:var(--surface2); display:none; }
.card-body.open { display:block; }
.two-col { display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; }
@media(max-width:600px){ .two-col { grid-template-columns:1fr; } }
.dl { font-size:.68rem; font-weight:500; letter-spacing:.06em; text-transform:uppercase; color:var(--text3); margin-bottom:.4rem; }
.dv { font-size:.82rem; color:var(--text2); line-height:1.55; }

/* ── Lead cards (job board) ── */
.lead-top { display:flex; justify-content:space-between; align-items:flex-start; gap:.75rem; margin-bottom:.5rem; }
.lead-name { font-size:.9rem; font-weight:500; }
.lead-loc { font-size:.73rem; color:var(--text2); margin:.15rem 0 .45rem; }
.lead-tags { display:flex; flex-wrap:wrap; gap:.3rem; }
.urg-bar { height:4px; background:var(--border); border-radius:3px; margin-top:.6rem; }
.urg-fill { height:4px; border-radius:3px; }
.ops { display:flex; flex-wrap:wrap; gap:.3rem; margin-bottom:.85rem; }
.op { font-size:.7rem; padding:.12rem .45rem; background:var(--surface); border:.5px solid var(--border2); border-radius:5px; color:var(--text2); }

/* ── Contact card ── */
.contact-card { background:var(--surface); border:.5px solid var(--border); border-radius:var(--rad); padding:.75rem; }
.contact-row { display:flex; align-items:center; gap:.65rem; margin-bottom:.55rem; }
.contact-av { width:34px; height:34px; border-radius:50%; background:var(--blu-bg); color:var(--blu-t); display:flex; align-items:center; justify-content:center; font-size:.73rem; font-weight:500; flex-shrink:0; }
.contact-name { font-size:.82rem; font-weight:500; }
.contact-title { font-size:.7rem; color:var(--text3); }
.contact-link { display:flex; align-items:center; gap:.35rem; font-size:.73rem; margin-top:.25rem; color:var(--blu-t); }
.contact-link:hover { text-decoration:underline; }

/* ── Keywords ── */
.kws { display:flex; flex-wrap:wrap; gap:.3rem; margin-top:.45rem; }
.kw { font-size:.68rem; padding:.12rem .4rem; background:var(--surface3); border-radius:4px; color:var(--text2); font-family:var(--mono); }

/* ── Action box ── */
.action-box { background:var(--surface); border:.5px solid var(--grn-b); border-radius:var(--rad); padding:.6rem .9rem; font-size:.8rem; color:var(--grn-t); margin-top:.5rem; line-height:1.5; }

/* ── Intel panel controls ── */
.ctrl-panel { background:var(--surface); border:.5px solid var(--border); border-radius:var(--radl); padding:1.25rem; margin-bottom:1.25rem; }
.ctrl-panel-title { font-size:.73rem; font-weight:500; text-transform:uppercase; letter-spacing:.06em; color:var(--text3); margin-bottom:.85rem; }
.ctrl-grid { display:grid; grid-template-columns:1fr 1fr 120px 180px; gap:.75rem; margin-bottom:1rem; }
@media(max-width:680px){ .ctrl-grid { grid-template-columns:1fr 1fr; } }
.field { display:flex; flex-direction:column; gap:.3rem; }
.field label { font-size:.73rem; font-weight:500; color:var(--text2); }
.field select, .field input {
  font-size:.82rem; padding:.4rem .75rem; border:.5px solid var(--border2);
  border-radius:var(--rad); background:var(--surface2); color:var(--text);
}
.field select:focus, .field input:focus { outline:none; border-color:var(--blu-t); }

/* ── Source chips ── */
.src-row { display:flex; flex-wrap:wrap; gap:.45rem; margin-bottom:.85rem; }
.src-chip {
  display:inline-flex; align-items:center; gap:.35rem; font-size:.73rem;
  padding:.3rem .65rem; border:.5px solid var(--border2); border-radius:var(--rad);
  cursor:pointer; user-select:none; background:var(--surface); color:var(--text2);
  transition:all .12s;
}
.src-chip.on.s0 { background:var(--red-bg); color:var(--red-t); border-color:var(--red-t); }
.src-chip.on.s1 { background:var(--pur-bg); color:var(--pur-t); border-color:var(--pur-t); }
.src-chip.on.s2 { background:var(--grn-bg); color:var(--grn-t); border-color:var(--grn-t); }
.src-chip.on.s3 { background:var(--blu-bg); color:var(--blu-t); border-color:var(--blu-t); }
.src-chip.on.s4 { background:var(--amb-bg); color:var(--amb-t); border-color:var(--amb-t); }
.src-chip.on.s5 { background:var(--cor-bg); color:var(--cor-t); border-color:var(--cor-t); }

/* ── Market summary bar ── */
.mkt-bar { background:var(--surface); border:.5px solid var(--border); border-radius:var(--radl); padding:1rem 1.25rem; margin-bottom:1.25rem; }
.mkt-row { display:flex; flex-wrap:wrap; gap:1rem; align-items:center; justify-content:space-between; }
.mkt-kpis { display:flex; gap:1.25rem; flex-shrink:0; align-items:center; }
.mkt-kpi { text-align:center; }
.mkt-kpi-val { font-size:1.4rem; font-weight:500; line-height:1.2; }
.mkt-kpi-lbl { font-size:.68rem; color:var(--text3); margin-top:.1rem; }
.score-ring { width:50px; height:50px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:.95rem; font-weight:500; border:2.5px solid; }
.top-list { display:flex; flex-wrap:wrap; gap:.35rem; margin-top:.6rem; }
.top-chip { font-size:.72rem; padding:.18rem .55rem; background:var(--surface2); border:.5px solid var(--border2); border-radius:6px; color:var(--text2); }

/* ── Facility table ── */
.fac-wrap { background:var(--surface); border:.5px solid var(--border); border-radius:var(--radl); margin-bottom:1.25rem; overflow:hidden; }
.fac-head { display:grid; grid-template-columns:2fr .7fr 1fr .9fr 1fr 1.2fr; gap:0; padding:.55rem 1rem; background:var(--surface2); font-size:.68rem; font-weight:500; text-transform:uppercase; letter-spacing:.05em; color:var(--text3); }
.fac-row { border-top:.5px solid var(--border); }
.fac-row-main { display:grid; grid-template-columns:2fr .7fr 1fr .9fr 1fr 1.2fr; gap:0; padding:.7rem 1rem; align-items:center; cursor:pointer; transition:background .12s; }
.fac-row-main:hover { background:var(--surface2); }
.fac-row-detail { display:none; border-top:.5px solid var(--border); padding:.85rem 1rem; background:var(--surface2); }
.fac-row-detail.open { display:block; }
.fac-name { font-size:.84rem; font-weight:500; }
.fac-city { font-size:.7rem; color:var(--text2); }
.fac-cell { font-size:.78rem; color:var(--text2); }
.flag { display:inline-flex; align-items:center; gap:.2rem; font-size:.67rem; font-weight:700; padding:.12rem .4rem; border-radius:5px; }
.flag-crisis { background:var(--red-bg); color:var(--red-t); }
.flag-repost { background:var(--amb-bg); color:var(--amb-t); }
@media(max-width:700px){ .fac-head,.fac-row-main { grid-template-columns:1.5fr .7fr .9fr; } .fac-head>:nth-child(n+4),.fac-row-main>:nth-child(n+4){ display:none; } }

/* ── Reddit/LinkedIn signal cards ── */
.sig-header { display:flex; justify-content:space-between; align-items:flex-start; gap:.75rem; }
.sig-title { font-size:.875rem; font-weight:500; margin-bottom:.2rem; }
.sig-meta { font-size:.72rem; color:var(--text2); display:flex; gap:.5rem; flex-wrap:wrap; }

/* ── Rate reference panel ── */
.rate-panel { background:var(--surface); border:.5px solid var(--border); border-radius:var(--radl); padding:1.25rem; margin-bottom:1.25rem; }
.rate-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media(max-width:560px){ .rate-grid { grid-template-columns:1fr; } }
.rate-card { border:.5px solid var(--border2); border-radius:var(--rad); padding:.85rem 1rem; }
.rate-type { font-size:.7rem; font-weight:500; text-transform:uppercase; letter-spacing:.05em; color:var(--text3); margin-bottom:.4rem; }
.rate-row { display:flex; justify-content:space-between; align-items:center; font-size:.82rem; padding:.2rem 0; }
.rate-val { font-weight:500; }
.rate-crisis { color:var(--red-t); font-weight:700; }
.rate-std { color:var(--grn-t); }
.rate-note { font-size:.72rem; color:var(--text3); margin-top:.5rem; padding-top:.5rem; border-top:.5px solid var(--border); }

/* ── Boolean strings ── */
.bool-panel { background:var(--surface); border:.5px solid var(--border); border-radius:var(--radl); padding:1.25rem; margin-bottom:1.25rem; }
.bool-list { display:flex; flex-direction:column; gap:.45rem; margin-top:.65rem; }
.bool-item { display:flex; align-items:flex-start; gap:.6rem; background:var(--surface2); border:.5px solid var(--border2); border-radius:var(--rad); padding:.55rem .85rem; }
.bool-str { font-family:var(--mono); font-size:.7rem; color:var(--text2); flex:1; line-height:1.5; word-break:break-all; }
.bool-copy { flex-shrink:0; padding:.2rem .5rem; font-size:.68rem; border:.5px solid var(--border2); border-radius:5px; background:var(--surface); cursor:pointer; color:var(--text2); font-family:var(--font); transition:background .12s; }
.bool-copy:hover { background:var(--surface3); }

/* ── Crisis alerts ── */
.crisis-panel { background:var(--red-bg); border:.5px solid #f5aaaa; border-radius:var(--radl); padding:1rem 1.25rem; margin-bottom:1.25rem; }
.crisis-row { display:flex; align-items:flex-start; gap:.6rem; padding:.35rem 0; border-bottom:.5px solid rgba(163,45,45,.12); }
.crisis-row:last-child { border-bottom:none; }
.crisis-text { font-size:.82rem; color:var(--red-t); line-height:1.5; }

/* ── Logic Blueprint ── */
.blueprint { background:var(--surface); border:.5px solid var(--border); border-radius:var(--radl); padding:1.25rem; margin-bottom:1.25rem; }
.bp-title { font-size:.73rem; font-weight:500; text-transform:uppercase; letter-spacing:.06em; color:var(--text3); margin-bottom:1rem; }
.bp-scroll { overflow-x:auto; padding-bottom:.5rem; }
.bp-flow { display:flex; align-items:center; gap:0; min-width:600px; }
.bp-signals { display:flex; flex-direction:column; gap:.45rem; flex-shrink:0; width:260px; }
.bp-signal { display:flex; align-items:flex-start; gap:.5rem; background:var(--surface2); border:.5px solid var(--border2); border-radius:var(--rad); padding:.55rem .85rem; font-size:.75rem; }
.bp-signal-icon { font-size:.95rem; flex-shrink:0; margin-top:.05rem; }
.bp-signal-label { font-weight:500; color:var(--text); display:block; margin-bottom:.1rem; }
.bp-signal-desc { color:var(--text2); line-height:1.4; }
.bp-middle { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.35rem; padding:0 1rem; flex-shrink:0; }
.bp-and { background:var(--amb-bg); color:var(--amb-t); font-size:.7rem; font-weight:700; padding:.25rem .55rem; border-radius:5px; letter-spacing:.06em; }
.bp-arrow { font-size:1.3rem; color:var(--text3); }
.bp-results { display:flex; flex-direction:column; gap:.45rem; flex-shrink:0; width:220px; }
.bp-flag { background:var(--red-bg); border:.5px solid var(--red-b); border-radius:var(--rad); padding:.6rem .9rem; font-size:.78rem; font-weight:500; color:var(--red-t); text-align:center; }
.bp-calc { background:var(--grn-bg); border:.5px solid var(--grn-b); border-radius:var(--rad); padding:.6rem .9rem; font-size:.73rem; color:var(--grn-t); text-align:center; line-height:1.5; }

/* ── Intent Analyst ── */
.intent-summary { display:grid; grid-template-columns:repeat(4,1fr); gap:.6rem; margin-bottom:1.25rem; }
@media(max-width:500px){ .intent-summary { grid-template-columns:repeat(2,1fr); } }
.is-stat { border-radius:var(--rad); padding:.75rem 1rem; text-align:center; }
.is-val { font-size:1.6rem; font-weight:500; line-height:1.1; }
.is-lbl { font-size:.68rem; margin-top:.15rem; }
.is-high { background:var(--red-bg); color:var(--red-t); }
.is-med  { background:var(--amb-bg); color:var(--amb-t); }
.is-low  { background:var(--grn-bg); color:var(--grn-t); }
.is-mon  { background:var(--gry-bg); color:var(--gry-t); }

.intent-card { background:var(--surface); border:.5px solid var(--border); border-radius:var(--radl); margin-bottom:.75rem; overflow:hidden; }
.intent-card.lv-high   { border-left:3px solid var(--red-b); }
.intent-card.lv-medium { border-left:3px solid var(--amb-b); }
.intent-card.lv-low    { border-left:3px solid var(--grn-b); }
.intent-card.lv-monitor{ border-left:3px solid var(--text3); }
.intent-header { padding:1rem 1.1rem; cursor:pointer; transition:background .12s; }
.intent-header:hover { background:var(--surface2); }
.intent-top { display:flex; justify-content:space-between; align-items:flex-start; gap:.75rem; margin-bottom:.55rem; }
.intent-name { font-size:.9rem; font-weight:500; }
.intent-loc { font-size:.73rem; color:var(--text2); margin-top:.15rem; }
.intent-right { text-align:right; flex-shrink:0; }
.intent-score { width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:.85rem; font-weight:500; border:2.5px solid; margin-left:auto; margin-bottom:.25rem; }
.sig-inds { display:flex; gap:.4rem; flex-wrap:wrap; margin-top:.45rem; }
.sig-ind { display:inline-flex; align-items:center; gap:.3rem; font-size:.7rem; padding:.18rem .5rem; border-radius:6px; border:.5px solid; }
.sig-ind.on  { background:var(--grn-bg); color:var(--grn-t); border-color:var(--grn-b); }
.sig-ind.off { background:var(--surface2); color:var(--text3); border-color:var(--border2); }
.sig-dot { width:6px; height:6px; border-radius:50%; background:currentColor; }
.intent-detail { border-top:.5px solid var(--border); padding:1rem 1.1rem; background:var(--surface2); display:none; }
.intent-detail.open { display:block; }

.intent-filters { display:flex; flex-wrap:wrap; gap:.45rem; margin-bottom:1rem; align-items:center; }
.i-chip { display:inline-flex; align-items:center; gap:.3rem; font-size:.73rem; padding:.28rem .65rem; border:.5px solid var(--border2); border-radius:var(--rad); cursor:pointer; user-select:none; background:var(--surface); color:var(--text2); transition:all .12s; }
.i-chip.on-all  { background:var(--gry-bg); color:var(--gry-t); border-color:var(--gry-t); }
.i-chip.on-high { background:var(--red-bg); color:var(--red-t); border-color:var(--red-t); }
.i-chip.on-med  { background:var(--amb-bg); color:var(--amb-t); border-color:var(--amb-t); }
.i-chip.on-low  { background:var(--grn-bg); color:var(--grn-t); border-color:var(--grn-t); }
.i-chip.on-mon  { background:var(--gry-bg); color:var(--gry-t); border-color:var(--gry-t); }

.rs { display:flex; align-items:flex-start; gap:.5rem; padding:.3rem 0; border-bottom:.5px solid var(--border); font-size:.78rem; }
.rs:last-child { border-bottom:none; }
.rs-icon { flex-shrink:0; font-size:.82rem; }
.rs-ok   { color:var(--grn-t); font-weight:500; }
.rs-off  { color:var(--text3); }
.rs-txt  { color:var(--text2); line-height:1.5; }

.bill-box { background:var(--surface); border:.5px solid var(--border); border-radius:var(--rad); padding:.85rem 1rem; }
.bill-row { display:flex; justify-content:space-between; align-items:center; font-size:.82rem; padding:.18rem 0; }
.bill-lbl { color:var(--text2); }
.bill-val { font-weight:500; }
.bill-crisis { color:var(--red-t); font-weight:700; }
.bill-std    { color:var(--grn-t); }
.bill-note { font-size:.7rem; color:var(--text3); margin-top:.45rem; padding-top:.45rem; border-top:.5px solid var(--border); }

/* ── LinkedIn signals ── */
.li-sig { background:var(--surface); border:.5px solid var(--border); border-radius:var(--radl); margin-bottom:.55rem; overflow:hidden; }
.li-sig-body { border-top:.5px solid var(--border); padding:.85rem 1rem; background:var(--surface2); display:none; }
.li-sig-body.open { display:block; }

/* ── Empty state ── */
.empty { text-align:center; padding:4rem 1rem; color:var(--text3); }
.empty-icon { font-size:2.5rem; display:block; margin-bottom:1rem; }
.empty-title { font-size:1rem; font-weight:500; color:var(--text2); margin-bottom:.4rem; }
.empty-sub { font-size:.84rem; margin-bottom:1.25rem; line-height:1.6; }

/* ── Footer ── */
.footer { font-size:.7rem; color:var(--text3); border-top:.5px solid var(--border); padding-top:.75rem; margin-top:2rem; }

/* ── Spinner ── */
@keyframes spin { to { transform:rotate(360deg); } }
.spin { display:inline-block; animation:spin .7s linear infinite; }
