@font-face{font-family:Figtree;src:url(fonts/figtree.woff2) format("woff2");font-weight:300 900;font-display:swap}
:root{--bg:#F6FAF9;--panel:#fff;--line:#E2ECEA;--ink:#0F1A1F;--ink2:#4A5A63;--ink3:#5A6A72;--teal:#0F766E;--teal-soft:#BFE5DF;--ok:#0F766E;--bad:#B42318;--bad-soft:#F7C9C2;--amber:#8A5A00;--amber-bg:#FFF4D6;--a:#0F766E;--b:#C2703D;--grid:#E9F0EE;--yest:#8FA3A8;--soft:#E8F4F1;color-scheme:light}
@media (prefers-color-scheme:dark){:root{--bg:#0E1517;--panel:#162023;--line:#26363A;--ink:#EAF2F1;--ink2:#B4C4C4;--ink3:#9AACAD;--teal:#5EC8BB;--teal-soft:#23534F;--ok:#5EC8BB;--bad:#F59A8E;--bad-soft:#6B2A23;--amber:#F2C66D;--amber-bg:#3A2E12;--a:#5EC8BB;--b:#E7A074;--grid:#223034;--yest:#6B8085;--soft:#1D3331;color-scheme:dark}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 Figtree,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}
[hidden]{display:none!important}
h1,h2,h3,p{margin:0}a{color:var(--teal);text-underline-offset:2px}
.gate{min-height:100vh;display:grid;place-items:center;padding:24px}
.gate-card{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:36px 32px;max-width:360px;width:100%}
.gate-card img{border-radius:14px}
.gate-card h1{font-size:22px;font-weight:600}
.gate-card p{color:var(--ink2)}
#gate-button{min-height:44px;margin-top:8px}
.fb{display:flex;flex-direction:column;gap:16px;width:100%;max-width:1080px;margin:0 auto;min-width:0;padding-block:24px 48px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.stack,.page{display:flex;flex-direction:column;gap:16px;min-width:0}
.fb-bar{display:flex;justify-content:space-between;align-items:center;gap:12px}
.fb-bar h1{font-size:15px;font-weight:600;color:var(--ink2)}
.fb-actions{display:flex;gap:8px}
button{font:inherit;font-size:13px;color:var(--ink2);background:none;border:1px solid var(--line);border-radius:999px;padding:6px 12px;min-height:32px;cursor:pointer}
button:hover{color:var(--ink);border-color:var(--ink3)}
button:focus-visible,summary:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.fb-read{font-size:clamp(20px,3.2vw,26px);font-weight:600;line-height:1.25;letter-spacing:-.01em;margin:12px 0 6px;max-width:44rem;text-wrap:pretty}
.fb-at{color:var(--ink3);font-size:13px}
.fb-warn{margin-top:10px;padding:8px 12px;border-radius:10px;background:var(--amber-bg);color:var(--amber);font-size:13px}
.fb-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr));gap:12px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px;min-width:0}
.tile .l{font-size:13px;color:var(--ink3)}
.tile .v{font-size:28px;font-weight:600;letter-spacing:-.01em;margin:4px 0 2px}
.tile .s{font-size:13px;color:var(--ink3)}
.fb-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));gap:16px}
h2{font-size:16px;font-weight:600}
.note{font-size:13px;color:var(--ink3);margin:2px 0 12px}
.move{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.move li{display:flex;justify-content:space-between;gap:12px}
.good{color:var(--ok)}.bad{color:var(--bad)}.flat{color:var(--ink3)}
.funnel{display:grid;grid-template-columns:minmax(6.5rem,11rem) 1fr;gap:6px 12px;align-items:center}
.funnel .n{font-size:13px}
.funnel .b{display:flex;align-items:center;gap:8px;min-width:0}
.funnel .bar{height:18px;border-radius:5px;background:var(--teal-soft);flex:none;min-width:3px}
.funnel .bar.w{background:var(--bad-soft)}
.funnel .tx{font-size:13px;white-space:nowrap}
.funnel .tx i{font-style:normal;color:var(--ink3)}
.chart{position:relative;min-height:180px}
.chart svg{display:block;width:100%;height:auto}
.chart text{font-size:12px;fill:var(--ink3)}
.tip{position:absolute;top:0;pointer-events:none;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 4px 14px rgba(0,0,0,.12);padding:4px 8px;font-size:12px;white-space:nowrap}
.scroll{overflow-x:auto}
.t{width:100%;border-collapse:collapse}
.t th{font-weight:400;text-align:right;color:var(--ink3);font-size:12px;padding:4px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
.t td{text-align:right;padding:8px;border-bottom:1px solid var(--line);white-space:nowrap}
.t th:first-child,.t td:first-child{text-align:left;padding-left:0;white-space:normal}
.t tr:last-child td{border-bottom:0}
.t .ch{font-size:13px}
.t svg{display:block;margin-left:auto}
.t .col-trend{width:92px}
.pending{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px}
details summary{cursor:pointer;font-weight:600}
dl{margin:10px 0 0;font-size:13px}dt{font-weight:600;margin-top:8px}dd{margin:0;color:var(--ink2)}
@media (max-width:640px){.t .opt{display:none}.fb-two{gap:12px}}
body.loading .fb{opacity:.55;transition:opacity .2s}
.tile .s.good{color:var(--ok)}.tile .s.bad{color:var(--bad)}
@media (max-width:640px){.fb-tiles{grid-template-columns:1fr 1fr}.fb-tiles .tile:first-child{grid-column:1/-1}.funnel{grid-template-columns:1fr;gap:2px}.funnel .b{margin-bottom:8px}}
.search-tiles{margin-bottom:16px}.search-tiles .tile{padding:0}
.search-lists h3{font-size:14px;font-weight:600;margin:0 0 6px}
@media (max-width:640px){.fb-tiles.search-tiles .tile:first-child{grid-column:auto}}

.app{display:grid;grid-template-columns:216px minmax(0,1fr);min-height:100vh}
.side{position:sticky;top:0;align-self:start;height:100vh;display:flex;flex-direction:column;gap:20px;padding:24px 14px;border-right:1px solid var(--line);background:var(--panel)}
.brand{display:flex;align-items:center;gap:10px;font-weight:600;padding:0 8px}.brand img{border-radius:6px}
.nav-items{display:flex;flex-direction:column;gap:2px;flex:1;min-height:0;overflow-y:auto}
.nav-title{font-size:12px;color:var(--ink3);padding:16px 10px 6px}
.nav-a{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-radius:9px;color:var(--ink2);text-decoration:none;white-space:nowrap;flex:none}
.nav-a:hover{color:var(--ink);background:var(--bg)}
.nav-a[aria-current=page]{background:var(--soft);color:var(--teal);font-weight:600}
.nav-a:focus-visible,.card.tile:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.dot{width:7px;height:7px;border-radius:50%;background:var(--bad)}
.side-foot{display:flex;flex-direction:column;gap:10px;padding:0 8px}.side-foot .fb-at{font-size:12px}
.filters{position:sticky;top:0;z-index:5;display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 10px;margin:-8px -16px 0;padding:8px 16px 10px;background:var(--bg);border-bottom:1px solid var(--line)}
.f{display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--ink3);min-width:0}
.f select,.f input{font:inherit;font-size:13px;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:5px 6px;min-height:32px;max-width:7.2rem;color-scheme:inherit}
.f-note{font-size:13px;color:var(--ink3)}
.fb-read{margin:0}
.section-h{font-size:clamp(20px,3vw,24px);font-weight:600;letter-spacing:-.01em}
.group-h{margin-top:8px}
h3{font-size:14px;font-weight:600;margin-bottom:10px}
a.card.tile{color:inherit;text-decoration:none}a.card.tile:hover{border-color:var(--ink3)}
.tile .v{overflow-wrap:anywhere}
.attention{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.today-tiles{grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr))}
button.pick{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:1px;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px 16px;min-height:0;color:var(--ink);font-size:15px}
button.pick .l{font-size:13px;color:var(--ink3)}button.pick .v{font-size:28px;font-weight:600;letter-spacing:-.01em;margin:2px 0}
button.pick .s{font-size:13px;color:var(--ink3)}button.pick .s.good{color:var(--ok)}button.pick .s.bad{color:var(--bad)}
button.pick[aria-pressed=true]{border-color:var(--teal);box-shadow:inset 0 0 0 1px var(--teal);background:var(--soft)}
.chart .lab{font-size:12px;fill:var(--ink2)}.chart .lab.today{font-weight:600;fill:var(--ink)}
.pace{font-size:13px;color:var(--ink2);margin-top:10px}
.shares{display:flex;flex-direction:column;gap:7px}
.share{display:grid;grid-template-columns:minmax(5rem,9rem) minmax(1.5rem,1fr) auto;gap:10px;align-items:center;font-size:13px}
.share .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.track{height:12px}.fill{height:100%;min-width:3px;border-radius:0 4px 4px 0;background:var(--teal-soft)}.fill.quiet{background:var(--grid)}
.share .num{color:var(--ink3);white-space:nowrap}
.t .all{font-size:12px;color:var(--ink3)}
.t.hours{margin-top:10px}
@media (max-width:820px){
  .app{display:block}
  .side{position:sticky;top:0;z-index:6;height:auto;flex-direction:row;padding:6px 0;border-right:0;border-bottom:1px solid var(--line);gap:0}
  .brand,.side-foot,.nav-title{display:none}
  .nav-items{flex-direction:row;gap:4px;overflow-x:auto;padding:2px 12px;scrollbar-width:none}
  .nav-items::-webkit-scrollbar{display:none}
  .filters{position:static;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  .filters::-webkit-scrollbar{display:none}
  .f{flex:none}
  .fb-tiles.today-tiles{grid-template-columns:1fr 1fr}.fb-tiles.today-tiles button.pick:first-child{grid-column:1/-1}
}
