@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/archivo-vietnamese-wght-normal-XAtsl5Q_.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/archivo-latin-ext-wght-normal-C4zznr8T.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/archivo-latin-wght-normal-E0tuGl4L.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#0b1220;--surface:#111e31;--surface-2:#17263c;--chrome:#0f1b2e;--ink:#e9eef5;--ink-2:#a7b4c6;--muted:#7c8aa0;--hairline:#22334b;--border:#94afd124;--teal:#1fb6a6;--teal-bright:#57c5c0;--teal-deep:#17a396;--orange:#f58220;--critical:#e66767;--blue:#3987e5;--focus:#57c5c0a6}*{box-sizing:border-box}html{background:var(--page)}body{background:var(--page);color:var(--ink);margin:0;font-family:Archivo Variable,system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px;line-height:1.45}::selection{background:#1fb6a652}h1,h2,h3{letter-spacing:-.01em;margin:0 0 8px}h2{font-size:19px;font-weight:650}h3{color:var(--ink-2);text-transform:uppercase;letter-spacing:.06em;font-size:13px;font-weight:600}.shell main{max-width:1500px;margin:0 auto;padding:18px 24px 64px}.page>*+*{margin-top:16px}@media (prefers-reduced-motion:no-preference){.page{animation:.28s cubic-bezier(.16,1,.3,1) page-in}@keyframes page-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}}.topnav{background:var(--chrome);border-bottom:1px solid var(--hairline);z-index:20;align-items:center;gap:2px;height:52px;padding:0 20px;display:flex;position:sticky;top:0}.topnav .brand{align-items:center;gap:10px;margin-right:20px;display:flex}.brand-logo{height:30px;display:block}.brand-name{letter-spacing:-.01em;border-left:1px solid var(--hairline);color:var(--ink);white-space:nowrap;padding-left:12px;font-size:14.5px;font-weight:650}.topnav a{color:var(--ink-2);border-radius:7px;padding:6px 11px;font-weight:500;text-decoration:none}.topnav a:hover{background:var(--surface-2);color:var(--ink)}.topnav a.active{color:var(--teal-bright);background:#1fb6a61a;font-weight:600}.spacer{flex:1}.user-chip{color:var(--muted);margin-right:6px;font-size:12.5px}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 16px}.two-col{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (width<=1100px){.two-col{grid-template-columns:1fr}}.center-note{text-align:center;color:var(--muted);padding:80px 0}.empty-note{color:var(--ink-2)}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.toolbar h2{margin:0 10px 0 0}.hint{color:var(--muted);margin:2px 0 0;font-size:12.5px}.btn{border:1px solid var(--border);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:7px;padding:6px 12px;font-family:inherit;font-size:13px;font-weight:500;text-decoration:none;display:inline-block}.btn:hover{background:var(--surface-2);border-color:#94afd147}.btn.primary{background:var(--teal);border-color:var(--teal);color:#06201d;font-weight:600}.btn.primary:hover{background:#2bc4b4;border-color:#2bc4b4}.btn.ghost{color:var(--ink-2);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--surface-2);color:var(--ink)}.btn.danger{color:var(--critical)}.btn:disabled{opacity:.45;cursor:default}input,select{border:1px solid var(--hairline);background:var(--chrome);color:var(--ink);border-radius:7px;padding:6px 9px;font-family:inherit;font-size:13px}input::placeholder{color:var(--muted)}input:focus,select:focus,.btn:focus-visible,.chip:focus-visible{outline:2px solid var(--focus);outline-offset:0}label{color:var(--ink-2);flex-direction:column;gap:4px;font-size:12.5px;display:flex}.chip-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.chip{border:1px solid var(--hairline);cursor:pointer;color:var(--ink-2);background:0 0;border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-family:inherit;font-size:12.5px;display:inline-flex}.chip:hover{background:var(--surface-2);color:var(--ink)}.chip.active{background:var(--teal);color:#06201d;border-color:var(--teal);font-weight:600}.chip.toggle input{accent-color:var(--teal);margin:0}.chip .chip-x{cursor:pointer;color:var(--muted);background:0 0;border:0;padding:0;font-size:13px;line-height:1}.chip .chip-x:hover{color:var(--critical)}.tiles{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}@media (width<=1000px){.tiles{grid-template-columns:repeat(2,1fr)}}.tile{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:2px;padding:12px 14px;display:flex}.tile-label{color:var(--muted);font-size:12px}.tile-value{letter-spacing:-.02em;font-size:27px;font-weight:650}.tile-value.small{font-size:18px}.tile-value.bad{color:var(--critical)}.tile-sub{color:var(--muted);font-size:12px}.data-table{border-collapse:collapse;width:100%;font-size:13px}.data-table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--hairline);white-space:nowrap;padding:6px 8px;font-weight:600}.data-table td{border-bottom:1px solid #94afd114;padding:6px 8px}.data-table tbody tr:hover td{background:#94afd10a}.data-table .num,.data-table td.num,.data-table th.num{text-align:right;font-variant-numeric:tabular-nums}.data-table .strong td,td.strong{font-weight:600}.data-table td.over{color:var(--critical);font-weight:600}.data-table.dense th,.data-table.dense td{padding:4px 6px;font-size:12px}.table-scroll{overflow-x:auto}.row-actions{white-space:nowrap;text-align:right}.muted{color:var(--muted)}.cat-chip{border-radius:5px;padding:2px 8px;font-size:12px;font-weight:600}.cat-cell{font-weight:600}.cat-Secured{color:#82b5f0;background:#3987e529}.cat-Overhead{color:#f09c63;background:#e06a1f29}.cat-Forecast{color:#4fc9bc;background:#17a39629}.cat-Upside{color:#ddb35e;background:#c9850029}.cat-Lost{color:var(--muted);background:#94afd11a}.grid-wrap{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:4px}.total-row{background:var(--surface-2);font-weight:650}.name-cell{font-weight:600}.num-cell{text-align:right;font-variant-numeric:tabular-nums}.month-header .ag-header-cell-label{justify-content:flex-end}.save-state{color:var(--muted);font-size:12.5px}.save-state.saving{color:var(--teal-bright)}.save-state.error{color:var(--critical);font-weight:600}.form-card{max-width:760px}.form-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}@media (width<=900px){.form-grid{grid-template-columns:repeat(2,1fr)}}.form-actions{gap:8px;margin-top:12px;display:flex}.inline-form{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.import-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.preview-box{border:1px solid var(--hairline);border-radius:8px;margin-top:10px;padding:10px 12px;font-size:13px}.preview-box ul{color:var(--ink-2);margin:6px 0;padding-left:18px}.dep-row{align-items:center;gap:12px;padding:5px 0;display:flex}.error-box{color:#f0908f;background:#e667671f;border:1px solid #e6676759;border-radius:7px;padding:8px 10px;font-size:13px}.warn-box{color:#f5a35c;background:#f582201a;border:1px solid #f5822052;border-radius:7px;margin-top:6px;padding:6px 10px;font-size:12.5px}.ok-box{color:#4fc9bc;background:#1fb6a61a;border:1px solid #1fb6a652;border-radius:7px;margin-top:8px;padding:8px 10px;font-size:13px}.login-wrap{background:radial-gradient(1100px 520px at 50% -12%, #0f2742e6, transparent 70%), var(--page);place-items:center;min-height:100vh;padding:24px;display:grid}.login-box{flex-direction:column;align-items:center;gap:26px;display:flex}.login-logo{width:190px;display:block}.login-card{flex-direction:column;gap:12px;width:360px;max-width:100%;padding:26px;display:flex}.login-card h1{margin:0;font-size:21px;font-weight:650}.login-card p{margin:0 0 6px}@media (prefers-reduced-motion:no-preference){.login-box{animation:.4s cubic-bezier(.16,1,.3,1) page-in}}*{scrollbar-width:thin;scrollbar-color:#2c3f5c transparent}
