/* ============================================================
   TOKENS — copied verbatim from scout_reference.html.
   ============================================================ */
:root{
  --paper:#FBFAF7;
  --panel:#FFFFFF;
  --ink:#16181C;
  --ink-soft:#4A4F58;
  --ink-faint:#8A9099;
  --rule:#DFDCD4;
  --rule-soft:#EDEAE3;
  --accept:#2E6046;
  --accept-bg:#E4EFE7;
  --reject:#8A3324;
  --reject-bg:#F6E5E1;
  --mark:#1F3A6E;
  --mark-bg:#E6ECF6;
  --shell:#22252B;
  --shell-ink:#E8E6E1;
  --warn:#8A6A24;
  --warn-bg:#F4EDDC;
  /* App-shell tokens (workspace launch page, top bar, Desk) — from the
     approved reference mockups. --paper is shared with the tokens above;
     ink/muted/hairline differ slightly from --ink/--ink-faint/--rule so
     they get their own names rather than overwriting Scout's palette. */
  --ws-ink:#1B1A17;
  --ws-muted:#6B665C;
  --ws-hairline:#E2DED5;
  --ws-flag:#9A3B2E;
}
:root:not([data-theme="light"]){
  @media (prefers-color-scheme:dark){
    --paper:#15171A; --panel:#1C1F23; --ink:#E9E7E2; --ink-soft:#AFB4BB;
    --ink-faint:#767C85; --rule:#31353B; --rule-soft:#262A2F;
    --accept:#8ECBA6; --accept-bg:#1E3229; --reject:#E5A090; --reject-bg:#38211C;
    --mark:#A8C0E8; --mark-bg:#1C2738; --shell:#0E1013;
    --warn:#D9BC7A; --warn-bg:#332B18;
    --ws-ink:#E9E7E2; --ws-muted:#9096A0; --ws-hairline:#31353B; --ws-flag:#E5A090;
  }
}
:root[data-theme="dark"]{
  --paper:#15171A; --panel:#1C1F23; --ink:#E9E7E2; --ink-soft:#AFB4BB;
  --ink-faint:#767C85; --rule:#31353B; --rule-soft:#262A2F;
  --accept:#8ECBA6; --accept-bg:#1E3229; --reject:#E5A090; --reject-bg:#38211C;
  --mark:#A8C0E8; --mark-bg:#1C2738; --shell:#0E1013;
  --warn:#D9BC7A; --warn-bg:#332B18;
  --ws-ink:#E9E7E2; --ws-muted:#9096A0; --ws-hairline:#31353B; --ws-flag:#E5A090;
}

/* Native <input type="date"> renders its calendar-picker icon in a fixed
   dark colour regardless of theme (WebKit/Blink only style it via this
   pseudo-element) — invert it in dark mode so it isn't a black icon on a
   near-black field. */
:root:not([data-theme="light"]){
  @media (prefers-color-scheme:dark){
    input[type="date"]::-webkit-calendar-picker-indicator{filter:invert(1);}
  }
}
:root[data-theme="dark"] input[type="date"]::-webkit-calendar-picker-indicator{filter:invert(1);}

*{box-sizing:border-box;}
[hidden]{display:none !important;}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:'Archivo',system-ui,-apple-system,sans-serif;font-size:15px;line-height:1.5;}
a{color:inherit;}
/* Site-wide hover: a thin outline instead of darkening background/text —
   a hover that recolors text toward black is unreadable in dark mode.
   [data-hoverable] is for non-<a> clickable surfaces (e.g. Board cards)
   that want the same affordance. */
