/* ================================================================
   TimeChamp RCM — core.css (foundation extensions over tokens.css)
   Meaning-contract palette (validated: tools/check-palette.mjs),
   shell extras, report scaffold, charts, entities, home.
   ================================================================ */

.tc{
  /* -------- meaning-contract palette (domain states, fixed everywhere) -------- */
  /* cycle stages */
  --viz-stage-scheduling:#8a63d2;
  --viz-stage-coding:#2a78d6;
  --viz-stage-billing:#0f8fb0;
  --viz-stage-clearing:#0ba173;
  --viz-stage-adjudication:#b8860b;
  --viz-stage-posting:#5a8f29;
  --viz-stage-ar:#c26a2e;
  --viz-stage-denial:#c14f6e;
  /* call segments — DELETED, deliberately.
     This file loads AFTER tokens.css on the same `.tc` selector, so these
     four declarations silently overrode the ramp defined there and repointed
     the time split onto reserved meaning-contract hues: talk became the
     human-confirmed blue, hold the partial amber, wrap the AI violet. A
     caller's ordinary hold time therefore rendered in the colour this
     product uses to mean "partially covered", on a screen full of quality
     verdicts. They are carried over from the sibling RCM product, which has
     no such contract. tokens.css owns --viz-talk/-hold/-wrap/-idle now;
     do not re-declare them here. */
  /* activity classes */
  --viz-prod:#2a78d6; --viz-neutral:#9aa2b1; --viz-offtask:#eb6834;
  /* denial disposition */
  --viz-prev:#eb6834; --viz-unavoid:#8e8e98;
  /* generic heat base */
  --viz-heat:#2a78d6;
}

