/* med·track V2 — Study-centric shell (Phase 1). Neutral-dominant, single teal accent. */
/* MedTrack dark + violet brand (Design v2). Var names kept (--teal*) so every
   existing accent usage becomes violet without touching each rule. */
:root{
  --bg:#F2F4F3; --surface:#FFFFFF; --panel:#F8FAF9; --ink:#16212A; --ink-soft:#54636D; --ink-faint:#8A9997;
  --line:#DDE3DF; --line-soft:#EAEEEC;
  --teal:#0F766E; --teal-deep:#0B5752; --teal-tint:#E7F1EF;
  /* brand is a single teal accent — the former "violet" tokens now map to teal */
  --violet:#0F766E; --violet-2:#0B5752; --violet-soft:#0B5752;
  --ok:#15803D; --ok-tint:#E7F3EA; --warn:#B45309; --warn-tint:#FBF1E1; --crit:#B23A48; --crit-tint:#F7E9EA;
  /* V2.4 Phase 9 — unified state palette (light): green=done · teal=current · blue=ready · amber=needs-decision/QA · gray=not-started · red=blocked */
  --st-green:#15803D; --st-green-bg:#E7F3EA; --st-green-b:#BFE0C8;
  --st-purple:#0F766E; --st-purple-bg:#E7F1EF; --st-purple-b:#CFE2DE;
  --st-blue:#3457A8; --st-blue-bg:#EEF3FF; --st-blue-b:#CDD9F2;
  --st-yellow:#B45309; --st-yellow-bg:#FBF1E1; --st-yellow-b:#ECDCBE;
  --st-gray:#8A9997; --st-gray-bg:#F8FAF9; --st-gray-b:#DDE3DF;
  --st-red:#B23A48; --st-red-bg:#F7E9EA; --st-red-b:#E7C3C8;
  --ok-b:#BFE0C8; --warn-b:#ECDCBE; --crit-b:#E7C3C8; --info:#3457A8; --info-tint:#EEF3FF; --info-b:#CDD9F2;
  --font:'Pretendard Variable','Pretendard',-apple-system,BlinkMacSystemFont,system-ui,'Apple SD Gothic Neo','Malgun Gothic','Noto Sans KR',sans-serif;
  --accent-font:'Space Grotesk',var(--font);
  --radius:12px; --shadow:0 1px 2px rgba(0,0,0,.35),0 16px 40px rgba(0,0,0,.45);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:var(--font);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}