a:hover, [data-hoverable]:hover{outline:1px solid var(--ink, #1B1A17);outline-offset:3px;color:inherit;}

/* ============================================================
   APP STYLES — from scout_reference.html.
   ============================================================ */
.page{max-width:1180px;margin:0 auto;padding:26px 20px 90px;}
.frame{background:var(--panel);border:1px solid var(--rule);overflow:hidden;}
.appbar{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;
  padding:12px 18px;border-bottom:1px solid var(--rule);}
.brand{font-family:'Newsreader',Georgia,serif;font-size:17px;font-weight:600;letter-spacing:-.01em;}
.brand a{text-decoration:none;}
.counts{font-size:12.5px;color:var(--ink-faint);font-variant-numeric:tabular-nums;}
.nav{display:flex;gap:16px;font-size:13px;color:var(--ink-faint);margin-left:auto;}
.nav a{text-decoration:none;}
.nav .on{color:var(--ink);font-weight:600;box-shadow:inset 0 -2px 0 var(--mark);}

/* stats strip — top of the feed */
.yield{display:flex;gap:26px;padding:14px 18px;flex-wrap:wrap;
  border-bottom:1px solid var(--rule);background:var(--paper);}
.yield div{font-size:12.5px;color:var(--ink-faint);}
.yield b{display:block;font-family:'Newsreader',serif;font-size:23px;font-weight:600;
  color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.25;}

.filters{display:flex;gap:6px;align-items:center;padding:9px 18px;flex-wrap:wrap;
  border-bottom:1px solid var(--rule);font-size:12.5px;color:var(--ink-faint);}
.filters a{text-decoration:none;padding:3px 10px;border-radius:12px;}
.filters a.on{background:var(--ink);color:var(--paper);}

.tg{font-family:'Archivo Narrow',sans-serif;font-size:11px;font-weight:600;
  padding:1.5px 7px;border:1px solid var(--rule);color:var(--ink-soft);
  border-radius:2px;white-space:nowrap;display:inline-block;}
.tg.f{background:var(--mark-bg);border-color:transparent;color:var(--mark);}
.tg.p{background:var(--accept-bg);border-color:transparent;color:var(--accept);}
.tg.form{font-style:italic;}
.tg.warn{background:var(--warn-bg);border-color:transparent;color:var(--warn);}
.tags{display:flex;gap:5px;flex-wrap:wrap;}
.q{font-family:'Archivo Narrow',sans-serif;font-size:12px;color:var(--ink-faint);}
.q b{font-weight:600;color:var(--ink-soft);}
.verdict{font-family:'Archivo Narrow',sans-serif;font-size:11px;font-weight:600;
  padding:1.5px 7px;border-radius:2px;}
.verdict.a{background:var(--accept-bg);color:var(--accept);}
.verdict.r{background:var(--reject-bg);color:var(--reject);}
.verdict.i{background:var(--paper);color:var(--ink-faint);}

.btn{appearance:none;cursor:pointer;font-family:'Archivo',sans-serif;font-size:14px;
  font-weight:600;padding:9px 16px;border-radius:3px;border:1px solid var(--rule);
  background:var(--panel);color:var(--ink);}
.btn.accept{background:var(--accept);border-color:var(--accept);color:#fff;}
.btn.reject{background:var(--reject);border-color:var(--reject);color:#fff;}
.btn.mark{background:var(--mark);border-color:var(--mark);color:#fff;}
.btn.ghost{font-size:13px;padding:6px 13px;}
.btn.neutral{background:transparent;border-color:var(--rule);color:var(--ink-faint);font-size:13px;padding:6px 13px;}
.btn.neutral:hover{border-color:var(--ink-faint);color:var(--ink-soft);}
.btn:disabled{opacity:.5;cursor:not-allowed;}
:root[data-theme="dark"] .btn.accept,:root[data-theme="dark"] .btn.reject{color:#15171A;}
.mini{appearance:none;border:1px solid var(--rule);background:transparent;cursor:pointer;
  font-family:'Archivo Narrow',sans-serif;font-size:11.5px;font-weight:600;
  padding:3px 10px;border-radius:2px;color:var(--ink-soft);}
.mini:disabled{opacity:.45;cursor:not-allowed;}
.mini.a:hover{background:var(--accept);border-color:var(--accept);color:#fff;}
.mini.r:hover{background:var(--reject);border-color:var(--reject);color:#fff;}
.mini.i:hover{background:var(--paper);border-color:var(--ink-faint);color:var(--ink-faint);}
textarea{width:100%;font-family:'Archivo',sans-serif;font-size:13.5px;padding:8px 10px;
  border:1px solid var(--rule);border-radius:3px;background:var(--paper);color:var(--ink);
  resize:vertical;line-height:1.5;}

/* ---------- FEED: contact sheet ---------- */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));
  gap:1px;background:var(--rule);}
.cell{background:var(--panel);padding:16px 16px 14px;display:flex;flex-direction:column;gap:8px;}
.cell h4{font-family:'Newsreader',serif;font-size:16.5px;font-weight:600;line-height:1.25;
  margin:0;letter-spacing:-.005em;}
.cell h4 a{text-decoration:none;}
.cell h4 a:hover{text-decoration:underline;text-underline-offset:2px;}
.cell .src{font-size:11.5px;color:var(--ink-faint);}
.cell p{margin:0;font-size:12.5px;color:var(--ink-soft);line-height:1.5;flex:1;}
.cell-foot{display:flex;align-items:center;gap:6px;padding-top:4px;}
.runbar{grid-column:1/-1;background:var(--paper);padding:9px 18px;
  font-family:'Archivo Narrow',sans-serif;font-size:12px;color:var(--ink-faint);
  display:flex;gap:16px;align-items:baseline;flex-wrap:wrap;}
.runbar b{font-family:'Archivo',sans-serif;font-size:12.5px;color:var(--ink);font-weight:600;}
.more{padding:18px;text-align:center;border-top:1px solid var(--rule);}

/* ---------- ARTICLE: split reader ---------- */
.split{display:grid;grid-template-columns:230px 1fr 270px;min-height:600px;}
.qlist{border-right:1px solid var(--rule);}
.qlist-h{padding:11px 14px;border-bottom:1px solid var(--rule);
  font-family:'Archivo Narrow',sans-serif;font-size:12px;color:var(--ink-faint);font-weight:600;}
.qi{padding:11px 14px;border-bottom:1px solid var(--rule-soft);cursor:pointer;}
.qi a{text-decoration:none;color:inherit;display:block;}
.qi.sel{background:var(--mark-bg);box-shadow:inset 3px 0 0 var(--mark);}
.qi h5{font-size:13px;font-weight:600;margin:0 0 3px;line-height:1.3;}
.qi p{margin:0;font-size:11.5px;color:var(--ink-faint);}

.creader{padding:30px 38px 50px;border-right:1px solid var(--rule);}
.creader h2{font-family:'Newsreader',serif;font-size:27px;font-weight:600;line-height:1.2;
  margin:0 0 6px;letter-spacing:-.015em;max-width:24ch;}
.byline{font-size:13px;color:var(--ink-faint);margin-bottom:14px;}
.openrow{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap;}
.creader .tags{margin-bottom:22px;}
.reading{font-family:'Newsreader',Georgia,serif;font-size:17.5px;line-height:1.68;
  max-width:60ch;color:var(--ink);}
.reading p{margin:0 0 1.05em;}
.reading p:first-of-type::first-letter{font-size:3.1em;line-height:.86;float:left;
  padding:.06em .1em 0 0;font-weight:600;}
.reading .rest{display:none;}
.reading.expanded .rest{display:block;}
.reading.expanded .fade{display:none;}
.fade{height:90px;margin-top:-90px;position:relative;
  background:linear-gradient(to bottom,transparent,var(--panel));}
.notice{font-size:13px;color:var(--ink-soft);background:var(--rule-soft);
  border-radius:3px;padding:10px 12px;margin-bottom:18px;max-width:60ch;}

.rail{padding:22px 20px;background:var(--paper);}
.rail h3{font-family:'Archivo Narrow',sans-serif;font-size:12px;font-weight:600;
  color:var(--ink-faint);margin:0 0 12px;}
.verdict-pair{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:12px;}
.verdict-pair .btn{min-width:0;padding:9px 6px;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rail label{display:block;font-size:12.5px;color:var(--ink-faint);margin:0 0 5px;}
.skip{display:block;margin-top:12px;text-align:center;font-size:13px;
  color:var(--ink-faint);text-decoration:none;}
.prov{margin-top:26px;padding-top:18px;border-top:1px solid var(--rule);
  font-size:12.5px;line-height:1.75;color:var(--ink-soft);}
.prov dl{margin:0;}
.prov dt{font-family:'Archivo Narrow',sans-serif;color:var(--ink-faint);float:left;clear:left;width:78px;}
.prov dd{margin:0 0 0 82px;}

/* ---------- HOME: lead article + modal ---------- */
.lead-story{padding:26px;border-bottom:1px solid var(--rule);}
.lead-story h3{font-family:'Newsreader',serif;font-size:29px;font-weight:600;margin:0 0 8px;
  line-height:1.18;letter-spacing:-.015em;max-width:24ch;}
.lead-story h3 a{text-decoration:none;}
.lead-story h3 a:hover{text-decoration:underline;text-underline-offset:3px;}
.lead-story .meta{font-size:12.5px;color:var(--ink-faint);margin-bottom:12px;}
.lead-story .excerpt{font-family:'Newsreader',serif;font-size:16.5px;line-height:1.62;
  color:var(--ink-soft);margin:0 0 14px;max-width:58ch;
  display:-webkit-box;-webkit-line-clamp:10;-webkit-box-orient:vertical;overflow:hidden;}
.excerpt-fade{height:36px;margin-top:-50px;margin-bottom:14px;max-width:58ch;
  background:linear-gradient(to bottom, transparent, var(--panel));pointer-events:none;}
.lead-story .tags{margin-bottom:16px;}
.lead-story .acts{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.sectionbar{background:var(--paper);padding:9px 18px;border-bottom:1px solid var(--rule);
  font-family:'Archivo Narrow',sans-serif;font-size:12px;color:var(--ink-faint);
  display:flex;gap:16px;align-items:baseline;}
.sectionbar b{font-family:'Archivo',sans-serif;font-size:12.5px;color:var(--ink);font-weight:600;}
.seeall{padding:15px 18px;text-align:center;border-top:1px solid var(--rule);}
.seeall a{font-size:13.5px;color:var(--mark);text-decoration:none;border-bottom:1px solid currentColor;}
.modal-backdrop{position:fixed;inset:0;background:rgba(20,20,20,.35);
  display:flex;align-items:center;justify-content:center;padding:20px;z-index:100;}
.modal{max-width:440px;width:100%;background:var(--panel);border:1px solid var(--rule);
  border-radius:4px;padding:20px;}
.modal h4{font-family:'Newsreader',serif;font-size:19px;font-weight:600;margin:0 0 3px;}
.modal .sub{font-size:12.5px;color:var(--ink-faint);margin:0 0 14px;}
.modal label{display:block;font-size:12.5px;color:var(--ink-faint);margin:0 0 5px;}
.modal .acts{display:flex;gap:8px;margin-top:14px;justify-content:flex-end;}

/* ---------- HOME: run controls ---------- */
.launch{background:var(--paper);padding:16px 18px;border-bottom:1px solid var(--rule);
  display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;}
.fld label{display:block;font-family:'Archivo Narrow',sans-serif;font-size:11.5px;
  color:var(--ink-faint);font-weight:600;margin-bottom:4px;}
.fld input{width:88px;font-family:'Archivo',sans-serif;font-size:13.5px;padding:7px 9px;
  border:1px solid var(--rule);border-radius:3px;background:var(--panel);color:var(--ink);}
.launch .spacer{margin-left:auto;display:flex;gap:8px;}
.progress{background:var(--mark-bg);padding:12px 18px;border-bottom:1px solid var(--rule);
  font-family:'Archivo Narrow',sans-serif;font-size:13px;color:var(--mark);
  display:flex;gap:12px;align-items:center;flex-wrap:wrap;}
.progress .pbar{flex:1;min-width:100px;max-width:260px;height:5px;background:var(--rule-soft);
  border-radius:3px;overflow:hidden;}
.progress .pbar i{display:block;height:100%;background:var(--mark);transition:width .3s;}

.manual-search{border-top:1px solid var(--rule);padding:16px 18px;background:var(--paper);}
.manual-search h3{font-family:'Newsreader',serif;font-size:15px;font-weight:600;margin:0 0 10px;}
.manual-search textarea{font-size:13.5px;}
.manual-search .hint{font-size:12px;color:var(--ink-faint);margin:8px 0 0;line-height:1.5;max-width:62ch;}
.manual-controls{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;margin-top:10px;}
.manual-controls .spacer{margin-left:auto;display:flex;gap:8px;}
#manual-count{align-self:center;}
.chips-row{margin-top:12px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.chips-row .hint{margin:0 4px 0 0;}
.preview-list{padding:0 18px 16px;border-bottom:1px solid var(--rule);
  background:var(--paper);font-family:'Archivo Narrow',sans-serif;font-size:13px;
  line-height:1.9;columns:2;column-gap:30px;}
.preview-list div{break-inside:avoid;}
.preview-list em{font-style:normal;color:var(--ink-faint);font-size:11px;margin-right:7px;}

/* ---------- ACCEPTED / REJECTED: roster ---------- */
.roster{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:1px;background:var(--rule);}
.rc{background:var(--panel);padding:16px;display:flex;flex-direction:column;gap:9px;}
.rc h4{font-family:'Newsreader',serif;font-size:19px;font-weight:600;margin:0;line-height:1.2;}
.rc .unk{font-size:11.5px;color:var(--ink-faint);font-style:italic;margin-top:-6px;}
.rc .pub{font-size:12px;color:var(--ink-faint);}
.rc .art{font-size:12.5px;color:var(--ink-soft);border-left:2px solid var(--rule);
  padding-left:9px;line-height:1.45;}
.rc .art a{text-decoration:none;font-weight:500;}
.rc .art a:hover{text-decoration:underline;}
.rc-foot{margin-top:auto;padding-top:9px;border-top:1px solid var(--rule-soft);
  display:flex;flex-direction:column;gap:7px;}
.rc-desk{padding-top:9px;}
.mailto{font-family:'Archivo Narrow',sans-serif;font-size:13px;color:var(--mark);
  text-decoration:none;border-bottom:1px solid currentColor;word-break:break-all;}
.edit{font-size:11.5px;color:var(--ink-faint);text-decoration:none;margin-left:7px;
  border-bottom:1px dotted currentColor;}
.srcnote{font-family:'Archivo Narrow',sans-serif;font-size:10.5px;color:var(--ink-faint);}
.pending{font-size:12.5px;color:var(--ink-faint);font-style:italic;}
.lookup{font-size:12.5px;color:var(--mark);text-decoration:none;border-bottom:1px solid currentColor;}
.check{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink-soft);}
input[type=email],input[type=text]{width:100%;font-family:'Archivo',sans-serif;font-size:13px;padding:6px 9px;
  border:1px solid var(--rule);border-radius:3px;background:var(--paper);color:var(--ink);box-sizing:border-box;}
.reason-box{font-size:13px;}

/* ---------- SEARCHES / PERFORMANCE / SETTINGS: subtabs + editor ---------- */
.subtabs{display:flex;gap:4px;padding:10px 18px 0;border-bottom:1px solid var(--rule);background:var(--paper);}
.st{font-family:'Archivo Narrow',sans-serif;font-size:13px;font-weight:600;
  padding:7px 13px;border-radius:4px 4px 0 0;color:var(--ink-faint);
  border-bottom:2px solid transparent;text-decoration:none;}
.st.on{color:var(--ink);background:var(--panel);border-bottom-color:var(--mark);}

.note{margin:18px;padding:14px 16px;border-left:3px solid var(--mark);
  background:var(--mark-bg);font-size:13.5px;line-height:1.55;color:var(--ink-soft);max-width:76ch;}
.note b{color:var(--ink);font-weight:600;}

.edcols{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--rule);}
.edbox{background:var(--panel);padding:18px;}
.edbox h4{font-family:'Newsreader',serif;font-size:17px;font-weight:600;margin:0 0 3px;}
.edbox .hint{font-size:12.5px;color:var(--ink-faint);margin:0 0 11px;line-height:1.5;max-width:52ch;}
.edfoot{display:flex;align-items:center;gap:12px;margin-top:10px;flex-wrap:wrap;}
.edfoot .q{margin-left:auto;}
.export-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 24px;margin:14px 0;}
.export-item .hint{margin:6px 0 0;max-width:none;}
.export-item .save-flash{margin-left:10px;}
.dry{background:var(--paper);padding:18px;border-top:1px solid var(--rule);}
.dry h4{font-family:'Newsreader',serif;font-size:17px;font-weight:600;margin:0 0 3px;}
.dry .hint{font-size:12.5px;color:var(--ink-faint);margin:0 0 12px;}
.drylist{columns:2;column-gap:30px;font-family:'Archivo Narrow',sans-serif;font-size:13px;line-height:1.95;}
.drylist em{font-style:normal;color:var(--ink-faint);font-size:11px;margin-right:7px;}
.dryrow{break-inside:avoid;display:flex;justify-content:space-between;align-items:baseline;gap:10px;}
.dryrow-acts{display:flex;gap:8px;font-size:11px;white-space:nowrap;}
.dryrow-acts a{color:var(--ink-faint);text-decoration:none;border-bottom:1px dotted currentColor;}
.dryrow-acts a:hover{color:var(--ink);}
.dryrow-edit input{font-family:'Archivo Narrow',sans-serif;font-size:13px;padding:3px 6px;
  border:1px solid var(--rule);border-radius:2px;background:var(--paper);color:var(--ink);width:100%;}
.save-flash{color:var(--accept);font-size:12.5px;font-weight:600;}

.pt{width:100%;border-collapse:collapse;font-size:13px;}
.pt th{text-align:left;font-family:'Archivo Narrow',sans-serif;font-weight:600;font-size:11.5px;
  color:var(--ink-faint);padding:9px 12px;border-bottom:1px solid var(--rule);white-space:nowrap;cursor:pointer;}
.pt th.n{text-align:right;}
.pt td{padding:10px 12px;border-bottom:1px solid var(--rule-soft);vertical-align:middle;}
.pt td.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;}
.pt tr:hover td{background:var(--rule-soft);}
.pt .qtext{font-family:'Archivo Narrow',sans-serif;max-width:36ch;}
.bar{display:inline-block;vertical-align:middle;width:84px;height:6px;background:var(--rule-soft);
  border-radius:3px;overflow:hidden;margin-right:9px;}
.bar i{display:block;height:100%;background:var(--accept);}
.bar i.zero{background:var(--rule);}
.grp{background:var(--paper);}
.grp td{font-family:'Archivo Narrow',sans-serif;font-size:12px;color:var(--ink-faint);
  font-weight:600;padding:8px 12px;}
.rowact{opacity:0;}
.pt tr:hover .rowact{opacity:1;}

.chip{appearance:none;cursor:pointer;font-family:'Archivo Narrow',sans-serif;font-size:11.5px;font-weight:600;
  padding:3px 9px;border:1px solid var(--rule);border-radius:12px;background:var(--panel);color:var(--ink-soft);margin-right:4px;}
.chip:hover{background:var(--mark-bg);color:var(--mark);border-color:transparent;}
.preview-box{white-space:pre-wrap;font-family:'Newsreader',serif;font-size:14px;line-height:1.6;
  background:var(--panel);border:1px solid var(--rule);padding:14px;border-radius:3px;}
.fld-label{display:block;font-family:'Archivo Narrow',sans-serif;font-size:11.5px;
  color:var(--ink-faint);font-weight:600;margin-bottom:4px;}

/* ---------- empty state / stub ---------- */
.empty, .stub{padding:60px 26px;text-align:center;}
.empty h2, .stub h2{font-family:'Newsreader',serif;font-size:20px;font-weight:600;margin:0 0 10px;}
.empty p, .stub p{color:var(--ink-soft);font-size:14px;margin:0 0 16px;}
.empty code{background:var(--rule-soft);padding:2px 6px;border-radius:3px;font-size:13px;}

/* ---------- focus ---------- */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
  outline:2px solid var(--mark);outline-offset:2px;}

@media (max-width:820px){
  .split{grid-template-columns:1fr;}
  .qlist{display:none;}
  .creader{border-right:0;border-bottom:1px solid var(--rule);padding:24px 20px 40px;}
  .grid{grid-template-columns:1fr;}
  .roster{grid-template-columns:1fr;}
  .preview-list{columns:1;}
  .edcols{grid-template-columns:1fr;}
  .drylist{columns:1;}
  .pt .hide{display:none;}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;}}

/* ============================================================
   APP SHELL — top bar + workspace switcher + launch page.
   ============================================================ */
.ws-icon *{vector-effect:non-scaling-stroke;}
.ws-topbar{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));align-items:center;
  height:64px;box-sizing:border-box;padding:0 32px;border-bottom:1px solid var(--ws-hairline);
  background:var(--paper);}
