:root{--bg:#111;--bar:#0a0a0a;--card:#ffffff07;--card-b:#ffffff07;--raised:#ffffff12;--btn:#191919;--active:#2a2a2a;--line:#ffffff14;--line2:#ffffff2e;--fg:#eee;--fg2:#ffffffaf;--fg3:#ffffff72;--delta:#7b7b7b;--blue:#1754d8;--blue2:#3b82f6;--green:#48c774;--red:#ef5350;--amber:#f0b429;--orange:#fa4616;--font:Inter,"Inter Fallback",-apple-system,"system-ui","Segoe UI",Roboto,"Helvetica Neue",sans-serif;--mono:ui-monospace,"SF Mono",Menlo,monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);color:var(--fg);font:14px/1.5 var(--font);-webkit-font-smoothing:antialiased;margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--blue2);outline-offset:2px}input,select,textarea{font:inherit}.frame{grid-template-columns:280px 1fr;min-height:100%;display:grid}.side{padding:20px 8px;padding-left:max(8px,env(safe-area-inset-left,0px));border-right:1px solid var(--line);flex-direction:column;gap:4px;height:100vh;display:flex;position:sticky;top:0;overflow:auto}.switch{flex-wrap:wrap;gap:8px;padding:4px 12px 10px;display:flex}.sq{background:var(--raised);width:52px;height:52px;color:var(--fg2);cursor:pointer;border:0;border-radius:14px;place-items:center;font-size:17px;font-weight:600;display:grid}.sq[aria-pressed=true]{color:#fff;box-shadow:0 0 0 2px var(--blue2);background:#1d2b5b}.sq.add{color:var(--fg3);border:1px dashed var(--line);background:0 0;font-size:18px}.lbl{color:var(--fg3);padding:10px 12px 6px;font-size:14px}.nav{flex-direction:column;gap:2px;display:flex}.nav a,.nav button{all:unset;width:100%;height:42px;color:var(--fg2);cursor:pointer;box-sizing:border-box;border-radius:14px;align-items:center;gap:12px;padding:0 9px 0 12px;font-size:16px;font-weight:500;display:flex}.nav a:hover,.nav button:hover{background:var(--raised);color:var(--fg)}.nav a[aria-current=page]{background:var(--active);color:var(--fg)}.ic{color:currentColor;flex:none;width:20px;height:20px}.side .me-wrap{margin-top:auto;position:relative}.side .me{all:unset;box-sizing:border-box;width:100%;color:var(--fg2);cursor:pointer;border-radius:14px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;display:flex}.side .me:hover,.side .me[aria-expanded=true]{background:var(--raised)}.menu-pop.up{min-width:0;inset:auto 8px calc(100% + 6px)}.menu-head{color:var(--fg3);border-bottom:1px solid var(--line);text-overflow:ellipsis;white-space:nowrap;margin-bottom:4px;padding:6px 10px 8px;font-size:12px;overflow:hidden}.avatar{background:var(--active);width:32px;height:32px;color:var(--fg);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:600;display:grid}.main{min-width:0;padding-block:16px 40px;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}.filters{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.fbtn{background:var(--btn);border:1px solid var(--line);letter-spacing:-.006em;cursor:pointer;height:32px;color:var(--fg);border-radius:8px;align-items:center;gap:8px;padding:0 12px;font-size:14px;font-weight:500;display:inline-flex;position:relative}.fbtn .ic{width:16px;height:16px;color:var(--fg2)}.fbtn.ghost{background:0 0}.fbtn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.fbtn.danger{color:var(--red)}.fbtn:disabled{opacity:.5;cursor:default}.chev{width:14px;height:14px;color:var(--fg3)}.spacer{flex:1}.sync{color:var(--fg3);flex-wrap:wrap;gap:14px;font-size:12px;display:flex}.sync b{color:var(--fg2);font-weight:500}.grid{gap:16px;margin-bottom:16px;display:grid}.g-main{grid-template-columns:2fr 1fr}.g-4{grid-template-columns:repeat(4,1fr)}.g-3{grid-template-columns:repeat(3,1fr)}.g-2{grid-template-columns:1fr 1fr}.kpis{grid-template-columns:repeat(4,1fr)}@media (max-width:1200px){.g-4,.kpis{grid-template-columns:repeat(2,1fr)}.g-3{grid-template-columns:1fr 1fr}}@media (max-width:820px){.g-main,.g-4,.g-3,.g-2,.kpis{grid-template-columns:1fr}}.card{background:var(--card);border:1px solid var(--card-b);border-radius:16px;min-width:0;padding:16px}.card.flush{padding:0}.card .title{letter-spacing:-.007em;align-items:center;gap:10px;font-size:16px;font-weight:500;display:flex}.card.flush .title{padding:16px 16px 0}.kpi .k{color:var(--fg);font-size:12px;font-weight:500}.kpi .v{letter-spacing:-.006em;font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:baseline;gap:8px;margin-top:6px;font-size:18px;font-weight:600;display:flex}.kpi .v.big{font-size:32px;font-weight:500;line-height:1.3}.kpi .v.mid{font-size:28px;font-weight:600;line-height:1.2}.kpi.row{align-items:center;min-height:96px;display:flex}.kpi.row .k{white-space:nowrap}.d{color:var(--green);font-size:14px;font-weight:500}.d.neg{color:var(--red)}.d.grey{color:var(--delta);font-size:12px;font-weight:400}.legend{color:var(--fg2);flex-wrap:wrap;gap:16px;margin-top:10px;font-size:12px;display:flex}.legend i{background:var(--blue2);vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.legend i.g{background:var(--fg3)}.legend i.o{background:var(--orange)}.legend i.gr{background:var(--green)}.legend span b{color:var(--fg3);margin-left:4px;font-weight:400}.pill{color:var(--fg2);white-space:nowrap;align-items:center;gap:7px;font-size:12px;font-weight:500;display:inline-flex}.pill:before{content:"";background:var(--fg3);border-radius:50%;flex:none;width:6px;height:6px}.pill.b:before{background:var(--blue2)}.pill.g{color:var(--fg)}.pill.g:before{background:var(--green)}.pill.a:before{background:var(--amber)}.pill.r{color:var(--fg)}.pill.r:before{background:var(--red)}.tbl{overflow-x:auto}.tbl.assump{overflow-x:visible}.tbl.assump table{table-layout:fixed}.tbl.assump .c-name{width:34%}.tbl.assump .c-proj{width:120px}.tbl.assump .c-obs{width:auto}.tbl.assump .c-act{width:150px}.tbl.assump th:nth-child(2),.tbl.assump td:nth-child(2){text-align:center;white-space:nowrap}.tbl.assump td:nth-child(3),.tbl.assump td:nth-child(4){text-align:right}.unit{align-items:center;display:inline-flex}.unit input{text-align:center;width:54px;height:28px;padding:0 4px;font-size:13px}td.name .u{color:var(--fg3);margin-left:4px;font-weight:400}.tbl.assump td{white-space:normal;padding:12px 8px;font-size:13px}.tbl.assump td:first-child{padding-left:0}.tbl.assump td:last-child{white-space:nowrap;padding-right:0}.tbl.assump .fbtn{white-space:nowrap;padding:0 10px;font-size:13px}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:14px}th{color:var(--fg3);text-align:right;border-bottom:1px solid var(--line);white-space:nowrap;padding:12px 16px;font-size:12px;font-weight:500}td{border-bottom:1px solid var(--line);text-align:right;white-space:nowrap;color:var(--fg2);padding:14px 16px}th:first-child,td:first-child{text-align:left}td.name{color:var(--fg);font-weight:500}td.strong{color:var(--fg);font-weight:600}tr:last-child td{border-bottom:0}tr.total td{color:var(--fg);background:var(--raised);font-weight:600}.progress{background:var(--raised);border-radius:999px;height:6px;margin-top:8px;overflow:hidden}.progress i{background:var(--blue);border-radius:999px;height:100%;display:block}.rows{flex-direction:column;display:flex}.card .title+.rows{margin-top:12px}.rowi{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:12px 0;display:flex}.rowi:last-child{border-bottom:0}.rowi .t{min-width:0;color:var(--fg);flex:1;font-weight:500}.rowi .n{color:var(--fg);font-variant-numeric:tabular-nums;font-weight:600}.mono{font-family:var(--mono);color:var(--fg2);font-size:12px}.storei{cursor:pointer;border-radius:10px;margin:0 -10px;padding:12px 10px}.storei:hover{background:var(--raised)}.storei[aria-pressed=true]{background:var(--active)}.muted{color:var(--fg3)}.empty{text-align:center;color:var(--fg3);padding:40px 16px}.menu-pop{border:1px solid var(--line);z-index:20;text-align:left;background:#191919;border-radius:8px;min-width:160px;padding:4px;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 12px 32px #00000073}.menu-pop button{all:unset;box-sizing:border-box;width:100%;height:32px;color:var(--fg);cursor:pointer;white-space:nowrap;border-radius:6px;justify-content:space-between;align-items:center;padding:0 10px;font-size:14px;font-weight:400;display:flex}.menu-pop button:hover{background:var(--raised)}.menu-pop button[aria-selected=true]:after{content:"✓";color:var(--fg3);margin-left:16px;font-size:12px}.chart{height:300px;margin-top:10px;position:relative}.chart svg{width:100%;height:100%;display:block}.tip{pointer-events:none;border:1px solid var(--line);color:var(--fg2);white-space:nowrap;z-index:5;background:#1f1f1f;border-radius:10px;padding:10px 12px;font-size:12px;position:absolute;transform:translate(-50%,-110%);box-shadow:0 8px 24px #0006}.tip b{color:var(--fg);margin-bottom:4px;font-size:14px;display:block}.tip .in{color:var(--green)}.tip .out{color:var(--orange)}.seg{background:var(--btn);border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;gap:2px;min-height:32px;padding:3px;display:inline-flex}.seg button{all:unset;color:var(--fg2);cursor:pointer;border-radius:7px;align-items:center;padding:0 12px;font-size:14px;font-weight:500;display:flex}.seg button[aria-pressed=true]{background:var(--active);color:var(--fg)}.cal-dow{grid-template-columns:repeat(7,1fr);gap:6px;margin-top:14px;display:grid}.cal-dow span{color:var(--fg3);text-align:center;letter-spacing:.06em;text-transform:uppercase;padding:6px 0;font-size:11px;font-weight:500}.cal{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.cal button,.cal a{all:unset;cursor:pointer;aspect-ratio:1.15;background:var(--raised);box-sizing:border-box;border-radius:10px;flex-direction:column;justify-content:space-between;align-items:flex-start;min-width:0;padding:8px 10px;display:flex}.cal .n{color:var(--fg3);font-size:12px;font-weight:500}.cal .v{color:var(--fg);font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.cal .pos{background:#48c7741f;box-shadow:inset 0 0 0 1px #48c77459}.cal .pos .v{color:var(--green)}.cal .neg{background:#ef53501f;box-shadow:inset 0 0 0 1px #ef535059}.cal .neg .v{color:var(--red)}.cal .blank{cursor:default;background:0 0}@media (max-width:820px){.cal .v{font-size:11px}.cal button,.cal a{padding:6px}}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--fg2);font-size:12px;font-weight:500}.inl,.field input,.field select{background:var(--btn);border:1px solid var(--line);height:32px;color:var(--fg);font:14px var(--font);border-radius:8px;min-width:0;padding:0 10px}.inl{text-align:right;width:110px}.edit{flex-wrap:wrap;align-items:flex-end;gap:12px 16px;display:flex}.edit:last-child{border-bottom:0!important;padding-bottom:4px!important}.rows>div:last-child .storei{margin-bottom:0}.editor td{background:var(--raised);padding:14px 16px}.chks{flex-wrap:wrap;align-items:center;gap:14px;min-height:32px;display:flex}.chks label{color:var(--fg);align-items:center;gap:6px;font-size:14px;display:inline-flex}.chk{appearance:none;background:var(--btn);border:1px solid var(--line2);cursor:pointer;vertical-align:middle;border-radius:6px;place-items:center;width:18px;height:18px;margin:0;display:inline-grid}.chk:hover{border-color:#ffffff4d}.chk:checked{background:var(--blue);border-color:var(--blue)}.chk:checked:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:5px;height:9px;transform:translateY(-1px)rotate(45deg)}.drop{border:1px dashed var(--line);text-align:center;color:var(--fg3);cursor:pointer;border-radius:12px;margin-top:14px;padding:26px}.drop b{color:var(--fg);margin-bottom:4px;font-weight:500;display:block}.drop.over{background:var(--raised)}.err{color:var(--red);font-size:13px}.ok{color:var(--green);font-size:13px}.auth{place-items:center;min-height:100vh;padding:24px;display:grid}.auth .card{flex-direction:column;gap:14px;width:100%;max-width:400px;padding:24px;display:flex}.auth h1{letter-spacing:-.01em;margin:0;font-size:20px;font-weight:600}.auth input{height:40px}.menu{display:none}@media (max-width:820px){.frame{grid-template-columns:1fr}.side{height:auto;display:none;position:static}.side.open{display:flex}.menu{margin:12px 16px 0;display:inline-flex}.main{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}}@media (prefers-reduced-motion:no-preference){.nav a,.nav button,.fbtn,.sq,.card,.me,input,select,textarea{transition:background-color .18s,color .18s,border-color .18s,box-shadow .18s,opacity .18s,transform .18s}.nav a:active,.fbtn:active,.sq:active{transform:scale(.97)}.sq[aria-pressed=true]{transform:scale(1.04)}.page{animation:.22s both page-in}.page[data-busy=true]{opacity:.55;pointer-events:none}.side .switch{transition:opacity .18s}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}}
