@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url(fonts/inter-var.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/jetbrains-mono-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/jetbrains-mono-latin-700-normal.woff2) format('woff2')}
:root{--bg:#f8fafc;--card:#fff;--card-h:#f8fafc;--fg:#0f172a;--muted:#64748b;--line:#e2e8f0;--accent:#2563eb;--accent-soft:#eff6ff;--soft:#f1f5f9;--warn:#b45309;--warn-bg:#fffbeb;--warn-bd:#fde68a;--ok:#059669;--ok-bg:#ecfdf5;--ok-bd:#a7f3d0;--bad:#dc2626;--bad-bg:#fef2f2;--bad-bd:#fecaca;--mono:"JetBrains Mono",ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,monospace}
@media(prefers-color-scheme:dark){:root{--bg:#0b0f19;--card:#111827;--card-h:#1a2234;--fg:#f3f4f6;--muted:#94a3b8;--line:#1e293b;--accent:#60a5fa;--accent-soft:#1e293b;--soft:#1a2234;--warn:#fbbf24;--warn-bg:#78350f33;--warn-bd:#92400e;--ok:#34d399;--ok-bg:#064e3b33;--ok-bd:#065f46;--bad:#f87171;--bad-bg:#7f1d1d33;--bad-bd:#991b1b}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.45 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-feature-settings:'cv05','tnum' 0}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
header{position:sticky;top:0;z-index:50;border-bottom:1px solid var(--line);padding:10px 16px;display:flex;gap:16px;align-items:center;flex-wrap:wrap;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
header .brand{font-weight:700;letter-spacing:.2px}
header .brand span{color:var(--muted);font-weight:400}
header nav a{margin-right:14px}
main{max-width:1040px;margin:0 auto;padding:16px}
h1{font-size:22px;margin:8px 0 4px}h2{font-size:17px;margin:22px 0 8px}
.sub{color:var(--muted);font-size:13px}
.search{position:relative;flex:1;min-width:220px;max-width:420px}
.search input{width:100%;padding:8px 30px 8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--fg);font-size:15px}
.search ul{position:absolute;left:0;right:0;top:100%;margin:0;padding:0;list-style:none;background:var(--card);border:1px solid var(--line);border-radius:8px;z-index:9;max-height:320px;overflow:auto;box-shadow:0 6px 20px rgba(0,0,0,.08)}
.search li{padding:8px 10px;cursor:pointer;display:flex;gap:10px;align-items:baseline}
.search li:hover,.search li.active{background:var(--soft)}
.search li b{min-width:52px}.search li small{color:var(--muted);margin-left:auto;white-space:nowrap}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.filters select,.filters button{padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--fg);font-size:13px;font-weight:500}
.filters button.on{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.mhead{margin:18px 0 6px;font-weight:700;color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:.6px}
.row{display:grid;grid-template-columns:104px 1fr;gap:12px;padding:10px 0;border-top:1px solid var(--line)}
.row .when{font-variant-numeric:tabular-nums}
.row .when b{display:block}
.row .when small{color:var(--muted)}
.row .what .t{font-weight:700;margin-right:6px}
.row .what .n{color:var(--muted)}
.row .what .d{margin-top:2px}
.pill{display:inline-block;font-size:11px;padding:1px 7px;border-radius:999px;border:1px solid var(--line);color:var(--muted);margin-left:6px;vertical-align:middle}
.pill.day{color:var(--ok);border-color:var(--ok-bd);background:var(--ok-bg)}
.pill.month{color:var(--fg)}
.pill.quarter,.pill.half,.pill.year{color:var(--warn);border-color:var(--warn-bd);background:var(--warn-bg)}
.pill.reg{background:var(--soft)}
.pill.od{color:var(--bad);border-color:var(--bad-bd);background:var(--bad-bg)}
.row.od .when b{color:var(--bad)}
.odnote{color:var(--bad);margin-top:2px}
details.open.od summary .mhead{color:var(--bad)}
.quote{color:var(--muted);font-size:13px;margin-top:3px}
.src{font-size:12px;color:var(--muted)}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:10px 0}
.kv{display:grid;grid-template-columns:140px 1fr;gap:4px 12px;font-size:14px}
.kv div:nth-child(odd){color:var(--muted)}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{text-align:left;padding:6px 8px;border-top:1px solid var(--line);vertical-align:top}
th{color:var(--muted);font-weight:600;border-top:0}
.num{text-align:right;font-variant-numeric:tabular-nums}
.stmt{padding:6px 0 6px 12px;border-left:2px solid var(--line);margin:6px 0}
.stmt.done{border-left-color:var(--ok)}
.stmt .w{font-weight:600}
.empty{color:var(--muted);padding:24px 0}
footer{max-width:1040px;margin:30px auto;padding:16px;color:var(--muted);font-size:12px;border-top:1px solid var(--line)}
@media(max-width:600px){.row{grid-template-columns:84px 1fr;gap:8px}.kv{grid-template-columns:110px 1fr}main{padding:12px}}
.money{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.money .stat small{display:block;color:var(--muted);font-size:12px}
.money .stat b{font-size:20px}
.money .how{grid-column:1/-1;color:var(--muted);font-size:13px;border-top:1px solid var(--line);padding-top:8px}
.money .words{grid-column:1/-1;border-top:1px solid var(--line);padding-top:8px}
.money .words>small{display:block;color:var(--muted);font-size:12px;margin-bottom:2px}
.money .words .stmt{margin:4px 0;font-size:14px}
.tv{margin:10px 0 4px}
.tradingview-widget-copyright{font-size:11px;color:var(--muted)}
.tradingview-widget-copyright a{color:var(--muted)}
.quote-live{font-size:16px;font-weight:600;margin-left:8px}
.quote-live .up{color:var(--ok)}.quote-live .dn{color:var(--bad)}
.quote-live small{color:var(--muted);font-weight:400}
@media(max-width:600px){.money{grid-template-columns:1fr 1fr}}
.chk{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);padding:6px 0}
details.open{border:1px solid var(--line);border-radius:10px;padding:4px 12px;margin:8px 0 4px}
details.open summary{cursor:pointer;list-style:none;padding:6px 0}
details.open summary .mhead{margin:0;display:inline}
details.open[open] summary{border-bottom:1px solid var(--line);margin-bottom:4px}
.row .when b{font-size:15px}
.pill.cap{color:var(--fg);border-color:var(--line);background:var(--soft)}
.links{font-size:14px;line-height:2}
details.profile{margin:4px 0 8px}
details.profile summary{cursor:pointer;color:var(--accent);font-size:14px;list-style:none}
details.profile summary::before{content:"▸ ";color:var(--muted)}
details.profile[open] summary::before{content:"▾ "}
.setup{display:grid;grid-template-columns:repeat(5,1fr);gap:8px 12px;padding:2px 0 0}
.setup span small{display:block;color:var(--muted);font-size:12px}
.setup span b{font-size:15px}
.setup .up{color:var(--ok)}.setup .dn{color:var(--bad)}
.setup .how{display:none}
@media(max-width:600px){.setup{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.cc .cal-quote{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}}
footer p{margin:0 0 8px}
.prose{max-width:720px}
.prose h1{margin-bottom:12px}
.prose h2{margin-top:26px}
.prose p{margin:8px 0;line-height:1.6}
.beta{display:inline-block;font-size:12px;font-weight:600;vertical-align:middle;margin-left:8px;padding:2px 9px;border-radius:999px;border:1px solid var(--accent);color:var(--accent);letter-spacing:.4px}
details.tl{margin:6px 0;padding:6px 0;border-top:1px solid var(--line)}
details.tl summary{cursor:pointer;list-style:none;font-size:14px;line-height:1.8}
details.tl summary::-webkit-details-marker{display:none}
details.tl .steps{margin-left:6px}
details.tl .st small{color:var(--muted);margin-right:4px}
details.tl .st em{color:var(--warn);font-style:normal;font-size:12px}
details.tl .st.done{color:var(--ok)}
details.tl .arr{color:var(--muted);margin:0 6px}
details.tl .quote{margin:4px 0 4px 12px}
.showall{display:inline-block;margin:8px 0 4px;font-size:14px}
.tbl{overflow-x:auto;-webkit-overflow-scrolling:touch}
table.pipe td:first-child a{color:var(--fg);text-decoration:none}
table.pipe td:first-child a:hover{text-decoration:underline}
table.pipe td:nth-child(3){max-width:280px}
table.pipe .pill{margin-left:4px}
.prog{scroll-margin-top:12px;margin:10px 0 0}
.prog-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;background:var(--soft);border-radius:8px;padding:7px 10px;font-size:15px}
.prog-h .ind{color:var(--fg)}
.prog-h .pill.stage{margin-left:auto;color:var(--fg);border-color:var(--line);background:var(--bg)}
.prog-b{padding:0 0 0 10px}
.prog-b details.tl:first-child{border-top:0}
@media(max-width:600px){.prog-h .pill.stage{margin-left:0}}
table.pipe small.m{display:none}
@media(max-width:600px){table.pipe{font-size:13px}table.pipe th:nth-child(3),table.pipe td:nth-child(3),table.pipe th.last,table.pipe td.last{display:none}table.pipe small.m{display:block;font-size:11px;margin-top:2px}}
table.pipe th{white-space:nowrap}
.tv.chart{border:1px solid var(--line);border-radius:10px;overflow:hidden}

/* sections */
.sec{border:1px solid var(--line);border-radius:12px;padding:14px 16px 12px;margin:14px 0;background:var(--card)}
.sec .sec-h{margin-bottom:8px}
.sec .sec-h h2{margin:0;font-size:16px}
.sec .sec-h .sub{margin-top:1px}
.sec .row:first-of-type{border-top:0}
.sec table th{border-top:0}
.sec .links{margin-top:6px}
.sec.money-sec .money{padding-top:2px}
details.more{margin:6px 0 2px}
details.more summary{cursor:pointer;color:var(--accent);font-size:13px;list-style:none}
details.more summary::before{content:"▸ ";color:var(--muted)}
details.more[open] summary::before{content:"▾ "}
.row[hidden],.fl[hidden]{display:none!important}
@media(max-width:600px){.sec{padding:12px 12px 10px;margin:10px 0}}
table.fin td:first-child{white-space:nowrap}
details.more .row:first-of-type{border-top:1px solid var(--line)}

/* --- design pass: mono numerals, KPI strip, calendar cards --- */
.num,.when b,.money .stat b,.kpi b,.t-badge{font-family:var(--mono)}
.kbd{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:10px;color:var(--muted);border:1px solid var(--line);background:var(--card);border-radius:4px;padding:1px 5px;pointer-events:none}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0 4px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 13px}
.kpi small{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px;font-weight:500}
.kpi small i{width:8px;height:8px;border-radius:99px;display:inline-block}
.kpi b{display:block;font-size:22px;margin-top:2px}
.kpi .sub{margin-top:2px;font-size:11px}
.kpi.k-reg i{background:var(--ok)}.kpi.k-ph3 i{background:#8b5cf6}.kpi.k-od i{background:var(--bad)}.kpi.k-up i{background:var(--accent)}
.kpi.k-od b{color:var(--bad)}
@media(max-width:600px){.kpis{grid-template-columns:1fr 1fr}}
.t-badge{display:inline-block;font-weight:700;font-size:12px;background:var(--card);border:1px solid var(--line);border-radius:6px;padding:1px 7px}
.cc{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:10px 0;transition:border-color .15s,box-shadow .15s}
.cc:hover{border-color:var(--accent);box-shadow:0 4px 18px rgba(0,0,0,.06)}
.cc-h{background:var(--card-h);border-bottom:1px solid var(--line);padding:7px 13px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.cc-h .who{display:flex;align-items:baseline;gap:8px;min-width:0;flex-wrap:wrap}
.cc-h .who .n{color:var(--muted);font-size:13px;font-weight:600}
.cc-h .whn{display:flex;align-items:center;gap:6px;white-space:nowrap}
.cc-h .date{font-family:var(--mono);font-weight:700;font-size:13px}
.cc-h .date small{color:var(--muted);font-weight:400;margin-left:5px}
.cc.od .cc-h .date{color:var(--bad)}
.cc-b{padding:10px 13px 11px}
.cc-b .d{margin-top:2px;font-size:14px}
.cc-b .quote{background:var(--soft);border-left:2px solid var(--accent);border-radius:0 8px 8px 0;padding:8px 11px;margin-top:8px;font-size:13px}
.cc-b .src{display:block;margin-top:7px;padding-top:7px;border-top:1px solid var(--line)}
.reset-f{font-size:13px}
.rw{height:5px;background:var(--soft);border-radius:99px;margin-top:5px;overflow:hidden}
.rw i{display:block;height:100%;border-radius:99px}
.rw .g{background:var(--ok)}.rw .y{background:var(--warn)}.rw .r{background:var(--bad)}
.cc-b>.pill{margin-left:8px}
.empty .reset-f{margin-left:8px}
.two-col{display:grid;gap:14px}
@media(min-width:900px){.two-col{grid-template-columns:3fr 2fr;align-items:stretch}
  .two-col .setup{grid-template-columns:1fr;gap:0}
  .two-col .setup span{display:flex;justify-content:space-between;align-items:baseline;padding:7px 0;border-top:1px solid var(--line)}
  .two-col .setup span:first-child{border-top:0}
  .two-col .setup span small{display:inline}
  .two-col .money{grid-template-columns:repeat(3,1fr)}}
.two-col .sec{margin:0}
@media(max-width:899px){.two-col{gap:10px;margin:14px 0}}
@media(min-width:900px){.two-col{margin:14px 0}}
.two-col .setup span.how,.setup .how{display:none!important}