.ws-brand{font-family:'Newsreader',Georgia,serif;font-size:19px;color:var(--ws-ink);text-decoration:none;}
.ws-switcher{display:flex;justify-content:center;gap:8px;}
.ws-switch-item{display:flex;align-items:center;gap:8px;height:64px;box-sizing:border-box;
  padding:0 14px;border-bottom:2px solid transparent;color:var(--ws-muted);
  font-family:'Archivo',sans-serif;font-size:14px;font-weight:500;text-decoration:none;}
.ws-switch-item:hover{color:var(--ws-ink);}
.ws-switch-item.ws-active{color:var(--ws-ink);border-bottom-color:var(--ws-ink);}
.ws-topbar-right{display:flex;justify-content:flex-end;align-items:center;}
.ws-acting-as{display:flex;align-items:center;gap:6px;font-family:'Archivo',sans-serif;
  font-size:13px;color:var(--ws-muted);}
.ws-acting-as select{font-family:'Archivo',sans-serif;font-size:13px;border:1px solid var(--ws-hairline);
  background:var(--paper);color:var(--ws-ink);padding:4px 6px;}

.launch-main{display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:40px;min-height:calc(100vh - 64px);box-sizing:border-box;padding:40px 20px;}
.launch-label{font-family:'Archivo Narrow',sans-serif;font-size:13px;font-weight:500;
  text-transform:uppercase;letter-spacing:0.12em;color:var(--ws-muted);}
