:root{--bg:#f3f8f7;--surface:#fff;--sunk:#e9f1f0;--ink:#16302f;--muted:#5b7270;--line:#d7e4e2;--teal:#1f8f8b;--teal-soft:#d5efed;--teal-ink:#1f6f6b;--coral:#e76f51;--coral-soft:#fce6df;--amber:#b97a12;--amber-soft:#faeed3;--good:#2c8a5a;--good-soft:#daf1e3;--wave:#9fd6d2;--shadow:0 10px 30px #16302f24;--f-display:"Arima Madurai","Karla",Georgia,serif;--f-body:"Karla",system-ui,-apple-system,"Segoe UI",sans-serif;--f-mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0d1919;--surface:#142322;--sunk:#0f1e1d;--ink:#e2eeed;--muted:#91a9a6;--line:#24393a;--teal:#3ec1bb;--teal-soft:#16393a;--teal-ink:#7fdcd7;--coral:#f0806a;--coral-soft:#3a2019;--amber:#e2b456;--amber-soft:#382c14;--good:#5cc48d;--good-soft:#15331f;--wave:#2a5755;--shadow:0 10px 30px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0d1919;--surface:#142322;--sunk:#0f1e1d;--ink:#e2eeed;--muted:#91a9a6;--line:#24393a;--teal:#3ec1bb;--teal-soft:#16393a;--teal-ink:#7fdcd7;--coral:#f0806a;--coral-soft:#3a2019;--amber:#e2b456;--amber-soft:#382c14;--good:#5cc48d;--good-soft:#15331f;--wave:#2a5755;--shadow:0 10px 30px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font-family:var(--f-body);margin:0;font-size:15px;line-height:1.45}button,input,select,textarea{font:inherit;color:inherit}.num,.mono{font-variant-numeric:tabular-nums}.mono{font-family:var(--f-mono);font-size:12.5px}a{color:var(--teal)}:focus-visible{outline:2px solid var(--teal);outline-offset:2px}header.top{top:env(safe-area-inset-top,0px);z-index:20;background:var(--bg);border-bottom:1px solid var(--line);position:sticky}.top-inner{flex-wrap:wrap;align-items:flex-end;gap:12px 24px;max-width:1240px;margin:0 auto;padding:14px 20px 0;display:flex}.brand{align-items:baseline;gap:10px;padding-bottom:12px;display:flex}.brand h1{font-family:var(--f-display);color:var(--teal-ink);letter-spacing:-.01em;margin:0;font-size:26px;line-height:1}.brand .yr{font-family:var(--f-mono);color:var(--muted);font-size:12px}nav.tabs{flex:1;gap:2px;min-width:0;display:flex;overflow-x:auto}nav.tabs button{cursor:pointer;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-bottom:3px solid #0000;padding:10px 14px 12px;font-weight:600}nav.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--teal)}.top-actions{align-items:center;gap:8px;padding-bottom:10px;display:flex}main{max-width:1240px;margin:0 auto;padding-block:22px 80px;padding-inline:20px}.banner{background:var(--amber-soft);color:var(--ink);border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:14px}.empty{text-align:center;color:var(--muted);padding:48px 20px}.btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:7px;align-items:center;gap:6px;padding:7px 12px;font-size:14px;font-weight:600;display:inline-flex}.btn:hover{border-color:var(--teal)}.btn.primary{background:var(--teal);border-color:var(--teal);color:#fff}:root[data-theme=dark] .btn.primary{color:#062322}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .btn.primary{color:#062322}}.btn.ghost{color:var(--muted);background:0 0;border-color:#0000}.btn.ghost:hover{color:var(--ink)}.btn.danger{color:var(--coral)}.btn.sm{padding:4px 9px;font-size:13px}select,input[type=text],input[type=number],input[type=date],input[type=url],textarea{background:var(--surface);border:1px solid var(--line);border-radius:6px;min-width:0;padding:6px 8px}textarea{resize:vertical;width:100%}.section-h{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin:28px 0 10px;display:flex}.section-h h2{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0;font-size:13px;font-weight:700}.section-h .hint{color:var(--muted);font-size:13px}.stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.stat{background:var(--surface);border:1px solid var(--line);border-radius:10px;min-width:0;padding:14px 16px}.stat .k{color:var(--muted);font-size:12.5px;font-weight:600}.stat .v{margin-top:4px;font-size:28px;font-weight:700;line-height:1.1}.stat .s{color:var(--muted);margin-top:4px;font-size:13px}.stat.alert .v{color:var(--coral)}.meter{background:var(--sunk);border-radius:3px;height:6px;margin-top:8px;overflow:hidden}.meter i{background:var(--teal);border-radius:3px;height:100%;display:block}@media (width<=820px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.attn{background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}.attn-row{border-top:1px solid var(--line);cursor:pointer;grid-template-columns:6px minmax(0,1.3fr) minmax(0,2.4fr) auto;align-items:center;gap:14px;padding:12px 16px 12px 0;display:grid}.attn-row:first-child{border-top:0}.attn-row:hover{background:var(--sunk)}.attn-row .stripe{border-radius:0 3px 3px 0;align-self:stretch}.sev-3 .stripe{background:var(--coral)}.sev-2 .stripe{background:var(--amber)}.sev-1 .stripe{background:var(--line)}.attn-row .nm{font-weight:700}.attn-row .sub{color:var(--muted);font-size:13px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{background:var(--sunk);color:var(--muted);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600}.chip.red{background:var(--coral-soft);color:var(--coral)}.chip.amber{background:var(--amber-soft);color:var(--amber)}.chip.green{background:var(--good-soft);color:var(--good)}.chip.teal{background:var(--teal-soft);color:var(--teal-ink)}@media (width<=720px){.attn-row{grid-template-columns:6px minmax(0,1fr);row-gap:6px}.attn-row>.chips,.attn-row>.end{grid-column:2}}.tl-wrap{background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow-x:auto}.tl{min-width:900px;position:relative}.tl-head,.tl-row{grid-template-columns:190px minmax(0,1fr);display:grid}.tl-head{background:var(--surface);z-index:3;border-bottom:1px solid var(--line);position:sticky;top:0}.tl-months{grid-template-columns:repeat(12,1fr);display:grid}.tl-months span{color:var(--muted);border-left:1px solid var(--line);text-transform:uppercase;letter-spacing:.06em;padding:8px 6px;font-size:12px;font-weight:700}.tl-row{border-top:1px solid var(--line);min-height:44px}.tl-row:first-of-type{border-top:0}.tl-label{background:var(--surface);z-index:2;border-right:1px solid var(--line);cursor:pointer;min-width:0;padding:8px 12px;position:sticky;left:0}.tl-label b{white-space:nowrap;text-overflow:ellipsis;font-size:14px;display:block;overflow:hidden}.tl-label span{color:var(--muted);font-size:12px}.tl-track{background-image:repeating-linear-gradient(to right,transparent 0,transparent calc(100%/12 - 1px),var(--line) calc(100%/12 - 1px),var(--line) calc(100%/12));position:relative}.tl-wave{background:var(--wave);height:26px;color:var(--teal-ink);white-space:nowrap;text-overflow:ellipsis;opacity:.85;border-radius:5px;padding:5px 7px;font-size:11.5px;font-weight:700;position:absolute;top:9px;overflow:hidden}.tl-dot{border:2px solid var(--teal);background:var(--surface);z-index:1;cursor:pointer;border-radius:50%;width:14px;height:14px;margin-left:-7px;position:absolute;top:15px}.tl-dot.done{background:var(--teal)}.tl-dot.late{border-color:var(--coral);background:var(--coral-soft)}.tl-dl{border-left:2px dashed var(--coral);z-index:1;width:0;position:absolute;top:4px;bottom:4px}.tl-dl:after{content:"";border:4px solid #0000;border-top:6px solid var(--coral);position:absolute;top:-1px;left:-5px}.tl-today{background:var(--coral);z-index:4;pointer-events:none;width:2px;position:absolute;top:0;bottom:0}.tl-today span{color:var(--coral);background:var(--surface);border-radius:3px;padding:0 3px;font-size:10.5px;font-weight:700;position:absolute;top:2px;left:4px}.legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:16px;margin:10px 2px 0;font-size:13px;display:flex}.legend i{vertical-align:-2px;margin-right:6px;display:inline-block}.lg-dot{border:2px solid var(--teal);border-radius:50%;width:12px;height:12px}.lg-dot.f{background:var(--teal)}.lg-dot.l{border-color:var(--coral);background:var(--coral-soft)}.lg-wave{background:var(--wave);border-radius:3px;width:22px;height:10px}.lg-dl{border-left:2px dashed var(--coral);width:0;height:14px}.tl-unplanned{color:var(--muted);font-size:11.5px;position:absolute;top:13px;right:8px}.tbl-wrap{background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--surface);padding:10px 12px;font-size:12px;font-weight:700}td{border-top:1px solid var(--line);vertical-align:middle;padding:9px 12px}tbody tr:first-child td{border-top:0}td.r,th.r{text-align:right}tr.click{cursor:pointer}tr.click:hover td{background:var(--sunk)}.prog{align-items:center;gap:8px;min-width:130px;display:flex}.prog .meter{flex:1;margin:0}.filters{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.seg{border:1px solid var(--line);background:var(--surface);border-radius:7px;display:inline-flex;overflow:hidden}.seg button{cursor:pointer;color:var(--muted);border:0;border-left:1px solid var(--line);background:0 0;padding:6px 11px;font-size:13px;font-weight:600}.seg button:first-child{border-left:0}.seg button[aria-pressed=true]{background:var(--teal-soft);color:var(--teal-ink)}.type-tag{font-family:var(--f-mono);background:var(--sunk);color:var(--muted);white-space:nowrap;border-radius:4px;padding:2px 6px;font-size:11.5px;font-weight:500}.scrim{z-index:40;background:#0a191961;position:fixed;inset:0}.drawer{background:var(--bg);z-index:41;width:min(780px,100%);box-shadow:var(--shadow);padding-top:env(safe-area-inset-top,0px);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}.drawer-h{border-bottom:1px solid var(--line);background:var(--surface);align-items:flex-start;gap:12px;padding:16px 20px;display:flex}.drawer-h .t{flex:1;min-width:0}.drawer-h input.name{font-family:var(--f-display);width:100%;color:var(--teal-ink);background:0 0;border:0;padding:0;font-size:24px;font-weight:800}.drawer-b{padding:4px 20px calc(40px + env(safe-area-inset-bottom,0px));flex:1;overflow-y:auto}.fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;display:grid}.fields label{color:var(--muted);flex-direction:column;gap:4px;min-width:0;font-size:12px;font-weight:700;display:flex}.fields label.wide{grid-column:1/-1}.fields input,.fields select,.fields textarea{color:var(--ink);width:100%;font-size:14px;font-weight:400}@media (width<=620px){.fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.flags{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.flags li{background:var(--amber-soft);border-radius:7px;justify-content:space-between;align-items:flex-start;gap:10px;padding:8px 10px 8px 12px;font-size:13.5px;display:flex}.flags li.auto{background:var(--coral-soft)}.flags li .x{flex:none}.wave-row{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:6px 0;display:grid}.wave-row input{width:100%}@media (width<=620px){.wave-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.wave-row input:first-child{grid-column:1/-1}}.asset{background:var(--surface);border:1px solid var(--line);border-radius:9px;margin-bottom:8px}.asset-h{cursor:pointer;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:9px 12px;display:grid}.asset-h .ttl{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.asset-h .meta{color:var(--muted);font-size:12.5px}.asset-b{border-top:1px solid var(--line);flex-direction:column;gap:12px;padding:12px;display:flex}.kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.kpis label{color:var(--muted);flex-direction:column;gap:3px;font-size:11.5px;font-weight:700;display:flex}.kpis input{text-align:right;font-variant-numeric:tabular-nums;width:100%}@media (width<=560px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}.row-actions{flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex}.rep-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.rep-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:20px}.rep-title{font-family:var(--f-display);color:var(--teal-ink);margin:0 0 2px;font-size:24px}.rep-sub{color:var(--muted);margin-bottom:16px;font-size:14px}.rep-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px;display:grid}.rep-kpis .stat{background:var(--sunk);border:0}.rep-kpis .stat.hero{background:var(--teal-soft)}.rep-kpis .stat.hero .v{color:var(--teal-ink)}@media (width<=720px){.rep-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}.toast{left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--bg);z-index:60;border-radius:8px;padding:9px 16px;font-size:14px;font-weight:600;position:fixed;transform:translate(-50%)}.saving{color:var(--muted);font-size:12px}@media (width<=640px){.top-inner{align-items:center;padding:10px 16px}.brand{padding-bottom:0}.brand h1{font-size:22px}.top-actions{margin-left:auto;padding-bottom:0}nav.tabs{z-index:30;background:var(--surface);border-top:1px solid var(--line);padding:0 4px env(safe-area-inset-bottom,0px);justify-content:space-around;gap:0;position:fixed;bottom:0;left:0;right:0;overflow:visible}nav.tabs button{border-top:3px solid #0000;border-bottom:0;flex:1;padding:12px 2px 13px;font-size:12.5px}nav.tabs button[aria-selected=true]{border-top-color:var(--teal);border-bottom-color:#0000}main{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}.btn{min-height:40px}.btn.sm{min-height:34px}select,input[type=text],input[type=number],input[type=date],input[type=url],textarea{font-size:16px}.toast{bottom:calc(76px + env(safe-area-inset-bottom,0px))}}@media (prefers-reduced-motion:no-preference){.drawer{animation:.18s ease-out slide}@keyframes slide{0%{opacity:.6;transform:translate(24px)}}}:root{--co-nunu:#1f6f6b;--co-nunu-soft:#d5efed;--co-ohana:#7a4fa3;--co-ohana-soft:#eee5f6;--co-tropper:#2f5584;--co-tropper-soft:#e1e9f4}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--co-nunu:#7fdcd7;--co-nunu-soft:#16393a;--co-ohana:#c9a6ea;--co-ohana-soft:#33244a;--co-tropper:#9dbde8;--co-tropper-soft:#1d2d45}}:root[data-theme=dark]{--co-nunu:#7fdcd7;--co-nunu-soft:#16393a;--co-ohana:#c9a6ea;--co-ohana-soft:#33244a;--co-tropper:#9dbde8;--co-tropper-soft:#1d2d45}.chip.co-nunu{background:var(--co-nunu-soft);color:var(--co-nunu)}.chip.co-ohana{background:var(--co-ohana-soft);color:var(--co-ohana)}.chip.co-tropper{background:var(--co-tropper-soft);color:var(--co-tropper)}.co-bar{border-left:4px solid var(--co-nunu);padding-left:6px}.co-bar.co-ohana{border-left-color:var(--co-ohana)}.co-bar.co-tropper{border-left-color:var(--co-tropper)}@media (width<=640px){#compSel{max-width:120px}}body.out nav.tabs,body.out .top-actions{display:none}.login{background:var(--surface);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:12px;max-width:420px;margin:48px auto;padding:24px;display:flex}.login h2{font-family:var(--f-display);color:var(--teal-ink);margin:0;font-size:24px}.login p{color:var(--muted);margin:0;font-size:14px}.login form{flex-direction:column;gap:8px;display:flex}.login input[type=email]{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:9px 10px;font-size:16px}.login .btn{justify-content:center;min-height:42px}.login .or{text-align:center;color:var(--muted);font-size:13px}.login .msg{color:var(--ink);background:var(--teal-soft);border-radius:7px;padding:8px 10px;font-size:14px}.login .msg.err{background:var(--coral-soft);color:var(--coral)}details.menu{position:relative}details.menu summary{list-style:none}details.menu summary::-webkit-details-marker{display:none}.menu-pop{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);z-index:50;border-radius:9px;flex-direction:column;min-width:220px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.menu-pop .who{color:var(--muted);border-bottom:1px solid var(--line);overflow-wrap:anywhere;margin-bottom:4px;padding:6px 10px 8px;font-size:12.5px}.menu-pop button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:8px 10px;font-size:14px;font-weight:600}.menu-pop button:hover{background:var(--sunk)}.imp-sum{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0;display:grid}@media (width<=720px){.imp-sum{grid-template-columns:repeat(2,minmax(0,1fr))}}.imp-list{margin:0;padding-left:16px;font-size:13px}.imp-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:14px;display:flex}:root{--s1:#2a78d6;--s2:#eb6834;--s3:#1baf7a;--s4:#eda100;--s5:#e87ba4;--s6:#008300;--s7:#4a3aa7;--s-other:#b4b2aa}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--s1:#3987e5;--s2:#d95926;--s3:#199e70;--s4:#c98500;--s5:#d55181;--s6:#008300;--s7:#9085e9;--s-other:#5f5e58}}:root[data-theme=dark]{--s1:#3987e5;--s2:#d95926;--s3:#199e70;--s4:#c98500;--s5:#d55181;--s6:#008300;--s7:#9085e9;--s-other:#5f5e58}.dash-pie{background:var(--surface);border:1px solid var(--line);border-radius:10px;grid-template-columns:240px minmax(0,1fr);align-items:center;gap:20px;padding:16px;display:grid}@media (width<=640px){.dash-pie{grid-template-columns:minmax(0,1fr)}.dash-pie .donut{max-width:220px;margin:0 auto}}.donut{width:100%;height:auto;display:block}.donut path:hover{opacity:.85}.donut-k{fill:var(--muted);font-size:11px;font-weight:600}.donut-v{fill:var(--ink);font-variant-numeric:tabular-nums;font-size:18px;font-weight:700}.legend-tbl{border-collapse:collapse;width:100%;font-size:14px}.legend-tbl td{border-top:1px solid var(--line);padding:6px 8px}.legend-tbl tr:first-child td{border-top:0}.legend-tbl .muted{color:var(--muted)}.sw{vertical-align:0;border-radius:3px;width:10px;height:10px;margin-right:8px;display:inline-block}.co-rows{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px 16px}.co-row{grid-template-columns:150px minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px 0;display:grid}.co-row .meter{height:8px;margin:0}@media (width<=560px){.co-row{grid-template-columns:minmax(0,1fr) auto}.co-row .meter{grid-area:2/1/auto/-1}}.bars{width:100%;height:auto;display:block}.bar-k{fill:var(--muted);font-size:11px;font-weight:600}.bar-v{fill:var(--ink);font-size:11px;font-weight:700}@media (width<=640px){nav.tabs button{padding-left:1px;padding-right:1px;font-size:11.5px}}.co-row .chip{justify-self:start}.bars{max-width:620px;margin:0 auto}
