/* Mudals Requisition Desk — "Hiring Board" theme.
   Navy rail + a four-column board (Writing the JD → Awaiting sign-off → 30-day clock → Joined the family).
   Details open in a side sheet (full screen on phones). */
:root{
  --brand:#232085; --brand-ink:#ffffff; --brand-soft:#CCCCFF;
  --bg:#F4F3FA; --surface:#ffffff; --sunk:#ECEAF7; --ink:#1B1A3A; --muted:#5E5C7A; --line:#E2E0F2;
  --accent:#5A36E0; --accent-ink:#ffffff; --accent-soft:#E7E1FF; --accent-text:#4B2BC8;
  --c1:#ECEAF7; --c2:#E7E1FF; --c3:#FFF1DC; --c4:#DDF4EA;
  --c1-ink:#1B1A3A; --c2-ink:#3A1FB0; --c3-ink:#6B4300; --c4-ink:#145A40;
  --info:#3B4FC4; --info-soft:#E6E9FB; --warn:#9A5A00; --warn-soft:#FDEFD6; --bad:#B4342B; --bad-soft:#FBE3E0; --good:#1F7A57; --good-soft:#DDF4EA;
  --chip-navy:#232085; --chip-amber:#A86200; --chip-red:#B4342B; --chip-green:#1F7A57;
  --shadow:0 14px 44px rgba(35,32,133,.16); --lift:0 10px 24px rgba(35,32,133,.12);
  --f:"Outfit", "Segoe UI", system-ui, sans-serif;
  --f-mono:ui-monospace, "SFMono-Regular", Menlo, monospace;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --brand:#1A1866;
  --bg:#0E0D1F; --surface:#17162E; --sunk:#1F1D3A; --ink:#E8E7F7; --muted:#A3A1C2; --line:#2D2B4D;
  --accent:#A99BFF; --accent-ink:#130B3D; --accent-soft:#2A2356; --accent-text:#C9BDFF;
  --c1:#1A1934; --c2:#211C46; --c3:#2A2114; --c4:#13281F;
  --c1-ink:#E8E7F7; --c2-ink:#C9BDFF; --c3-ink:#F2C27A; --c4-ink:#8FDDBA;
  --info:#9AA8FF; --info-soft:#1E2350; --warn:#E3A54B; --warn-soft:#3A2B14; --bad:#EC8A80; --bad-soft:#3D1F1C; --good:#7CCB95; --good-soft:#18331F;
  --chip-navy:#3B37B8;
  --shadow:0 14px 44px rgba(0,0,0,.55); --lift:0 10px 24px rgba(0,0,0,.4); color-scheme:dark;}}
:root[data-theme="dark"]{
  --brand:#1A1866;
  --bg:#0E0D1F; --surface:#17162E; --sunk:#1F1D3A; --ink:#E8E7F7; --muted:#A3A1C2; --line:#2D2B4D;
  --accent:#A99BFF; --accent-ink:#130B3D; --accent-soft:#2A2356; --accent-text:#C9BDFF;
  --c1:#1A1934; --c2:#211C46; --c3:#2A2114; --c4:#13281F;
  --c1-ink:#E8E7F7; --c2-ink:#C9BDFF; --c3-ink:#F2C27A; --c4-ink:#8FDDBA;
  --info:#9AA8FF; --info-soft:#1E2350; --warn:#E3A54B; --warn-soft:#3A2B14; --bad:#EC8A80; --bad-soft:#3D1F1C; --good:#7CCB95; --good-soft:#18331F;
  --chip-navy:#3B37B8;
  --shadow:0 14px 44px rgba(0,0,0,.55); --lift:0 10px 24px rgba(0,0,0,.4); color-scheme:dark;}

*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{height:100%}
img{max-width:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f);font-size:15px;line-height:1.5}
h1,h2,h3{font-family:var(--f);margin:0;text-wrap:balance;letter-spacing:-.01em}
h1{font-size:40px;line-height:1.05;font-weight:800;letter-spacing:-.02em}
h2{font-size:20px;font-weight:700}
h3{font-size:16px;font-weight:700}
.mono{font-family:var(--f-mono);font-size:12px;font-variant-numeric:tabular-nums}
.muted{color:var(--muted)}
.label{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:600}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

.btn{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:10px 16px;cursor:pointer;font-weight:600;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;color:var(--ink);text-decoration:none;transition:transform .12s ease, box-shadow .12s ease, border-color .12s}
.btn:hover{border-color:var(--accent)}
.btn:active{transform:translateY(1px)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.primary:hover{box-shadow:0 8px 20px rgba(90,54,224,.3)}
.btn.danger{color:var(--bad)}
.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}
.btn.ghost:hover{color:var(--ink);border-color:var(--line)}
.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
.btn svg{flex:none}