.launch-squares{display:flex;gap:32px;flex-wrap:wrap;justify-content:center;}
.launch-square{box-sizing:border-box;width:272px;height:272px;border:1px solid var(--ws-ink);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;
  text-decoration:none;color:var(--ws-ink);}
.launch-square:hover{background:rgba(27,26,23,0.03);}
.launch-square:focus-visible{outline:2px solid var(--ws-ink);outline-offset:4px;}
.launch-square-text{display:flex;flex-direction:column;align-items:center;gap:6px;}
.launch-square-name{font-family:'Newsreader',Georgia,serif;font-size:30px;color:var(--ws-ink);}
.launch-square-caption{font-family:'Archivo Narrow',sans-serif;font-size:13px;
  text-transform:uppercase;letter-spacing:0.1em;color:var(--ws-muted);}

/* ============================================================
   DESK — section nav, writers page, piece page.
   ============================================================ */
.desk-nav{height:48px;box-sizing:border-box;padding:0 32px;border-bottom:1px solid var(--ws-hairline);
  display:flex;align-items:center;gap:28px;font-size:14px;font-family:'Archivo',sans-serif;
  background:var(--paper);}
.desk-nav a{color:var(--ws-muted);text-decoration:none;}
.desk-nav a.on{color:var(--ws-ink);font-weight:500;}
.desk-main{padding:40px 64px 60px;display:flex;flex-direction:column;gap:32px;
  font-family:'Archivo',sans-serif;color:var(--ws-ink);background:var(--paper);min-height:60vh;}
