/* Gym portal. */
/* =====================================================================
   GYM PORTAL: dashboard, front of house, back office, reports
   Dense, desktop-first, tables with sticky headers. Same tokens.
   ===================================================================== */
.gym{--frz:#7C93C3;--al:var(--bad-fill)}

/* ---------- period picker ---------- */
.pbar2{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3)}
.pbar2 .seg{min-width:0}
.pbar2 .seg>button{flex:0 0 auto;padding:0 var(--s-3)}
.pnav{display:flex;align-items:center;gap:var(--s-1)}
.pnav .month-lab{min-width:136px;text-align:center;font-size:var(--fs-2);font-variant-numeric:tabular-nums}
.pnav .icon-btn{width:var(--h-ctl-s);height:var(--h-ctl-s)}
[dir=rtl] .pnav .icon-btn:not(.flip) svg{transform:scaleX(-1)}
[dir=rtl] .pnav .icon-btn.flip svg{transform:none}

/* ---------- live strip ---------- */
.live{display:inline-flex;align-items:center;gap:var(--s-2);font-size:var(--fs-1);font-weight:var(--fw-2);letter-spacing:var(--tr-l);text-transform:uppercase;color:var(--ink-2)}
[dir=rtl] .live{text-transform:none}
.live i{width:8px;height:8px;border-radius:50%;background:var(--ok-fill);box-shadow:0 0 0 3px var(--ok-soft)}
.card.live-card{gap:var(--s-4)}
.live-card .g5>.stat{padding-block:var(--s-1)}
/* the money hero */
.tot{gap:var(--s-3);border-radius:var(--r-3);padding:var(--s-5)}
.tot .huge{color:var(--on-navy)}
.tot .huge small{color:var(--on-navy-3)}
.tot-pct{font-size:var(--fs-2);font-weight:var(--fw-2);color:var(--navy-accent);font-variant-numeric:tabular-nums}
.tot-l{display:flex;flex-direction:column;gap:2px}
.card.scard{gap:var(--s-3)}
.scard .nr{display:flex;flex-direction:column;gap:var(--s-2)}
.scard .nr>div{display:flex;align-items:flex-start;gap:var(--s-2)}
.scard .nr>div>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.scard .nr .dot{margin-top:5px}
.dot.n,.tbar i.n{background:var(--chart-1)}.dot.r,.tbar i.r{background:var(--chart-2)}.dot.s,.tbar i.s,.dot.s1,.tbar i.s1{background:var(--chart-n1)}.dot.s2,.tbar i.s2{background:var(--chart-n2)}.dot.s3,.tbar i.s3{background:var(--chart-4)}
.tot .dot.n,.tot .tbar i.n{background:#FFFFFF}.tot .dot.r,.tot .tbar i.r{background:var(--navy-accent)}.tot .dot.s,.tot .tbar i.s{background:rgba(255,255,255,.36)}
.g3.w3{align-items:stretch}
/* alerts */
.alerts-strip{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}
.alerts-strip .lab{margin:0 var(--s-1) 0 0}
.al-chip{display:inline-flex;align-items:center;gap:var(--s-2);min-height:var(--h-ctl-s);padding:var(--s-1) var(--s-3) var(--s-1) var(--s-1);border:0;border-radius:var(--r-pill);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink);font-size:var(--fs-2);font-weight:var(--fw-2);transition:box-shadow var(--t-1),transform var(--t-1) var(--ease-out)}
.al-chip:active{transform:scale(.97)}
.al-chip b{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 var(--s-2);border-radius:var(--r-pill);background:var(--accent);color:var(--on-accent);font-size:var(--fs-1);font-variant-numeric:tabular-nums}
.al-chip.warn b{background:var(--warn-fill);color:#1A1300}
.al-chip.bad b{background:var(--bad-solid);color:#FFFFFF}
.al-chip svg{color:var(--ink-3)}
[dir=rtl] .al-chip svg{transform:scaleX(-1)}
.al-row{display:flex;align-items:center;gap:var(--s-3);width:100%;min-height:56px;padding:var(--s-2) 0;border:0;border-top:1px solid var(--line);background:none;color:var(--ink);font-size:var(--fs-2);text-align:start}
.al-row .grow small{font-size:var(--fs-1);color:var(--ink-3)}
.al-n{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-width:36px;height:36px;padding:0 var(--s-2);border-radius:var(--r-2);background:var(--accent-soft);color:var(--accent-ink);font-size:var(--fs-3);font-weight:var(--fw-2);font-variant-numeric:tabular-nums}
.al-n.t-warn{background:var(--warn-soft);color:var(--warn)}.al-n.t-bad{background:var(--bad-soft);color:var(--bad)}
.al-txt{display:flex;align-items:center;gap:var(--s-1);color:var(--bad);font-weight:var(--fw-2)}
.big-note{display:flex;align-items:center;gap:var(--s-3);font-size:var(--fs-3);font-weight:var(--fw-2)}

/* ---------- tables and filters ---------- */
.filters{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}
.filters .search{flex:1 1 240px;min-width:0}
@media (max-width:1100px){.filters>.search{flex-basis:100%}}
.filters .seg{flex:0 0 auto}
.saved-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}
.saved-row .lab{margin:0 var(--s-1) 0 0}
.inline-save{display:inline-flex;align-items:center;gap:var(--s-2)}
.inline-save .inline-in{min-width:200px;min-height:var(--h-ctl-s);font-size:var(--fs-2)}
.more-bar{display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);padding-top:var(--s-3);font-size:var(--fs-2);color:var(--ink-3)}
.gym .card>.tbl-wrap{margin:0 calc(-1 * var(--cp,var(--s-5)));border-radius:0}
.gym .card>.tbl-wrap .tbl th:first-child,.gym .card>.tbl-wrap .tbl td:first-child{padding-inline-start:var(--cp,var(--s-5))}
.gym .card>.tbl-wrap .tbl th:last-child,.gym .card>.tbl-wrap .tbl td:last-child{padding-inline-end:var(--cp,var(--s-5))}
.gym .tbl tbody tr.clk{transition:background-color var(--t-1)}
.hv-tb tbody tr{transition:opacity var(--t-1)}
.md{display:inline-block;flex-shrink:0;width:10px;height:10px;border-radius:50%;background:var(--ink-4)}
.md.ok,.md.g{background:var(--ok-fill)}.md.warn,.md.y{background:var(--warn-fill)}.md.bad,.md.r{background:var(--bad-fill)}
.md.frz{background:var(--frz)}.md.al{border-radius:2px;background:var(--ink-2);transform:rotate(45deg) scale(.85)} /* an alert note is a dark diamond, apart from the amber expiring dot and balance ring */
.md.bal{background:transparent;box-shadow:inset 0 0 0 2.5px var(--warn-fill)}.md.info,.md.b{background:var(--chart-2)}
.mdots{display:inline-flex;gap:3px;vertical-align:middle}
.mdots:empty{display:none} /* no marks: the name starts on the column edge, under its header */
.stock{font-weight:var(--fw-2);font-variant-numeric:tabular-nums}
.stock.low{color:var(--warn)}.stock.out{color:var(--bad)}
.tree{display:inline-block;width:9px;height:9px;margin:0 var(--s-2) 3px -16px;border-inline-start:1.5px solid var(--line-2);border-bottom:1.5px solid var(--line-2);border-end-start-radius:3px}
[dir=rtl] .tree{margin:0 -16px 3px var(--s-2)}
.drop{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--s-2);padding:var(--s-6) var(--s-5);border:1.5px dashed var(--line-2);border-radius:var(--r-3);background:var(--surface-2);text-align:center;cursor:pointer;transition:border-color var(--t-1),background-color var(--t-1)}
.drop:focus-within{border-color:var(--accent)}
.drop input{position:absolute;width:1px;height:1px;opacity:0}

/* ---------- members: status dots and the quick check-in ---------- */
.cap{display:flex;flex-direction:column;align-items:flex-end;gap:var(--s-1);min-width:84px}
.cap .mbar{min-width:84px;height:6px}

/* ---------- leads: pipeline ---------- */
.kanban{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--s-3);align-items:start}
.kanban.k6{grid-template-columns:repeat(var(--kc,6),minmax(0,1fr));gap:var(--s-2)}
.kcol{display:flex;flex-direction:column;gap:var(--s-2);min-height:120px;padding:var(--s-2);border-radius:var(--r-3);background:var(--fill)}
.kcol>.top{padding:var(--s-1) var(--s-1) 2px}
.kcol strong{font-size:var(--fs-1);font-weight:var(--fw-2);letter-spacing:var(--tr-l);text-transform:uppercase;color:var(--ink-2)}
[dir=rtl] .kcol strong{text-transform:none}
.kc-n{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:22px;padding:0 6px;border-radius:var(--r-pill);background:var(--surface);font-size:var(--fs-1);font-weight:var(--fw-2);font-variant-numeric:tabular-nums}
.kcard{display:flex;flex-direction:column;gap:var(--s-1);padding:var(--s-3);border-radius:var(--r-2);background:var(--surface);font-size:var(--fs-2)}
.kcard small{font-size:var(--fs-1);color:var(--ink-3)}
.kcard.lead{width:100%;border:0;color:var(--ink);text-align:start;cursor:pointer;transition:transform var(--t-1) var(--ease-out),box-shadow var(--t-1)}
.kcard.lead:active{transform:scale(.98)}
.ini{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:24px;height:24px;border-radius:50%;background:var(--accent-soft);color:var(--accent-ink);font-size:var(--fs-1);font-weight:var(--fw-2)}
.fs-pill,.ls-tag{display:inline-flex;align-items:center;align-self:flex-start;gap:var(--s-1);padding:2px var(--s-2);border-radius:var(--r-1);font-size:var(--fs-1);font-weight:var(--fw-2);white-space:nowrap}
.fs-pill.bad,.fs-pill.fs-r,.ls-tag.hot{background:var(--bad-soft);color:var(--bad)}
.fs-pill.warn,.fs-pill.fs-y,.ls-tag.warm{background:var(--warn-soft);color:var(--warn)}
.fs-pill.ok,.fs-pill.fs-b{background:var(--accent-soft);color:var(--accent-ink)}
.fs-pill.none,.fs-pill.fs-n,.ls-tag.cold{background:var(--fill);color:var(--ink-3)}
.ls-tag{margin-inline-start:var(--s-1);vertical-align:middle}
.kcard .ls-tag{margin:2px 0 0}
/* on a pipeline card the score and the follow-up read as one line of coloured text, not two pills */
.kc-meta{display:flex;flex-wrap:wrap;align-items:center;gap:2px var(--s-2);margin-top:2px}
.kc-meta>.ls-tag,.kc-meta>.fs-pill{margin:0;padding:0;background:none}
/* in a list the score is a plain word; only an overdue follow-up takes a colour, amber */
.kc-meta>.ls-tag{color:var(--ink-2)}.kc-meta>.fs-pill.bad,.kc-meta>.fs-pill.fs-r{color:var(--warn)}
.kc-meta>.ls-tag:has(+.fs-pill)::after{content:"·";margin-inline-start:var(--s-2);color:var(--ink-3);font-weight:var(--fw-1)} /* the dot ends the first item, so a wrapped line never starts with it */
.digest .dg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-4)}
.dg-c{display:flex;flex-direction:column;gap:var(--s-1);min-width:0}
.dg-h{display:flex;align-items:center;gap:var(--s-2);padding-bottom:var(--s-2);border-bottom:1px solid var(--line);font-size:var(--fs-1);font-weight:var(--fw-2);letter-spacing:var(--tr-l);text-transform:uppercase;color:var(--ink-3)}
[dir=rtl] .dg-h{text-transform:none}
.dg-h b{margin-inline-start:auto;color:var(--ink);font-size:var(--fs-2);font-variant-numeric:tabular-nums}
.dg-i{display:flex;flex-direction:column;align-items:flex-start;padding:var(--s-1) 0;border:0;background:none;color:var(--ink);font-size:var(--fs-2);font-weight:var(--fw-2);text-align:start}
.dg-i small{font-size:var(--fs-1);font-weight:var(--fw-1);color:var(--ink-3)}
.g-peaks{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:var(--s-2)}
.pk-d{display:flex;flex-direction:column;gap:2px;padding:var(--s-3);border-radius:var(--r-2);background:var(--surface-2)}
.tpl{display:flex;flex-direction:column;gap:var(--s-1)}
.tpl small{padding:0 var(--s-1);font-size:var(--fs-1)}
.tpl-from summary{display:flex;align-items:center;min-height:var(--h-ctl-s);cursor:pointer}
.tpl-from .chips{margin-top:var(--s-2)}