/* ---------- shell: navy rail + main ---------- */
.shell{display:flex;min-height:100%}
.rail{width:88px;flex:none;background:var(--brand);display:flex;flex-direction:column;align-items:center;gap:14px;padding:22px 0 18px;position:sticky;top:0;height:100vh}
.rail .mark{width:34px;height:42px;margin-bottom:10px}
.rail-btn{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;border:0;background:transparent;color:var(--brand-soft);cursor:pointer;position:relative;text-decoration:none}
.rail-btn:hover{background:rgba(255,255,255,.08);color:#fff}
.rail-btn[aria-current="page"]{background:#5A36E0;color:#fff}
.rail-btn .tip{position:absolute;left:62px;top:50%;transform:translateY(-50%);background:#0E0D1F;color:#fff;font-size:12px;font-weight:600;padding:5px 9px;border-radius:8px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .12s;z-index:5}
.rail-btn:hover .tip,.rail-btn:focus-visible .tip{opacity:1}
.rail-spacer{flex:1}
.rail .me-av{width:40px;height:40px;border-radius:50%;overflow:hidden;display:grid;place-items:center;border:2px solid rgba(204,204,255,.5)}
.rail .me-av img,.rail .me-av .avatar{width:100%;height:100%;border-radius:50%;font-size:13px}
.main{flex:1;min-width:0;padding:28px 36px 48px;display:flex;flex-direction:column;gap:22px}
@media (max-width:760px){
  .shell{flex-direction:column}
  .rail{width:auto;height:auto;position:sticky;top:0;z-index:15;flex-direction:row;padding:10px max(16px,env(safe-area-inset-right,0px)) 10px max(16px,env(safe-area-inset-left,0px));gap:6px}
  .rail .mark{width:26px;height:32px;margin:0 8px 0 0}
  .rail-btn{width:44px;height:44px;border-radius:12px}
  .rail-btn .tip{display:none}
  .rail .me-av{width:34px;height:34px}
  .main{padding:20px 16px 40px}
  h1{font-size:30px}
}

/* ---------- page head ---------- */
.head{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}
.head .eyebrow{font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-text)}
.head .titles{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1 1 420px}
.head .pulse{color:var(--muted);font-size:15px;margin:2px 0 0}
.head .tools{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.search{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:11px 14px 11px 40px;width:230px;max-width:100%;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%238E8AB8' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='8' cy='8' r='6'/%3E%3Cpath d='m13 13 4 4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:14px 50%}
@media (max-width:760px){.search{width:100%}.head .tools{width:100%}}

/* "your turn" focus banner */
.focus{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:var(--brand);color:#fff;border-radius:20px;padding:16px 20px;position:relative;overflow:hidden}
.focus::after{content:"";position:absolute;right:-40px;top:-60px;width:220px;height:220px;border-radius:50%;border:28px solid rgba(204,204,255,.08);pointer-events:none}
.focus .big{font-size:40px;font-weight:800;line-height:1;min-width:44px;text-align:center}
.focus .txt{display:flex;flex-direction:column;gap:2px;flex:1 1 260px;min-width:0}
.focus .txt b{font-size:18px}
.focus .txt span{color:#D9D8FF;font-size:14px}
.focus .btn{background:#fff;color:#232085;border-color:#fff;position:relative;z-index:1}
.focus.calm{background:var(--good-soft);color:var(--ink)}
.focus.calm .txt span{color:var(--muted)}
.focus.calm::after{border-color:rgba(31,122,87,.08)}

/* filter chips */
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:8px 14px;cursor:pointer;font-weight:600;font-size:14px;color:var(--muted)}
.chip:hover{color:var(--ink)}
.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.chip .n{display:inline-block;margin-left:6px;padding:0 7px;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-size:12px}

/* ---------- the board ---------- */
.board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:start}
@media (max-width:1100px){.board{grid-template-columns:repeat(4,minmax(270px,1fr));overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px}.col{scroll-snap-align:start}}
.col{border-radius:22px;padding:12px;display:flex;flex-direction:column;gap:12px;min-height:220px}
.col.k1{background:var(--c1)} .col.k2{background:var(--c2)} .col.k3{background:var(--c3)} .col.k4{background:var(--c4)}
.col-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 6px 2px}
.col-head h2{font-size:17px}
.k1 .col-head h2{color:var(--c1-ink)} .k2 .col-head h2{color:var(--c2-ink)} .k3 .col-head h2{color:var(--c3-ink)} .k4 .col-head h2{color:var(--c4-ink)}
.col-head .count{min-width:30px;height:30px;padding:0 8px;border-radius:10px;background:var(--surface);display:grid;place-items:center;font-weight:800}
.k2 .col-head .count{background:var(--accent);color:var(--accent-ink)}
.k4 .col-head .count{background:var(--good);color:#fff}
.col-sub{font-size:12.5px;color:var(--muted);padding:0 6px;margin-top:-8px}
.col-empty{border:2px dashed rgba(94,92,122,.25);border-radius:16px;padding:18px;text-align:center;color:var(--muted);font-size:13.5px}
.more{border:0;background:transparent;color:var(--accent-text);font-weight:600;cursor:pointer;padding:6px}

.card{background:var(--surface);border:0;border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:8px;text-align:left;cursor:pointer;width:100%;color:var(--ink);
  transition:transform .15s ease, box-shadow .15s ease;animation:pop .28s ease both}
.card:hover{transform:translateY(-2px);box-shadow:var(--lift)}
.card.hot{box-shadow:0 0 0 2px var(--accent)}
.card.hot:hover{box-shadow:0 0 0 2px var(--accent),var(--lift)}
.card .t{font-weight:700;font-size:16.5px;line-height:1.25;overflow-wrap:anywhere}
.card .s{font-size:13px;color:var(--muted)}
.card .row1{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.card .meta{display:flex;align-items:center;gap:8px;justify-content:space-between;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.card .next{font-size:13.5px;color:var(--muted)}
.card .next b{color:var(--accent-text)}
.card.clockcard{flex-direction:row;align-items:center;gap:14px}
.card .stack{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.counter{width:60px;height:60px;flex:none;border-radius:16px;background:var(--chip-navy);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
.counter b{font-size:24px;font-weight:800}
.counter span{font-size:9.5px;letter-spacing:.1em;margin-top:3px;opacity:.9}
.counter.warn{background:var(--chip-amber)} .counter.bad{background:var(--chip-red)} .counter.done{background:var(--chip-green)}
.mini-bar{height:6px;background:var(--sunk);border-radius:6px;overflow:hidden}
.mini-bar i{display:block;height:100%;background:var(--accent);border-radius:6px}
.mini-bar.warn i{background:var(--chip-amber)} .mini-bar.bad i{background:var(--chip-red)}
.badge{font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap;align-self:flex-start}
.badge.turn{background:var(--accent);color:var(--accent-ink)}
.badge.late{background:var(--bad-soft);color:var(--bad)}
.badge.warn{background:var(--warn-soft);color:var(--warn)}
.badge.soft{background:var(--sunk);color:var(--muted)}
.badge.good{background:var(--good-soft);color:var(--good)}
.joined{display:flex;align-items:center;gap:10px}
.joined .avatar,.joined img{width:36px;height:36px;font-size:13px;border-radius:50%}
@keyframes pop{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.card{animation:none;transition:none}}

.readonly-note{margin:-6px 0 0;font-size:14px;color:var(--muted)}

/* people */
.person{display:inline-flex;align-items:center;gap:8px;min-width:0}
.person img{width:24px;height:24px;border-radius:50%;flex:none}
.person span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.avatar{width:24px;height:24px;border-radius:50%;flex:none;display:inline-grid;place-items:center;font-size:10.5px;font-weight:700;color:#fff}

/* pills (sheet + team) */
.pill{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;padding:3px 10px;border-radius:999px;white-space:nowrap}
.st-requested{background:var(--c1);color:var(--c1-ink)}
.st-info_needed{background:var(--warn-soft);color:var(--warn)}
.st-jd_shared{background:var(--c2);color:var(--c2-ink)}
.st-signed_off{background:var(--c3);color:var(--c3-ink)}
.st-closed{background:var(--c4);color:var(--c4-ink)}
.t-warn{color:var(--warn);font-weight:700}.t-bad{color:var(--bad);font-weight:700}.t-good{color:var(--good);font-weight:700}.t-act{color:var(--accent-text)}

.empty{background:var(--surface);border:2px dashed var(--line);border-radius:22px;padding:32px 28px;display:flex;flex-direction:column;gap:20px;align-items:flex-start}
.empty p{margin:0;color:var(--muted);max-width:60ch}
.flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;width:100%}
.flow div{border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:4px}
.flow div:nth-child(1){background:var(--c1)} .flow div:nth-child(2){background:var(--c2)} .flow div:nth-child(3){background:var(--c3)} .flow div:nth-child(4){background:var(--c4)}
.flow b{font-size:15px}
.flow span{font-size:13px;color:var(--muted)}
@media (max-width:640px){.flow{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}

/* ---------- sheet ---------- */
.scrim{position:fixed;inset:0;background:rgba(20,18,70,.45);z-index:20;backdrop-filter:blur(2px)}
.sheet{position:fixed;top:0;right:0;bottom:0;width:min(640px,100%);background:var(--surface);z-index:21;box-shadow:var(--shadow);display:flex;flex-direction:column;border-radius:24px 0 0 24px;
  padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-right:env(safe-area-inset-right,0px)}
@media (max-width:640px){.sheet{border-radius:0}}
.sheet-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:22px 24px 16px;border-bottom:1px solid var(--line)}
.sheet-head h2{font-size:24px;font-weight:800}
.sheet-head .meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:6px}
.sheet-body{overflow-y:auto;padding:20px 24px 32px;display:flex;flex-direction:column;gap:22px;flex:1;min-height:0}
@media (max-width:640px){.sheet-head,.sheet-body{padding-left:16px;padding-right:16px}}
.x{border:0;background:var(--sunk);width:40px;height:40px;border-radius:12px;cursor:pointer;font-size:20px;line-height:1;flex:none;color:var(--ink)}

/* journey stepper */
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.step{display:flex;flex-direction:column;gap:6px;font-size:12.5px;font-weight:600;color:var(--muted)}
.step i{height:6px;border-radius:6px;background:var(--sunk)}
.step.done i{background:var(--accent)}
.step.now{color:var(--ink)}
.step.now i{background:linear-gradient(90deg,var(--accent) 50%,var(--sunk) 50%)}
.steps.all .step i{background:var(--good)}
.steps.all .step{color:var(--good)}

.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 16px;background:var(--bg);border-radius:16px;padding:16px}
.facts div{display:flex;flex-direction:column;gap:2px;min-width:0}
.facts b{font-weight:500;overflow-wrap:anywhere}
@media (max-width:520px){.facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
.section{display:flex;flex-direction:column;gap:12px}
.callout{border-radius:16px;padding:16px 18px;display:flex;flex-direction:column;gap:6px}
.callout.warn{background:var(--warn-soft)} .callout.info{background:var(--c2)} .callout.accent{background:var(--c3)} .callout.good{background:var(--c4)} .callout.plain{background:var(--c1)}
.callout p{margin:0}
.bigclock{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.bigclock .d{font-size:48px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.ticks{display:grid;grid-template-columns:repeat(30,minmax(0,1fr));gap:3px}
.ticks i{height:16px;border-radius:3px;background:rgba(94,92,122,.18)}
.ticks i.on{background:var(--accent)}
.ticks i.now{background:var(--ink)}
.ticks.warn i.on{background:var(--chip-amber)} .ticks.bad i.on{background:var(--chip-red)}
.callout.good .ticks i.on{background:var(--good)}

.jd{display:flex;flex-direction:column;gap:14px}
.jd .f{display:flex;flex-direction:column;gap:3px}
.jd .f p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;max-width:65ch}
.jd .two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
@media (max-width:520px){.jd .two{grid-template-columns:minmax(0,1fr)}}

form.fm{display:flex;flex-direction:column;gap:14px}
.fld{display:flex;flex-direction:column;gap:6px;min-width:0;position:relative}
.fld label{font-size:13.5px;font-weight:600}
.fld .hint{font-size:12.5px;color:var(--muted)}
.fld input,.fld select,.fld textarea{border:1px solid var(--line);background:var(--bg);border-radius:12px;padding:10px 12px;width:100%;min-width:0}
.fld input:focus,.fld select:focus,.fld textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}
.fld textarea{min-height:88px;resize:vertical}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
@media (max-width:520px){.grid2,.grid3{grid-template-columns:minmax(0,1fr)}}
.req::after{content:" *";color:var(--bad)}
.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.picker{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);z-index:5;overflow:hidden}
.picker button{display:flex;gap:10px;align-items:center;width:100%;border:0;background:none;padding:10px 12px;cursor:pointer;text-align:left}
.picker button:hover,.picker button:focus-visible{background:var(--sunk)}
.picker img,.picker .avatar{width:28px;height:28px;border-radius:50%}
.chosen{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--line);background:var(--bg);border-radius:12px;padding:6px 8px 6px 12px}
.altwrite{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;border:2px dashed var(--line);border-radius:16px;padding:14px 16px}
.ro{background:var(--sunk);border-radius:12px;padding:10px 14px;font-size:13.5px;color:var(--muted)}

.checks{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.checks label{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line);cursor:pointer}
.checks label:last-child{border-bottom:0}
.checks label:has(input:checked){background:var(--c2)}
.checks input{width:20px;height:20px;accent-color:var(--accent)}
.checks .src{font-size:12px}
.timeline{display:flex;flex-direction:column;border-left:2px solid var(--line);margin-left:6px}
.timeline div{position:relative;padding:0 0 14px 18px}
.timeline div::before{content:"";position:absolute;left:-7px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--surface);border:2px solid var(--accent)}
.timeline div:last-child{padding-bottom:0}
.timeline p{margin:2px 0 0;font-size:13.5px;white-space:pre-wrap;overflow-wrap:anywhere}
.confirm{display:flex;flex-direction:column;gap:10px;border:1px solid var(--bad);border-radius:14px;padding:12px 14px}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(20px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--bg);padding:12px 18px;border-radius:14px;z-index:30;font-size:14px;font-weight:500;max-width:calc(100% - 32px);box-shadow:var(--shadow)}
.note{font-size:13px;color:var(--muted)}
.banner{background:var(--warn-soft);border-radius:14px;padding:10px 14px;font-size:14px}
@media (prefers-reduced-motion:no-preference){.sheet{animation:slide .24s ease-out}@keyframes slide{from{transform:translateX(28px);opacity:.6}to{transform:none;opacity:1}}}

.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.mt6{margin-top:6px}.sub2{margin:2px 0 0}.sub4{margin:4px 0 0}.minw0{min-width:0}

/* team panel */
.tlist{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.trow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.trow:last-child{border-bottom:0}
.tperson{display:flex;align-items:center;gap:10px;min-width:0;flex:1 1 220px}
.tperson img,.tperson .avatar{width:32px;height:32px;border-radius:50%;flex:none;font-size:12px}
.tname{font-weight:600;overflow-wrap:anywhere}
.tact{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.tact .btn{padding:6px 10px;font-size:13px}
.tag{font-size:11px;padding:1px 8px;vertical-align:1px}

/* celebration */
.confetti{position:fixed;inset:0;pointer-events:none;z-index:40;overflow:hidden}
.confetti i{position:absolute;top:-16px;width:10px;height:14px;border-radius:3px;animation:fall 2.2s cubic-bezier(.2,.6,.4,1) forwards}
@keyframes fall{to{transform:translate3d(var(--dx),105vh,0) rotate(var(--rot));opacity:.9}}
@media (prefers-reduced-motion:reduce){.confetti{display:none}}

/* ---------- sign-in ---------- */
.login{min-height:100vh;display:flex;background:var(--bg)}
.login .rail{height:auto;min-height:100vh}
.login-main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;padding:48px 20px;text-align:center}
.login-brand{display:flex;flex-direction:column;align-items:center;gap:12px}
.login-brand .wm-chip{background:#232085;border-radius:14px;padding:12px 16px;line-height:0}
.login-brand .wm-chip img{width:120px;height:auto}
.login-brand .eyebrow{font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-text)}
.login h1{font-size:52px}
.journey{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center}
.journey span{padding:10px 16px;border-radius:12px;font-weight:700;font-size:15px}
.journey span:nth-of-type(1){background:var(--c1);color:var(--c1-ink)}
.journey span:nth-of-type(2){background:var(--c2);color:var(--c2-ink)}
.journey span:nth-of-type(3){background:var(--c3);color:var(--c3-ink)}
.journey span:nth-of-type(4){background:var(--c4);color:var(--c4-ink)}
.journey svg{color:var(--muted)}
.login .card-in{width:min(420px,100%);background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:28px;display:flex;flex-direction:column;gap:14px}
.login .err{background:var(--bad-soft);color:var(--bad);border-radius:12px;padding:10px 12px;font-size:14px;text-align:left}
.gbtn{justify-content:center;padding:14px 18px;font-size:16px}
.gbtn .g{width:26px;height:26px;border-radius:50%;background:#fff;display:grid;place-items:center}
@media (max-width:760px){.login{flex-direction:column}.login .rail{min-height:0}.login h1{font-size:36px}.journey svg{display:none}}

/* ---------- JD files + messages ---------- */
.extras{display:inline-flex;gap:10px;margin-left:8px;vertical-align:-2px;color:var(--muted);font-size:12.5px;font-weight:600}
.extras span{display:inline-flex;align-items:center;gap:3px}
.extras .fresh{color:var(--accent-text)}
.sec-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.files{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.frow{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line)}
.frow:last-child{border-bottom:0}
.frow .ficon{width:36px;height:36px;border-radius:10px;background:var(--c2);color:var(--c2-ink);display:grid;place-items:center;flex:none}
.frow a{font-weight:600;overflow-wrap:anywhere;color:var(--accent-text);text-decoration:none}
.frow a:hover{text-decoration:underline}
.frow .note{display:block}
.grow{flex:1}
.dropzone{border:2px dashed var(--line);border-radius:16px;padding:14px;background:var(--bg)}
.dropzone label{display:flex;align-items:center;gap:6px}
.dropzone input[type=file]{border:0;background:transparent;padding:4px 0}
.thread{display:flex;flex-direction:column;gap:10px;max-height:340px;overflow-y:auto;padding:4px 2px}
.msg{display:flex;gap:8px;align-items:flex-end;max-width:88%}
.msg .avatar,.msg img{width:28px;height:28px;border-radius:50%;font-size:11px}
.msg.mine{align-self:flex-end;flex-direction:row-reverse}
.bubble{background:var(--sunk);border-radius:16px 16px 16px 4px;padding:10px 14px;min-width:0}
.msg.mine .bubble{background:var(--c2);border-radius:16px 16px 4px 16px}
.bubble .who{font-size:12px;color:var(--muted);font-weight:600}
.bubble p{margin:2px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
.msgform textarea{min-height:76px;width:100%;border:1px solid var(--line);background:var(--bg);border-radius:12px;padding:10px 12px;resize:vertical}
.msgform textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}

/* ===================== v6 · recruiting ===================== */
body[data-screen="insights"] #q{display:none}
.grow{flex:1}
.mt12{margin-top:12px}
.pre{white-space:pre-wrap;overflow-wrap:anywhere;margin:4px 0 0}
.avatar.big{width:34px;height:34px;font-size:12.5px}
.card .extras svg,.extras svg{vertical-align:-2px}
/* stage pills */
.cs-early{background:var(--c1);color:var(--c1-ink)}
.cs-short{background:var(--info-soft);color:var(--info)}
.cs-int{background:var(--c2);color:var(--c2-ink)}
.cs-offer{background:var(--c3);color:var(--c3-ink)}
.cs-joined{background:var(--c4);color:var(--c4-ink)}
.cs-hold{background:var(--warn-soft);color:var(--warn)}
.cs-out{background:var(--sunk);color:var(--muted)}
/* filter bar */
.cbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.sel{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:8px 12px;max-width:100%;min-width:0}
.seg{display:inline-flex;background:var(--sunk);border-radius:12px;padding:3px;gap:2px;flex-wrap:wrap}
.seg button,.seg label{border:0;background:transparent;border-radius:9px;padding:6px 12px;font-weight:600;font-size:13.5px;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center}
.seg button[aria-pressed="true"],.seg label:has(input:checked){background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(35,32,133,.14)}
.seg label input{position:absolute;opacity:0;width:1px;height:1px}
.seg label:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:1px}
.rstrip{display:flex;gap:10px;flex-wrap:wrap;align-items:center;background:var(--surface);border-radius:16px;padding:10px 14px;margin-top:12px}
/* candidate list */
.ctable{display:flex;flex-direction:column;background:var(--surface);border-radius:20px;overflow:hidden;box-shadow:0 1px 0 var(--line)}
.crow{display:grid;grid-template-columns:40px minmax(0,1fr);align-items:center;border-bottom:1px solid var(--line)}
.crow.nosel{grid-template-columns:minmax(0,1fr)}
.crow.on{background:var(--accent-soft)}
.crow .ck{display:grid;place-items:center;height:100%;padding-left:10px;cursor:pointer}
.crow .ck input{width:18px;height:18px;accent-color:var(--accent);cursor:pointer}
.crow-main{display:grid;grid-template-columns:minmax(190px,2.1fr) minmax(110px,1.2fr) 120px minmax(110px,1fr) 96px minmax(120px,1.1fr) minmax(140px,1.3fr);gap:12px;align-items:center;
  padding:12px 16px 12px 8px;border:0;background:none;text-align:left;width:100%;cursor:pointer;color:var(--ink);font-size:14px;min-width:0}
.crow.nosel .crow-main{padding-left:16px}
.crow:last-child{border-bottom:0}
.crow:not(.head):not(.on):hover{background:var(--bg)}
.crow.head{cursor:default;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600;background:var(--bg)}
.crow-main > span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.crow.head .crow-main{cursor:default}
.c-name{display:flex;gap:10px;align-items:center}
.c-name .minw0{display:flex;flex-direction:column}
.c-name b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.c-name .s,.c-role{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.c-contact{font-family:var(--f-mono);font-size:12.5px}
.c-next{font-size:13px;display:flex;gap:8px;align-items:center;justify-content:space-between}
@media (max-width:900px){
  .crow.head{display:none}
  .crow-main{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px}
  .c-name{grid-column:1}.crow-main > span:nth-child(3){grid-column:2;grid-row:1;justify-self:end}
  .c-role,.c-contact,.c-ctc,.c-owner,.c-next{grid-column:1 / -1}
  .c-owner{display:none}
}
/* pipeline */
.pipe{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(220px,1fr);gap:12px;overflow-x:auto;padding-bottom:8px;align-items:start}
.pcol{border-radius:20px;padding:10px;display:flex;flex-direction:column;gap:10px;min-height:160px}
.pcol .col-head{display:flex;justify-content:space-between;align-items:center;padding:4px 6px}
.pcol .col-head h2{font-size:15px;color:inherit}
.pcol .count{background:var(--surface);color:var(--ink);border-radius:999px;padding:1px 9px;font-weight:700;font-size:13px}
.pcol .card{padding:12px 13px;gap:6px}
.pcol .card .t{font-size:15px}
.pcol .note{font-size:12px}
/* candidate sheet */
.steps8{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px}
.steps8 .step{font-size:11px;line-height:1.2}
@media (max-width:520px){.steps8{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:10px}}
.contact{display:flex;gap:8px;flex-wrap:wrap}
.contact .btn{display:inline-flex;gap:6px;align-items:center;text-decoration:none}
.row-form{flex-direction:row!important;flex-wrap:wrap;align-items:center;gap:8px!important}
.row-form select,.row-form input{border:1px solid var(--line);background:var(--bg);border-radius:12px;padding:9px 12px;min-width:0}
.row-form input{flex:1 1 180px}
#candLog textarea,#candFb textarea{border:1px solid var(--line);background:var(--bg);border-radius:12px;padding:10px 12px;min-height:80px;resize:vertical;width:100%}
.label-like{font-size:13.5px;font-weight:600}
.fb{border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-top:10px}
.fb.select{border-left:4px solid var(--good)}.fb.reject{border-left:4px solid var(--bad)}.fb.hold{border-left:4px solid var(--warn)}
.fb-h{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.linkish{border:0;background:none;padding:0;color:var(--accent-text);font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.linkrow{border:0;background:none;width:100%;text-align:left;cursor:pointer;display:flex;gap:10px;align-items:center;color:var(--ink)}
.linkrow:hover{background:var(--bg)}
.recs{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.pills{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
/* insights */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}
.kpi{background:var(--surface);border-radius:18px;padding:14px 16px;display:flex;flex-direction:column;gap:2px;border-top:4px solid var(--accent)}
.kpi .n{font-size:30px;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}
.kpi b{font-size:14px}
.kpi .s{font-size:12.5px;color:var(--muted)}
.kpi.int{border-top-color:#B06BF5}.kpi.offer{border-top-color:var(--chip-amber)}.kpi.joined{border-top-color:var(--chip-green)}
.panel{background:var(--surface);border-radius:20px;padding:16px 18px;margin-bottom:16px;display:flex;flex-direction:column;gap:12px;min-width:0}
.panel h2{font-size:17px}
.panel .sec-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.dtable{display:flex;flex-direction:column;overflow-x:auto}
.drow{display:grid;grid-template-columns:minmax(200px,2.4fr) repeat(10,minmax(62px,1fr));gap:8px;align-items:center;padding:10px 6px;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;cursor:pointer;color:var(--ink);font-size:14px;min-width:900px}
.drow.roles{grid-template-columns:minmax(200px,2fr) minmax(110px,1fr) 70px minmax(160px,2fr) 80px 80px 100px}
.drow:last-child{border-bottom:0}
.drow:not(.head):hover{background:var(--bg)}
.drow.head{cursor:default;font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}
.drow .num{text-align:right;font-variant-numeric:tabular-nums;display:flex;gap:6px;align-items:center;justify-content:flex-end}
.drow .minw0{display:flex;flex-direction:column}
.drow .recs .avatar,.rstrip .avatar{width:26px;height:26px}
.drow .recs{gap:4px}
.mbar{display:inline-block;width:46px;height:6px;background:var(--sunk);border-radius:6px;overflow:hidden;flex:none}
.mbar i{display:block;height:100%;background:var(--accent);border-radius:6px}
.mbar.cs-early i{background:var(--muted)}.mbar.cs-short i{background:var(--info)}.mbar.cs-int i{background:#8B5CF6}.mbar.cs-offer i{background:var(--chip-amber)}.mbar.cs-joined i{background:var(--chip-green)}.mbar.cs-hold i{background:var(--warn)}.mbar.cs-out i{background:var(--line)}
.mbar.cs-early,.mbar.cs-short,.mbar.cs-int,.mbar.cs-offer,.mbar.cs-joined,.mbar.cs-hold,.mbar.cs-out{background:var(--sunk)}
.drow .stack{display:flex;height:10px;border-radius:6px;overflow:hidden;background:var(--sunk)}
.drow .stack i{display:block;height:100%}
.drow .stack i.cs-early{background:#9C9AB8}.drow .stack i.cs-short{background:var(--info)}.drow .stack i.cs-int{background:#8B5CF6}.drow .stack i.cs-offer{background:var(--chip-amber)}.drow .stack i.cs-joined{background:var(--chip-green)}.drow .stack i.cs-hold{background:var(--warn)}
.drow .stack .note{background:var(--surface);line-height:10px}
.funnel{display:flex;flex-direction:column;gap:8px}
.frow2{display:grid;grid-template-columns:120px minmax(0,1fr) 36px;gap:10px;align-items:center;font-size:13.5px}
.frow2 .mbar{width:100%;height:10px}
.frow2 .num{text-align:right;font-weight:700;font-variant-numeric:tabular-nums}
.grid-ins{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px}
.grid-ins .panel{margin:0}
@media (max-width:900px){.grid-ins{grid-template-columns:minmax(0,1fr)}}
.panel .files .linkrow{padding:10px 12px;border-bottom:1px solid var(--line)}
.panel .files .linkrow:last-child{border-bottom:0}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.card.static{cursor:default;background:var(--bg)}
.card.static .actions{margin-top:4px}
.pad{padding:12px}
.tlist .tperson .minw0,.tlist .trow > .minw0{display:flex;flex-direction:column}
.grid-ins{align-items:start}

/* ===================== v7 · CVs in ===================== */
.ell{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;border:2px dashed color-mix(in srgb,var(--accent) 45%,var(--line));
  background:linear-gradient(180deg,var(--accent-soft),transparent 140%);border-radius:20px;padding:30px 18px;cursor:pointer;transition:border-color .15s,transform .15s}
.drop:hover,body.dragging .drop{border-color:var(--accent);transform:scale(1.01)}
.drop b{font-size:17px}
.drop-ic{width:56px;height:56px;border-radius:18px;display:grid;place-items:center;background:var(--accent);color:var(--accent-ink);box-shadow:0 8px 20px rgba(90,54,224,.3)}
.drop:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:3px}
body.dragging:not(:has(.sheet:not([hidden])))::after{content:"Drop CVs to add candidates";position:fixed;inset:12px;border:3px dashed var(--accent);border-radius:24px;
  background:color-mix(in srgb,var(--accent-soft) 85%,transparent);display:grid;place-items:center;font-size:24px;font-weight:800;color:var(--accent-text);z-index:40;pointer-events:none}
.upbar{height:8px;background:var(--sunk);border-radius:8px;overflow:hidden}
.upbar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),#B06BF5);border-radius:8px;transition:width .3s}
.frow.up{gap:10px}
.frow.up .grow{display:flex;flex-direction:column;min-width:0}
.frow.up.ok{background:color-mix(in srgb,var(--good-soft) 35%,transparent)}
.frow.up.bad{background:var(--bad-soft)}
.spin{width:20px;height:20px;border-radius:50%;border:3px solid var(--sunk);border-top-color:var(--accent);flex:none;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.spin{animation-duration:2.4s}}
.fit{display:inline-flex;align-items:center;font-size:11.5px;font-weight:800;padding:2px 8px;border-radius:999px;white-space:nowrap;flex:none;font-variant-numeric:tabular-nums}
.fit.f-strong{background:var(--good-soft);color:var(--good)}.fit.f-possible{background:var(--warn-soft);color:var(--warn)}.fit.f-weak{background:var(--sunk);color:var(--muted)}
.c-name .fit{margin-left:auto}
.fitcard{display:flex;gap:16px;align-items:flex-start;border-radius:16px;padding:14px 16px;background:var(--bg)}
.fitcard .minw0{display:flex;flex-direction:column;gap:6px}
.ring{--c:var(--accent);width:78px;height:78px;border-radius:50%;flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:radial-gradient(closest-side,var(--surface) 76%,transparent 78% 100%),conic-gradient(var(--c) calc(var(--p)*1%),var(--sunk) 0)}
.ring b{font-size:22px;line-height:1}.ring span{font-size:10.5px;color:var(--muted)}
.fitcard.f-strong .ring{--c:var(--good)}.fitcard.f-possible .ring{--c:var(--chip-amber)}.fitcard.f-weak .ring{--c:var(--muted)}
.pros,.cons{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:3px;font-size:13.5px}
.pros li::before{content:"✓ ";color:var(--good);font-weight:800}.cons li::before{content:"– ";color:var(--bad);font-weight:800}
.cvsum{margin:0;font-size:14.5px}
.skills{display:flex;gap:6px;flex-wrap:wrap}
.skill{background:var(--c2);color:var(--c2-ink);font-size:12.5px;font-weight:600;padding:3px 10px;border-radius:999px}
.section h3 svg,.callout b svg,.btn svg{vertical-align:-2px;color:var(--accent)}
.btn.primary svg{color:inherit}
.bulkbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;background:var(--brand);color:#fff;border-radius:16px;padding:8px 10px 8px 16px;margin-top:12px;
  position:sticky;top:8px;z-index:6;box-shadow:var(--lift)}
.bulkbar .btn{padding:7px 12px}
.bulkbar .btn.ghost{color:var(--brand-soft)}
.bulkbar .sel{padding:7px 10px;color:var(--ink);background:var(--surface)}

/* ===================== v8 · referrals, JD edits ===================== */
.badge.ref{background:var(--c4);color:var(--c4-ink);margin-left:6px}
.c-name .badge.ref{flex:none}
.drop.small{padding:18px 14px;flex-direction:row;gap:14px;text-align:left;justify-content:flex-start}
.drop.small .drop-ic{width:44px;height:44px;border-radius:14px}
.drop.small b{font-size:15px}
.drop.small .note{flex-basis:100%}
.drop.small{flex-wrap:wrap}

/* ===================== v8 · pay and updates ===================== */
.c-ctc{font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}
.pay{align-items:flex-end!important}
.pay .pf{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:600;color:var(--muted);flex:1 1 120px}
.pay .pf input{flex:none;font:inherit;font-size:15px;font-weight:400;color:var(--ink);border:1px solid var(--line);background:var(--bg);border-radius:12px;padding:9px 12px;min-width:0;width:100%}
.upd-title{margin:14px 0 6px;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.updates{display:flex;flex-direction:column;gap:8px}
.upd{border:1px solid var(--line);border-radius:14px;padding:10px 12px;background:var(--surface)}
.upd-h{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.upd .pre{margin-top:6px;font-size:14px}
.upd.new{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
@media (prefers-reduced-motion:no-preference){.upd.new{animation:pop .4s ease-out}}

/* ===================== v9 · team referrals, referral alerts ===================== */
#referForm fieldset{border:0;padding:0;margin:0}
#referForm legend{font-weight:600;font-size:13.5px;margin-bottom:6px}
.seg.wide{display:flex;flex-wrap:wrap}
.seg.wide label{flex:1 1 auto;justify-content:center}
#rf_list .files{border:1px solid var(--line);border-radius:14px;overflow:hidden}
.refalert{display:flex;align-items:center;gap:14px;flex-wrap:wrap;border:1px solid color-mix(in srgb,var(--c4-ink) 30%,var(--line));background:color-mix(in srgb,var(--c4) 55%,var(--surface));border-radius:18px;padding:12px 16px;margin-bottom:12px}
.refalert .big{font-size:26px;font-weight:700;color:var(--c4-ink);min-width:34px;text-align:center}
.refalert .txt{flex:1 1 220px;display:flex;flex-direction:column}
.refalert .txt span{color:var(--muted);font-size:13.5px}
.badge.refnew{background:var(--c4);color:var(--c4-ink)}
.rail-n{position:absolute;top:6px;right:6px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#22B07D;color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center;line-height:1}

/* ===================== v11 · admin view switch, relocation ===================== */
.acting{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--c3);color:var(--c3-ink);border-radius:14px;padding:10px 14px;margin-bottom:14px;font-size:14px}
.acting span{flex:1 1 260px}
.pay .pay-break{flex-basis:100%;height:0}
.pay .pf.wide{flex:2 1 220px}
.pay .pf select{flex:none;font:inherit;font-size:15px;font-weight:400;color:var(--ink);border:1px solid var(--line);background:var(--bg);border-radius:12px;padding:9px 12px;width:100%}
.reloc{font-weight:600}
.reloc.good{color:var(--good)}
.reloc.late{color:var(--bad)}
.reloc.warn{color:var(--warn)}

/* ===================== v12 · week plan, EOD, free-text CTC ===================== */
.c-ctc{overflow:hidden;text-overflow:ellipsis}
.weeknav button{min-width:36px;justify-content:center}
.cappanel{gap:10px}
.capsum{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.capsum>div{display:flex;flex-direction:column;align-items:flex-start;min-width:92px}
.capsum .n{font-size:26px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.capsum .l{font-size:12.5px;color:var(--muted);line-height:1.3}
.capsum .op{font-size:22px;color:var(--muted);font-weight:300}
.capsum .hl .n{color:var(--accent-text)}
.capbar{display:flex;height:14px;border-radius:8px;overflow:hidden;background:var(--sunk)}
.capbar i{display:block;height:100%}
.c-eod{background:#9A98B5}.c-ops{background:#E3A54B}.c-rec{background:var(--accent)}.c-over{background:var(--bad)}
.c-free{background:repeating-linear-gradient(45deg,var(--accent-soft),var(--accent-soft) 5px,transparent 5px,transparent 10px)}
.caplegend{display:flex;gap:16px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}
.caplegend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.plangrid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:16px;align-items:start}
.plangrid .panel{margin-bottom:16px}
@media (max-width:980px){.plangrid{grid-template-columns:1fr}}
.pweek{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap}
.pweek .pf{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:600;color:var(--muted);width:110px}
.pweek .pf input{font:inherit;font-size:15px;font-weight:400;color:var(--ink);border:1px solid var(--line);background:var(--bg);border-radius:12px;padding:9px 12px}
.pdays{display:flex;gap:6px;flex-wrap:wrap}
.pday{position:relative;cursor:pointer}
.pday input{position:absolute;opacity:0;width:1px;height:1px}
.pday span{display:flex;flex-direction:column;align-items:center;min-width:52px;padding:7px 8px;border-radius:12px;border:1px solid var(--line);background:var(--bg);font-weight:600;font-size:13.5px;color:var(--muted)}
.pday span small{font-weight:400;font-size:11.5px}
.pday input:checked+span{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-text)}
.pday input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.plist{display:flex;flex-direction:column;gap:8px}
.prow{display:grid;grid-template-columns:minmax(150px,1.1fr) minmax(160px,1.6fr) 74px 70px 36px;gap:8px;align-items:center}
.prow select,.prow input{font:inherit;font-size:14.5px;color:var(--ink);border:1px solid var(--line);background:var(--bg);border-radius:12px;padding:8px 10px;min-width:0;width:100%}
.prow .pact{font-size:12.5px;color:var(--muted);display:flex;flex-direction:column;line-height:1.25}
.prow .pact em{font-style:normal;font-weight:600}
.prow .btn{padding:6px 10px}
@media (max-width:640px){.prow{grid-template-columns:1fr 70px 36px}.prow select{grid-column:1 / -1}.prow .pact{display:none}}
.addrow{align-self:flex-start}
.pvalist{display:flex;flex-direction:column;gap:10px}
.pva{display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:10px;align-items:center}
.pva .note{display:block}
.pvbar{position:relative;height:8px;background:var(--sunk);border-radius:6px}
.pvbar i{position:absolute;left:0;top:0;bottom:0;background:var(--accent);border-radius:6px}
.pvbar i.over{background:var(--warn)}
.pvbar s{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink);opacity:.55;text-decoration:none}
.eoddays{display:flex;gap:6px;flex-wrap:wrap}
.eodday{display:flex;flex-direction:column;align-items:center;min-width:50px;padding:6px 8px;border-radius:12px;border:1px solid var(--line);background:var(--bg);font:inherit;font-weight:600;font-size:13px;color:var(--ink);cursor:pointer}
.eodday small{font-weight:500;font-size:11.5px;color:var(--muted)}
.eodday.done{background:var(--good-soft);border-color:transparent}.eodday.done small{color:var(--good)}
.eodday.missing small{color:var(--bad)}
.eodday.today{border-color:var(--accent)}
.eodday.future{opacity:.5;cursor:default}
.eodday.on{outline:2px solid var(--accent);outline-offset:1px}
.eodchips{display:flex;gap:6px;flex-wrap:wrap}
.eodlist{display:flex;flex-direction:column;gap:10px}
.eodcard{border:1px solid var(--line);border-radius:14px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.drow.plan{grid-template-columns:minmax(200px,2fr) repeat(5,minmax(80px,1fr)) minmax(130px,1.2fr);min-width:820px}
.eoddots{display:flex;gap:5px}
.eoddots i{width:14px;height:14px;border-radius:50%;background:var(--sunk);display:inline-block}
.eoddots i.done{background:var(--good)}.eoddots i.miss{background:var(--bad)}.eoddots i.future{background:var(--line)}.eoddots i.off{background:transparent;border:1px dashed var(--line)}

/* ===================== v13 · timesheet, SOWs & invoices ===================== */
.tspanel{gap:14px}
.tshead{display:flex;flex-direction:column;gap:8px}
.tsbig{font-size:15px}.tsbig b{font-size:24px;letter-spacing:-.02em}
.tsdays{display:flex;gap:8px;flex-wrap:wrap}
.tsday{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:96px;padding:8px 12px 12px;border-radius:14px;border:1px solid var(--line);background:var(--bg);font:inherit;color:var(--ink);cursor:pointer;text-align:left}
.tsday b{font-size:13.5px}.tsday b small{font-weight:500;color:var(--muted)}
.tsday span{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}.tsday span small{font-size:12px;font-weight:500;color:var(--muted)}
.tsday i{position:absolute;left:0;bottom:0;height:4px;background:var(--accent)}
.tsday.full i{background:var(--good)}
.tsday.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.tsday.future{opacity:.55}
.tsdaybody{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--line);padding-top:12px}
.tsdaybody h3{margin:0;font-size:15px}
.tslist{display:flex;flex-direction:column;gap:6px}
.tsrow{display:flex;gap:12px;align-items:flex-start;padding:8px 10px;border:1px solid var(--line);border-radius:12px}
.tsrow .grow{display:flex;flex-direction:column;gap:4px}
.tsh{flex:none;min-width:58px;text-align:center;font-weight:700;font-size:13.5px;border-radius:8px;padding:4px 6px;background:var(--accent-soft);color:var(--accent-text)}
.tsh.ops{background:var(--warn-soft);color:var(--warn)}.tsh.eod{background:var(--sunk);color:var(--muted)}
.tscands{display:flex;gap:5px;flex-wrap:wrap}.tscands .badge{border:0;cursor:pointer;font:inherit;font-size:12px}
.tsform{display:flex;flex-direction:column;gap:10px;background:var(--bg);border-radius:14px;padding:12px}
.tsform select,.tsform input:not([type=checkbox]){font:inherit;font-size:14.5px;color:var(--ink);border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:8px 10px}
.tsline{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.tsline .grow{flex:1 1 240px}.tsline .grow input{width:100%}
.tsquick{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.tsquick input{width:84px}
.tspick{display:flex;flex-direction:column;gap:6px}.tsfind{padding:4px 8px!important;font-size:13px!important;width:140px}
.tschips{display:flex;gap:6px;flex-wrap:wrap;max-height:168px;overflow:auto}
.tschip{position:relative;cursor:pointer}.tschip input{position:absolute;opacity:0;width:1px;height:1px}
.tschip span{display:inline-flex;flex-direction:column;padding:5px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font-size:13.5px;font-weight:600}
.tschip span small{font-weight:400;font-size:11px;color:var(--muted)}
.tschip input:checked+span{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-text)}
.tschip input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.rail-n.warnn{background:#E3A54B}
.billalert{border-color:color-mix(in srgb,var(--warn) 35%,var(--line));background:var(--warn-soft)}.billalert .big{color:var(--warn)}
.btable{display:flex;flex-direction:column}
.brow{display:flex;gap:14px;align-items:center;padding:10px 6px;border:0;border-bottom:1px solid var(--line);background:none;font:inherit;color:var(--ink);text-align:left;width:100%}
.brow:last-child{border-bottom:0}.sowrow{cursor:pointer}.sowrow:hover,.brow:hover{background:var(--bg)}
.brow .grow{display:flex;flex-direction:column;gap:2px}.brow .num{display:flex;flex-direction:column;align-items:flex-end;min-width:120px;font-variant-numeric:tabular-nums}
.linkbtn{border:0;background:none;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}
.bact{display:flex;gap:6px}.bact .btn{text-decoration:none}
@media (max-width:720px){.brow{flex-wrap:wrap}.brow .num{align-items:flex-start}}
.billset summary{cursor:pointer;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.reshead,.resrow{display:grid;grid-template-columns:1.2fr 1.1fr 1.1fr .8fr .8fr 1fr 1fr 36px;gap:6px;align-items:center}
.reshead{font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600}
.resrow{padding:6px 0;border-bottom:1px dashed var(--line)}
.resrow input,.resrow select,.invrow input,.invrow select{font:inherit;font-size:14px;color:var(--ink);border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:7px 8px;min-width:0;width:100%}
.resrow input:disabled{opacity:.45}
.resrow .r_est{grid-column:1 / -2;font-size:12px}
@media (max-width:760px){.reshead{display:none}.resrow{grid-template-columns:1fr 1fr 36px}.resrow .r_est{grid-column:1 / -1}}
.invhead,.invrow{display:grid;grid-template-columns:2.4fr .8fr .8fr 1fr 1fr 36px;gap:6px;align-items:center}
.invhead{font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600}
.invrow .l_amt{font-weight:600;text-align:right;font-variant-numeric:tabular-nums}
@media (max-width:640px){.invhead{display:none}.invrow{grid-template-columns:1fr 1fr 36px}.invrow input[name=l_desc]{grid-column:1 / -1}}
.invtot{display:flex;flex-direction:column;align-items:flex-end;gap:4px;font-variant-numeric:tabular-nums}
.invtot div{display:flex;gap:24px}.invtot span{color:var(--muted)}.invtot .g{font-size:18px;border-top:2px solid var(--ink);padding-top:6px}.invtot .g span{color:var(--ink);font-weight:600}

/* ---------- v14: confidential billing page ---------- */
.conf-tag{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#9B1C1C;background:#FDE8E8;border:1px solid #F5C2C2;border-radius:999px;padding:3px 10px}
.conf-tag::before{content:"";width:7px;height:7px;border-radius:50%;background:#C53030}
@media (prefers-color-scheme: dark){.conf-tag{color:#FCA5A5;background:rgba(197,48,48,.18);border-color:rgba(252,165,165,.35)}}

/* ---------- v15: Cloud costs ---------- */
:root{--c-ours:#5A36E0;--c-oth:#2A9D8F}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--c-ours:#7C5CF0;--c-oth:#2BA394}}
:root[data-theme="dark"]{--c-ours:#7C5CF0;--c-oth:#2BA394}
.costdates{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}
.costdates input{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:6px 8px}
.kpi .n small{font-size:15px;font-weight:600;color:var(--muted);margin-left:2px}
.clegend{display:flex;gap:14px;font-size:13px;color:var(--muted)}
.clegend span,.ctip span{display:inline-flex;align-items:center;gap:6px}
.clegend i,.ctip i{width:10px;height:10px;border-radius:3px;display:inline-block}
i.c-ours{background:var(--c-ours)} i.c-oth{background:var(--c-oth)}
.cchart-wrap{position:relative;overflow-x:auto;padding-top:2px}
.cchart{display:block;width:100%;height:auto}
.cchart rect.c-ours{fill:var(--c-ours)} .cchart rect.c-oth{fill:var(--c-oth)}
.cchart rect.c-ours.est{fill-opacity:.65}
.cchart .cgrid{stroke:var(--line);stroke-width:1} .cchart .caxis{fill:var(--muted);font-size:11px;font-family:var(--f)}
.cchart g.cbar:hover rect.c-ours,.cchart g.cbar:hover rect.c-oth{filter:brightness(1.12)}
.ctip{position:absolute;z-index:3;pointer-events:none;background:var(--ink);color:var(--surface);border-radius:10px;padding:8px 10px;font-size:12.5px;display:flex;flex-direction:column;gap:2px;box-shadow:var(--lift);white-space:nowrap}
.cgrid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:0 16px}
.blist{display:flex;flex-direction:column;gap:7px}
.bl-row{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(40px,1fr) auto;gap:10px;align-items:center;font-size:13.5px}
.bl-k{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bl-bar{height:8px;background:var(--sunk);border-radius:4px;overflow:hidden}.bl-bar i{display:block;height:100%;background:var(--accent);border-radius:4px}
.bl-v{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.bl-v small{color:var(--muted);margin-left:6px;display:inline-block;min-width:30px}
.ctable{overflow-x:auto}.ctable table{width:100%;border-collapse:collapse;font-size:13.5px}
.ctable th{text-align:left;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:6px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
.ctable td{padding:8px;border-bottom:1px solid var(--line);vertical-align:top}.ctable .r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.wrow{align-items:flex-start}.wrow .num{min-width:90px}
.sp{height:10px}
.chiprow{display:flex;flex-wrap:wrap;gap:8px}
.pchip{display:inline-flex;align-items:center;gap:8px;background:var(--sunk);border-radius:999px;padding:4px 10px 4px 4px;font-size:13.5px}
.pchip .avatar,.pchip img{width:24px;height:24px;font-size:11px;border-radius:50%;display:inline-grid;place-items:center;color:#fff}.pchip small{color:var(--muted)}
.pchip .x{border:0;background:none;color:var(--muted);font-size:17px;line-height:1;cursor:pointer;padding:0 2px}
.inline-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.costerr{margin:0 0 16px}.costerr ul{margin:6px 0 0;padding-left:18px}
/* v16: simple SOW */
.sowcalc{display:flex;flex-direction:column;justify-content:center;min-height:42px;font-variant-numeric:tabular-nums}.sowcalc b{font-size:18px}
/* v18: SOW rate groups, invoice lines, tally */
.grphead,.grprow{display:grid;grid-template-columns:minmax(0,2fr) minmax(64px,.7fr) minmax(90px,.9fr) minmax(90px,1fr) 32px;gap:8px;align-items:center}
.grphead,.invhead{font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600;margin:4px 0 2px}
.grphead .r,.invhead .r{text-align:right}
.grprow{padding:6px 0;border-bottom:1px dashed var(--line)}
.grprow input,.moneyin input{font:inherit;font-size:14px;color:var(--ink);border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:8px 9px;min-width:0;width:100%;box-sizing:border-box}
.moneyin{position:relative;display:block}.moneyin span{position:absolute;left:9px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:14px;pointer-events:none}.moneyin input{padding-left:20px}
.g_amt,.l_amt{text-align:right;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.iconbtn{border:0;background:none;color:var(--muted);font-size:20px;line-height:1;cursor:pointer;width:32px;height:32px;border-radius:8px}
.iconbtn:hover{background:var(--sunk);color:var(--ink)}
.addgrp{margin-top:8px;align-self:flex-start}
.tally{margin-top:12px;background:var(--sunk);border-radius:12px;padding:12px 14px;font-variant-numeric:tabular-nums;display:flex;flex-direction:column;gap:6px}
.tally .tl{display:flex;flex-direction:column;gap:4px}.tally .tl div,.tally .tg{display:flex;justify-content:space-between;gap:16px}
.tally .tl span{color:var(--muted);font-size:13.5px}
.tally .tg{border-top:2px solid var(--ink);padding-top:8px;font-size:17px}.tally .tg span{font-weight:600}
.ulink{color:var(--accent-text);text-decoration:underline;font-weight:600}
@media (max-width:640px){.grphead{display:none}.grprow{grid-template-columns:1fr 1fr 32px}.grprow input[name=g_label]{grid-column:1 / -1}.grprow .g_amt{text-align:left}}

/* ---------- v20: Finance outlook ---------- */
:root{--c-opex:#E3A21A;--fin-pos:#1F7A57;--fin-neg:#B4342B}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--c-opex:#C98500;--fin-pos:#7CCB95;--fin-neg:#EC8A80}}
:root[data-theme="dark"]{--c-opex:#C98500;--fin-pos:#7CCB95;--fin-neg:#EC8A80}
.seg{display:inline-flex;background:var(--sunk);border-radius:12px;padding:3px;gap:2px;flex-wrap:wrap}
.segb{border:0;background:transparent;border-radius:9px;padding:6px 12px;font-weight:600;font-size:13.5px;color:var(--muted);cursor:pointer}
.segb[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 4px rgba(27,26,58,.12)}
.finwarn{display:flex;flex-direction:column;gap:4px;background:var(--warn-soft);color:var(--warn);border-radius:12px;padding:10px 14px;margin-bottom:16px;font-size:13.5px}
.finhero{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:24px;align-items:center;border-radius:22px;padding:26px 28px;margin-bottom:16px;color:#fff;
  background:radial-gradient(120% 140% at 100% 0%,#5A36E0 0%,#3B2BB0 38%,#232085 75%);box-shadow:var(--shadow);position:relative;overflow:hidden}
.finhero::after{content:"";position:absolute;inset:auto -60px -80px auto;width:260px;height:260px;border-radius:50%;background:rgba(255,255,255,.06)}
.finhero .label{color:#CCCCFF}
.hero-n{font-size:52px;font-weight:800;letter-spacing:-.03em;line-height:1.05;margin:6px 0 4px;font-variant-numeric:tabular-nums}
.hero-s{color:#DCDAFF;font-size:15px}.hero-s b{color:#fff}
.hero-yrs{display:flex;gap:8px;margin-top:18px;flex-wrap:wrap}
.hy{border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.06);color:#fff;border-radius:12px;padding:7px 12px;display:flex;flex-direction:column;align-items:flex-start;cursor:pointer;font:inherit;min-width:86px}
.hy span{font-size:11.5px;color:#CCCCFF;letter-spacing:.04em}.hy b{font-size:18px;font-variant-numeric:tabular-nums}.hy b.neg{color:#FFB4AC}
.hy.on{background:#fff;color:#232085;border-color:#fff}.hy.on span{color:#5E5C7A}.hy.on b.neg{color:#B4342B}
.hero-r{display:flex;gap:20px;align-items:center;justify-content:flex-end;position:relative;z-index:1}
.ring{width:132px;height:132px;flex:none}.ring-bg{fill:none;stroke:rgba(255,255,255,.16);stroke-width:12}
.ring-fg{fill:none;stroke:#fff;stroke-width:12;stroke-linecap:round;transition:stroke-dasharray .4s ease}.ring-fg.neg{stroke:#FFB4AC}
.ring-t{fill:#fff;font:800 20px var(--f)}.ring-s{fill:#CCCCFF;font:500 11px var(--f);letter-spacing:.08em}
.hero-facts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.hero-facts li{display:grid;grid-template-columns:auto;line-height:1.2}.hero-facts span{font-size:12px;color:#CCCCFF}.hero-facts b{font-size:18px;font-variant-numeric:tabular-nums}.hero-facts small{font-size:11.5px;color:#BDBAF0}
@media (max-width:860px){.finhero{grid-template-columns:1fr}.hero-r{justify-content:flex-start}.hero-n{font-size:40px}}
.fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));gap:0 16px}
.finins .insl{margin:8px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}
.finins .insl li{position:relative;padding-left:22px;line-height:1.45}
.finins .insl li::before{content:"";position:absolute;left:4px;top:.55em;width:8px;height:8px;border-radius:3px;background:var(--accent);transform:rotate(45deg)}
.flegend{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin:2px 0 6px}
.flegend span{display:inline-flex;align-items:center;gap:6px}.flegend i{width:11px;height:11px;border-radius:3px;display:inline-block}
.flegend i.f-b{background:var(--c-ours)}.flegend i.f-o{background:var(--c-oth)}.flegend i.f-x{background:var(--c-opex)}.flegend i.l-rev{background:var(--surface);border:2px solid var(--ink)}
.fchart{overflow-x:auto}.fsvg{display:block;width:100%;height:auto}
.fsvg rect.f-b{fill:var(--c-ours)}.fsvg rect.f-o{fill:var(--c-oth)}.fsvg rect.f-x{fill:var(--c-opex)}
.fsvg rect.f-rev{fill:var(--surface);stroke:var(--ink);stroke-width:2}
.fsvg rect.f-pos{fill:var(--fin-pos)}.fsvg rect.f-neg{fill:var(--fin-neg)}
.fsvg rect.hit{fill:transparent}.fsvg g.fbar{cursor:default;outline:none}.fsvg g.fbar:hover rect:not(.hit),.fsvg g.fbar:focus rect:not(.hit){filter:brightness(1.08)}
.fsvg .fmlab{fill:var(--ink);font:700 13px var(--f)}.fsvg .fmlab.neg{fill:var(--fin-neg)}
.fsvg .fwv{fill:var(--ink);font:600 11.5px var(--f)}.fsvg .caxis.cur{font-weight:700;fill:var(--ink)}
.fsvg .f-conn{stroke:var(--muted);stroke-dasharray:3 3;stroke-width:1}.fsvg .f-line{fill:none;stroke:var(--ink);stroke-width:2}
.fsvg .f-today{stroke:var(--accent);stroke-width:1.5;stroke-dasharray:4 3}
.ctable tr.b td{font-weight:700}
#finLab .labgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:14px 22px;margin-top:6px}
.sl{display:flex;flex-direction:column;gap:4px}.slh{display:flex;justify-content:space-between;gap:8px;font-size:13.5px}
.slh output{font-weight:700;font-variant-numeric:tabular-nums;color:var(--accent-text);background:var(--accent-soft);border-radius:8px;padding:0 8px}
.sl input[type=range]{width:100%;accent-color:var(--accent);height:22px}
.sl.chk{flex-direction:row;align-items:flex-start;gap:10px}.sl.chk input{margin-top:4px;accent-color:var(--accent);width:18px;height:18px}.sl.chk span{display:flex;flex-direction:column;font-size:13.5px}
.labfoot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.labd{font-size:14px}
.numin{width:76px;font:inherit;border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:7px 9px;color:var(--ink)}
.plan-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:14px 0 8px}
.pcard{background:var(--sunk);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:2px}
.pcard span{font-size:12px;color:var(--muted);font-weight:600;letter-spacing:.04em}.pcard b{font-size:26px;font-weight:800;color:var(--accent-text);font-variant-numeric:tabular-nums}.pcard b.neg{font-size:17px;color:var(--fin-neg)}.pcard small{font-size:12px;color:var(--muted)}
.mbar{position:relative;height:6px;background:var(--sunk);border-radius:3px;margin-top:6px;max-width:220px;overflow:hidden}
.mbar i{position:absolute;left:0;top:0;bottom:0;border-radius:3px}.mbar .mrev{background:var(--c-oth);opacity:.35}.mbar .mcost{background:var(--c-ours)}
.benchc{margin-top:12px;background:var(--warn-soft);border-radius:12px;padding:10px 14px;display:flex;flex-direction:column;gap:2px;font-size:14px}
.fcat .bl-h{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-top:6px}
.fcat .bl-bar i.f-b{background:var(--c-ours)}.fcat .bl-bar i.f-o{background:var(--c-oth)}.fcat .bl-bar i.f-x{background:var(--c-opex)}
.fcat .bl-v small{display:inline-block;min-width:74px}
.masked{letter-spacing:.12em;color:var(--muted)}
.privacy{background:var(--info-soft);color:var(--info);border-radius:10px;padding:6px 10px;display:inline-block}
.dropz{display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;text-align:center;border:2px dashed var(--line);border-radius:16px;padding:26px 16px;cursor:pointer;background:var(--bg)}
.dropz:hover{border-color:var(--accent)}.dropz.big{padding:48px 16px}
.impsum{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:10px}
.impsum div{background:var(--sunk);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column}.impsum b{font-size:20px}.impsum span{font-size:12px;color:var(--muted)}
.radios{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.radios legend{font-weight:700;margin-bottom:6px}
.radios label{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.vaultc{display:flex;gap:14px;align-items:flex-start;background:var(--good-soft);border-radius:14px;padding:12px 14px;color:var(--ink)}
.vaultc svg{color:var(--good);flex:none;margin-top:2px}.vaultc div{display:flex;flex-direction:column;gap:2px}
.finsrc{margin-top:8px}.finsrc a{color:var(--accent-text)}
.mt12{margin-top:12px}
.fsvg .caxis{fill:var(--muted);font-size:11px;font-family:var(--f)}.fsvg .cgrid{stroke:var(--line);stroke-width:1}
/* v21: finance site — only its own menus */
body[data-app="finance"] .rail-btn:not(#railBilling):not(#railFinance):not(#logoutBtn){display:none!important}
body[data-app="finance"] #q,body[data-app="finance"] .search{display:none!important}