.desk-k{font-family:'Archivo Narrow',sans-serif;font-size:12px;font-weight:500;
  letter-spacing:0.1em;text-transform:uppercase;color:var(--ws-muted);}
.desk-m{color:var(--ws-muted);}
.desk-flag{color:var(--ws-flag);}
.desk-diamond-wrap{position:relative;display:inline-block;}
.desk-diamond{display:inline-block;width:7px;height:7px;transform:rotate(45deg);
  margin-right:8px;vertical-align:2px;flex-shrink:0;cursor:pointer;}
.desk-diamond.green{background:var(--accept);}
.desk-diamond.orange{background:var(--warn);}
.desk-diamond.red{background:var(--ws-flag);}
.desk-diamond-select{position:absolute;top:-4px;left:-4px;z-index:5;font-size:12px;
  font-family:'Archivo',sans-serif;background:var(--paper);color:var(--ws-ink);
  border:1px solid var(--ws-ink);}
.desk-serif{font-family:'Newsreader',Georgia,serif;}
.desk-header-row{display:flex;justify-content:space-between;align-items:flex-end;}
.desk-btn{font-family:'Archivo',sans-serif;font-size:13px;font-weight:500;height:34px;
  padding:0 12px;background:transparent;border:1px solid var(--ws-ink);color:var(--ws-ink);
  cursor:pointer;white-space:nowrap;text-decoration:none;display:inline-flex;align-items:center;}