/* ---------- point of sale ---------- */
.pos{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:var(--s-4);align-items:start}
.pos>.stack,.pos>.card{min-width:0}
.pos .seg{overflow-x:auto;max-width:100%}
.pos .seg>button{flex:0 0 auto;padding:0 var(--s-3)}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(152px,1fr));gap:var(--s-2)}
.tile{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-1);min-height:108px;padding:var(--s-3) var(--s-5);border:0;border-radius:var(--r-2);background:var(--surface);color:var(--ink);text-align:start;transition:transform var(--t-1) var(--ease-out),box-shadow var(--t-1)}
.tile:active:not(:disabled){transform:scale(.97);box-shadow:inset 0 0 0 2px var(--accent)}
.tile:disabled{opacity:.45;cursor:not-allowed}
.tile b{font-size:var(--fs-2);font-weight:var(--fw-2);line-height:var(--lh-t);text-wrap:balance}
.tile small{font-size:var(--fs-1);color:var(--ink-3)}
.tile-p{margin-top:auto;font-family:var(--font-d);font-variation-settings:'wdth' var(--d-wdth);font-stretch:72%;font-weight:var(--fw-3);font-size:var(--fs-4);font-variant-numeric:tabular-nums}
.ticket{position:sticky;top:var(--s-4);gap:var(--s-3)}
.cust{display:flex;align-items:center;gap:var(--s-3)}
.cust .grow small{font-size:var(--fs-1)}
.lines{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.line{display:grid;grid-template-columns:minmax(0,1fr) auto 84px 32px;align-items:center;gap:var(--s-2);padding:var(--s-2) 0;border-bottom:1px solid var(--line)}
.line .grow{gap:0}
.line .grow b{font-size:var(--fs-2);font-weight:var(--fw-2)}
.line .grow small{font-size:var(--fs-1);color:var(--ink-3)}
.lt{font-size:var(--fs-2);text-align:end;font-variant-numeric:tabular-nums}
.qty-s{display:inline-flex;align-items:center;border-radius:var(--r-pill);background:var(--fill)}
.qty-s button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:0;background:none;color:var(--ink)}
.qty-s b{min-width:24px;font-size:var(--fs-2);text-align:center;font-variant-numeric:tabular-nums}
.disc{display:flex;flex-direction:column;gap:var(--s-2)}
.disc .chips{gap:var(--s-1)}
.disc .chip{min-height:32px;padding:0 var(--s-3);font-size:var(--fs-1)}
.receipt{display:flex;flex-direction:column;gap:var(--s-1);padding:var(--s-4);border:1px dashed var(--line-2);border-radius:var(--r-2)}
@media (max-width:1180px){.pos{grid-template-columns:minmax(0,1fr) 340px}}
@media (max-width:980px){.pos{grid-template-columns:minmax(0,1fr)}.ticket{position:static}}
@media (max-width:700px){.line{grid-template-columns:minmax(0,1fr) auto 70px 28px}}

/* ---------- classes: month calendar ---------- */
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--s-1)}
.cal-d{display:flex;flex-direction:column;align-items:stretch;gap:3px;min-height:96px;padding:var(--s-2);border:0;border-radius:var(--r-2);background:var(--surface);color:var(--ink);text-align:start;transition:background-color var(--t-1)}
.cal-d.off{background:transparent;color:var(--ink-3)}
.cal-d.today{box-shadow:inset 0 0 0 1.5px var(--ink)}
.cal-d.sel{background:var(--accent);color:var(--on-accent);box-shadow:none}
.cal-d.sel .cal-pill{background:rgba(0,0,0,.2);color:var(--on-accent)}
.cal-n{font-size:var(--fs-2);font-weight:var(--fw-2);font-variant-numeric:tabular-nums}
.cal-d{container-type:inline-size}
.cal-pill{display:flex;gap:4px;padding:2px 6px;border-radius:var(--r-1);background:var(--fill);font-size:var(--fs-1);line-height:1.3}
.cal-pill>*{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-pill b{flex-shrink:0;font-weight:var(--fw-2)}
/* narrow day cells: time above the class name, so the name keeps its first words */
@container (max-width:132px){.cal-pill{flex-direction:column;gap:0}}
.cal-more{font-size:var(--fs-1);color:var(--ink-3)}
@media (max-width:900px){.cal-d{min-height:72px}.cal-pill{display:none}}

/* ---------- rooms: day grid ---------- */
.rgrid{display:grid;gap:0 var(--s-1);min-width:560px}
.k-class,.dot.k-class{background:var(--accent)}.k-pt,.dot.k-pt{background:var(--blue-800)}.k-rental,.dot.k-rental{background:#4F6D9A}.k-maint,.dot.k-maint{background:repeating-linear-gradient(135deg,var(--ink-3) 0 5px,var(--ink-2) 5px 10px)}.k-other,.dot.k-other{background:var(--surface);box-shadow:inset 0 0 0 1.5px var(--ink-3)}.rg-it.k-other{color:var(--ink)}
.rooms-card{padding:var(--s-3);overflow-x:auto}
.rooms-card .legend2{padding:2px var(--s-1) var(--s-3)}
.rg-h{position:sticky;top:0;display:flex;flex-direction:column;padding:var(--s-1) var(--s-2) var(--s-3);font-size:var(--fs-2)}
.rg-h small{font-size:var(--fs-1);color:var(--ink-3)}
.rg-times{position:relative}
.rg-times span{position:absolute;inset-inline-end:var(--s-2);color:var(--ink-3);font-size:var(--fs-1);transform:translateY(-6px);font-variant-numeric:tabular-nums}
.rg-col{position:relative;border-radius:var(--r-2);background:var(--surface-2);overflow:hidden}
.rg-slot{position:absolute;left:0;right:0;border:0;border-top:1px solid var(--line);background:transparent;cursor:copy}
.rg-it{position:absolute;left:var(--s-1);right:var(--s-1);display:flex;flex-direction:column;padding:var(--s-1) var(--s-2);border:0;border-radius:var(--r-1);color:#FFFFFF;font-size:var(--fs-1);line-height:1.25;text-align:start;overflow:hidden}
.rg-it b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rg-it small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
[dir=rtl] .rg-it small[dir]{text-align:right}
.rg-it.tight{flex-direction:row;align-items:center;gap:var(--s-1);padding:2px var(--s-2)}
.rg-it.tight small{display:none}
.rg-now{position:absolute;left:0;right:0;height:2px;background:var(--bad-fill);pointer-events:none}
.rm{display:flex;flex-direction:column;gap:var(--s-2)}

/* ---------- targets ---------- */
.tg-head{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:var(--s-4);align-items:end}
.stream-btn{display:flex;flex-direction:column;gap:var(--s-1);padding:var(--s-4);border:0;border-radius:var(--r-3);background:transparent;box-shadow:inset 0 0 0 1px var(--line);color:var(--ink);text-align:start;transition:box-shadow var(--t-1),transform var(--t-1) var(--ease-out)}
.stream-btn:active{transform:scale(.99)}
.stream-btn.on{background:var(--surface);box-shadow:inset 0 0 0 2px var(--accent)}
/* quarter totals sit under their three months: the same 12-column grid as the month bars */
.gym main .qsum{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--s-2);margin-top:var(--s-2)}
.gym main .qsum>.stat{grid-column:span 3;border:0!important;padding:0!important}
.savebar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--s-3)}
.mchips{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--s-1)}
.mchip{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;min-height:56px;padding:var(--s-2) 2px;border:0;border-radius:var(--r-2);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink);transition:background-color var(--t-1),color var(--t-1)}
.mchip b{font-size:var(--fs-1);font-weight:var(--fw-2);text-transform:uppercase}
.mchip small{font-size:var(--fs-1);color:var(--ink-3);font-variant-numeric:tabular-nums}
.mchip.on{background:var(--accent);box-shadow:none;color:var(--on-accent)}
.mchip.on small{color:var(--on-accent)}
.mchip i{position:absolute;top:5px;inset-inline-end:5px;width:6px;height:6px;border-radius:50%;background:transparent}
.mchip i.ok{background:var(--ok-fill)}.mchip i.part{background:var(--warn-fill)}
.mchip.on i.ok,.mchip.on i.part{box-shadow:0 0 0 1.5px var(--accent)}
.alloc{display:flex;flex-direction:column;gap:var(--s-2);padding-top:var(--s-3);border-top:1px solid var(--line)} /* a row of the card, not a box inside it */
.alloc-t{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s-3);font-size:var(--fs-2)}
.alloc-s{font-weight:var(--fw-2);font-variant-numeric:tabular-nums}
.alloc.a-ok .alloc-s{color:var(--ok)}.alloc.a-ok .alloc-bar>i{background:var(--ok-fill)}

