/* WAVHub Accounting additions on top of the shared Sales Tools design system (app.css + theme-3d.css). */

/* Layout helpers */
.grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.grow { flex: 1; min-width: 0; }
.card-f { display: flex; align-items: center; gap: 8px; padding: 12px 18px; border-top: 1px solid var(--border); }
.card > .toolbar { padding: 14px 16px 0; }
.form.one { grid-template-columns: minmax(0, 1fr); }
.btn.block { width: 100%; justify-content: center; }
.type-ico.big { width: 56px; height: 56px; border-radius: 14px; }
.type-ico.big svg { width: 28px; height: 28px; }

/* Search inside toolbars */
.search-in { position: relative; display: flex; align-items: center; }
.search-in svg { position: absolute; left: 10px; width: 16px; height: 16px; color: var(--muted); pointer-events: none; }
.search-in input { padding-left: 32px; width: 280px; }

/* Tables */
table.t tr.archived td { opacity: .55; }
table.t td.mono, .mono { font-variant-numeric: tabular-nums; }
.chg { margin-top: 4px; font-size: 12px; line-height: 1.55; }
.chg > div { overflow-wrap: anywhere; }

/* KPI tiles */
a.kpi.link { display: block; color: inherit; text-decoration: none; }
a.kpi.link:hover { border-color: var(--brand); }
.kpi.pending { background: repeating-linear-gradient(-45deg, var(--card), var(--card) 10px, var(--surface-2) 10px, var(--surface-2) 20px); }
.kpi.pending .val { color: var(--border-2); }
.kpi.pending .ico { background: var(--surface-3); color: var(--muted); }

/* Setup checklist */
.card > .progress { margin: 12px 18px 4px; }
.progress > span { display: block; height: 100%; background: var(--brand-grad); border-radius: 6px; transition: width .4s; }
.setup-list { padding: 6px 8px 10px; }
.setup-item { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 8px; color: var(--text); text-decoration: none; }
.setup-item:hover { background: var(--hover); text-decoration: none; }
.setup-item svg { width: 18px; height: 18px; color: var(--border-2); flex: none; }
.setup-item.done { color: var(--muted); text-decoration: line-through; }
.setup-item.done svg { color: var(--ok); }
.setup-item .go { margin-left: auto; color: var(--muted); }

/* Simple lists inside cards */
.card .list { padding: 4px 0; }
.row-link { display: flex; align-items: center; gap: 10px; padding: 10px 18px; border-bottom: 1px solid var(--border); color: var(--text); text-decoration: none; }
.row-link:last-child { border-bottom: 0; }
a.row-link:hover { background: var(--hover); text-decoration: none; }
.row-link > svg { width: 16px; height: 16px; flex: none; }
.row-link .num { font-weight: 700; font-variant-numeric: tabular-nums; }

/* Venue group cards */
.group-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.group-card { padding: 16px; display: flex; flex-direction: column; gap: 12px; }
.group-card.archived { opacity: .6; }
.gc-top { display: flex; gap: 12px; align-items: center; }
.gc-notes { margin: 0; }
.gc-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; text-align: center; background: var(--surface-2); border-radius: 10px; padding: 10px 6px; }
.gc-stats b { display: block; font-size: 18px; font-variant-numeric: tabular-nums; }
.gc-stats span { font-size: 11px; color: var(--muted); }