.desk-btn.primary{background:var(--ws-ink);color:var(--paper);}
.desk-btn:disabled{opacity:0.4;cursor:default;}
.desk-search{height:36px;box-sizing:border-box;padding:0 12px;border:1px solid var(--ws-hairline);
  background:var(--paper);color:var(--ws-ink);font-family:'Archivo',sans-serif;font-size:13px;width:200px;}
.desk-chips{display:flex;gap:8px;flex-wrap:wrap;}
.desk-chip{font-family:'Archivo',sans-serif;font-size:13px;padding:4px 10px;border:1px solid var(--ws-hairline);
  color:var(--ws-muted);text-decoration:none;background:transparent;cursor:pointer;}
.desk-chip.on{border-color:var(--ws-ink);color:var(--ws-ink);}
.desk-pull-cols{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:48px;}
.desk-pull-cols.four{grid-template-columns:repeat(4, minmax(0, 1fr));}
.desk-pull-head{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:8px;}
.desk-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 0;
  border-top:1px solid var(--ws-hairline);font-size:14px;}
.desk-row:last-child{border-bottom:1px solid var(--ws-hairline);}
.desk-row a{color:var(--ws-ink);text-decoration:none;}
.desk-field-label{font-family:'Archivo Narrow',sans-serif;font-size:11px;font-weight:500;
  letter-spacing:0.08em;text-transform:uppercase;color:var(--ws-muted);display:block;margin-bottom:5px;}
