:root{
  --navy:#0B2545; --sea:#1F7A8C; --foam:#5FB3C4; --sand:#F4EFE6; --brass:#C8963E;
  --ink:#16222f; --muted:#667587; --line:#dcd6c9; --card:#fffdf9; --danger:#b3261e;
  --radius:12px;
}
*{box-sizing:border-box}
body{margin:0;background:var(--sand);color:var(--ink);font:15px/1.5 Inter,system-ui,sans-serif}
[hidden]{display:none!important}
h1,h2{font-family:Fraunces,Georgia,serif;color:var(--navy);margin:0}
h1{font-size:1.5rem} h2{font-size:1.15rem}
.topbar{display:flex;align-items:center;gap:24px;padding:12px 24px;background:var(--navy);color:#fff}
.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font:700 1.3rem Fraunces,serif;letter-spacing:.01em}
nav{display:flex;gap:4px;margin-right:auto}
nav a{color:#c9d6e6;text-decoration:none;padding:6px 14px;border-radius:999px;font-weight:500}
nav a.active,nav a:hover{background:rgba(255,255,255,.12);color:#fff}
.who{margin-left:auto;display:flex;align-items:center;gap:10px;color:#c9d6e6;font-size:13px}
nav:not([hidden]) ~ .who{margin-left:0}
.banner{background:var(--brass);color:#2a1d05;text-align:center;padding:6px 16px;font-size:13px;font-weight:500}
main{max-width:1200px;margin:0 auto;padding:24px 16px 64px}
.grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:20px;align-items:start}
.side{display:grid;gap:20px;position:sticky;top:16px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:0 1px 2px rgba(11,37,69,.05)}
.card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
label{display:block;font-weight:500;font-size:13px;color:var(--navy);margin-bottom:14px}
input,textarea,select{display:block;width:100%;margin-top:5px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;font:inherit;color:var(--ink)}
input:focus,textarea:focus,select:focus{outline:2px solid var(--foam);border-color:var(--sea)}
textarea{resize:vertical}
.row3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.money{position:relative}
.money span{position:absolute;left:11px;top:50%;transform:translateY(-35%);color:var(--muted)}
.money input{padding-left:24px}
.flag{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:12px;background:#fff}
.check{display:flex;align-items:center;gap:10px;margin:0;font-size:14px;cursor:pointer}
.check input{width:18px;height:18px;margin:0;accent-color:var(--sea)}
.reveal{margin:10px 0 0}
fieldset{border:1px solid var(--line);border-radius:10px;padding:12px;margin:0 0 14px}
legend{font-weight:600;color:var(--navy);padding:0 6px}
.muted{color:var(--muted);font-weight:400;font-size:13px}
.pos{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr auto;gap:8px;align-items:end;margin-bottom:8px}
.pos label{margin:0}
.pos .rm{height:38px}
.btn{border:1px solid var(--line);background:#fff;color:var(--navy);padding:9px 16px;border-radius:8px;font:600 14px Inter,sans-serif;cursor:pointer}
.btn:hover{border-color:var(--sea)}
.btn.primary{background:var(--sea);border-color:var(--sea);color:#fff}
.btn.primary:hover{background:#18667a}
.btn.ghost{background:transparent}
.btn.sm{padding:5px 11px;font-size:13px}
.topbar .btn.ghost{color:#fff;border-color:rgba(255,255,255,.3)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.status{font-size:13px;color:var(--sea);font-weight:500}
.status.err,.error{color:var(--danger)}
.preview{margin:0;white-space:pre-wrap;word-break:break-word;font:13px/1.55 ui-monospace,Menlo,Consolas,monospace;background:#fff;border:1px dashed var(--line);border-radius:8px;padding:14px;max-height:480px;overflow:auto}
.search{margin:0 0 10px}
.saved{list-style:none;margin:0;padding:0;max-height:340px;overflow:auto}
.saved li{display:flex;align-items:center;gap:8px;padding:9px 0;border-top:1px solid var(--line)}
.saved .info{flex:1;min-width:0;cursor:pointer}
.saved .info b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.saved .info small{color:var(--muted)}
.empty{color:var(--muted);padding:8px 0}
.login{max-width:380px;margin:60px auto}
.login h1{margin-bottom:16px}
.calc{max-width:720px;margin:0 auto}
.calc h1{margin-bottom:16px}
.results{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:8px 0 16px}
.results div{background:var(--navy);color:#fff;border-radius:10px;padding:16px}
.results span{display:block;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--foam)}
.results strong{font:700 1.8rem Fraunces,serif}
code{background:#efe9dc;padding:1px 5px;border-radius:4px}
@media (max-width:900px){
  .grid{grid-template-columns:1fr} .side{position:static}
  .row3{grid-template-columns:1fr}
  .pos{grid-template-columns:1fr 1fr}
  .pos .rm{grid-column:span 2}
  .topbar{flex-wrap:wrap;gap:10px;padding:10px 16px}
}

.season{margin-top:20px}
.season h2{margin-bottom:6px}
.season > .muted{margin:0 0 14px}
.calc{max-width:860px}
.ups{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:14px}
.up{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:8px 12px;background:#fff}
.up .check{flex:1}
.up .pct{display:flex;align-items:center;gap:4px;color:var(--muted)}
.up .pct input{width:72px;margin:0;padding:6px 8px}
.up .pct input:disabled{opacity:.4}
.season-tools{display:flex;align-items:flex-end;gap:14px;margin-bottom:12px}
.season-tools label{margin:0;min-width:140px}
.table-wrap{overflow-x:auto}
.sched{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.sched th,.sched td{padding:7px 10px;text-align:right;border-bottom:1px solid var(--line)}
.sched th:first-child,.sched td:first-child{text-align:left}
.sched th{font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-weight:600}
.sched td input{width:90px;margin:0;padding:5px 8px;text-align:right}
.sched tr.off td{color:#b4ae9f}
.sched tr.off input{opacity:.6}
.sched tfoot td{font-weight:600;color:var(--navy);border-bottom:0}
.sched .warn{color:var(--danger)}
@media (max-width:600px){.ups{grid-template-columns:1fr}}

.page-head{margin-bottom:16px}
.page-head p{margin:4px 0 0}
.chips{display:flex;gap:8px;margin-bottom:14px}
.chip{border:1px solid var(--line);background:#fff;color:var(--navy);padding:6px 16px;border-radius:999px;font:600 13px Inter,sans-serif;cursor:pointer}
.chip.active{background:var(--navy);border-color:var(--navy);color:#fff}
.eco{display:grid;grid-template-columns:180px repeat(var(--cols,3),minmax(0,1fr));gap:10px}
.eco-corner,.eco-head{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:0 4px 2px}
.eco-stage{background:var(--navy);color:#fff;border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:2px}
.eco-stage small{color:var(--foam)}
.eco-num{width:24px;height:24px;border-radius:50%;background:var(--brass);color:#2a1d05;font:700 12px Inter;display:grid;place-items:center;margin-bottom:6px}
.eco-cell{display:flex;flex-direction:column;gap:8px;min-width:0}
.eco-none{color:#b4ae9f;padding:14px 4px}
.svc{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--sea);border-radius:10px;padding:10px 12px}
.svc.sales{border-left-color:var(--brass)} .svc.operations{border-left-color:var(--sea)} .svc.finance{border-left-color:var(--navy)}
.svc b{display:block;color:var(--navy);font-size:14px}
.svc p{margin:3px 0 0;font-size:13px;color:var(--muted);line-height:1.4}
.aff{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.aff-card h2{font-size:1.05rem}
.aff-head{margin-bottom:12px}
.aff-head p{margin:2px 0 0}
.partners{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.partners li{background:var(--navy);color:#fff;padding:6px 14px;border-radius:999px;font-weight:600;font-size:14px}
@media (max-width:900px){
  .eco{grid-template-columns:1fr}
  .eco-corner,.eco-head{display:none}
  .eco-stage{margin-top:10px}
  .eco-cell::before{content:attr(data-area);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600}
}

.partners li.more{background:#DCEBF6;color:var(--navy);font-weight:500;border:1px solid #BFD8EB}
.legend{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:14px;font-size:13px;color:var(--muted)}
.legend .key{display:inline-flex;align-items:center;gap:8px}
.legend .key::before{content:"";width:14px;height:14px;border-radius:50%;background:var(--navy)}
.legend .key.light::before{background:#DCEBF6;border:1px solid #BFD8EB}

.svc-link{display:inline-block;margin-top:8px;font-size:13px;font-weight:600;color:#fff;background:var(--sea);padding:4px 12px;border-radius:999px;text-decoration:none}
.svc-link:hover{background:#18667a}

.error-banner{background:var(--danger);color:#fff}

.loading{text-align:center;color:var(--muted);padding:60px 0}

label.narrow{max-width:280px}
.bal-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}
.bal-row > label{flex:1 1 160px}
.bal-row > label.narrow{flex:1 1 220px}
.negdays{max-width:200px}

.tf{display:flex;align-items:flex-end;gap:10px;min-width:0}
.tf > label:first-child{flex:1;min-width:0}
.tf .asap{margin:0 0 23px;white-space:nowrap;font-weight:600}

/* ---------- Analytics ---------- */
.an-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.an-filters .chip{border:1px solid var(--line);background:#fff;color:var(--navy);padding:6px 14px;border-radius:999px;font:600 13px Inter,sans-serif;cursor:pointer}
.an-filters .chip:hover{border-color:var(--sea)}
.an-filters .chip.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.an-sample{margin-left:auto;font-size:12px;font-weight:600;color:#2a2105;background:#f3e3bf;border:1px solid #e0c98f;padding:4px 10px;border-radius:999px}
.an-content{display:grid;gap:20px}
.an-tiles{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.an-tile{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 14px 12px;min-width:0}
.an-tile-label{font-size:12px;color:var(--muted);font-weight:600;letter-spacing:.03em;text-transform:uppercase}
.an-tile-value{font:600 1.7rem Fraunces,Georgia,serif;color:var(--navy);margin:2px 0}
.an-delta{font-size:12px;font-weight:600;color:var(--muted)}
.an-delta.good{color:#006300}.an-delta.bad{color:#b02a2a}
.an-tile .spark{display:block;width:88px;height:28px;margin-top:8px}
.an-row{display:grid;gap:20px;grid-template-columns:minmax(0,1fr)}
.an-r1{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}
.an-r3{grid-template-columns:repeat(3,minmax(0,1fr))}
.an-card{min-width:0}
.an-card-head{margin-bottom:12px}
.an-card-head h2{font-size:1.05rem}
.an-card-head p{margin:2px 0 0;font-size:13px}
.an-svg{display:block;width:100%;height:auto}
.an-tick{font:11px Inter,sans-serif;fill:#6b6a63}
.an-endlabel{font:600 11px Inter,sans-serif;fill:var(--ink)}
.an-legend{display:flex;gap:16px;font-size:13px;color:var(--muted);margin-bottom:6px}
.an-key{display:inline-flex;align-items:center;gap:6px}
.an-key i{width:12px;height:3px;border-radius:2px;display:inline-block}
.an-chart rect:focus-visible,.an-mark:focus-visible{outline:2px solid var(--foam)}
.an-details{margin-top:10px;font-size:12px;color:var(--muted)}
.an-details summary{cursor:pointer;width:max-content}
.an-funnel,.an-risk{display:grid;gap:14px}
.an-frow,.an-rrow{display:grid;gap:4px;border-radius:8px}
.an-flabel{font-size:13px;font-weight:600;color:var(--navy);display:flex;justify-content:space-between;gap:8px}
.an-ftrack{position:relative;height:26px;background:#f1efe8;border-radius:6px;display:flex;align-items:center;overflow:hidden}
.an-fbar{height:100%;border-radius:6px 4px 4px 6px}
.an-fval{font-size:12px;font-weight:400;color:var(--ink);white-space:nowrap}
.an-fval span{color:var(--muted)}
.an-rsub{font-size:12px;color:var(--muted)}
.an-table{width:100%;border-collapse:collapse;font-size:13px}
.an-table th{text-align:left;font-weight:600;color:var(--muted);font-size:12px;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.an-table td{padding:8px 10px;border-bottom:1px solid #eee9dd;white-space:nowrap}
.an-table th.num,.an-table td.num{text-align:right;font-variant-numeric:tabular-nums}
.an-table th.sortable{cursor:pointer}.an-table th.sortable:hover{color:var(--navy)}
.an-table tbody tr:hover{background:#faf7ef}
.an-table .muted,.an-card .muted{color:var(--muted)}
.an-card .table-wrap{overflow-x:auto}
.dbar{display:flex;align-items:center;gap:8px;min-width:110px}
.dbar-track{flex:1;height:8px;background:#f1efe8;border-radius:4px;overflow:hidden}
.dbar-fill{height:100%;background:#2a78d6;border-radius:4px}
.dbar span{min-width:52px;text-align:right;font-variant-numeric:tabular-nums}
.an-pill{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border:1px solid var(--line);border-radius:999px;font-size:12px;font-weight:600;background:#fff}
.an-pill i{font-style:normal;font-weight:700}
.an-heat{display:grid;gap:3px;align-items:center}
.an-hl{font-size:10px;color:var(--muted);text-align:center}
.an-hrow{text-align:left;font-size:11px}
.an-hc{aspect-ratio:1.25;border-radius:3px;min-height:18px}
.an-hc:focus-visible{outline:2px solid var(--navy)}
.an-scale{display:flex;align-items:center;gap:3px;margin-top:10px;font-size:11px;color:var(--muted)}
.an-scale i{width:16px;height:10px;border-radius:2px;display:inline-block}
.an-scale span:first-child{margin-right:4px}.an-scale span:last-child{margin-left:4px}
.an-foot{font-size:12px;margin:0}
.an-tip{position:fixed;z-index:50;pointer-events:none;background:#fff;border:1px solid var(--line);box-shadow:0 4px 14px rgba(11,37,69,.18);border-radius:8px;padding:8px 10px;font-size:12px;min-width:140px}
.an-tip-title{font-weight:700;color:var(--navy);margin-bottom:4px}
.an-tip-row{display:flex;align-items:center;gap:6px;color:var(--muted)}
.an-tip-row b{color:var(--ink);margin-left:auto;order:2;padding-left:12px}
.an-tip-key{width:10px;height:10px;border-radius:2px;display:inline-block}
@media (max-width:1100px){.an-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}.an-r3{grid-template-columns:1fr 1fr}}
@media (max-width:760px){.an-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.an-r1,.an-r3{grid-template-columns:1fr}.an-sample{margin-left:0}}
@media (max-width:760px){.topbar{flex-wrap:wrap;gap:8px 16px;padding:10px 16px}nav{order:3;width:100%;overflow-x:auto;margin-right:0}nav a{white-space:nowrap}.who{margin-left:auto}}

/* ---------- Company health ---------- */
.hl-tiles{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:20px}
.hl-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-bottom:20px}
.hl-card,.hl-card *{min-width:0}.hl-card{border-left:4px solid var(--line)}
.hl-card.risk{border-left-color:#d03b3b}.hl-card.watch{border-left-color:#c8963e}.hl-card.gain{border-left-color:#0ca30c}
.hl-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.hl-head h3{font:600 1.1rem Fraunces,Georgia,serif;color:var(--navy);margin:0}
.hl-head p{margin:2px 0 0}
.hl-delta{text-align:right;font-size:11px;color:var(--muted);max-width:150px}
.hl-delta b{display:block;font:600 1.35rem Fraunces,Georgia,serif}
.hl-delta.good b{color:#006300}.hl-delta.bad b{color:#b02a2a}
.hl-why{font-size:13px;margin:10px 0}
.hl-pill.risk i{color:#d03b3b}.hl-pill.watch i{color:#c8963e}.hl-pill.gain i,.hl-pill.ok i{color:#0ca30c}
.hl-chart{margin:4px 0 8px}
.hl-loan h4{font-size:13px;margin:8px 0;color:var(--navy)}
.hl-track{height:12px;background:#f1efe8;border-radius:6px;overflow:hidden}
.hl-fill{height:100%;background:#1c5cab;border-radius:6px}
.hl-cap{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:12px;margin-top:4px}
.hl-cap span{color:var(--muted)}
.hl-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
.hl-stat{background:#faf7ef;border:1px solid #eee9dd;border-radius:8px;padding:8px 10px;min-width:0}
.hl-slabel{font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.03em}
.hl-sval{font:600 1.05rem Fraunces,Georgia,serif;color:var(--navy)}
.hl-ssub{font-size:11px;color:var(--muted)}
.hl-pl{margin:10px 0 0}
.hl-up{color:#006300;font-weight:600}.hl-down{color:#b02a2a;font-weight:600}
@media (max-width:1100px){.hl-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}.hl-cards{grid-template-columns:1fr}}
@media (max-width:760px){.hl-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.hl-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.hl-head{flex-direction:column}.hl-delta{text-align:left;max-width:none}}

/* ---------- Users ---------- */
.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}
.btn.danger-text{color:var(--danger)}
.us-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.us-head p{margin:0}
.us-status{min-height:20px;margin:0 0 10px;font-size:13px;font-weight:500;word-break:break-word}
.us-status.ok{color:#006300}.us-status.bad{color:var(--danger)}
.us-form{margin-bottom:16px}
.us-form h2{margin-bottom:12px}
.us-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 14px}
.us-pw{display:flex;gap:8px;align-items:center}
.us-pw input{flex:1;min-width:0}
.us-pw .btn{margin-top:5px;white-space:nowrap}
.us-actions{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 10px}
.us-count{margin:0 0 8px}
.us-table .an-table td{vertical-align:middle}
.us-name{font-weight:600;color:var(--navy)}
.us-role{width:auto;margin:0;padding:5px 8px}
.us-off .us-name{color:var(--muted)}
.us-row-actions{text-align:right;white-space:nowrap}.us-row-actions .btn{margin-left:6px}
.us-dialog{border:1px solid var(--line);border-radius:var(--radius);padding:20px;max-width:420px;width:calc(100% - 32px);background:var(--card);color:var(--ink)}
.us-dialog::backdrop{background:rgba(11,37,69,.45)}
.us-dialog h2{margin-bottom:8px}
.us-dialog .btn.ghost{margin-top:0}
.us-setup{display:grid;gap:6px;font-size:14px;background:#faf7ef;border:1px solid #eee9dd;border-radius:8px;padding:14px}
@media (max-width:900px){.us-fields{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.us-fields{grid-template-columns:1fr}.us-head{flex-direction:column;align-items:flex-start}}