.alloc-tag{margin-top:var(--s-1);font-size:var(--fs-1);font-weight:var(--fw-2)}
.alloc-tag.a-ok{color:var(--ok)}.alloc-tag.a-warn{color:var(--warn)}
.alloc-act{min-height:var(--h-ctl-s);display:flex;align-items:center}
/* monthly split: drag each bar */
/* twelve monthly targets: drag a bar or type the amount under it; six a row on tablets, four on phones */
.mbars{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--s-2);align-items:end;-webkit-user-select:none;user-select:none}
.mb-in{width:100%;min-width:0;padding:0 var(--s-1);text-align:center;font-variant-numeric:tabular-nums;-webkit-user-select:text;user-select:text}
.mb-col{display:flex;flex-direction:column;align-items:stretch;gap:var(--s-1);min-width:0}
.mb-pct{min-height:16px;font-size:var(--fs-1);color:var(--ink-3);text-align:center;font-variant-numeric:tabular-nums}
.mb-track{position:relative;height:180px;border-radius:var(--r-2);background:var(--fill);overflow:hidden;cursor:ns-resize;touch-action:none}
.mb-track:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mb-fill{position:absolute;left:0;right:0;bottom:0;border-radius:var(--r-1) var(--r-1) 0 0;background:var(--accent);transition:height var(--t-2) var(--ease-out)}
.mb-fill::before{content:'';position:absolute;left:30%;right:30%;top:5px;height:3px;border-radius:2px;background:rgba(255,255,255,.7)}
.mb-act{position:absolute;left:0;right:0;height:0;border-top:2px dashed var(--ink);pointer-events:none} /* last year: a dashed line, unlike the solid drag handle */
.mb-m{font-size:var(--fs-1);font-weight:var(--fw-2);text-transform:uppercase;color:var(--ink-3);text-align:center}
[dir=rtl] .mb-m{text-transform:none}
@media (max-width:860px){.tg-head{grid-template-columns:minmax(0,1fr)}.mb-track{height:120px}.mbars{grid-template-columns:repeat(6,minmax(0,1fr));row-gap:var(--s-4)}}
@media (max-width:480px){.mbars{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:700px){.mchips{grid-template-columns:repeat(6,minmax(0,1fr))}.g3:has(.stream-btn){grid-template-columns:minmax(0,1fr)}.stream-btn{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:var(--s-1) var(--s-3)}}

/* ---------- reports ---------- */
/* a page's facts: the lead number, then smaller facts on one line; no boxes and no dividers */
.kpis{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--s-3) var(--s-6);padding:0;background:none}
.kpi{display:flex;flex-direction:column;gap:2px;min-width:0;max-width:280px;padding:0}
.kpi+.kpi b{font-size:var(--fs-4)}
.kpi span{font-size:var(--fs-2);color:var(--ink-3)}
.kpi b{font-size:var(--fs-5);color:var(--ink)}
.kpi small{font-size:var(--fs-2);color:var(--ink-3)}
.kpi.pos b{color:var(--ok)}.kpi.neg b{color:var(--warn)}
.kpi b .stars{margin-inline-start:var(--s-2);vertical-align:middle}
.kpi b .pg-of{margin-inline-start:2px;font-family:var(--font);font-variation-settings:normal;font-stretch:100%;font-size:var(--fs-2);font-weight:var(--fw-2);color:var(--ink-3)}
.rep-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--s-3)}
.rep-wrap{margin:0 calc(-1 * var(--s-1))}
.tbl.rep td:first-child{white-space:nowrap}
@media (max-width:700px){.tbl.rep td:first-child{white-space:normal}}
.tbl.rep th:first-child,.tbl.rep td:first-child{position:sticky;inset-inline-start:0;z-index:1;min-width:210px;background:var(--surface)}
.tbl.rep tr.sec td{padding:var(--s-5) var(--s-3) var(--s-2);border-top:0;background:transparent;color:var(--ink-3);font-size:var(--fs-1);font-weight:var(--fw-2);letter-spacing:var(--tr-l);text-transform:uppercase}
[dir=rtl] .tbl.rep tr.sec td{text-transform:none}
.tbl.rep tr.rh td{font-weight:var(--fw-2)}
.tbl.rep tr.rc td{padding-block:6px;border-top-color:transparent;color:var(--ink-2)}
.tbl.rep tr.rc td:first-child{padding-inline-start:30px}
.tbl.rep tr.b td{border-top:1px solid var(--line-2);background:var(--surface-2);font-weight:var(--fw-2)}
.tbl.rep th.cur,.tbl.rep td.cur{background:var(--accent-soft)}
.tbl.rep th.cur{color:var(--accent-ink)}
.tbl.rep td.totc,.tbl.rep th.totc{border-inline-start:1px solid var(--line);font-weight:var(--fw-2)}
.exp-row{display:grid;grid-template-columns:110px minmax(0,1fr);align-items:center;gap:var(--s-3);font-size:var(--fs-2);font-weight:var(--fw-2)}
.acq-g{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}
.acq-t{display:flex;flex-direction:column;gap:2px;min-width:0;padding:0 var(--s-4)}
.acq-t:first-child{padding-inline-start:0}
.acq-t+.acq-t{border-inline-start:1px solid var(--line)}
.acq-l{font-size:var(--fs-2);font-weight:var(--fw-2)}
.acq-v{margin:2px 0;font-size:var(--fs-5)}
.acq-d{min-height:32px;font-size:var(--fs-1);line-height:var(--lh-t);color:var(--ink-3)}
.acq-c{display:flex;flex-direction:column;gap:2px;margin-top:var(--s-2);padding-top:var(--s-2);border-top:1px solid var(--line)}
.ch-lay{display:grid;grid-template-columns:150px minmax(0,1fr);gap:var(--s-5);align-items:center}
.fb{display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-3) 0;border-top:1px solid var(--line)}
.fb-s{display:flex;flex-wrap:wrap;gap:var(--s-1)}
.fb-s span{padding:2px var(--s-2);border-radius:var(--r-1);background:var(--fill);font-size:var(--fs-1)}
.fb-s span.lo{background:var(--warn-soft);color:var(--warn);font-weight:var(--fw-2)}
.sec-t{font-size:var(--fs-3);font-weight:var(--fw-2)}
.sec-t .sm{margin-inline-start:var(--s-2);font-weight:var(--fw-1)}
@media (max-width:1100px){.acq-g{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:var(--s-4)}.acq-t:nth-child(3){padding-inline-start:0;border-inline-start:0}}
@media (max-width:700px){.acq-g{grid-template-columns:minmax(0,1fr)}.acq-t{padding:0;border:0!important}.ch-lay{grid-template-columns:minmax(0,1fr);justify-items:center}.tbl.rep th:first-child,.tbl.rep td:first-child{min-width:150px}}