/* ---------- shell extras ---------- */
.sb-logo-mark{width:26px;height:26px;border-radius:8px;background:linear-gradient(135deg,var(--accent),#7a3ff2);display:grid;place-items:center;color:#fff;flex:none}
.nav-group{display:flex;flex-direction:column}
.nav-it .nv-chev{margin-left:auto;flex:none;color:var(--ink-3);transition:transform var(--t-med) var(--ease-out),opacity var(--t-fast) ease}
.nav-group.open>.nav-it .nv-chev{transform:rotate(90deg)}
.nav-it .badge{margin-left:auto}
.nav-group.open>.nav-it .badge,.nav-group .nav-it:hover .badge{margin-left:6px}
.nav-sub{overflow:hidden;max-height:0;transition:max-height var(--t-med) var(--ease-out)}
.nav-group.open .nav-sub{max-height:460px}
.nav-sub .nav-it{height:27px;font-size:12px;padding-left:35px;color:var(--ink-3)}
.nav-sub .nav-it:hover{color:var(--ink)}
.nav-sub .nav-it.active{font-weight:600;color:var(--ink);background:var(--surface)}
.shell.slim .nav-sub{max-height:0!important}
.shell.slim .nav-it .nv-chev{opacity:0}
/* rail icon metaphors */
.nav-it:hover .ic-cycle{transform:rotate(40deg)}
.nav-it:hover .ic-home{transform:translateY(-1.5px)}
.nav-it:hover .ic-quality{transform:scale(1.12)}
.nav-it:hover .ic-gaugeic{transform:rotate(-8deg)}
@keyframes ic-ringph{0%{rotate:0deg}25%{rotate:-11deg}50%{rotate:8deg}75%{rotate:-4deg}100%{rotate:0deg}}
.nav-it:hover .ic-phone{animation:ic-ringph .6s var(--ease-spring)}
.nav-it:hover .ic-shield{transform:translateY(-1px) scale(1.06)}

.role-pick{position:relative}
.role-btn{display:flex;align-items:center;gap:8px;height:31px;padding:0 10px 0 5px;border:1px solid var(--hairline);border-radius:var(--r-ctl);background:var(--surface);font-size:12.5px;font-weight:550;color:var(--ink-2);transition:border-color var(--t-fast) ease,box-shadow var(--t-fast) ease}
.role-btn:hover{border-color:color-mix(in srgb,var(--ink) 20%,var(--hairline));box-shadow:0 1px 2px rgba(var(--shadow-c),.06)}
.role-btn .u-av{width:22px;height:22px;font-size:9px}
.role-btn .r-chev{color:var(--ink-3);transition:transform var(--t-med) var(--ease-spring)}
.role-pick.open .role-btn .r-chev{transform:rotate(180deg)}
.role-menu{position:absolute;top:calc(100% + 6px);right:0;width:252px;background:var(--surface);border:1px solid var(--hairline);border-radius:12px;box-shadow:0 16px 44px -10px rgba(var(--shadow-c),.22);padding:5px;opacity:0;transform:translateY(-4px) scale(.98);pointer-events:none;transition:opacity var(--t-fast) ease,transform var(--t-fast) var(--ease-out);z-index:60}
.role-pick.open .role-menu{opacity:1;transform:none;pointer-events:auto}
.role-it{display:flex;align-items:center;gap:9px;width:100%;padding:7px 8px;border-radius:8px;text-align:left;transition:background var(--t-fast) ease}
.role-it:hover{background:var(--surface-2)}
.role-it .u-av{width:26px;height:26px;font-size:9.5px}
.role-it b{display:block;font-size:12.5px;font-weight:600}
.role-it span:not(.u-av){display:block;font-size:10.5px;color:var(--ink-3)}
.role-it .rm-check{margin-left:auto;color:var(--accent);opacity:0;transform:scale(.6);transition:opacity var(--t-fast) ease,transform var(--t-fast) var(--ease-spring)}
.role-it.on .rm-check{opacity:1;transform:none}
.role-note{padding:7px 9px 5px;font-size:10.5px;color:var(--ink-3);border-top:1px solid var(--hairline-2);margin-top:4px}
.topbar .prodmark{font-size:12.5px;color:var(--ink-3);font-weight:500;white-space:nowrap}
.topbar .prodmark b{color:var(--ink);font-weight:650}
.topbar .search{width:200px;white-space:nowrap}
.topbar .search>span:first-of-type{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* rail density so long module names + badges fit */
.nav-it{gap:8px;padding:0 7px}
.nav-it .badge{padding:1px 5.5px;font-size:10px}
.nav-it>.lbl{font-size:12.5px;text-overflow:ellipsis}
.nav-sub .nav-it{padding-left:33px}

/* ---------- report scaffold ---------- */
/* header actions (rollup seg + Export + Schedule) stay ANCHORED right at
   narrow widths — the title block shrinks/wraps instead of the actions
   dropping under the h1 (seen at 1280 with long questions) */
.page-head{flex-wrap:nowrap}
.page-head>div:first-child{min-width:0;flex:1 1 auto}
.page-head .page-actions{flex:none;flex-wrap:nowrap}
.rep-overline{font-size:10.5px;font-weight:650;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);margin-bottom:6px;display:flex;align-items:center;gap:7px}
.rep-overline .ol-dot{width:5px;height:5px;border-radius:50%;background:var(--accent)}
.filter-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;background:var(--surface);border:1px solid var(--hairline);border-radius:12px;margin-bottom:14px;position:relative;z-index:5}
.filter-bar .fb-ic{color:var(--ink-3);flex:none}
.fb-sel{height:28px;font-size:11.5px;padding:0 24px 0 9px;border:1px solid var(--hairline);border-radius:7px;background-color:var(--surface);color:var(--ink-2);max-width:170px;cursor:pointer;transition:border-color var(--t-fast) ease,color var(--t-fast) ease;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='9' viewBox='0 0 24 24' fill='none' stroke='%238e8e98' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;-webkit-appearance:none;appearance:none}
.fb-sel:hover{border-color:color-mix(in srgb,var(--ink) 18%,var(--hairline));color:var(--ink)}
.fb-sel.set{border-color:color-mix(in srgb,var(--accent) 45%,var(--hairline));color:var(--accent-ink);background-color:var(--accent-bg);font-weight:550}
.fb-clear{font-size:11px;color:var(--ink-3);font-weight:550;display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:6px;transition:color var(--t-fast) ease,background var(--t-fast) ease}
.fb-clear:hover{color:var(--danger);background:rgba(208,59,59,.06)}
.fb-spacer{flex:1}
.fb-count{font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap}

.rep-menu{position:relative}
.rep-dd{position:absolute;top:calc(100% + 6px);right:0;min-width:196px;background:var(--surface);border:1px solid var(--hairline);border-radius:10px;box-shadow:0 16px 44px -10px rgba(var(--shadow-c),.2);padding:5px;opacity:0;transform:translateY(-4px);pointer-events:none;transition:opacity var(--t-fast) ease,transform var(--t-fast) var(--ease-out);z-index:70}
.rep-menu.open .rep-dd{opacity:1;transform:none;pointer-events:auto}
.rep-dd button{display:flex;align-items:center;gap:9px;width:100%;padding:7px 9px;border-radius:7px;font-size:12.5px;color:var(--ink-2);text-align:left;transition:background var(--t-fast) ease,color var(--t-fast) ease}
.rep-dd button:hover{background:var(--surface-2);color:var(--ink)}
.rep-dd button svg{color:var(--ink-3)}
.rep-dd .dd-note{font-size:10px;color:var(--ink-3);margin-left:auto}
.rep-menu .btn .ic-dl{transition:transform var(--t-med) var(--ease-spring)}
.rep-menu .btn:hover .ic-dl{transform:translateY(2px)}
.rep-menu .btn .ic-clock2 line{transform-origin:12px 12px;transition:transform .55s var(--ease-spring)}
.rep-menu .btn:hover .ic-clock2 .mh{transform:rotate(180deg)}
.rep-menu .btn:hover .ic-clock2 .hh{transform:rotate(45deg)}

.wisp{position:fixed;left:50%;bottom:82px;z-index:120;background:var(--ink);color:var(--surface);font-size:12px;font-weight:550;border-radius:9px;padding:7px 13px;box-shadow:0 10px 28px -6px rgba(var(--shadow-c),.42);opacity:0;transform:translate(-50%,8px);transition:opacity var(--t-fast) ease,transform var(--t-med) var(--ease-spring);pointer-events:none;display:flex;align-items:center;gap:7px;max-width:min(440px,92vw)}
.wisp.on{opacity:1;transform:translate(-50%,0)}
.wisp svg{color:#7ee2a0}

.sect{margin-top:14px}
.sect-head{display:flex;align-items:baseline;gap:10px;margin-bottom:9px;padding:0 2px}
.sect-title{font-size:14px;font-weight:600;letter-spacing:-.008em}
.sect-sub{font-size:12px;color:var(--ink-3)}
.sect-head .sh-right{margin-left:auto;display:flex;align-items:center;gap:8px}

/* skeleton shimmer */
@keyframes skel{0%{background-position:130% 0}100%{background-position:-30% 0}}
.skel{border-radius:8px;background:linear-gradient(100deg,var(--surface-2) 42%,color-mix(in srgb,var(--surface-2) 40%,var(--surface)) 50%,var(--surface-2) 58%);background-size:220% 100%;animation:skel 1.1s ease-in-out infinite}
.skel-row{height:13px;margin:9px 0}
@media (prefers-reduced-motion:reduce){.skel{animation:none}}

/* KPI row */
.kpi-row{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(168px,1fr))}
.kpi.click{cursor:pointer}
.kpi .spark{pointer-events:none}
.kpi .kpi-foot{max-width:calc(100% - 56px);flex-wrap:wrap}

/* ---------- charts (foundation) ---------- */
.ch-axl{font-family:var(--mono);font-size:9.5px;fill:var(--ink-3)}
.ch-grid{stroke:var(--hairline-2)}
.ch-target{stroke:var(--ink-3);stroke-width:1.2;stroke-dasharray:3 4;opacity:.6}

/* stacked bars (horizontal rows) */
.sbar-row{display:grid;grid-template-columns:var(--sbar-lbl,138px) 1fr 76px;align-items:center;gap:12px;padding:6px 8px;margin:0 -8px;border-radius:8px;transition:background var(--t-fast) ease}
.sbar-row:hover{background:var(--surface-2)}
.sbar-rows:hover .sbar-row:not(:hover){opacity:.55}
.sbar-row{transition:background var(--t-fast) ease,opacity var(--t-fast) ease}
.sbar-lbl{font-size:12.5px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.sbar-lbl:hover{color:var(--accent-ink)}
.sbar-track{display:flex;gap:2px;height:14px}
.sbar-seg{border-radius:3px;transform:scaleX(0);transform-origin:left center;transition:transform .7s var(--ease-out),filter var(--t-fast) ease;cursor:pointer;min-width:2px}
.ch-on .sbar-seg{transform:scaleX(1)}
.ch-settle .sbar-seg,.ch-settle .wf-bar{transition-duration:0s,var(--t-fast);transform:scaleX(1)}
.sbar-seg:hover{filter:brightness(.88) saturate(1.15)}
.sbar-val{text-align:right;font-size:12.5px;font-weight:550;font-variant-numeric:tabular-nums}

/* matrix / heatmap */
.mx{border-collapse:separate;border-spacing:3px;width:100%;table-layout:fixed}
.mx th{font-size:10px;font-weight:650;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);padding:2px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mx th.rowh{text-align:left;font-family:var(--sans);font-size:11.5px;font-weight:550;letter-spacing:0;text-transform:none;color:var(--ink-2);cursor:pointer;transition:color var(--t-fast) ease}
.mx th.rowh:hover{color:var(--accent-ink)}
.mx-cell{position:relative;height:34px;border-radius:7px;cursor:pointer;transition:transform var(--t-fast) var(--ease-spring),box-shadow var(--t-fast) ease;text-align:center;font-size:11px;font-weight:550;font-variant-numeric:tabular-nums}
.mx-cell:hover{transform:scale(1.07);box-shadow:0 3px 10px -2px rgba(var(--shadow-c),.25);z-index:2}
.mx-cell .notch{position:absolute;top:3px;right:3px;width:0;height:0;border-style:solid;border-width:0 7px 7px 0;border-color:transparent var(--viz-prev) transparent transparent;border-radius:0 2px 0 0}
.mx-cell.mute{cursor:default;color:var(--ink-3)}
.mx-cell.mute:hover{transform:none;box-shadow:none}

/* waterfall */
.wf-row{display:grid;grid-template-columns:var(--wf-lbl,168px) 1fr 84px;align-items:center;gap:12px;padding:5px 8px;margin:0 -8px;border-radius:8px;transition:background var(--t-fast) ease}
.wf-row:hover{background:var(--surface-2)}
.wf-track{position:relative;height:15px}
.wf-bar{position:absolute;top:0;bottom:0;border-radius:4px;transform:scaleX(0);transition:transform .7s var(--ease-out),filter var(--t-fast) ease;cursor:pointer}
.ch-on .wf-bar{transform:scaleX(1)}
.wf-bar:hover{filter:brightness(.88)}
.wf-conn{position:absolute;top:-6px;bottom:-6px;width:1px;background:var(--hairline)}
.wf-val{text-align:right;font-size:12px;font-weight:550;font-variant-numeric:tabular-nums}

/* stage-flow (hero) */
.sf-wrap{position:relative}
.sf-svg .sf-band{cursor:pointer;transition:filter var(--t-fast) ease,opacity var(--t-fast) ease}
.sf-svg:hover .sf-band:not(:hover){opacity:.55}
.sf-svg .sf-band:hover{filter:brightness(.92) saturate(1.12)}
.sf-svg .sf-leak{cursor:pointer;transition:filter var(--t-fast) ease}
.sf-svg .sf-leak:hover{filter:brightness(.85)}
.sf-lbl{font-size:10px;font-weight:650;letter-spacing:.05em;text-transform:uppercase;fill:var(--ink-3);font-family:var(--sans)}
.sf-amt{font-size:13.5px;font-weight:400;letter-spacing:-.01em;fill:var(--ink);font-variant-numeric:tabular-nums;font-family:var(--sans)}
.sf-leak-amt{font-family:var(--mono);font-size:9.5px;fill:var(--ink-3)}
.sf-reveal{transition:none}

/* curve chart annotation */
.cv-ann{font-family:var(--mono);font-size:9.5px;fill:var(--ink-2)}

/* ring gauge */
.gauge-wrap{position:relative;display:grid;place-items:center}
.gauge-v{position:absolute;text-align:center}
.gauge-v b{display:block;font-size:22px;font-weight:350;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.gauge-v span{font-size:9.5px;font-weight:650;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}
.gauge-arc{transition:stroke-dashoffset .9s var(--ease-out)}

/* multi-line legend */
.ml-legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:6px}
.ml-legend .lg{cursor:pointer;opacity:1;transition:opacity var(--t-fast) ease}
.ml-legend .lg.off{opacity:.35}

/* ---------- entities ---------- */
/* keyboard reach: every Entities-wired row/chip is focusable — visible ring,
   inset so it never clips against drawer edges (.kb-ring = demo-shot mirror) */
[data-ent]:focus-visible,[data-ent].kb-ring{outline:2px solid var(--accent);outline-offset:-2px;border-radius:9px}
.ent-head{display:flex;align-items:center;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--hairline);margin-bottom:14px}
.ent-ic{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;flex:none;background:var(--accent-bg);color:var(--accent-ink)}
.ent-head .u-av{width:38px;height:38px;font-size:13px}
.ent-t b{display:block;font-size:15px;font-weight:650;letter-spacing:-.01em}
.ent-t span{font-size:11.5px;color:var(--ink-3);display:flex;gap:6px;align-items:center;margin-top:1px}
.ent-kv{display:grid;grid-template-columns:repeat(var(--kv-cols,3),1fr);gap:10px;margin:12px 0}
.ent-kv .kv{background:var(--surface-2);border-radius:9px;padding:9px 11px}
.ent-kv .kv i{display:block;font-style:normal;font-size:9.5px;font-weight:650;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}
.ent-kv .kv b{display:block;font-size:16px;font-weight:400;letter-spacing:-.015em;font-variant-numeric:tabular-nums;margin-top:3px}
.ent-kv .kv b small{font-size:10.5px;color:var(--ink-3);font-weight:500}
.ent-sec{margin-top:16px}
.ent-sec>h4{font-size:10.5px;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-bottom:8px}
.split-bar{display:flex;height:10px;border-radius:5px;overflow:hidden;gap:2px;margin:6px 0 4px}
.split-bar i{display:block;height:100%;transition:width .7s var(--ease-out)}
.split-lg{display:flex;gap:14px;font-size:11px;color:var(--ink-2)}
.split-lg b{font-variant-numeric:tabular-nums;font-weight:600}

/* audit trail / history timeline (vertical) */
.trail{position:relative;padding-left:19px}
.trail::before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:1.5px;background:var(--hairline)}
.tr-ev{position:relative;padding:5px 0 9px}
.tr-ev::before{content:"";position:absolute;left:-17.5px;top:9px;width:7px;height:7px;border-radius:50%;background:var(--surface);border:2px solid var(--ev-c,var(--viz-mute));transition:transform var(--t-fast) var(--ease-spring)}
.tr-ev:hover::before{transform:scale(1.35)}
.tr-ev .ev-t{font-size:12px;font-weight:550}
.tr-ev .ev-m{font-size:11px;color:var(--ink-3);margin-top:1px}
.tr-ev .ev-d{font-family:var(--mono);font-size:10px;color:var(--ink-3);float:right;margin-left:8px}

