:root{--green-50:#f0f9f4;--green-100:#d9f0e3;--green-200:#b3e2c8;--green-300:#7fd0a5;--green-400:#34bb78;--green-500:#23a268;--green-600:#238f59;--green-700:#1e7d4e;--green-800:#17603c;--green-900:#0f4128;--ink-900:#0d1b14;--ink-700:#33453b;--ink-600:#63736a;--ink-500:#6b7d73;--ink-300:#c3cdc7;--ink-100:#edf1ee;--paper:#fff;--gold:#d4a017;--text:#0d1b14;--text-muted:#63736a;--surface:#fff;--canvas:#f7faf8;--border:#c3cdc7;--link:#1e7d4e;--heading:#238f59;--button-bg:#1e7d4e;--button-bg-hover:#17603c;--button-bg-active:#0f4128;--button-fg:#fff;--accent:#238f59;--progress:#238f59;--progress-track:#edf1ee;--highlight:#d9f0e3;--success:#238f59;--success-text:#1e7d4e;--danger:#c0392b;--warning:#b8860b;--warning-text:#8f6809;--pledge:#c97a1e;--pledge-text:#9f6018;--penalty:#8e44ad;--received:#2e86ab;--received-text:#297697;--progress-motion:.2s;--progress-label:inline;--text-0:.75rem;--text-1:.875rem;--text-2:1rem;--text-3:1.25rem;--text-4:1.5625rem;--text-5:1.9375rem;--text-6:2.4375rem;--text-7:3.0625rem;--font-sans:"Inter Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--motion-fast:.15s;--motion-base:.2s;--ease-out:cubic-bezier(.16, 1, .3, 1);--target-min:44px}:root[data-tone=sherehe]{--accent:#34bb78;--progress:#34bb78;--highlight:#d4a017}:root[data-tone=msiba]{--canvas:#fff;--link:#0f4128;--heading:#0f4128;--button-bg:#0f4128;--button-bg-hover:#0d1b14;--button-bg-active:#0d1b14;--accent:#0f4128;--progress:#6b7d73;--highlight:#edf1ee;--success:#0f4128;--success-text:#0f4128;--progress-motion:0s;--progress-label:none}@media (prefers-reduced-motion:reduce){:root,:root[data-tone]{--progress-motion:0s;--motion-fast:0s;--motion-base:0s}}
*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--canvas);color:var(--text);font-family:var(--font-sans);font-size:var(--text-2);margin:0;line-height:1.5}a{color:var(--link)}h1,h2{color:var(--heading);line-height:1.2}.num,table,input[inputmode=numeric]{font-variant-numeric:tabular-nums}button,input,select,a[role=button]{min-height:var(--target-min);font:inherit}.locale-switcher{flex-wrap:wrap;align-items:center;gap:.25rem 1rem;display:flex}.locale-switcher [aria-current]{font-weight:600}:focus-visible{outline:3px solid var(--link);outline-offset:2px}
body{background:var(--canvas);font-size:.875rem;line-height:1.45}.shell{grid-template-columns:14.5rem minmax(0,1fr);min-height:100vh;display:grid}.side{background:var(--green-900);color:#d6ebdf;flex-direction:column;gap:.75rem;height:100vh;padding:1rem .75rem;font-size:.84rem;display:flex;position:sticky;top:0;overflow-y:auto}.side .brand{color:#fff;letter-spacing:-.01em;border-bottom:1px solid #ffffff1a;align-items:center;gap:.6rem;padding:.25rem .5rem .75rem;font-weight:800;display:flex}.side .brand img{background:#fff;border-radius:6px;width:22px;height:22px;padding:2px;display:block}.side .brand small{color:#9ccbb2;text-transform:uppercase;letter-spacing:.08em;font-size:.68rem;font-weight:600;display:block}.side .nav{gap:2px;display:grid}.side a{color:#d6ebdf;border-radius:7px;align-items:center;gap:.6rem;min-height:34px;padding:.45rem .6rem;text-decoration:none;display:flex}.side a .ic{opacity:.8;flex:none}.side a:hover{color:#fff;background:#ffffff12}.side a[aria-current]{color:#fff;box-shadow:inset 3px 0 0 var(--green-400);background:#ffffff1f;font-weight:700}.side .me{border-top:1px solid #ffffff1a;grid-template-columns:auto 1fr;align-items:center;gap:.4rem .6rem;margin-top:auto;padding-top:.75rem;display:grid}.side .me .avatar{background:var(--green-600);color:#fff;border-radius:50%;place-items:center;width:28px;height:28px;font-size:.8rem;font-weight:800;display:grid}.side .me .who{color:#fff;text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.side .me a,.side .me form{grid-column:1/-1}.side .me .btn{color:#d6ebdf;background:0 0;border-color:#fff3;justify-content:center;width:100%}.side .me .btn:hover{background:#ffffff12}@media (max-width:56rem){.shell{grid-template-columns:1fr}.side{z-index:10;flex-direction:row;align-items:center;gap:.5rem;height:auto;padding:.5rem .75rem;position:sticky;overflow:auto hidden}.side .brand{white-space:nowrap;border:0;padding:0 .25rem 0 0}.side .brand small{display:none}.side .nav{gap:2px;display:flex}.side a{white-space:nowrap}.side a[aria-current]{box-shadow:inset 0 -3px 0 var(--green-400)}.side .me{border:0;margin:0;padding:0;display:flex}.side .me .who,.side .me .avatar{display:none}}.main{min-width:0;max-width:110rem;padding:1.25rem 1.5rem 2.5rem}@media (max-width:40rem){.main{padding:1rem .75rem 2rem}}h1{letter-spacing:-.015em;color:var(--ink-900);margin:.1rem 0 1rem;font-size:1.4rem}h2{color:var(--ink-900);letter-spacing:-.005em;margin:0 0 .7rem;font-size:.95rem}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.5rem 1rem;margin-bottom:1rem;display:flex}.page-head h1{margin:0}.page-head .meta{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.panel{background:var(--surface);border:1px solid var(--ink-100);border-radius:12px;margin:0 0 1rem;padding:1rem 1.1rem;box-shadow:0 1px 2px #0d1b140a}.panel>h2:first-child{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.panel h2 .sub{color:var(--text-muted);font-size:.75rem;font-weight:500}.dash{grid-template-columns:repeat(12,minmax(0,1fr));gap:1rem;margin-bottom:1rem;display:grid}.dash>*{grid-column:span 12;margin:0}@media (min-width:64rem){.dash .c4{grid-column:span 4}.dash .c5{grid-column:span 5}.dash .c6{grid-column:span 6}.dash .c7{grid-column:span 7}.dash .c8{grid-column:span 8}}@media (min-width:44rem) and (max-width:64rem){.dash .c4,.dash .c5,.dash .c6,.dash .c7{grid-column:span 6}}.grid{grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));gap:.75rem;margin-bottom:1rem;display:grid}.kpis{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.75rem;margin-bottom:1rem;display:grid}@media (min-width:80rem){.kpis{grid-template-columns:repeat(6,minmax(0,1fr))}}@media (max-width:40rem){.kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.kpi{padding:.65rem .7rem}.kpi .v{font-size:1.05rem}.kpi .k{font-size:.66rem}}.stat,.kpi{background:var(--surface);border:1px solid var(--ink-100);border-radius:12px;min-width:0;padding:.8rem .95rem;box-shadow:0 1px 2px #0d1b140a}.stat .k,.kpi .k{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:.4rem;font-size:.74rem;font-weight:600;display:flex}.kpi .k .ic{color:var(--green-700)}.stat .v,.kpi .v{color:var(--ink-900);font-variant-numeric:tabular-nums;letter-spacing:-.02em;white-space:nowrap;text-overflow:ellipsis;margin-top:.2rem;font-size:1.3rem;font-weight:800;overflow:hidden}.kpi .v .cur{color:var(--text-muted);letter-spacing:0;margin-right:.2rem;font-size:.72rem;font-weight:700}.kpi .d{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:.15rem;font-size:.75rem;display:flex}.delta{font-variant-numeric:tabular-nums;align-items:center;gap:.15rem;font-weight:700;display:inline-flex}.delta.up{color:var(--success-text)}.delta.down{color:var(--danger)}.stat.bad,.kpi.bad{border-color:var(--danger);box-shadow:inset 3px 0 0 var(--danger)}.attn{gap:2px;margin:0;padding:0;list-style:none;display:grid}.attn a{color:var(--text);border-radius:8px;align-items:center;gap:.6rem;padding:.45rem .5rem;text-decoration:none;display:flex}.attn a:hover{background:var(--canvas)}.attn .n{text-align:center;font-variant-numeric:tabular-nums;background:var(--ink-100);min-width:1.9rem;color:var(--ink-700);border-radius:999px;margin-left:auto;padding:.05rem .45rem;font-weight:800}.attn .hot .n{color:#a12d22;background:#fbe3e0}.attn .ic{color:var(--text-muted)}.attn .hot .ic{color:var(--danger)}.allclear{color:var(--success-text);align-items:center;gap:.5rem;margin:.5rem 0 0;font-weight:600;display:flex}.chart{width:100%;height:auto;display:block;overflow:visible}.chart .grid-l{stroke:var(--ink-100);stroke-width:1px}.chart .axis{fill:var(--text-muted);font-variant-numeric:tabular-nums;font-size:10px}.chart .bar{fill:var(--green-600)}.chart .bar.today{fill:var(--green-400)}.chart .hit{fill:#0000}.chart g:hover .bar{fill:var(--green-800)}.chart g:hover .hit{fill:#0d1b140a}.hbars{gap:.45rem;display:grid}.hbar{grid-template-columns:minmax(6rem,9rem) minmax(0,1fr) auto;align-items:center;gap:.6rem;font-size:.8rem;display:grid}.hbar .l{text-overflow:ellipsis;white-space:nowrap;color:var(--ink-700);overflow:hidden}.hbar .t{background:var(--ink-100);border-radius:999px;height:.6rem;overflow:hidden}.hbar .t span{background:var(--green-600);border-radius:999px;min-width:2px;height:100%;display:block}.hbar .t span.alt{background:var(--ink-500)}.hbar .val{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-weight:700}.hbar .val small{color:var(--text-muted);margin-left:.3rem;font-weight:500}.split{grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:.5rem;margin-bottom:.8rem;display:grid}.split div{background:var(--canvas);border-radius:8px;padding:.5rem .65rem}.split b{font-variant-numeric:tabular-nums;font-size:1.05rem;display:block}.split span{color:var(--text-muted);font-size:.72rem}details.tbl{margin-top:.6rem}details.tbl summary{cursor:pointer;color:var(--link);font-size:.78rem;font-weight:600}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.8rem}th,td{text-align:left;border-bottom:1px solid var(--ink-100);vertical-align:top;padding:.4rem .5rem}th{color:var(--text-muted);white-space:nowrap;text-transform:uppercase;letter-spacing:.03em;background:var(--canvas);font-size:.72rem;font-weight:600}tbody tr:hover td{background:#fafcfb}td.r,th.r{text-align:right;white-space:nowrap}@media (max-width:40rem){.hide-sm{display:none}}td a{color:var(--link);font-weight:600;text-decoration:none}td a:hover{text-decoration:underline}.scroll{overflow-x:auto}.ellip{text-overflow:ellipsis;white-space:nowrap;max-width:16rem;overflow:hidden}.in,.sel,textarea.in{border:1px solid var(--border);min-height:34px;font:inherit;background:var(--surface);color:var(--text);border-radius:7px;padding:.25rem .55rem;font-size:.84rem}.in:focus,.sel:focus{border-color:var(--link);box-shadow:0 0 0 3px var(--green-100);outline:0}textarea.in{width:100%;min-height:70px}.in-group{border:1px solid var(--border);background:var(--surface);border-radius:7px;align-items:stretch;display:inline-flex;overflow:hidden}.in-group:focus-within{border-color:var(--link)}.in-group .in{font-variant-numeric:tabular-nums;border:0;border-radius:0;flex:1;min-width:0}.in-group .unit{background:var(--canvas);border-left:1px solid var(--border);color:var(--text-muted);align-items:center;padding:0 .4rem;font-size:.72rem;font-weight:600;display:flex}.btn{background:var(--button-bg);min-height:34px;color:var(--button-fg);font:inherit;cursor:pointer;border:1px solid #0000;border-radius:7px;align-items:center;gap:.35rem;padding:0 .85rem;font-size:.84rem;font-weight:700;text-decoration:none;display:inline-flex}.btn:hover{background:var(--button-bg-hover)}.btn.sec{background:var(--surface);color:var(--link);border-color:var(--border)}.btn.sec:hover{background:var(--canvas)}.btn.danger{background:var(--danger);color:#fff}.btn.sm{min-height:30px;padding:0 .6rem;font-size:.78rem}.row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}form.inline{flex-wrap:wrap;align-items:center;gap:.4rem;display:inline-flex}label.f{gap:.2rem;font-size:.78rem;font-weight:600;display:grid}.alert{border:1px solid #f2dfb0;border-left:4px solid var(--warning);background:#fffbf0;border-radius:8px;align-items:flex-start;gap:.5rem;margin:0 0 1rem;padding:.6rem .85rem;display:flex}.alert.bad{border-color:#f3c9c4;border-left-color:var(--danger);background:#fff6f5}.alert.ok{border-color:var(--green-200);border-left-color:var(--success);background:var(--green-50)}.pill{border:1px solid var(--border);background:var(--surface);white-space:nowrap;border-radius:999px;align-items:center;gap:.25rem;padding:.05rem .5rem;font-size:.72rem;font-weight:700;display:inline-flex}.pill.bad{color:#a12d22;background:#fff6f5;border-color:#f3c9c4}.pill.ok{color:var(--success-text);border-color:var(--green-200);background:var(--green-50)}.pill.warn{color:var(--warning-text);background:#fffbf0;border-color:#f2dfb0}.muted{color:var(--text-muted)}.small{font-size:.78rem}.pin td{background:#fff4e5}code{font-size:.76rem}hr{border:0;border-top:1px solid var(--ink-100)}