/* ---------- import ---------- */
.imp-steps{display:flex;flex-wrap:wrap;gap:var(--s-2);margin:2px 0;padding:0;list-style:none}
.imp-steps li{display:flex;align-items:center;gap:var(--s-2);padding:var(--s-1) var(--s-3) var(--s-1) var(--s-1);border-radius:var(--r-pill);background:var(--fill);color:var(--ink-3);font-size:var(--fs-2)}
.imp-steps li b{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--surface);font-size:var(--fs-1)}
.imp-steps li.on{background:var(--accent-soft);color:var(--ink)}
.imp-steps li.on b{background:var(--accent);color:var(--on-accent)}
.imp-steps li.done b{background:var(--ok-fill);color:#FFFFFF}
.imp-types{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-2)}
.imp-type{display:flex;flex-direction:column;gap:2px;padding:var(--s-3) var(--s-4);border:0;border-radius:var(--r-2);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink);text-align:start;transition:box-shadow var(--t-1)}
.imp-type small{font-size:var(--fs-1);line-height:var(--lh-t);color:var(--ink-3)}
.imp-type.on{box-shadow:inset 0 0 0 2px var(--accent)}
.imp-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:var(--s-3);align-items:stretch}
.imp-box{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-2);padding:var(--s-4);border-radius:var(--r-3);background:var(--surface-2)}
.imp-sum{display:flex;flex-wrap:wrap;gap:var(--s-2)}
.isum{display:flex;align-items:baseline;gap:var(--s-2);padding:var(--s-2) var(--s-3);border:0;border-radius:var(--r-2);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink-3);font-size:var(--fs-2)}
.isum b{font-size:var(--fs-4);color:var(--ink);font-variant-numeric:tabular-nums}
.isum.on{box-shadow:inset 0 0 0 2px var(--ink)}
.isum.g b{color:var(--ok)}.isum.b b{color:var(--accent-ink)}.isum.r b{color:var(--bad)}
.imp-grid{max-height:60vh;border-radius:var(--r-2);box-shadow:inset 0 0 0 1px var(--line);overflow:auto}
.imp-grid .tbl th{position:sticky;top:0;z-index:2;background:var(--surface)}
.imp-grid .tbl td{padding:var(--s-1) 6px}
.imp-grid tr.bad td{background:var(--bad-soft)}
.res{padding:2px var(--s-2);border-radius:var(--r-1);font-size:var(--fs-1);font-weight:var(--fw-2);white-space:nowrap}
.res.g{background:var(--ok-soft);color:var(--ok)}.res.b{background:var(--accent-soft);color:var(--accent-ink)}.res.r{background:var(--bad-soft);color:var(--bad)}
.res-n{display:block;max-width:220px;margin-top:2px;font-size:var(--fs-1);white-space:normal}
@media (max-width:1100px){.imp-types{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){.imp-row{grid-template-columns:minmax(0,1fr)}}

/* ---------- settings ---------- */
.set-lay{display:grid;grid-template-columns:220px minmax(0,1fr);gap:var(--s-5);align-items:start}
.set-lay>*,.set-body>*{min-width:0}
.set-body{display:flex;flex-direction:column;gap:var(--s-4)}
.set-nav{position:sticky;top:var(--s-4);display:flex;flex-direction:column;gap:2px}
.set-nav button{min-height:var(--h-ctl-s);padding:0 var(--s-3);border:0;border-radius:var(--r-2);background:none;color:var(--ink-2);font-size:var(--fs-2);font-weight:var(--fw-2);text-align:start;transition:background-color var(--t-1),color var(--t-1)}
.set-nav button.on{background:var(--accent-soft);color:var(--accent-ink)}
.tbl.pmx th.c,.tbl.pmx td.c{padding:var(--s-2) 6px;text-align:center}
.tbl.pmx th{min-width:64px;font-size:var(--fs-1);line-height:var(--lh-t);white-space:normal;vertical-align:bottom}
.tbl.pmx td:first-child{width:200px;white-space:normal}
.lock-on{color:var(--ink-3);font-weight:var(--fw-2)}
/* menu editor */
.nav-ed{display:flex;flex-direction:column;gap:var(--s-3);max-height:55vh;overflow:auto}
.nav-ed-g{display:flex;flex-direction:column;gap:2px;padding:var(--s-2);border-radius:var(--r-2);background:var(--surface-2)}
.nav-ed-t{padding:var(--s-1) var(--s-2);border:0;border-radius:var(--r-1);background:transparent;color:var(--ink-3);font-size:var(--fs-1);font-weight:var(--fw-2);letter-spacing:var(--tr-l);text-transform:uppercase}
.nav-ed-t:focus{outline:1.5px solid var(--line-2)}
.nav-ed-i{display:flex;align-items:center;gap:var(--s-3);padding:2px var(--s-1) 2px var(--s-3);border-radius:var(--r-1);font-size:var(--fs-2);font-weight:var(--fw-2)}
.nav-ed-i.hid{color:var(--ink-3)}
.nav-ed-i.hid .grow{text-decoration:line-through}
.nav-ed-i .icon-btn.on{color:var(--accent-ink)}
.nav-ed-empty{padding:var(--s-2) var(--s-3)}
@media (max-width:980px){.set-lay{grid-template-columns:minmax(0,1fr)}.set-nav{position:static;flex-direction:row;overflow-x:auto;scrollbar-width:none}.set-nav button{flex-shrink:0;white-space:nowrap}}

/* ---------- equipment ---------- */
.eq-note,.fw-note{display:block}
.eq-code{padding:2px 6px;border-radius:var(--r-1);background:var(--fill);font-family:var(--font);font-variant-numeric:tabular-nums;font-size:var(--fs-1);font-weight:var(--fw-2);letter-spacing:.04em;white-space:nowrap}
.eq-codes{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:0;border:0;background:none;color:var(--ink);text-align:start}
.eq-codes small{font-size:var(--fs-1);color:var(--ink-3)}
.eq-codes i{color:var(--warn);font-size:var(--fs-1);font-style:normal;font-weight:var(--fw-2)}
.eq-units{display:flex;flex-direction:column;gap:var(--s-1);max-height:60vh;overflow:auto}
.eq-u{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-2) var(--s-3);border-radius:var(--r-2);background:var(--surface-2)}
.eq-u .grow{display:flex;flex-direction:column}
.eq-u.bad{background:var(--warn-soft)}
.eq-in{border-color:var(--line-2);font-family:var(--font);font-variant-numeric:tabular-nums;letter-spacing:.2em;text-transform:uppercase}
/* printable QR labels (always light, it is paper) */
.eq-ov{align-items:flex-start;padding:var(--s-5);overflow:auto}
.eq-labels{display:flex;flex-direction:column;gap:var(--s-4);width:100%;max-width:900px;padding:var(--s-5);border-radius:var(--r-3);background:#FFFFFF;color:#0A1633;color-scheme:light;--ink:#0A1633;--ink-2:#334155;--ink-3:#64748B;--line:#E2E8F0;--line-2:#CBD5E1;--fill:#F1F5F9;--surface:#FFFFFF}
.eq-labels .h2{color:#0A1633}
.eq-lh{position:sticky;top:calc(-1 * var(--s-5));z-index:2;margin-top:calc(-1 * var(--s-3));padding:var(--s-3) 0 var(--s-2);background:#FFFFFF}
.eq-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-2)}
.eq-lab{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3);border:1.5px dashed #94A3B8;border-radius:var(--r-2);break-inside:avoid}
.eq-lab>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.eq-lab b{font-family:var(--font);font-variant-numeric:tabular-nums;font-size:var(--fs-4);letter-spacing:.04em}
.eq-lab span{font-size:var(--fs-1);font-weight:var(--fw-2)}
.eq-lab small{font-size:var(--fs-1);line-height:var(--lh-t);color:#5C6577}
.eq-lab .qr-img{border-radius:var(--r-1)}
.eq-labels .chip{background:#F1F5F9;color:#0A1633}
.eq-labels .chip.on{background:#0A1633;color:#FFFFFF}
@media (max-width:700px){.eq-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media print{.eq-labels,.eq-labels *{visibility:visible!important}.eq-labels{position:absolute;left:0;top:0;max-width:none;padding:0;border-radius:0}.eq-ov{position:absolute;inset:0;padding:0;background:#FFFFFF}}

/* ---------- arrivals board (check-in desk) ---------- */
.arr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));column-gap:var(--s-5)}
.arr{display:flex;align-items:center;gap:var(--s-3);min-height:56px;padding:var(--s-2) 0;border-bottom:1px solid var(--line)}
.arr-t{display:flex;flex-direction:column;min-width:0;flex:1}
.arr-t b{font-size:var(--fs-2);line-height:var(--lh-t);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.arr small{font-size:var(--fs-1)}
.arr-r{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-variant-numeric:tabular-nums}
.st-ok{color:var(--ink-2)}
.arr.bad{background:var(--warn-soft)}

/* ---------- coaches: performance cards, table, detail ---------- */
.pf-row{display:grid;grid-template-columns:88px minmax(0,1fr);align-items:center;gap:var(--s-3)}
.pf-k{font-size:var(--fs-2);font-weight:var(--fw-2);color:var(--ink-3)}
.pf-vars{display:flex;flex-wrap:wrap;gap:2px;padding:2px;border-radius:var(--r-2);background:var(--fill)}
.vf{flex:1 1 auto;display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 var(--s-2) 0 0;border:0;border-radius:10px;background:transparent;color:var(--ink-2);transition:background-color var(--t-2) var(--ease-out),color var(--t-2)}
.vf-b{min-height:40px;padding:0 var(--s-1) 0 var(--s-3);border:0;border-radius:10px;background:transparent;color:inherit;font-size:var(--fs-2);font-weight:var(--fw-2);cursor:pointer}
[dir=rtl] .vf-b{padding:0 var(--s-3) 0 var(--s-1)}
.vf.on{background:var(--surface);color:var(--ink);box-shadow:var(--elev-1)}
.vf .info{margin-inline-start:0}
.pf-ft{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--s-3) var(--s-6);padding-top:var(--s-4);border-top:1px solid var(--line)}
.pf-avg{display:flex;align-items:baseline;gap:var(--s-2);font-size:var(--fs-2);font-weight:var(--fw-2);color:var(--ink-3)}
.pf-avg b{font-family:var(--font-d);font-variation-settings:'wdth' var(--d-wdth);font-stretch:72%;font-weight:var(--fw-3);font-size:var(--fs-5);line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
.pf-avg small{font-size:var(--fs-2);color:var(--ink-3)}
.pf-rg{display:flex;flex-wrap:wrap;gap:var(--s-1) var(--s-5);font-size:var(--fs-2);color:var(--ink-3)}
.pf-rg span{display:inline-flex;align-items:center;gap:var(--s-2);white-space:nowrap}
.pf-rg i{flex:none;width:8px;height:8px;border-radius:50%}
.pf-rg b{color:var(--ink);font-weight:var(--fw-2)}
i.mx-up{background:var(--ok-fill)}i.mx-stall{background:var(--warn-fill)}
.pf-rg i.lv-hi{background:var(--ok-fill)}.pf-rg i.lv-mid{background:var(--accent)}.pf-rg i.lv-lo{background:var(--bad-fill)}
.pf-none{grid-column:1/-1;align-items:flex-start}
.pgb{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:40px;padding:0 var(--s-4);border:0;border-radius:var(--r-2);background:var(--fill);color:var(--ink);font-size:var(--fs-2);font-weight:var(--fw-2);white-space:nowrap;transition:background-color var(--t-1),transform var(--t-1) var(--ease-out)}
.pgb:active{transform:scale(.98)}
.pgb.sm{min-height:var(--h-ctl-s);padding:0 var(--s-3)}
.pgb.pri{background:var(--accent);color:var(--on-accent)}
.pg-sort .seg>button{flex:0 0 auto}
.tcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--s-4)}
.tcard{position:relative;display:flex;flex-direction:column;gap:var(--s-4);padding:var(--s-5);border-radius:var(--r-3);background:var(--surface);color:var(--ink);text-align:start;cursor:pointer;transition:box-shadow var(--t-2) var(--ease-out),transform var(--t-2) var(--ease-out)}
.tcard:has(.tc-hit:focus-visible){box-shadow:0 0 0 2px var(--accent)}
.tc-hit{position:absolute;inset:0;z-index:1;width:100%;padding:0;border:0;border-radius:inherit;background:transparent;cursor:pointer}
.tc-hit:focus-visible{outline:none}
.tc-top{display:flex;align-items:center;gap:var(--s-3)}
.tc-top b{font-size:var(--fs-3);font-weight:var(--fw-2);line-height:var(--lh-t)}
.tc-spec{display:flex;flex-wrap:wrap;align-items:center;margin-top:2px}
.tc-spec i{color:var(--ink-3);font-size:var(--fs-2);font-style:normal}
.tc-spec i+i::before{content:'';display:inline-block;width:3px;height:3px;margin:0 var(--s-2);border-radius:50%;background:var(--line-2);vertical-align:middle}
/* progress and rating side by side as plain numbers split by a hairline, not boxes inside the card */
.tc-pair{display:grid;grid-template-columns:1fr 1fr;gap:0}
.tc-pair>.tc-m+.tc-m{border-inline-start:1px solid var(--line)}
.tc-m{position:relative;display:flex;flex-direction:column;min-width:0;padding:var(--s-1) var(--s-3);border:0;background:transparent}.tc-m:first-child{padding-inline-start:0}
.tc-m.sel>b{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px;text-decoration-color:var(--accent)}
.tc-m>span{display:flex;align-items:center;font-size:var(--fs-1);font-weight:var(--fw-2);color:var(--ink-3);white-space:nowrap}
.tc-m.sel>span{color:var(--accent-ink)}
.tc-m>b{margin-top:var(--s-2);font-family:var(--font-d);font-variation-settings:'wdth' var(--d-wdth);font-stretch:72%;font-weight:var(--fw-3);font-size:var(--fs-6);line-height:1;font-variant-numeric:tabular-nums lining-nums}
.tc-m>b small{margin-inline-start:2px;font-family:var(--font);font-variation-settings:normal;font-stretch:100%;font-size:var(--fs-2);font-weight:var(--fw-2);color:var(--ink-3)}
.tc-m>em{display:flex;align-items:flex-start;gap:6px;min-height:16px;margin-top:var(--s-2);font-size:var(--fs-1);font-style:normal;font-weight:var(--fw-2);line-height:var(--lh-t);color:var(--ink-3)}
.tc-m>em i{font-style:normal;font-weight:var(--fw-1)}
.tc-m>em .lvd,.lvd{flex:none;width:7px;height:7px;margin-top:4px;border-radius:50%;background:currentColor}
.tc-m.lo>em{color:var(--warn)}
.tc-sel{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-radius:var(--r-2);background:var(--accent-soft);font-size:var(--fs-2);font-weight:var(--fw-2);color:var(--ink-2)}
.tc-sel .pg-bar{grid-column:auto;height:6px}
.tc-sel>b{font-family:var(--font-d);font-variation-settings:'wdth' var(--d-wdth);font-stretch:72%;font-weight:var(--fw-3);font-size:var(--fs-4);line-height:1;font-variant-numeric:tabular-nums}
.tc-sel>b.hi{color:var(--ok)}.tc-sel>b.lo{color:var(--bad)}
.tc-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding-top:var(--s-4);border-top:1px solid var(--line)}
.tc-stats span{display:flex;flex-direction:column;min-width:0;padding-inline-end:var(--s-3);font-size:var(--fs-1);line-height:var(--lh-t);color:var(--ink-3)}
.tc-stats span+span{padding-inline-start:var(--s-3);border-inline-start:1px solid var(--line)}
.tc-stats b{margin-bottom:var(--s-1);font-family:var(--font-d);font-variation-settings:'wdth' var(--d-wdth);font-stretch:72%;font-weight:var(--fw-3);font-size:var(--fs-5);line-height:1.05;color:var(--ink);font-variant-numeric:tabular-nums}
.tc-stats .warnc b{color:var(--warn)}
.tc-tg{display:flex;flex-direction:column;gap:var(--s-2)}
.tc-tg .top{align-items:baseline}
.tc-tg small{font-size:var(--fs-1)}
.tc-tg .alloc-bar{height:4px}
.tcard .pg-mixw{gap:var(--s-2)}
.tcard .pg-mix{height:6px}
/* where clients stand: stacked bar and legend */
.pg-mixw{display:flex;flex-direction:column;gap:var(--s-2);min-width:0}
.pg-mix{display:flex;gap:2px;height:10px;border-radius:var(--r-pill);background:var(--fill);overflow:hidden}
.pg-mix.tall{height:14px}
.pg-mix i{display:block;flex-basis:0;min-width:4px}
.pg-lg{display:flex;flex-wrap:wrap;gap:var(--s-1) var(--s-3);font-size:var(--fs-1);line-height:var(--lh-t);color:var(--ink-3)}
.pg-lg span{display:inline-flex;align-items:center;gap:var(--s-1);white-space:nowrap}
.pg-lg i{display:inline-block;flex-shrink:0;width:8px;height:8px;border-radius:50%}
.pg-lg b{color:var(--ink);font-weight:var(--fw-2);font-variant-numeric:tabular-nums}
/* table view */
.tbl.ptr td.c,.tbl.ptr th.c,.tbl.pgt td.c,.tbl.pgt th.c{text-align:end}
.tbl.ptr td.hc,.tbl.pgt td.hc{font-weight:var(--fw-2);font-variant-numeric:tabular-nums}
/* scores stay plain numbers; only a low one is marked, in text colour */
.tbl.ptr td.hc.lo,.tbl.pgt td.hc.lo{color:var(--warn)}
.tbl.ptr td.hc.b,.tbl.pgt td.hc.b{font-weight:var(--fw-3)}
.tbl.pgt th,.tbl.pgt td{padding-inline:var(--s-2)}
.tbl.pgt th,.tbl.pgt th.mixh,.tbl.pgt td:first-child{white-space:nowrap}
.tbl.pgt .pg-mix{width:104px;margin:0 auto}
.tbl.pgt tr.pg-team td{border-top:2px solid var(--line);background:var(--surface-2);color:var(--ink-2)}
.tbl.pgt tr.pg-team td.hc{background:var(--surface-2)} /* the whole total row shares one fill */
.tbl.pgt th.sel{color:var(--ink);box-shadow:inset 0 -2px 0 var(--accent)}
.tbl.pgt td.sel{font-weight:var(--fw-2)}
.tbl.pgt th .info{margin-inline-start:var(--s-1)}
.pg-notes{display:flex;flex-direction:column;border-radius:var(--r-2);box-shadow:inset 0 0 0 1px var(--line);overflow:hidden}
.pg-n{display:grid;grid-template-columns:10px 150px minmax(0,1fr);align-items:baseline;gap:var(--s-3);padding:var(--s-3) var(--s-4);font-size:var(--fs-2);line-height:var(--lh-b)}
.pg-n+.pg-n{border-top:1px solid var(--line)}
.pg-n>i{align-self:center;width:8px;height:8px;border-radius:50%;background:var(--warn-fill)}
.pg-n.gd>i{background:var(--ok-fill)}
.pg-n>b{font-weight:var(--fw-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pg-n>span{color:var(--ink-2)}
/* how the score is calculated */
.pg-calc{display:flex;flex-direction:column;gap:var(--s-3);margin-top:var(--s-2);padding-top:var(--s-4);border-top:1px solid var(--line)}
.pg-calc>p{margin:0;font-size:var(--fs-2);line-height:var(--lh-b);color:var(--ink-2)}
.pg-wt{display:flex;gap:3px;height:12px;border-radius:var(--r-pill);overflow:hidden}
.pg-wt i{display:block;flex-basis:0;min-width:4px}
.pg-wl{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--s-4)}
.pg-wi{display:flex;flex-direction:column;gap:var(--s-1);min-width:0;font-size:var(--fs-2);line-height:var(--lh-b);color:var(--ink-2)}
.pg-wi>b{display:flex;align-items:center;gap:var(--s-2);font-size:var(--fs-2);color:var(--ink)}
.pg-wi>b>i{display:block;flex-shrink:0;width:10px;height:10px;border-radius:3px}
.pg-w{margin-inline-start:auto;color:var(--ink-3);font-weight:var(--fw-2);font-variant-numeric:tabular-nums}
/* one coach */
.th-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:'id rm' 'sc sc';row-gap:var(--s-5);padding:var(--s-5)}
.th-hero>.th-id{grid-area:id}
.th-hero>.btn-sm{grid-area:rm;align-self:start}
.th-id{display:flex;align-items:center;gap:var(--s-4)}
.th-id .avatar{background:rgba(255,255,255,.12);color:var(--on-navy)}
.th-scores{grid-area:sc;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-6);padding-top:var(--s-5);border-top:1px solid var(--navy-line)}
.th-scores .th-score+.th-score{padding-inline-start:var(--s-6);border-inline-start:1px solid var(--navy-line)}
.th-score{display:flex;align-items:center;gap:var(--s-3);color:var(--on-navy)}
.th-score>div{display:flex;flex-direction:column;gap:2px}
.th-score small{font-size:var(--fs-2);color:var(--on-navy-3)}
.th-score .huge{color:var(--on-navy)}
.th-k{font-size:var(--fs-2);font-weight:var(--fw-2);color:var(--on-navy)}
.btn-sm.ghost-d{background:transparent;box-shadow:inset 0 0 0 1px var(--navy-line);color:#FFB3AE}
.ptr-lay{display:grid;grid-template-columns:minmax(0,280px) minmax(0,1fr) minmax(0,260px);gap:var(--s-6);align-items:center}
.pg-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:var(--s-3)}
.pg-badge{display:inline-flex;align-items:center;min-height:28px;padding:0 var(--s-3);border-radius:var(--r-pill);background:var(--fill);color:var(--ink);font-size:var(--fs-2);font-weight:var(--fw-2);white-space:nowrap}
.pg-badge{background:var(--fill);color:var(--ink-2)}.pg-badge.lo{background:var(--warn-soft);color:var(--warn)}
.pg-lay{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:var(--s-6);align-items:start;margin-top:var(--s-1)}
.pg-st{display:flex;flex-direction:column;margin-top:var(--s-1)}
.pg-st>div{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:var(--s-3);padding:var(--s-2) 0;border-top:1px solid var(--line)}
.pg-st>div:first-child{border-top:0}
.pg-st>div>i{width:10px;height:10px;border-radius:50%}
.pg-st span{display:flex;flex-direction:column;gap:2px;min-width:0}
.pg-st strong{font-size:var(--fs-2);font-weight:var(--fw-2)}
.pg-st small{font-size:var(--fs-1);line-height:var(--lh-t);color:var(--ink-3)}
.pg-st b{font-size:var(--fs-4);font-variant-numeric:tabular-nums}
.pg-st .z{opacity:.5}
.pg-key{display:inline-flex;align-items:center;gap:var(--s-1);color:var(--ink-3);font-size:var(--fs-1);font-weight:var(--fw-2);letter-spacing:0;text-transform:none}
.pg-key i{display:inline-block;width:2px;height:12px;border-radius:1px;background:var(--ink-2);opacity:.55}
.pg-p{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--s-2) var(--s-3);padding:var(--s-3) 0;border-top:1px solid var(--line)}
.lab+.pg-p{border-top:0}
.pg-pl{display:flex;flex-direction:column;gap:2px;min-width:0}
.pg-pl strong{font-size:var(--fs-2);font-weight:var(--fw-2)}
.pg-pl small{font-size:var(--fs-1);line-height:var(--lh-t);color:var(--ink-3)}
.pg-p>b{font-family:var(--font-d);font-variation-settings:'wdth' var(--d-wdth);font-stretch:72%;font-weight:var(--fw-3);font-size:var(--fs-4);font-variant-numeric:tabular-nums}
.pg-p>b.lo{color:var(--warn)}.pg-p.na>b{color:var(--ink-3)}
.pg-p>.pg-bar{grid-column:1/-1;overflow:visible}
.pg-tm{position:absolute;top:-4px;bottom:-4px;width:2px;border-radius:1px;background:var(--ink-2);opacity:.55;transform:translateX(-1px)}
.pg-res{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0}
.pg-res>div{display:flex;flex-direction:column;gap:2px;min-width:0;padding:0 var(--s-4)}
.pg-res>div:first-child{padding-inline-start:0}
.pg-res>div+div{border-inline-start:1px solid var(--line)}
.pg-res span{font-size:var(--fs-1);font-weight:var(--fw-2);color:var(--ink-3)}
.pg-res b{font-family:var(--font-d);font-variation-settings:'wdth' var(--d-wdth);font-stretch:72%;font-weight:var(--fw-3);font-size:var(--fs-5);font-variant-numeric:tabular-nums}
.pg-res small{font-size:var(--fs-1);line-height:var(--lh-t);color:var(--ink-3)}
.pg-read{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-5)}
.pg-read>div{display:flex;flex-direction:column;gap:var(--s-2);min-width:0}
.pg-read ul{display:flex;flex-direction:column;gap:var(--s-2);margin:0;padding:0;list-style:none}
.pg-read li{position:relative;padding-inline-start:var(--s-4);font-size:var(--fs-2);line-height:var(--lh-b);color:var(--ink-2)}
.pg-read li::before{content:'';position:absolute;inset-inline-start:0;top:.55em;width:7px;height:7px;border-radius:50%;background:var(--ok-fill)}
.pg-read .w li::before{background:var(--warn-fill)}
.pg-charts{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:var(--s-6);align-items:start}
.pg-how{padding-top:var(--s-3);border-top:1px solid var(--line);font-size:var(--fs-2);color:var(--ink-2)}
.pg-how summary{display:flex;align-items:center;gap:var(--s-2);min-height:var(--h-ctl-s);color:var(--ink);font-weight:var(--fw-2);cursor:pointer}
.pg-how summary::after{content:'+';color:var(--ink-3);font-size:var(--fs-4);font-weight:var(--fw-1);line-height:1}
.pg-how[open] summary::after{content:'\2212'}
.pg-how p{margin:var(--s-2) 0;line-height:var(--lh-b)}
.pg-how ul{display:flex;flex-direction:column;gap:var(--s-1);margin:var(--s-2) 0;padding-inline-start:var(--s-5);line-height:var(--lh-b)}
.pg-fl{margin-top:var(--s-3)}
.cmp.up,.kpi .cmp.up{color:var(--ok)}
@media (max-width:1100px){.ptr-lay{grid-template-columns:minmax(0,1fr)}.ptr-lay .radar{justify-self:center}.th-hero{grid-template-columns:minmax(0,1fr);grid-template-areas:'id' 'sc' 'rm'}.pg-lay{grid-template-columns:minmax(0,1fr);gap:var(--s-5)}.pg-wl{grid-template-columns:repeat(3,minmax(0,1fr))}.kanban{grid-template-columns:repeat(2,minmax(0,1fr))}.kanban.k6{grid-template-columns:repeat(3,minmax(0,1fr))}.digest .dg{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.pg-read,.pg-charts{grid-template-columns:minmax(0,1fr);gap:var(--s-5)}.pg-n{grid-template-columns:10px minmax(0,1fr);row-gap:2px}.pg-n>b{grid-column:2;white-space:normal}.pg-n>span{grid-column:2}.th-scores{gap:var(--s-4) var(--s-6)}.th-scores .th-score+.th-score{padding-inline-start:0;border-inline-start:0}.pg-top .pg-badge{min-height:28px;padding:var(--s-1) var(--s-3);white-space:normal}.pf-row{grid-template-columns:minmax(0,1fr);gap:var(--s-2)}.pf-vars{display:grid;grid-template-columns:1fr 1fr}.pf-vars .vf:last-child:nth-child(odd){grid-column:1/-1}.pg-wl{grid-template-columns:minmax(0,1fr);gap:var(--s-3)}.kanban,.kanban.k6,.digest .dg{grid-template-columns:minmax(0,1fr)}.inline-save .inline-in{min-width:0;width:150px}.pg-res{row-gap:var(--s-3)}.pg-res>div{padding:0;border:0!important}}
@media (max-width:520px){.top:has(>.pg-sort){flex-wrap:wrap;row-gap:var(--s-2)}.pg-sort{flex:1 1 100%;min-width:0}.pg-sort .seg>button{min-width:0;padding:0 var(--s-2)}}
@media (hover:hover) and (pointer:fine){
  .tcard:hover{box-shadow:var(--elev-1),inset 0 0 0 1px var(--edge);transform:translateY(-2px)}
  .tile:hover:not(:disabled){box-shadow:inset 0 0 0 1px var(--accent-line)}
  .kcard.lead:hover,.al-chip:hover{box-shadow:inset 0 0 0 1px var(--line-2)}
  .dg-i:hover{color:var(--accent-ink)}
  .al-row:hover .chev{color:var(--ink)}
  .set-nav button:hover:not(.on),.nav-ed-i:hover{background:var(--fill)}
  .rg-slot:hover{background:var(--accent-soft)}
  .stream-btn:hover:not(.on),.imp-type:hover:not(.on){box-shadow:inset 0 0 0 1px var(--line-2)}
  .drop:hover{border-color:var(--accent);background:var(--accent-soft)}
  .vf:hover:not(.on){color:var(--ink)}
  .pgb:hover{background:var(--fill-2)}.pgb.pri:hover{background:var(--blue-600)}
  .hv-tb tbody:hover tr{opacity:.4}.hv-tb tbody tr:hover{opacity:1}
  .gym .tbl tbody tr.clk:hover td{background:var(--surface-2)}
}
/* ---------- team against target: a ranked list ---------- */
.rank-c{gap:var(--s-3)}
.rank-l{display:flex;flex-direction:column}
.rank-r{display:flex;align-items:center;gap:var(--s-3);min-height:56px;padding:var(--s-2) 0;border-top:1px solid var(--line)}
.rank-r:first-child{border-top:0}
.rank-r .grow{display:flex;flex-direction:column;gap:var(--s-2)}
.rank-r .grow>b{font-size:var(--fs-2);font-weight:var(--fw-2)}
.rank-b{position:relative;height:6px;overflow:visible}
.rank-b>i{border-radius:var(--r-pill)}
.rank-pace{position:absolute;top:-4px;bottom:-4px;width:2px;margin-inline-start:-1px;border-radius:1px;background:var(--ink-2);opacity:.6}
.rank-v{display:flex;flex-direction:column;align-items:flex-end;min-width:96px;text-align:end}
.rank-v b{font-family:var(--font-d);font-variation-settings:'wdth' var(--d-wdth);font-stretch:72%;font-weight:var(--fw-3);font-size:var(--fs-4);line-height:1.1;font-variant-numeric:tabular-nums}
.rank-v b.good{color:var(--ok)}
.rank-v small{font-size:var(--fs-1);color:var(--ink-3);white-space:nowrap;font-variant-numeric:tabular-nums}
/* pager */
.pager{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding-top:var(--s-3);border-top:1px solid var(--line)}
.pager .icon-btn{width:var(--h-ctl-s);height:var(--h-ctl-s)}
.pager-n{min-width:56px;text-align:center;font-variant-numeric:tabular-nums;color:var(--ink-2)}
[dir=rtl] .pager .icon-btn:not(.flip) svg{transform:scaleX(-1)}[dir=rtl] .pager .icon-btn.flip svg{transform:none}
/* front desk: the highlighted match checks in with Enter */
.prow.hit{border-radius:var(--r-2);padding-inline:var(--s-2);margin-inline:calc(-1 * var(--s-2));transition:background-color var(--t-1)}
.prow.hit.sel{background:var(--accent-soft)}
.big-search{position:relative}
.kbd-hint{flex:none;padding:2px var(--s-2);border-radius:var(--r-1);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line-2);color:var(--ink-3);font-family:var(--font);font-size:var(--fs-1);font-weight:var(--fw-2)}
@media (pointer:coarse),(max-width:600px){.kbd-hint{display:none}}
.ci-msg{display:flex;align-items:center;gap:var(--s-2);font-weight:var(--fw-2);animation:xb-pop-in var(--t-2) var(--ease-out)}
.ci-new{display:inline-block;padding:0 var(--s-1);margin-inline-start:calc(-1 * var(--s-1));border-radius:var(--r-1);background:var(--accent-soft);color:var(--accent-ink);font-weight:var(--fw-2);animation:xb-fade var(--t-3) var(--ease-out)}
/* tables: the header stays on screen while the page scrolls, where the table fits the width */
@media (min-width:1100px){.gym .tbl-wrap.fits:not(.imp-grid){overflow:visible}.gym .tbl th{top:0;z-index:2}}
/* phones: each row stays on one line and the table scrolls sideways, rather than names and dates breaking into stacks */
@media (max-width:699px){.gym .tbl td,.gym .tbl th{white-space:nowrap}}
/* members at risk: the reasons keep a readable width; the call script button moves under them on phones */
.row.ch-r{flex-wrap:wrap;row-gap:var(--s-2)}
.row.ch-r>.row-t{flex:1 1 240px}