/* checklist */
.ckl{display:flex;flex-direction:column;gap:4px}
.ck-it{display:flex;align-items:flex-start;gap:9px;padding:6px 8px;border-radius:8px;font-size:12px;transition:background var(--t-fast) ease}
.ck-it:hover{background:var(--surface-2)}
.ck-it .ck-box{flex:none;width:16px;height:16px;border-radius:5px;border:1.5px solid var(--hairline);display:grid;place-items:center;margin-top:1px}
.ck-it.hit .ck-box{border-color:var(--s-good);background:rgba(12,163,12,.08);color:var(--s-good-ink)}
.ck-it.miss .ck-box{border-color:rgba(208,59,59,.5);background:rgba(208,59,59,.06);color:var(--danger)}
@keyframes miss-glow{0%,100%{box-shadow:0 0 0 0 rgba(208,59,59,0)}50%{box-shadow:0 0 0 4px rgba(208,59,59,.12)}}
.ck-it.miss .ck-box{animation:miss-glow 2.2s ease-in-out 2}
.ck-it.miss{color:var(--ink)}
.ck-it .ck-sub{display:block;font-size:10.5px;color:var(--ink-3)}

/* entity profile page */
.prof-head{display:flex;align-items:center;gap:16px;padding:26px 2px 18px}
.prof-head .ent-ic{width:52px;height:52px;border-radius:14px}
.prof-head .u-av{width:52px;height:52px;font-size:17px}
.prof-head h1{font-size:22px;font-weight:650;letter-spacing:-.02em}
.prof-head .sub{font-size:12.5px;color:var(--ink-3);margin-top:3px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.prof-head .page-actions{margin-left:auto}

/* ---------- home ---------- */
.brief-card{position:relative;overflow:hidden;padding:20px 22px 18px}
.brief-card::before{content:"";position:absolute;inset:0 0 auto 0;height:2px;background:linear-gradient(90deg,var(--accent),#7a3ff2 60%,transparent)}
.brief-tag{display:inline-flex;align-items:center;gap:7px;font-size:10.5px;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-ink)}
.brief-tag .spark-ic{color:var(--accent)}
.brief-line{font-size:13.5px;line-height:1.62;color:var(--ink-2);opacity:0;transform:translateY(6px)}
.brief-line.in{opacity:1;transform:none;transition:opacity .45s var(--ease-out),transform .45s var(--ease-out)}
.brief-line b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
.brief-line .hi{position:relative;color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums;background:linear-gradient(90deg,var(--accent-bg),transparent 130%);border-radius:4px;padding:0 3px}
@media (prefers-reduced-motion:reduce){.brief-line{opacity:1;transform:none}}
.brief-actions{display:flex;flex-direction:column;gap:6px;margin-top:13px}
.brief-act{display:flex;align-items:center;gap:11px;padding:9px 11px;border:1px solid var(--hairline);border-radius:10px;background:var(--surface);cursor:pointer;text-align:left;transition:border-color var(--t-fast) ease,box-shadow var(--t-fast) ease,transform var(--t-fast) ease}
.brief-act:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--hairline));box-shadow:0 3px 12px -4px rgba(var(--shadow-c),.12);transform:translateY(-1px)}
.brief-act .ba-n{flex:none;width:22px;height:22px;border-radius:7px;background:var(--accent-bg);color:var(--accent-ink);display:grid;place-items:center;font-size:11px;font-weight:650;font-variant-numeric:tabular-nums}
.brief-act .ba-t{font-size:12.5px;font-weight:550}
.brief-act .ba-s{font-size:11px;color:var(--ink-3);margin-top:1px}
.brief-act .ba-v{margin-left:auto;font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--accent-ink);white-space:nowrap}
.brief-act .go{opacity:0;transform:translateX(-4px);transition:opacity var(--t-fast) ease,transform var(--t-fast) ease;color:var(--ink-3)}
.brief-act:hover .go{opacity:1;transform:none}

