:root{--bg: #0f1720;--surface: #16202b;--surface-2: #1d2936;--line: #263443;--ink: #e8eef4;--ink-2: #a9b6c4;--ink-3: #74859a;--accent: #3b82f6;--accent-2: #60a5fa;--good: #34d399;--warn: #f5b74a;--bad: #f87171;--s1: #3b82f6;--s2: #34d399;--s3: #f5b74a;--s4: #f87171;--s5: #a78bfa;--s6: #22d3ee;--s7: #f472b6;--s8: #94a3b8;--radius: 12px;--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;color-scheme:dark}@media (prefers-color-scheme: light){:root{--bg: #f4f6f9;--surface: #ffffff;--surface-2: #eef2f7;--line: #dde3ea;--ink: #111a24;--ink-2: #4a5868;--ink-3: #7b8796;--accent: #2563eb;--accent-2: #3b82f6;--good: #0f9d6b;--warn: #b7791f;--bad: #d64545;--s1: #2563eb;--s2: #0f9d6b;--s3: #d4930e;--s4: #d64545;--s5: #7c3aed;--s6: #0891b2;--s7: #db2777;--s8: #64748b;color-scheme:light}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 var(--font);-webkit-font-smoothing:antialiased}a{color:var(--accent-2)}h1,h2,h3{margin:0;line-height:1.25;text-wrap:balance}h1{font-size:22px}h2{font-size:17px}h3{font-size:15px}.muted{color:var(--ink-2)}.small{font-size:13px}.num{font-variant-numeric:tabular-nums}.app{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100%}.side{background:var(--surface);border-right:1px solid var(--line);padding:20px 14px;display:flex;flex-direction:column;gap:18px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:17px;padding:0 6px}.brand img{width:28px;height:28px}.auth-logo{position:relative;width:88%;aspect-ratio:1200 / 296;margin:4px auto 14px}.auth-logo img{display:block;width:100%;height:100%}.auth-logo .shine{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;-webkit-mask:url(/logo.png) center / 100% 100% no-repeat;mask:url(/logo.png) center / 100% 100% no-repeat}.auth-logo .shine:before{content:"";position:absolute;top:-60%;bottom:-60%;left:0;width:34%;background:linear-gradient(90deg,transparent,rgba(255,228,140,.5) 30%,rgba(255,249,225,.95) 50%,rgba(255,228,140,.5) 70%,transparent);transform:translate(-150%) skew(-22deg);animation:logo-shine 10.2s linear .35s infinite both}@keyframes logo-shine{0%{transform:translate(-150%) skew(-22deg);animation-timing-function:cubic-bezier(.45,.05,.4,1)}15.68%{transform:translate(330%) skew(-22deg)}15.69%{transform:translate(-150%) skew(-22deg);animation-timing-function:cubic-bezier(.45,.05,.4,1)}31.37%,to{transform:translate(330%) skew(-22deg)}}@media (prefers-reduced-motion: reduce){.auth-logo .shine{display:none}}.nav{display:grid;gap:2px}.nav a{color:var(--ink-2);text-decoration:none;padding:9px 10px;border-radius:8px;font-weight:500}.nav a:hover,.nav a.active{background:var(--surface-2);color:var(--ink)}.side .foot{margin-top:auto;display:grid;gap:8px;font-size:13px;color:var(--ink-3)}.main{padding:24px clamp(16px,3vw,32px) 48px;display:grid;gap:20px;align-content:start;min-width:0}.topbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}.tabbar{display:none}@media (max-width: 860px){.app{grid-template-columns:1fr}.side{display:none}.main{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}.tabbar{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:fixed;left:0;right:0;bottom:0;z-index:10;background:var(--surface);border-top:1px solid var(--line);padding:6px 8px calc(6px + env(safe-area-inset-bottom,0px))}.tabbar a{text-align:center;color:var(--ink-3);text-decoration:none;font-size:12px;padding:6px;border-radius:8px}.tabbar a.active{color:var(--ink);background:var(--surface-2)}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;display:grid;gap:14px;min-width:0;align-content:start}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}@media (max-width: 1100px){.grid2{grid-template-columns:1fr}}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;display:grid;gap:4px}.kpi .label{color:var(--ink-2);font-size:13px}.kpi .value{font-size:26px;font-weight:650;font-variant-numeric:tabular-nums}.delta{font-size:12.5px;font-weight:600}.delta.up{color:var(--good)}.delta.down{color:var(--bad)}.delta.flat{color:var(--ink-3)}button,.btn{font:600 14px var(--font);border-radius:8px;padding:9px 14px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);cursor:pointer}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button:disabled{opacity:.55;cursor:default}button.ghost{background:transparent}button.danger{color:var(--bad)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent-2);outline-offset:2px}.seg{display:inline-flex;background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:3px;gap:2px}.seg button{border:0;background:transparent;color:var(--ink-2);padding:6px 11px;font-weight:500}.seg button[aria-pressed=true]{background:var(--surface-2);color:var(--ink)}label.field{display:grid;gap:6px;font-size:13.5px;color:var(--ink-2)}input,select,textarea{font:15px var(--font);padding:10px 12px;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--ink);width:100%}.check{display:flex;gap:8px;align-items:flex-start;font-size:13.5px;color:var(--ink-2)}.check input{width:auto;margin-top:3px}.error{color:var(--bad);font-size:14px}.ok{color:var(--good);font-size:14px}.auth{min-height:100%;display:grid;place-items:center;padding:24px 16px}.auth .card{width:min(420px,100%);padding:28px}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;font-weight:600;color:var(--ink-3);font-size:12px;text-transform:uppercase;letter-spacing:.04em;padding:0 8px 8px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:8px;border-bottom:1px solid var(--line)}td.r,th.r{text-align:right;font-variant-numeric:tabular-nums}tr:last-child td{border-bottom:0}.scroll{overflow-x:auto}.recs{display:grid;gap:10px}.rec{display:grid;grid-template-columns:4px minmax(0,1fr);gap:12px;background:var(--surface-2);border-radius:10px;padding:12px 14px 12px 0}.rec:before{content:"";border-radius:0 3px 3px 0;background:var(--sev)}.rec .t{font-weight:600}.rec p{margin:2px 0 0;color:var(--ink-2);font-size:14px}.pill{font-size:12px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--surface-2);color:var(--ink-2)}.pill.active{color:var(--good)}.pill.error{color:var(--bad)}.pill.pending{color:var(--warn)}.empty{text-align:center;padding:36px 16px;display:grid;gap:12px;justify-items:center}.chart{width:100%;height:260px}.tip{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:13px}@media (max-width: 560px){.invite-row{grid-template-columns:1fr!important}}.tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line)}.tabs button{border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--ink-2);padding:8px 12px;font-weight:500}.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--accent)}.pies{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.legend{display:grid;gap:4px;font-size:13px}.legend div{display:grid;grid-template-columns:10px minmax(0,1fr) auto auto;gap:8px;align-items:center}.legend i{width:10px;height:10px;border-radius:3px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px 12px;flex-wrap:wrap}.panel-toggle{display:inline-flex;align-items:center;gap:8px;padding:2px 6px 2px 2px;margin:-2px 0 -2px -2px;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:8px;min-width:0}.panel-toggle:hover{background:var(--surface-2)}.panel-toggle h2{margin:0}.panel-toggle .chev{flex:none;color:var(--ink-3);transition:transform .18s ease}.panel.closed .chev{transform:rotate(-90deg)}.panel.closed{padding-top:12px;padding-bottom:12px}.panel-summary{margin-left:auto;text-align:right}.panel-body{display:grid;gap:14px;min-width:0}.topbar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}button.small-btn{padding:6px 11px;font-weight:500;color:var(--ink-2)}@media (max-width: 640px){.panel-summary{margin-left:24px;text-align:left;flex-basis:100%}}@media (prefers-reduced-motion: reduce){.panel-toggle .chev{transition:none}}.panel-form{display:grid;gap:14px;min-width:0}.period{position:relative}.period .seg{flex-wrap:wrap}.period-pop{position:absolute;right:0;top:calc(100% + 6px);z-index:20;width:min(340px,calc(100vw - 32px));box-shadow:0 12px 32px #00000059}.period-dates{display:grid;grid-template-columns:1fr 1fr;gap:10px}.period-dates input{padding:8px 10px;color-scheme:dark}@media (prefers-color-scheme: light){.period-dates input{color-scheme:light}}.stack{display:grid;gap:20px;align-content:start;min-width:0}.stack.stale{opacity:.55;transition:opacity .15s ease .1s;pointer-events:none}.sync-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap}button.link-btn{display:inline-flex;align-items:center;gap:5px;padding:0;border:0;background:none;color:var(--accent-2);font:inherit;font-weight:500;cursor:pointer}button.link-btn:hover:not(:disabled){text-decoration:underline}button.link-btn:disabled{color:var(--ink-3);opacity:1}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spin{animation:none}}.panel-sub{display:grid;gap:10px;padding-top:14px;border-top:1px solid var(--line);min-width:0}.panel-sub>h3{margin:0}.update-banner{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:50;display:flex;align-items:center;gap:12px;padding:10px 10px 10px 16px;border-radius:12px;max-width:calc(100vw - 32px);background:var(--surface-2);border:1px solid var(--line);box-shadow:0 12px 32px #00000059;font-size:14px}.update-banner button{padding:7px 14px}@media (max-width: 860px){.update-banner{bottom:calc(76px + env(safe-area-inset-bottom))}}tr.clickable{cursor:pointer}tr.clickable:hover td,tr.selected td{background:var(--surface-2)}.danger-zone{border-top-color:color-mix(in srgb,var(--bad) 45%,var(--line))}button.danger-btn{background:var(--bad);border-color:var(--bad);color:#fff}.panel-grip{display:inline-grid;place-items:center;width:22px;height:28px;margin:-4px -4px -4px -8px;padding:0;border:0;background:none;color:var(--ink-3);cursor:grab;touch-action:none;border-radius:6px;opacity:.55;flex:none}.panel-grip:hover,.panel-grip:focus-visible{opacity:1;background:var(--surface-2)}.panel.dragging{box-shadow:0 16px 40px #00000073;outline:1px solid var(--accent-2);position:relative;z-index:5}.panel.dragging .panel-grip{cursor:grabbing;opacity:1}body:has(.panel.dragging){-webkit-user-select:none;user-select:none;cursor:grabbing}.panel-head>.panel-toggle{margin-right:auto}