button,input,textarea,select{font:inherit;color:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.tnum{font-variant-numeric:tabular-nums}
h1,h2,h3,h4{font-weight:700;letter-spacing:-.01em}

/* ---------- top bar ---------- */
.topbar{height:56px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;background:rgba(248,250,249,.9);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;backdrop-filter:blur(10px)}
.brand{display:flex;align-items:baseline;gap:1px;font-weight:800;font-size:19px;letter-spacing:-.02em;color:var(--teal-deep);border:0;background:none}
.brand i{color:var(--teal);font-style:normal;padding:0 1px}
.brand em{font-style:normal;font-weight:700;font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);margin-left:9px;font-family:var(--accent-font)}
.top-actions{display:flex;gap:8px;align-items:center}
.btn{border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:8px 13px;font-size:12.5px;color:#43514e}
.btn:hover{border-color:var(--teal-deep)}
.btn.primary{background:var(--teal);border-color:var(--teal);color:#fff;font-weight:600}
.btn.primary:hover{background:var(--teal-deep)}
.btn.sm{padding:6px 10px;font-size:11.5px;border-radius:8px}
.btn.ghost{border-color:transparent;background:transparent;color:var(--ink-soft)}
.btn:disabled{opacity:.5;cursor:not-allowed}
a.btn{display:inline-flex;align-items:center;text-decoration:none}
.google-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:9px;padding:11px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font-weight:600;font-size:13px;color:var(--ink);cursor:pointer;margin-top:4px}
.google-btn:hover{border-color:var(--teal-deep);background:var(--panel)}
.google-btn svg{width:18px;height:18px;flex:none}
.auth-div{display:flex;align-items:center;gap:10px;color:var(--ink-faint);font-size:11px;margin:13px 0}
.auth-div::before,.auth-div::after{content:'';flex:1;height:1px;background:var(--line)}

/* KO/EN slide toggle + bilingual text */
[data-l]{display:none}
body[data-lang="en"] [data-l="en"],body[data-lang="ko"] [data-l="ko"]{display:inline}
.langtgl{position:relative;display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;background:var(--panel);padding:2px;cursor:pointer;font-size:11px;font-weight:700;user-select:none;line-height:1}
.langtgl span{position:relative;z-index:1;width:26px;text-align:center;padding:5px 0;color:var(--ink-soft);transition:color .2s}
.langtgl .knob{position:absolute;top:2px;left:2px;width:28px;height:calc(100% - 4px);border-radius:999px;background:var(--teal);transition:transform .22s cubic-bezier(.4,0,.2,1)}
body[data-lang="en"] .langtgl .knob{transform:translateX(24px)}
body[data-lang="ko"] .langtgl .s-ko,body[data-lang="en"] .langtgl .s-en{color:#fff}

/* ---------- legal / business footer (home) ---------- */
.legal-foot{border-top:1px solid var(--line);margin-top:40px;padding:22px 16px 8px;text-align:center}
.landing .legal-foot{width:100%;margin-top:auto}
.legal-links{display:flex;flex-wrap:wrap;gap:2px 4px;justify-content:center;align-items:center}
.legal-links a{font-size:12.5px;color:var(--ink-soft);text-decoration:none;padding:5px 11px;border-radius:7px;transition:.15s}
.legal-links a:hover{background:var(--panel);color:var(--ink)}
.legal-foot .biz{margin-top:12px;font-size:11.5px;line-height:1.75;color:var(--ink-soft);max-width:840px;margin-left:auto;margin-right:auto}
.legal-foot .copy{margin-top:8px;font-size:11px;color:var(--ink-faint)}

/* ---------- dashboard ---------- */
.wrap{max-width:1120px;margin:0 auto;padding:34px 24px 64px}
.dash-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:22px}
.dash-head h1{font-size:26px}
.dash-head p{color:var(--ink-soft);font-size:13px;margin-top:4px}
.study-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.study-card{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:17px;box-shadow:0 1px 2px rgba(22,33,42,.03);transition:.15s;display:block;width:100%}
.study-card:hover{transform:translateY(-2px);border-color:var(--teal-deep);box-shadow:var(--shadow)}
.sc-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:9px}
.chip{font-size:10.5px;padding:3px 8px;border-radius:999px;background:var(--panel);border:1px solid var(--line);color:var(--ink-soft);white-space:nowrap}
.chip.stage{background:var(--teal-tint);border-color:#cfe2de;color:var(--teal-deep)}
.study-card h3{font-size:15px;line-height:1.35;margin-bottom:5px}
.study-card .q{font-size:12px;color:var(--ink-soft);line-height:1.45;min-height:34px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sc-foot{display:flex;align-items:center;justify-content:space-between;margin-top:12px;font-size:10.5px;color:var(--ink-faint)}
.progress{height:6px;background:#e9eeec;border-radius:99px;overflow:hidden;margin-top:12px}
.progress i{display:block;height:100%;background:var(--teal);border-radius:99px;transition:.3s}
.warnpill{color:var(--warn);background:var(--warn-tint);border:1px solid var(--warn-b);border-radius:999px;padding:2px 7px;font-size:10px;font-weight:600}
.empty-card{border:1px dashed #cfd9d5;background:var(--surface);border-radius:var(--radius);padding:26px;display:flex;flex-direction:column;align-items:flex-start;gap:6px;width:100%;text-align:left}
.empty-card b{font-size:14px}.empty-card span{color:var(--ink-soft);font-size:12px}
.empty-card>i{font-style:normal;font-size:22px;color:var(--teal)}

/* 최초 진입 랜딩(히어로 + 중앙 create 카드) */
.landing{max-width:640px;margin:0 auto;padding:8vh 24px 64px;display:flex;flex-direction:column;align-items:center;text-align:center;min-height:calc(100vh - 120px)}
.hero{margin-bottom:38px}
.hero-brand{font-family:var(--accent-font);font-weight:700;font-size:15px;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);margin-bottom:18px}
.hero-t1{font-size:clamp(30px,4.4vw,44px);line-height:1.12;letter-spacing:-.02em;font-weight:700;color:var(--ink)}
.hero-t2{margin-top:14px;font-size:clamp(15px,1.7vw,18px);color:var(--ink-soft);line-height:1.5}
.empty-card.center{max-width:440px;align-items:center;text-align:center;padding:30px 26px;cursor:pointer;transition:.15s}
.empty-card.center:hover{border-color:var(--teal-deep);box-shadow:var(--shadow);transform:translateY(-2px)}
.empty-card.center>i{font-size:26px}

/* auth area (top-right) */
.auth-area{display:inline-flex;align-items:center}
.auth-area .acct{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* adaptive research definition canvas */
.opt-tag{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint);background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:1px 6px;margin-left:6px;font-family:var(--accent-font)}
.fhelp{font-size:10.5px;color:var(--ink-faint);margin-top:4px;line-height:1.4}
.conf-pill{font-size:9.5px;font-weight:600;color:var(--teal-deep);background:var(--teal-tint);border-radius:999px;padding:1px 7px;margin-left:6px;font-family:var(--accent-font)}
.field select{width:100%;border:1px solid var(--line);border-radius:8px;padding:7px 9px;font-size:12.5px;background:var(--surface);outline:0}
.field select:focus{border-color:var(--teal-deep)}
.pf select{width:100%;border:0;outline:0;background:none;font-size:13.5px;margin-top:3px}

/* P1: semantic readiness + dependency graph + decision log */
.rd-card,.dg-card,.dl-card{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:14px 16px;margin-bottom:14px}
.rd-top{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px}
.rd-top b{font-size:13.5px}
.rd-overall{font-size:20px;font-weight:800;letter-spacing:-.02em;color:var(--teal-deep);font-variant-numeric:tabular-nums}
.rd-bar{height:6px;border-radius:999px;background:var(--panel);overflow:hidden;margin-bottom:10px}
.rd-bar>i{display:block;height:100%;background:var(--teal);border-radius:999px;transition:width .3s}
.rd-row{border-top:1px solid var(--line-soft);padding:8px 0;cursor:pointer}
.rd-row:first-of-type{border-top:0}
.rd-h{display:flex;align-items:center;justify-content:space-between}
.rd-name{font-size:12.5px;font-weight:600}
.rd-meta{display:flex;align-items:center;gap:9px;font-size:11px;color:var(--ink-soft)}
.rd-pct{font-variant-numeric:tabular-nums}
.st-chip{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:999px;font-family:var(--accent-font)}
.st-ok{background:var(--ok-tint);color:var(--ok)} .st-prog{background:#eef3ff;color:#3457a8}
.st-warn{background:var(--warn-tint);color:var(--warn)} .st-none{background:var(--panel);color:var(--ink-faint)} .st-na{background:var(--panel);color:var(--ink-faint)}
.rd-items{max-height:0;overflow:hidden;transition:max-height .2s}
.rd-items.open{max-height:400px;margin-top:6px}
.rd-item{font-size:11.5px;padding:3px 0 3px 6px;color:var(--ink-soft)}
.rd-item.done{color:var(--ok)} .rd-item.todo{color:var(--ink-faint)} .rd-item.stale{color:var(--warn)}
.rd-stale{font-size:9px;background:var(--warn-tint);color:var(--warn);border-radius:999px;padding:1px 6px;font-family:var(--accent-font)}
.rd-next{margin-top:9px;font-size:11.5px;color:var(--ink-soft)}
.dg-flow{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.dg-node{font-size:11px;font-weight:600;padding:5px 10px;border-radius:8px;border:1px solid var(--line);white-space:nowrap}
.dg-current{background:var(--teal-tint);color:var(--teal-deep);border-color:#cfe2de}
.dg-stale{background:var(--warn-tint);color:var(--warn);border-color:var(--warn-b)}
.dg-missing{background:transparent;color:var(--ink-faint);border-style:dashed}
.dg-arrow{color:#c2ccc8;font-size:12px}
.dg-legend{font-size:10px;color:var(--ink-faint);display:flex;align-items:center;gap:4px}
.dg-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-left:8px}
.dg-dot.dg-current{background:var(--teal)} .dg-dot.dg-stale{background:var(--warn)} .dg-dot.dg-missing{background:transparent;border:1px dashed var(--ink-faint)}
.dl-row{border-top:1px solid var(--line-soft);padding:8px 0}
.dl-row:first-of-type{border-top:0}
.dl-top{display:flex;gap:9px;align-items:baseline;flex-wrap:wrap}
.dl-type{font-size:11px;font-weight:700;text-transform:capitalize;color:var(--ink)}
.dl-val{font-size:11px;color:var(--ink-soft);font-variant-numeric:tabular-nums}
.dl-aff{font-size:10.5px;color:var(--ink-faint);margin-top:3px}
.dl-noregen{color:var(--ok)}

/* ---------- workspace 3-column ---------- */
.ws{--side-w:236px;display:grid;grid-template-columns:var(--side-w) minmax(0,1fr) 340px;height:calc(100vh - 56px)}
.ws.no-copilot{grid-template-columns:var(--side-w) minmax(0,1fr)}
.ws.proj{--side-w:60px}
.side{border-right:1px solid var(--line);background:var(--panel);display:flex;flex-direction:column;min-height:0}
.side-top{padding:14px 14px 8px}
.backlink{border:0;background:none;color:var(--teal-deep);font-size:11.5px;padding:2px 0;margin-bottom:8px}
.side-title{font-size:13.5px;font-weight:700;line-height:1.3}
.side-type{font-size:10.5px;color:var(--ink-faint);margin-top:3px}
.nav{padding:8px;overflow:auto;flex:1;min-height:0}
.nav-group{font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-faint);font-weight:700;padding:12px 10px 5px;font-family:var(--accent-font)}
.nav button{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:8px;font-size:12.5px;color:#55635f;border:0;background:none;width:100%;text-align:left}
.nav button .st{width:7px;height:7px;border-radius:50%;background:#c3cec9}
.nav button.active{background:var(--teal-tint);color:var(--teal-deep);font-weight:600}
.nav button.active .st{background:var(--teal)}
.nav button:hover:not(.active):not(:disabled){background:#eef3f1}
.nav button:disabled{color:#aeb9b5;cursor:not-allowed}
.nav button.done .st{background:var(--ok)}
.nav button.warn .st{background:var(--warn)}

.main{overflow:auto;min-height:0;padding:26px 30px 60px}
.page{max-width:820px;margin:0 auto}
.page-head{display:flex;align-items:center;gap:10px;margin-bottom:4px}
.page-head h2{font-size:20px}
.page-sub{color:var(--ink-soft);font-size:12.5px;margin-bottom:20px}

/* status cards / overview */
.hero-q{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow);margin-bottom:16px}
.hero-q label{font-size:9.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint);font-family:var(--accent-font);font-weight:700}
.hero-q p{font-size:18px;font-weight:700;letter-spacing:-.01em;margin-top:6px;line-height:1.35}
.stat-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 15px}
.stat h4{font-size:11px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.06em;font-weight:700;font-family:var(--accent-font)}
.stat .big{font-size:22px;font-weight:800;margin-top:6px;letter-spacing:-.02em}
.stat .sub{font-size:11px;color:var(--ink-soft);margin-top:2px}
.stat .pill{display:inline-block;margin-top:8px;font-size:10.5px;padding:2px 8px;border-radius:999px}
.pill.ok{background:var(--ok-tint);color:var(--ok)} .pill.warn{background:var(--warn-tint);color:var(--warn)} .pill.none{background:var(--panel);color:var(--ink-faint);border:1px solid var(--line)}
.nextbox{background:var(--teal-tint);border:1px solid #cfe2de;border-radius:var(--radius);padding:15px 17px}
.nextbox label{font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--teal-deep);font-family:var(--accent-font);font-weight:700}
.nextbox p{font-size:14px;margin-top:5px;color:var(--teal-tint)}

/* forms */
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.field{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:11px 13px}
.field.full{grid-column:1/-1}
.field label{display:block;font-size:10.5px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.05em;font-weight:700;margin-bottom:5px;font-family:var(--accent-font)}
.field input,.field textarea,.field select{width:100%;border:0;outline:0;background:none;font-size:13.5px;resize:vertical}
.field.flag{border-color:var(--warn-b);box-shadow:0 0 0 3px var(--warn-tint)}
.flagmsg{display:flex;gap:7px;align-items:flex-start;font-size:11px;color:var(--warn);margin-top:6px}
.flagmsg.high{color:var(--crit)}
.flagmsg b{font-weight:700}

/* tables (variables / data dictionary) */
.tabs2{display:flex;gap:4px;margin-bottom:14px;border-bottom:1px solid var(--line)}
.tabs2 button{border:0;background:none;padding:8px 12px;font-size:12.5px;color:var(--ink-soft);border-bottom:2px solid transparent;margin-bottom:-1px}
.tabs2 button.active{color:var(--teal-deep);border-bottom-color:var(--teal);font-weight:700}
.tbl-wrap{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface)}
table.data{width:100%;border-collapse:collapse;font-size:12.5px}
table.data th,table.data td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line-soft)}
table.data th{background:var(--panel);font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);font-weight:700;font-family:var(--accent-font)}
table.data tr:last-child td{border-bottom:0}
table.data tbody tr{cursor:pointer}
table.data tbody tr:hover{background:#f4f8f6}
table.data tr.sel{background:var(--teal-tint)}
/* V2.3.0 — Next-Action Command Center hero + interactive AI action cards */
.nba-hero{background:linear-gradient(135deg,var(--teal-deep),var(--teal) 70%);color:#fff;border-radius:18px;padding:22px 24px;margin-bottom:18px;box-shadow:0 12px 30px rgba(15,118,110,.20)}
.nba-eyebrow{font-size:11px;letter-spacing:.12em;text-transform:uppercase;opacity:.9;font-weight:700}
.nba-nd{margin-top:12px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:rgba(255,255,255,.78)}
.step-strip{display:flex;align-items:center;flex-wrap:wrap;gap:2px;margin:-4px 0 18px;padding:10px 12px;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow-x:auto}
.step-chip{display:flex;align-items:center;gap:7px;padding:5px 10px;border-radius:9px;white-space:nowrap;font-size:11.5px;color:var(--ink-faint)}
.step-chip .sc-n{display:inline-grid;place-items:center;width:19px;height:19px;border-radius:50%;font-size:10px;font-weight:700;background:var(--line-soft);color:var(--ink-soft)}
.step-chip.done{color:var(--ink-soft)}.step-chip.done .sc-n{background:var(--st-green-bg);color:var(--st-green)}
.step-chip.cur{color:var(--ink);background:var(--st-purple-bg)}.step-chip.cur .sc-n{background:var(--violet);color:#fff}
.step-chip.warn{color:var(--st-yellow);background:var(--st-yellow-bg)}.step-chip.warn .sc-n{background:var(--st-yellow-bg);color:var(--st-yellow)}
.step-chip.blocked{color:var(--st-red)}.step-chip.blocked .sc-n{background:var(--st-red-bg);color:var(--st-red)}
.state-legend{display:flex;flex-wrap:wrap;gap:12px;margin:-8px 0 16px;padding:8px 12px;font-size:10.5px;color:var(--ink-faint)}
.state-legend span{display:inline-flex;align-items:center;gap:5px}
.state-legend i{width:9px;height:9px;border-radius:50%;display:inline-block}
.sl-green{background:var(--st-green)}.sl-purple{background:var(--st-purple)}.sl-blue{background:var(--st-blue)}.sl-yellow{background:var(--st-yellow)}.sl-gray{background:var(--st-gray)}.sl-red{background:var(--st-red)}
.wfr-chip.stale{color:var(--st-yellow);border-color:var(--st-yellow-b)}
.step-sep{width:14px;height:1px;background:var(--line);flex:none}
.nba-blk{background:rgba(255,255,255,.24);padding:1px 8px;border-radius:999px}
.nba-title{font-size:23px;line-height:1.24;margin:9px 0 6px;font-weight:800;max-width:720px;letter-spacing:-.01em}
.nba-reason{font-size:13px;line-height:1.55;color:rgba(255,255,255,.92);margin:0 0 16px;max-width:700px}
.nba-actions{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:15px}
.nba-actions .btn.primary{background:#fff;color:var(--teal-deep);border-color:#fff;font-weight:700}
.nba-actions .btn.primary:hover{background:#f3f7f6}
.nba-actions .btn.ghost.nba-ai{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.4);color:#fff}
.nba-actions .btn.ghost.nba-ai:hover{background:rgba(255,255,255,.24)}
.nba-prog{height:6px;background:rgba(255,255,255,.24);border-radius:999px;overflow:hidden}
.nba-prog>i{display:block;height:100%;background:#fff;border-radius:999px;transition:width .3s}
.nba-prog-t{font-size:11px;opacity:.9;margin-top:6px}
.ai-actcard{border:1px solid #d5e2f2;background:var(--surface);border-radius:14px;padding:12px 13px;box-shadow:0 5px 14px rgba(40,70,130,.05)}
.ai-actcard .kicker{font-size:9.5px;color:var(--teal-deep);text-transform:uppercase;letter-spacing:.09em;font-weight:800}
.ai-actcard h4{font-size:13px;margin:6px 0 5px}
.ai-actcard p{font-size:11.5px;color:var(--ink-soft);margin:0 0 10px;line-height:1.5}
.ai-actcard .actions{display:flex;gap:7px;flex-wrap:wrap}
/* V2.3.1 — copilot scope chips, panel modes, rail, research session */
.cp-headtop{display:flex;align-items:center;justify-content:space-between;gap:8px}
.cp-modes{display:flex;gap:4px;flex:none}
.cp-modes button{border:1px solid var(--line);background:var(--surface);border-radius:7px;width:24px;height:22px;font-size:12px;color:var(--ink-soft);cursor:pointer;line-height:1;padding:0}
.cp-modes button:hover{border-color:var(--teal-deep)}
.cp-scope{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}
.cp-scope button{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:4px 9px;font-size:10.5px;color:var(--ink-soft);cursor:pointer}
.cp-scope button.active{background:var(--teal-tint);border-color:#cfe2de;color:var(--teal-deep);font-weight:600}
.cp-session{width:100%;margin:4px 0 2px;justify-content:center;display:flex;align-items:center;gap:6px}
.ws.cp-expanded{grid-template-columns:var(--side-w) minmax(0,1fr) 40%}
.ws.cp-deep{grid-template-columns:var(--side-w) minmax(0,1fr) 50%}
.ws.cp-collapsed{grid-template-columns:var(--side-w) minmax(0,1fr) 46px}
.cp-rail{display:none}
.ws.cp-collapsed .copilot{overflow:hidden;padding:0}
.ws.cp-collapsed .copilot>*{display:none}
.ws.cp-collapsed .copilot .cp-rail{display:flex;align-items:center;justify-content:center;gap:8px;height:100%;width:100%;border:0;background:var(--panel);color:var(--teal-deep);font-weight:700;font-size:12px;cursor:pointer;writing-mode:vertical-rl;transform:rotate(180deg)}
.modal.session{width:min(600px,96vw)}
.ssn-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.ssn-head h2{margin:2px 0 0;font-size:18px}
.ssn-head .eyebrow{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--teal-deep);font-weight:800}
.x{border:0;background:var(--panel);border-radius:9px;width:30px;height:30px;font-size:13px;color:var(--ink-soft);cursor:pointer;flex:none}
.ssn-menu{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.choice{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:12px;padding:13px 14px;background:var(--surface);cursor:pointer;font-size:13px;color:var(--ink)}
.choice:hover{border-color:#9ecac2;background:var(--panel)}
.ssn-or{text-align:center;color:var(--ink-faint);font-size:11px;margin:14px 0 8px}
.ssn-log{border-left:2px solid var(--teal-tint);padding:2px 0 4px 11px;margin:9px 0}
.ssn-log .ssn-q{color:var(--ink-soft);font-size:12px}.ssn-log .ssn-a{font-weight:600;font-size:12.5px;color:var(--teal-deep)}
.ssn-cur{margin-top:12px}.ssn-cur .ssn-q{font-weight:700;font-size:14px;margin-bottom:10px}
.ssn-choices{display:flex;flex-direction:column;gap:8px}
/* V2.4 Phase 2 — Step Workspace drawer */
.step-chip{border:0;background:transparent;cursor:pointer}
.step-chip:hover{background:var(--panel)}
.modal.step-ws{width:min(620px,96vw)}
.sw-cur{margin-top:14px;background:var(--teal-tint);border:1px solid var(--st-purple-b);border-radius:14px;padding:15px 16px}
.sw-cur.sw-alldone{background:var(--ok-tint);border-color:var(--ok-b)}
.sw-kicker{font-size:10px;letter-spacing:.09em;text-transform:uppercase;font-weight:800;color:var(--violet-soft)}
.sw-cur.sw-alldone .sw-kicker{color:var(--ok)}
.sw-cur h3{font-size:15px;margin:7px 0 6px}
.sw-rec{font-size:12.5px;line-height:1.55;color:var(--ink-soft);margin:0 0 13px}
.sw-actions{display:flex;gap:8px;flex-wrap:wrap}
.sw-sec{margin-top:16px}
.sw-h{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--ink-faint);margin-bottom:8px}
.sw-item{font-size:12.5px;padding:6px 0;border-bottom:1px solid var(--line-soft);color:var(--ink-soft)}
.sw-item.done{color:var(--ok)}.sw-item.stale{color:var(--warn)}
.sw-out{font-size:12.5px;line-height:1.55;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:11px 13px}
/* V2.4 Phase 3 — decision diff (Preview → Approve → Apply) */
.modal.dec-diff{width:min(640px,96vw)}
.dd-diff{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:stretch;margin-top:14px}
.dd-col{border:1px solid var(--line);border-radius:12px;padding:12px 13px;background:var(--surface)}
.dd-col.before{opacity:.85}
.dd-col.after{background:var(--teal-tint);border-color:var(--st-purple-b)}
.dd-k{font-size:10px;letter-spacing:.09em;text-transform:uppercase;font-weight:800;color:var(--ink-faint);margin-bottom:6px}
.dd-col.after .dd-k{color:var(--violet-soft)}
.dd-v{font-size:12.5px;line-height:1.55;color:var(--ink)}
.dd-arrow{align-self:center;color:var(--ink-faint);font-size:16px}
.dd-why{margin-top:14px;font-size:12.5px;line-height:1.6;color:var(--ink-soft)}
.dd-why b{color:var(--ink)}
.dd-alts{margin-top:12px}
.dd-alts ul{margin:6px 0 0;padding-left:18px}
.dd-alts li{font-size:12px;line-height:1.6;color:var(--ink-soft)}
.dd-note{margin-top:14px;font-size:11px;line-height:1.5;color:var(--ink-faint);background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:9px 11px}
.cp-auto{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:4px 9px;font-size:10.5px;color:var(--ink-faint);cursor:pointer;font-weight:600}
.cp-auto.on{background:var(--teal-tint);border-color:var(--st-purple-b);color:var(--violet-soft)}
@media(max-width:560px){.dd-diff{grid-template-columns:1fr}.dd-arrow{transform:rotate(90deg)}}
/* V2.4 Phase 4 — living manuscript map + per-section status */
.ms-map{border:1px solid var(--line);border-radius:14px;padding:14px 15px;margin:14px 0;background:var(--surface)}
.ms-map-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:9px}
.ms-map-top b{font-size:13.5px}
.ms-prog{height:6px;border-radius:999px;background:var(--panel);overflow:hidden;margin-bottom:12px}
.ms-prog i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--teal-deep),var(--teal))}
.ms-pills{display:flex;flex-wrap:wrap;gap:7px}
.ms-pill{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:5px 10px;font-size:11px;background:var(--panel)}
.ms-pn{font-weight:800}.ms-pl{color:var(--ink-soft)}.ms-pp{color:var(--ink-faint);font-variant-numeric:tabular-nums}
.ms-pill.ms-done{border-color:var(--ok-b);background:var(--ok-tint)}.ms-pill.ms-done .ms-pn,.ms-pill.ms-done .ms-pl{color:var(--ok)}
.ms-pill.ms-writing{border-color:var(--st-purple-b);background:var(--teal-tint)}.ms-pill.ms-writing .ms-pn,.ms-pill.ms-writing .ms-pl{color:var(--violet-soft)}
.ms-pill.ms-ready{border-color:var(--info-b)}.ms-pill.ms-ready .ms-pn{color:var(--info)}
.ms-pill.ms-waiting{opacity:.7}.ms-pill.ms-waiting .ms-pn{color:var(--ink-faint)}
.ms-secmeta{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:2px 0 8px;font-size:11px}
.ms-from{color:var(--ink-faint)}
.ms-wait{color:var(--warn);font-weight:600}
.ms-cpct{font-variant-numeric:tabular-nums;font-weight:700;color:var(--ink-faint)}
.ms-cpct.ms-done{color:var(--ok)}.ms-cpct.ms-writing{color:var(--violet-soft)}.ms-cpct.ms-ready{color:var(--info)}
.psec.ms-waiting{opacity:.82}
/* V2.4 Phase 5 — Data & Results / Files / Activity */
.res-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0}
.res-tile{border:1px solid var(--line);border-radius:12px;padding:13px 14px;background:var(--surface)}
.res-tile b{display:block;font-size:20px;font-weight:800}
.res-tile span{font-size:11px;color:var(--ink-faint)}
.kf-list{display:flex;flex-direction:column;gap:0}
.kf-row{display:grid;grid-template-columns:1.2fr .9fr 1fr auto;gap:10px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--line);font-size:12.5px}
.kf-src{color:var(--ink-faint);font-size:11px}
.kf-term{color:var(--ink)}.kf-est{font-weight:700;font-variant-numeric:tabular-nums;color:var(--violet-soft)}
.kf-p{color:var(--ink-soft);font-variant-numeric:tabular-nums;text-align:right}
.rart{border:1px solid var(--line);border-radius:12px;padding:13px 14px;margin-bottom:12px;background:var(--surface)}
.rart-top{display:flex;justify-content:space-between;align-items:center}
.rart-top b{font-size:13.5px}
.rart-meta{font-size:11px;color:var(--ink-faint);margin-top:3px}
.modal.prov{width:min(600px,96vw)}
.pv-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}
.pv-c{border:1px solid var(--line);border-radius:10px;padding:10px 11px;background:var(--surface)}
.pv-k{font-size:10px;letter-spacing:.08em;text-transform:uppercase;font-weight:800;color:var(--ink-faint);margin-bottom:5px}
.pv-v{font-size:12.5px;color:var(--ink)}
.pv-hash{margin-top:12px}
.pv-hash code{display:block;margin-top:5px;font-size:11.5px;word-break:break-all;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px 10px;color:var(--violet-soft)}
.pv-sec{margin-top:14px}
.pv-src{display:flex;gap:10px;padding:7px 0;border-bottom:1px solid var(--line);font-size:12px}
.pv-src-k{min-width:120px;color:var(--ink-faint)}
.pv-src-v{color:var(--ink)}.pv-src-by{color:var(--ink-faint)}
.file-list{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.file-row{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--surface)}
.file-ic{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;background:var(--teal-tint);color:var(--violet-soft);font-size:15px;flex:none}
.file-main{flex:1;min-width:0}
.file-nm{font-size:13px;font-weight:600}
.file-meta{font-size:11px;color:var(--ink-faint);margin-top:2px}
.file-used{display:flex;flex-wrap:wrap;gap:5px;justify-content:flex-end}
.used-tag{font-size:10.5px;border:1px solid var(--line);border-radius:999px;padding:3px 8px;color:var(--ink-soft);background:var(--panel)}
.act-cloud{font-size:11.5px;color:var(--ok);margin:10px 0}
.act-row{display:flex;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}
.act-id{font-size:11px;font-weight:800;color:var(--ink-faint);font-variant-numeric:tabular-nums;padding-top:2px;min-width:40px}
.act-main{flex:1;min-width:0}
.act-top{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}
.act-type{font-size:13px;font-weight:600}
.act-type.dec{color:var(--violet-soft)}
.act-by{font-size:11px;color:var(--ink-faint)}
.act-line{margin-top:3px}
.act-val{font-size:12px;color:var(--ink-soft);font-variant-numeric:tabular-nums}
.act-aff{font-size:11px;color:var(--ink-faint);margin-top:3px}
.act-noregen{color:var(--ink-faint)}
.act-hist{font-size:12px;color:var(--ink-soft);padding:7px 0;border-bottom:1px solid var(--line)}
@media(max-width:640px){.res-strip,.pv-grid{grid-template-columns:repeat(2,1fr)}.kf-row{grid-template-columns:1fr auto}.kf-src{display:none}}
/* V2.4 Phase 6 — Research dashboard: sidebar shell + mind map + detail panel */
.dash-shell{display:grid;grid-template-columns:212px 1fr 320px;height:calc(100vh - 56px);background:var(--bg)}
.dside{border-right:1px solid var(--line);display:flex;flex-direction:column;padding:16px 12px;gap:6px;background:var(--surface)}
.dside-brand{display:flex;align-items:center;gap:1px;background:none;border:0;cursor:pointer;font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:17px;color:var(--ink);padding:4px 6px 12px}
.dside-brand i{color:var(--teal)}
.dside-nav{display:flex;flex-direction:column;gap:3px;flex:1}
.dside-item{display:flex;align-items:center;gap:10px;padding:9px 11px;border:0;border-radius:10px;background:none;color:var(--ink-soft);cursor:pointer;font-size:13px;text-align:left;width:100%}
.dside-item:hover{background:var(--panel)}
.dside-item.on{background:var(--teal-tint);color:var(--violet-soft);font-weight:600}
.di-ic{width:18px;text-align:center;opacity:.85}
.dside-foot{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--line);padding-top:10px}
.dside-user{display:flex;align-items:center;gap:9px;padding:7px 9px;border:0;border-radius:10px;background:none;cursor:pointer;width:100%;text-align:left}
.dside-user:hover{background:var(--panel)}
.du-av{width:26px;height:26px;border-radius:50%;background:var(--teal-deep);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex:none}
.du-nm{font-size:12px;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dmain{display:flex;flex-direction:column;min-width:0}
.dash-top{display:flex;align-items:center;gap:12px;padding:14px 20px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.dash-search{display:flex;align-items:center;gap:7px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:7px 11px;flex:1;min-width:150px}
.dash-search span{color:var(--ink-faint)}
.dash-search input{background:none;border:0;outline:0;color:var(--ink);font-size:13px;width:100%}
.dash-filters{display:flex;gap:6px}
.dash-fchip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:6px 11px;font-size:12px;color:var(--ink-soft);cursor:pointer}
.dash-fchip.on{background:var(--teal-tint);border-color:var(--st-purple-b);color:var(--violet-soft);font-weight:600}
.fc-n{opacity:.7;font-variant-numeric:tabular-nums}
.dash-viewtgl{display:flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.dash-viewtgl button{background:var(--surface);border:0;padding:7px 12px;font-size:12px;color:var(--ink-soft);cursor:pointer}
.dash-viewtgl button.on{background:var(--teal-tint);color:var(--violet-soft);font-weight:600}
.dash-canvas{flex:1;overflow:auto;padding:20px;display:flex;align-items:center;justify-content:center}
.dash-canvas .study-grid{align-self:flex-start;width:100%}
.mindmap{width:100%;height:100%;max-height:600px}
.mm-link{stroke:var(--line);stroke-width:1.4}
.mm-node.sel .mm-link{stroke:var(--teal);stroke-width:2}
.mm-ringbg{fill:none;stroke:var(--panel);stroke-width:5}
.mm-ring{fill:none;stroke-width:5;stroke-linecap:round;transition:stroke-dashoffset .5s}
.mm-disc{stroke-width:2}
.mm-disc.sel{stroke-width:3}
.mm-pct{text-anchor:middle;font-size:14px;font-weight:800}
.mm-lb{text-anchor:middle;font-size:12px;fill:var(--ink-soft)}
.mm-node.sel .mm-lb{fill:var(--ink);font-weight:600}
.mm-core{fill:var(--teal-deep);opacity:.16;stroke:var(--teal);stroke-width:1.5}
.mm-core-t{text-anchor:middle;font-size:13px;font-weight:700;fill:var(--violet-soft)}
.mm-core-t2{text-anchor:middle;font-size:13px;font-weight:700;fill:var(--violet-soft)}
.ddetail{border-left:1px solid var(--line);padding:20px 18px;overflow:auto;background:var(--surface);display:flex;flex-direction:column}
.dt-head .chip{margin-bottom:8px}
.dt-head h2{font-size:17px;line-height:1.3}
.dt-sec{margin-top:16px}
.dt-k{font-size:10px;letter-spacing:.08em;text-transform:uppercase;font-weight:800;color:var(--ink-faint);margin-bottom:6px}
.dt-q{font-size:13px;line-height:1.55;color:var(--ink-soft)}
.dt-prog{height:6px;border-radius:999px;background:var(--panel);overflow:hidden;margin-top:12px}
.dt-prog i{display:block;height:100%;background:linear-gradient(90deg,var(--teal-deep),var(--teal))}
.dt-pctlab{font-size:11px;color:var(--ink-faint);margin-top:6px}
.dt-cur{font-size:13px;color:var(--ink)}
.dt-cur b{color:var(--violet-soft)}
.dt-next{background:var(--teal-tint);border:1px solid var(--st-purple-b);border-radius:12px;padding:12px 13px}
.dt-ndv{font-size:14px;font-weight:600;color:var(--ink);margin-top:2px}
.dt-ndr{font-size:11.5px;color:var(--ink-soft);margin-top:5px;line-height:1.5}
.dt-cta{margin-top:auto;width:100%}
@media(max-width:1024px){.dash-shell{grid-template-columns:64px 1fr}.ddetail{display:none}.di-l,.du-nm,.dside-brand span,.dside-brand i{display:none}.dside-item{justify-content:center}}
/* V2.4 Phase 7 — project page: slim rail + top tabs + workflow rail */
.proj-side{align-items:center;padding:14px 0;gap:8px}
.psi{width:40px;height:40px;border-radius:11px;border:0;background:none;color:var(--ink-soft);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.psi:hover{background:var(--surface)}
.psi.on{background:var(--teal-tint);color:var(--violet-soft)}
.psi-back{font-size:18px;color:var(--ink-faint)}
.psi-nav{display:flex;flex-direction:column;gap:6px;flex:1;margin-top:6px}
.psi-foot{margin-top:auto}
.ws.proj .main{overflow:hidden;padding:0;display:flex;flex-direction:column}
.ws.proj #pageBody{overflow:auto;padding:22px 30px 56px;flex:1;min-height:0}
.ptabbar{flex:none;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 22px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.ptab-l{min-width:0}
.ptab-title{font-size:13px;font-weight:700;color:var(--ink);margin-bottom:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:520px}
.ptabs{display:flex;gap:2px}
.ptab{background:none;border:0;border-bottom:2px solid transparent;padding:9px 14px;font-size:13px;color:var(--ink-faint);cursor:pointer;margin-bottom:-1px}
.ptab:hover{color:var(--ink-soft)}
.ptab.on{color:var(--violet-soft);border-bottom-color:var(--teal);font-weight:600}
.ptab-r{display:flex;align-items:center;gap:8px;padding-bottom:8px}
.proj-compl{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:var(--ink-soft);font-variant-numeric:tabular-nums}
.proj-sub{flex:none;display:flex;align-items:center;gap:10px;padding:10px 22px 0}
.crumb{background:none;border:0;color:var(--violet-soft);font-size:12.5px;cursor:pointer;padding:0}
.crumb-cur{font-size:12.5px;color:var(--ink-faint)}
.wfr .wfr-groups{display:flex;flex-wrap:wrap;gap:14px;margin-top:4px}
.wfr-g{min-width:120px}
.wfr-gl{font-size:10px;letter-spacing:.07em;text-transform:uppercase;font-weight:800;color:var(--ink-faint);margin-bottom:6px}
.wfr-items{display:flex;flex-direction:column;gap:5px}
.wfr-chip{text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:7px 10px;font-size:12px;color:var(--ink-soft);cursor:pointer}
.wfr-chip:hover{border-color:var(--teal-deep);color:var(--ink)}
.wfr-chip.done{color:var(--ok)}
.wfr-chip.on{background:var(--teal-tint);border-color:var(--st-purple-b);color:var(--violet-soft);font-weight:600}
@media(max-width:760px){.ptab-r .btn{display:none}.wfr-g{min-width:100px}}
/* V2.4 Phase 8 — Final Manuscript Workspace */
.fms-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;background:linear-gradient(100deg,var(--teal-tint),var(--panel));border:1px solid var(--st-purple-b);border-radius:14px;padding:15px 18px;margin-bottom:14px}
.fms-bn-t b{display:block;font-size:14px;color:var(--violet-soft)}
.fms-bn-t span{font-size:12px;color:var(--ink-soft)}
.finalms{position:fixed;inset:0;z-index:60;background:var(--bg);display:flex;flex-direction:column}
.fms-top{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--line);flex:none}
.fms-title{font-size:14px;font-weight:700}
.fms-top-a{display:flex;gap:8px}
.fms-grid{flex:1;display:grid;grid-template-columns:220px minmax(0,1fr) 340px;min-height:0}
.fms-left{border-right:1px solid var(--line);overflow:auto;padding:16px 12px;background:var(--surface)}
.fms-lh{font-size:10px;letter-spacing:.08em;text-transform:uppercase;font-weight:800;color:var(--ink-faint);margin-bottom:10px}
.fms-sec{display:flex;align-items:center;gap:9px;width:100%;text-align:left;border:0;background:none;padding:8px 10px;border-radius:9px;font-size:13px;color:var(--ink-soft);cursor:pointer}
.fms-sec:hover{background:var(--panel)}
.fms-sec.on{background:var(--teal-tint);color:var(--violet-soft);font-weight:600}
.fms-dot{width:8px;height:8px;border-radius:50%;flex:none}
.fms-dot.ok{background:var(--ok)}.fms-dot.empty{background:var(--line)}
.fms-mid{overflow:auto;padding:26px 40px 80px;background:var(--bg)}
.fms-block{max-width:720px;margin:0 auto 10px;padding:14px 18px;border:1px solid transparent;border-radius:12px;cursor:pointer}
.fms-block:hover{border-color:var(--line);background:var(--surface)}
.fms-block.sel{border-color:var(--st-purple-b);background:var(--surface)}
.fms-block h3{font-size:15px;margin-bottom:8px;color:var(--ink)}
.fms-body{font-size:13.5px;line-height:1.7;color:var(--ink-soft)}
.fms-body.empty{color:var(--ink-faint);font-style:italic}
.fms-right{border-left:1px solid var(--line);overflow:auto;padding:18px 16px;background:var(--surface);display:flex;flex-direction:column}
.fms-ed-h{margin-bottom:12px}
.fms-ed-k{font-size:10px;letter-spacing:.08em;text-transform:uppercase;font-weight:800;color:var(--ink-faint)}
.fms-ed-h h4{font-size:15px;margin-top:3px}
.fms-actions{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.fms-lock{width:100%;font-size:11px;color:var(--ink-faint);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin:2px 0}
.fms-ai{flex:1}
.fms-diff{display:flex;flex-direction:column;gap:9px;margin-bottom:10px}
.fms-diff-c{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--panel)}
.fms-diff-c.new{border-color:var(--st-purple-b);background:var(--teal-tint)}
.fms-diff-k{font-size:10px;letter-spacing:.07em;text-transform:uppercase;font-weight:800;color:var(--ink-faint);margin-bottom:5px}
.fms-diff-c.new .fms-diff-k{color:var(--violet-soft)}
.fms-diff-v{font-size:12.5px;line-height:1.6;color:var(--ink)}
.fms-diff-a{display:flex;gap:6px;margin-top:8px}
.fms-note{font-size:11.5px;color:var(--ink-faint);line-height:1.5;margin:6px 0}
.fms-ok{font-size:12.5px;color:var(--ok);background:var(--ok-tint);border:1px solid var(--ok-b);border-radius:9px;padding:10px 12px}
.fms-check{display:flex;flex-direction:column;gap:8px}
.fms-cs{border:1px solid var(--line);border-radius:9px;padding:9px 11px;background:var(--panel)}
.fms-cs.warn{border-color:var(--warn)}
.fms-cs-h{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:5px}
.fms-cs-t{font-size:12px;line-height:1.5;color:var(--ink-soft)}
.fms-cid{font-size:10px;color:var(--ink-faint);font-family:monospace}
.fms-editbox textarea{width:100%;min-height:180px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:13px;line-height:1.6;background:var(--bg);color:var(--ink);outline:0;resize:vertical}
@media(max-width:960px){.fms-grid{grid-template-columns:1fr}.fms-left,.fms-right{display:none}}
/* V2.3.2 — Features & Models pages */
.metricrow2{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}
.metric2{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--surface)}
.metric2 b{display:block;font-size:20px}.metric2 span{font-size:11px;color:var(--ink-soft)}
.card2{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px}
.tag{display:inline-block;padding:3px 8px;border-radius:999px;background:var(--panel);color:var(--ink-soft);font-size:10.5px;border:1px solid var(--line)}
.tag.warn{background:var(--warn-tint);color:var(--warn);border-color:var(--warn-b)}
.tag.ok2{background:var(--teal-tint);color:var(--teal-deep);border-color:#cfe2de}
tr.feat-ex{opacity:.5}
.mplan{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.mfield.mfull{grid-column:1/-1}
.mfield label{display:block;font-size:11px;color:var(--ink-soft);margin-bottom:5px;font-weight:600}
.mfield select,.mfield input{width:100%;border:1px solid var(--line);border-radius:9px;padding:8px 10px;font-size:13px;outline:0;background:var(--surface);color:var(--ink)}
.mchecks{display:flex;flex-wrap:wrap;gap:8px 14px}
.mchecks label{font-size:12px;color:var(--ink);font-weight:400;display:flex;align-items:center;gap:5px;margin:0}
@media(max-width:900px){.mplan{grid-template-columns:1fr}.metricrow2{grid-template-columns:1fr 1fr}}
.mini{border:0;border-radius:9px;padding:7px 10px;font-size:11px;font-weight:700;cursor:pointer;background:var(--panel);color:var(--ink-soft)}
.mini.success{background:var(--teal);color:#fff}
.mini.success:hover{background:var(--teal-deep)}
.mini.secondary{background:var(--panel);color:var(--ink-soft);border:1px solid var(--line)}
.reflink{text-decoration:none}
.reflink-t{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}
.reflink-t:hover{color:var(--teal-deep);border-color:var(--teal)}
.role-badge{font-size:10px;padding:2px 7px;border-radius:999px;background:var(--panel);border:1px solid var(--line);color:var(--ink-soft)}
.role-badge.outcome{background:var(--teal-tint);border-color:#cfe2de;color:var(--teal-deep)}
.role-badge.exposure{background:#eef3ff;border-color:#d3ddf6;color:#3457a8}
.muted{color:var(--ink-faint);font-size:12px;padding:14px}
.toolbar2{display:flex;gap:8px;margin-bottom:12px}

/* copilot / inspector */
.copilot{border-left:1px solid var(--line);background:var(--panel);display:flex;flex-direction:column;min-height:0}
.cp-head{padding:13px 15px;border-bottom:1px solid var(--line)}
.cp-head .ctx{font-size:9.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint);font-family:var(--accent-font);font-weight:700}
.cp-head h4{font-size:13px;margin-top:3px}
.cp-body{padding:14px 15px;overflow:auto;flex:1;min-height:0;display:flex;flex-direction:column;gap:12px}
.cp-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px}
.cp-card h5{font-size:11px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.05em;font-family:var(--accent-font);margin-bottom:6px}
.cp-issue{display:flex;gap:8px;align-items:flex-start;font-size:12px;line-height:1.45;padding:8px 0;border-bottom:1px solid var(--line-soft)}
.cp-issue:last-child{border-bottom:0}
.cp-issue .dot{width:8px;height:8px;border-radius:50%;margin-top:5px;flex:0 0 auto}
.cp-issue.high .dot{background:var(--crit)} .cp-issue.medium .dot{background:var(--warn)} .cp-issue.low .dot{background:var(--ink-faint)}
.cp-foot{font-size:10.5px;color:var(--ink-faint);line-height:1.5;padding:12px 15px;border-top:1px solid var(--line)}
.insp-field{margin-bottom:11px}
.insp-field label{display:block;font-size:10px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.05em;font-weight:700;margin-bottom:4px;font-family:var(--accent-font)}
.insp-field input,.insp-field select,.insp-field textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:7px 9px;font-size:12.5px;background:var(--surface);outline:0}
.insp-field input:focus,.insp-field select:focus,.insp-field textarea:focus{border-color:var(--teal-deep)}

/* modal */
.modal-back{position:fixed;inset:0;background:rgba(22,33,42,.34);display:grid;place-items:center;z-index:60;padding:20px}
.modal{width:min(560px,96vw);background:var(--surface);border-radius:16px;box-shadow:0 30px 80px rgba(22,33,42,.22);padding:22px;max-height:92vh;overflow:auto}
.modal h2{font-size:19px;margin-bottom:6px}
.modal p.sub{color:var(--ink-soft);font-size:12.5px;margin-bottom:14px}
.modal textarea{width:100%;border:1px solid var(--line);border-radius:11px;padding:12px;font-size:14px;min-height:120px;outline:0;resize:vertical}
.modal textarea:focus{border-color:var(--teal-deep)}
.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}
.preview-fields{display:grid;gap:9px;margin:6px 0 4px}
.pf{border:1px solid var(--line);border-radius:9px;padding:9px 11px}
.pf.flag{border-color:#ecc9a0;background:var(--warn-tint)}
.pf label{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);font-weight:700;font-family:var(--accent-font)}
.pf input{width:100%;border:0;outline:0;background:none;font-size:13.5px;margin-top:3px}
.warnlist{background:var(--warn-tint);border:1px solid #ecdcbe;border-radius:9px;padding:10px 12px;margin-top:10px}
.warnlist b{color:var(--warn);font-size:11.5px}
.warnlist div{font-size:11.5px;color:#7a5518;margin-top:4px;line-height:1.4}

.toast{position:fixed;right:18px;bottom:18px;background:var(--teal-deep);color:#fff;border-radius:10px;padding:9px 13px;font-size:12px;opacity:0;transform:translateY(6px);transition:.2s;pointer-events:none;z-index:80}
.toast.show{opacity:1;transform:none}

.badge-v2{font-size:9px;font-weight:700;letter-spacing:.1em;color:#fff;background:var(--teal);border-radius:5px;padding:2px 6px;font-family:var(--accent-font)}

@media(max-width:1000px){.ws,.ws.no-copilot{grid-template-columns:1fr;height:auto}.side,.copilot{border:0;border-bottom:1px solid var(--line)}.nav{flex-direction:row;flex-wrap:wrap}.stat-cards{grid-template-columns:1fr}.field-grid{grid-template-columns:1fr}}

/* ---------- Phase 2: Data workspace ---------- */
.dropzone{border:1px dashed #cbd6d2;border-radius:12px;background:var(--surface);padding:30px;text-align:center;color:var(--ink-soft)}
.dropzone b{display:block;color:var(--ink);font-size:14px;margin-bottom:4px}
.dropzone span{font-size:12px}
.state-bar{display:flex;gap:10px;align-items:center;margin-bottom:14px;font-size:11.5px;flex-wrap:wrap}
.state-pill{padding:3px 10px;border-radius:999px;font-weight:600}
.state-pill.not{background:var(--panel);color:var(--ink-faint);border:1px solid var(--line)}
.state-pill.up{background:#eef3ff;color:#3457a8}
.state-pill.warn{background:var(--warn-tint);color:var(--warn)}
.state-pill.crit{background:var(--crit-tint);color:var(--crit)}
.state-pill.ready{background:var(--ok-tint);color:var(--ok)}
.version-chip{font-size:10.5px;background:var(--teal-tint);color:var(--teal-deep);border:1px solid #cfe2de;border-radius:999px;padding:3px 9px}
.map-row{display:grid;grid-template-columns:1fr 22px 1fr auto;gap:11px;align-items:center;padding:9px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface);margin-bottom:7px}
.map-row .arrow{color:#9aa6a2;text-align:center}
.map-row select{border:1px solid var(--line);border-radius:7px;padding:6px 8px;font-size:12.5px;background:var(--panel);width:100%;outline:0}
.map-row select:focus{border-color:var(--teal-deep)}
.map-badge{font-size:9.5px;padding:2px 8px;border-radius:999px;white-space:nowrap}
.map-badge.sugg{background:#eef3ff;color:#3457a8} .map-badge.conf{background:var(--ok-tint);color:var(--ok)} .map-badge.none{background:var(--panel);color:var(--ink-faint);border:1px solid var(--line)}
.qcounts{display:flex;gap:10px;margin-bottom:14px}
.qcount{border:1px solid var(--line);border-radius:10px;padding:10px 15px;background:var(--surface);min-width:92px}
.qcount .num{font-size:22px;font-weight:800;letter-spacing:-.02em}
.qcount .lbl{font-size:10px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.05em;font-family:var(--accent-font);margin-top:2px}
.qcount.critical .num{color:var(--crit)} .qcount.warning .num{color:var(--warn)} .qcount.info .num{color:var(--ink-soft)}
.issue{border:1px solid var(--line);border-left:4px solid var(--warn);border-radius:10px;padding:12px 14px;background:var(--surface);margin-bottom:8px}
.issue.critical{border-left-color:var(--crit)} .issue.info{border-left-color:#b8c2be}
.issue .it{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.issue .sev{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border-radius:999px;font-family:var(--accent-font)}
.issue.critical .sev{background:var(--crit-tint);color:var(--crit)} .issue.warning .sev{background:var(--warn-tint);color:var(--warn)} .issue.info .sev{background:var(--panel);color:var(--ink-soft)}
.issue .desc{font-size:12.5px;color:var(--ink)}
.issue .rec{font-size:11.5px;color:var(--ink-soft);margin-top:4px}
.tabs2 button:disabled{opacity:.45;cursor:not-allowed}

/* ---------- Phase 3: Analysis (deterministic) ---------- */
.asec{margin-bottom:24px}
.asec-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.asec-h h3{font-size:14px;font-weight:700}
.step{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:var(--surface);margin-bottom:8px}
.step>div{min-width:0}
.step b{font-size:13px}
.step-r{font-size:11.5px;color:var(--ink-soft);margin-top:2px;line-height:1.45}
.step-p{font-size:10.5px;color:var(--ink-faint);margin-top:3px;font-family:var(--mono,monospace);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acard{border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:var(--surface);margin-bottom:12px}
.acard-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.acard-top b{font-size:13.5px}
.acard-meta{font-size:11.5px;color:var(--ink-soft);margin-top:3px;line-height:1.5}
.acard-foot{font-size:10.5px;color:var(--ink-faint);margin-top:10px;padding-top:9px;border-top:1px dashed var(--line);font-style:italic}

/* ---------- Phase 4: Results & Claims (Trust Layer) ---------- */
.trust{border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:var(--surface);margin-bottom:22px}
.trust-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.trust-h b{font-size:13.5px}
.trust-cov{font-size:11.5px;color:var(--ink-soft);font-variant-numeric:tabular-nums}
.trust-legend{display:flex;flex-wrap:wrap;gap:10px 14px;margin-top:11px}
.leg{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:var(--ink-soft);font-variant-numeric:tabular-nums}
.trust-warn{margin-top:11px;font-size:11.5px;color:var(--warn);background:var(--warn-tint);border:1px solid #ecdcbe;border-radius:8px;padding:8px 11px}
.sup-badge{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border-radius:999px;font-family:var(--accent-font);white-space:nowrap}
.sup-data{background:#eef3ff;color:#3457a8}
.sup-analysis{background:var(--teal-tint);color:var(--teal-deep)}
.sup-evidence{background:#eaf5ee;color:var(--ok)}
.sup-protocol{background:#f0edfb;color:#5b45b0}
.sup-interp{background:var(--warn-tint);color:var(--warn)}
.sup-unsup{background:var(--crit-tint);color:var(--crit)}
.clm{border:1px solid var(--line);border-radius:12px;padding:13px 15px;background:var(--surface);margin-bottom:9px}
.clm-top{display:flex;align-items:center;gap:7px}
.clm-x{margin-left:auto}
.clm-text{font-size:13.5px;line-height:1.5;margin-top:9px}
.clm-src{font-size:10.5px;color:var(--ink-faint);margin-top:7px;font-variant-numeric:tabular-nums}
.chip{font-size:9.5px;font-weight:600;padding:2px 7px;border-radius:999px;font-family:var(--accent-font)}
.chip.sig{background:var(--ok-tint);color:var(--ok)}
.chip.ns{background:var(--panel);color:var(--ink-soft)}
.chip.ver{background:var(--teal-tint);color:var(--teal-deep)}
.chip.unver{background:var(--crit-tint);color:var(--crit)}

/* ---------- Phase 5: Protocol & Evidence ---------- */
.pbar{height:7px;border-radius:999px;background:var(--panel);overflow:hidden;margin-top:11px}
.pbar-fill{height:100%;background:var(--teal);border-radius:999px;transition:width .3s}
.psec{border:1px solid var(--line);border-radius:11px;padding:12px 14px;background:var(--surface);margin-bottom:10px}
.psec.gap{border-style:dashed;border-color:var(--warn-b);background:var(--warn-tint)}
.psec-h{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.psec-h b{font-size:12.5px}
.psec-body{width:100%;border:1px solid var(--line);border-radius:8px;padding:9px 10px;font-size:13px;line-height:1.55;outline:0;resize:vertical;background:var(--panel);font-family:inherit}
.psec-body:focus{border-color:var(--teal-deep);background:var(--surface)}
.psrc{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:999px;font-family:var(--accent-font);margin-left:auto}
.psrc-d{background:#eef3ff;color:#3457a8} .psrc-v{background:var(--teal-tint);color:var(--teal-deep)}
.psrc-p{background:#f0edfb;color:#5b45b0} .psrc-gap{background:var(--warn-tint);color:var(--warn)}
.qprev{border:1px solid var(--line);border-radius:9px;background:var(--panel);padding:11px 13px;font-family:var(--mono,monospace);font-size:12px;line-height:1.6;color:var(--ink);word-break:break-word}

/* ---------- Phase 6: Manuscript Trust Layer ---------- */
.msaudit{margin-top:10px;border-top:1px dashed var(--line);padding-top:10px;display:flex;flex-direction:column;gap:8px}
.msaudit.ok{font-size:11.5px;color:var(--ok);border-top:1px dashed var(--line)}
.msrow{font-size:12px}
.msrow>div:first-child{display:flex;align-items:center;gap:6px;margin-bottom:3px}
.msrow-t{color:var(--ink-soft);line-height:1.5;padding-left:2px;border-left:3px solid #ecc9a0;padding-left:9px}

/* ---------- Phase 7: Research Validator ---------- */
.gate{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin-bottom:20px}
.gate-l{display:flex;align-items:center;gap:16px}
.gate-score{font-size:34px;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums;width:64px;text-align:center;border-radius:12px;padding:6px 0}
.gate-txt b{font-size:15px;display:block}
.gate-txt span{font-size:11.5px;color:var(--ink-soft)}
.gate-ready{background:var(--ok-tint);border-color:#bfe0c8} .gate-ready .gate-score{background:#fff;color:var(--ok)}
.gate-revise{background:var(--warn-tint);border-color:#ecdcbe} .gate-revise .gate-score{background:#fff;color:var(--warn)}
.gate-blocked{background:var(--crit-tint);border-color:#e7c3c8} .gate-blocked .gate-score{background:#fff;color:var(--crit)}
.vgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:22px}
@media(max-width:760px){.vgrid{grid-template-columns:1fr}}
.vlayer{border:1px solid var(--line);border-radius:12px;padding:13px 15px;background:var(--surface)}
.vlayer-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}
.vlayer-h b{font-size:13px}
.vscore{font-size:12px;font-weight:800;font-variant-numeric:tabular-nums;padding:2px 9px;border-radius:999px}
.vscore.sev-ok{background:var(--ok-tint);color:var(--ok)} .vscore.sev-warn{background:var(--warn-tint);color:var(--warn)} .vscore.sev-crit{background:var(--crit-tint);color:var(--crit)}
.vrow{padding:7px 0;border-top:1px solid var(--line-soft)}
.vrow:first-child{border-top:0}
.vrow-top{display:flex;align-items:flex-start;gap:8px;font-size:12.5px;line-height:1.45}
.vrow-fix{font-size:11px;color:var(--ink-soft);margin-top:3px;padding-left:2px}
.sevb{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:999px;font-family:var(--accent-font);white-space:nowrap;flex:0 0 auto;margin-top:1px}
.sevb.sev-crit{background:var(--crit-tint);color:var(--crit)} .sevb.sev-warn{background:var(--warn-tint);color:var(--warn)}
.sevb.sev-info{background:#eef3ff;color:#3457a8} .sevb.sev-ok{background:var(--ok-tint);color:var(--ok)}

/* P2a: project-aware copilot */
.cp-nba-wrap h5{margin-bottom:6px}
.cp-nba-tag{font-size:8.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:1px 6px;border-radius:999px;background:var(--panel);color:var(--ink-soft);font-family:var(--accent-font);margin-left:6px}
.cp-nba-tag.blk{background:var(--crit-tint);color:var(--crit)}
.cp-nba-a{font-size:12.5px;font-weight:600;margin-top:2px}
.cp-nba-r{font-size:11px;color:var(--ink-soft);line-height:1.45;margin:5px 0 8px}
.cp-chat{display:flex;flex-direction:column;gap:8px;max-height:280px;overflow:auto;margin:10px 0}
.cp-msg{display:flex;flex-direction:column;gap:5px}
.cp-msg.user{align-items:flex-end}
.cp-bub{font-size:12px;line-height:1.5;padding:7px 10px;border-radius:10px;max-width:92%}
.cp-msg.user .cp-bub{background:var(--teal);color:#fff}
.cp-msg.ai .cp-bub{background:var(--panel);color:var(--ink);border:1px solid var(--line)}
.cp-do{align-self:flex-start}
.cp-ask{display:flex;gap:6px;margin-bottom:12px}
.cp-ask input{flex:1;border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:12px;outline:0;background:var(--surface)}
.cp-ask input:focus{border-color:var(--teal-deep)}

/* P2b: canvas block editing · workflow progress · stale panel · type banner */
.cedit-bar{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}
.cedit-lock{font-size:10.5px;color:var(--ink-faint);align-self:center}
.cedit-box:not(:empty){margin-top:8px;border:1px solid var(--line);border-radius:9px;padding:9px 11px;background:var(--panel)}
.cedit-ok{font-size:11.5px;color:var(--ok)}
.cedit-note{font-size:10.5px;color:var(--ink-faint);line-height:1.45}
.cedit-issues{display:flex;flex-direction:column;gap:6px}
.cedit-i{font-size:11.5px;line-height:1.45}
.cedit-i b{color:var(--warn);text-transform:capitalize;margin-right:4px}
.cedit-ctx{color:var(--ink-faint)}
.cedit-rw-t{font-size:12.5px;line-height:1.55;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:9px 11px}
.cedit-rw-a{display:flex;align-items:center;gap:9px;margin-top:7px}
.wf-list{display:flex;flex-direction:column;gap:2px}
.wf-step{display:flex;align-items:center;gap:8px;font-size:12px;padding:4px 0}
.wf-ic{width:16px;text-align:center;font-size:12px}
.wf-done .wf-ic{color:var(--ok)} .wf-current .wf-ic{color:var(--teal)} .wf-stale .wf-ic{color:var(--warn)}
.wf-blocked .wf-ic{color:var(--ink-faint)} .wf-missing .wf-ic{color:var(--ink-faint)}
.wf-done .wf-lb{color:var(--ink)} .wf-missing .wf-lb,.wf-blocked .wf-lb{color:var(--ink-faint)}
.wf-current .wf-lb{font-weight:700;color:var(--teal-deep)}
.wf-road,.wf-tag{font-size:8.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:1px 6px;border-radius:999px;font-family:var(--accent-font);margin-left:auto}
.wf-road{background:var(--panel);color:var(--ink-faint);border:1px dashed var(--line)}
.wf-tag{background:var(--warn-tint);color:var(--warn)}
.stale-card{border-left:4px solid var(--warn)}
.stale-item{border-top:1px solid var(--line-soft);padding:9px 0}
.stale-item:first-of-type{border-top:0}
.stale-h{display:flex;align-items:center;gap:8px}
.stale-h b{font-size:12.5px;text-transform:capitalize}
.stale-badge{font-size:8.5px;font-weight:700;background:var(--warn-tint);color:var(--warn);border-radius:999px;padding:1px 7px;font-family:var(--accent-font)}
.stale-r{font-size:11.5px;color:var(--ink-soft);margin-top:4px}
.stale-hist{font-size:11px;color:var(--ink-faint);margin-top:4px}
.stale-a{margin-top:7px}
.linklike{background:none;border:0;color:var(--teal);text-decoration:underline;font-size:11px;padding:0;cursor:pointer}
.type-banner{background:var(--teal-tint);border:1px solid #cfe2de;border-radius:10px;padding:11px 14px;font-size:12.5px;line-height:1.5;color:var(--teal-deep);margin-bottom:16px}
.type-banner b{color:var(--teal-deep)}

/* ---------- Splash landing (first entry) — light brand ---------- */
.landing.landing-dark{max-width:none;margin:0;padding:0;min-height:calc(100vh - 56px);position:relative;justify-content:center;overflow:hidden;background:
  radial-gradient(90% 70% at 50% 42%, rgba(15,118,110,.10), rgba(15,118,110,.03) 45%, transparent 72%)}
.landing-dark .ld-wave{position:absolute;left:0;right:0;top:48%;width:100%;height:260px;transform:translateY(-50%);opacity:.5;pointer-events:none}
.landing-dark .ld-brand{position:relative;font-family:var(--accent-font);font-weight:500;font-size:clamp(58px,10vw,120px);line-height:1;letter-spacing:-.03em;
  background:linear-gradient(178deg,#14897F 6%,#0F766E 52%,#0B5752 96%);-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 6px 34px rgba(15,118,110,.22))}
.landing-dark .ld-tag{position:relative;margin-top:20px;font-size:clamp(15px,1.8vw,19px);color:var(--ink-soft);font-weight:400}
.landing-dark .ld-tag2{position:relative;margin-top:4px;font-size:clamp(14px,1.7vw,18px);color:var(--ink-faint);font-weight:400}
.landing-dark .ld-cta{position:relative;margin-top:56px;display:inline-flex;align-items:center;gap:11px;border:0;border-radius:16px;
  padding:17px 40px;font-size:16px;font-weight:600;color:#fff;cursor:pointer;
  background:linear-gradient(180deg,#14897F,#0F766E);box-shadow:0 0 40px rgba(15,118,110,.28),0 10px 26px rgba(15,118,110,.22),inset 0 1px 0 rgba(255,255,255,.3);transition:.18s}
.landing-dark .ld-cta:hover{transform:translateY(-1px);box-shadow:0 0 54px rgba(15,118,110,.36),0 14px 32px rgba(15,118,110,.28),inset 0 1px 0 rgba(255,255,255,.35)}
.landing-dark .ld-cta .ld-plus{display:inline-grid;place-items:center;width:22px;height:22px;border:1.6px solid rgba(255,255,255,.85);border-radius:50%;font-size:14px;line-height:1}
.landing-dark .legal-foot{position:relative;border-top:0;margin-top:64px}