/* ---------- summaries and KPI tiles ---------- */
.sum-sec{display:flex;flex-direction:column;gap:var(--s-3)}
.sum-h{margin:0;font-size:var(--fs-3);font-weight:var(--fw-2);color:var(--ink-2)}
.kgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--s-3)}
.ktile{position:relative;display:flex;flex-direction:column;gap:var(--s-2);min-width:0;min-height:132px;padding:var(--s-4);border:0;border-radius:var(--r-3);background:var(--surface);color:var(--ink);text-align:start;cursor:pointer;transition:transform var(--t-1) var(--ease-out)}
.ktile:hover{transform:translateY(-1px)}
.ktile:focus-visible,.klink:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ktile::before{content:'';position:absolute;inset-inline-start:0;top:var(--s-4);bottom:var(--s-4);width:3px;border-radius:0 3px 3px 0;background:var(--line-2)}
[dir=rtl] .ktile::before{border-radius:3px 0 0 3px}
.ktile.st-ok::before{background:var(--ok-fill)}.ktile.st-warn::before{background:var(--warn-fill)}.ktile.st-bad::before{background:var(--bad-fill)}
.kt-h{display:flex;align-items:center;gap:var(--s-1);min-width:0}
.kt-l{font-size:var(--fs-2);font-weight:var(--fw-2);color:var(--ink-3);overflow-wrap:break-word}
.kt-v{font-family:var(--font-d);font-variation-settings:'wdth' var(--d-wdth);font-stretch:72%;font-weight:var(--fw-3);font-size:var(--fs-5);line-height:var(--lh-d);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.kt-m{display:flex;flex-wrap:wrap;gap:var(--s-2);font-size:var(--fs-1);font-weight:var(--fw-2)}
.kt-ch{color:var(--ink-3)}.kt-ch.good{color:var(--ok)}.kt-ch.bad{color:var(--bad)}
.kt-t{display:flex;flex-direction:column;gap:var(--s-1)}.kt-t small{font-size:var(--fs-1)}
.kt-st{display:inline-flex;align-items:center;gap:6px;margin-top:auto;font-size:var(--fs-1);font-weight:var(--fw-2);color:var(--ink-3)}
.kt-st i{width:8px;height:8px;border-radius:50%;background:var(--ink-4)}
.kt-st.ok{color:var(--ok)}.kt-st.ok i{background:var(--ok-fill)}.kt-st.warn{color:var(--warn)}.kt-st.warn i{background:var(--warn-fill)}.kt-st.bad{color:var(--bad)}.kt-st.bad i{background:var(--bad-fill)}
.kt-st.big{font-size:var(--fs-3)}
.klink{cursor:pointer;border-radius:var(--r-2);min-width:0}
.klink:hover .stat-v{color:var(--accent-ink)}
/* stat rows that mix plain stats and clickable ones: a divider between columns, none at the start of a row */
.kstats>*+*{border-inline-start:1px solid var(--line);padding-inline-start:var(--s-3)}
.g3.kstats>:nth-child(3n+1),.g4.kstats>:nth-child(4n+1),.g5.kstats>:nth-child(5n+1){border-inline-start:0;padding-inline-start:0}
@media (max-width:999px){.g5.kstats>:nth-child(5n+1){border-inline-start:1px solid var(--line);padding-inline-start:var(--s-3)}.g5.kstats>:nth-child(3n+1){border-inline-start:0;padding-inline-start:0}}
@media (max-width:699px){.g4.kstats>:nth-child(4n+1),.g5.kstats>:nth-child(3n+1),.g5.kstats>:nth-child(5n+1){border-inline-start:1px solid var(--line);padding-inline-start:var(--s-3)}.g4.kstats>:nth-child(2n+1),.g5.kstats>:nth-child(2n+1){border-inline-start:0;padding-inline-start:0}}
.kcard-l>.card{height:100%;cursor:pointer}
.tap-c{cursor:pointer}
.gtop.sub{align-items:center}
.fin-tabs .seg{max-width:100%;overflow-x:auto}
.tbl.bud td{padding:2px 4px}.bud-in{width:84px;min-height:32px}
.tbl.ue td,.tbl.ue th{white-space:nowrap}
.loss-c{background:var(--bad-soft)}
.tbl td.neg,.tbl .neg{color:var(--bad)}
.sp-thumb{width:44px;height:44px;border-radius:var(--r-1);object-fit:cover}
.sp-img{max-width:100%;max-height:320px;border-radius:var(--r-2);object-fit:contain;align-self:flex-start}
.clip2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:360px;min-width:220px;white-space:normal}

