:root{
  --bg:#ffffff;
  --ink:#1b1f1d;
  --muted:#5b625e;
  --grid:#dadcdb;
  --gridsoft:#eceeed;
  --head:#f3f4f3;
  --headink:#6a716d;
  --acc:#107c41;
  --acc-dk:#0b5c30;
  --acc-lt:#e5f1ea;
  --acc2:#c55a11;
  --acc2-lt:#fbeee4;
  --gut:34px;
  --mono:"Martian Mono",ui-monospace,Consolas,monospace;
  --sans:"Noto Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body.xls-doc{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.62 var(--sans);padding-bottom:52px;overflow-x:hidden}
a{color:var(--acc-dk)}
p{margin:0}

/* ---------- app chrome ---------- */
.xls-app{position:sticky;top:0;z-index:20;background:var(--bg);border-bottom:1px solid var(--grid)}
.xls-titlebar{display:flex;align-items:center;gap:10px;padding:8px 16px;background:var(--acc);color:#fff}
.xls-logo{display:flex;align-items:center;gap:8px;color:#fff;text-decoration:none;min-height:44px}
.xls-logo-mark{flex:none;border-radius:6px;box-shadow:0 0 0 1px rgba(255,255,255,.35)}
.xls-file{font:600 14px/1 var(--mono);letter-spacing:-.02em}
.xls-ext{opacity:.7;font-weight:400}
.xls-saved{display:none;font:400 11px/1 var(--mono);opacity:.8}
.xls-cta{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:4px;background:var(--acc);color:#fff;font:600 14px/1.2 var(--mono);text-decoration:none;border:1px solid var(--acc-dk);box-shadow:inset 0 -2px 0 var(--acc-dk)}
.xls-cta:hover{background:var(--acc-dk)}
.xls-cta-top{margin-left:auto;background:#fff;color:var(--acc);border-color:#fff;box-shadow:none}
.xls-cta-top:hover{background:var(--acc-lt);color:var(--acc-dk)}

.xls-ribbon{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;padding:0 8px;background:var(--head);border-bottom:1px solid var(--grid)}
.xls-ribbon::-webkit-scrollbar{display:none}
.xls-rtab{flex:none;display:flex;align-items:center;min-height:44px;padding:0 12px;font:500 13px/1 var(--sans);color:var(--ink);text-decoration:none;border-bottom:3px solid transparent}
.xls-rtab:hover,.xls-rtab-on{border-bottom-color:var(--acc);color:var(--acc-dk)}

.xls-fbar{display:flex;align-items:stretch;height:32px;font:400 12px/32px var(--mono);border-top:1px solid var(--gridsoft)}
.xls-namebox{flex:none;width:58px;text-align:center;border-right:1px solid var(--grid);color:var(--muted)}
.xls-fx{flex:none;width:34px;text-align:center;font-style:italic;color:var(--headink);border-right:1px solid var(--grid)}
.xls-formula{flex:1;min-width:0;padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--acc-dk)}

/* ---------- sheet grid ---------- */
.xls-book{counter-reset:row}
.xls-sheet{position:relative;border-bottom:6px solid var(--head);scroll-margin-top:130px}
.xls-cols{display:grid;grid-template-columns:var(--gut) repeat(6,1fr);height:22px;background:var(--head);border-bottom:1px solid var(--grid);counter-reset:col}
.xls-cols::before{content:"";border-right:1px solid var(--grid);background:linear-gradient(135deg,transparent 60%,#c9cccb 60%)}
.xls-cols i{counter-increment:col;border-right:1px solid var(--grid);font:600 10px/22px var(--mono);color:var(--headink);text-align:center;font-style:normal}
.xls-cols i::before{content:counter(col,upper-alpha)}
.xls-cols i:nth-child(2){background:#e3e6e4;color:var(--acc-dk)}

.xls-r{counter-increment:row;display:grid;grid-template-columns:var(--gut) minmax(0,1fr);border-bottom:1px solid var(--gridsoft);position:relative}
.xls-r::before{content:counter(row);background:var(--head);border-right:1px solid var(--grid);font:400 10px/1 var(--mono);color:var(--headink);text-align:center;padding-top:14px}
.xls-r>*{grid-column:2;padding:12px 16px}
.xls-r>p{max-width:72ch}

.xls-hrow{background:linear-gradient(var(--acc-lt),var(--acc-lt))}
.xls-h1,.xls-h2,.xls-h3{font-family:var(--mono);letter-spacing:-.03em;margin:0}
.xls-h1{font-size:22px;line-height:1.3;font-weight:700;color:var(--ink)}
.xls-h2{font-size:18px;line-height:1.38;font-weight:700;color:var(--acc-dk)}
.xls-h3{font-size:15px;line-height:1.45;font-weight:600;color:var(--ink)}
.xls-sub>.xls-h3{padding-top:18px;padding-bottom:4px;border-left:3px solid var(--acc2);margin-left:0}
.xls-sub{border-bottom:0}

/* hero */
.xls-sel{background:var(--bg)}
.xls-sel>.xls-h1{outline:2px solid var(--acc);outline-offset:-6px;padding:18px 20px}
.xls-handle{position:absolute;right:3px;bottom:3px;width:8px;height:8px;background:var(--acc);border:1px solid #fff;padding:0!important}
.xls-lead{font-size:16px;color:var(--ink)}
.xls-ctas>*{display:flex;flex-wrap:wrap;gap:10px}
.xls-ctas{display:grid}
.xls-ctas::before{grid-row:1/3}
.xls-ctas>a{grid-column:2;margin:12px 16px 0}
.xls-cta-alt{padding:0 16px}
.xls-ctas>a:last-child{margin-bottom:12px}
.xls-cta-main{min-height:50px;font-size:15px;padding:0 20px!important}
.xls-cta-alt{display:inline-flex;align-items:center;justify-content:center;min-height:44px;font:600 13px/1.2 var(--mono);color:var(--acc2);text-decoration:none;border:1px dashed var(--acc2);border-radius:4px;background:var(--acc2-lt)}
.xls-cta-alt:hover{background:#f7ddc8}

.xls-qa{list-style:none;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--grid)}
.xls-qcell{border-right:1px solid var(--grid);border-bottom:1px solid var(--grid)}
.xls-qcell:nth-child(2n){border-right:0}
.xls-qcell:nth-last-child(-n+2){border-bottom:0}
.xls-qcell a{display:flex;flex-direction:column;gap:3px;min-height:76px;padding:10px 12px;text-decoration:none;color:var(--ink)}
.xls-qcell a:hover{background:var(--acc-lt);box-shadow:inset 0 0 0 2px var(--acc)}
.xls-qref{font:400 10px/1 var(--mono);color:var(--headink)}
.xls-qt{font:700 14px/1.2 var(--mono);color:var(--acc-dk)}
.xls-qd{font-size:13px;line-height:1.35;color:var(--muted)}
.xls-qcell-hot a{background:var(--acc2-lt)}
.xls-qcell-hot .xls-qt{color:var(--acc2)}

.xls-kpi{margin:0;display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--grid)}
.xls-kcell{padding:8px 12px;border-right:1px solid var(--grid);border-bottom:1px solid var(--grid)}
.xls-kcell:nth-child(2n){border-right:0}
.xls-kcell:nth-last-child(-n+2){border-bottom:0}
.xls-kcell dt{font:400 10px/1.4 var(--mono);text-transform:uppercase;color:var(--headink)}
.xls-kcell dd{margin:2px 0 0;font:700 20px/1.2 var(--mono);color:var(--ink)}
.xls-kcell small{font:400 11px/1 var(--sans);color:var(--muted)}

/* tables */
.xls-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--grid);padding:0!important;margin:12px 16px}
.xls-tbl{border-collapse:collapse;width:100%;min-width:520px;font-size:14px}
.xls-tbl-slots{min-width:860px}
.xls-cap{caption-side:top;text-align:left;padding:6px 10px;font:600 11px/1.3 var(--mono);color:#fff;background:var(--acc);white-space:nowrap}
.xls-tbl th,.xls-tbl td{border:1px solid var(--grid);padding:8px 10px;text-align:left;vertical-align:top;position:relative}
.xls-tbl thead th{background:var(--head);font:600 11px/1.3 var(--mono);color:var(--headink);text-transform:uppercase;letter-spacing:.02em}
.xls-tbl tbody th{font-weight:600;background:#fafbfa;white-space:nowrap;position:sticky;left:0;z-index:1}
.xls-tbl td{font-variant-numeric:tabular-nums}
.xls-bar{position:absolute;left:0;top:3px;bottom:3px;width:calc(var(--v) * 1%);background:linear-gradient(90deg,#b9dcc7,#e5f1ea);z-index:-1;padding:0!important}
.xls-tbl td:has(.xls-bar){z-index:0;isolation:isolate}
.xls-hot{color:var(--acc2);font-weight:600}
.xls-best{background:var(--acc-lt);outline:2px solid var(--acc);outline-offset:-2px;font-weight:700}
.xls-sum th,.xls-sum td{background:var(--acc-lt);font:600 13px/1.4 var(--mono);color:var(--acc-dk);border-top:2px solid var(--acc)}

/* notes = cell comments */
.xls-notes{display:grid;gap:0}
.xls-note{border:1px solid var(--grid);border-top:0;position:relative}
.xls-note:first-child{border-top:1px solid var(--grid)}
.xls-note::before{content:"";position:absolute;right:0;top:0;border-style:solid;border-width:0 10px 10px 0;border-color:transparent var(--acc2) transparent transparent}
.xls-note summary{cursor:pointer;list-style:none;min-height:44px;padding:11px 28px 11px 12px;font:600 14px/1.45 var(--sans)}
.xls-note summary::-webkit-details-marker{display:none}
.xls-note summary::after{content:"+";position:absolute;right:16px;top:10px;font:700 16px/1 var(--mono);color:var(--acc)}
.xls-note[open] summary::after{content:"−"}
.xls-note[open] summary{background:var(--acc-lt)}
.xls-note p{padding:10px 12px 14px;background:#fffdf5;border-top:1px dashed var(--grid);font-size:15px}

/* warn, status, footer, tabs */
.xls-warn{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--acc2);background:var(--acc2-lt);padding:12px!important;margin:12px 16px}
.xls-age{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--acc2);color:#fff;font:700 13px/1 var(--mono)}
.xls-warn p{font-size:14px}

.xls-author .xls-hrow{background:var(--head)}
.xls-status{display:flex;flex-wrap:wrap;gap:4px 18px;padding:6px 16px;background:var(--head);border-top:1px solid var(--grid);font:400 11px/1.6 var(--mono);color:var(--headink)}
.xls-status span:first-child{color:var(--acc)}
.xls-foot{padding:16px 16px 20px;border-top:1px solid var(--grid)}
.xls-legal{font-size:13px;color:var(--muted);max-width:90ch;margin:0 0 6px}

.xls-tabs{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;gap:0;overflow-x:auto;scrollbar-width:none;background:var(--head);border-top:1px solid var(--grid);padding:0 0 env(safe-area-inset-bottom) 8px}
.xls-tabs::-webkit-scrollbar{display:none}
.xls-tab{flex:none;display:flex;align-items:center;min-height:44px;padding:0 14px;font:500 12px/1 var(--mono);color:var(--muted);text-decoration:none;border-right:1px solid var(--grid);background:#e9ebea}
.xls-tab:hover{background:#fff;color:var(--acc-dk)}
.xls-tab-on{background:#fff;color:var(--acc);border-bottom:3px solid var(--acc);font-weight:700}

/* ---------- wider screens ---------- */
@media (min-width:720px){
  :root{--gut:44px}
  .xls-titlebar{padding:6px 24px}
  .xls-saved{display:inline}
  .xls-h1{font-size:30px}
  .xls-h2{font-size:22px}
  .xls-h3{font-size:17px}
  .xls-r>*{padding:14px 24px}
  .xls-scroll{margin:14px 24px}
  .xls-warn{margin:14px 24px}
  .xls-ctas{display:grid;grid-template-columns:var(--gut) auto auto 1fr}
  .xls-ctas::before{grid-row:auto}
  .xls-ctas>a{grid-column:auto;margin:14px 0 14px 24px}
  .xls-ctas>a:last-child{margin-bottom:14px}
  .xls-qa,.xls-kpi{grid-template-columns:repeat(4,1fr)}
  .xls-qcell,.xls-kcell{border-bottom:0}
  .xls-qcell:nth-child(2n),.xls-kcell:nth-child(2n){border-right:1px solid var(--grid)}
  .xls-qcell:last-child,.xls-kcell:last-child{border-right:0}
  .xls-kcell dd{font-size:24px}
  .xls-foot{padding:20px 24px 24px}
}
@media (min-width:1100px){
  .xls-book,.xls-status,.xls-foot{max-width:1180px;margin:0 auto}
  .xls-book{border-left:1px solid var(--grid);border-right:1px solid var(--grid)}
  .xls-h1{font-size:34px}
}
.xls-r.xls-notes::before{grid-row:span 12}
.xls-r.xls-notes>.xls-note{padding:0;margin:0 16px}
.xls-r.xls-notes>.xls-note:first-child{margin-top:12px}
.xls-r.xls-notes>.xls-note:last-child{margin-bottom:12px}
@media (min-width:720px){.xls-r.xls-notes>.xls-note{margin:0 24px}}