/* Import wizard */
.wiz-steps { display: flex; gap: 6px; flex-wrap: wrap; }
.wiz-steps span { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted); padding: 3px 10px 3px 4px; border-radius: 20px; background: var(--surface-3); }
.wiz-steps b { width: 20px; height: 20px; border-radius: 50%; display: grid; place-items: center; background: var(--card); font-size: 11px; }
.wiz-steps span.on { background: var(--brand-100); color: var(--text); font-weight: 650; }
.wiz-steps span.on b { background: var(--brand); color: var(--on-brand); }
.wiz-steps span.done b { background: var(--ok); color: #fff; }
.seg button { background: var(--card); border: 0; border-right: 1px solid var(--border); padding: 9px 16px; font: inherit; font-weight: 600; color: var(--text-2); cursor: pointer; display: inline-flex; align-items: center; gap: 7px; }
.seg button:last-child { border-right: 0; }
.seg button svg { width: 16px; height: 16px; }
.seg button.on { background: var(--brand); color: var(--on-brand); }
.dropzone { border: 2px dashed var(--border-2); border-radius: 14px; padding: 34px 20px; text-align: center; cursor: pointer; background: var(--surface-2); display: flex; flex-direction: column; align-items: center; gap: 6px; transition: border-color .15s, background .15s; }
.dropzone:hover, .dropzone.over { border-color: var(--brand); background: var(--brand-50); }
.dropzone svg { width: 36px; height: 36px; color: var(--brand-strong, var(--brand)); }
.map-table select { min-width: 220px; }

/* Users */
.role-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.role-card { background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 14px; }
.role-card > div { display: flex; align-items: center; justify-content: space-between; }
.role-card .n { font-size: 20px; font-weight: 800; font-variant-numeric: tabular-nums; }
.role-card p { margin: 8px 0 0; font-size: 12.5px; color: var(--muted); }

/* Settings: EWT table */
.ewt-table input { width: 100%; }

@media (max-width: 960px) {
  .grid-2 { grid-template-columns: minmax(0, 1fr); }
  .search-in input { width: 100%; }
  .search-in { flex: 1 1 100%; }
}

/* ---- Revenue streams: one validated categorical slot each (dataviz reference palette, slots 1–4) ---- */
:root { --s-pa: #2a78d6; --s-after: #eb6834; --s-prog: #1baf7a; --s-sub: #eda100; }
:root[data-theme="dark"] { --s-pa: #3987e5; --s-after: #d95926; --s-prog: #199e70; --s-sub: #c98500; }
.stream-tag { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; color: var(--text-2); white-space: nowrap; }
.stream-tag svg { width: 14px; height: 14px; color: var(--c); }
.stream-tag::before { content: ''; width: 8px; height: 8px; border-radius: 2px; background: var(--c); }
.stream-tag svg { display: none; }
.legend { display: flex; gap: 14px; flex-wrap: wrap; font-size: 12px; color: var(--text-2); }
.legend span { display: inline-flex; align-items: center; gap: 6px; }
.legend i { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }
.chart-box { position: relative; height: 260px; }

/* Contracts */
.ref { font-variant-numeric: tabular-nums; font-weight: 700; }
table.t td.money, table.t th.money { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
table.t tfoot td { font-weight: 700; border-top: 2px solid var(--border); }
.neg { color: var(--bad); }
.draft-banner { border: 1px dashed var(--border-2); }
.detail-head { display: flex; gap: 16px; align-items: flex-start; flex-wrap: wrap; margin-bottom: 18px; }
.detail-head h1 { font-size: 22px; font-weight: 750; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.detail-head .meta { color: var(--muted); margin-top: 4px; display: flex; gap: 14px; flex-wrap: wrap; font-size: 13px; }
.detail-head .meta a { color: var(--link); }
.detail-head .actions { margin-left: auto; display: flex; gap: 8px; flex-wrap: wrap; }
.terms { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px 20px; }
.terms > div span { display: block; font-size: 11.5px; color: var(--muted); font-weight: 600; text-transform: uppercase; letter-spacing: .05em; }
.terms > div b { font-weight: 600; }
.ms-list { display: grid; gap: 8px; }
.ms { display: grid; grid-template-columns: 28px 1fr auto; gap: 12px; align-items: center; padding: 10px 14px; border: 1px solid var(--border); border-radius: 10px; background: var(--card); }
.ms > svg { width: 20px; height: 20px; color: var(--border-2); }
.ms.done > svg { color: var(--ok); }
.ms.late > svg { color: var(--bad); }
.ms .when { font-size: 12px; color: var(--muted); }
.lines-edit td { padding: 6px 6px; vertical-align: top; }
.lines-edit input, .lines-edit select { width: 100%; min-width: 0; }
.lines-edit .w-qty { width: 80px; } .lines-edit .w-amt { width: 140px; } .lines-edit .w-type { width: 140px; }
.type-pick { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; }
.type-pick button { text-align: left; border: 2px solid var(--border); border-radius: 14px; padding: 16px; background: var(--card); cursor: pointer; font: inherit; color: var(--text); display: flex; flex-direction: column; gap: 6px; }
.type-pick button:hover { border-color: var(--brand); }
.type-pick button b { font-size: 14.5px; }
.type-pick button small { color: var(--muted); }
.type-pick button svg { width: 22px; height: 22px; color: var(--c); }
.sum-row { display: flex; gap: 22px; flex-wrap: wrap; padding: 12px 14px; background: var(--surface-2); border-radius: 10px; font-size: 13px; }
.sum-row b { font-size: 15px; font-variant-numeric: tabular-nums; }
.bar-mini { height: 6px; background: var(--surface-3); border-radius: 4px; overflow: hidden; min-width: 80px; }
.bar-mini > span { display: block; height: 100%; border-radius: 4px; background: var(--ok); }
.bar-mini.warn > span { background: var(--warn); } .bar-mini.bad > span { background: var(--bad); }
.dots { display: inline-flex; gap: 4px; } .dots i { width: 9px; height: 9px; border-radius: 50%; background: var(--border-2); } .dots i.on { background: var(--ok); }

/* Inventory & payroll */
.serial-pick { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 6px; max-height: 180px; overflow: auto; }
.serial-pick .chk { font-family: ui-monospace, Consolas, monospace; font-size: 12.5px; }

/* Reports */
table.pnl tr.grp td { background: var(--surface-2); font-weight: 700; font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); }
table.pnl tr.sub td { border-top: 1px solid var(--border-2); }
table.pnl tr.total-row td { border-top: 2px solid var(--text); font-size: 14px; }
table.pnl td.total, table.pnl th:last-child { background: var(--surface-2); }
.print-title { display: none; }
@media print {
  .tabs, .page-head .actions, .toolbar, .pager, details summary, .btn { display: none !important; }
  .print-title { display: block; font-size: 16px; font-weight: 700; margin-bottom: 10px; }
  .card { box-shadow: none !important; border: 1px solid #ccc; }
  table.t { font-size: 10.5px; } details { display: block; } details > * { display: block !important; }
  body { background: #fff !important; }
}

/* ---- Phase 3: close, approvals, Juan import ---- */
label.row-link.clickable { cursor: pointer; }
label.row-link.clickable:hover { background: var(--hover); }
.row-link input[type=checkbox] { width: 18px; height: 18px; flex: none; accent-color: var(--brand, var(--ok)); }
.ok-ic { color: var(--ok); flex: none; }
.warn-ic { color: var(--warn); flex: none; }
.ok-text { color: var(--ok); }
.tabs.inner { padding: 0 12px; margin-bottom: 0; }
.stat-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.mini-stat { border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; display: flex; flex-direction: column; gap: 2px; }
.mini-stat b { font-size: 1.35rem; }
.mini-stat span { font-size: .78rem; color: var(--muted); }
.mini-stat.ok b { color: var(--ok); } .mini-stat.warn b { color: var(--warn); } .mini-stat.bad b { color: var(--bad); }
@media (max-width: 560px) { .stat-row { grid-template-columns: repeat(2, 1fr); } }

/* ---- Phase 4: AI ---- */
.meter { height: 8px; border-radius: 999px; background: var(--border); overflow: hidden; }
.meter > span { display: block; height: 100%; border-radius: 999px; }

/* ---- Ask the CFO ---- */
.ask-grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 16px; align-items: start; }
.ask-main { display: flex; flex-direction: column; min-height: 60vh; }
.ask-log { flex: 1; overflow-y: auto; max-height: 64vh; padding: 16px 18px; display: flex; flex-direction: column; gap: 12px; }
.ask-q, .ask-a { display: flex; gap: 10px; align-items: flex-start; }
.ask-q { align-self: flex-end; max-width: 85%; background: var(--hover); border-radius: 14px 14px 4px 14px; padding: 9px 13px; }
.ask-a { max-width: 100%; border: 1px solid var(--border); border-radius: 14px 14px 14px 4px; padding: 10px 14px; }
.ask-a.bad { border-color: var(--bad); }
.ask-a p { margin: 0 0 6px; line-height: 1.5; } .ask-a ul { margin: 0 0 6px 18px; padding: 0; } .ask-a .table-wrap { margin: 6px 0; }
.ask-q > svg, .ask-a > svg { flex: none; width: 18px; height: 18px; margin-top: 2px; color: var(--muted); }
.ask-a > svg { color: var(--brand-ink, var(--brand)); }
.ask-src { font-size: 12.5px; color: var(--muted); margin: 6px 0 2px; display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.ask-src svg { width: 14px; height: 14px; }
.ask-empty { text-align: center; margin: auto; max-width: 620px; }
.ask-empty > svg { width: 34px; height: 34px; color: var(--muted); }
.ask-chips { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.chip { border: 1px solid var(--border); background: var(--card, transparent); color: var(--text); border-radius: 999px; padding: 7px 13px; font: inherit; font-size: 13px; cursor: pointer; }
.chip:hover { background: var(--hover); }
.chip.active { border-color: var(--brand); background: color-mix(in srgb, var(--brand) 16%, transparent); font-weight: 600; }
.ask-form { display: flex; gap: 8px; padding: 12px; border-top: 1px solid var(--border); align-items: flex-end; }
.ask-form textarea { flex: 1; resize: vertical; min-height: 44px; }
.spinner.sm { width: 16px; height: 16px; border-width: 2px; }
@media (max-width: 900px) { .ask-grid { grid-template-columns: 1fr; } .ask-log { max-height: none; } }
.ai-sugg { display: flex; gap: 10px; align-items: center; border: 1px dashed var(--brand); background: var(--hover); border-radius: 10px; padding: 8px 12px; font-size: 13.5px; }
.ai-sugg > svg { flex: none; width: 18px; height: 18px; }
.badge.as-btn { border: 0; cursor: pointer; font: inherit; font-size: 11.5px; margin-top: 3px; display: inline-flex; gap: 4px; align-items: center; }
.badge.as-btn svg { width: 12px; height: 12px; }
.outlook-text { font-size: 15px; line-height: 1.55; margin-top: 0; }
.outlook-h { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); font-weight: 700; margin: 10px 0 4px; display: flex; gap: 6px; align-items: center; }
.outlook-h svg { width: 14px; height: 14px; }
.outlook ol, .outlook ul { margin: 0 0 4px 18px; padding: 0; line-height: 1.5; }
.dup-warn { color: var(--bad); display: flex; gap: 4px; align-items: center; margin-top: 4px; }
.dup-warn svg { width: 13px; height: 13px; flex: none; }

/* Venue groups: summary tiles, "needs attention" strip, filters, list + side panel, map */
.vtiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 12px; }
.vtile { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); padding: 12px 14px; display: flex; flex-direction: column; gap: 2px; }
.vtile span { font-size: 12px; color: var(--muted); }
.vtile b { font-size: 22px; font-variant-numeric: tabular-nums; }
.vtile small { color: var(--muted); font-size: 12px; }
.vfix { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 12px; padding: 8px 12px; border: 1px dashed var(--border-2, var(--border)); border-radius: var(--radius); background: var(--surface-2); }
.vfix > span { display: inline-flex; align-items: center; gap: 6px; }
.vfix svg { width: 14px; height: 14px; }
.vchip { border: 1px solid var(--border); background: var(--card); color: var(--text-2); border-radius: 999px; padding: 5px 11px; font: inherit; font-size: 13px; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.vchip b { font-variant-numeric: tabular-nums; color: var(--text); }
.vchip.sm { padding: 3px 9px; font-size: 12px; cursor: default; }
.vchip.warn { border-color: color-mix(in srgb, var(--warn) 45%, var(--border)); }
.vchip.on { background: var(--brand-100); border-color: var(--brand); color: var(--text); }
.vchip.warn.on { background: var(--warn-bg); border-color: var(--warn); }
.vchip svg { width: 13px; height: 13px; }
.vbar-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 12px; }
.vbar-tools .search-in { min-width: 220px; flex: 0 1 280px; }
.vlist th.sortable { cursor: pointer; user-select: none; white-space: nowrap; }
.vlist td.num, .vlist th.num { text-align: right; font-variant-numeric: tabular-nums; }
.vlist tbody tr { cursor: pointer; }
.vlist tbody tr.sel td { background: var(--brand-50); }
.vlist tbody tr.archived { opacity: .6; }
.vbar { height: 3px; background: var(--surface-2); border-radius: 2px; margin-top: 4px; overflow: hidden; }
.vbar i { display: block; height: 100%; background: var(--ok); }
.vsplit { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; align-items: start; }
.vsplit.open { grid-template-columns: minmax(0, 1fr) 380px; }
.vsplit-list { padding: 0; overflow: hidden; }
.vside { display: none; padding: 16px; position: sticky; top: 76px; max-height: calc(100vh - 96px); overflow: auto; }
.vsplit.open .vside { display: block; }
.vside-head { display: flex; align-items: flex-start; gap: 6px; }
.vside-head h3 { margin: 0 0 2px; }
.vside h4 { margin: 14px 0 6px; font-size: 13px; color: var(--muted); font-weight: 600; }
.vside-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; text-align: center; background: var(--surface-2); border-radius: 10px; padding: 8px 4px; margin: 12px 0; }
.vside-stats b { display: block; font-size: 17px; font-variant-numeric: tabular-nums; }
.vside-stats span { font-size: 11px; color: var(--muted); }
.vmini { height: 220px; border-radius: 10px; overflow: hidden; border: 1px solid var(--border); }
.vside-list { display: flex; flex-direction: column; border: 1px solid var(--border); border-radius: 10px; overflow: hidden; }
.vside-list a { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-bottom: 1px solid var(--border); color: inherit; text-decoration: none; }
.vside-list a:last-child { border-bottom: 0; }
.vside-list a:hover { background: var(--hover); }
.vside-list a .grow { display: flex; flex-direction: column; }
.vside-actions { display: flex; gap: 8px; margin-top: 14px; flex-wrap: wrap; }
.vmap-card { padding: 0; overflow: hidden; }
.vmap { height: min(70vh, 640px); }
.vlegend { display: flex; flex-wrap: wrap; gap: 14px; padding: 10px 14px; border-top: 1px solid var(--border); }
.vlegend i { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 5px; vertical-align: -1px; }
.vlegend i.ring { background: transparent; border: 2px solid var(--muted); width: 8px; height: 8px; }
.leaflet-popup-content { font-family: var(--font); }
@media (max-width: 1100px) { .vsplit.open { grid-template-columns: minmax(0, 1fr); } .vside { position: static; max-height: none; } }
@media (max-width: 720px) { .vtiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } .vbar-tools .search-in { flex: 1 1 100%; } .vlist th:nth-child(5), .vlist td:nth-child(5) { display: none; } }
.vlist .badge { display: inline-block; width: auto; }
/* Record Juan invoice: AI read */
.ai-read { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 10px 12px; border: 1px dashed var(--border); border-radius: var(--radius); background: var(--surface-2); }
.ai-read svg { width: 15px; height: 15px; }
.ai-check { display: flex; gap: 6px; align-items: flex-start; font-size: 13px; padding: 3px 0; }
.ai-check svg { width: 15px; height: 15px; flex: none; margin-top: 2px; }
.ai-check.ok svg { color: var(--ok); }
.ai-check.warn { color: var(--warn); }
input.ai-filled, select.ai-filled { background: var(--brand-50); border-color: var(--brand); }
.ai-check.bad { color: var(--bad); font-weight: 600; }
.ai-past { border: 1px solid var(--info, var(--border)); background: var(--info-bg, var(--surface-2)); border-radius: var(--radius); padding: 10px 12px; margin: 6px 0; font-size: 13px; display: flex; flex-direction: column; gap: 8px; }
.ai-past svg { width: 15px; height: 15px; vertical-align: -2px; }
.ai-past-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.ai-past-row input[type=date] { width: auto; margin-left: 4px; }
.ai-notes summary { cursor: pointer; padding: 3px 0; }
.inv-pick { display: flex; flex-direction: column; gap: 4px; margin-top: 6px; max-height: 180px; overflow: auto; padding: 8px 10px; border: 1px solid var(--border); border-radius: var(--radius); }

/* Client page */
.aging-bar { display: flex; height: 14px; border-radius: 999px; overflow: hidden; gap: 2px; background: var(--bg); }
.aging-bar span { min-width: 6px; }
.aging-legend { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 10px 16px; margin-top: 14px; }
.aging-legend div { display: grid; grid-template-columns: 10px 1fr; column-gap: 8px; align-items: center; font-size: 12.5px; }
.aging-legend i { width: 10px; height: 10px; border-radius: 3px; grid-row: span 2; }
.aging-legend span { color: var(--muted); }
.aging-legend b { grid-column: 2; font-variant-numeric: tabular-nums; }
.kpi .val.neg { color: var(--bad); }
a.cl-link { color: inherit; font-weight: inherit; text-decoration: none; border-bottom: 1px dashed color-mix(in srgb, currentColor 35%, transparent); }
a.cl-link:hover { color: var(--link); border-bottom-color: var(--link); }

/* Global search */
.search { position: relative; }
.search-kbd { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); font: 600 10.5px/1 var(--font, inherit); color: var(--muted); border: 1px solid var(--border); border-radius: 6px; padding: 3px 6px; background: var(--card); pointer-events: none; }
.search input:focus ~ .search-kbd, .search input:not(:placeholder-shown) ~ .search-kbd { display: none; }
.search-results a.sel { background: var(--bg); box-shadow: inset 3px 0 0 var(--brand); }
.search-results a .badge { margin-left: 4px; }
@media (max-width: 760px) { .search-kbd { display: none; } }

/* Command Center: four headline numbers, To do today, a compact list for the rest */
.hero-kpis { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.hero-kpis .kpi .val { font-size: 30px; }
.kpi:has(.ico) .lbl { padding-right: 42px; }
.home-top { align-items: stretch; }
.home-top > .card { display: flex; flex-direction: column; }
.todo-card .row-link { gap: 12px; }
.todo-card .row-link .type-ico { width: 32px; height: 32px; flex: none; }
.todo-card .row-link .num { white-space: nowrap; }
.todo-card .row-link:hover .go { color: var(--text); }
.stat-list { display: flex; flex-direction: column; }
.stat-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 18px; border-bottom: 1px solid var(--border); color: var(--text); text-decoration: none; }
.stat-row:last-child { border-bottom: 0; }
.stat-row:hover { background: var(--bg); text-decoration: none; }
.stat-row span { font-size: 13.5px; display: flex; flex-direction: column; min-width: 0; }
.stat-row small { color: var(--muted); font-size: 12px; }
.stat-row b { font-size: 16px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.stat-row b.warn { color: var(--warn); }
.list-sub { display: flex; align-items: center; gap: 6px; padding: 8px 18px; font-size: 12px; font-weight: 700; color: var(--muted); background: var(--bg); border-bottom: 1px solid var(--border); }
.list-sub.bad { color: var(--bad); }
.list-sub svg { width: 14px; height: 14px; }

/* Wide tables: client column kept narrow, first column stays put while scrolling sideways */
td.client-col { max-width: 230px; }
table.sticky-first th:first-child, table.sticky-first td:first-child { position: sticky; left: 0; z-index: 1; background: var(--card); box-shadow: 1px 0 0 var(--border); white-space: nowrap; }
table.pnl.sticky-first tr.grp td:first-child { background: var(--surface-2); }
.bill-sum { display: flex; gap: 12px; flex-wrap: wrap; align-items: stretch; }
.bill-sum > div { flex: 1 1 260px; display: grid; grid-template-columns: auto 1fr; column-gap: 10px; align-items: center; padding: 12px 16px; border-radius: 12px; background: var(--card); border: 1px solid var(--border); }
.bill-sum > div svg { grid-row: span 2; color: var(--muted); }
.bill-sum > div.bad { border-color: color-mix(in srgb, var(--bad) 35%, var(--border)); background: color-mix(in srgb, var(--bad) 6%, var(--card)); }
.bill-sum > div.bad svg, .bill-sum > div.bad b { color: var(--bad); }
.bill-sum small { color: var(--muted); font-size: 12px; }
.bill-sum > .small { align-self: flex-end; }
.search input { padding-right: 64px; }
.kpis-5 { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
/* Tighter cell padding so 8–9 column tables fit a 1366px laptop */
table.t th, table.t td { padding-left: 10px; padding-right: 10px; }
@media (max-width: 760px) {
  .hero-kpis, .kpis-5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero-kpis .kpi .val { font-size: 22px; }
}

/* Sidebar: collapsible sections, "More" holds modules not in use yet, red counts */
.nav .nav-grp .section { display: flex; align-items: center; gap: 6px; width: 100%; background: none; border: 0; cursor: pointer; font-family: inherit; text-align: left; }
.nav .nav-grp .section small { text-transform: none; letter-spacing: 0; font-weight: 500; opacity: .8; }
.nav .nav-grp .section .chev { width: 13px; height: 13px; margin-left: auto; transition: transform .2s; opacity: .7; }
.nav .nav-grp .section:hover { color: var(--side-text); }
.nav .nav-grp.closed .section .chev { transform: rotate(-90deg); }
.nav .nav-grp.closed .nav-items { display: none; }
.nav .count.hidden, .tabbar .count.hidden { display: none; }

/* Phone tab bar */
.tabbar { display: none; }
@media (max-width: 760px) {
  .tabbar { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 80; background: var(--card); border-top: 1px solid var(--border); padding: 6px 4px calc(6px + env(safe-area-inset-bottom)); box-shadow: 0 -6px 18px rgba(0, 0, 0, .06); }
  .tabbar a, .tabbar button { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 4px 0; font: 600 11px/1.2 inherit; font-family: inherit; color: var(--muted); background: none; border: 0; position: relative; text-decoration: none; }
  .tabbar svg { width: 21px; height: 21px; }
  .tabbar a.active { color: var(--text); }
  .tabbar a.active svg { color: var(--brand-strong, var(--brand)); }
  .tabbar .count { position: absolute; top: 0; left: calc(50% + 6px); background: #ef4444; color: #fff; font-size: 10px; border-radius: 9px; padding: 0 5px; font-weight: 700; }
  .content { padding-bottom: calc(84px + env(safe-area-inset-bottom)); }

  /* Tables become cards */
  #view .table-wrap:has(> table.mc) { overflow: visible; }
  #view table.t.mc, #view table.t.mc tbody, #view table.t.mc tfoot { display: block; width: 100%; }
  #view table.t.mc thead { display: none; }
  #view table.t.mc tr { display: block; position: relative; background: var(--card); border: 1px solid var(--border); border-radius: 12px; margin: 0 0 10px; padding: 6px 12px; box-shadow: var(--shadow); }
  #view table.t.mc tr:hover { transform: none; }
  #view table.t.mc td { display: block; padding: 5px 0; border: 0; text-align: right; white-space: normal; max-width: none; position: static; box-shadow: none; background: none; overflow: hidden; }
  #view table.t.mc td::before { content: attr(data-label); float: left; color: var(--muted); font-size: 12px; font-weight: 600; text-align: left; max-width: 42%; margin-right: 12px; line-height: 1.6; }
  #view table.t.mc td > div, #view table.t.mc td > .small { text-align: right; }
  #view table.t.mc td[data-label=""]::before { display: none; }
  #view table.t.mc td:empty { display: none; }
  #view table.t.mc td:first-child:not(.chk), #view table.t.mc td.chk + td { display: block; text-align: left; font-size: 15px; padding: 6px 0 8px; margin-bottom: 4px; border-bottom: 1px solid var(--border); }
  #view table.t.mc td:first-child:not(.chk)::before, #view table.t.mc td.chk + td::before { display: none; }
  #view table.t.mc td.chk { position: absolute; right: 12px; top: 12px; padding: 0; }
  #view table.t.mc td.chk + td { padding-right: 32px; }
  #view table.t.mc td:first-child:not(.chk) > div, #view table.t.mc td.chk + td > div, #view table.t.mc td:first-child:not(.chk) > .small { text-align: left; }
  #view table.t.mc td.right, #view table.t.mc td:last-child:has(.btn) { text-align: right; }
  #view table.t.mc td .ellipsis { max-width: none !important; white-space: normal; }
  #view table.t.mc tfoot tr { background: var(--bg); font-weight: 700; }
  .card > .table-wrap:has(> table.mc) { padding: 10px 10px 0; }
}

/* Proof of payment: several files */
.proof-box { align-items: flex-start; flex-wrap: wrap; }
.proof-list { display: flex; flex-wrap: wrap; gap: 6px; flex: 1; min-width: 0; align-items: center; min-height: 30px; }
.proof-chip { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; padding: 3px 4px 3px 10px; border: 1px solid var(--border); border-radius: 999px; background: var(--card); font-size: 12.5px; }
.proof-chip .ellipsis { max-width: 260px; }
.proof-chip .btn { padding: 2px; height: auto; }
.proof-links { display: inline-flex; gap: 4px; align-items: center; vertical-align: middle; }
.proof-links .btn svg + svg { width: 10px; height: 10px; margin-left: -3px; }
input.need-check { border-color: var(--bad); background: color-mix(in srgb, var(--bad) 6%, var(--card)); }

/* Folded detail (outlook text, weekly forecast table) */
details.fold { margin: 4px 0 8px; }
details.fold > summary { cursor: pointer; list-style: none; display: inline-flex; align-items: center; gap: 4px; padding: 4px 0; }
details.fold > summary::before { content: '▸'; font-size: 11px; transition: transform .15s; }
details.fold[open] > summary::before { transform: rotate(90deg); }
.card > details.fold > summary { padding: 8px 18px; }
.no-site { display: inline-flex; align-items: center; gap: 4px; margin-top: 2px; }
.no-site svg { width: 13px; height: 13px; }

/* Readability: table headers and small text never below 12px */
table.t th { font-size: 12px; }

/* Reconcile */
.rc-table td { vertical-align: top; }
.rc-desc { max-width: 340px; word-break: break-word; }
.rc-table td:nth-child(4) { min-width: 260px; }

/* How reliable are these numbers */
.health-list { display: flex; flex-direction: column; }
.health-row { display: flex; align-items: center; gap: 12px; padding: 10px 18px; border-bottom: 1px solid var(--border); color: var(--text); text-decoration: none; }
.health-row:hover { background: var(--bg); text-decoration: none; }
.health-row .hz { flex: none; width: 64px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--warn); }
.health-row.ok .hz { color: var(--muted); }
.health-row.ok svg { color: var(--ok); width: 15px; height: 15px; vertical-align: -3px; }
.health-card > details.fold > summary { padding: 8px 18px; }

/* CFO Pack */
.pk-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin-top: 4px; }
.pk-kpi { background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 14px 16px; display: flex; flex-direction: column; gap: 4px; }
.pk-kpi > span { font-size: 12px; font-weight: 600; color: var(--muted); }
.pk-kpi b { font-size: 22px; font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.pk-kpi > small { font-size: 12px; color: var(--muted); }
.pk-delta { font-size: 12px; font-weight: 700; color: var(--muted); white-space: nowrap; }
.pk-delta.good { color: var(--ok); }
.pk-delta.bad { color: var(--bad); }
table.pk-pnl tr.sub td { border-top: 1px solid var(--border-2, var(--border)); font-weight: 600; }
table.pk-pnl tr.total-row td { border-top: 2px solid var(--text); font-size: 14px; }
.pk-gaps { margin: 8px 0 14px; }
.pk-notes { margin-top: 12px; display: grid; gap: 4px; }
#pk-notes { width: 100%; font: inherit; padding: 10px 12px; border: 1px solid var(--border); border-radius: 10px; background: var(--card); color: var(--text); resize: vertical; }
.pk-notes-print { display: none; white-space: normal; }
.wf { display: grid; gap: 6px; }
.wf-row { display: grid; grid-template-columns: minmax(130px, 34%) 1fr auto; gap: 10px; align-items: center; font-size: 13px; }
.wf-row.zero { opacity: .55; }
.wf-l { display: flex; flex-direction: column; }
.wf-l small { color: var(--muted); font-size: 11px; }
.wf-track { position: relative; height: 18px; background: var(--bg); border-radius: 4px; }
.wf-bar { position: absolute; top: 2px; bottom: 2px; border-radius: 3px; background: var(--muted); }
.wf-row.up .wf-bar { background: var(--ok); }
.wf-row.down .wf-bar { background: var(--bad); }
.wf-row.total .wf-bar { background: var(--s-pa, var(--brand)); }
.wf-row.total .wf-l, .wf-row.total .wf-v { font-weight: 700; }
.wf-zero { position: absolute; top: -3px; bottom: -3px; width: 1px; background: var(--text); opacity: .4; }
.wf-v { font-variant-numeric: tabular-nums; white-space: nowrap; min-width: 90px; text-align: right; }
@media print {
  .no-print, .tabbar, #notif-panel, .search-results { display: none !important; }
  .pk-notes-print { display: block; }
  .content { padding: 0 !important; max-width: none; }
  .pk-card, .pk-kpi { break-inside: avoid; box-shadow: none !important; }
  .pk-head h1 { font-size: 20px; }
  body { background: #fff; }
  .grid-2.pk-two { grid-template-columns: 1fr 1fr; }
}
/* Sparklines under headline numbers */
.kpi .meta { flex-wrap: wrap; }
.spark { display: block; width: 100%; max-width: 120px; height: 24px; margin-top: 6px; flex-basis: 100%; }
.spark polyline { stroke: var(--muted); }
.spark.up polyline, .spark.up circle { stroke: var(--ok); fill: var(--ok); }
.spark.down polyline, .spark.down circle { stroke: var(--bad); fill: var(--bad); }
.spark polyline { fill: none !important; }
.kpi .pos { color: var(--ok); font-weight: 700; }
.kpi .meta .neg { font-weight: 700; }

/* Sortable tables */
table.sortable th.th-sort { cursor: pointer; user-select: none; white-space: nowrap; }
table.sortable th.th-sort:hover { color: var(--text); }
table.sortable th .sort-ic { margin-left: 4px; font-size: 10px; opacity: .45; }
table.sortable th[aria-sort="ascending"] .sort-ic, table.sortable th[aria-sort="descending"] .sort-ic { opacity: 1; color: var(--brand-strong, var(--text)); }
.toolbar .count-note { margin-left: auto; }
.kpi.clickable { cursor: pointer; }
.kpi.clickable:hover { border-color: var(--brand); }
.kpi.active { box-shadow: 0 0 0 2px var(--brand) inset; }

/* Charlie */
.charlie-av { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: linear-gradient(135deg, #b6f518, var(--brand), #ff8a3d); color: #111; font-weight: 800; font-size: 15px; flex: none; box-shadow: 0 2px 6px rgba(0,0,0,.15); }
.charlie-av.sm { width: 22px; height: 22px; font-size: 12px; }
.charlie-btn { position: fixed; right: 22px; bottom: 22px; z-index: 70; display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px 6px 6px; border-radius: 999px; border: 1px solid var(--border); background: var(--card); color: var(--text); font: 600 13px/1 inherit; font-family: inherit; box-shadow: var(--shadow-lg, 0 8px 24px rgba(0,0,0,.15)); cursor: pointer; }
.charlie-btn:hover { border-color: var(--brand); }
.charlie { position: fixed; right: 22px; bottom: 76px; z-index: 75; width: min(400px, calc(100vw - 32px)); height: min(560px, calc(100vh - 120px)); display: flex; flex-direction: column; background: var(--card); border: 1px solid var(--border); border-radius: 16px; box-shadow: 0 18px 48px rgba(0,0,0,.22); overflow: hidden; }
.charlie.hidden { display: none; }
.charlie-h { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-bottom: 1px solid var(--border); }
.charlie-h small { display: block; color: var(--muted); font-size: 12px; }
.charlie-b { flex: 1; overflow-y: auto; padding: 12px 14px; display: flex; flex-direction: column; gap: 8px; }
.charlie-msg { max-width: 92%; padding: 8px 12px; border-radius: 12px; font-size: 13.5px; line-height: 1.45; }
.charlie-msg p { margin: 0 0 6px; } .charlie-msg p:last-child { margin: 0; }
.charlie-msg ul { margin: 4px 0 6px 18px; padding: 0; } .charlie-msg li { margin: 2px 0; }
.charlie-msg.c { background: var(--bg); align-self: flex-start; }
.charlie-msg.u { background: var(--brand); color: #111; align-self: flex-end; }
.charlie-msg a { color: var(--link); font-weight: 600; }
.charlie-file { display: flex; align-items: center; gap: 10px; margin-top: 8px; padding: 8px 10px; border: 1px solid var(--border); border-radius: 10px; background: var(--card); }
.charlie-file > svg, .charlie-file > i { flex: none; width: 22px; height: 22px; color: var(--brand); }
.charlie-file small { display: block; color: var(--muted); font-size: 11.5px; }
.charlie-sug { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.charlie-sug .chip { border: 1px solid var(--border); background: var(--card); border-radius: 999px; padding: 5px 10px; font: 12.5px/1.2 inherit; font-family: inherit; color: var(--text); cursor: pointer; text-align: left; }
.charlie-sug .chip:hover { border-color: var(--brand); }
.charlie-f { display: flex; gap: 8px; padding: 10px; border-top: 1px solid var(--border); }
.charlie-f input { flex: 1; border: 1px solid var(--border); border-radius: 10px; padding: 9px 12px; font: inherit; background: var(--card); color: var(--text); }
.charlie-check { border: 1px solid color-mix(in srgb, var(--warn) 45%, var(--border)); background: color-mix(in srgb, var(--warn) 7%, var(--card)); border-radius: 12px; padding: 10px 12px; margin-bottom: 12px; display: grid; gap: 4px; }
.charlie-check-h { display: flex; align-items: center; gap: 8px; margin-bottom: 2px; }
.ai-check.info { color: var(--muted); }
@media (max-width: 760px) {
  .charlie-btn { bottom: calc(76px + env(safe-area-inset-bottom)); right: 12px; padding: 5px; }
  .charlie-btn .charlie-lbl { display: none; }
  .charlie { right: 8px; left: 8px; width: auto; bottom: calc(126px + env(safe-area-inset-bottom)); height: min(520px, calc(100vh - 190px)); }
}
@media print { .charlie-btn, .charlie { display: none !important; } }

/* Data confidence stamp */
.conf-stamp { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-top: 8px; padding: 5px 12px; border-radius: 999px; font-size: 12.5px; text-decoration: none; border: 1px solid transparent; color: inherit; }
.conf-stamp svg { width: 15px; height: 15px; }
.conf-stamp span { opacity: .85; }
.conf-stamp.good { background: color-mix(in srgb, var(--ok, #059669) 12%, transparent); border-color: color-mix(in srgb, var(--ok, #059669) 35%, transparent); color: var(--ok, #059669); }
.conf-stamp.warn { background: color-mix(in srgb, #d97706 12%, transparent); border-color: color-mix(in srgb, #d97706 35%, transparent); color: #b45309; }
.conf-stamp.bad { background: color-mix(in srgb, #dc2626 10%, transparent); border-color: color-mix(in srgb, #dc2626 35%, transparent); color: #b91c1c; }
.conf-stamp.bad span, .conf-stamp.warn span { color: var(--text); }
.tax-row.filed td { opacity: .7; }
@media print { .conf-stamp { border: 1px solid #999; } }
.pos { color: var(--ok); }

/* Your work today */
.routine-card .rt-bar { height: 6px; margin: 0 18px 6px; border-radius: 999px; background: var(--hover); overflow: hidden; }
.routine-card .rt-bar span { display: block; height: 100%; background: var(--ok); border-radius: inherit; transition: width .3s; }
.rt-list { display: flex; flex-direction: column; }
.rt-row { display: flex; align-items: center; gap: 10px; padding: 10px 18px; border-top: 1px solid var(--border); }
.rt-row:first-child { border-top: 0; }
.rt-row.done .rt-t { color: var(--muted); text-decoration: line-through; text-decoration-color: color-mix(in srgb, var(--muted) 50%, transparent); }
.rt-row.bad .rt-t { color: var(--bad); }
.rt-tick { background: none; border: 0; padding: 0; cursor: pointer; color: var(--muted); display: inline-flex; }
.rt-tick[disabled] { cursor: default; }
.rt-row.done .rt-tick { color: var(--ok); }
.rt-tick svg { width: 20px; height: 20px; }
.rt-t { font-weight: 600; }
.rt-n { display: inline-block; min-width: 20px; padding: 0 7px; border-radius: 999px; background: var(--hover); font-size: 12px; text-align: center; margin-left: 4px; }
.rt-row.bad .rt-n { background: color-mix(in srgb, var(--bad) 14%, transparent); color: var(--bad); }
.rt-cad { font-size: 11px; font-weight: 500; color: var(--muted); margin-left: 6px; text-transform: uppercase; letter-spacing: .04em; }
.rt-all { padding: 14px 18px; color: var(--ok); font-weight: 600; display: flex; gap: 8px; align-items: center; }
@media (max-width: 760px) { .rt-row { flex-wrap: wrap; } .rt-row .grow { flex-basis: calc(100% - 34px); } .rt-row .btn { margin-left: 30px; } }

/* Charlie's mark on a row */
.charlie-flag { display: inline-flex; align-items: center; gap: 3px; font-size: 11px; font-weight: 700; padding: 1px 7px; border-radius: 999px; background: color-mix(in srgb, #d97706 14%, transparent); color: #b45309; vertical-align: middle; cursor: help; }
.charlie-flag.bad { background: color-mix(in srgb, var(--bad) 13%, transparent); color: var(--bad); }
.charlie-flag svg { width: 12px; height: 12px; }
/* Encoder home */
.enc-actions .btn.block { display: flex; justify-content: center; width: 100%; }
.enc-actions .btn.lg { padding: 14px 18px; font-size: 15px; }
.home-more > summary { cursor: pointer; padding: 8px 2px; list-style: none; display: flex; gap: 6px; align-items: center; }
/* Ask Charlie: out of the way of buttons — smaller, and above the phone tab bar */
#view { padding-bottom: 72px; } /* room for the Ask Charlie button over the last row */
@media (max-width: 760px) { #view { padding-bottom: 110px; } }

/* Tables that stay tables (CFO Pack) scroll inside their card instead of widening the page */
.card-b > table.no-cards { display: block; overflow-x: auto; max-width: 100%; }
/* Phones: finger-sized buttons, and a hint that tab rows scroll sideways */
@media (max-width: 760px) {
  #view .btn.xs, #view .btn.sm, #view .chip, .modal .btn.xs { min-height: 38px; min-width: 38px; padding-left: 10px; padding-right: 10px; justify-content: center; }
  #view table.t.mc td .btn.xs { margin: 2px 0; }
  .tabs { -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent); scroll-snap-type: x proximity; }
  .tabs button { scroll-snap-align: start; }
  /* Long lists: the first 25 cards, then "Show more" */
  #view table.mc.capped tbody tr:nth-child(n+26) { display: none !important; }
  .cap-more { display: flex; width: 100%; justify-content: center; margin: 4px 0 12px; }
  .rt-tick { min-width: 36px; min-height: 36px; justify-content: center; align-items: center; }
  /* A long amount must not push a list row past the screen edge */
  .row-link { min-width: 0; flex-wrap: wrap; row-gap: 2px; }
  .row-link > * { min-width: 0; overflow-wrap: anywhere; }
  .row-link .num, .row-link b.num { white-space: nowrap; flex-shrink: 0; margin-left: auto; }
}
@media (min-width: 761px) { .cap-more { display: none; } }
table.sortable th .sort-ic { font-size: 11px; }
.sch-cols { gap: 0; } .sch-cols > div + div { border-left: 1px solid var(--border); } @media (max-width: 900px) { .sch-cols > div + div { border-left: 0; border-top: 1px solid var(--border); } }
.stack .sch-cols { grid-template-columns: 1fr; } .stack .sch-cols > div + div { border-left: 0; border-top: 1px solid var(--border); }

/* Undo bar */
.toast.undo { position: relative; align-items: center; cursor: default; overflow: hidden; }
.toast.undo .btn { background: rgba(255,255,255,.14); color: #fff; border-color: rgba(255,255,255,.25); }
.toast.undo .undo-bar { position: absolute; left: 0; bottom: 0; height: 3px; width: 100%; background: var(--brand, #f5c518); transform-origin: left; animation: undo-shrink linear forwards; }
@keyframes undo-shrink { from { transform: scaleX(1); } to { transform: scaleX(0); } }

/* Promise to pay */
.pr-inv { display: flex; flex-direction: column; gap: 6px; max-height: 260px; overflow: auto; border: 1px solid var(--border); border-radius: 10px; padding: 8px 10px; }
.pr-inv .chk { display: flex; align-items: center; gap: 8px; }
.cl-note input[name=body] { min-width: 0; }
/* Expected collections: weekly bars */
.wk-bars { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(44px, 1fr); gap: 6px; padding: 14px 18px 6px; overflow-x: auto; }
.wk { display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 44px; }
.wk-val { font-size: 11px; color: var(--muted); height: 14px; white-space: nowrap; }
.wk-col { height: 150px; width: 70%; display: flex; flex-direction: column; justify-content: flex-end; gap: 2px; }
.wk-col span { display: block; width: 100%; border-radius: 4px 4px 0 0; min-height: 0; }
.wk-col .likely { background: var(--ok); } .wk-col .late { background: #f59e0b; }
.wk-col .late + .likely { border-radius: 0; }
.wk-lbl { font-size: 11px; color: var(--muted); white-space: nowrap; }
.lg-dot { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin: 0 4px 0 10px; vertical-align: -1px; }
.lg-dot.ok { background: var(--ok); } .lg-dot.warn { background: #f59e0b; }
.exp-line { display: flex; align-items: center; gap: 8px; padding: 10px 18px; border-bottom: 1px solid var(--border); text-decoration: none; color: inherit; background: color-mix(in srgb, var(--ok) 7%, transparent); }
.exp-line:hover { background: color-mix(in srgb, var(--ok) 12%, transparent); }