/* ---------- Pro preview ---------- */
.pro-tag{display:inline-flex;align-items:center;padding:1px var(--s-2);border-radius:var(--r-1);background:var(--accent-soft);color:var(--accent-ink);font-size:var(--fs-1);font-weight:var(--fw-2);font-style:normal;line-height:1.5;align-self:flex-start}
.pro-tag.sm{margin-inline-start:auto;padding:0 6px}
.pro-prev{position:relative;min-height:420px}
.pro-blur{filter:blur(6px);opacity:.55;pointer-events:none;user-select:none;max-height:640px;overflow:hidden;display:flex;flex-direction:column;gap:var(--s-4)}
.pro-over{position:absolute;inset:0;display:flex;align-items:flex-start;justify-content:center;padding-top:var(--s-7)}
.pro-over .pro-gate{max-width:440px;box-shadow:var(--elev-2);border:1px solid var(--edge)}
@media (prefers-reduced-motion:reduce){.ktile{transition:none}}

/* ---------- tiers ---------- */
.tier-b{display:inline-flex;align-items:center;gap:4px;padding:1px var(--s-2);border-radius:var(--r-pill);font-size:var(--fs-1);font-weight:var(--fw-2);line-height:1.6;white-space:nowrap;vertical-align:middle;background:var(--fill);color:var(--ink-2)}
.tier-b.big{padding:var(--s-1) var(--s-3);font-size:var(--fs-2)}
.tier-b.t-gold{background:var(--warn-soft);color:var(--warn)}
.tier-b.t-platinum{background:var(--accent-soft);color:var(--accent-ink)}
.tier-sum{align-items:flex-start;text-align:start}
.tier-sum.on{outline:2px solid var(--accent)}
.tier-ben{display:flex;flex-direction:column;gap:var(--s-1);margin:0;padding:0;list-style:none;font-size:var(--fs-2)}
.tier-ben li{display:flex;align-items:center;gap:var(--s-2)}
.see-mgr{display:inline-flex;align-items:center;gap:4px;margin:0}
/* the status dots differ by shape as well as colour: red circle expired, red square see manager, amber circle expiring, amber diamond alert note, amber ring balance */
.md.hold{border-radius:2px;background:var(--bad-solid)}
.badge.red{background:var(--bad-soft);color:var(--bad)}
.iv-b .top{align-items:center}
.demo-sub{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2)}

/* ---------- support thread ---------- */
.sp-msg{display:flex;flex-direction:column;gap:2px;max-width:85%;padding:var(--s-2) var(--s-3);border-radius:var(--r-2);background:var(--fill);font-size:var(--fs-2);align-self:flex-start;overflow-wrap:anywhere}
.sp-msg.me{align-self:flex-end;background:var(--accent-soft)}
.sp-th{gap:var(--s-2)}
.sp-steps{display:flex;gap:var(--s-1)}
.sp-steps span{flex:1;padding-top:var(--s-2);border-top:3px solid var(--line-2);font-size:var(--fs-1);color:var(--ink-3)}
.sp-steps span.on{border-color:var(--accent);color:var(--accent-ink);font-weight:var(--fw-2)}