.mod-tile{padding:16px 17px 14px;cursor:pointer;position:relative;overflow:hidden}
.mod-tile .mt-ic{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--hairline);color:var(--ink-2);transition:transform var(--t-med) var(--ease-spring),color var(--t-fast) ease,background var(--t-fast) ease}
.mod-tile:hover .mt-ic{transform:scale(1.1) rotate(-4deg);color:var(--accent-ink);background:var(--accent-bg)}
.mod-tile .mt-name{font-size:13.5px;font-weight:600;margin-top:10px;letter-spacing:-.008em}
.mod-tile .mt-sig{font-size:11.5px;margin-top:3px;color:var(--ink-3);display:flex;align-items:center;gap:5px}
.mod-tile .mt-sig b{font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink-2)}
.mod-tile .mt-sig .delta{font-size:10.5px}
.mod-tile .mt-count{position:absolute;top:14px;right:15px;font-family:var(--mono);font-size:10px;color:var(--ink-3)}
.mod-tile .go{position:absolute;right:13px;bottom:13px;opacity:0;transform:translateX(-4px);transition:opacity var(--t-fast) ease,transform var(--t-fast) ease;color:var(--ink-3)}
.mod-tile:hover .go{opacity:1;transform:none}

.decide-it{display:flex;align-items:flex-start;gap:11px;padding:10px 11px;border-radius:10px;cursor:pointer;transition:background var(--t-fast) ease;border-bottom:1px solid var(--hairline-2)}
.decide-it:last-child{border-bottom:0}
.decide-it:hover{background:var(--surface-2)}
.decide-it .d-sev{flex:none;width:7px;height:7px;border-radius:50%;margin-top:6px}
.decide-it .d-t{font-size:12.5px;font-weight:550;line-height:1.4}
.decide-it .d-m{font-size:11px;color:var(--ink-3);margin-top:2px;display:flex;gap:7px;flex-wrap:wrap}
.decide-it .d-v{margin-left:auto;text-align:right;flex:none}
.decide-it .d-v b{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;display:block}
.decide-it .d-v span{font-size:10px;color:var(--ink-3)}