.desk-field{font-family:'Archivo',sans-serif;font-size:14px;color:var(--ws-ink);background:transparent;
  border:none;border-bottom:1px solid #CFC9BD;padding:4px 2px;width:100%;box-sizing:border-box;}
.desk-field:focus{outline:none;border-bottom:1px solid var(--ws-ink);}
select.desk-field{appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M0 0L5 6L10 0Z' fill='%236B665C'/></svg>");
  background-repeat:no-repeat;background-position:right 4px center;}
.desk-pencil{font-size:11px;color:var(--ws-muted);margin-left:6px;text-decoration:underline;cursor:pointer;
  background:none;border:none;padding:0;font-family:'Archivo',sans-serif;}
.desk-callout{display:flex;align-items:baseline;justify-content:space-between;gap:24px;
  padding:18px 22px;border:1px solid var(--ws-ink);}
.desk-callout.overdue{border-color:var(--ws-flag);}
.desk-review-grid{display:grid;border:1px solid var(--ws-hairline);}
.desk-review-col{padding:16px;border-right:1px solid var(--ws-hairline);display:flex;
  flex-direction:column;gap:8px;}
.desk-review-col:last-child{border-right:none;}
.desk-review-col.mine{background:#F4F1EA;}
:root[data-theme="dark"] .desk-review-col.mine,
:root:not([data-theme="light"]) .desk-review-col.mine{background:#1F2226;}
.desk-review-btns{display:flex;gap:6px;}
.desk-review-btns .desk-btn{height:28px;padding:0 10px;font-size:12px;}
.desk-timeline-row{display:grid;grid-template-columns:90px minmax(0, 1fr);gap:12px;padding:11px 0;
  border-top:1px solid var(--ws-hairline);font-size:14px;}
.desk-timeline-row:last-child{border-bottom:1px solid var(--ws-hairline);}
.desk-empty{padding:40px 0;color:var(--ws-muted);}
.desk-save-flash{font-size:12px;color:var(--ws-muted);}
.desk-modal-backdrop{position:fixed;inset:0;background:rgba(27,26,23,0.35);display:flex;
  align-items:center;justify-content:center;z-index:50;}
.desk-modal{background:var(--paper);border:1px solid var(--ws-ink);padding:28px;width:360px;
  max-width:calc(100vw - 40px);display:flex;flex-direction:column;gap:14px;}
.desk-modal h3{margin:0;font-family:'Newsreader',Georgia,serif;font-weight:400;font-size:22px;color:var(--ws-ink);}
.desk-modal-foot{display:flex;justify-content:flex-end;gap:10px;margin-top:6px;}
@media (max-width:900px){
  .desk-pull-cols, .desk-pull-cols.four{grid-template-columns:1fr;}
  .desk-main{padding:24px 20px 40px;}
  .ws-topbar{padding:0 16px;}
}

/* ============================================================
   DESK — dashboard.
   ============================================================ */
.desk-dash-stat{display:flex;flex-direction:column;gap:6px;}
.desk-dash-stat .desk-serif{font-size:52px;line-height:1;}
.desk-dash-stat .desk-serif.desk-flag{color:var(--ws-flag);}
.desk-dash-stat .desk-dash-denom{font-size:24px;color:var(--ws-muted);}
.desk-dash-stat-label{font-size:13px;color:var(--ws-muted);}
.desk-square-row{display:flex;gap:8px;flex-wrap:wrap;}
.desk-square{appearance:none;-webkit-appearance:none;width:28px;height:28px;box-sizing:border-box;
  padding:0;margin:0;border:none;background-color:transparent;font:inherit;cursor:default;}
.desk-square[data-piece-id]{cursor:pointer;}
.desk-square:disabled{cursor:default;}
/* Prefixed (desk-sq-*) rather than bare state names (.progress, .empty)
   because those collide with existing unrelated Scout classes of the same
   name elsewhere in this file. */
.desk-square.desk-sq-published{background:var(--ws-ink);}
.desk-square.desk-sq-placed{background:#CFC9BD;}
:root[data-theme="dark"] .desk-square.desk-sq-placed,
:root:not([data-theme="light"]) .desk-square.desk-sq-placed{background:#4A473F;}
.desk-square.desk-sq-progress{border:1px solid var(--ws-ink);}
.desk-square.desk-sq-flagged{border:1px solid var(--ws-flag);}
.desk-square.desk-sq-empty{border:1px dashed var(--ws-muted);}
.desk-square-legend{font-size:12px;color:var(--ws-muted);display:flex;gap:20px;flex-wrap:wrap;}
.desk-square-legend .desk-flag{color:var(--ws-flag);}
.desk-dot{width:9px;height:9px;flex-shrink:0;}
.desk-dot.due{box-sizing:border-box;border:1.5px solid var(--ws-ink);border-radius:50%;}
.desk-dot.online{background:var(--ws-ink);}
.desk-dot.deadline{box-sizing:border-box;border:1.5px solid var(--ws-flag);border-radius:50%;}
@media (max-width:900px){
  .desk-dash-stat .desk-serif{font-size:38px;}
}

/* ============================================================
   DESK — board. Class names prefixed board- throughout (not just
   the ones that collide) after the phase-2 .progress/.empty lesson.
   ============================================================ */
.board-toolbar{display:flex;justify-content:space-between;align-items:center;}
.board-chips{display:flex;gap:8px;align-items:center;}
.board-chip{appearance:none;cursor:pointer;font-family:'Archivo Narrow',sans-serif;font-size:11px;
  font-weight:500;letter-spacing:0.06em;text-transform:uppercase;padding:3px 8px;
  border:1px solid #CFC9BD;background:transparent;color:var(--ws-muted);text-decoration:none;}
.board-chip.on{border-color:var(--ws-ink);color:var(--ws-ink);}
.board-row{display:grid;grid-auto-flow:column;grid-auto-columns:264px;gap:20px;
  overflow-x:auto;padding-bottom:12px;
  scrollbar-width:thin;scrollbar-color:var(--ws-muted) var(--paper);}
.board-row::-webkit-scrollbar{height:10px;}
.board-row::-webkit-scrollbar-track{background:var(--paper);}
.board-row::-webkit-scrollbar-thumb{background:var(--ws-muted);border-radius:0;}
.board-row::-webkit-scrollbar-thumb:hover{background:var(--ws-ink);}
.board-col{display:flex;flex-direction:column;width:264px;min-width:264px;}
.board-col-body{flex:1 1 auto;min-height:120px;}
.board-col-head{display:flex;justify-content:space-between;align-items:baseline;
  border-bottom:2px solid var(--ws-ink);padding-bottom:8px;margin-bottom:12px;}
.board-col-head.flagged{border-bottom-color:var(--ws-flag);}
.board-col-head.muted-head{border-bottom-color:var(--ws-hairline);}
.board-col-head .desk-k{color:var(--ws-ink);}
.board-col-head.muted-head .desk-k{color:var(--ws-muted);}
.board-col-head.flagged .desk-k{color:var(--ws-flag);}
.board-col-count{font-size:12px;color:var(--ws-muted);}
.board-col-count.flagged{color:var(--ws-flag);}
.board-card{box-sizing:border-box;border:1px solid var(--ws-hairline);padding:14px;
  display:flex;flex-direction:column;gap:7px;margin-bottom:10px;cursor:grab;
  background:var(--paper);position:relative;}
.board-card:active{cursor:grabbing;}
.board-card.flagged{border-color:var(--ws-flag);}
.board-card.dragging{opacity:0.4;}
.board-card-title{font-family:'Newsreader',Georgia,serif;font-size:16px;line-height:1.25;color:var(--ws-ink);}
.board-card-m{font-size:12px;color:var(--ws-muted);}
.board-card-detail{font-size:11px;color:var(--ws-muted);}
.board-card-detail.flagged{color:var(--ws-flag);font-weight:500;}
.board-badge{font-family:'Archivo Narrow',sans-serif;font-size:10px;font-weight:500;
  letter-spacing:0.05em;text-transform:uppercase;padding:2px 6px;display:inline-block;}
.board-badge.print{border:1px solid var(--ws-ink);color:var(--ws-ink);}
.board-badge.online{color:var(--ws-muted);}
.board-col-drop{outline:2px dashed var(--ws-muted);outline-offset:4px;}
.board-card-more{font-size:11px;color:var(--ws-muted);text-decoration:underline;
  background:none;border:none;cursor:pointer;padding:0;font-family:'Archivo',sans-serif;
  position:absolute;top:12px;right:12px;}
@media (max-width:900px){
  .board-toolbar{flex-wrap:wrap;gap:12px;}
}

/* ============================================================
   DESK — calendar. Prefixed cal- throughout.
   ============================================================ */
.cal-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;}
.cal-nav-btn{appearance:none;display:inline-flex;align-items:center;justify-content:center;
  width:24px;height:24px;border:none;background:none;padding:0;margin:0;
  color:var(--ws-ink);text-decoration:none;font-size:16px;line-height:1;cursor:pointer;}
.cal-zoom-btns{display:flex;gap:6px;}
.cal-header-row{display:grid;grid-template-columns:var(--cal-col1,96px) repeat(3, minmax(0,1fr));
  font-size:12px;}
.cal-header-row>div{padding:0 8px 8px;}
.cal-scroll{flex-grow:1;overflow-y:auto;border-bottom:1px solid var(--ws-hairline);
  scrollbar-width:thin;scrollbar-color:var(--ws-muted) var(--paper);}
.cal-scroll::-webkit-scrollbar{width:10px;}
.cal-scroll::-webkit-scrollbar-track{background:var(--paper);}
.cal-scroll::-webkit-scrollbar-thumb{background:var(--ws-muted);border-radius:0;}
.cal-scroll::-webkit-scrollbar-thumb:hover{background:var(--ws-ink);}
.cal-row{display:grid;grid-template-columns:var(--cal-col1,96px) repeat(3, minmax(0,1fr));
  border-top:1px solid var(--ws-hairline);}
.cal-row.today, .cal-row.thisweek{background:#F4F1EA;}
:root[data-theme="dark"] .cal-row.today, :root[data-theme="dark"] .cal-row.thisweek,
:root:not([data-theme="light"]) .cal-row.today, :root:not([data-theme="light"]) .cal-row.thisweek{background:#1F1E1A;}
.cal-datecell{width:var(--cal-col1,96px);min-width:0;overflow:hidden;
  padding:10px 12px;font-size:13px;display:flex;flex-direction:column;gap:2px;cursor:text;
  font-variant-numeric:tabular-nums;white-space:nowrap;}
.cal-datecell a{text-decoration:none;}
.cal-cell{padding:8px;border-left:1px solid var(--ws-hairline);min-height:56px;
  display:flex;flex-direction:column;gap:6px;justify-content:center;}
.cal-cell.cal-weekly{min-height:48px;flex-direction:row;flex-wrap:wrap;align-content:center;}
.cal-cell.cal-col-drop{outline:2px dashed var(--ws-muted);outline-offset:-2px;}
.cal-card, .cal-chip{font-size:12.5px;line-height:1.3;padding:6px 8px;cursor:grab;
  display:flex;align-items:center;gap:6px;position:relative;color:var(--ws-ink);}
.cal-chip{font-size:11.5px;padding:4px 8px;}
.cal-card.due, .cal-chip.due{border:1px dashed var(--ws-muted);}
.cal-card.online, .cal-chip.online{background:var(--ws-ink);color:var(--paper);}
.cal-card.expected, .cal-chip.expected{border:1px dashed var(--ws-muted);color:var(--ws-muted);}
.cal-card.issueprint, .cal-chip.issueprint{border:1px solid var(--ws-ink);font-weight:500;}
.cal-card.repitch, .cal-chip.repitch{border:1px dashed var(--ws-flag);color:var(--ws-flag);}
.cal-card.deadline, .cal-chip.deadline{border:1px solid var(--ws-flag);color:var(--ws-flag);font-weight:500;}
.cal-card.warn, .cal-chip.warn{border-color:var(--warn);color:var(--warn);}
.cal-card[draggable="true"], .cal-chip[draggable="true"]{cursor:grab;}
.cal-card.dragging, .cal-chip.dragging{opacity:0.4;}
.cal-pencil{background:none;border:none;padding:0;margin-left:auto;cursor:pointer;
  color:inherit;opacity:0.65;font-size:11px;}
.cal-pencil:hover{opacity:1;}
.cal-more{font-size:11px;color:var(--ws-muted);text-decoration:underline;align-self:center;
  background:none;border:none;cursor:pointer;}
.cal-legend{display:flex;justify-content:space-between;align-items:center;font-size:12px;
  flex-wrap:wrap;gap:10px;}
.cal-legend-row{display:flex;gap:16px;flex-wrap:wrap;color:var(--ws-muted);}
.cal-legend-item{display:flex;gap:5px;align-items:center;}
.cal-swatch{width:9px;height:9px;box-sizing:border-box;flex-shrink:0;}
.cal-swatch.due{border:1.5px dashed var(--ws-muted);}
.cal-swatch.online{background:var(--ws-ink);}
.cal-swatch.expected{border:1.5px dashed var(--ws-muted);}
.cal-swatch.print{border:1.5px solid var(--ws-flag);}
@media (max-width:900px){
  .cal-toolbar{flex-direction:column;align-items:flex-start;}
}