/* ---------- team ---------- */
.tm-g{gap:0;padding-block:var(--s-2)}
.tm-c{display:flex;gap:var(--s-3);padding:var(--s-3) 0;border-top:1px solid var(--line)}
.tm-c:first-child{border-top:0}
.tm-c .grow{display:flex;flex-direction:column;gap:2px;min-width:0}
.tm-bio{color:var(--ink-2)}
.tm-specs{display:flex;flex-wrap:wrap;gap:var(--s-1)}
.tg-l{display:inline-flex;align-items:center}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- smart insights and planner ---------- */
.ins-l{display:flex;flex-direction:column;padding:0 var(--s-5);border-radius:var(--r-3);background:var(--surface)}
.ins-lh{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-3);padding:var(--s-5) 0 var(--s-3);border-bottom:1px solid var(--line)}
.ins-lh h2{margin:0;font-size:var(--fs-4);font-weight:var(--fw-2)}
.ins-row{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(160px,auto);gap:var(--s-4);align-items:start;padding:var(--s-4) 0;border-bottom:1px solid var(--line)}
.ins-row:last-child{border-bottom:0}
.ins-row:not(:has(.ins-r)){grid-template-columns:minmax(0,1fr) minmax(160px,auto)}
.ins-r{min-width:24px;padding-top:2px;color:var(--ink-3);font-size:var(--fs-3);font-weight:var(--fw-2);font-variant-numeric:tabular-nums}
.ins-b{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-1);min-width:0}
.ins-b strong{display:inline-flex;align-items:center;gap:var(--s-1);font-size:var(--fs-3);font-weight:var(--fw-2);line-height:var(--lh-t)}
.ins-b .btn-sm{margin-top:var(--s-2)}
.ins-n{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:end}
.ins-v{font-size:var(--fs-3);font-weight:var(--fw-2);font-variant-numeric:tabular-nums;line-height:var(--lh-t);overflow-wrap:break-word}
@media (max-width:599px){.ins-l{padding:0 var(--s-4)}.ins-row{grid-template-columns:auto minmax(0,1fr)}.ins-row:not(:has(.ins-r)){grid-template-columns:minmax(0,1fr)}.ins-n{grid-column:2;align-items:flex-start;text-align:start}.ins-row:not(:has(.ins-r)) .ins-n{grid-column:1}}
.ai-sum .mdx{font-size:var(--fs-2)}
.pl-step .top strong{display:inline-flex;align-items:center;gap:var(--s-2)}
.pl-n{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-size:var(--fs-1)}
.pl-split{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:var(--s-2)}
.pl-m{display:flex;flex-direction:column;gap:2px;font-size:var(--fs-1);font-weight:var(--fw-2)}
.pl-m .amt-in{width:100%}
.pl-sl{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:var(--s-3);align-items:end}
.pl-s{display:flex;flex-direction:column;gap:var(--s-1);font-size:var(--fs-2)}
.pl-s input[type=range]{width:100%;min-height:var(--tap);accent-color:var(--accent)}
.pl-src .tbl td:first-child{white-space:normal}

/* ---------- stars, leaderboards, marketing ---------- */
.stars-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:var(--s-3);align-items:start}
.star-l{display:flex;flex-direction:column;gap:0;margin:0;padding:0;list-style:none}
.star-l li{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-2) 0;border-top:1px solid var(--line)}
.star-l li:first-child{border-top:0}
.star-r{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;border-radius:50%;background:var(--fill);font-size:var(--fs-2);font-weight:var(--fw-2);font-variant-numeric:tabular-nums}
.star-l li:first-child .star-r{background:var(--accent);color:var(--on-accent)}
.ver-tag{display:inline-flex;align-items:center;gap:4px;padding:1px var(--s-2);border-radius:var(--r-1);background:var(--ok-soft);color:var(--ok);font-size:var(--fs-1);font-weight:var(--fw-2);white-space:nowrap;align-self:flex-start;margin-top:var(--s-1)}
.win-img{width:100%;max-width:360px;align-self:center;border-radius:var(--r-2)}
.stars-tv{position:fixed;inset:0;z-index:var(--z-tour);display:flex;flex-direction:column;gap:var(--s-6);padding:var(--s-7);background:var(--navy);color:var(--on-navy);overflow:auto}
.stars-tv .tv-x{position:absolute;top:var(--s-4);inset-inline-end:var(--s-4);color:var(--on-navy)}
.tv-h{display:flex;justify-content:space-between;gap:var(--s-4);font-size:var(--fs-4);color:var(--on-navy-2)}
.tv-h b{font-family:var(--font-d);font-size:var(--fs-6);color:var(--on-navy);line-height:1}
.tv-cat{display:flex;flex-direction:column;gap:var(--s-5);animation:tvIn var(--t-3) var(--ease-out)}
@keyframes tvIn{from{opacity:0}to{opacity:1}}
.tv-cat h2{margin:0;font-family:var(--font-d);font-size:clamp(40px,6vw,88px);line-height:1;color:var(--navy-accent)}
.tv-cat ol{display:flex;flex-direction:column;gap:var(--s-4);margin:0;padding:0;list-style:none}
.tv-cat li{display:flex;align-items:center;gap:var(--s-5);font-size:clamp(28px,3.4vw,52px)}
.tv-r{width:1.6em;font-family:var(--font-d);color:var(--on-navy-2)}
.tv-cat li img,.tv-av{width:1.6em;height:1.6em;border-radius:50%;object-fit:cover;background:var(--navy-3);display:inline-flex;align-items:center;justify-content:center;font-size:.5em}
.tv-n{flex:1;font-weight:var(--fw-3)}
.tv-v{color:var(--on-navy-ok);font-weight:var(--fw-3)}
.tv-src{display:inline-flex;align-items:center;gap:var(--s-2);font-size:var(--fs-4);color:var(--on-navy-2)}
.tv-dots{display:flex;gap:var(--s-2);margin-top:auto}.tv-dots i{width:10px;height:10px;border-radius:50%;background:var(--navy-3)}.tv-dots i.on{background:var(--navy-accent)}
@media (prefers-reduced-motion:reduce){.tv-cat{animation:none}}
.offer-prev{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:var(--s-3)}
.offer-c{border:1px solid var(--line)}
.card .offer-c{background:var(--surface-2)}
.pt-logo{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:var(--r-2);object-fit:cover;background:var(--fill);color:var(--ink-2);font-weight:var(--fw-2);font-size:var(--fs-2)}
.otc-c{align-items:center;text-align:center}
.otc{font-family:var(--font-d);font-size:var(--fs-6);letter-spacing:.12em;font-variant-numeric:tabular-nums;color:var(--on-navy)}
.stars-m .prow{align-items:center}
.lb-g{align-items:start}
/* narrow screens: header controls and contact rows wrap instead of pushing the page wider */
.gtop>.row-actions{flex-wrap:wrap;max-width:100%;min-width:0}
.gtop>.row-actions>.seg{max-width:100%}
.nexp .top{flex-wrap:wrap}.nexp .seg{max-width:100%}
.nexp .prow{flex-wrap:wrap}.nexp .prow>span:first-child{flex:1 1 160px;min-width:0}.nexp .prow>.row-actions{margin-inline-start:auto}
.kstats>.klink{border-radius:0}

/* ---------- Summary: pulse, hero with the Needs-you rail, departments as a ledger ---------- */
.sum2{display:flex;flex-direction:column;gap:var(--s-6)}
.sum2>.gtop{margin-bottom:calc(-1 * var(--s-3))}
.sum-top{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-5);align-items:stretch} /* the hero and Needs you end on one line */
@media (min-width:1200px){.sum-top{grid-template-columns:minmax(0,2fr) minmax(300px,1fr)}}
.dept{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-2);padding-top:var(--s-5);border-top:1px solid var(--line)}
@media (min-width:1024px){.dept{grid-template-columns:240px minmax(0,1fr);gap:var(--s-6)}.dept-h{padding-top:var(--s-3)}} /* the heading sits on the first row's line */
.dept-h{display:flex;flex-direction:column;gap:var(--s-1);align-items:flex-start}
.dept-t{display:inline-flex;align-items:center;gap:var(--s-1);min-height:var(--tap);margin-block:calc(-1 * var(--s-2));padding:0;border:0;background:none;color:var(--ink);font:inherit;font-size:var(--fs-4);font-weight:var(--fw-2);cursor:pointer}
span.dept-t{cursor:default}
.dept-t .chev{color:var(--ink-4)}
[dir=rtl] .dept-t .chev{transform:scaleX(-1)}
.dept-rows{display:flex;flex-direction:column}
.link.on-navy{color:var(--navy-accent)}

