:root { --bg:#0f1216; --panel:#161b22; --line:#242b35; --ink:#e6edf3; --muted:#8b98a5; --brand:#0074bd; --accent:#4da3ff; --red:#e5534b; --amber:#d29922; --green:#2f9e44; --mut:var(--muted); }
*{box-sizing:border-box}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}
a{color:inherit;text-decoration:none}
.top{display:flex;justify-content:space-between;align-items:center;padding:8px 20px;border-bottom:1px solid var(--line);background:var(--panel)}
.brand{font-weight:700;letter-spacing:.2px;display:flex;align-items:center}
.brand img{display:block}
.user{color:var(--mut);font-size:13px}.user a{color:var(--accent)}
main{max-width:1200px;margin:0 auto;padding:22px 20px}
h1{font-size:20px;margin:.2em 0}
.sub{color:var(--mut);margin:.2em 0 1.2em}
.crumb{color:var(--mut);font-size:13px;margin:0 0 6px}.crumb a{color:var(--accent)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.card{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--panel);border:1px solid var(--line);border-radius:6px;transition:border-color .12s}
.card:hover{border-color:var(--s-blue,#0569b3)}
.pin{opacity:.5}
.empty{color:var(--mut)}
/* login */
.login{max-width:340px;margin:8vh auto;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:28px}
.login h1{margin:0 0 4px}.login .sub{margin-bottom:16px}
.login input{width:100%;padding:11px 12px;margin:6px 0;background:#0c1014;border:1px solid var(--line);border-radius:6px;color:var(--ink)}
.login button{width:100%;padding:11px;margin-top:8px;background:#0569b3;color:#fff;border:0;border-radius:6px;font-weight:600;cursor:pointer}
.err{background:#3a1414;border:1px solid #5c2020;color:#ffb3b3;padding:9px 11px;border-radius:6px;font-size:13px;margin-bottom:8px}
.hint{color:var(--mut);font-size:12px;text-align:center;margin-top:12px}
/* scrubber */
.decktitle{font-size:18px}
.scrubwrap{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:14px}
.stage{position:relative;background:#0c1014;border-radius:6px;min-height:340px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.stage img{max-width:100%;max-height:78vh;display:block}
.spin{position:absolute;color:var(--mut);font-size:13px}
.controls{display:flex;align-items:center;gap:10px;margin-top:12px}
.controls button{background:#0c1014;border:1px solid var(--line);color:var(--ink);width:38px;height:34px;border-radius:6px;cursor:pointer;font-size:13px}
.controls button:hover{border-color:var(--accent)}
#slider{flex:1;accent-color:var(--accent)}
.datelbl{font-variant-numeric:tabular-nums;font-weight:600;min-width:96px;text-align:center}
.counter{color:var(--mut);font-size:13px;min-width:64px;text-align:right}
.legend{color:var(--mut);font-size:12.5px;margin:10px 2px 2px}
.legend b:first-of-type{color:var(--green)}.legend b:last-of-type{color:var(--red)}
/* R/A/G */
.sub2{color:var(--mut);font-size:13px;margin:-6px 0 14px}
.rollup{margin-left:8px}
.badge{display:inline-block;padding:1px 8px;border-radius:6px;font-size:12px;font-weight:600;margin-left:4px}
.badge.OFFLINE{background:#22272e;color:#aab4bf}.dot.OFFLINE{background:#6b7480}
.decktools{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:10px 0 4px}
.decktools select{background:#0f141a;border:1px solid #272f38;border-radius:6px;color:inherit;font:inherit;font-size:13px;padding:7px 10px}
.badge.RED{background:#3a1414;color:#ff8a8a}.badge.AMBER{background:#3a2e12;color:#ffd27a}.badge.GREEN{background:#13321a;color:#7ee2a0}
.asof{color:var(--mut);font-size:12px;margin-left:8px}
.card{position:relative}
.dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto;background:#444}
.dot.RED{background:var(--red);box-shadow:0 0 7px var(--red)}.dot.AMBER{background:var(--amber);box-shadow:0 0 7px var(--amber)}.dot.GREEN{background:var(--green)}
.dname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card.vRED{border-color:#5c2020}.card.vAMBER{border-color:#5c4a20}
.verdict{display:flex;flex-wrap:wrap;gap:10px;align-items:baseline;padding:10px 14px;border-radius:6px;margin:0 0 12px;font-size:13px}
.verdict b{font-size:15px;letter-spacing:.5px}
.verdict.RED{background:#2a1212;border:1px solid #5c2020;color:#ff9a9a}
.verdict.AMBER{background:#2a2212;border:1px solid #5c4a20;color:#ffd27a}
.verdict.GREEN{background:#122a18;border:1px solid #1f5c2e;color:#8ee2a8}
.verdict .vnote{color:var(--mut)}
/* rain sparkline */
.rainlbl{font-size:12px;min-width:64px;font-variant-numeric:tabular-nums}
.rainlbl.wet{color:#5aa9ff}.rainlbl.damp{color:#8fb6d6}.rainlbl.dry{color:var(--mut)}
.rainstrip{display:flex;align-items:flex-end;gap:1px;height:26px;margin:6px 2px 0;padding:0 50px 0 134px}
.rainstrip .rb{flex:1;min-width:1px;background:#3b82f6;border-radius:1px 1px 0 0}
/* command board */
.boardtop{display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:5;
  background:#0f1216;padding:12px 0 10px;border-bottom:1px solid var(--line);margin-bottom:14px}
.bigstat{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.bigstat .num{font-size:30px;font-weight:800;line-height:1}
.bigstat .num.red{color:#ff5a5a}.bigstat .num.amber{color:var(--amber)}.bigstat .num.green{color:#3fb55a}
.bigstat .lbl{color:var(--mut);font-size:13px;margin-right:12px}
.bigstat .redproj{margin-left:14px;color:#ff9a9a;font-size:13px;background:#2a1212;border:1px solid #5c2020;padding:3px 10px;border-radius:6px}
.alt{color:var(--accent);font-size:13px}
.srv{margin:0 0 18px}
.srv h2{font-size:15px;border-bottom:1px solid var(--line);padding-bottom:6px;display:flex;justify-content:space-between;align-items:baseline}
.srvcount{font-size:12px;color:var(--mut);font-weight:400}
.srvcount .red{color:#ff5a5a}.srvcount .amber{color:var(--amber)}
.board{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;margin-top:10px}
.pcard{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:11px 13px}
.pcard.has-red{border-color:#7a2626}
.pcard.has-amber{border-color:#6a5520}
.pname{font-weight:600;font-size:13.5px;display:block;margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pcard .rag{display:flex;align-items:center;gap:5px;margin-bottom:6px}
.chip{display:inline-block;min-width:26px;text-align:center;padding:1px 7px;border-radius:6px;font-size:12px;font-weight:700}
.chip.off{background:#22272e;color:#aab4bf}.bigstat .num.off{color:#aab4bf}
.projsearch{background:#0f141a;border:1px solid #272f38;border-radius:6px;color:var(--ink,#e7edf3);font:inherit;font-size:14px;padding:8px 12px;width:min(360px,100%)}
.chip.red{background:#3a1414;color:#ff8a8a}.chip.amber{background:#3a2e12;color:#ffd27a}.chip.green{background:#13321a;color:#7ee2a0}
.rag .asof{margin-left:auto;color:var(--mut);font-size:12px}
.reddecks{list-style:none;margin:4px 0 0;padding:0;border-top:1px dashed #3a2424}
.reddecks li{padding:3px 0;font-size:12.5px}
.reddecks a{display:flex;align-items:center;gap:6px;color:#ffb3b3}
.reddecks a:hover{color:#fff}
.reddecks .sus{margin-left:auto;color:var(--mut);font-size:12px}
.reddecks .more{color:var(--mut);font-size:12px;padding-top:3px}
.norisk{color:var(--mut);font-size:12px;margin:2px 0 0}
.gen{color:var(--mut);font-size:12px;text-align:center;margin-top:20px}
.report-btn{display:inline-block;float:right;background:#0569b3;color:#fff;border:0;padding:6px 12px;border-radius:6px;font-size:13px;font-weight:600;margin-top:4px}.report-btn:hover{background:#2f86d1}
.report-form{float:right;display:flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);padding:8px 12px;border-radius:6px;margin-top:2px}
.report-form label{font-size:13px;font-weight:600}
.report-form select{background:#0c1014;border:1px solid var(--line);color:var(--ink);border-radius:6px;padding:5px 8px;font-size:12px}
.report-form button{background:#0569b3;color:#fff;border:0;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:600;cursor:pointer}
.report-form .rf-note{color:var(--mut);font-size:12px}
.twin-btn{display:inline-block;float:right;background:var(--panel);border:1px solid var(--accent);color:var(--accent);padding:8px 14px;border-radius:6px;font-size:13px;font-weight:600;margin:2px 8px 0 0}
/* survey calendar (digital witnessing) */
.cal-hero{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:14px;margin-bottom:18px}
.cal-layout{display:grid;grid-template-columns:1fr 300px;gap:22px;align-items:start}
@media(max-width:820px){.cal-layout{grid-template-columns:1fr}}
.cal{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:18px 20px}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.cal-head .m{font-size:16px;font-weight:600}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.cal-grid .dow{text-align:center;font-size:12px;color:var(--mut);text-transform:uppercase;padding-bottom:4px}
.day{aspect-ratio:1;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--mut)}
.day.blank{visibility:hidden}
.day.has{background:#0569b3;color:#fff;font-weight:600;cursor:pointer;transition:.12s}
.day.has:hover{filter:brightness(1.15);transform:translateY(-1px)}
.iconbtn{background:#0c1014;border:1px solid var(--line);color:var(--ink);width:34px;height:34px;border-radius:6px;cursor:pointer}
.iconbtn:hover{border-color:var(--accent)}
.tl{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:18px 20px}
.tl h2{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--mut);margin:0 0 12px}
.tl ul{list-style:none;margin:0;padding:0;max-height:420px;overflow-y:auto}
.tl a{display:flex;align-items:center;gap:10px;padding:9px 4px;border-bottom:1px solid var(--line)}
.tl a:hover{color:#fff}
.tl .dot{width:9px;height:9px;border-radius:50%;background:var(--accent);flex:none}
.tl .dot.latest{background:#2ec27e;width:12px;height:12px;border:3px solid rgba(46,194,126,.28);margin:-2px}
.tl .tag{margin-left:auto;font-size:12px;color:var(--mut)}
/* analytics overview */
.ov-top{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:12px;margin-bottom:16px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:12px}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:14px 16px;display:flex;flex-direction:column;gap:3px}
.kpi .n{font-size:28px;font-weight:800;line-height:1}
.kpi .l{font-size:12px;color:var(--mut)}
.kpi.red .n{color:#ff5a5a}.kpi.amber .n{color:var(--amber)}.kpi.green .n{color:#3fb55a}
.distbar{display:flex;height:14px;border-radius:6px;overflow:hidden;background:#0c1014;border:1px solid var(--line);margin-bottom:22px}
.distbar.sm{height:9px;margin:4px 0 0}
.distbar .seg{display:block;height:100%}
.distbar .seg.r{background:var(--red)}.distbar .seg.a{background:var(--amber)}.distbar .seg.g{background:var(--green)}
.ov-grid{display:grid;grid-template-columns:1fr 280px;gap:20px;align-items:start}
@media(max-width:860px){.ov-grid{grid-template-columns:1fr}}
.worklist h2,.byserver h2{font-size:15px;margin:0 0 4px}
.worklist table{width:100%;border-collapse:collapse;font-size:13px;margin-top:10px}
.worklist th{text-align:left;color:var(--mut);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--line);padding:6px 8px}
.worklist td{padding:8px;border-bottom:1px solid var(--line);vertical-align:middle}
.worklist tr:hover td{background:#161b21}
.worklist .rk{color:var(--mut);font-variant-numeric:tabular-nums}
.worklist .bld{color:var(--mut)}
.worklist td a{color:#ff9a9a}.worklist td a.open{color:var(--accent);font-size:12px}
.sevbar{display:inline-block;width:54px;height:7px;background:#2a1414;border-radius:4px;overflow:hidden;margin-right:7px;vertical-align:middle}
.sevbar span{display:block;height:100%;background:var(--red)}
.rain{color:#5aa9ff;font-size:12px}
.worklist .more{color:var(--mut);font-size:12px;margin-top:10px}
.byserver{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:14px 16px}
.srvrow{margin-bottom:12px}.srvname{font-size:13px;display:flex;justify-content:space-between}.srvname .rc{color:#ff8a8a}
.byserver .gen{color:var(--mut);font-size:12px;margin-top:14px}
/* signals explainer */
.sigbox{background:var(--panel);border:1px solid var(--line);border-radius:6px;margin:0 0 12px;padding:4px 0}
.sigbox summary{cursor:pointer;padding:10px 14px;font-weight:600;font-size:14px;list-style:none}
.sigbox summary::-webkit-details-marker{display:none}
.sigbox .sigwhy{display:block;font-weight:400;color:var(--mut);font-size:12.5px;margin-top:3px}
.sigtab{width:100%;border-collapse:collapse;font-size:12.5px;margin:4px 0}
.sigtab th{text-align:left;color:var(--mut);font-weight:600;font-size:12px;text-transform:uppercase;padding:6px 14px;border-bottom:1px solid var(--line)}
.sigtab td{padding:7px 14px;border-bottom:1px solid var(--line);vertical-align:top}
.sigtab .sn{font-weight:600}.sigtab .sv{font-variant-numeric:tabular-nums;color:#7ee2a0}.sigtab .sc{color:var(--mut);font-family:ui-monospace,monospace;font-size:12px}.sigtab .sw{color:var(--mut)}
.sigfoot{color:var(--mut);font-size:12px;padding:8px 14px 4px}.sigfoot a{color:var(--accent)}
[hidden]{display:none!important}
/* ---- work-ready base: phone widths, one link colour, readable controls ---- */
.top{flex-wrap:wrap;gap:6px 14px}
.user{line-height:1.8}
main{overflow-wrap:anywhere}
.crumb a,.user a{color:var(--accent)}
button,select,input{font-size:14px}
table{max-width:100%}
.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
@media (max-width:700px){
  main{padding:16px 14px}
  .top{padding:8px 14px}
  .top .brand img{height:30px !important}
  .user{font-size:13px}
  .user .who{display:none}
  h1{font-size:20px}
  .grid{grid-template-columns:1fr}
}

/* =====================================================================================
   SMT Next v2 primitives. Compact, working-UI building blocks; pages use only these.
   Table · Toolbar · SectionLabel · Tag · Count · Button · KeyValue · SplitView · Banner.
   No card grids, no stat tiles, no gradients or shadows, radius at most 6px.
   ===================================================================================== */
.page-h{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 10px}
.page-h h1{font-size:20px;line-height:1.25;margin:0;font-weight:700}
.page-h .crumbs{font-size:12px;color:var(--s-ink-3);margin:0 0 2px}
.page-h .crumbs a{color:var(--s-ink-3);text-decoration:none}.page-h .crumbs a:hover{color:var(--s-ink)}
.page-h .purpose{font-size:13px;color:var(--s-ink-2);margin:2px 0 0}
.page-h .actions{display:flex;gap:6px;flex-wrap:wrap}

/* Button sm / md */
.btn2{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border-radius:6px;border:1px solid transparent;
  font:600 13px/1 inherit;text-decoration:none;cursor:pointer;white-space:nowrap;transition:background 120ms,border-color 120ms,color 120ms}
.btn2.sm{height:24px;padding:0 8px;font-size:12px;border-radius:4px}
.btn2.primary{background:var(--s-blue);color:#fff}.btn2.primary:hover{background:var(--s-blue-hi)}
.btn2.secondary{background:var(--s-surface);color:var(--s-ink);border-color:var(--s-line-2)}.btn2.secondary:hover{border-color:var(--s-blue-hi)}
.btn2.quiet{background:none;color:var(--s-blue-ink)}.btn2.quiet:hover{background:var(--s-hover)}
.btn2:active{transform:translateY(1px)}
.btn2[disabled],.btn2.disabled{opacity:.45;pointer-events:none}

/* Banner: single-line next step */
.banner{display:flex;align-items:center;gap:10px;min-height:36px;padding:4px 6px 4px 12px;margin:0 0 10px;border:1px solid var(--s-line-2);
  border-radius:6px;background:var(--s-surface);font-size:13px;color:var(--s-ink)}
.banner .lbl{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--s-blue-ink);flex:none}
.banner .txt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.banner .txt .dim{color:var(--s-ink-3)}
.banner.end{margin:16px 0 0}

/* Toolbar: search + segmented filter + inline summary, one line */
.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 8px;min-height:32px}
.toolbar .search{height:28px;min-width:200px;max-width:320px;flex:1;background:var(--s-surface);border:1px solid var(--s-line-2);border-radius:4px;
  color:var(--s-ink);font-size:13px;padding:0 10px}
.toolbar .search:focus{outline:none;border-color:var(--s-blue-hi)}
.toolbar select{height:28px;background:var(--s-surface);border:1px solid var(--s-line-2);border-radius:4px;color:var(--s-ink);font-size:13px;padding:0 6px}
.toolbar label{font-size:13px;color:var(--s-ink-2);display:inline-flex;gap:5px;align-items:center}
.segs{display:inline-flex;border:1px solid var(--s-line-2);border-radius:4px;overflow:hidden;height:28px}
.segs button{background:var(--s-surface);color:var(--s-ink-2);border:0;padding:0 10px;font:inherit;font-size:13px;cursor:pointer}
.segs button+button{border-left:1px solid var(--s-line-2)}
.segs button.on{background:var(--s-blue-soft);color:#fff}
.toolbar .summary{margin-left:auto;font-size:13px;color:var(--s-ink-2);display:flex;gap:12px;flex-wrap:wrap;align-items:center}

/* SectionLabel */
.slabel{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--s-ink-3);margin:16px 0 6px;display:flex;gap:6px;align-items:baseline}
.slabel .n{color:var(--s-ink-2);font-variant-numeric:tabular-nums}

/* Tag: 18px, dot + word */
.tag{display:inline-flex;align-items:center;gap:5px;height:18px;padding:0 6px;border-radius:4px;font-size:12px;font-weight:600;
  white-space:nowrap;background:var(--s-grey-soft);color:var(--s-ink-2);line-height:1}
.tag::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.tag.red{background:var(--s-red-soft);color:#ff8a86}.tag.amber{background:var(--s-amber-soft);color:#ffc867}
.tag.green{background:var(--s-green-soft);color:#7fe0a1}.tag.grey{color:var(--s-ink-3)}.tag.blue{background:var(--s-blue-soft);color:var(--s-blue-ink)}
.tag.plain::before{display:none}

/* Count: tabular, coloured only when non-zero */
.cnt{font-variant-numeric:tabular-nums;color:var(--s-ink-3)}
.cnt.red:not(.z){color:#ff8a86;font-weight:700}.cnt.amber:not(.z){color:#ffc867;font-weight:700}
.cnt.green:not(.z){color:#7fe0a1}.cnt.grey:not(.z){color:var(--s-ink-2)}
.cnt.z{color:#4a5563}

/* Table */
.tbl-wrap{overflow:auto;border:1px solid var(--s-line);border-radius:6px;background:var(--s-surface);max-width:100%}
.tbl-wrap.tall{max-height:calc(100vh - 170px)}
table.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl th{position:sticky;top:0;z-index:1;background:var(--s-raised);text-align:left;font-size:11px;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;color:var(--s-ink-3);padding:0 10px;height:30px;border-bottom:1px solid var(--s-line);white-space:nowrap;user-select:none}
.tbl th.num,.tbl td.num{text-align:right}
.tbl th[data-sort]{cursor:pointer}.tbl th[data-sort]:hover{color:var(--s-ink)}
.tbl th .ar{opacity:.7;margin-left:3px}
.tbl td{height:35px;padding:0 10px;border-bottom:1px solid var(--s-line);vertical-align:middle;white-space:nowrap}
.tbl td.wrap{white-space:normal;padding-top:6px;padding-bottom:6px;line-height:1.4}
.tbl td.muted{color:var(--s-ink-3)}
.tbl tbody tr:last-child td{border-bottom:0}
.tbl tbody tr{transition:background 100ms}
.tbl tbody tr:hover{background:var(--s-hover)}
.tbl tbody tr[data-href]{cursor:pointer}
.tbl tbody tr:focus-visible{outline:2px solid var(--s-blue-ink);outline-offset:-2px}
.tbl a.rowlink{color:var(--s-ink);font-weight:600;text-decoration:none}
.tbl a.rowlink:hover{color:var(--s-blue-ink)}
.tbl tr.grp td{background:var(--s-bg);height:28px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--s-ink-3)}
.tbl tr.detail td{height:auto;padding:6px 10px 10px;white-space:normal;background:var(--s-bg)}
.tbl tr.detail:hover{background:none}
.tbl .exp{background:none;border:0;color:var(--s-ink-3);cursor:pointer;width:18px;padding:0;font-size:12px}
.tbl .exp:hover{color:var(--s-ink)}

/* KeyValue */
.kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 16px;font-size:13px;margin:0}
.kv dt{color:var(--s-ink-3)}.kv dd{margin:0;color:var(--s-ink)}

/* SplitView */
.split{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:12px;align-items:start}
.split>.pane{border:1px solid var(--s-line);border-radius:6px;background:var(--s-surface);padding:12px}
@media (max-width:1000px){ .split{grid-template-columns:1fr} }

/* list rows (documents) */
.lrows{border:1px solid var(--s-line);border-radius:6px;background:var(--s-surface)}
.lrow{display:flex;align-items:center;gap:12px;padding:8px 12px;border-bottom:1px solid var(--s-line);min-height:44px}
.lrow:last-child{border-bottom:0}
.lrow:hover{background:var(--s-hover)}
.lrow .main{flex:1;min-width:0}
.lrow .main b{font-size:13px}
.lrow .main .sub{font-size:12px;color:var(--s-ink-3);margin:1px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lrow .acts{display:flex;gap:6px;flex:none}
@media (max-width:700px){ .lrow{flex-wrap:wrap} .lrow .acts{width:100%} .toolbar .summary{margin-left:0} .tbl td{white-space:nowrap} }

/* LinkList — dense column list of links (replaces card grids for long name lists) */
.links{columns:260px;column-gap:24px;margin:6px 0 12px;padding:0;list-style:none;border-top:1px solid var(--s-line)}
.links li{break-inside:avoid;border-bottom:1px solid var(--s-line)}
.links a{display:flex;align-items:center;gap:8px;min-height:32px;padding:0 6px;color:var(--s-ink);text-decoration:none;font-size:13px;overflow-wrap:anywhere}
.links a:hover{background:var(--s-hover)}
.links .tag{margin-left:auto}