/* stub / under-construction pages */
.stub-cap{padding:16px 17px 15px;cursor:pointer}
.stub-cap .sc-name{font-size:13.5px;font-weight:600;letter-spacing:-.008em;display:flex;align-items:center;gap:8px}
.stub-cap .sc-name .go{margin-left:auto;opacity:0;transform:translateX(-4px);transition:all var(--t-fast) ease;color:var(--ink-3)}
.stub-cap:hover .sc-name .go{opacity:1;transform:none}
.stub-cap .sc-reports{margin-top:9px;display:flex;flex-direction:column;gap:4px}
.stub-cap .sc-r{font-size:11.5px;color:var(--ink-3);display:flex;align-items:center;gap:7px}
.stub-cap .sc-r i{width:4px;height:4px;border-radius:50%;background:var(--hairline);flex:none;transition:background var(--t-fast) ease}
.stub-cap:hover .sc-r i{background:var(--accent)}
.uc-wrap{max-width:520px;margin:0 auto;text-align:center;padding:64px 0 30px}
.uc-badge{display:inline-flex;align-items:center;gap:7px;font-size:10.5px;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--warn-ink);background:rgba(237,161,0,.1);border:1px solid rgba(237,161,0,.22);border-radius:99px;padding:4px 12px}
@keyframes uc-blink{0%,100%{opacity:1}50%{opacity:.35}}
.uc-badge i{width:6px;height:6px;border-radius:50%;background:var(--warn);animation:uc-blink 1.6s ease-in-out infinite}
.uc-wrap h2{font-size:19px;font-weight:650;letter-spacing:-.015em;margin-top:16px}
.uc-wrap p{font-size:12.5px;color:var(--ink-3);margin-top:6px}
.uc-list{margin:18px auto 0;max-width:400px;text-align:left}

/* 404 */
.nf-code{font-family:var(--mono);font-size:11px;color:var(--ink-3);letter-spacing:.1em}

.pal-count{font-family:var(--mono);font-size:10px;color:var(--ink-3);padding:6px 12px;border-top:1px solid var(--hairline-2)}
