/* Worklist, one-pager, standing disclaimers, and the global print rules.
   Kept in its own file so the print stylesheet applies to every page via base.html without
   growing style.css further. Plain native cards — no gradients, no coloured edge accents. */

/* ---------------- worklist: the ranked, consolidated view ---------------- */
.wl-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.wl-actions button{background:#0c1014;border:1px solid var(--line);color:var(--ink);
  padding:8px 14px;border-radius:6px;cursor:pointer;font-size:13px}
.wl-actions button:hover{border-color:var(--accent)}

/* disclaimers — deliberately plain and always visible, never a dismissible toast */
.disc{border:1px solid var(--line);background:var(--panel);border-radius:6px;
  padding:12px 16px;margin:0 0 18px}
.disc ul{margin:0;padding-left:18px}
.disc li{color:var(--mut);font-size:12.5px;line-height:1.6;margin:3px 0}
.disc li b{color:var(--ink)}
.disc-hot{margin:0 0 8px;padding:8px 10px;border:1px solid #5c2020;background:#3a1414;
  color:#ffb3b3;border-radius:6px;font-size:12.5px}
.disc-line{color:var(--mut);font-size:12px;margin:6px 0}

.wl-filters{display:flex;align-items:center;gap:14px;margin:0 0 12px;font-size:13px;
  color:var(--mut);flex-wrap:wrap}
.wl-filters input[type=search]{padding:7px 10px;background:#0c1014;border:1px solid var(--line);
  border-radius:6px;color:var(--ink);min-width:220px}
.wl-count{margin-left:auto;font-variant-numeric:tabular-nums}

.wl{list-style:none;margin:0;padding:0}
li.wl-row{display:grid;grid-template-columns:88px 120px 1fr auto;gap:14px;align-items:start;
  padding:13px 14px;border:1px solid var(--line);background:var(--panel);
  border-radius:6px;margin-bottom:8px}
li.wl-row.is-gap{opacity:.72}
.wl-score{display:flex;flex-direction:column;align-items:flex-start;gap:3px}
.wl-num{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1}
.wl-band{font-size:12px;color:var(--mut);letter-spacing:.4px}
.b-p1{color:var(--red)}.b-p2{color:var(--amber)}
.wl-nodata{font-size:12px;color:var(--mut);border:1px dashed var(--line);
  padding:3px 7px;border-radius:6px;display:inline-block}
.wl-move{font-size:13px;font-variant-numeric:tabular-nums;display:flex;
  flex-direction:column;gap:2px}
.wl-up{color:var(--red)}.wl-down{color:var(--green)}.wl-flat{color:var(--mut)}
.wl-since{color:var(--mut);font-size:12px}
.wl-deck{font-weight:600;color:var(--accent)}
.wl-meta{display:block;color:var(--mut);font-size:12px;margin-top:2px}
.wl-why{margin:6px 0 0;padding-left:16px}
.wl-why li{color:var(--mut);font-size:12.5px;line-height:1.55}
.wl-alias{color:var(--mut);font-size:12px;margin:6px 0 0;font-style:italic}
.wl-links{display:flex;flex-direction:column;gap:4px;font-size:12px;text-align:right}
.wl-links a{color:var(--accent)}

/* ---------------- one-pager ---------------- */
.op-hero{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;
  margin:0 0 16px}
.op-hero>div{border:1px solid var(--line);background:var(--panel);border-radius:6px;
  padding:14px 16px;display:flex;flex-direction:column;gap:4px}
.op-num{font-size:40px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.op-cap{color:var(--mut);font-size:12px;line-height:1.45}
.op-move b,.op-conf b{font-size:22px}
.op-h{font-size:15px;margin:20px 0 6px}
.op-list{margin:0;padding-left:18px}
.op-list li{color:var(--mut);font-size:13px;line-height:1.65}
.op-dl{display:grid;grid-template-columns:auto 1fr;gap:5px 18px;margin:0;font-size:13px}
.op-dl dt{color:var(--mut)}
.op-dl dd{margin:0;font-variant-numeric:tabular-nums}
.op-trend svg{width:100%;height:120px;display:block}
.op-axis{stroke:var(--line);stroke-width:1}
.op-bar{fill:var(--accent)}
.op-gapbar{fill:none;stroke:var(--line);stroke-width:1;stroke-dasharray:3 3}
.op-xlabels{display:flex;font-size:12px;color:var(--mut);text-align:center}
.op-xlabels span{flex:1;display:flex;flex-direction:column}
.op-xlabels b{color:var(--ink);font-variant-numeric:tabular-nums}
.op-links{font-size:13px;margin-top:20px}
.op-links a{color:var(--accent)}

/* ---------------- print: every page is a handout ----------------
   Screens are dark; paper is not. Force an ink-cheap light rendering, drop navigation and
   controls, and KEEP the disclaimers — a printed page leaves the building without its
   context, so the caveats have to travel with it. */
@media print{
  :root{--bg:#fff;--panel:#fff;--line:#bbb;--ink:#000;--muted:#444;--mut:#444;--accent:#000}
  body{background:#fff;color:#000;font-size:11pt}
  .top,.noprint,.wl-filters,.wl-links,.op-links,.crumb{display:none !important}
  main{max-width:none;padding:0}
  a{color:#000;text-decoration:none}
  h1{font-size:16pt}
  .op-h{font-size:12pt}
  li.wl-row{break-inside:avoid;page-break-inside:avoid;border:1px solid #bbb;margin-bottom:6px}
  .op-hero>div,.disc,.op-trend{break-inside:avoid;page-break-inside:avoid}
  .disc{border:1px solid #bbb}
  .disc li,.disc-line{color:#333}
  .op-bar{fill:#333}
  .op-gapbar{stroke:#999}
  /* colour alone must not carry meaning on a monochrome print-out */
  .wl-up::after{content:" (up)"}
  .wl-down::after{content:" (down)"}
}

/* project page: the worklist is the primary way in, the surfaces are secondary */
.wl-primary{display:block;border:1px solid var(--accent);background:var(--panel);
  border-radius:6px;padding:13px 16px;margin:0 0 14px;max-width:640px}
.wl-primary b{display:block;font-size:15px;color:var(--ink)}
.wl-primary span{display:block;color:var(--mut);font-size:12.5px;margin-top:3px;line-height:1.5}
.wl-primary:hover{border-color:var(--accent);background:#12181f}
.wl-secondary-label{color:var(--mut);font-size:12px;text-transform:uppercase;
  letter-spacing:.5px;margin:0 0 7px}

/* deck marks: Leak / Watch / Clear */
.mk-chip{display:inline-block;margin-left:8px;font-size:12px;font-weight:700;padding:1px 8px;border-radius:6px;vertical-align:middle}
.mk-chip.mk-leak{background:#3a1414;color:#ff8a8a}.mk-chip.mk-watch{background:#3a2e12;color:#ffd27a}.mk-chip.mk-clear{background:#13321a;color:#7ee2a0}
.mk-box{border:1px solid var(--line);border-radius:6px;background:var(--panel);padding:12px 14px;margin:14px 0;display:grid;gap:8px;max-width:760px}
.mk-box .op-h{margin:0}
.mk-opts{display:flex;gap:8px;flex-wrap:wrap}
.mk-opt{background:#0f141a;border:1px solid #2a3440;color:#c9d2dc;border-radius:6px;padding:7px 16px;font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.mk-opt.on.mk-leak{background:#3a1414;border-color:#8a2c2c;color:#ffb3b3}
.mk-opt.on.mk-watch{background:#3a2e12;border-color:#7a5f1f;color:#ffe08a}
.mk-opt.on.mk-clear{background:#13321a;border-color:#2d6b3c;color:#a8f0bf}
.mk-opt:focus-visible,.mk-bar button:focus-visible{outline:2px solid #4da3ff;outline-offset:2px}
.mk-box textarea{background:#0f141a;border:1px solid #2a3440;border-radius:6px;color:inherit;font:inherit;font-size:13px;padding:8px 10px;resize:vertical}
.mk-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.mk-bar button{background:#0569b3;border:0;color:#fff;border-radius:6px;padding:7px 14px;font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.mk-bar button.mk-sec{background:#171c22;border:1px solid #2a3440;color:#dbe4ec}
.mk-bar a{color:#4da3ff}
.mk-print{display:none}
@media print{.mk-box textarea,.mk-bar,.mk-opts{display:none}.mk-print{display:block}}

/* live Talaria chart under each ranked deck */
.wl-chart{grid-column:1/-1;margin-top:8px;min-height:120px}
/* ---- v2: the worklist is a table (style.css .tbl); only print rules here ---- */
table.tbl tr.wl-row.is-gap td{color:var(--s-ink-3)}
@media print{ .side,.topbar,.banner{display:none !important} .shell{display:block} .content{padding:0}
  .tbl-wrap{border:0;overflow:visible} .tbl th{position:static} .tbl td{height:auto;padding:4px 6px} }
