:root{--st-study:#6D3FD1;--st-study-bg:#F2ECFE;--st-plan:#475569;--st-plan-bg:#EEF1F5;--st-mon:#0E7C74;--st-mon-bg:#E2F5F3;--st-ice:#0369A1;--st-ice-bg:#E0F2FE;--st-ice-bar:#7DD3FC;--brand-600:#1F5EFF;--brand-700:#1747C9;--brand-50:#EEF3FF;--navy-900:#0F1B33;--navy-800:#182844;--navy-700:#22355A;--surface:#FFFFFF;--surface-2:#FAFBFC;--bg:#F6F7F9;--border:#E3E6EB;--border-strong:#CBD1DA;--text-1:#111827;--text-2:#6B7280;--text-3:#9CA3AF;--green:#16A34A;--green-bg:#E8F6EE;--yellow:#D97706;--yellow-bg:#FDF3E4;--red:#DC2626;--red-bg:#FDECEC;--gray:#9CA3AF;--gray-bg:#F1F2F4;--c1:#1F5EFF;--c2:#14B8A6;--c3:#F97316;--c4:#8B5CF6;--c5:#0EA5E9;--c6:#EC4899;--shadow:0 8px 24px rgba(15,27,51,.14),0 2px 6px rgba(15,27,51,.08);--r-btn:6px;--r-card:10px;--font:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--mono:"JetBrains Mono",ui-monospace,"Cascadia Mono",Consolas,monospace;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--st-study:#B9A0FF;--st-study-bg:#2A2147;--st-plan:#A8B3C4;--st-plan-bg:#1E2533;--st-mon:#5EEAD4;--st-mon-bg:#11302D;--st-ice:#7DD3FC;--st-ice-bg:#0B2A3D;--st-ice-bar:#38BDF8;--brand-600:#5B8CFF;--brand-700:#7BA2FF;--brand-50:#16213D;--navy-900:#0B1220;--navy-800:#121B2E;--navy-700:#1B2740;--surface:#111827;--surface-2:#0F1623;--bg:#0B0F17;--border:#273142;--border-strong:#364257;--text-1:#F3F4F6;--text-2:#9CA3AF;--text-3:#6B7280;--green:#22C55E;--green-bg:#0F2A1B;--yellow:#F59E0B;--yellow-bg:#2D2210;--red:#EF4444;--red-bg:#2E1416;--gray:#6B7280;--gray-bg:#1C2433;--shadow:0 8px 24px rgba(0,0,0,.5);color-scheme:dark}}:root[data-theme=dark]{--st-study:#B9A0FF;--st-study-bg:#2A2147;--st-plan:#A8B3C4;--st-plan-bg:#1E2533;--st-mon:#5EEAD4;--st-mon-bg:#11302D;--st-ice:#7DD3FC;--st-ice-bg:#0B2A3D;--st-ice-bar:#38BDF8;--brand-600:#5B8CFF;--brand-700:#7BA2FF;--brand-50:#16213D;--navy-900:#0B1220;--navy-800:#121B2E;--navy-700:#1B2740;--surface:#111827;--surface-2:#0F1623;--bg:#0B0F17;--border:#273142;--border-strong:#364257;--text-1:#F3F4F6;--text-2:#9CA3AF;--text-3:#6B7280;--green:#22C55E;--green-bg:#0F2A1B;--yellow:#F59E0B;--yellow-bg:#2D2210;--red:#EF4444;--red-bg:#2E1416;--gray:#6B7280;--gray-bg:#1C2433;--shadow:0 8px 24px rgba(0,0,0,.5);color-scheme:dark}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--font);font-size:14px;line-height:20px;color:var(--text-1);background:var(--bg);-webkit-font-smoothing:antialiased}a{color:var(--brand-600);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:22px;line-height:30px}h1,h2{font-weight:600;margin:0}h2{font-size:18px;line-height:26px}h3{font-size:15px;line-height:22px;font-weight:600}h3,p{margin:0}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--brand-600);outline-offset:2px}.mono{font-family:var(--mono);font-size:13px}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.muted{color:var(--text-2)}.caption,.small{font-size:12px;line-height:16px}.caption{font-weight:500;color:var(--text-2)}.ellipsis,.nowrap{white-space:nowrap}.ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-toggle{background:none;border:0;padding:4px;cursor:pointer;display:inline-flex;align-items:center;border-radius:999px}.theme-toggle-track{position:relative;width:44px;height:24px;border-radius:999px;background:var(--gray-bg);border:1px solid var(--border-strong);transition:background .15s}.theme-toggle-thumb{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--surface);color:var(--yellow);display:grid;place-items:center;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .15s}.theme-toggle.on .theme-toggle-track{background:var(--brand-600);border-color:var(--brand-600)}.theme-toggle.on .theme-toggle-thumb{transform:translateX(20px);color:var(--brand-600)}@media (prefers-reduced-motion:reduce){.theme-toggle-thumb,.theme-toggle-track{transition:none}}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.row{gap:8px}.row,.row-12{display:flex;align-items:center}.row-12{gap:12px}.col{gap:8px}.col,.stack-16{display:flex;flex-direction:column}.stack-16{gap:16px}.stack-24{display:flex;flex-direction:column;gap:24px}.spacer{flex:1 1}.wrap{flex-wrap:wrap}.grid{display:grid;grid-gap:16px;gap:16px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g6{grid-template-columns:repeat(6,minmax(0,1fr))}@media (max-width:1100px){.g3,.g4,.g6{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:768px){.g2,.g3,.g4,.g6{grid-template-columns:minmax(0,1fr)}}.shell{display:flex;min-height:100vh}.sidebar{width:240px;flex:none;background:var(--navy-900);color:#C9D3E6;display:flex;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;height:100vh;transition:width .15s;z-index:30}.sidebar.collapsed{width:64px}.sidebar .logo{height:56px;display:flex;align-items:center;gap:10px;padding:0 18px;color:#fff;font-weight:700;font-size:16px;letter-spacing:.2px;border-bottom:1px solid rgba(255,255,255,.06)}.sidebar .logo .mark{width:28px;height:28px;border-radius:8px;background:var(--brand-600);display:grid;place-items:center;flex:none}.sidebar nav{padding:12px 8px;display:flex;flex-direction:column;gap:2px;flex:1 1;overflow-y:auto}.sidebar nav a{display:flex;align-items:center;gap:12px;height:40px;padding:0 12px;border-radius:8px;color:#C9D3E6;font-weight:500;text-decoration:none;white-space:nowrap;overflow:hidden}.sidebar nav a:hover{background:var(--navy-800);color:#fff}.sidebar nav a.active{background:var(--navy-700);color:#fff;box-shadow:inset 3px 0 0 var(--brand-600)}.sidebar nav a svg{flex:none}.sidebar .nav-section{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:#7F8BA3;padding:14px 12px 6px}.sidebar.collapsed .label,.sidebar.collapsed .nav-section{display:none}.sidebar .collapse-btn{position:absolute;top:16px;right:-12px;width:24px;height:24px;padding:0;border-radius:50%;z-index:31;border:1px solid var(--border-strong);background:var(--surface);color:var(--text-2);cursor:pointer;display:grid;place-items:center;box-shadow:0 1px 3px rgba(0,0,0,.2)}.sidebar .company-logo-slot{flex:none;padding:16px 18px 20px;border-top:1px solid rgba(255,255,255,.06);color:#fff;opacity:.9;display:flex;justify-content:center}.sidebar .company-logo-slot .company-logo{display:block;max-width:100%;height:auto}.sidebar.collapsed .company-logo-slot{display:none}.sidebar .collapse-btn:hover{background:var(--brand-600);border-color:var(--brand-600);color:#fff}.main{flex:1 1;min-width:0;display:flex;flex-direction:column}.topbar{height:56px;flex:none;background:var(--surface);border-bottom:1px solid var(--border);gap:12px;padding:0 24px;position:-webkit-sticky;position:sticky;top:0;z-index:20}.topbar,.topbar .search{display:flex;align-items:center}.topbar .search{flex:0 1 460px;height:36px;gap:8px;padding:0 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text-2);cursor:pointer;text-align:left}.topbar .search kbd{margin-left:auto;font-family:var(--font);font-size:11px;border:1px solid var(--border);border-radius:4px;padding:0 5px;background:var(--surface)}.icon-btn{width:36px;height:36px;display:grid;place-items:center;border:0;background:transparent;border-radius:8px;cursor:pointer;color:var(--text-2);position:relative}.icon-btn:hover{background:var(--bg);color:var(--text-1)}.icon-btn .dot{position:absolute;top:5px;right:4px;min-width:16px;height:16px;border-radius:999px;background:var(--red);color:#fff;font-size:10px;line-height:16px;text-align:center;padding:0 4px;font-weight:600}.content{padding:16px 24px 32px;flex:1 1;min-width:0}.breadcrumb{display:flex;align-items:center;gap:6px;font-size:12px;margin-bottom:12px;flex-wrap:wrap}.breadcrumb,.breadcrumb a{color:var(--text-2)}.page-head{display:flex;align-items:flex-start;gap:16px;margin-bottom:16px;flex-wrap:wrap}.page-head .titles{flex:1 1;min-width:240px}.page-head .sub{color:var(--text-2);margin-top:2px}.menu-burger{display:none}@media (max-width:1024px){.sidebar{position:fixed;left:0;top:0;transform:translateX(-100%);transition:transform .2s}.sidebar.open{transform:none;box-shadow:var(--shadow)}.sidebar.collapsed{width:240px}.sidebar.collapsed .label,.sidebar.collapsed .nav-section{display:initial}.sidebar .collapse-btn{display:none}.menu-burger{display:grid}.content{padding:16px}.topbar{padding:0 16px}}.scrim{position:fixed;inset:0;background:rgba(15,27,51,.4);z-index:25}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card)}.card-pad{padding:16px}.card-head{display:flex;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid var(--border)}.card-head h3{flex:1 1}.card-body,.kpi{padding:16px}.kpi{display:flex;flex-direction:column;gap:4px;min-height:108px}.kpi .kpi-label{font-size:12px;font-weight:500;color:var(--text-2);display:flex;align-items:center;gap:6px}.kpi .kpi-value{font-size:28px;line-height:36px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kpi .kpi-foot{font-size:12px;color:var(--text-2);display:flex;align-items:center;gap:6px}a.card.kpi{color:inherit;text-decoration:none}a.card.kpi:hover{border-color:var(--brand-600)}.btn{height:36px;padding:0 14px;border-radius:var(--r-btn);border:1px solid var(--border-strong);background:var(--surface);color:var(--text-1);font-weight:500;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}.btn,.btn:hover{text-decoration:none}.btn:hover{background:var(--bg)}.btn.primary{background:var(--brand-600);border-color:var(--brand-600);color:#fff}.btn.primary:hover{background:var(--brand-700)}.btn.danger{color:var(--red);border-color:var(--red)}.btn.danger.solid{background:var(--red);color:#fff}.btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover{background:var(--bg)}.btn.sm{height:28px;padding:0 10px;font-size:13px}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.seg{display:inline-flex;border:1px solid var(--border-strong);border-radius:var(--r-btn);overflow:hidden}.seg button{height:32px;padding:0 12px;border:0;background:var(--surface);cursor:pointer;font-weight:500;color:var(--text-2);border-right:1px solid var(--border)}.seg button:last-child{border-right:0}.seg button.on{background:var(--brand-50);color:var(--brand-600)}.input,.select,.textarea{height:36px;padding:0 10px;border:1px solid var(--border-strong);border-radius:var(--r-btn);background:var(--surface);color:var(--text-1);min-width:0}.textarea{height:auto;padding:8px 10px;resize:vertical;min-height:72px}.input:focus,.select:focus,.textarea:focus{outline:2px solid var(--brand-600);outline-offset:-1px;border-color:var(--brand-600)}.input.invalid,.select.invalid,.textarea.invalid{border-color:var(--red)}.field{display:flex;flex-direction:column;gap:4px}.field>label{font-size:12px;font-weight:500;color:var(--text-2)}.field .err{color:var(--red);font-size:12px}.field .hint{color:var(--text-2);font-size:12px}.check{gap:8px;cursor:pointer}.badge,.check{display:inline-flex;align-items:center}.badge{gap:4px;height:22px;padding:0 8px;border-radius:999px;font-size:12px;font-weight:500;white-space:nowrap;background:var(--gray-bg);color:var(--text-2)}.badge.green{background:var(--green-bg);color:var(--green)}.badge.yellow{background:var(--yellow-bg);color:var(--yellow)}.badge.red{background:var(--red-bg);color:var(--red)}.badge.blue{background:var(--brand-50);color:var(--brand-600)}.badge.outline{background:transparent;border:1px solid var(--border-strong)}.dot-s{width:8px;height:8px;border-radius:999px;display:inline-block;flex:none}.table-wrap{overflow-x:auto}table.tbl{width:100%;border-collapse:collapse;font-size:13px;line-height:18px}.tbl th{text-align:left;font-weight:600;font-size:12px;color:var(--text-2);padding:8px 12px;border-bottom:1px solid var(--border);background:var(--surface-2);white-space:nowrap;position:-webkit-sticky;position:sticky;top:0;z-index:1}.tbl th.sortable{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.tbl th.sortable:hover{color:var(--text-1)}.tbl td{padding:8px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.tbl tbody tr:hover{background:var(--brand-50)}.tbl tr.clickable{cursor:pointer}.tbl tr.selected{background:var(--brand-50)}.tbl tfoot td{font-weight:600;background:var(--surface-2)}.bar{height:6px;background:var(--gray-bg);overflow:hidden;position:relative;min-width:60px}.bar,.bar>span{border-radius:999px}.bar>span{display:block;height:100%;background:var(--brand-600)}.bar .plan{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--text-1)}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px;overflow-x:auto}.tabs a,.tabs button{height:40px;padding:0 14px;display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--text-2);font-weight:500;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;text-decoration:none;white-space:nowrap}.tabs a:hover,.tabs button:hover{color:var(--text-1);text-decoration:none}.tabs .on{color:var(--brand-600);border-bottom-color:var(--brand-600)}.overlay{position:fixed;inset:0;background:rgba(15,27,51,.45);z-index:60;display:flex;align-items:flex-start;justify-content:center;padding:8vh 16px 16px}.modal{background:var(--surface);border-radius:12px;box-shadow:var(--shadow);width:100%;max-width:560px;max-height:84vh;display:flex;flex-direction:column}.modal.lg{max-width:820px}.modal-head{display:flex;align-items:center;gap:8px;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-head h2{flex:1 1;font-size:17px}.modal-body{padding:20px;overflow-y:auto}.modal-foot{padding:12px 20px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px}.drawer-overlay{position:fixed;inset:0;background:rgba(15,27,51,.3);z-index:55}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(520px,100vw);background:var(--surface);box-shadow:var(--shadow);z-index:56;display:flex;flex-direction:column}.drawer-head{display:flex;align-items:flex-start;gap:8px;padding:16px 20px;border-bottom:1px solid var(--border)}.drawer-body{padding:16px 20px;overflow-y:auto;flex:1 1}.drawer-foot{padding:12px 20px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end}.popover{position:absolute;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);z-index:50;min-width:220px;padding:6px}.popover .item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:0;background:transparent;border-radius:6px;cursor:pointer;text-align:left;color:var(--text-1);text-decoration:none}.popover .item:hover{background:var(--bg);text-decoration:none}.popover hr{border:0;border-top:1px solid var(--border);margin:6px 0}.palette{width:100%;max-width:640px;background:var(--surface);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}.palette input{width:100%;height:52px;border:0;border-bottom:1px solid var(--border);padding:0 18px;font-size:16px;background:transparent;outline:none}.palette .results{max-height:420px;overflow-y:auto;padding:6px}.palette .group{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-2);padding:10px 12px 4px}.palette .res{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:6px;cursor:pointer;color:var(--text-1)}.palette .res.on,.palette .res:hover{background:var(--brand-50)}.toasts{position:fixed;bottom:20px;right:20px;flex-direction:column;z-index:100}.toast,.toasts{display:flex;gap:8px}.toast{background:var(--navy-900);color:#fff;padding:10px 14px;border-radius:8px;box-shadow:var(--shadow);align-items:center;min-width:240px;max-width:420px;font-size:13px;animation:tin .18s ease-out}.toast.error{background:var(--red)}@keyframes tin{0%{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}.sk{background:linear-gradient(90deg,var(--gray-bg) 25%,var(--border) 37%,var(--gray-bg) 63%);background-size:400% 100%;animation:sk 1.3s ease infinite;border-radius:6px}@keyframes sk{0%{background-position:100% 50%}to{background-position:0 50%}}.empty{padding:40px 16px;text-align:center;color:var(--text-2);flex-direction:column;align-items:center}.alert,.empty{display:flex;gap:10px}.alert{padding:10px 14px;border-radius:8px;align-items:flex-start;font-size:13px}.alert.red{background:var(--red-bg);color:var(--red)}.alert.yellow{background:var(--yellow-bg);color:var(--yellow)}.alert.blue{background:var(--brand-50);color:var(--brand-600)}.alert.green{background:var(--green-bg);color:var(--green)}.chart{width:100%;display:block;overflow:visible}.chart text{fill:var(--text-2);font-size:11px;font-family:var(--font)}.chart .grid-line{stroke:var(--border);stroke-width:1}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--text-2)}.legend span{display:inline-flex;align-items:center;gap:6px}.tip{position:fixed;pointer-events:none;background:var(--navy-900);color:#fff;padding:6px 10px;border-radius:6px;z-index:120;box-shadow:var(--shadow);white-space:nowrap}.avatar,.tip{font-size:12px}.avatar{width:32px;height:32px;border-radius:999px;display:inline-grid;place-items:center;font-weight:600;color:#fff;background:var(--brand-600);flex:none}.avatar.sm{width:24px;height:24px;font-size:10px}.login-page{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;grid-template-columns:11fr 9fr}.login-hero{position:relative;overflow:hidden;background:#0F1B33;color:#DDE5F5;padding:64px;display:flex;flex-direction:column;justify-content:flex-end}.login-hero-art{position:absolute;inset:0;width:100%;height:100%}.login-hero-title{position:relative;margin:0;max-width:540px;font-size:40px;line-height:48px;font-weight:600;letter-spacing:-.02em;color:#fff;text-wrap:balance}.login-form-wrap{display:grid;place-items:center;padding:32px 16px;background:var(--surface)}.admin-access{position:fixed;right:10px;bottom:10px;width:24px;height:24px;display:grid;place-items:center;border:0;border-radius:6px;background:transparent;color:var(--text-3,var(--text-2));opacity:.35;cursor:pointer}.admin-access:focus-visible,.admin-access:hover,.admin-access[aria-expanded=true]{opacity:.9}.login-form{width:100%;max-width:380px;display:flex;flex-direction:column;gap:16px}@media (max-width:900px){.login-page{grid-template-columns:1fr}.login-hero{display:none}}.badge-btn{display:inline-flex;align-items:center;gap:2px;padding:0;border:0;background:none;cursor:pointer;color:var(--text-2);border-radius:999px}.badge-btn:hover .badge{filter:brightness(.97);box-shadow:inset 0 0 0 1px currentColor}.badge-btn:focus-visible{outline:2px solid var(--brand-600);outline-offset:2px}.sc{gap:16px}.sc,.sc-dim{display:flex;flex-direction:column}.sc-dim{gap:6px}.sc-opts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:6px;gap:6px}.sc-opt{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;padding:8px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text-1);font:inherit;font-size:12px;line-height:16px;text-align:left;cursor:pointer}.sc-opt:hover:not(:disabled),.sc-opt[aria-checked=true]{border-color:var(--brand-600)}.sc-opt[aria-checked=true]{background:var(--brand-50);box-shadow:inset 0 0 0 1px var(--brand-600)}.sc-opt:disabled{cursor:default}.sc-opt:focus-visible{outline:2px solid var(--brand-600);outline-offset:2px}.sc-dim.invalid .sc-opt{border-color:var(--red)}.sc-n{font-size:16px;line-height:20px;font-weight:600}.sc-sum{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-top:12px;border-top:1px solid var(--border)}.sc-sel.chg{border-color:var(--brand-600);background-color:var(--brand-50)}@media (max-width:720px){.sc-opts{grid-template-columns:1fr}}.badge.st-estudo{background:var(--st-study-bg);color:var(--st-study)}.badge.st-plan{background:var(--st-plan-bg);color:var(--st-plan)}.badge.st-exec{background:var(--brand-50);color:var(--brand-600)}.badge.st-mon{background:var(--st-mon-bg);color:var(--st-mon)}.badge.st-done{background:var(--green-bg);color:var(--green)}.badge.st-ice{background:var(--st-ice-bg);color:var(--st-ice)}.badge.st-cancel{background:var(--red-bg);color:var(--red)}