/* ---------- Dashboard: live strip, income hero beside its streams ---------- */
.live-strip{display:flex;flex-direction:column;gap:var(--s-3)}
.live-strip dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;margin:0;border-block:1px solid var(--line)}
.live-strip dl>div{display:flex;flex-direction:column;gap:2px;min-width:0;padding:var(--s-3) var(--s-4);border-inline-start:1px solid var(--line)}
.live-strip dl>div:first-child{border-inline-start:0;padding-inline-start:0}
.live-strip dl>div.tap{cursor:pointer;transition:background-color var(--t-1) var(--ease)}
@media (hover:hover) and (pointer:fine){.live-strip dl>div.tap:hover{background:var(--surface-2)}}
.live-strip dt{font-size:var(--fs-2);color:var(--ink-3)}
.live-strip dd{margin:0;font-size:var(--fs-5);font-weight:var(--fw-3);font-family:var(--font-d);font-variation-settings:'wdth' var(--d-wdth);font-stretch:72%;font-variant-numeric:tabular-nums;line-height:1.1}
[dir=rtl] .live-strip dd{font-family:var(--font)}
.live-strip small{font-size:var(--fs-1);color:var(--ink-3)}
@media (max-width:599px){.live-strip dl{grid-template-columns:1fr 1fr}.live-strip dl>div{border-inline-start:0;border-top:1px solid var(--line);padding-inline:0}.live-strip dl>div:nth-child(-n+2){border-top:0}}
.dash-hero{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-5);align-items:center}
@media (min-width:1200px){.dash-hero{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}}
.dash-streams{display:flex;flex-direction:column}
.nexp-rows{display:flex;flex-direction:column}
.nexp .g3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
/* one height for every control in a page header row */
.gtop .row-actions{align-items:center}
@media (pointer:fine){.gtop .btn,.gtop .icon-btn,.gtop select{min-height:40px;height:40px}}
.gtop .icon-btn{width:40px}
@media (pointer:fine){.gtop .seg>button{min-height:36px}}
/* ---------- Finance overview: net profit hero beside its rows ---------- */
.fin-top{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-5);align-items:start}
@media (min-width:1200px){.fin-top{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:stretch}.fin-top>.hero-card{height:100%}}
.fin-rows{display:flex;flex-direction:column}
.mcell{display:inline-flex;align-items:center;gap:var(--s-2)}
/* a score "of" 100 (78/100) reads left to right in Arabic */
[dir=rtl] .kpi b:has(>.pg-of),[dir=rtl] .huge:has(>.pg-of){direction:ltr;unicode-bidi:isolate;text-align:right}
@media (max-width:599px){.gtop>.seg,.gtop>.row-actions>.seg{width:100%}.gtop>.seg>button,.gtop>.row-actions>.seg>button{flex:1 0 auto;min-width:max-content;padding-inline:var(--s-2);white-space:nowrap}}
@media (max-width:480px){.hc-pace-w>span+span{display:none}}
@media (max-width:599px){.pf-vars{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;justify-content:flex-start}.pf-vars>.vf{flex:0 0 auto}}
.qsum .stat-v{white-space:nowrap;font-size:var(--fs-4);word-spacing:.12em}
/* equipment: one table per area, the same column widths in each so they line up */
@media (min-width:1280px){.eq-area .tbl{table-layout:fixed}.eq-area .tbl th:nth-child(1){width:20%}.eq-area .tbl th:nth-child(2){width:16%}.eq-area .tbl th:nth-child(3){width:8%}.eq-area .tbl th:nth-child(4){width:17%}.eq-area .tbl th:nth-child(5){width:10%}.eq-area .tbl th:nth-child(7){width:150px}.eq-area .tbl td{white-space:normal}.eq-area .note-cell{min-width:0}}
.eq-area .tbl td .btn-sm{min-width:120px}
.gym .shs{padding:var(--cp,var(--s-5))}.gym .shs .btn{width:auto;align-self:flex-start}
.gym main>.note,.gym main>*>.note:only-child{padding-inline:var(--cp,var(--s-5))}
/* sideways scrollers show a soft shadow at the edge that has more behind it */
.rooms-card{background:linear-gradient(to right,var(--surface) 40%,transparent) left/32px 100% no-repeat local,linear-gradient(to left,var(--surface) 40%,transparent) right/32px 100% no-repeat local,radial-gradient(farthest-side at 0 50%,var(--scroll-sh),transparent) left/12px 100% no-repeat scroll,radial-gradient(farthest-side at 100% 50%,var(--scroll-sh),transparent) right/12px 100% no-repeat scroll,var(--surface)}
@media (max-width:980px){.set-nav{background:linear-gradient(to right,var(--bg) 40%,transparent) left/32px 100% no-repeat local,linear-gradient(to left,var(--bg) 40%,transparent) right/32px 100% no-repeat local,radial-gradient(farthest-side at 0 50%,var(--scroll-sh),transparent) left/12px 100% no-repeat scroll,radial-gradient(farthest-side at 100% 50%,var(--scroll-sh),transparent) right/12px 100% no-repeat scroll,var(--bg)}}
/* the facts under a page title: the first is the page's lead number, the others a line of smaller facts, not a row of equal boxes */
.gym main>.stk>:is(.g3,.g4,.g5):has(>.stat,>.klink){display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--s-3) var(--s-6)}
.gym main>.stk>:is(.g3,.g4,.g5)>:is(.stat,.klink){flex:0 1 auto;max-width:100%;border:0!important;padding:0!important}
.gym main>.stk>:is(.g3,.g4,.g5)>:is(.stat,.klink)+:is(.stat,.klink) .stat-v{font-size:var(--fs-4)}
/* Leads, today's call list: rank, who and why, then Call / Log / Lost on the same row at every width */
.call-r{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) 0;border-top:1px solid var(--line)}
.call-r .grow{display:flex;flex-direction:column;gap:2px;min-width:0}
.call-n{width:24px;flex:none;color:var(--ink-3);font-size:var(--fs-2);font-variant-numeric:tabular-nums;text-align:center}
@media (max-width:599px){.call-r{flex-wrap:wrap}.call-r>.row-actions{width:100%;padding-inline-start:36px}.call-r>.row-actions>*{flex:1}}
@media (max-width:899px){.dash-ov>.stack:last-child{order:-1}}
/* Overview: one 16 px gap everywhere, and both columns end on one line (the last card in each grows) */
.dash-ov,.dash-ov>.stack,.dash-ov .g2{gap:var(--s-4)}
@media (min-width:900px){.dash-ov{align-items:stretch}.dash-ov>.stack>:last-child{flex:1 1 auto}.dash-ov .g2>.card{height:100%}}
/* point of sale on a phone: the ticket total stays in view while items are picked */
.pos-bar{display:none}
@media (max-width:980px){.pos-bar{position:sticky;bottom:calc(var(--s-3) + var(--safe-b));z-index:2;display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-radius:var(--r-3);background:var(--navy);color:var(--on-navy);box-shadow:var(--elev-2)}.pos-bar .btn{background:var(--surface);color:var(--ink)}}
.ticket .inline-in{border-color:transparent;background:var(--fill)}
@media (max-width:860px){.gym main .qsum{grid-template-columns:repeat(6,minmax(0,1fr))}}
.tbl .rate{width:64px;margin-inline-end:var(--s-1);text-align:end}
/* equipment: the attention rows share one column for the status and one for the button */
.eq-att .prow>.row-actions{display:grid;grid-template-columns:150px 136px;align-items:center;justify-items:end;gap:var(--s-3);flex-shrink:0}
.eq-att .prow>.row-actions>.btn-sm{width:100%}
@media (max-width:599px){.eq-att .prow{flex-wrap:wrap}.eq-att .prow>.row-actions{grid-template-columns:minmax(0,1fr) 136px;width:100%}.eq-att .prow>.row-actions>.badge{justify-self:start}}
/* the line table edits in place: fields look like text until pointed at; Remove is quiet (the dialog names the action) */
@media (hover:hover){.eq-area .qty,.eq-area .stat-sel,.eq-area .note-cell{border-color:transparent;background-color:transparent}
.eq-area tr:hover :is(.qty,.stat-sel,.note-cell),.eq-area :is(.qty,.stat-sel,.note-cell):focus{border-color:var(--line-2);background-color:var(--surface)}}
.eq-area .link.danger{color:var(--ink-3)}
.shift-now .prow{flex-wrap:nowrap}
@media (max-width:899px){.hours-l>.stack{order:-1}}
/* ratings: the split of scores in one bar, 5 darkest to 1 lightest; a low score is not a status colour */
.rt-split{display:flex;width:100%;height:8px;gap:2px;border-radius:var(--r-pill);overflow:hidden}
.rt-split i{display:block;min-width:4px;background:var(--accent)}
.rt-split .s4{opacity:.75}.rt-split .s3{opacity:.5}.rt-split .s2{opacity:.32}.rt-split .s1{opacity:.2}
.rt-aspects{padding-block:0}
.filters.labelled{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:var(--s-2) var(--s-3)}
.f-lab{font-size:var(--fs-1);font-weight:var(--fw-2);color:var(--ink-3)}
/* certificates: name, date, status and action in fixed columns so every row lines up */
/* a certificate: its name on the first line, then expiry, status and the action (fits the side column at any width) */
.cert-r{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:2px var(--s-3);padding:var(--s-2) 0;border-top:1px solid var(--line);font-size:var(--fs-2)}
.cert-r>:first-child{grid-column:1/-1;font-weight:var(--fw-2)}
.ptr-lay.one{grid-template-columns:minmax(0,1fr)}
/* on a phone the class pills are hidden: a small count says the day has classes */
.cal-cnt{display:none}
@media (max-width:900px){.cal-cnt{display:inline-flex;align-self:flex-start;align-items:center;justify-content:center;min-width:18px;height:18px;margin-top:auto;padding:0 4px;border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent-ink);font-size:var(--fs-1);font-weight:var(--fw-2)}.cal-d.sel .cal-cnt{background:rgba(255,255,255,.25);color:var(--on-accent)}}
/* the live line on the Dashboard: one sentence of live numbers, each opening its detail */
.live-line{margin:0;padding-block:var(--s-3);border-block:1px solid var(--line);font-size:var(--fs-3);line-height:var(--lh-b);color:var(--ink-2)}
.live-line b{color:var(--ink);font-weight:var(--fw-2);font-variant-numeric:tabular-nums}
.link-q{display:inline;min-height:0;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:inherit;cursor:pointer;text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px}
.link-q:hover{text-decoration-color:currentColor}
.rank-n{flex:none;width:20px;font-size:var(--fs-2);font-weight:var(--fw-2);color:var(--ink-3);text-align:center;font-variant-numeric:tabular-nums} /* the rank as a plain number, not a badge */
/* a report with one value column is as wide as it needs, so the value sits near its label */
.tbl.rep{width:auto;min-width:min(100%,560px)}
/* names in tables stay on one line (the table scrolls sideways on a phone instead of breaking "Al-/Harbi") */
.tbl td:first-child b,.tbl td .cell-link{white-space:nowrap}
.hours-tot{margin:0;font-size:var(--fs-3);color:var(--ink-2)}.hours-tot b{font-family:var(--font-d);font-variation-settings:'wdth' var(--d-wdth);font-stretch:72%;font-size:var(--fs-6);font-weight:var(--fw-3);color:var(--ink);margin-inline-end:var(--s-2);font-variant-numeric:tabular-nums} /* the period's total as the page's one big number */
.card:has(>.rep-wrap){width:fit-content;max-width:100%} /* a report card is as wide as its table */
.tier-b{align-self:flex-start} /* a tier badge is as wide as its word, never stretched by its column */
.code{white-space:nowrap} /* a gym code never splits ("GYM- / T3WK") */
/* time frame selector: frame tabs and arrows on one row; on phones a compact list beside the arrows, still one row */
.pnav2{display:flex;align-items:center;gap:var(--s-3);min-width:0;max-width:100%}
.pnav2 .pn-seg{min-width:0}
.pnav2 .pn-seg .seg>button{flex:0 0 auto;padding:0 var(--s-3)}
.pnav2 .pnav{flex:none}
.pnav2 .month-lab{min-width:112px}
.pn-sel{position:relative;display:none;align-items:center;flex:none}
.pn-sel select{appearance:none;-webkit-appearance:none;min-height:var(--tap);padding:0 calc(var(--s-3) + 20px) 0 var(--s-3);border:0;border-radius:var(--r-2);background:var(--fill);color:var(--ink);font:inherit;font-size:var(--fs-3);font-weight:var(--fw-2);cursor:pointer}
.pn-sel select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.pn-sel svg{position:absolute;inset-inline-end:var(--s-2);pointer-events:none;color:var(--ink-3)}
@media (max-width:599px){
  .gtop:has(.pnav2){flex-wrap:wrap}
  .gtop>.pnav2,.gtop>.row-actions:has(.pnav2),.gtop>.row-actions>.pnav2{width:100%}
  .pnav2 .pn-seg{display:none}
  .pn-sel{display:inline-flex}
  .pnav2 .pnav{flex:1 1 auto;min-width:0;justify-content:space-between}
  .pnav2 .pnav .icon-btn{width:var(--tap);height:var(--tap)}
  .pnav2 .month-lab{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}
/* Summary: the hero's chart, the comparison bar on rows with no target */
.hc-chart{display:flex;flex-direction:column;gap:var(--s-3);padding-top:var(--s-4);border-top:1px solid var(--navy-line)}
.hero-card .ckey{color:var(--on-navy-2);font-size:var(--fs-1)}
.cmpb{position:relative;display:block;width:100%;height:6px;border-radius:3px;background:var(--fill)}
.cmpb>i{position:absolute;inset-block:0;inset-inline-start:0;width:calc(var(--f) * 100%);border-radius:inherit;background:var(--chart-n1)}
.cmpb>b{position:absolute;top:-4px;bottom:-4px;inset-inline-start:calc(var(--t) * 100% - 1px);width:2px;border-radius:1px;background:var(--ink-2)}
/* Dashboard: live cards, the projection with the stream rows beside it, the coming days */
.ch-tw{font-weight:var(--fw-1);color:var(--ink-2)}
.ch-s .live{display:inline-flex;margin-inline-end:var(--s-1)}
.dash-ll{padding-block:var(--s-3) 0;border-bottom:0;font-size:var(--fs-2)}
.dash-past{margin:0}
.dash-hero.solo{grid-template-columns:minmax(0,1fr)}
.dash-hero{align-items:start}
.dash-hero .dash-streams{align-self:center}
.dash-calls{display:flex;flex-direction:column}
.dash-calls .prow{flex-wrap:wrap}.dash-calls .prow>span:first-child{flex:1 1 160px;min-width:0}.dash-calls .prow>.row-actions{margin-inline-start:auto}
.ccard .ch-h .seg{flex:none}
@media (max-width:420px){.ccard .ch-h:has(.seg){flex-direction:column}}
