/* dayboard.css -- the Dashboard's day board. Session 231 built it; session 234
   rebuilds it for the v1 Dashboard from briefs/office-dashboard-mockup-v22.html's
   own <style> block: every measurement and colour below is that file's, scoped
   under .dayboard with a db- prefix so nothing can collide with the platform's
   own generic class names (.head, .body, .col, .row, .warn...). */

.dayboard{
  --db-gap:16px;
  --db-b9:#0e363b;--db-b7:#144d54;--db-b5:#1d6e77;--db-b3:#6fd5d4;--db-b1:#dceff0;
  --db-y5:#ffd13a;--db-y1:#fff6da;--db-o5:#ff8a33;--db-o1:#ffe8d6;--db-on-o:#9a4a0e;
  --db-g6:#2e9c7c;--db-g1:#e2f4ee;--db-on-g:#08513f;--db-a6:#b7791f;--db-a1:#fdf0d8;--db-on-a:#7a5312;
  --db-p5:#7a5cc7;--db-p1:#ece6f7;--db-on-p:#4b2e83;--db-r5:#c43d2b;--db-r1:#fbe3df;
  --db-surface:#fff;--db-surface-2:#eceef0;--db-line:#e1e5e7;--db-line-2:#d3dadd;--db-ink:#14171a;--db-text:#4b5257;--db-muted:#79828a;
  --db-sh:0 1px 3px rgba(14,54,59,.07),0 6px 18px rgba(14,54,59,.06);
  --db-linen:#4fb38f;--db-linen-1:#eef8f3;--db-deep:#f0a35c;--db-deep-1:#fff3e6;--db-same-1:#fdecea;--db-refresh:#7fb0d8;--db-refresh-1:#EEF5FB;
  --db-sl-bg:#fff;--db-sl-line:#f0eaf1;--db-sl-edge:#d9cfdb;--db-sl-foot:#faf7fb;--db-sl-pin:#fbf6fc;--db-sl-av:#6b4a72;--db-sl-ink:#6b4a72;--db-sl-chip:#f1e9f3;--db-sl-note:#f6f1f7;
  font-size:14px;letter-spacing:-.011em;font-variant-numeric:tabular-nums;color:var(--db-text)
}
:is(:root[data-theme="dark"],body.db-dark) .dayboard{
  --db-surface:#16262a;--db-surface-2:#1c2e33;--db-line:#26393f;--db-line-2:#2f454b;--db-ink:#f1f4f4;--db-text:#c3cccf;--db-muted:#8a999e;
  --db-b1:#16363b;--db-g1:#14342c;--db-a1:#3a2e12;--db-o1:#3e2116;--db-y1:#3a3312;--db-p1:#2a2244;--db-r1:#3d1f1b;
  --db-linen-1:#15332a;--db-deep-1:#3a2a18;--db-same-1:#3d1f1b;--db-refresh-1:#172e3d;
  --db-sl-bg:#16262a;--db-sl-line:#2a3a40;--db-sl-edge:#3a3040;--db-sl-foot:#1b2a2f;--db-sl-pin:#2a2230;--db-sl-av:#7d5a86;--db-sl-ink:#d8b9df;--db-sl-chip:#3a2d40;--db-sl-note:#2a2230
}
.dayboard *{box-sizing:border-box}
.dayboard button{font:inherit;letter-spacing:inherit;cursor:pointer}

/* ---- header: the standard page title (32px/600, design system), no date ---- */
.dayboard .db-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:var(--s2,8px) 0 16px}
.dayboard .db-h1{margin:0;font-size:32px;font-weight:600;letter-spacing:-.024em;line-height:1.1;color:var(--db-ink)}
.dayboard .db-sub{font-size:13px;color:var(--db-muted)}
.dayboard .db-sub b{color:var(--db-text);font-weight:550}
.dayboard .db-feedchip{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:550;color:var(--db-on-g);background:var(--db-g1);border-radius:999px;padding:4px 11px;border:none}
.dayboard .db-feedchip i{width:7px;height:7px;border-radius:50%;background:var(--db-g6)}
.dayboard .db-feedchip.bad{background:var(--db-r1);color:var(--db-r5)}.dayboard .db-feedchip.bad i{background:var(--db-r5)}
.dayboard .db-head-r{margin-left:auto;display:flex;gap:8px;align-items:center;min-width:0}
.dayboard .db-search{display:flex;align-items:center;gap:8px;background:var(--db-surface);border-radius:999px;box-shadow:var(--db-sh);padding:6px 14px;min-width:260px;max-width:100%}
.dayboard .db-search svg{width:14px;height:14px;stroke:var(--db-muted);fill:none;stroke-width:2.2;flex:none}
.dayboard .db-search input{border:none;outline:none;font:inherit;font-size:12.5px;width:100%;min-width:0;background:transparent;color:var(--db-ink)}
.s-dash .db-feedlist{margin:-6px 0 16px}
.s-dash .db-feedlist .card{margin-top:0 !important}

/* ---- band: four equal tiles, always the same height ---- */
.dayboard .db-band{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--db-gap);margin-bottom:var(--db-gap);align-items:stretch}
@media (max-width:1200px){.dayboard .db-band{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.dayboard .db-band{grid-template-columns:1fr}}
.dayboard .db-hc{background:var(--db-surface);border-radius:12px;box-shadow:var(--db-sh);padding:15px 16px 14px;position:relative;overflow:hidden;border:1px solid var(--db-line-2);height:292px;display:flex;flex-direction:column;min-width:0}
.dayboard .db-hc .db-lab{font-size:12.5px;font-weight:550;color:var(--db-muted);display:flex;align-items:center;gap:7px}
.dayboard .db-hc .db-lab s{width:7px;height:7px;border-radius:50%;text-decoration:none;flex:none}
.dayboard .db-hc .db-num{font-size:42px;font-weight:700;letter-spacing:-.045em;line-height:1;margin-top:5px;color:var(--db-ink)}
/* Session 243, Part 2: 2px under the number, so even the digits' full text box (42px type, 51px with its
   descent) clears the line below by 4px; the number's own box clears it by 8px. */
.dayboard .db-hc .db-num{margin-bottom:2px}
.dayboard .db-hc .db-body{flex:1;overflow:hidden;min-height:0}
.dayboard .db-hc .db-def{font-size:12px;color:var(--db-muted);margin-top:6px;line-height:1.45}
.dayboard .db-hc .db-def b{color:var(--db-text);font-weight:600}
.dayboard .db-hc .db-quiet{margin-top:10px;font-size:12.5px;border-radius:8px;padding:8px 10px;font-weight:500;line-height:1.4}
.dayboard .db-hc .db-quiet-g{color:var(--db-on-g);background:var(--db-g1)}
.dayboard .db-hc .db-more{margin-top:auto;padding-top:8px;display:flex;gap:8px;align-items:center;flex:none}
.dayboard .db-showall{border:none;background:transparent;color:var(--db-b5);font-size:12px;font-weight:650;padding:0}
.dayboard .db-showall:hover{text-decoration:underline}
.dayboard .db-addslack{margin-left:auto;display:inline-flex;align-items:center;gap:6px;border:1px dashed var(--db-line-2);background:transparent;color:var(--db-muted);border-radius:999px;padding:4px 10px;font-size:11px;font-weight:600}
.dayboard .db-addslack .db-sa{width:14px;height:14px;border-radius:4px;background:#3b2440;color:#fff;font-size:7px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}
.dayboard .db-compose{display:none;margin-top:8px;gap:6px;align-items:center;flex:none}
.dayboard .db-compose.on{display:flex}
.dayboard .db-compose input{flex:1;min-width:0;border:1px solid var(--db-line-2);border-radius:999px;padding:6px 11px;font:inherit;font-size:12px;outline:none;background:var(--db-surface);color:var(--db-ink)}
.dayboard .db-compose button{border:none;background:#3b2440;color:#fff;border-radius:999px;padding:6px 12px;font-size:11.5px;font-weight:650;white-space:nowrap}
.dayboard .db-compose button:disabled{opacity:.55;cursor:not-allowed}

/* tile 1: at risk */
.dayboard .db-risk{background:#bc4a37;border:none;color:#ffe9e4}
.dayboard .db-risk .db-lab{color:#ffc9bd}.dayboard .db-risk .db-num{color:#fff}
.dayboard .db-risk .db-def{color:#ffd6cc}.dayboard .db-risk .db-def b{color:#fff}
.dayboard .db-risk .db-quiet{background:rgba(255,255,255,.14);color:#fff}
.dayboard .db-risk .db-addslack{border-color:rgba(255,255,255,.45);color:#fff}
.dayboard .db-risk .db-showall{color:#fff}
.dayboard .db-risk .db-compose input{border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.12);color:#fff}
.dayboard .db-risk .db-compose input::placeholder{color:#ffd6cc}
.dayboard .db-arow{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.13);border-radius:9px;padding:7px 10px;margin-top:8px;font-size:12px;color:#fff}
.dayboard .db-arow .db-av{width:22px;height:22px;border-radius:50%;background:rgba(255,255,255,.25);font-size:8.5px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex:none;color:#fff}
.dayboard .db-arow .db-rt{flex:1;min-width:0;display:flex;flex-direction:column}
.dayboard .db-arow .db-rt b{font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dayboard .db-arow .db-rt span{color:#ffd9d1;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dayboard .db-cdp{flex:none;font-weight:700;border-radius:999px;padding:2px 9px;white-space:nowrap;font-size:11.5px}
.dayboard .db-cdp.db-t-calm{background:rgba(0,0,0,.18);color:#fff}
.dayboard .db-cdp.db-t-warn{background:var(--db-y5);color:#3d2f05}
.dayboard .db-cdp.db-t-hot{background:#fff;color:#bc4a37}

/* tile 2: late check-in */
.dayboard .db-late{background:linear-gradient(180deg,var(--db-y1),var(--db-surface) 55%)}
.dayboard .db-lrow{display:flex;align-items:center;gap:8px;font-size:11.5px;margin-top:9px}
.dayboard .db-lrow .db-av{width:20px;height:20px;border-radius:50%;background:var(--db-b5);color:#fff;font-size:8.5px;font-weight:650;display:inline-flex;align-items:center;justify-content:center;flex:none}
.dayboard .db-lrow .db-who{flex:1;min-width:0}
.dayboard .db-lrow .db-who b{display:block;color:var(--db-ink);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dayboard .db-lrow .db-who s{display:block;text-decoration:none;color:var(--db-muted);font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dayboard .db-lrow .db-bar{width:54px;height:7px;background:var(--db-surface-2);border-radius:4px;overflow:hidden;flex:none}
.dayboard .db-lrow .db-bar i{display:block;height:100%;border-radius:4px}
.dayboard .db-lrow .db-m{width:38px;text-align:right;font-weight:650;color:var(--db-r5);flex:none}

/* tile 3: extra care */
.dayboard .db-crow{display:flex;gap:8px;align-items:center;font-size:11.5px;margin-top:7px}
.dayboard .db-crow s{width:6px;height:6px;border-radius:50%;text-decoration:none;flex:none}
.dayboard .db-crow b{color:var(--db-ink);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.dayboard .db-crow span{margin-left:auto;color:var(--db-muted);font-size:10.5px;white-space:nowrap;flex:none}
.dayboard .db-cgrp{font-size:10px;font-weight:700;letter-spacing:.04em;color:var(--db-muted);margin-top:10px;display:flex;gap:7px;align-items:center}
.dayboard .db-cgrp s{flex:1;height:1px;background:var(--db-line);text-decoration:none}
.dayboard .db-cgrp em{font-style:normal;color:var(--db-ink)}

/* tile 4: communications, the whole tile a link */
.dayboard .db-comms{background:linear-gradient(155deg,var(--db-b7),var(--db-b9));border:none;color:#cfe4e5;cursor:pointer;transition:transform .14s,box-shadow .14s}
.dayboard .db-comms:hover,.dayboard .db-comms:focus-visible{transform:translateY(-2px);box-shadow:0 12px 26px rgba(14,54,59,.28);outline:none}
.dayboard .db-comms .db-lab{color:#9fc0c3}
.dayboard .db-comms .db-lab s{background:var(--db-b3)}
.dayboard .db-comms .db-num{color:#fff}
.dayboard .db-comms .db-numsub{font-size:13px;font-weight:600;color:#9fc0c3;margin-left:7px;letter-spacing:0}
.dayboard .db-comms .db-def,.dayboard .db-comms .db-quiet{color:#9fc0c3;background:none;padding:0}
.dayboard .db-comms .db-w{display:flex;gap:2px;height:6px;margin-top:8px}
.dayboard .db-comms .db-w i{border-radius:3px}
.dayboard .db-comms .db-k{display:flex;gap:2px 8px;flex-wrap:wrap;margin:5px 0 4px;font-size:10px;line-height:1.3;color:#9fc0c3}
.dayboard .db-cm{display:flex;align-items:center;gap:8px;font-size:12px;padding:3px 0;border-bottom:1px solid rgba(255,255,255,.1)}
.dayboard .db-cm:last-child{border-bottom:none}
.dayboard .db-cm b{font-size:14px;font-weight:700;min-width:26px;letter-spacing:-.03em}
.dayboard .db-cm span{color:#e6f0f0}
.dayboard .db-cm em{margin-left:auto;font-style:normal;font-size:10px;font-weight:700;color:#fff;background:var(--db-r5);border-radius:999px;padding:1px 7px}
.dayboard .db-comms .db-period{font-size:11px;color:#9fc0c3}
.dayboard .db-comms .db-go{margin-left:auto;color:var(--db-b3);font-size:12px;font-weight:650}

/* the drawer, full width under the band */
.dayboard .db-drawer{background:var(--db-surface);border-radius:12px;box-shadow:var(--db-sh);border:1px solid var(--db-line-2);padding:14px 16px;margin:-4px 0 var(--db-gap)}
.dayboard .db-drawer h4{margin:0 0 8px;font-size:13.5px;font-weight:650;color:var(--db-ink);display:flex;align-items:center}
.dayboard .db-drawer h4 button{margin-left:auto;border:none;background:transparent;color:var(--db-muted);font-size:12px;font-weight:600}
.dayboard .db-dgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:4px 22px;align-items:start}
.dayboard .db-dgrid .db-cgrp{grid-column:1/-1}
.dayboard .db-drawer-risk .db-arow{background:#bc4a37}

/* ---- pills, phase, view switch ---- */
.dayboard .db-controls{display:flex;gap:8px 16px;flex-wrap:wrap;align-items:center;margin-bottom:8px}
/* Session 243, Part 3: more compact pills, 11px side padding, 12px text with the count still bold, 6px apart. */
.dayboard .db-pills{display:flex;gap:6px;flex-wrap:wrap;align-items:center;min-width:0}
.dayboard .db-typ{display:inline-flex;align-items:center;gap:6px;background:var(--db-surface);border-radius:999px;box-shadow:var(--db-sh);padding:6px 11px;font-size:12px;color:var(--db-muted);border:none;white-space:nowrap}
.dayboard .db-typ b{font-size:12px;font-weight:700;color:var(--db-ink)}
.dayboard .db-typ s{width:7px;height:7px;border-radius:50%;text-decoration:none;display:inline-block}
.dayboard .db-typ.on{background:var(--db-b7);color:#cfe4e5}.dayboard .db-typ.on b{color:#fff}
.dayboard .db-typdiv{width:1px;height:22px;background:var(--db-line-2);margin:0 4px}
.dayboard .db-typ.db-typ-nc{background:transparent;box-shadow:inset 0 0 0 1px rgba(14,54,59,.2);opacity:.8}
.dayboard .db-typ.db-typ-nc.on{background:var(--db-b7);box-shadow:none;opacity:1}
.dayboard .db-ctl-r{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-left:auto}
.dayboard .db-phase{display:inline-flex;align-items:center;background:var(--db-surface-2);color:var(--db-ink);border-radius:999px;padding:5px 11px;font-size:11.5px;font-weight:650;cursor:help}
.dayboard .db-vt{display:inline-flex;background:var(--db-surface);border-radius:999px;padding:3px;box-shadow:var(--db-sh)}
.dayboard .db-vt button{border:none;background:transparent;color:var(--db-text);padding:5px 12px;border-radius:999px;font-size:11.5px;font-weight:650}
.dayboard .db-vt button.on{background:var(--db-b7);color:#fff}
.dayboard .db-xall{display:inline-flex;gap:6px}
.dayboard .db-xall button{border:1px solid var(--db-line-2);background:var(--db-surface);color:var(--db-text);border-radius:999px;padding:5px 11px;font-size:11.5px;font-weight:600}
.dayboard .db-xall button:hover{border-color:var(--db-b5);color:var(--db-b5)}
.dayboard .db-phasenote{font-size:11.5px;color:var(--db-muted);margin:0 0 10px}
.dayboard .db-phasenote.db-err{color:var(--db-r5);font-weight:600}

/* ---- the board ---- */
.dayboard .db-boardwrap{background:#e4eced;border-radius:14px;padding:6px 6px 12px;box-shadow:var(--db-sh)}
:is(:root[data-theme="dark"],body.db-dark) .dayboard .db-boardwrap{background:#14282d}
/* Session 239, Part 5: the columns' widths are set on the board itself from their card
   slots (dbSlots in dayboard.js). Where not even one card a column fits, they wrap. */
.dayboard .db-board{display:grid}
.dayboard .db-board.db-wrapcols{grid-template-columns:repeat(auto-fit,minmax(263px,1fr))}
.dayboard .db-col{padding:12px 11px 6px;border-right:1px solid rgba(14,54,59,.12);min-width:0}
.dayboard .db-col:last-child{border-right:none}
.dayboard .db-col-h{display:flex;align-items:center;padding:0 2px 8px;margin-bottom:10px;border-bottom:2px solid var(--db-b5);font-size:13px;font-weight:600;color:var(--db-ink)}
.dayboard .db-col-h span{margin-left:auto;font-size:11.5px;color:var(--db-muted);font-weight:500}
.dayboard .db-col-h.s2{border-bottom-color:var(--db-a6)}.dayboard .db-col-h.s3{border-bottom-color:var(--db-o5)}
/* Session 239: a column is one grid of its cards, as many across as it has slots. */
.dayboard .db-colcards{display:grid;gap:8px;grid-template-columns:repeat(var(--db-slots,1),minmax(0,1fr));align-items:start;justify-items:stretch}
.dayboard .db-colcards>.db-jc{width:100%}
/* Session 238: a card is never wider than 420px (240px is the least, dbSlots). */
.dayboard .db-jc{max-width:420px}
.dayboard .db-empty{border:1px dashed rgba(14,54,59,.22);border-radius:10px;padding:14px;text-align:center;font-size:11.5px;color:var(--db-muted)}
.dayboard .db-empty b{display:block;color:var(--db-text);font-weight:600;font-size:12.5px;margin-bottom:3px}
.dayboard .db-empty-s{margin-bottom:6px}

/* full card */
.dayboard .db-jc{background:var(--db-surface);border-radius:11px;box-shadow:0 1px 3px rgba(14,54,59,.14);overflow:hidden;display:flex;flex-direction:column;min-width:0}
/* Session 236: no coloured strap above the band, same-day or not (Daniel). */
.dayboard .db-jc .db-ph{height:40px;display:flex;align-items:center;gap:6px;padding:0 10px;color:#fff;position:relative;flex:none}
/* Session 236: "Gradient needs to be almost gone, super subtle" (Daniel). A photo gets a
   barely visible shade, darkest .14, fading to nothing, plus a soft text shadow on the
   white text; no photo is a flat client colour, no shade at all. */
.dayboard .db-jc .db-ph .db-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.14),rgba(0,0,0,0))}
.dayboard .db-jc .db-ph-photo .db-cl{text-shadow:0 1px 2px rgba(0,0,0,.45)}
.dayboard .db-jc .db-ph-ink{color:#111}
.dayboard .db-jc .db-ph>*:not(.db-shade){position:relative;z-index:1}
.dayboard .db-jc .db-cl{font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dayboard .db-jc .db-tm{flex:none;background:rgba(255,255,255,.95);color:var(--db-ink);border-radius:999px;padding:2px 9px;font-size:11px;font-weight:700}
.dayboard .db-jc .db-ph small{flex:none;font-size:10px;font-weight:700;border-radius:999px;padding:2px 7px;background:rgba(0,0,0,.35)}
.dayboard .db-jc .db-ph small.db-w3{background:rgba(255,255,255,.9);color:var(--db-on-g)}
.dayboard .db-grip{flex:none;margin-left:2px;display:inline-flex;flex-direction:column;gap:2px;opacity:.85;cursor:grab;padding:6px 4px}
.dayboard .db-grip i{display:block;width:12px;height:2px;background:#fff;border-radius:1px}
.dayboard .db-jc .db-sdt{background:var(--db-r5);color:#fff;font-size:10.5px;font-weight:700;padding:4px 10px;letter-spacing:.02em}
.dayboard .db-jc .db-bd{padding:9px 10px 10px;display:flex;flex-direction:column;flex:1}
.dayboard .db-jc .db-nm{font-size:13px;font-weight:650;color:var(--db-ink);line-height:1.25;letter-spacing:-.015em;overflow-wrap:anywhere}
.dayboard .db-jc .db-nm small{font-weight:450;color:var(--db-muted)}
.dayboard .db-jc .db-sv{font-size:11.5px;color:var(--db-text);margin-top:3px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.dayboard .db-jc .db-sv s{width:7px;height:7px;border-radius:2px;background:var(--db-b5);text-decoration:none;flex:none}
.dayboard .db-missing{color:var(--db-r5);font-weight:600}
.dayboard .db-jc .db-cr{display:flex;align-items:center;gap:7px;margin-top:7px;padding-top:7px;border-top:1px solid var(--db-line);font-size:11.5px;min-width:0}
.dayboard .db-jc .db-cr .db-av{width:21px;height:21px;border-radius:50%;background:var(--db-b5);color:#fff;font-size:8.5px;font-weight:650;display:inline-flex;align-items:center;justify-content:center;flex:none;box-shadow:0 0 0 1.5px var(--db-surface)}
.dayboard .db-jc .db-cr b{color:var(--db-ink);font-weight:600;min-width:0;overflow-wrap:anywhere}
.dayboard .db-unas{color:var(--db-r5) !important;font-weight:650}
/* Tags are never hidden: they wrap onto a second line when they need to. */
.dayboard .db-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:7px}
.dayboard .db-tags i{font-style:normal;font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--db-surface-2);color:var(--db-text)}
.dayboard .db-tags i.r{background:var(--db-r1);color:var(--db-r5)}.dayboard .db-tags i.o{background:var(--db-o1);color:var(--db-on-o)}
.dayboard .db-tags i.t{background:var(--db-b1);color:var(--db-b5)}.dayboard .db-tags i.g{background:var(--db-g1);color:var(--db-on-g)}
.dayboard .db-tags i.a{background:var(--db-a1);color:var(--db-on-a)}
.dayboard .db-jc .db-ft{margin-top:auto;padding-top:7px;border-top:1px solid var(--db-line);font-size:10.5px;color:var(--db-muted)}
.dayboard .db-jc .db-tags+.db-ft,.dayboard .db-jc .db-marks+.db-ft{margin-top:8px}
.dayboard .db-jc .db-ft b{color:var(--db-text);font-weight:650}
.dayboard .db-moved{font-size:10px;font-weight:650;color:var(--db-on-a);margin-top:5px}
/* office checklist marks (session 233), information only */
.dayboard .db-marks{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px}
.dayboard .db-mk{display:inline-flex;align-items:center;gap:4px;height:19px;padding:0 7px 0 5px;border-radius:6px;background:var(--db-surface-2);color:var(--db-muted);font-size:10.5px;font-weight:600;cursor:pointer;white-space:nowrap}
.dayboard .db-mk i{width:9px;height:9px;border-radius:3px;border:1.5px solid var(--db-line-2);background:var(--db-surface);flex:none}
.dayboard .db-mk.on{background:var(--db-g1);color:var(--db-on-g)}
.dayboard .db-mk.on i{background:var(--db-g6);border-color:var(--db-g6)}
.dayboard .db-mk.auto{cursor:help}
.dayboard .db-mk sup{font-size:8px;font-weight:700;margin-left:-2px}

/* one-line card */
.dayboard .db-mini{background:var(--db-surface);border-radius:9px;box-shadow:0 1px 2px rgba(14,54,59,.12);display:flex;align-items:center;gap:8px;padding:7px 9px;font-size:12px;cursor:pointer;border-left:3px solid var(--db-line-2);min-width:0}
.dayboard .db-mini:hover{box-shadow:0 2px 8px rgba(14,54,59,.2)}
.dayboard .db-mini .db-t{font-weight:700;color:var(--db-ink);width:38px;flex:none}
.dayboard .db-mini .db-p{flex:1;min-width:0;color:var(--db-ink);font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dayboard .db-mini .db-p s{text-decoration:none;color:var(--db-muted);font-weight:450;margin-left:5px}
.dayboard .db-mini .db-dots{display:flex;gap:3px;flex:none}
.dayboard .db-mini .db-dots i{width:6px;height:6px;border-radius:50%}
.dayboard .db-mini .db-mw{display:flex;flex:none}
.dayboard .db-mini .db-av{width:20px;height:20px;border-radius:50%;background:var(--db-b5);color:#fff;font-size:8px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex:none;margin-left:-4px;box-shadow:0 0 0 1.5px var(--db-surface)}
.dayboard .db-mini .db-av:first-child{margin-left:0}
.dayboard .db-mini .db-av-none{background:var(--db-muted)}
.dayboard .db-mini .db-sd{font-size:9.5px;font-weight:800;color:#fff;background:var(--db-r5);border-radius:4px;padding:1px 5px;flex:none;letter-spacing:.03em}
.dayboard .db-mini.same{background:var(--db-same-1);border-left:3px solid var(--db-r5)}
.dayboard .db-mini.same .db-p{color:#8f2517}

/* service tints (Part 3b): quiet, card body only, never the photo band */
.dayboard .db-jc.svc-linen .db-bd{background:var(--db-linen-1)}
.dayboard .db-jc.svc-deep .db-bd{background:var(--db-deep-1)}
/* The edge sits on the body: a card-level inset shadow would be painted under the body's own fill. */
.dayboard .db-jc.svc-linen .db-bd{box-shadow:inset 4px 0 0 var(--db-linen)}
.dayboard .db-jc.svc-deep .db-bd{box-shadow:inset 4px 0 0 var(--db-deep)}
.dayboard .db-mini.svc-linen{background:var(--db-linen-1);border-left-color:var(--db-linen)}
.dayboard .db-mini.svc-deep{background:var(--db-deep-1);border-left-color:var(--db-deep)}
/* same-day red wins the fill; the service colour stays on the edge */
.dayboard .db-mini.same.svc-linen{background:var(--db-same-1);border-left:3px solid var(--db-r5);box-shadow:inset 3px 0 0 var(--db-linen)}
.dayboard .db-mini.same.svc-deep{background:var(--db-same-1);border-left:3px solid var(--db-r5);box-shadow:inset 3px 0 0 var(--db-deep)}
/* Session 251, Part 3b: Refresh gets its own subtle pale blue body, in Cards and List. Never red, orange or amber; the
   same-day red wins over it. */
.dayboard .db-jc.svc-refresh:not(.same) .db-bd{background:var(--db-refresh-1);box-shadow:inset 4px 0 0 var(--db-refresh)}
.dayboard .db-mini.svc-refresh{background:var(--db-refresh-1);border-left-color:var(--db-refresh)}
.dayboard .db-mini.same.svc-refresh{background:var(--db-same-1);border-left:3px solid var(--db-r5)}

/* search */
.dayboard .db-dimmed{opacity:.28}
.dayboard .db-mini.db-hit,.dayboard .db-jc.db-hit{box-shadow:0 0 0 2px var(--db-y5)}
.dayboard tr.db-hit td{box-shadow:inset 0 2px 0 var(--db-y5),inset 0 -2px 0 var(--db-y5)}
.dayboard tr.db-hit td:first-child{box-shadow:inset 2px 2px 0 var(--db-y5),inset 0 -2px 0 var(--db-y5)}
.dayboard tr.db-hit td:last-child{box-shadow:inset -2px 2px 0 var(--db-y5),inset 0 -2px 0 var(--db-y5)}

/* completed: one line under the board */
.dayboard .db-donewrap{padding:0 6px}
.dayboard .db-donestrip{margin-top:10px;background:var(--db-surface);border-radius:10px;padding:9px 12px;display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--db-text);cursor:pointer;min-width:0}
.dayboard .db-donestrip b{color:var(--db-on-g)}
.dayboard .db-donestrip .db-dim{color:var(--db-muted);white-space:nowrap}
.dayboard .db-donestrip .db-ddots{display:flex;gap:3px;margin-left:auto;flex-wrap:wrap;justify-content:flex-end;min-width:0}
.dayboard .db-donestrip .db-ddots i{width:8px;height:8px;border-radius:2px;background:var(--db-g6);opacity:.75}
.dayboard .db-donelist{display:none;margin-top:8px;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:6px;align-items:start}
.dayboard .db-donelist.on{display:grid}

/* ---- plan: two groups, draggable by the grip ---- */
.dayboard .db-grp-h{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;letter-spacing:.05em;color:var(--db-r5);margin:4px 0 8px}
.dayboard .db-grp-h em{font-style:normal;color:var(--db-ink)}
.dayboard .db-grp-h s{flex:1;height:1px;background:var(--db-line-2);text-decoration:none}
.dayboard .db-grp-h.norm{color:var(--db-muted);margin-top:16px}
.dayboard .db-plan{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:12px;margin-bottom:4px;align-items:stretch}

/* ---- list ---- */
.dayboard .db-list{background:var(--db-surface);border-radius:12px;box-shadow:var(--db-sh);overflow:hidden}
.dayboard .db-listwrap{overflow-x:auto}
/* Session 236: "List View doesn't align and runs off the page" (Daniel). tokens.css's
   platform-wide td rule (nowrap, ellipsis, max-width:0) split the width into nine equal
   columns and cut every name; here the widths are fixed, property the widest, and cells
   wrap. At 1440 and wider the table fits its box; narrower, it scrolls inside the box. */
.dayboard .db-list table{width:100%;border-collapse:collapse;font-size:12.5px;table-layout:fixed;min-width:1020px}
.dayboard .db-list col.db-c-grip{width:28px}.dayboard .db-list col.db-c-time{width:60px}
.dayboard .db-list col.db-c-client{width:11%}.dayboard .db-list col.db-c-svc{width:12.5%}
.dayboard .db-list col.db-c-who{width:13%}.dayboard .db-list col.db-c-stage{width:100px}
.dayboard .db-list col.db-c-next{width:112px}.dayboard .db-list col.db-c-tags{width:17%}
.dayboard .db-list td{white-space:normal;overflow:visible;text-overflow:clip;max-width:none;overflow-wrap:anywhere}
.dayboard .db-list th{overflow:hidden;text-overflow:ellipsis;max-width:none}
.dayboard .db-list .db-tags i{white-space:normal;max-width:100%}
.dayboard .db-list td.db-lp .db-sdchip{vertical-align:1px}
.dayboard .db-list th{text-align:left;font-size:11px;font-weight:600;color:var(--db-muted);padding:9px 10px;border-bottom:1px solid var(--db-line-2);background:#f7f9f9;white-space:nowrap}
.dayboard .db-list td{padding:9px 10px;border-bottom:1px solid var(--db-line);vertical-align:middle}
.dayboard .db-list tr:last-child td{border-bottom:none}
.dayboard .db-list td b{color:var(--db-ink);font-weight:600}
.dayboard .db-list .db-tags{margin:0}
.dayboard .db-list .db-gh{padding:9px 0 9px 6px;color:var(--db-muted)}
.dayboard .db-list th:first-child{padding:9px 0}
.dayboard .db-list td:nth-child(2),.dayboard .db-list th:nth-child(2){padding-left:6px;padding-right:6px}
.dayboard .db-grip-l{cursor:grab;font-size:14px;letter-spacing:-2px;padding:2px 4px;display:inline-block;flex-direction:row}
.dayboard .db-list tr.db-grp td{background:#fbf4ee;font-size:10.5px;font-weight:700;letter-spacing:.05em;color:var(--db-r5);padding:6px 12px}
.dayboard .db-list tr.db-grp.norm td{background:#f4f6f7;color:var(--db-muted)}
.dayboard .db-list tr.svc-linen td{background:var(--db-linen-1)}
.dayboard .db-list tr.svc-deep td{background:var(--db-deep-1)}
.dayboard .db-list tr.svc-linen td:first-child{box-shadow:inset 3px 0 0 var(--db-linen)}
.dayboard .db-list tr.svc-deep td:first-child{box-shadow:inset 3px 0 0 var(--db-deep)}
.dayboard .db-list tr.svc-refresh td{background:var(--db-refresh-1)}
.dayboard .db-list tr.svc-refresh td:first-child{box-shadow:inset 3px 0 0 var(--db-refresh)}
.dayboard .db-list tr.same td{background:var(--db-same-1)}
.dayboard .db-list tr.same td:first-child{box-shadow:inset 3px 0 0 var(--db-r5)}
.dayboard .db-sdchip{font-size:9.5px;font-weight:800;color:#fff;background:var(--db-r5);border-radius:4px;padding:1px 5px;margin-right:6px}
.dayboard .db-st{font-size:10.5px;font-weight:650;padding:2px 8px;border-radius:999px;background:var(--db-surface-2);color:var(--db-text);white-space:nowrap}
.dayboard .db-st.s2{background:var(--db-y1);color:var(--db-on-a)}.dayboard .db-st.s3{background:var(--db-o1);color:var(--db-on-o)}.dayboard .db-st.s5{background:var(--db-g1);color:var(--db-on-g)}

/* ---- Slack notes: #day-notes (session 235; the mockup's own .slack block) ---- */
.dayboard .db-slack{margin:var(--db-gap) 0;border-radius:14px;overflow:hidden;box-shadow:var(--db-sh);background:var(--db-sl-bg);border:1px solid var(--db-sl-edge)}
.dayboard .db-slack-top{background:#3b2440;color:#fff;display:flex;align-items:center;gap:10px;padding:10px 16px;flex-wrap:wrap}
.dayboard .db-slack-top .db-hash{width:26px;height:26px;border-radius:7px;background:rgba(255,255,255,.14);display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:15px}
.dayboard .db-slack-top b{font-size:13.5px;font-weight:650}
.dayboard .db-slack-top span{font-size:11.5px;color:#d6c5da}
.dayboard .db-slack-top .db-via{margin-left:auto;font-size:10.5px;font-weight:700;letter-spacing:.06em;background:rgba(255,255,255,.14);border-radius:999px;padding:3px 10px;color:#fff}
.dayboard .db-slack-msgs{padding:6px 16px 10px}
.dayboard .db-slack-empty{font-size:12.5px;color:var(--db-muted)}
.dayboard .db-slack-empty b{color:var(--db-ink)}
.dayboard .db-slack-empty{padding:6px 0}
.dayboard .db-slack-foot{padding:9px 16px;background:var(--db-sl-foot);border-top:1px solid var(--db-sl-line);font-size:11px;color:var(--db-muted);line-height:1.7}
.dayboard .db-slack-foot code{background:var(--db-sl-bg);border:1px solid var(--db-sl-edge);border-radius:4px;padding:0 5px;color:var(--db-ink)}
.dayboard .db-sm{display:flex;gap:10px;padding:9px 0;border-bottom:1px solid var(--db-sl-line)}
.dayboard .db-sm:last-child{border-bottom:none}
.dayboard .db-sm>div{min-width:0;flex:1}
.dayboard .db-sav{width:30px;height:30px;border-radius:7px;background:var(--db-sl-av);color:#fff;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex:none}
.dayboard .db-sm .db-who{font-size:12.5px}
.dayboard .db-sm .db-who b{color:var(--db-ink);font-weight:700}
.dayboard .db-sm .db-who>span{color:var(--db-muted);font-size:11px;margin-left:6px}
.dayboard .db-sm .db-who .db-dtag{font-size:10px;font-weight:700;color:var(--db-sl-ink);background:var(--db-sl-chip);border-radius:4px;padding:1px 6px}
.dayboard .db-sm .db-tx{font-size:13px;color:var(--db-text);margin-top:2px;line-height:1.45;overflow-wrap:anywhere;white-space:pre-wrap}
.dayboard .db-plink{color:var(--db-b5);font-weight:600;text-decoration:none;border-bottom:1px dotted var(--db-b5)}
.dayboard .db-risk .db-plink{color:#fff;border-bottom-color:#fff}
.dayboard .db-sm .db-rep{margin-top:6px;font-size:11.5px;color:var(--db-sl-ink);font-weight:600}
.dayboard .db-sm .db-rep a{color:inherit;text-decoration:none}
.dayboard .db-sm .db-rep a:hover{text-decoration:underline}
.dayboard .db-sm.db-pin{background:var(--db-sl-pin);margin:0 -16px;padding:10px 16px}
.dayboard .db-pinlab{font-size:10px;font-weight:700;color:var(--db-sl-ink);letter-spacing:.04em;margin-bottom:2px}
.dayboard .db-ttag{display:inline-block;font-size:9.5px;font-weight:800;letter-spacing:.03em;border-radius:4px;padding:1px 5px;margin-left:5px;vertical-align:1px}
.dayboard .db-ttag-risk{background:var(--db-r1);color:var(--db-r5)}.dayboard .db-ttag-late{background:var(--db-a1);color:var(--db-on-a)}.dayboard .db-ttag-care{background:var(--db-b1);color:var(--db-b5)}
/* a Slack note on a tile (the mockup's .tnote) */
.dayboard .db-snote{margin-top:8px;display:flex;gap:7px;align-items:flex-start;background:var(--db-sl-note);color:var(--db-text);border-radius:8px;padding:7px 9px;font-size:11.5px;line-height:1.4;overflow-wrap:anywhere}
.dayboard .db-snote b{color:var(--db-ink)}
.dayboard .db-risk .db-snote{background:rgba(255,255,255,.14);color:#fff}
.dayboard .db-risk .db-snote b{color:#fff}
.dayboard .db-snote .db-sa{width:18px;height:18px;border-radius:5px;background:#3b2440;color:#fff;font-size:8px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;flex:none}
.dayboard .db-snote .db-src{display:block;font-size:10px;opacity:.8;margin-top:1px}
/* on a tile a note is one line of text and its source line (the tile never grows); the drawer and the tooltip carry it whole */
.dayboard .db-hc .db-snote{margin-top:6px;padding:5px 8px;line-height:1.35}
.dayboard .db-hc .db-snote>span{min-width:0}
.dayboard .db-hc .db-snote .db-sbody{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dayboard .db-hc .db-snote .db-src{margin-top:0}
.dayboard .db-cmsg{font-size:11px;color:var(--db-r5);font-weight:600}
.dayboard .db-cmsg:empty{display:none}
.dayboard .db-risk .db-cmsg{color:#fff}

/* ---- Field route today (session 232), below the worklists, unchanged ---- */
.dayboard .db-fieldcard{margin-top:var(--db-gap);height:auto}
.dayboard .db-hc.db-fieldcard{height:auto}
.dayboard .db-wash-g::before{content:"";position:absolute;left:16px;right:16px;top:0;height:3px;border-radius:0 0 3px 3px;background:var(--db-g6)}
.dayboard .db-big{display:flex;align-items:center;gap:10px;margin-top:3px}
.dayboard .db-big b{font-size:38px;font-weight:700;letter-spacing:-.045em;line-height:.95}
.dayboard .db-big .d{font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;background:var(--db-surface-2);color:var(--db-muted);white-space:nowrap}
.dayboard .db-ttl{font-size:12.5px;font-weight:600;color:var(--db-ink);margin-top:8px;letter-spacing:-.015em}
.dayboard .db-link{margin-top:auto;padding-top:11px;font-size:12px;font-weight:550;color:var(--db-b5)}
.dayboard .db-route{margin-top:11px;display:flex;flex-direction:column;gap:8px}
.dayboard .db-rrow{display:flex;align-items:center;gap:8px;font-size:11.5px}
.dayboard .db-rrow .db-av{width:20px;height:20px;border-radius:50%;background:var(--db-g6);color:#fff;font-size:8.5px;font-weight:650;display:inline-flex;align-items:center;justify-content:center;flex:none}
.dayboard .db-rrow .db-who{min-width:0;flex:1}
.dayboard .db-rrow .db-who b{display:block;font-weight:600;color:var(--db-ink)}
.dayboard .db-rrow .db-who small{display:block;font-size:10.5px;color:var(--db-muted)}
.dayboard .db-rrow .db-prog{width:46px;height:7px;border-radius:4px;background:var(--db-surface-2);overflow:hidden;flex:none}
.dayboard .db-rrow .db-prog i{display:block;height:100%;background:var(--db-g6);border-radius:4px}
.dayboard .db-rrow .db-cnt{font-size:10.5px;font-weight:650;color:var(--db-muted);white-space:nowrap}
.dayboard .db-tnote{margin-top:10px;background:var(--db-surface-2);border-radius:9px;padding:8px 10px;font-size:11.5px;display:flex;gap:8px}
.dayboard .db-tnote .db-av{width:19px;height:19px;border-radius:50%;background:var(--db-b5);color:#fff;font-size:8px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex:none}
.dayboard .db-tnote .db-tx{color:var(--db-text);line-height:1.4}
.dayboard .db-tnote .db-tx small{display:block;color:var(--db-muted);font-size:10px;margin-top:2px}
.dayboard .db-addnote2{margin-top:9px;border:1px dashed var(--db-line-2);background:transparent;color:var(--db-muted);border-radius:999px;padding:5px 11px;font-size:11px;font-weight:600;align-self:flex-start}
.dayboard .db-addnote2:hover{border-color:var(--db-b5);color:var(--db-b5)}
.dayboard .db-noteform{display:flex;gap:6px;margin-top:8px}
.dayboard .db-noteform input{flex:1;min-width:0;border:1px solid var(--db-line);border-radius:999px;padding:5px 11px;font:inherit;font-size:11.5px}

@media (max-width:640px){
  .dayboard .db-head-r{margin-left:0;width:100%}
  .dayboard .db-search{min-width:0;width:100%}
  .dayboard .db-ctl-r{margin-left:0}
}

/* The worklists below the board (their own code untouched). Until session 234
   they sat in .cm-dashleft, whose overflow-x:auto (comms.css, session 216) let the
   Appointments Needing Correction table scroll sideways inside its column; that
   column is gone, so the same containment moves to their own box. */
.s-dash #dashWorklists{min-width:0;overflow-x:auto}

/* Session 237: new ResortCleaning clients. The header line links to the decisions on
   #match-queue; on a card, the RC name carries a small "not yet a client" marker in the
   header's own colour (white, or dark on a light client colour) so it reads on any photo. */
.dayboard .db-rcline{font-size:12px;font-weight:600;color:var(--db-ink);background:var(--db-surface-2);border-radius:999px;padding:4px 11px;text-decoration:none;white-space:nowrap}
.dayboard .db-rcline:hover{text-decoration:underline}
.dayboard .db-rcline[hidden]{display:none}
.dayboard .db-notyet{display:inline-block;margin-left:6px;padding:0 5px;border:1px solid currentColor;border-radius:3px;font-size:9px;font-weight:650;letter-spacing:.04em;text-transform:none;color:inherit;text-decoration:none;opacity:.9;vertical-align:1px}
.dayboard .db-notyet:hover{opacity:1;text-decoration:underline}

/* ---- session 238 ---- */
/* The Communications tile's period switch, in the tile's corner. */
.dayboard .db-cper{margin-left:auto;display:inline-flex;background:rgba(255,255,255,.1);border-radius:999px;padding:2px;cursor:default}
.dayboard .db-cper button{border:none;background:transparent;color:#cfe4e5;padding:2px 7px;border-radius:999px;font-size:10.5px;font-weight:650;cursor:pointer;white-space:nowrap}
.dayboard .db-cper button:hover{color:#fff}
.dayboard .db-cper button.on{background:#fff;color:var(--db-b7)}
.dayboard .db-cper button:focus-visible{outline:2px solid var(--db-b3);outline-offset:1px}
/* A note's Move button, the move box and the "moved to" line. */
.dayboard .db-sm .db-nmenu{float:right;border:1px solid var(--db-sl-edge);background:var(--db-surface);color:var(--db-sl-ink);border-radius:6px;font-size:10.5px;font-weight:650;padding:1px 8px;cursor:pointer}
.dayboard .db-sm .db-nmenu:hover,.dayboard .db-sm .db-nmenu[aria-expanded="true"]{border-color:var(--db-sl-ink)}
.dayboard .db-sm .db-nmoved{margin-top:3px;font-size:11px;color:var(--db-muted);font-style:italic}
.dayboard .db-movebox{margin-top:7px;display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;color:var(--db-text)}
.dayboard .db-movebox select{margin-left:4px;font-size:12px;padding:3px 6px;border-radius:6px;border:1px solid var(--db-line-2);background:var(--db-surface);color:var(--db-ink);max-width:100%}
.dayboard .db-movebox button{border:1px solid var(--db-sl-ink);background:var(--db-sl-ink);color:var(--db-sl-bg);border-radius:6px;font-size:11.5px;font-weight:650;padding:3px 10px;cursor:pointer}
.dayboard .db-movebox button.db-mcancel{background:transparent;color:var(--db-sl-ink)}
.dayboard .db-movebox .db-movemsg{color:var(--db-r5);font-weight:600}
.dayboard .db-sm .db-who .db-onday{background:var(--db-sl-ink);color:var(--db-sl-bg);margin-right:4px}
/* Notes from this week on other days, folded under the box's notes. */
.dayboard .db-odays{padding:0 16px 8px}
.dayboard .db-odays summary{cursor:pointer;font-size:11.5px;font-weight:650;color:var(--db-sl-ink);padding:6px 0}

/* ---- session 239 ---- */
/* Part 4 [Daniel: "I want every card the same height."]: every full card is 248px, each row
   in a fixed slot (briefs/card-tag-icons.html's 222px, plus one 25px row for the office
   checklist marks, which session 233 put on the card and which is empty but present before
   check-out, as the same-day band is when a clean is not same-day). */
.dayboard .db-jc{height:248px}
.dayboard .db-jc .db-ph{height:36px}
.dayboard .db-jc .db-ph-ink .db-grip i{background:#111}
.dayboard .db-jc .db-sdt{height:22px;flex:none;display:flex;align-items:center;padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dayboard .db-jc .db-sdt.none{background:transparent}
.dayboard .db-jc .db-bd{padding:8px 10px;min-height:0}
.dayboard .db-jc .db-nm{height:32px;flex:none;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.dayboard .db-jc .db-sv{flex-wrap:nowrap;margin-top:2px;min-width:0;flex:none}
.dayboard .db-jc .db-sv>span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dayboard .db-jc .db-cr{flex:none;padding-top:6px;white-space:nowrap}
.dayboard .db-jc .db-cr b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal}
.dayboard .db-jc .db-icons{display:flex;align-items:center;gap:10px;margin-top:7px;height:24px;flex:none;min-width:0}
.dayboard .db-jc .db-marks{height:19px;margin-top:6px;flex-wrap:nowrap;flex:none;overflow:hidden}
.dayboard .db-jc .db-ft{display:flex;gap:8px;align-items:baseline;white-space:nowrap;min-width:0;padding-top:6px;flex:none}
.dayboard .db-jc .db-ft>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis}
.dayboard .db-jc .db-tags+.db-ft,.dayboard .db-jc .db-marks+.db-ft{margin-top:auto}
.dayboard .db-jc .db-ft .db-moved{margin:0 0 0 auto;flex:none;font-size:10px}
/* Unassigned in the cleaner spot: a red dashed empty avatar, "Unassigned" in red. */
.dayboard .db-av.db-av-un{background:var(--db-r1) !important;color:var(--db-r5) !important;border:1.5px dashed var(--db-r5);box-shadow:none !important}
/* The six icons: bare line marks, colour on the stroke only, the count as plain text. */
.dayboard .db-ic{position:relative;display:inline-flex;align-items:center;gap:3px;height:22px;padding:0 2px;flex:none;font-size:11px;font-weight:700;border-radius:4px;cursor:default;outline:none}
.dayboard .db-ic:focus-visible{box-shadow:0 0 0 2px var(--db-b3)}
.dayboard .db-ic svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.dayboard .db-ic .db-icn{font-variant-numeric:tabular-nums}
.dayboard .db-ic.r{color:var(--db-r5)}.dayboard .db-ic.o{color:var(--db-on-o)}.dayboard .db-ic.t{color:var(--db-b5)}.dayboard .db-ic.a{color:var(--db-a6)}
:is(:root[data-theme="dark"],body.db-dark) .dayboard .db-ic.o{color:var(--db-o5)}:is(:root[data-theme="dark"],body.db-dark) .dayboard .db-ic.t{color:var(--db-b3)}
/* the one tooltip, on the page itself so no card edge clips it */
.db-tipbox{position:fixed;z-index:1000;background:#0e363b;color:#fff;font:500 11px/1.35 'Inter','Segoe UI',system-ui,sans-serif;border-radius:6px;padding:5px 8px;max-width:min(320px,calc(100vw - 16px));pointer-events:none;box-shadow:0 4px 14px rgba(14,54,59,.25)}
.db-tipbox[hidden]{display:none}
/* Part 6: one-line cards show the same icons, smaller, after the property name. */
.dayboard .db-mini .db-mic{display:flex;gap:6px;flex:none;align-items:center}
.dayboard .db-mini .db-ic{height:18px;font-size:10px;gap:2px;padding:0 1px}
.dayboard .db-mini .db-ic svg{width:13px;height:13px}
.dayboard .db-mini .db-av-un{margin-left:0}
.dayboard .db-mini-list.db-donelist.on,.dayboard .db-plan.db-mini-list{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:6px}
/* Part 1: anything that drags shows it, and a long press never selects text or opens a menu. */
.dayboard [data-drag]{cursor:grab;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.dayboard [data-drag] .db-mk,.dayboard [data-drag] .db-ic,.dayboard [data-drag] a{cursor:pointer}
.dayboard .dragging,.dayboard tr.dragging td{opacity:.4}
.dayboard .db-lifted{opacity:.9;box-shadow:0 10px 26px rgba(14,54,59,.32);transform:scale(1.02)}
.dayboard .db-list .db-grip-l{cursor:grab}
/* Part 3: the shell while the data loads, at the size it will have. */
.dayboard .db-hc.db-wait .db-num{height:42px}
.dayboard .db-controls:empty{min-height:34px}
.dayboard .db-skel{min-height:460px;display:flex;align-items:center;justify-content:center;color:var(--db-muted);font-size:12.5px}
/* A one-line card keeps at least a readable start of the property name; only when its icons
   cannot fit beside that (five or six icons on a narrow row) do they drop to a second line,
   rather than being cut off. */
.dayboard .db-mini{flex-wrap:wrap;row-gap:4px}
.dayboard .db-mini .db-p{min-width:64px;flex-basis:64px}

/* ---- session 241 ---- */
/* Part 5: the card header holds the client's short name and ONE time pill. The name is 11px, the
   brief's floor (it was 10px), with the letter spacing eased so a company name fits. The full
   name is read by screen readers from .db-sr and shown on hover. */
.dayboard .db-sr{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.dayboard .db-jc .db-cl{font-size:11px;letter-spacing:.02em}
.dayboard .db-jc .db-tm{white-space:nowrap}
.dayboard .db-jc .db-ph{gap:5px;padding:0 6px 0 10px}
/* The header's drag grip is gone to give the name its room (at 240px it cost the name 21px); the
   whole card still drags from anywhere, and the cursor says so. List rows keep their grip. */
/* Part 3: each card icon sits in a 26px ring of its own colour, 1.5px, with no fill in either
   mode; the mark stays 16px and any count stays outside the ring. Hover is unchanged (the one
   tooltip). The icon row grows to 26px, taken from the gap above it, so every card stays 248px. */
.dayboard .db-ic .db-ring{position:relative;width:26px;height:26px;background:transparent;display:inline-flex;align-items:center;justify-content:center;flex:none}
.dayboard .db-ic .db-ring svg.db-ringc{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5}
.dayboard .db-jc .db-ic{height:26px;padding:0;gap:4px}
.dayboard .db-jc .db-icons{height:26px;margin-top:5px;gap:8px}
.dayboard .db-mini .db-ic .db-ring{width:20px;height:20px}
.dayboard .db-mini .db-ic .db-ring svg.db-ringc{stroke-width:1.95} /* 1.5px at 20px across */
/* Part 6: the region legend beside Cards / List (display only), and the List view's marker. */
.dayboard .db-legend{display:inline-flex;flex-wrap:wrap;gap:4px 10px;align-items:center;font-size:11px;color:var(--db-muted);margin-right:4px}
.dayboard .db-lg{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.dayboard .db-lg s{width:10px;height:10px;border-radius:3px;box-shadow:inset 0 0 0 1px rgba(14,54,59,.18);flex:none}
.dayboard .db-lg b{color:var(--db-ink);font-weight:650}
.dayboard .db-list .db-rgm{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:6px;vertical-align:0;box-shadow:inset 0 0 0 1px rgba(14,54,59,.18)}
/* Part 7: cleaner routes, under #day-notes. The Dashboard's own surfaces, no tan or cream. */
.dayboard .db-routes{margin:var(--db-gap) 0;background:var(--db-surface);border-radius:14px;box-shadow:var(--db-sh);border:1px solid var(--db-line-2);overflow:hidden}
.dayboard .db-rtop{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:11px 16px;cursor:pointer;font-size:12.5px;color:var(--db-muted)}
.dayboard .db-rtop>b{font-size:13.5px;font-weight:650;color:var(--db-ink)}
.dayboard .db-rtop:focus-visible{outline:2px solid var(--db-b3);outline-offset:-2px}
.dayboard .db-rneed{color:var(--db-r5);font-weight:650}
.dayboard .db-rmsg{color:var(--db-r5);font-weight:600}
.dayboard .db-rgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:8px;padding:0 12px 12px}
.dayboard .db-rcard{background:var(--db-surface);border:1px solid var(--db-line-2);border-radius:11px;padding:9px 11px;min-width:0}
.dayboard .db-rch{display:flex;align-items:baseline;gap:8px;padding-bottom:6px;border-bottom:2px solid var(--db-b5);margin-bottom:2px}
.dayboard .db-rch b{font-size:13px;font-weight:650;color:var(--db-ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dayboard .db-rhrs{margin-left:auto;font-size:12px;font-weight:700;color:var(--db-b5);flex:none}
.dayboard .db-rhrs.over{color:var(--db-r5)}
:is(:root[data-theme="dark"],body.db-dark) .dayboard .db-rhrs:not(.over){color:var(--db-b3)}
.dayboard .db-rs{display:flex;gap:8px;padding:7px 0;border-bottom:1px solid var(--db-line);min-width:0}
.dayboard .db-rs:last-child{border-bottom:none}
.dayboard .db-rn{width:18px;height:18px;border-radius:50%;background:var(--db-b1);color:var(--db-b5);font-size:10.5px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex:none;margin-top:1px}
:is(:root[data-theme="dark"],body.db-dark) .dayboard .db-rn{color:var(--db-b3)}
.dayboard .db-rsb{min-width:0;flex:1}
.dayboard .db-rl1{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 6px;font-size:12px;color:var(--db-ink)}
.dayboard .db-rl1 b{font-weight:650}
.dayboard .db-rl1 small{font-size:10.5px;color:var(--db-muted)}
.dayboard .db-rst{margin-left:auto;font-size:10.5px;font-weight:650;border-radius:999px;padding:1px 7px;background:var(--db-surface-2);color:var(--db-text);white-space:nowrap}
.dayboard .db-rst.s2{background:var(--db-a1);color:var(--db-on-a)}.dayboard .db-rst.s3{background:var(--db-o1);color:var(--db-on-o)}.dayboard .db-rst.s5{background:var(--db-g1);color:var(--db-on-g)}
:is(:root[data-theme="dark"],body.db-dark) .dayboard .db-rst.s2{color:#f1c983}:is(:root[data-theme="dark"],body.db-dark) .dayboard .db-rst.s3{color:#ffb98a}:is(:root[data-theme="dark"],body.db-dark) .dayboard .db-rst.s5{color:#8fe0c4}
.dayboard .db-rl2{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--db-text);margin-top:2px;min-width:0}
.dayboard .db-rp{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dayboard .db-rh{flex:none;color:var(--db-muted);font-size:11px}
.dayboard .db-rsdt{flex:none;font-size:9.5px;font-weight:800;color:#fff;background:var(--db-r5);border-radius:999px;padding:1px 6px;letter-spacing:.03em}
.dayboard .db-rl3{font-size:11px;color:var(--db-muted);margin-top:2px}
.dayboard .db-rdrive em{font-style:normal;font-weight:650;color:var(--db-text)}
.dayboard .db-rnohome{font-style:italic}
.dayboard .db-rw{font-size:11px;color:var(--db-r5);font-weight:650;margin-top:3px}
.dayboard .db-rneedline{margin:0 12px 12px;padding:8px 11px;border-radius:9px;background:var(--db-r1);color:var(--db-r5);font-size:12px;font-weight:650}
.dayboard .db-rfoot{padding:9px 16px;border-top:1px solid var(--db-line);font-size:11px;color:var(--db-muted);line-height:1.6}

/* ---- session 242 ---- */
/* Part 4: the Light / Dark switch, the mockup's .theme, at the top right beside search. */
.dayboard .db-theme{display:inline-flex;background:var(--db-surface);border:1px solid var(--db-line);border-radius:999px;padding:3px;box-shadow:var(--db-sh);flex:none}
.dayboard .db-theme button{border:0;background:none;color:var(--db-muted);font:600 12px/1.2 inherit;letter-spacing:0;padding:6px 12px;border-radius:999px;display:flex;align-items:center;gap:6px}
.dayboard .db-theme button svg{fill:none;stroke:currentColor;stroke-width:2.4}
.dayboard .db-theme button.on{background:var(--db-b5);color:#fff}
.dayboard .db-theme button:not(.on):hover{color:var(--db-ink)}
@media (max-width:640px){.dayboard .db-head-r{flex-wrap:wrap}.dayboard .db-head-r .db-search{flex:1 1 200px}}

/* Part 5: the card's bottom line, region on the left (8px dot and name), Next check-in on the right. */
.dayboard .db-jc .db-ft{display:flex;align-items:center;gap:8px}
.dayboard .db-jc .db-ft>span:first-child{overflow:visible}
.dayboard .db-rgn{display:inline-flex;align-items:center;gap:5px;font-weight:600;color:var(--db-text);white-space:nowrap;min-width:0;flex:0 1 auto;overflow:hidden}
.dayboard .db-rgn>span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.dayboard .db-rgn i{width:8px;height:8px;border-radius:50%;flex:none}
.dayboard .db-rgn-none i{box-shadow:inset 0 0 0 1px #9aa4a8}
.dayboard .db-nx{margin-left:auto;white-space:nowrap;flex:none;display:inline-flex;align-items:center;gap:4px}
.dayboard .db-nx svg{fill:none;stroke:var(--db-muted);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
/* Session 243, Part 9.3: the region name is never cut; it gives way only if a future name could not fit at all. */
.dayboard .db-jc .db-ft{gap:6px}
.dayboard .db-rgn{flex:0 0 auto}
/* Part 5: the region key is clickable, the mockup's .chip. */
/* Session 243, Part 2: session 242 drew each key entry as a bordered chip (12px text, 4px 10px padding,
   6px gaps). Wider and taller, the key no longer fit beside Cards / List at 1440, so the controls took
   three lines instead of two and pushed the board 33px down. The key keeps session 241's size (11px
   text, 10px between entries, no border) and every session 242 behaviour: each entry is a button,
   lifts 1px on hover, turns teal when it is the filter, and the others fade. The 3px side padding
   plus a 4px gap is session 241's 10px between entries, so nothing moves. */
.dayboard .db-legend{gap:4px 4px}
.dayboard .db-lg{display:inline-flex;align-items:center;gap:5px;border:0;background:transparent;border-radius:999px;padding:1px 3px;font-size:11px;font-weight:500;color:var(--db-muted);cursor:pointer;transition:transform .12s,background .12s,color .12s,opacity .12s;white-space:nowrap;line-height:1.35}
.dayboard .db-lg:hover{transform:translateY(-1px);color:var(--db-ink)}
.dayboard .db-lg s{width:10px;height:10px;border-radius:3px}
.dayboard .db-lg b{font-weight:650;color:var(--db-ink)}
.dayboard .db-lg.on{background:var(--db-b5);color:#fff;padding:1px 6px;margin:0 -3px}
.dayboard .db-lg.on b{color:#fff}
.dayboard .db-lg.off{opacity:.4}
.dayboard .db-lg:focus-visible{outline:2px solid var(--db-b3);outline-offset:1px}
/* Part 2: 12-hour times are wider. */
.dayboard .db-mini .db-t{width:54px}
.dayboard .db-list col.db-c-time{width:72px}

/* Part 3: lighting the board from the routes box. */
.dayboard .db-jc,.dayboard .db-mini{transition:transform .15s,box-shadow .15s,opacity .15s,outline-color .15s;outline:3px solid transparent;outline-offset:-1px}
.dayboard .db-jc.db-lit,.dayboard .db-mini.db-lit{outline-color:var(--db-y5);transform:translateY(-2px);box-shadow:0 2px 4px rgba(14,54,59,.08),0 10px 28px rgba(14,54,59,.14)}
.dayboard tr.db-lit td{box-shadow:inset 0 3px 0 var(--db-y5),inset 0 -3px 0 var(--db-y5)}
.dayboard .db-unlit{opacity:.35}

/* Part 3: Cleaner routes, the mockup's .routes, .tile, .tl and .stop. The panel keeps its gradient in both modes. */
.dayboard .db-routes{position:relative;margin:var(--db-gap) 0;border:0;border-radius:16px;padding:18px 18px 16px;background:linear-gradient(135deg,#1D6E77 0%,#124A50 55%,#0E363B 100%);color:#E7F4F4;box-shadow:var(--db-sh);overflow:visible}
.dayboard .db-rhead{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.dayboard .db-rfolded .db-rhead{margin-bottom:0}
.dayboard .db-ric{width:32px;height:32px;border-radius:9px;background:rgba(255,255,255,.12);display:grid;place-items:center;flex:none}
.dayboard .db-ric svg{fill:none;stroke:#6FD5D4;stroke-width:2.2}
.dayboard .db-rtitle{min-width:0}
.dayboard .db-rhead h2{margin:0;font-size:17px;font-weight:700;color:#fff;letter-spacing:-.01em}
.dayboard .db-rct{font-size:12px;color:#9CCFCF}
.dayboard .db-routes .db-rneed{color:#FFB4A6;font-weight:700}
.dayboard .db-routes .db-rmsg{color:#FFB4A6;font-weight:600;margin-left:6px}
.dayboard .db-rkey{display:flex;gap:12px;font-size:11px;color:#A9D4D4;margin-left:auto;flex-wrap:wrap}
.dayboard .db-rkey span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.dayboard .db-rkey i{display:inline-block;width:14px;height:8px;border-radius:2px}
.dayboard .db-rkey i.db-k-drv{background:repeating-linear-gradient(90deg,rgba(255,255,255,.6) 0 3px,transparent 3px 5px)}
.dayboard .db-rkey i.db-k-now{background:#FFD13A}
.dayboard .db-rkey i.db-k-dl{width:0;height:10px;border-radius:0;border-left:2px dashed #FF8C78}
.dayboard .db-fold{border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);color:#fff;border-radius:8px;padding:5px 10px;font-size:12px;font-weight:600;flex:none}
.dayboard .db-rfolded .db-fold{margin-left:auto}
.dayboard .db-fold:hover{background:rgba(255,255,255,.14)}
.dayboard .db-fold:focus-visible{outline:2px solid #6FD5D4;outline-offset:1px}
.dayboard .db-rgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:8px;padding:0}
.dayboard .db-tile{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.10);border-radius:12px;padding:12px 12px 10px;transition:transform .15s,background .15s,border-color .15s,box-shadow .15s;min-width:0}
.dayboard .db-tile:hover{transform:translateY(-3px);background:rgba(255,255,255,.11);border-color:rgba(111,213,212,.55);box-shadow:0 12px 26px rgba(0,0,0,.28)}
.dayboard .db-th{display:flex;align-items:center;gap:8px;margin-bottom:10px;min-width:0}
.dayboard .db-rav{width:26px;height:26px;border-radius:50%;background:#6FD5D4;color:#0E363B;font-size:10px;font-weight:700;display:grid;place-items:center;flex:none}
.dayboard .db-rnm{flex:1;min-width:0;font-weight:700;font-size:13.5px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dayboard .db-rhr{font-weight:800;font-size:13px;color:#fff;background:rgba(255,255,255,.1);border-radius:999px;padding:2px 9px;flex:none}
.dayboard .db-rhr.over{background:#C43D2B}
.dayboard .db-tl{position:relative;height:22px;border-radius:6px;background:rgba(0,0,0,.22);margin-bottom:4px;overflow:hidden}
.dayboard .db-tl-blk{position:absolute;top:3px;bottom:3px;border-radius:4px;transition:filter .12s,transform .12s;min-width:2px}
.dayboard .db-tl-blk:hover{filter:brightness(1.2);transform:scaleY(1.12)}
.dayboard .db-tl-drv{position:absolute;top:9px;height:4px;border-radius:2px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.45) 0 4px,transparent 4px 7px)}
.dayboard .db-tl-now{position:absolute;top:0;bottom:0;width:2px;background:#FFD13A;box-shadow:0 0 6px #FFD13A}
.dayboard .db-tl-dl{position:absolute;top:0;bottom:0;width:0;border-left:2px dashed #FF8C78}
.dayboard .db-b-done{background:#6FD29A}.dayboard .db-b-in{background:#6FD5D4}.dayboard .db-b-sch{background:rgba(255,255,255,.35)}.dayboard .db-b-sdt{box-shadow:inset 0 0 0 2px #FF8C78}
.dayboard .db-ticks{position:relative;height:13px;font-size:9.5px;color:#7FB4B6;margin-bottom:8px}
.dayboard .db-ticks span{position:absolute;top:0;white-space:nowrap}
.dayboard .db-stop{display:flex;gap:8px;padding:7px 6px;border-radius:8px;font-size:12.5px;line-height:1.35;transition:background .12s;cursor:pointer;min-width:0}
.dayboard .db-stop:hover{background:rgba(255,255,255,.10)}
/* Session 243: was .db-num, the same class as the four tiles' big numbers, which this rule shrank to an 18px
   circle so each number sat on top of the text under it. The route stop's number is .db-snum now. */
.dayboard .db-snum{width:18px;height:18px;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:10px;font-weight:700;display:grid;place-items:center;flex:none;margin-top:1px}
.dayboard .db-sb{min-width:0;flex:1;overflow-wrap:anywhere}
.dayboard .db-st-t{font-weight:700;color:#fff;white-space:nowrap}
.dayboard .db-st-p{color:#D4ECEC}
.dayboard .db-st-m{font-size:11px;color:#8FC3C4;margin-top:2px;display:flex;gap:4px 8px;flex-wrap:wrap;align-items:center}
.dayboard .db-stc{font-size:10px;font-weight:700;border-radius:999px;padding:1px 7px}
.dayboard .db-stc.done{background:rgba(111,210,154,.18);color:#9BE6B9}.dayboard .db-stc.in{background:rgba(111,213,212,.18);color:#A7ECEB}.dayboard .db-stc.sch{background:rgba(255,255,255,.12);color:#D8E7E8}
.dayboard .db-sdtc{font-size:10px;font-weight:800;background:#C43D2B;color:#fff;border-radius:999px;padding:1px 7px}
.dayboard .db-warn{font-size:11px;color:#FFB4A6;font-weight:600;margin-top:3px}
.dayboard .db-miss{font-size:11px;color:#FFD9A0;font-weight:600}
.dayboard .db-miss a{color:#FFD13A}
.dayboard .db-routes .db-rneedline{margin:10px 0 0;padding:8px 11px;border-radius:9px;background:rgba(196,61,43,.9);color:#fff}
.dayboard .db-rfoot{padding:10px 2px 0;border-top:0;font-size:11px;color:#9CCFCF;line-height:1.6}
.dayboard .db-rempty{font-size:12.5px;color:#D4ECEC}

/* Part 1: Data to fix, the mockup's .todo and .row. */
.dayboard .db-todo{background:var(--db-surface);border-radius:14px;box-shadow:var(--db-sh);overflow:hidden;margin:var(--db-gap) 0}
.dayboard .db-tdh{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--db-line);flex-wrap:wrap}
.dayboard .db-fic{width:32px;height:32px;border-radius:9px;background:var(--db-amb-bg);color:var(--db-amb);display:grid;place-items:center;flex:none}
.dayboard .db-fic svg,.dayboard .db-fri svg{fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.dayboard .db-tdh h2{margin:0;font-size:17px;font-weight:700;color:var(--db-ink)}
.dayboard .db-tct{font-size:12px;color:var(--db-muted)}
.dayboard .db-tct.db-err{color:var(--db-r5);font-weight:600}
.dayboard .db-big2{font-size:22px;font-weight:800;color:var(--db-ink);letter-spacing:-.02em}
.dayboard .db-tabs{display:flex;gap:6px;margin-left:auto;flex-wrap:wrap}
.dayboard .db-tab{border:1px solid var(--db-line);background:var(--db-surface);color:var(--db-text);border-radius:999px;padding:5px 11px;font-size:12px;font-weight:600;transition:all .12s}
.dayboard .db-tab:hover{border-color:var(--db-b5);color:var(--db-b5)}
.dayboard .db-tab.on{background:var(--db-b5);border-color:var(--db-b5);color:#fff}
.dayboard .db-tab b{margin-left:4px}
.dayboard .db-grp2{padding:4px 0 8px}
.dayboard .db-gh{display:flex;align-items:center;gap:8px;padding:12px 16px 6px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--db-muted)}
.dayboard .db-ghn{background:var(--db-surface-2);color:var(--db-ink);border-radius:999px;padding:1px 8px;letter-spacing:0}
.dayboard .db-frow{display:grid;grid-template-columns:30px minmax(0,1.6fr) minmax(0,1.3fr) auto auto;align-items:center;gap:12px;padding:10px 16px;border-top:1px solid var(--db-surface-2);transition:background .12s,box-shadow .12s;cursor:pointer}
.dayboard .db-frow:hover{background:var(--db-surface-2);box-shadow:inset 3px 0 0 var(--db-y5)}
.dayboard .db-fri{width:30px;height:30px;border-radius:8px;display:grid;place-items:center}
.dayboard .db-fri.red{background:var(--db-r1);color:var(--db-r5)}.dayboard .db-fri.amb{background:var(--db-amb-bg);color:var(--db-amb)}.dayboard .db-fri.teal{background:rgba(29,110,119,.12);color:var(--db-b5)}
.dayboard .db-fw{font-weight:700;color:var(--db-ink);font-size:13.5px}
.dayboard .db-fd{font-size:12px;color:var(--db-muted);margin-top:2px;overflow-wrap:anywhere}
.dayboard .db-fx{font-size:12.5px;color:var(--db-text)}
.dayboard .db-since{font-size:11.5px;color:var(--db-muted);white-space:nowrap}
.dayboard .db-fixbtn{display:inline-flex;align-items:center;gap:5px;background:var(--db-y5);color:#0A3F45;border:0;border-radius:8px;padding:6px 11px;font-size:12px;font-weight:700;white-space:nowrap;text-decoration:none;transition:transform .12s,box-shadow .12s}
.dayboard .db-fixbtn:hover{transform:translateY(-1px);box-shadow:0 4px 10px rgba(255,209,58,.45)}
.dayboard .db-fixbtn:focus-visible{outline:2px solid var(--db-b5);outline-offset:2px}
.dayboard .db-tdf{display:flex;align-items:center;gap:10px;padding:10px 16px;border-top:1px solid var(--db-line);font-size:12px;color:var(--db-muted);flex-wrap:wrap}
.dayboard .db-fempty{display:flex;align-items:center;gap:10px;padding:12px 16px;font-size:13px;color:var(--db-ok);font-weight:600}
.dayboard .db-todo-none .db-empty-line{display:flex;align-items:center;gap:12px;padding:12px 16px;font-size:13px;color:var(--db-text)}
.dayboard .db-todo-none .db-empty-line b{color:var(--db-ink)}
@media (max-width:760px){
  .dayboard .db-frow{grid-template-columns:30px minmax(0,1fr) auto;row-gap:4px}
  .dayboard .db-frow .db-fx{grid-column:2/4}
  .dayboard .db-frow .db-since{grid-column:2/3}
  .dayboard .db-rkey{margin-left:0}
}
.dayboard{--db-amb:#9A4A0E;--db-amb-bg:#FDF3E6;--db-ok:#1E6B3A}

/* Part 4: full dark mode for the Dashboard, the mockup's dark tokens. body.db-dark is set only while
   the Dashboard is open (dbApplyTheme, and render() takes it off on leaving). The page behind the
   Dashboard darkens too; the sidebar and top bar keep their own colours; the Slack box keeps its
   plum; the routes panel keeps its gradient; region header colours are the same in both modes.
   Red text is #FF7A66, but a white-on-red band keeps a deeper red so its white text still reads. */
body.db-dark{--page-bg:#0B1416}
html body.db-dark .dayboard.dayboard{
  --db-y1:#2A2612;
  --db-surface:#132024;--db-surface-2:#1A2A2E;--db-line:#24363B;--db-line-2:#24363B;--db-ink:#EEF3F4;--db-text:#C9D3D6;--db-muted:#8C9AA0;
  --db-r1:#3A1C18;--db-a1:#33251A;--db-o1:#3e2116;--db-g1:#14342c;--db-b1:#16363b;--db-y1:#3a3312;--db-same-1:#3A1C18;
  --db-on-g:#6FD29A;--db-on-a:#F2B272;--db-on-o:#F2B272;--db-a6:#F2B272;
  --db-amb:#F2B272;--db-amb-bg:#33251A;--db-ok:#6FD29A;
  --db-sh:0 1px 2px rgba(0,0,0,.4),0 4px 14px rgba(0,0,0,.35);
  --db-sl-bg:#132024;--db-sl-foot:#16262a
}
body.db-dark .dayboard .db-missing,body.db-dark .dayboard .db-unas,body.db-dark .dayboard .db-lrow .db-m,body.db-dark .dayboard .db-phasenote.db-err,
body.db-dark .dayboard .db-ic.r,body.db-dark .dayboard .db-tags i.r,body.db-dark .dayboard .db-grp-h,body.db-dark .dayboard .db-cmsg,body.db-dark .dayboard .db-feedchip.bad,
body.db-dark .dayboard .db-fri.red,body.db-dark .dayboard .db-tct.db-err,body.db-dark .dayboard .db-ttag-risk,body.db-dark .dayboard .db-list tr.db-grp td,
body.db-dark .dayboard .db-movebox .db-movemsg,body.db-dark .dayboard .db-rw{color:#FF7A66}
body.db-dark .dayboard .db-risk .db-cmsg{color:#fff}
body.db-dark .dayboard .db-mini.same .db-p{color:#FFB4A6}
body.db-dark .dayboard .db-feedchip.bad i{background:#FF7A66}
body.db-dark .dayboard .db-showall,body.db-dark .dayboard .db-plink,body.db-dark .dayboard .db-link,body.db-dark .dayboard .db-tags i.t,body.db-dark .dayboard .db-ttag-care,
body.db-dark .dayboard .db-xall button:hover,body.db-dark .dayboard .db-addnote2:hover,body.db-dark .dayboard .db-tab:hover,body.db-dark .dayboard .db-fri.teal{color:#6FD5D4}
body.db-dark .dayboard .db-plink{border-bottom-color:#6FD5D4}
body.db-dark .dayboard .db-risk .db-plink,body.db-dark .dayboard .db-risk .db-showall{color:#fff}
body.db-dark .dayboard .db-fri.teal{background:rgba(111,213,212,.12)}
body.db-dark .dayboard .db-tab:hover{border-color:#6FD5D4}
body.db-dark .dayboard .db-boardwrap{background:#0F1B1E}
body.db-dark .dayboard .db-col{border-right-color:rgba(255,255,255,.08)}
body.db-dark .dayboard .db-jc{box-shadow:0 1px 3px rgba(0,0,0,.5)}
body.db-dark .dayboard .db-jc .db-tm{color:#0E363B}
body.db-dark .dayboard .db-list th{background:#1A2A2E}
body.db-dark .dayboard .db-list tr.db-grp td{background:#2a1a17}
body.db-dark .dayboard .db-list tr.db-grp.norm td{background:#1A2A2E;color:var(--db-muted)}
body.db-dark .dayboard .db-empty{border-color:rgba(255,255,255,.14)}
body.db-dark .dayboard .db-typ.db-typ-nc{box-shadow:inset 0 0 0 1px rgba(255,255,255,.2)}
body.db-dark .dayboard .db-typ.on,body.db-dark .dayboard .db-vt button.on{background:#1D6E77}
body.db-dark .dayboard .db-lg.on,body.db-dark .dayboard .db-tab.on,body.db-dark .dayboard .db-theme button.on{background:#1D6E77;border-color:#1D6E77}
body.db-dark .dayboard .db-lg s,body.db-dark .dayboard .db-list .db-rgm{box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
body.db-dark .dayboard .db-rgn-none i{box-shadow:inset 0 0 0 1px #8C9AA0}
/* white text on red keeps a red deep enough to read */
body.db-dark .dayboard .db-jc .db-sdt:not(.none),body.db-dark .dayboard .db-mini .db-sd,body.db-dark .dayboard .db-sdchip,body.db-dark .dayboard .db-cm em,body.db-dark .dayboard .db-rsdt{background:#B8392A}
body.db-dark .dayboard .db-mini.same,body.db-dark .dayboard .db-list tr.same td:first-child{border-left-color:#FF7A66}
body.db-dark .dayboard .db-av.db-av-un{color:#FF7A66 !important;border-color:#FF7A66}
body.db-dark .dayboard .db-lit{box-shadow:0 2px 4px rgba(0,0,0,.5),0 10px 28px rgba(0,0,0,.5)}
/* the Late check-in tile's numbers and its row bars */
body.db-dark .dayboard .db-late .db-num{color:#F2B272 !important}
body.db-dark .dayboard .db-care .db-num{color:#6FD5D4 !important}
/* Part 2: the 12-hour pill is wider, so a client name that no longer fits on one line takes a second
   one inside the same 36px header (two 11px lines), rather than being cut off. */
.dayboard .db-jc .db-cl{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.15;overflow-wrap:normal;word-break:normal}
/* Contrast (measured, session 242): text on the routes panel, the At risk tile and a few avatars read
   under 4.5:1 in the mockup's own colours, in both modes. Each is lifted just enough. */
.dayboard .db-ticks{color:#DDF0F0}
.dayboard .db-st-m{color:#C6E4E4}
.dayboard .db-rct,.dayboard .db-rfoot{color:#CDE8E8}
.dayboard .db-rkey{color:#D3EBEB}
.dayboard .db-st-p{color:#E6F4F4}
.dayboard .db-stc.done{background:rgba(0,0,0,.22);color:#A9ECC4}.dayboard .db-stc.in{background:rgba(0,0,0,.22);color:#B5F0EF}.dayboard .db-stc.sch{background:rgba(0,0,0,.22);color:#E4EFF0}
.dayboard .db-warn{color:#FFC6BB}
.dayboard .db-miss{color:#FFE2B5}
.dayboard .db-miss a{color:#FFE27A}
.dayboard .db-snum{background:rgba(0,0,0,.25)}
.dayboard .db-rhr{background:rgba(0,0,0,.22)}
/* Session 244, Part 3: the At risk tile is back to session 241's look (commit 86d6411): each clean on a
   lighter panel, its avatar lighter too, the tile's labels in their soft tints. Session 242 (commit 1c3fd94)
   had darkened them here for contrast, which Daniel found flat. */
.dayboard .db-rrow .db-av{background:#1e6b3a}
.dayboard .db-typ.on{color:#E6F2F2}
.dayboard .db-list td{color:var(--db-text)}

/* Session 243, Part 3: "+N more" and its menu of the service types that are off by default. */
.dayboard .db-pmore-wrap{position:relative;display:inline-flex}
.dayboard .db-typ.db-pmore{color:var(--db-ink);font-weight:650}
.dayboard .db-typ.db-pmore[aria-expanded="true"]{box-shadow:inset 0 0 0 1px var(--db-b5)}
.dayboard .db-pmenu{position:absolute;top:calc(100% + 6px);left:0;z-index:50;display:flex;flex-direction:column;align-items:stretch;gap:6px;min-width:210px;background:var(--db-surface);border:1px solid var(--db-line-2);border-radius:12px;box-shadow:0 10px 28px rgba(14,54,59,.18);padding:8px}
.dayboard .db-pmenu .db-typ{justify-content:flex-start}
body.db-dark .dayboard .db-pmenu{box-shadow:0 10px 28px rgba(0,0,0,.5)}
.dayboard .db-tl-blk.db-b-est{opacity:.45;background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.28) 0 3px,transparent 3px 6px)}
.dayboard .db-tl-blk.db-b-l{border-top-right-radius:0;border-bottom-right-radius:0}
.dayboard .db-tl-blk.db-b-r{border-top-left-radius:0;border-bottom-left-radius:0}
.dayboard .db-rkey i.db-k-est{background:rgba(111,213,212,.45);background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.28) 0 3px,transparent 3px 6px)}
.dayboard .db-fixbtns{display:inline-flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.dayboard .db-okbtn,.dayboard .db-undobtn{border:1px solid var(--db-line-2);background:var(--db-surface);color:var(--db-ink);border-radius:8px;padding:5px 10px;font-size:12px;font-weight:650;white-space:nowrap;transition:transform .12s,border-color .12s}
.dayboard .db-okbtn:hover,.dayboard .db-undobtn:hover{transform:translateY(-1px);border-color:var(--db-b5)}
.dayboard .db-okbtn:disabled,.dayboard .db-undobtn:disabled{opacity:.6;cursor:wait}
.dayboard .db-okd{margin:4px 16px 8px;font-size:12px;color:var(--db-text)}
.dayboard .db-okd summary{cursor:pointer;color:var(--db-muted);font-weight:600;padding:4px 0}
.dayboard .db-okrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:6px 0;border-top:1px solid var(--db-surface-2)}
.dayboard .db-okrow>span:first-child{flex:1 1 220px;min-width:0;overflow-wrap:anywhere}
.dayboard .db-okrow b{color:var(--db-ink);font-weight:650}
.dayboard .db-tdf.db-err{color:var(--db-r5);font-weight:600}

/* ---------- session 244 ---------- */
/* Part 2: the day switcher beside the title, and the line that says the day is not today. */
.dayboard .db-days{display:inline-flex;flex-wrap:wrap;gap:2px;background:var(--db-surface);border-radius:999px;padding:3px;box-shadow:var(--db-sh);max-width:100%}
.dayboard .db-days button{border:none;background:transparent;color:var(--db-text);padding:5px 11px;border-radius:999px;font-size:12px;font-weight:650;white-space:nowrap}
.dayboard .db-days button:hover{color:var(--db-b5)}
.dayboard .db-days button.on{background:var(--db-b7);color:#fff}
body.db-dark .dayboard .db-days button.on{background:#1D6E77}
body.db-dark .dayboard .db-days button:hover{color:#6FD5D4}
.dayboard .db-nottoday{margin:-8px 0 14px;padding:8px 12px;border-radius:10px;background:var(--db-y1,#fff6da);border:1px solid var(--db-y5,#ffd13a);color:var(--db-ink);font-size:13px}
.dayboard .db-nottoday a{margin-left:8px;font-weight:700;color:var(--db-b7);text-decoration:underline}
body.db-dark .dayboard .db-nottoday{background:#3a3212;border-color:#8a7420;color:#fff3c4}
body.db-dark .dayboard .db-nottoday a{color:#ffe27a}
.dayboard .db-projtag{margin-left:8px;display:inline-block;padding:1px 7px;border-radius:999px;background:#fff;color:#bc4a37;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;vertical-align:1px}
/* Part 1: Shared cleans: split or full. */
.dayboard .db-shbadge{margin-left:auto;text-transform:none;letter-spacing:0;font-size:12px;font-weight:700;color:var(--db-ink);background:var(--db-surface-2);border-radius:999px;padding:3px 10px}
.dayboard .db-shinstr{padding:0 16px 8px;font-size:12.5px;color:var(--db-muted)}
.dayboard .db-shinstr b{color:var(--db-text)}
.dayboard .db-shwk{padding:10px 16px 4px;font-size:12px;font-weight:700;color:var(--db-text)}
.dayboard .db-shrow{display:grid;grid-template-columns:64px minmax(0,1fr) 72px auto;align-items:center;gap:12px;padding:10px 16px;border-top:1px solid var(--db-surface-2)}
.dayboard .db-shd{font-size:12.5px;font-weight:650;color:var(--db-text);white-space:nowrap}
.dayboard .db-shp{min-width:0;display:flex;flex-direction:column}
.dayboard .db-shp b{font-weight:650;color:var(--db-ink);overflow-wrap:anywhere}
.dayboard .db-shp span{font-size:12px;color:var(--db-muted);overflow-wrap:anywhere}
.dayboard .db-shoff{font-style:italic}
.dayboard .db-shh{font-size:12.5px;color:var(--db-text);white-space:nowrap;text-align:right}
.dayboard .db-shb{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.dayboard .db-shbtn{border:1px solid var(--db-line-2);background:var(--db-surface);color:var(--db-ink);border-radius:8px;padding:5px 10px;font-size:12px;font-weight:700;line-height:1.25;text-align:center;white-space:nowrap;transition:transform .12s,border-color .12s}
.dayboard .db-shbtn small{display:block;font-size:11px;font-weight:500;color:var(--db-muted)}
.dayboard .db-shbtn:hover{transform:translateY(-1px);border-color:var(--db-b5)}
.dayboard .db-shbtn:disabled{opacity:.6;cursor:wait}
.dayboard .db-shdone{grid-template-columns:minmax(0,1fr) auto;background:var(--db-surface-2);font-size:13px;color:var(--db-text)}
.dayboard .db-shdone b{color:var(--db-ink)}
.dayboard .db-shcount{font-weight:500;color:var(--db-muted);margin-left:2px}
@media (max-width:760px){
  .dayboard .db-shrow{grid-template-columns:52px minmax(0,1fr) auto}
  .dayboard .db-shh{text-align:left;grid-column:2/3}
  .dayboard .db-shb{grid-column:1/-1;justify-content:flex-start}
  .dayboard .db-shdone{grid-template-columns:minmax(0,1fr)}
}

/* ---------- session 246 ---------- */
/* Part 3: cards. No reserved strap; a card is as tall as its content, the cards in one grid row stretch to the
   tallest (grid align-items:stretch), the spare height goes to the body's spacer, and the bottom line (region
   and next check-in) always sits at the bottom. Replaces session 239's fixed 248px card. */
.dayboard .db-jc{height:auto}
.dayboard .db-colcards,.dayboard .db-plan,.dayboard .db-donelist{align-items:stretch}
.dayboard .db-jc .db-bd{flex:1 1 auto;display:flex;flex-direction:column}
.dayboard .db-jc .db-spc{flex:1 1 auto;min-height:0}
.dayboard .db-jc .db-ft{margin-top:0}
/* Part 2: the date is the title (dashboard-246-mockup-v1 .dnav, .arrow, .dtitle, .todayb, .menu, .notToday). */
.dayboard .db-dnav{display:inline-flex;align-items:center;gap:6px;min-width:0}
.dayboard .db-arrow{width:34px;height:34px;border-radius:10px;border:1px solid var(--db-line);background:var(--db-surface);display:grid;place-items:center;color:var(--db-ink);box-shadow:var(--db-sh);font-size:20px;line-height:1;padding:0;transition:transform .12s,border-color .12s;flex:none}
.dayboard .db-arrow:hover:not(:disabled){transform:translateY(-1px);border-color:var(--db-b5)}
.dayboard .db-arrow:disabled{opacity:.4;cursor:default;box-shadow:none}
.dayboard .db-dd{position:relative;display:inline-block;min-width:0}
.dayboard .db-dtitle{border:0;background:none;padding:0;margin:0;font:inherit;color:inherit;letter-spacing:inherit;cursor:pointer;display:flex;align-items:center;gap:8px;white-space:nowrap}
.dayboard .db-dtitle .db-chev{font-size:14px;color:var(--db-muted)}
.dayboard .db-dtitle:hover .db-chev{color:var(--db-b5)}
.dayboard .db-dshort{display:none}
.dayboard .db-dmenu{position:absolute;top:calc(100% + 8px);left:0;background:var(--db-surface);border-radius:12px;box-shadow:0 2px 4px rgba(14,54,59,.08),0 10px 28px rgba(14,54,59,.14);padding:6px;z-index:30;min-width:220px}
.dayboard .db-dmenu button{display:flex;justify-content:space-between;align-items:center;width:100%;border:0;background:none;padding:8px 10px;border-radius:8px;font-size:13px;color:var(--db-ink);text-align:left}
.dayboard .db-dmenu button:hover,.dayboard .db-dmenu button:focus-visible{background:var(--db-surface-2)}
.dayboard .db-dmenu button small{color:var(--db-muted);font-size:12px}
.dayboard .db-dmenu button.on{background:var(--db-b7);color:#fff}.dayboard .db-dmenu button.on small{color:#cfe}
body.db-dark .dayboard .db-dmenu button.on{background:#1D6E77}
.dayboard .db-todayb{border:1px solid var(--db-b7);color:var(--db-b7);background:var(--db-surface);border-radius:999px;padding:5px 12px;font-size:12px;font-weight:700;flex:none}
.dayboard .db-todayb.dim{opacity:.4;cursor:default}
body.db-dark .dayboard .db-todayb{border-color:#6FD5D4;color:#6FD5D4}
.dayboard .db-nottoday{margin:-6px 0 14px;background:#FFF6DA;border:1px solid #F3DF9A;color:#6B5200;border-radius:10px;padding:8px 12px;font-size:13px;font-weight:600;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.dayboard .db-nottoday[hidden]{display:none}
.dayboard .db-nottoday b{color:#6B5200}
.dayboard .db-nottoday a{margin-left:0;color:var(--db-b7);text-decoration:underline}
body.db-dark .dayboard .db-nottoday{background:#3a3212;border-color:#8a7420;color:#fff3c4}
body.db-dark .dayboard .db-nottoday b{color:#fff3c4}
@media (max-width:640px){
  .dayboard .db-dlong{display:none}.dayboard .db-dshort{display:inline}
  .dayboard .db-head .db-h1{font-size:24px}
}
/* Part 1: the At risk tile, from dashboard-246-mockup-v1's .risk rules. The height stays the four tiles' own;
   rows that do not fit go to Show all (dbFitTiles). The same in light and dark. */
.dayboard .db-hc.db-risk2{background:#C0412E;border:none;border-radius:16px;padding:18px;color:#fff;isolation:isolate}
.dayboard .db-hc.db-risk2::before,.dayboard .db-hc.db-risk2::after{content:"";position:absolute;border-radius:50%;border:26px solid rgba(255,255,255,.06);pointer-events:none;z-index:-1}
.dayboard .db-hc.db-risk2::before{width:260px;height:260px;right:-60px;top:-40px}
.dayboard .db-hc.db-risk2::after{width:220px;height:220px;left:40px;bottom:-110px;border-width:22px}
.dayboard .db-risk2 .db-rtop{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;flex:none}
.dayboard .db-risk2 .db-lab{font-size:13px;font-weight:700;color:#FFD9D2}
.dayboard .db-risk2 .db-num{font-size:52px;font-weight:800;line-height:1;letter-spacing:-.03em;margin:0;color:#fff}
/* Session 251, Part 3a: the large count sits left of the label, the definition directly under the label, the top-right
   corner empty. Stacking all three took 117px and left room for one row at 292px; side by side it is 52px and three fit. */
.dayboard .db-risk2 .db-rtl{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"num lab" "num def";column-gap:12px;align-items:center}
.dayboard .db-risk2 .db-rtl .db-lab{grid-area:lab;align-self:end}
.dayboard .db-risk2 .db-rtl .db-rdef{grid-area:def;align-self:start}
.dayboard .db-risk2 .db-rtl .db-num{grid-area:num}
/* Session 251, Part 3a: directly under the label, about 12px, in the tile's muted colour; the count stays large. */
.dayboard .db-risk2 .db-rdef{font-size:12px;font-weight:500;line-height:1.3;color:#FFD9D2;margin-top:2px}
.dayboard .db-risk2 .db-rrow{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.14);border-radius:10px;padding:7px 10px;margin-top:6px;font-size:13px;color:#fff;transition:background .12s,transform .12s;min-width:0}
.dayboard .db-risk2 .db-rrow:hover{background:rgba(255,255,255,.22);transform:translateX(2px)}
.dayboard .db-risk2 .db-rav{width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.22);display:grid;place-items:center;font-size:10px;font-weight:800;flex:none;color:#fff}
.dayboard .db-risk2 .db-rp{font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:48%;flex:0 1 auto;min-width:0}
.dayboard .db-risk2 .db-rd{color:#FFD9D2;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dayboard .db-risk2 .db-tp{border-radius:999px;padding:3px 10px;font-weight:800;font-size:12px;white-space:nowrap;flex:none}
.dayboard .db-risk2 .db-tp-w{background:#fff;color:#C0412E}
.dayboard .db-risk2 .db-tp-y{background:#FFD13A;color:#5A3A00}
.dayboard .db-risk2 .db-tp-dk{background:rgba(0,0,0,.28);color:#fff}
.dayboard .db-risk2 .db-rnote{display:flex;gap:10px;background:rgba(255,255,255,.14);border-radius:10px;padding:10px;margin-top:8px;font-size:13px;line-height:1.35;color:#fff;min-width:0}
.dayboard .db-risk2 .db-rnote .db-sl{width:22px;height:22px;border-radius:6px;background:#3F1A3F;display:grid;place-items:center;font-size:11px;font-weight:800;flex:none;color:#fff}
.dayboard .db-risk2 .db-rnote .db-rnb{min-width:0;flex:1}
.dayboard .db-risk2 .db-rnote .db-sbody{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dayboard .db-risk2 .db-rnote small{display:block;color:#FFD9D2;font-size:11px;margin-top:3px}
.dayboard .db-risk2 .db-rquiet{background:rgba(255,255,255,.14);border-radius:10px;padding:12px;margin-top:10px;font-weight:700;font-size:13.5px;color:#fff;line-height:1.35}
.dayboard .db-risk2 .db-addn{border:1.5px dashed rgba(255,255,255,.55);border-radius:999px;padding:6px 14px;font-size:12.5px;font-weight:700;color:#fff;background:transparent}
.dayboard .db-risk2 .db-addn:hover{background:rgba(255,255,255,.12)}
.dayboard .db-risk2 .db-showall{color:#fff}
.dayboard .db-risk2 .db-body{margin-top:2px}
body.db-dark .dayboard .db-hc.db-risk2{background:#C0412E;border:none}
.dayboard .db-drawer-risk .db-rrow{background:#C0412E}
.dayboard .db-drawer-risk .db-rnote{background:#C0412E}
/* Part 4: Shared cleans, its own card (dashboard-246-mockup-v1 .sc, .sch, .prog, .block, .wk, .sr, .bs). */
.dayboard .db-sc{background:var(--db-surface);border-radius:16px;box-shadow:var(--db-sh);overflow:hidden;border-top:5px solid #1D6E77;margin-top:16px}
.dayboard .db-sch{display:flex;align-items:center;gap:14px;padding:16px 18px;flex-wrap:wrap}
.dayboard .db-shic{width:40px;height:40px;border-radius:11px;background:#1D6E77;color:#fff;display:grid;place-items:center;flex:none}
.dayboard .db-sht{min-width:0;flex:1 1 300px}
.dayboard .db-sht h3{margin:0;font-size:18px;font-weight:800;color:var(--db-ink)}
.dayboard .db-shdesc{font-size:12.5px;color:var(--db-muted);margin-top:2px;max-width:640px}
.dayboard .db-shdesc b{color:var(--db-text)}
.dayboard .db-prog{margin-left:auto;min-width:220px;flex:0 1 260px}
.dayboard .db-progl{display:flex;justify-content:space-between;font-size:12px;font-weight:700;color:var(--db-ink);margin-bottom:5px}
.dayboard .db-progb{height:8px;border-radius:999px;background:var(--db-surface-2);overflow:hidden}
.dayboard .db-progb span{display:block;height:100%;background:linear-gradient(90deg,#1D6E77,#6FD5D4);border-radius:999px}
.dayboard .db-block{display:flex;gap:10px;align-items:center;margin:0 18px 12px;background:#FDF3E6;color:#9A4A0E;border-radius:10px;padding:9px 12px;font-size:13px;font-weight:600}
body.db-dark .dayboard .db-block{background:#3e2a14;color:#F2B272}
.dayboard .db-wk{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 18px;background:#F6F8F9;border-top:1px solid var(--db-line);border-bottom:1px solid var(--db-line);font-size:12.5px;font-weight:700;color:var(--db-ink)}
body.db-dark .dayboard .db-wk{background:#1a2c31}
.dayboard .db-wkst{font-size:11px;font-weight:700;border-radius:999px;padding:2px 9px}
.dayboard .db-wkst.pend{background:#FDE4E0;color:#C43D2B}
.dayboard .db-wkst.open{background:#E2F1F2;color:#1D6E77}
.dayboard .db-scrow{display:grid;grid-template-columns:64px minmax(0,1fr) 70px auto;gap:14px;align-items:center;padding:12px 18px;border-bottom:1px solid var(--db-surface-2);transition:background .12s,box-shadow .12s,opacity .25s}
.dayboard .db-scrow:hover{background:#FAFBFB;box-shadow:inset 3px 0 0 #FFD13A}
body.db-dark .dayboard .db-scrow:hover{background:#1a2c31}
.dayboard .db-scrow .db-shd{font-weight:700;color:var(--db-ink);font-size:13px;white-space:nowrap}
.dayboard .db-scrow .db-shp{min-width:0}
.dayboard .db-scrow .db-shp b{font-weight:700;color:var(--db-ink);overflow-wrap:anywhere}
.dayboard .db-scrow .db-shm{font-size:12px;color:var(--db-muted);margin-top:2px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.dayboard .db-who2{display:inline-flex;align-items:center;gap:4px;background:var(--db-surface-2);border-radius:999px;padding:2px 8px 2px 3px;font-size:11.5px;color:var(--db-ink);font-weight:600}
.dayboard .db-who2 i{width:18px;height:18px;border-radius:50%;background:#1D6E77;color:#fff;font-style:normal;font-size:8.5px;display:grid;place-items:center}
.dayboard .db-scrow .db-shh{font-weight:800;color:var(--db-ink);font-size:15px;text-align:right;white-space:nowrap}
.dayboard .db-scrow .db-shh small{display:block;font-size:10.5px;color:var(--db-muted);font-weight:600}
.dayboard .db-scrow .db-shb{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;align-items:center}
.dayboard .db-bs{border-radius:10px;padding:7px 12px;font-size:12.5px;font-weight:700;display:flex;flex-direction:column;align-items:center;line-height:1.2;min-width:112px;transition:transform .12s,box-shadow .12s}
.dayboard .db-bs small{font-size:10.5px;font-weight:600;opacity:.8}
.dayboard .db-bs.split{background:#E2F1F2;color:#0E363B;border:1.5px solid #9CCFD1}
.dayboard .db-bs.full{background:#FFF6DA;color:#5A3A00;border:1.5px solid #F3DF9A}
.dayboard .db-bs:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 10px rgba(14,54,59,.12)}
.dayboard .db-bs.chosen.split{background:#1D6E77;color:#fff;border-color:#1D6E77}
.dayboard .db-bs.chosen.full{background:#FFD13A;color:#0A3F45;border-color:#FFD13A}
.dayboard .db-bs:disabled{cursor:default}
.dayboard .db-scrow.done>div:not(.db-shb),.dayboard .db-scrow.done .db-bs{opacity:.55}
.dayboard .db-scrow.gone{opacity:0}
.dayboard .db-scf{padding:10px 18px;font-size:12px;color:var(--db-muted)}
.dayboard .db-sc-none{border-top-width:5px}
.dayboard .db-sc-none .db-empty-line{display:flex;align-items:center;gap:12px;padding:12px 18px;font-size:13.5px;color:var(--db-text)}
.dayboard .db-sc-none .db-shic{width:30px;height:30px;border-radius:9px}
@media (max-width:760px){
  .dayboard .db-scrow{grid-template-columns:54px minmax(0,1fr)}
  .dayboard .db-scrow .db-shh{text-align:left;grid-column:2/3}
  .dayboard .db-scrow .db-shb{grid-column:1/3;justify-content:flex-start}
  .dayboard .db-prog{margin-left:0;min-width:0;flex:1 1 100%}
}
/* Session 246, Part 1 follow-up: the four tiles took the mockup's 380px. Session 247, Part 2: back to 292px by default;
   dbTileHeight (dayboard.js) grows the row to what the At risk tile needs, up to 380px, all four the same. */
.dayboard .db-hc{height:292px}
.dayboard .db-hc .db-more{white-space:nowrap}
.dayboard .db-hc .db-showall{white-space:nowrap}
.dayboard .db-risk2 .db-addn{white-space:nowrap;padding:5px 12px}

/* Session 247, Part 3: the correction detail under an appointment row's issue line; it takes its own grid row across the
   text columns, and on a phone (the 30px + 1fr + auto layout) it stacks under the issue with nothing scrolling sideways. */
.dayboard .db-fdet{grid-column:2/-1;display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--db-text);min-width:0;margin-top:-4px}
.dayboard .db-ffig{display:flex;flex-wrap:wrap;gap:4px 14px;color:var(--db-muted)}
.dayboard .db-ffig b{color:var(--db-ink,inherit);font-weight:700}
.dayboard .db-fsen{overflow-wrap:anywhere}
@media (max-width:760px){ .dayboard .db-frow .db-fdet{grid-column:2/4;margin-top:0} }

/* Session 247, Part 4: Review decided, inside the Shared cleans card. Closes with Close or Esc, like the other lists. */
.dayboard .db-revlink{margin-left:auto;background:none;border:0;color:#1D6E77;font-weight:700;font-size:12.5px;text-decoration:underline;text-underline-offset:2px;cursor:pointer;padding:2px 0}
body.db-dark .dayboard .db-revlink{color:#6FD5D4}
.dayboard .db-scf{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dayboard .db-rev{border-top:1px solid var(--db-line)}
.dayboard .db-revh{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:10px;padding:12px 18px;background:var(--db-surface);border-bottom:1px solid var(--db-line)}
.dayboard .db-revh h4{margin:0;font-size:15px;color:var(--db-ink)}
.dayboard .db-esc{margin-left:auto;font-size:11px;color:var(--db-muted);border:1px solid var(--db-line);border-radius:6px;padding:2px 6px}
.dayboard .db-revclose{background:#1D6E77;color:#fff;border:0;border-radius:8px;padding:6px 12px;font-weight:700;font-size:12px;cursor:pointer}
.dayboard .db-revclose:hover{background:#124A50}
.dayboard .db-revsub,.dayboard .db-revnote{padding:10px 18px;font-size:12.5px;color:var(--db-muted)}
.dayboard .db-revch{font-size:11px;font-weight:800;border-radius:999px;padding:2px 8px}
.dayboard .db-revch.split{background:#E2F1F2;color:#0E363B} .dayboard .db-revch.full{background:#FFF6DA;color:#5A3A00}
.dayboard .db-revby{font-size:12px;color:var(--db-muted)}
.dayboard .db-revfz{font-weight:700;color:var(--db-ink);font-size:11.5px}
.dayboard .db-revlock{font-size:12px;font-weight:700;color:var(--db-muted);border:1px dashed var(--db-line-2);border-radius:8px;padding:6px 10px;white-space:nowrap}
.dayboard .db-wkst.paid{background:#E3F4EA;color:#1E6B3A}
.dayboard .db-revpaid{border-top:1px solid var(--db-line)}
.dayboard .db-revpaid summary{padding:12px 18px;font-size:13px;font-weight:700;color:var(--db-ink);cursor:pointer}
@media (max-width:760px){ .dayboard .db-revrow .db-shb{grid-column:1/-1;justify-content:flex-start} .dayboard .db-revrow .db-shh{grid-column:2/3;text-align:left} }

/* Session 247, Part 2: the quiet "Nothing at risk" line is held to two lines so the tile stays at 292px. */
.dayboard .db-risk2 .db-rquiet{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* Session 253, Part 5: the Linens tile (briefs/mh-linens-mockup-v2-dashboard-tile.html). A card under the four tiles,
   the mockup's own sizes: 14px radius, the standard shadow, 20px padding, a 38px pale-green icon square, a 44px orange
   number, rows split by a 1px rule, 12.5px pills. One line when nothing is urgent. */
.dayboard .db-ln{background:var(--db-surface,#fff);border-radius:14px;box-shadow:0 4px 14px 0 rgba(14,54,59,.08);padding:20px;margin:var(--db-gap,20px) 0;display:flex;flex-direction:column;gap:14px;font-size:14px;color:#4d545a}
.dayboard .db-ln-one{flex-direction:row;align-items:center;gap:14px;padding:14px 20px;flex-wrap:wrap}
.dayboard .db-lnhead{display:flex;align-items:center;gap:14px}
.dayboard .db-lnic{width:38px;height:38px;border-radius:10px;background:#e2f4ee;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.dayboard .db-lnk{font-weight:700;color:#16181a}
.dayboard .db-lnt{font-size:17px}
.dayboard .db-lncap{font-size:12.5px;color:#6b747b}
.dayboard .db-ln a{color:#1d6e77;font-weight:700;text-decoration:none;white-space:nowrap}
.dayboard .db-ln a:hover{text-decoration:underline}
.dayboard .db-lnopen{margin-left:auto}
.dayboard .db-lnbig{display:flex;align-items:baseline;gap:12px}
.dayboard .db-lnnum{font-size:44px;font-weight:800;letter-spacing:-.02em;color:#d96a18;line-height:1}
.dayboard .db-lnrow{display:flex;align-items:center;gap:14px;padding:12px 0;border-top:1px solid #dfe3e6}
.dayboard .db-lngrow{flex-grow:1;min-width:0}
.dayboard .db-lnp{display:inline-block;padding:4px 10px;border-radius:999px;font-size:12.5px;font-weight:600;white-space:nowrap}
.dayboard .db-lnp-or{background:#ffe8d6;color:#9a4a0e}.dayboard .db-lnp-am{background:#fdf0d8;color:#7a5010}.dayboard .db-lnp-te{background:#dceff0;color:#144d54}
body.db-dark .dayboard .db-lnk{color:#E8F1F2}
body.db-dark .dayboard .db-lncap{color:#A9BCC0}
body.db-dark .dayboard .db-ln a{color:#6FD5D4}
body.db-dark .dayboard .db-lnrow{border-top-color:rgba(255,255,255,.12)}
@media (max-width:640px){ .dayboard .db-lnrow{flex-wrap:wrap} .dayboard .db-lngrow{flex-basis:100%;order:3} }

/* ---- Session 265, Part 5: the Unassigned tile, orange as a to-do, beside At risk and Late check-in. Five tiles
   when it has rows; at zero it leaves the band (four tiles again) and one quiet line under the band says so. ---- */
/* Five in a row from 1600px. Between 1201 and 1599 five in a row leaves each tile about 214px at 1440 (At risk names cut
   to three letters, the Communications period buttons cut off), so two rows instead: At risk, Unassigned and Late
   check-in, then Extra care and Communications. At 1200 and under, two columns with Communications across both; a
   phone, one. */
.dayboard .db-band.db-band5{grid-template-columns:repeat(5,minmax(0,1fr))}
@media (min-width:1201px) and (max-width:1599px){
  .dayboard .db-band.db-band5{grid-template-columns:repeat(6,minmax(0,1fr))}
  .dayboard .db-band.db-band5>#dbTile-risk,.dayboard .db-band.db-band5>#dbTile-unas,.dayboard .db-band.db-band5>#dbTile-late{grid-column:span 2}
  .dayboard .db-band.db-band5>#dbTile-care,.dayboard .db-band.db-band5>#dbComms{grid-column:span 3}
}
@media (max-width:1200px){.dayboard .db-band.db-band5{grid-template-columns:repeat(2,minmax(0,1fr))}.dayboard .db-band.db-band5>#dbComms{grid-column:1/-1}}
@media (max-width:640px){.dayboard .db-band.db-band5{grid-template-columns:1fr}.dayboard .db-band.db-band5>#dbComms{grid-column:auto}}
.dayboard .db-untile{background:linear-gradient(180deg,var(--db-o1),var(--db-surface) 55%);border-color:#F0C9A6}
.dayboard .db-untile .db-num{color:var(--db-on-o)}
.dayboard .db-urow .db-av.db-av-q{background:var(--db-o1);color:var(--db-on-o);box-shadow:inset 0 0 0 1.5px var(--db-o5)}
.dayboard .db-urow .db-m{width:auto;min-width:38px;color:var(--db-on-o);white-space:nowrap}
.dayboard .db-unas-none{margin:calc(var(--db-gap) * -.25) 0 var(--db-gap)}
.dayboard .db-fic.db-fic-ok{background:var(--db-g1);color:var(--db-on-g)}
:is(:root[data-theme="dark"],body.db-dark) .dayboard .db-untile{border-color:var(--db-line-2)}
body.db-dark .dayboard .db-untile .db-num{color:#FFB27A !important}
body.db-dark .dayboard .db-urow .db-m,body.db-dark .dayboard .db-urow .db-av.db-av-q{color:#FFB27A}

/* ---- Session 266, Part 1: Unassigned as a slim full-width strip under Linens, in the Linens strip's one-line style. Orange
   while anything is unassigned (#ffe8d6, #9a4a0e, an orange icon square), a quiet grey line at zero. The top row is back to
   four tiles (the session 265 five-tile rules above apply only while DB_UNAS_AS_TILE brings the tile back). ---- */
.dayboard .db-unstrip{background:#ffe8d6;color:#9a4a0e;box-shadow:0 4px 14px 0 rgba(154,74,14,.10)}
.dayboard .db-unstrip .db-lnk,.dayboard .db-unstrip .db-lncap{color:#9a4a0e}
.dayboard .db-unstrip .db-lncap{font-size:13px}
.dayboard .db-unstrip .db-lncap b{font-weight:800}
.dayboard .db-lnic.db-unic{background:#d96a18}
.dayboard .db-lnic.db-unic-zero{background:#eceff1}
.dayboard .db-unstrip-zero{background:transparent;box-shadow:none;border:1px solid var(--db-line-2,#dfe3e6);padding:10px 20px}
.dayboard .db-unstrip-zero .db-lnk{color:#4d545a}
.dayboard .db-unstrip-zero .db-lnic{width:30px;height:30px;border-radius:8px}
.dayboard .db-unall{background:none;border:0;font:inherit;font-weight:700;color:#9a4a0e;cursor:pointer;padding:6px 2px;white-space:nowrap;text-decoration:underline;text-underline-offset:3px}
.dayboard .db-unall:hover{color:#6e3409}
.dayboard .db-unall:focus-visible{outline:2px solid #9a4a0e;outline-offset:2px;border-radius:4px}
@media (max-width:640px){ .dayboard .db-unall{min-height:44px} }
body.db-dark .dayboard .db-unstrip{background:rgba(217,106,24,.20);box-shadow:none}
body.db-dark .dayboard .db-unstrip .db-lnk,body.db-dark .dayboard .db-unstrip .db-lncap,body.db-dark .dayboard .db-unall{color:#FFB27A}
body.db-dark .dayboard .db-unstrip-zero{border-color:rgba(255,255,255,.12)}
body.db-dark .dayboard .db-unstrip-zero .db-lnk{color:#E8F1F2}
body.db-dark .dayboard .db-lnic.db-unic-zero{background:rgba(255,255,255,.08)}

/* ---- Session 266, Part 2: the top-row tiles name a property by its own name, which is longer than the short name, so a
   long one wraps to two lines instead of being cut off (Extra care, At risk, Late check-in, Unassigned rows). ---- */
.dayboard .db-crow{align-items:flex-start}
.dayboard .db-crow s{margin-top:5px}
.dayboard .db-crow b,.dayboard .db-lrow .db-who b,.dayboard .db-risk2 .db-rp,.dayboard .db-lrow .db-who s{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;line-height:1.3}
.dayboard .db-crow span{margin-top:1px}
/* At risk: the property's name across the row (up to two lines), and under it the state ("not started, Veronica") with the
   time-left pill at its right. Side by side, a full name left the state no room at 1440 and on a phone, and the pill cut
   the name to about 100px at 1440. */
.dayboard .db-risk2 .db-rwho{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.dayboard .db-risk2 .db-rwho .db-rp{max-width:none;flex:none}
.dayboard .db-risk2 .db-rl2b{display:flex;align-items:center;gap:8px;min-width:0}
.dayboard .db-risk2 .db-rl2b .db-rd{flex:1;font-size:11.5px;line-height:1.3}
.dayboard .db-risk2 .db-rl2b .db-tp{padding:2px 9px;font-size:11.5px}

/* ---- session 303: the deep clean status icon (dayboard.js dbDeepCleanHtml) ----
   A disc before the property name: red past due, yellow due soon, green on track, grey no deep clean yet. Every disc is at
   least 3:1 against the card (the yellow one by its dark edge), and its words are the hover text and the screen reader's. */
.dayboard .db-ic.db-dc{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;gap:0;border-radius:50%;vertical-align:-4px;margin-right:5px;box-sizing:border-box;color:#fff;flex:none}
.dayboard .db-ic.db-dc svg{width:12px;height:12px;fill:currentColor;stroke:none}
.dayboard .db-ic.db-dc:focus-visible{box-shadow:none;outline:2px solid var(--db-b3);outline-offset:1px}
.dayboard .db-ic.dc-past_due{background:var(--db-r5)}
.dayboard .db-ic.dc-due_soon{background:#f5c518;color:#3d2e00;box-shadow:inset 0 0 0 1.5px #8a6a00}
.dayboard .db-ic.dc-on_track{background:#2e9c7c}
.dayboard .db-ic.dc-none{background:#79828a}
.dayboard .db-jc .db-ic.db-dc{height:18px}
/* The name is never cut: it takes the lines it needs (it was held to two lines; the icon must not push a word out). */
.dayboard .db-jc .db-nm{height:auto;min-height:32px;overflow:visible;display:block;-webkit-line-clamp:unset}
.dayboard .db-mini .db-ic.db-dc{width:16px;height:16px;margin-right:0}
.dayboard .db-mini .db-ic.db-dc svg{width:11px;height:11px}
.dayboard .db-mini .db-p{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
.dayboard .db-list td.db-lp .db-ic.db-dc{vertical-align:-4px}

/* Session 321: a Quality Check on the board opens its own page. */
.dayboard .db-qcopen{font-size:11px;font-weight:700;color:var(--db-b7);text-decoration:none;white-space:nowrap;flex:none;margin-left:auto}
.dayboard .db-qcopen:hover{text-decoration:underline}
.dayboard .db-qcmini{font-size:10.5px;font-weight:700;color:var(--db-b7);text-decoration:none;flex:none;padding:1px 5px;border:1px solid currentColor;border-radius:5px}
:is(:root[data-theme="dark"],body.db-dark) .dayboard .db-qcopen, :is(:root[data-theme="dark"],body.db-dark) .dayboard .db-qcmini{color:var(--db-b3)}

/* ---- Session 330: "Switched to Deep Clean" as a row like Linens and Unassigned (Daniel, 12 Oct 2026: "Add this as something like
   the linens row or unassigned row. Make sure it's obvious that action needs to be taken but I don't want it to overwhelm the
   page."). The Linens row's one-line card (.db-ln-one) on white, an amber icon square and an amber "Action needed" pill (the
   board's amber, --db-a6 #b7791f, --db-a1 #fdf0d8, --db-on-a #7a5312), folded by default; Show all opens the list under it.
   Nothing waiting: the quiet bordered line (as Unassigned at zero). ---- */
.dayboard .db-dcstrip{ border-left:4px solid var(--db-a6,#b7791f) }
.dayboard .db-lnic.db-dcic{ background:var(--db-a6,#b7791f) }
.dayboard .db-lnic.db-dcic-zero{ background:#eceff1; width:30px; height:30px; border-radius:8px }
.dayboard .db-dcstrip-zero{ background:transparent; box-shadow:none; border:1px solid var(--db-line-2,#dfe3e6); padding:10px 20px }
.dayboard .db-dcstrip-zero .db-lnk{ color:#4d545a }
.dayboard .db-dcneed{ display:inline-block; padding:3px 10px; border-radius:999px; font-size:12.5px; font-weight:700; background:var(--db-a1,#fdf0d8); color:var(--db-on-a,#7a5312); white-space:nowrap }
.dayboard .db-dcstrip .db-lncap{ font-size:13px; color:#4d545a }
.dayboard .db-dcstrip .db-lncap b{ font-weight:800; color:#16181a }
.dayboard .db-dcall{ background:none; border:0; font:inherit; font-weight:700; color:#1d6e77; cursor:pointer; padding:6px 2px; white-space:nowrap; text-decoration:underline; text-underline-offset:3px }
.dayboard .db-dcall:focus-visible{ outline:2px solid #1d6e77; outline-offset:2px; border-radius:4px }
.dayboard .db-dclist{ margin-top:calc(var(--db-gap,20px) * -.6); padding:6px 20px 12px; gap:0 }
.dayboard .db-dcnote{ font-size:12.5px; color:#6b747b; padding:8px 0 10px }
.dayboard .db-dcrow{ display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1.1fr) minmax(0,1.6fr) 104px 74px 150px minmax(170px,auto); gap:12px; align-items:center; padding:10px 0; border-top:1px solid #dfe3e6; font-size:13.5px; color:#4d545a }
.dayboard .db-dcrow.db-dchead{ font-size:12px; font-weight:600; color:#6b747b; padding:6px 0 }
.dayboard .db-dcrow > *{ min-width:0; overflow-wrap:anywhere }
.dayboard .db-dcname{ font-weight:700; color:#16181a !important }
.dayboard .db-dcmut{ color:#8a9297 }
.dayboard .db-dcacts{ display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end; align-items:center }
.dayboard .db-dcby{ font-size:12px; color:#6b747b }
.dayboard .db-dcbtn{ font:inherit; font-size:13px; font-weight:700; height:34px; padding:0 14px; border-radius:10px; border:1px solid #c9d0d4; background:#fff; color:#16181a; cursor:pointer; white-space:nowrap }
.dayboard .db-dcbtn.db-dcgo{ background:linear-gradient(#ffd13a,#f5c21c); border:0 }
.dayboard .db-dcbtn:focus-visible{ outline:2px solid #1d6e77; outline-offset:2px }
.dayboard .db-dcrev{ grid-column:1 / -1; display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:10px }
.dayboard .db-dcin{ height:34px; border:1px solid #c9d0d4; border-radius:10px; padding:0 10px; font:inherit; font-size:13.5px; min-width:0 }
.dayboard .db-dcgroup{ font-size:12.5px; font-weight:700; color:var(--db-on-a,#7a5312); padding:14px 0 6px; border-top:1px solid #dfe3e6 }
body.db-dark .dayboard .db-dcstrip .db-lncap, body.db-dark .dayboard .db-dcrow{ color:#A9BCC0 }
body.db-dark .dayboard .db-dcstrip .db-lncap b, body.db-dark .dayboard .db-dcname{ color:#E8F1F2 !important }
body.db-dark .dayboard .db-dcrow, body.db-dark .dayboard .db-dcgroup{ border-top-color:rgba(255,255,255,.12) }
body.db-dark .dayboard .db-dcall{ color:#6FD5D4 }
body.db-dark .dayboard .db-dcneed{ background:rgba(183,121,31,.25); color:#F2C879 }
body.db-dark .dayboard .db-dcstrip-zero{ border-color:rgba(255,255,255,.12) }
body.db-dark .dayboard .db-dcstrip-zero .db-lnk{ color:#E8F1F2 }
@media (max-width:1100px){ .dayboard .db-dcrow{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); } .dayboard .db-dcrow.db-dchead{ display:none } .dayboard .db-dcacts{ justify-content:flex-start; grid-column:1 / -1 } }
.dayboard .db-dcrow a{ white-space:normal }

/* ---- Session 331: "Pilot cleans to close in Resort", the same kind of row as Switched to Deep Clean (its classes), six columns:
   property, client, address, who checked out and when, the day, Open in Resort. ---- */
.dayboard .db-dcrow.db-pcrow{ grid-template-columns:minmax(0,1.25fr) minmax(0,1.1fr) minmax(0,1.6fr) minmax(0,1.3fr) 120px minmax(140px,auto) }
/* Session 402: Calendar links not working (calendar.js calDashDraw): the home, the client and email, the link and why, since when, Open its calendar links. */
.dayboard .db-dcrow.db-clrow{ grid-template-columns:minmax(0,1.25fr) minmax(0,1.3fr) minmax(0,1.6fr) minmax(0,1.1fr) minmax(170px,auto) }
@media (max-width:1100px){ .dayboard .db-dcrow.db-clrow{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); } }
.dayboard a.db-dcbtn.db-pcgo{ display:inline-flex; align-items:center; text-decoration:none }
@media (max-width:1100px){ .dayboard .db-dcrow.db-pcrow{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); } }
/* Session 338: Getting in to check, five cells (the pilot row's way). */
.dayboard .db-dcrow.db-girow{ grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1.6fr) minmax(0,1.4fr) minmax(150px,auto) }
@media (max-width:1100px){ .dayboard .db-dcrow.db-girow{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); } }
.dayboard .db-gino{ cursor:pointer; font:inherit }
/* Session 343: Not checked out, the first action row (checklists.js ckNoDraw), in the board's red (--db-r5 #c43d2b, --db-r1 #fbe3df), open
   while anyone is on it: cleaner, address, checked in, expected out (and minutes over), her text, and Open / Check her out / Add time. */
.dayboard .db-nostrip{ border-left-color:var(--db-r5,#c43d2b) }
.dayboard .db-lnic.db-noic{ background:var(--db-r5,#c43d2b) }
.dayboard .db-dcneed.db-noneed{ background:var(--db-r1,#fbe3df); color:#8f2a1d }
.dayboard .db-dcrow.db-norow{ grid-template-columns:minmax(0,1fr) minmax(0,1.6fr) 120px 120px minmax(0,1.3fr) minmax(250px,auto) }
.dayboard .db-noover{ color:#a3352a; font-weight:700 }
.dayboard .db-notext{ font-size:12.5px }
body.db-dark .dayboard .db-dcneed.db-noneed{ background:rgba(196,61,43,.28); color:#ffb4a8 }
body.db-dark .dayboard .db-noover{ color:#ff9c8f }
@media (max-width:1100px){ .dayboard .db-dcrow.db-norow{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); } }

/* ---- Session 344 (briefs/session-344-brief.md A): five tiles, Needs you first. Daniel, 15 October 2026: "I like the five tiles. I like the
   yellow of the Needs You." The same size, shape, padding and type as the other four (.db-hc); a soft yellow (#FFF5CC) and the brand
   yellow icon square (--yellow, #FFD13A) with a dark icon. The band measures its own width (a container query on .db-bandwrap): five equal
   columns when it is at least 1080px wide (1440: 1132px, measured), three and two (Needs you, At risk, Late check-in, then Extra
   care and Communications, no lone tile) down to 620px, one on a phone. All five keep one height (dbTileHeight). ---- */
.dayboard .db-bandwrap{container-type:inline-size;container-name:dbband}
.dayboard .db-band.db-band-y5{grid-template-columns:repeat(5,minmax(0,1fr))}
@container dbband (max-width:1079.98px){
  .dayboard .db-band.db-band-y5{grid-template-columns:repeat(6,minmax(0,1fr))}
  .dayboard .db-band.db-band-y5>.db-hc{grid-column:span 2}
  .dayboard .db-band.db-band-y5>#dbTile-care,.dayboard .db-band.db-band-y5>#dbComms{grid-column:span 3}
}
@container dbband (max-width:619.98px){
  .dayboard .db-band.db-band-y5{grid-template-columns:minmax(0,1fr)}
  .dayboard .db-band.db-band-y5>.db-hc,.dayboard .db-band.db-band-y5>#dbTile-care,.dayboard .db-band.db-band-y5>#dbComms{grid-column:auto}
}
.dayboard .db-hc.db-needs{background:#FFF5CC;border-color:#F3DF9A}
.dayboard .db-needs .db-lab{color:#7A5312}
.dayboard .db-needs .db-nsq{width:22px;height:22px;border-radius:6px;background:var(--yellow,#FFD13A);color:#14171A;display:inline-flex;align-items:center;justify-content:center;flex:none}
.dayboard .db-needs .db-num{color:var(--db-ink)}
.dayboard .db-needs .db-numsub{font-size:13px;font-weight:600;color:#7A5312;margin-left:7px;letter-spacing:0}
.dayboard .db-needs .db-def{color:#7A6A3A}
.dayboard .db-needs .db-nrow{display:block;margin-top:6px;padding:6px 9px;border-radius:9px;background:rgba(255,255,255,.72);color:var(--db-ink);text-decoration:none;border:1px solid rgba(183,121,31,.18);transition:background .12s,box-shadow .12s}
.dayboard .db-needs .db-nrow:hover{background:#fff;box-shadow:inset 3px 0 0 #B7791F}
.dayboard .db-needs .db-nrow:focus-visible{outline:2px solid var(--db-b5);outline-offset:1px}
.dayboard .db-needs .db-nwho{display:block;min-width:0}
.dayboard .db-needs .db-nwho b{display:block;font-size:12.5px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:underline;text-decoration-color:rgba(20,23,26,.25);text-underline-offset:2px}
.dayboard .db-needs .db-nwho s{display:block;text-decoration:none;font-size:11px;color:var(--db-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dayboard .db-needs .db-nwhat{display:block;font-size:11.5px;font-weight:650;color:#9A4A0E;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dayboard .db-drawer-needs .db-nrow{display:block;padding:8px 10px;border-radius:9px;background:#FFF5CC;color:var(--db-ink);text-decoration:none;border:1px solid #F3DF9A}
.dayboard .db-drawer-needs .db-nrow:hover{box-shadow:inset 3px 0 0 #B7791F}
.dayboard .db-drawer-needs .db-nwho{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.dayboard .db-drawer-needs .db-nwho s{text-decoration:none;font-size:12px;color:var(--db-muted)}
.dayboard .db-drawer-needs .db-nwhat{display:block;font-size:12px;font-weight:650;color:#9A4A0E;margin-top:2px}
:is(:root[data-theme="dark"],body.db-dark) .dayboard .db-hc.db-needs{background:#3A3312;border-color:#5C4E1C}
:is(:root[data-theme="dark"],body.db-dark) .dayboard .db-needs .db-lab,:is(:root[data-theme="dark"],body.db-dark) .dayboard .db-needs .db-numsub,:is(:root[data-theme="dark"],body.db-dark) .dayboard .db-needs .db-def{color:#F3DF9A}
:is(:root[data-theme="dark"],body.db-dark) .dayboard .db-needs .db-nrow{background:rgba(255,255,255,.06);border-color:rgba(243,223,154,.18)}
:is(:root[data-theme="dark"],body.db-dark) .dayboard .db-needs .db-nwhat{color:#FFB27A}

/* ---- Session 344 (B): Field team and Day notes, one row under the cards, two equal halves of one height; under about 1100px they stack,
   Field team first. The #day-notes card is unchanged (its purple header, FROM SLACK, the notes, the how-to-post line). ---- */
.s-dash .db-teamrow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin:16px 0;align-items:stretch}
.s-dash .db-teamrow>.dayboard{display:flex;flex-direction:column;min-width:0}
.s-dash .db-teamrow>.dayboard>section,.s-dash .db-teamrow>.dayboard>.db-slack{flex:1 1 auto}
.s-dash .db-teamrow .db-slack{margin:0}
@media (max-width:1100px){.s-dash .db-teamrow{grid-template-columns:minmax(0,1fr)}}
.dayboard .ft-card{background:var(--db-surface);border:1px solid var(--db-line-2);border-radius:14px;box-shadow:var(--db-sh);padding:14px 16px 16px;color:var(--db-text)}
.dayboard .ft-head{display:flex;gap:12px;align-items:flex-start}
.dayboard .ft-ic{width:40px;height:40px;border-radius:10px;background:var(--db-b5);color:#fff;display:inline-flex;align-items:center;justify-content:center;flex:none}
.dayboard .ft-ht{flex:1;min-width:0}
.dayboard .ft-ht h3{margin:0;font-size:18px;font-weight:800;color:var(--db-ink);letter-spacing:-.01em}
.dayboard .ft-qc{font-size:12.5px;color:var(--db-muted);margin-top:2px}
.dayboard .ft-bar{height:6px;border-radius:999px;background:var(--db-surface-2);margin-top:6px;overflow:hidden;max-width:280px}
.dayboard .ft-bar i{display:block;height:100%;background:var(--db-g6);border-radius:999px}
.dayboard .ft-link{font-weight:650;font-size:13px;color:var(--db-b5);text-decoration:underline;text-underline-offset:2px;white-space:nowrap;margin-top:2px}
.dayboard .ft-link:hover{color:var(--db-b7)}
.dayboard .ft-link:focus-visible{outline:2px solid var(--db-b5);outline-offset:2px;border-radius:4px}
.dayboard .ft-people{margin-top:12px;display:flex;flex-direction:column;gap:12px}
.dayboard .ft-person{border-top:1px solid var(--db-surface-2);padding-top:10px}
.dayboard .ft-ph{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dayboard .ft-ph b{font-size:14px;color:var(--db-ink)}
.dayboard .ft-pill{font-size:11px;font-weight:700;border-radius:999px;padding:2px 9px;white-space:nowrap}
.dayboard .ft-p-now{background:var(--db-b5);color:#fff}
.dayboard .ft-p-work{background:var(--db-b1);color:var(--db-b7)}
.dayboard .ft-p-done{background:var(--db-g1);color:var(--db-on-g)}
.dayboard .ft-p-none{background:var(--db-surface-2);color:var(--db-muted)}
.dayboard .ft-left{margin-left:auto;font-size:12px;color:var(--db-muted);font-weight:600;white-space:nowrap}
.dayboard .ft-line{font-size:12.5px;color:var(--db-text);margin-top:4px;line-height:1.4}
.dayboard .ft-strip{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.dayboard .ft-stop{display:flex;flex-direction:column;width:98px;min-width:0;border-radius:8px;padding:5px 7px;font-size:11px;line-height:1.25;border:1px solid var(--db-line-2);background:var(--db-surface);color:var(--db-text);cursor:default}
.dayboard .ft-stop i{font-style:normal;font-weight:700;color:var(--db-ink)}
.dayboard .ft-stop span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dayboard .ft-stop.ft-done{background:var(--db-g1);border-color:#BFE3D4}
.dayboard .ft-stop.ft-skip{background:var(--db-surface-2);color:var(--db-muted)}
.dayboard .ft-stop.ft-now{background:var(--db-b5);border-color:var(--db-b5);color:#fff}
.dayboard .ft-stop.ft-now i{color:#fff}
.dayboard .ft-stop:focus-visible{outline:2px solid var(--db-b5);outline-offset:2px}
.dayboard .ft-none{font-size:12.5px;color:var(--db-muted);padding:6px 0}
@media (max-width:640px){.dayboard .ft-stop{width:calc(33.333% - 4px)}}
/* Session 353 (briefs/session-353-brief.md Part 3, the Dashboard mockup): the stops five across in route order, each "[n]. Est [time]", the
   name and what happened (Done green near the estimate, amber well after; Not started white with an orange edge once past due; Here [time]);
   the person's line beside the name; "N stops left, past due" in orange; a small map that opens the schedule's Day view. */
.dayboard .ft-head .ft-thumb{display:flex;align-items:center;gap:10px;padding:6px 12px 6px 6px;border-radius:12px;background:var(--pa-grey);color:var(--pa-teal-900);text-decoration:none;font-size:13px;font-weight:700;flex:none}
.dayboard .ft-head .ft-thumb svg{display:block;border-radius:8px}
.dayboard .ft-head .ft-thumb:hover{background:var(--pa-teal-100);text-decoration:underline}
.dayboard .ft-head .ft-thumb:focus-visible{outline:2px solid var(--db-b5);outline-offset:2px}
.dayboard .ft-ph .ft-line{margin-top:0;font-size:12.5px;color:var(--pa-text);flex:1 1 220px;min-width:0}
.dayboard .ft-left.is-due{background:#FFE8D6;color:#9A4A0E;border-radius:999px;padding:2px 10px}
.dayboard .ft-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.dayboard .ft-stop{width:auto;border-radius:10px;padding:8px 10px;border:0;background:var(--pa-page);font-size:12px}
.dayboard .ft-stop i{font-size:12px}
.dayboard .ft-stop span{color:var(--pa-text);margin-top:2px}
.dayboard .ft-stop em{display:block;font-style:normal;font-size:11.5px;font-weight:600;margin-top:3px;color:var(--pa-muted)}
.dayboard .ft-stop.ft-done{background:var(--pa-green-bg)} .dayboard .ft-stop.ft-done em{color:var(--pa-green-text)}
.dayboard .ft-stop.ft-late{background:var(--pa-amber-bg)} .dayboard .ft-stop.ft-late em{color:var(--pa-amber-text)}
.dayboard .ft-stop.ft-here{background:var(--pa-teal-100)} .dayboard .ft-stop.ft-here em{color:var(--pa-teal-900)}
.dayboard .ft-stop.ft-due{background:#fff;border:2px solid #FF8A33;padding:6px 8px} .dayboard .ft-stop.ft-due em{color:#9A4A0E}
.dayboard .ft-stop.ft-skip em{color:var(--pa-muted)}
.dayboard .ft-key{display:flex;gap:6px 14px;flex-wrap:wrap;font-size:11.5px;color:var(--pa-muted);margin-top:12px}
@media (max-width:640px){.dayboard .ft-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.dayboard .ft-head{flex-wrap:wrap}}
/* Session 344: five across, a tile is about 214px at 1440. Communications' Today, Week and Month buttons drop under its label when they
   no longer fit beside it (they were cut off); nothing else in the tile changes. */
.dayboard .db-band-y5 .db-comms .db-lab{flex-wrap:wrap;row-gap:5px}
.dayboard .db-band-y5 .db-comms .db-num{margin-top:3px}
.dayboard .db-band-y5 .db-comms .db-w{margin-top:5px}
.dayboard .db-band-y5 .db-comms .db-k{margin:3px 0 2px}
.dayboard .db-band-y5 .db-comms .db-cm{padding:1px 0}
.dayboard .db-band-y5 .db-comms .db-more{padding-top:4px}

/* Session 370: "Left to close out: Office inspection: 3 questions · Mark reviewed" on a clean graded in the Hub (dbCloseOutHtml) */
.dayboard .db-close{ display:block; margin-top:6px; font-size:12px; line-height:16px; font-weight:700; color:var(--warn-text); text-decoration:underline; text-underline-offset:2px }
.dayboard .db-close:hover{ color:#5f3e00 }
.dayboard .db-close:focus-visible{ outline:2px solid var(--warn-text); outline-offset:2px; border-radius:3px }
.dayboard .db-pcleft{ font-size:12px; font-weight:700; color:var(--warn-text); text-decoration:underline }
