@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-cyrillic-ext-wght-normal-DOFToQv1.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-cyrillic-wght-normal-DayYxulF.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-math-wght-normal-Bl4ZGkZl.woff2) format("woff2-variations");unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-symbols-wght-normal-DxQzqQfC.woff2) format("woff2-variations");unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-vietnamese-wght-normal-BBxOatbv.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-latin-ext-wght-normal-QAhDxQuo.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-latin-wght-normal-Dun_Rd-l.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #f3f5fa;--surface: #ffffff;--surface-2: #f2f4fa;--surface-3: #e5e9f3;--text: #11162b;--text-2: #4d5570;--text-3: #646c86;--line: #e4e8f1;--line-2: #cdd3e2;--accent: #2b4ee6;--accent-hover: #2340c8;--accent-soft: #e8ecfe;--accent-text: #2340c8;--on-accent: #fff;--primary: #ffd21e;--primary-hover: #ffc400;--primary-line: #e8b900;--on-primary: #11162b;--red: #c4281c;--red-soft: #fdeceb;--amber: #a35f00;--amber-soft: #fff3d6;--green: #0f7a4a;--green-soft: #def5e8;--blue: #086a91;--blue-soft: #dff3fb;--violet: #6333d6;--violet-soft: #eee8fd;--gray-soft: #eceff6;--chart-1: #2b4ee6;--chart-2: #c56a08;--tab-on: #11162b;--red-deep: #7a1209;--chart-track: #e5e9f3;--shadow-card: 0 1px 2px rgba(17, 22, 43, .05);--shadow-pop: 0 12px 36px rgba(17, 22, 43, .18), 0 2px 6px rgba(17, 22, 43, .08);--ink: #11162b;--ink-2: #1c2340;--ink-3: #2a3358;--ink-text: #c6cce0;--ink-text-2: #8089a8;--radius: 12px;--radius-sm: 8px;--row: 42px;--sidebar: 236px;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0b0f1f;--surface: #141a2e;--surface-2: #1b2239;--surface-3: #262e49;--text: #eef0f8;--text-2: #aab1c8;--text-3: #8f97b3;--line: #232a43;--line-2: #363f5e;--accent: #7f97ff;--accent-hover: #9aadff;--accent-soft: #1d2650;--accent-text: #a3b4ff;--on-accent: #0b0f1f;--primary: #ffd21e;--primary-hover: #ffdd55;--primary-line: #ffd21e;--on-primary: #11162b;--red: #ff8277;--red-soft: #3c1a1b;--amber: #f0b050;--amber-soft: #36270f;--green: #5ed39a;--green-soft: #12301f;--blue: #5cc3ea;--blue-soft: #10293a;--violet: #b49dff;--violet-soft: #271f47;--gray-soft: #232a43;--chart-1: #6a86f8;--chart-2: #c47a1f;--tab-on: #2f3961;--red-deep: #ffb4ad;--chart-track: #262e49;--shadow-card: none;--shadow-pop: 0 12px 36px rgba(0,0,0,.6);color-scheme:dark}}:root[data-theme=dark]{--bg: #0b0f1f;--surface: #141a2e;--surface-2: #1b2239;--surface-3: #262e49;--text: #eef0f8;--text-2: #aab1c8;--text-3: #8f97b3;--line: #232a43;--line-2: #363f5e;--accent: #7f97ff;--accent-hover: #9aadff;--accent-soft: #1d2650;--accent-text: #a3b4ff;--on-accent: #0b0f1f;--primary: #ffd21e;--primary-hover: #ffdd55;--primary-line: #ffd21e;--on-primary: #11162b;--red: #ff8277;--red-soft: #3c1a1b;--amber: #f0b050;--amber-soft: #36270f;--green: #5ed39a;--green-soft: #12301f;--blue: #5cc3ea;--blue-soft: #10293a;--violet: #b49dff;--violet-soft: #271f47;--gray-soft: #232a43;--chart-1: #6a86f8;--chart-2: #c47a1f;--tab-on: #2f3961;--red-deep: #ffb4ad;--chart-track: #262e49;--shadow-card: none;--shadow-pop: 0 12px 36px rgba(0,0,0,.6);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:400 14px/1.45 Onest Variable,Onest,system-ui,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}h1,h2,h3,h4{margin:0;font-weight:650;letter-spacing:-.015em}p{margin:0}button,input,select,textarea{font:inherit;color:inherit}.num{font-variant-numeric:tabular-nums}.muted{color:var(--text-2)}.faint{color:var(--text-3)}.small{font-size:12.5px}.bold{font-weight:600}.red{color:var(--red)}.green{color:var(--green)}.amber{color:var(--amber)}.nowrap{white-space:nowrap}.right{text-align:right}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row{display:flex;align-items:center;gap:8px}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.grow{flex:1;min-width:0}.stack{display:flex;flex-direction:column;gap:12px}.stack.tight{gap:4px}.stack.loose{gap:20px}.link{color:var(--accent-text);cursor:pointer;background:none;border:0;padding:0}.link:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.shell{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);height:100%}.sidebar{background:var(--ink);color:var(--ink-text);display:flex;flex-direction:column;min-height:0}.brand{display:flex;align-items:center;gap:10px;padding:16px 18px 12px;font-weight:700;font-size:17px;letter-spacing:-.02em;color:#fff}.brand{--logo: var(--primary)}.brand svg{flex:none}.nav{flex:1;overflow-y:auto;padding:2px 10px 12px;scrollbar-width:thin;scrollbar-color:var(--ink-3) transparent}.nav-group{padding:14px 10px 5px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-text-2)}.nav a{position:relative;display:flex;align-items:center;gap:10px;height:34px;padding:0 10px;border-radius:var(--radius-sm);color:var(--ink-text);font-weight:500;margin-bottom:1px}.nav a:hover{background:var(--ink-2);color:#fff}.nav a.active{background:var(--ink-3);color:#fff}.nav a.active:before{content:"";position:absolute;left:-10px;top:7px;bottom:7px;width:3px;border-radius:0 3px 3px 0;background:var(--primary)}.nav a svg{width:17px;height:17px;flex:none;opacity:.85}.nav a.active svg{color:var(--primary);opacity:1}.nav .count{margin-left:auto;font-size:11.5px;font-weight:650;background:#ffd21e29;color:var(--primary);border-radius:9px;padding:0 7px;line-height:19px;font-variant-numeric:tabular-nums}.nav .count.red{background:#e5483a;color:#fff}.sidebar-foot{border-top:1px solid var(--ink-2);padding:8px 10px}.user-btn{display:flex;align-items:center;gap:10px;width:100%;padding:6px 8px;border:0;background:none;border-radius:var(--radius-sm);cursor:pointer;text-align:left;color:#fff}.user-btn:hover{background:var(--ink-2)}.user-btn .faint{color:var(--ink-text-2)}.avatar{width:28px;height:28px;border-radius:50%;background:var(--ink-3);color:var(--primary);display:grid;place-items:center;font-size:11px;font-weight:650;flex:none}.sidebar .menu{color:var(--text)}.main{min-width:0;overflow-y:auto;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:8px;height:56px;padding:0 24px;background:var(--bg);flex:none}.top-search{display:flex;align-items:center;gap:9px;width:min(420px,100%);height:36px;padding:0 10px 0 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text-3);cursor:text;font-size:13.5px;text-align:left}.top-search:hover{border-color:var(--line-2)}.top-search svg{width:16px;height:16px;flex:none}.top-search kbd{margin-left:auto;font:500 11px/18px inherit;padding:0 6px;border-radius:5px;background:var(--surface-2);color:var(--text-3)}.topbar .spacer{flex:1}.topbar .btn.icon{width:36px;height:36px}.topbar .btn.primary{height:36px}.top-menu{display:none!important}.banner{padding:7px 24px;font-size:13px;background:var(--amber-soft);color:var(--amber);display:flex;gap:12px;align-items:center;justify-content:center;flex:none}.banner .link{color:inherit;font-weight:600;text-decoration:underline}.banner.red{background:var(--red-soft);color:var(--red)}.page{padding:4px 24px 40px;max-width:1680px;width:100%}.page-head{display:flex;align-items:center;gap:12px;margin-bottom:14px;min-height:36px;flex-wrap:wrap}.page-head h1{font-size:22px;font-weight:700;letter-spacing:-.025em}.page-head .actions{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 13px;border-radius:var(--radius-sm);border:1px solid var(--line-2);background:var(--surface);font-weight:550;font-size:13.5px;cursor:pointer;white-space:nowrap}.btn:hover:not(:disabled){background:var(--surface-2)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn svg{width:15px;height:15px;flex:none}.btn.primary{background:var(--primary);border-color:var(--primary-line);color:var(--on-primary);font-weight:650}.btn.primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-line)}.btn.ink{background:var(--tab-on);border-color:var(--tab-on);color:#fff}.btn.ink:hover:not(:disabled){background:var(--ink-3);border-color:var(--ink-3)}.btn.danger{color:var(--red)}.btn.danger:hover:not(:disabled){background:var(--red-soft);border-color:var(--red)}.btn.ghost{border-color:transparent;background:transparent;color:var(--text-2)}.btn.ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn.sm{height:26px;padding:0 8px;font-size:12.5px}.btn.icon{width:34px;padding:0}.btn.icon.sm{width:26px}.btn.lg{height:44px;padding:0 18px;font-size:15px;width:100%}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field>label,.label{font-size:12.5px;font-weight:500;color:var(--text-2)}.field .req{color:var(--red)}.field .hint{font-size:12px;color:var(--text-3)}.field .err{font-size:12px;color:var(--red)}.input,.select,.textarea{width:100%;height:34px;padding:0 10px;border:1px solid var(--line-2);border-radius:var(--radius-sm);background-color:var(--surface)}.textarea{height:auto;min-height:64px;padding:7px 9px;resize:vertical}.input:focus,.select:focus,.textarea:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:transparent}.input::placeholder,.textarea::placeholder{color:var(--text-3)}.input.num{text-align:right}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.form-grid .span2{grid-column:span 2}.form-grid .span3{grid-column:span 3}.form-grid .all{grid-column:1 / -1}.form-section{display:flex;flex-direction:column;gap:12px;padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid var(--line)}.form-section:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.form-section>h3{font-size:13.5px}.check{display:inline-flex;align-items:center;gap:7px;cursor:pointer}.check input{width:15px;height:15px;accent-color:var(--accent);margin:0}.seg{display:inline-flex;background:var(--surface-3);border-radius:var(--radius-sm);padding:2px;gap:2px}.seg button{border:0;background:none;height:28px;padding:0 11px;border-radius:6px;cursor:pointer;color:var(--text-2);font-weight:550;font-size:13px;white-space:nowrap}.seg button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #0000001a}.toolbar{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}.search{position:relative;width:280px;max-width:100%}.search svg{position:absolute;left:9px;top:9px;width:16px;height:16px;color:var(--text-3);pointer-events:none}.search input{padding-left:30px}.tabs{display:flex;gap:4px;margin-bottom:12px;overflow-x:auto;scrollbar-width:none}.tabs button,.tabs a{display:inline-flex;align-items:center;gap:7px;height:34px;border:0;background:none;padding:0 12px;font-weight:550;color:var(--text-2);cursor:pointer;border-radius:var(--radius-sm);white-space:nowrap}.tabs button:hover,.tabs a:hover{color:var(--text);background:var(--surface-3)}.tabs .on,.tabs .on:hover{color:#fff;background:var(--tab-on)}.tabs .count{font-size:12px;font-weight:600;color:var(--text-3);font-variant-numeric:tabular-nums}.tabs .on .count{color:var(--primary)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card)}.card-head{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--line);font-weight:600;font-size:13.5px}.card-head .actions{margin-left:auto;display:flex;gap:6px}.card-body{padding:14px}.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow-x:auto;box-shadow:var(--shadow-card)}table.table{width:100%;border-collapse:collapse;font-size:13.5px}.table th{text-align:left;font-weight:600;font-size:12px;color:var(--text-3);padding:0 12px;height:36px;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--surface);position:sticky;top:0;z-index:1}.table td{padding:0 12px;height:var(--row);border-bottom:1px solid var(--line);vertical-align:middle}.table tr:last-child td{border-bottom:0}.table tbody tr.click{cursor:pointer}.table tbody tr.click:hover td{background:var(--surface-2)}.table tbody tr.selected td{background:var(--accent-soft)}.table tbody tr.selected td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.table th.r,.table td.r{text-align:right;font-variant-numeric:tabular-nums}.table td.bold{white-space:nowrap}.table td.tight,.table th.tight{width:1%;white-space:nowrap}.table .sub{font-size:12px;color:var(--text-3);line-height:1.25}.table tfoot td{font-weight:600;background:var(--surface-2);border-top:1px solid var(--line);border-bottom:0}.table.compact td{height:36px}.empty{padding:40px 20px;text-align:center;color:var(--text-2);display:flex;flex-direction:column;gap:10px;align-items:center}.empty svg{width:28px;height:28px;color:var(--text-3)}.empty .t{font-weight:600;color:var(--text)}.badge{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 9px 0 8px;border-radius:11px;font-size:12px;font-weight:600;white-space:nowrap;color:var(--text-2);background:var(--gray-soft)}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}.badge.blue{color:var(--blue);background:var(--blue-soft)}.badge.green{color:var(--green);background:var(--green-soft)}.badge.amber{color:var(--amber);background:var(--amber-soft)}.badge.red{color:var(--red);background:var(--red-soft)}.badge.violet{color:var(--violet);background:var(--violet-soft)}.tag{display:inline-block;font-size:11.5px;font-weight:500;padding:0 6px;line-height:18px;border-radius:4px;background:var(--gray-soft);color:var(--text-2);white-space:nowrap}.tag.accent{background:var(--accent-soft);color:var(--accent-text)}.tag.red{background:var(--red-soft);color:var(--red)}.tag.amber{background:var(--amber-soft);color:var(--amber)}.tag.blue{background:var(--blue-soft);color:var(--blue)}.tag.green{background:var(--green-soft);color:var(--green)}.plate{font-size:12.5px;font-weight:600;white-space:nowrap}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:14px}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:12px 16px;min-width:0;display:block}a.kpi:hover{border-color:var(--line-2)}.kpi .l{font-size:12.5px;font-weight:500;color:var(--text-2)}.kpi .v{font-size:22px;line-height:1.25;margin-top:2px;font-weight:700;letter-spacing:-.025em;white-space:nowrap}.kpi .v.red{color:var(--red)}.kpi .v.amber{color:var(--amber)}.kpi .s{font-size:12px;color:var(--text-3);margin-top:1px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0b0f1f6b;z-index:40;animation:fade .12s ease}@keyframes fade{0%{opacity:0}}@keyframes slide{0%{transform:translate(24px);opacity:0}}@keyframes pop{0%{transform:translateY(6px);opacity:0}}.drawer{position:fixed;top:0;right:0;bottom:0;width:620px;max-width:100vw;background:var(--surface);z-index:41;display:flex;flex-direction:column;box-shadow:var(--shadow-pop);animation:slide .14s ease}.drawer.wide{width:860px}.drawer.narrow{width:460px}.drawer-head{display:flex;align-items:center;gap:10px;padding:12px 18px;border-bottom:1px solid var(--line);min-height:52px}.drawer-head h2{font-size:17px;font-weight:700}.drawer-head .actions{margin-left:auto;display:flex;gap:6px;align-items:center}.drawer-body{flex:1;overflow-y:auto;padding:18px}.drawer-foot{padding:10px 18px;border-top:1px solid var(--line);display:flex;gap:8px;justify-content:flex-end;align-items:center}.modal{position:fixed;left:50%;top:12vh;transform:translate(-50%);width:440px;max-width:calc(100vw - 24px);max-height:76vh;display:flex;flex-direction:column;background:var(--surface);border-radius:14px;z-index:51;box-shadow:var(--shadow-pop);animation:pop .12s ease}.modal.wide{width:640px}.overlay.top{z-index:50}.modal-head{padding:14px 18px 0;font-weight:600;font-size:15px}.modal-body{padding:12px 18px;overflow-y:auto}.modal-foot{padding:10px 18px 14px;display:flex;gap:8px;justify-content:flex-end}.dl{display:grid;grid-template-columns:150px 1fr;gap:6px 12px;font-size:13.5px}.dl dt{color:var(--text-2)}.dl dd{margin:0;min-width:0;overflow-wrap:anywhere}.section{margin-bottom:20px}.section>h3{font-size:14px;margin-bottom:8px;display:flex;align-items:center;gap:8px}.section>h3 .actions{margin-left:auto;font-weight:400}.menu{position:absolute;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-pop);padding:4px;z-index:60;min-width:190px}.menu button,.menu a{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border:0;background:none;border-radius:4px;cursor:pointer;text-align:left;font-size:13.5px}.menu button:hover,.menu a:hover,.menu .sel{background:var(--surface-2)}.menu svg{width:15px;height:15px;color:var(--text-2)}.menu hr{border:0;border-top:1px solid var(--line);margin:4px 0}.combo{position:relative}.combo .menu{left:0;right:0;top:calc(100% + 2px);max-height:260px;overflow-y:auto}.toasts{position:fixed;left:50%;bottom:20px;transform:translate(-50%);z-index:90;display:flex;flex-direction:column;gap:8px;align-items:center}.toast{background:var(--text);color:var(--bg);padding:8px 14px;border-radius:var(--radius-sm);font-size:13.5px;box-shadow:var(--shadow-pop);animation:pop .12s ease;max-width:90vw}.toast.err{background:var(--red);color:#fff}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid var(--line-2);border-top-color:var(--accent);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.center{display:grid;place-items:center;padding:40px}.progress{height:6px;background:var(--surface-3);border-radius:3px;overflow:hidden}.progress>i{display:block;height:100%;background:var(--accent)}.auth-wrap{min-height:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);background:var(--surface)}.auth-side{position:relative;overflow:hidden;background:var(--ink);color:var(--ink-text);padding:32px 48px;display:flex;flex-direction:column;justify-content:space-between;gap:32px}.auth-side .b{--logo: var(--primary);display:flex;align-items:center;gap:10px;color:#fff;font-weight:700;font-size:18px;letter-spacing:-.02em}.auth-side h2{color:#fff;font-size:clamp(28px,3vw,40px);line-height:1.08;font-weight:750;letter-spacing:-.035em;max-width:13em;position:relative}.auth-side ul{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column;gap:8px;position:relative}.auth-side li{display:flex;gap:10px;align-items:baseline}.auth-side li:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--primary);flex:none;transform:translateY(-1px)}.auth-road{position:absolute;right:-40px;top:-20px;width:340px;height:300px;opacity:.9;pointer-events:none}.auth-main{display:grid;place-items:center;padding:32px 20px}.auth-card{width:420px;max-width:100%;display:flex;flex-direction:column;gap:16px}.auth-card h1{font-size:26px;font-weight:750;letter-spacing:-.03em}.auth-card .mobile-brand{display:none}@media(max-width:900px){.shell{grid-template-columns:1fr;grid-template-rows:auto 1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:260px;z-index:45;transform:translate(-100%);transition:transform .15s ease}.sidebar.open{transform:none;box-shadow:var(--shadow-pop)}.topbar{padding:0 8px;height:52px;background:var(--surface);border-bottom:1px solid var(--line)}.top-menu{display:inline-flex!important}.top-search{flex:1;width:auto;min-width:0}.top-search kbd,.topbar .top-new span{display:none}.topbar .top-new{width:36px;padding:0}.banner{padding:6px 12px;flex-wrap:wrap}.auth-wrap{grid-template-columns:minmax(0,1fr)}.auth-side{display:none}.auth-card .mobile-brand{display:flex}.page{padding:12px 12px 32px}.page-head h1{font-size:20px}.form-grid,.form-grid.three,.form-grid.four{grid-template-columns:1fr 1fr}.form-grid .span3{grid-column:1 / -1}.drawer,.drawer.wide,.drawer.narrow{width:100vw}.drawer-head{flex-wrap:wrap;padding:10px 12px}.drawer-head h2{flex:1 1 55%;min-width:0}.drawer-head .actions{flex-wrap:wrap;justify-content:flex-end;max-width:100%}.drawer-foot,.modal-foot{flex-wrap:wrap;padding-left:12px;padding-right:12px}.drawer-foot .grow,.modal-foot .grow{flex-basis:100%}.search{width:100%}.dl{grid-template-columns:120px 1fr}.input,.select,.textarea{font-size:16px}.btn{height:36px}}@media print{.sidebar,.topbar,.banner,.no-print{display:none!important}.shell{display:block}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.spark{display:block;width:100%}.cols{position:relative}.cols-plot{position:relative;padding-left:36px}.cols-grid{position:absolute;left:36px;right:0;border-top:1px solid var(--line)}.cols-grid.base{border-top-color:var(--line-2)}.cols-grid span{position:absolute;right:calc(100% + 6px);top:-8px;font-size:11px;color:var(--text-3);white-space:nowrap;font-variant-numeric:tabular-nums}.cols-bars{position:absolute;top:0;right:0;bottom:0;left:36px;display:flex}.cols-slot{position:relative;flex:1;min-width:0}.cols-slot.hover{background:var(--surface-2)}.cols-slot.pick{cursor:pointer}.cols-bar{position:absolute;left:50%;width:min(70%,24px);transform:translate(-50%);display:flex;flex-direction:column;gap:2px}.cols-bar i{display:block;min-height:1px;background:var(--chart-1)}.cols-bar i:first-child{border-radius:4px 4px 0 0}.cols-bar.dim{opacity:.45}.cols-slot.hover .cols-bar.dim{opacity:.75}.cols-line{position:absolute;left:36px;top:0;width:calc(100% - 36px);height:100%;overflow:visible;pointer-events:none}.cols-dots{position:absolute;top:0;right:0;bottom:0;left:36px;pointer-events:none}.cols-dots i{position:absolute;width:9px;height:9px;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 2px var(--surface)}.cols-x{display:flex;padding-left:36px;margin-top:5px}.cols-x span{flex:1;min-width:0;text-align:center;font-size:11px;color:var(--text-3);white-space:nowrap;font-variant-numeric:tabular-nums;overflow:visible}.cols-x span.on{color:var(--text);font-weight:650}.cols-tip{position:absolute;top:4px;z-index:5;margin-left:12px;padding:7px 10px;border-radius:8px;background:var(--ink);color:#fff;font-size:12px;line-height:1.4;white-space:nowrap;pointer-events:none;box-shadow:var(--shadow-pop);font-variant-numeric:tabular-nums}.cols-tip.left{margin-left:0;transform:translate(calc(-100% - 12px))}.cols-tip .t{color:#aab1c8}.segbar{display:flex;gap:2px;border-radius:6px;overflow:hidden}.segbar i{display:block;min-width:3px}.seg-legend{display:flex;flex-direction:column;margin-top:8px}.seg-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:3px 0;font-size:13px}.seg-item .k{display:inline-flex;align-items:center;gap:7px;color:var(--text-2)}.seg-item .k i{width:9px;height:9px;border-radius:3px;flex:none}.seg-item .v{font-weight:600;font-variant-numeric:tabular-nums}.chart-legend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:var(--text-2)}.chart-legend span{display:inline-flex;align-items:center;gap:6px}.chart-legend i{width:10px;height:10px;border-radius:3px}.chart-legend i.ln{height:3px;width:14px;border-radius:2px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);min-width:0;display:flex;flex-direction:column}.panel-head{display:flex;align-items:center;gap:10px;padding:12px 16px 8px;font-weight:650;font-size:14.5px;letter-spacing:-.01em}.panel-head .sub{font-weight:400;font-size:12.5px;color:var(--text-3);letter-spacing:0}.panel-head .actions{margin-left:auto;display:flex;align-items:center;gap:8px;font-weight:500;font-size:13px}.panel-body{padding:4px 16px 14px}.set-layout{display:grid;grid-template-columns:200px minmax(0,1fr);gap:24px;align-items:start}.set-nav{display:flex;flex-direction:column;gap:1px;position:sticky;top:12px}.set-nav a{display:block;padding:6px 10px;border-radius:var(--radius-sm);color:var(--text-2);font-weight:500;white-space:nowrap}.set-nav a:hover{background:var(--surface-2);color:var(--text)}.set-nav a.active{background:var(--accent-soft);color:var(--accent-text)}.set-body{min-width:0;max-width:980px}.set-body>h2{font-size:15px;margin-bottom:4px}.set-lead{color:var(--text-2);margin-bottom:14px;max-width:70ch}.set-actions{display:flex;gap:8px;margin-bottom:10px;align-items:center;flex-wrap:wrap}.set-actions .right-side{margin-left:auto;display:flex;gap:8px}.set-form{max-width:720px}.sticky-save{display:flex;align-items:center;gap:10px}.perm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px}.perm-group>.t{font-size:12.5px;font-weight:600;color:var(--text-2);margin-bottom:4px}.perm-group .check{display:flex;align-items:flex-start;font-size:13px;padding:2px 0;line-height:1.3}.perm-group .check input{margin-top:1px;flex:none}.perm-group .check.locked{opacity:.55;cursor:not-allowed}.perm-diff{font-size:11px;color:var(--accent-text);margin-left:4px}.role-hint{font-size:12.5px;color:var(--text-2)}.copy-box{display:flex;gap:6px;align-items:center}.copy-box input{font-size:12.5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.audit-diff{background:var(--surface-2);border-radius:var(--radius-sm);padding:8px 10px;margin:2px 0 8px;font-size:12.5px;display:grid;grid-template-columns:minmax(120px,200px) minmax(0,1fr);gap:2px 12px;overflow-wrap:anywhere}.audit-diff .k{color:var(--text-2)}.audit-diff del{color:var(--red);text-decoration:line-through}.audit-diff ins{color:var(--green);text-decoration:none}.import-map{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.dash-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-bottom:12px}.tile{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:13px 16px;min-width:0;min-height:124px}a.tile:hover{border-color:var(--line-2)}.tile .l{font-size:12.5px;font-weight:500;color:var(--text-2)}.tile .v{font-size:25px;font-weight:750;letter-spacing:-.03em;line-height:1.2;margin-top:3px;white-space:nowrap}.tile .v .of{font-size:13px;font-weight:500;letter-spacing:0;color:var(--text-2)}.tile .s{font-size:12px;margin-top:2px;color:var(--text-2)}.tile .spark,.tile .meter,.tile .fleet-bar{margin-top:auto}.tile.today{background:var(--ink);border-color:var(--ink);color:#fff}a.tile.today:hover{background:var(--ink-2);border-color:var(--ink-2)}.tile.today .l{color:var(--ink-text)}.today-grid{display:grid;grid-template-columns:repeat(3,auto);justify-content:space-between;gap:8px;margin-top:auto;padding-top:10px}.today-grid b{display:block;font-size:30px;font-weight:750;letter-spacing:-.03em;line-height:1.05}.today-grid span{font-size:12px;color:var(--ink-text);white-space:nowrap}.today-grid .warn b{color:var(--primary)}.meter{height:6px;border-radius:3px;background:var(--chart-track);overflow:hidden}.meter i{display:block;height:100%;background:var(--red);border-radius:3px}.fleet-bar{display:flex;gap:2px;height:8px;border-radius:4px;overflow:hidden;margin-bottom:5px}.delta{display:inline-flex;align-items:center;gap:2px;font-weight:650}.delta svg{width:14px;height:14px}.delta .faint{font-weight:400;margin-left:3px}.delta.up{color:var(--green)}.delta.down{color:var(--red)}.dash-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px;align-items:stretch}.area-runs{grid-column:span 8}.area-attn{grid-column:span 4}.area-rev{grid-column:span 5}.area-week{grid-column:span 3}.area-debt{grid-column:span 4}.dash-grid>:only-child{grid-column:1 / -1}.dash-runs{display:flex;flex-direction:column;padding-bottom:6px}.dash-run{display:grid;grid-template-columns:minmax(150px,1.1fr) minmax(0,1.6fr) 96px 112px;align-items:center;gap:14px;width:100%;min-height:50px;padding:6px 16px;background:none;border:0;border-top:1px solid var(--line);text-align:left;cursor:pointer}.dash-run:hover{background:var(--surface-2)}.dash-run .who{display:flex;flex-direction:column;min-width:0;line-height:1.3}.dash-run .who .n{font-weight:600}.dash-run .plate{font-size:12px;font-weight:500}.area-rev .panel-body,.area-week .panel-body{flex:1}.dash-run .where{font-size:13px;line-height:1.3;display:flex;flex-direction:column}.dash-run .where>span{font-size:12px}.dash-run .where .late{color:var(--red);font-weight:600;display:inline-flex;align-items:center;gap:3px}.dash-run .prog{display:flex;flex-direction:column;gap:3px;font-size:12.5px;font-weight:600}.dash-run .badge{justify-self:end}.attn-list{display:flex;flex-direction:column;padding-bottom:6px}.attn-row{display:flex;align-items:center;gap:11px;padding:8px 12px 8px 14px;border-top:1px solid var(--line)}.attn-row:hover{background:var(--surface-2)}.attn-row .n{flex:none;min-width:30px;height:30px;padding:0 6px;border-radius:9px;display:grid;place-items:center;font-weight:700;font-size:14px;font-variant-numeric:tabular-nums}.attn-row .n.red{color:var(--red);background:var(--red-soft)}.attn-row .n.amber{color:var(--amber);background:var(--amber-soft)}.attn-row .txt{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3}.attn-row .lbl{font-weight:550;font-size:13px}.attn-row .names{color:var(--text-3);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attn-quiet{padding:12px 16px;color:var(--text-2);display:flex;gap:8px;align-items:center;flex-wrap:wrap}.debtors{margin-top:8px;border-top:1px solid var(--line);padding-top:6px}.debtor{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;row-gap:3px;padding:5px 0;font-size:13px}.debtor:hover span:first-child{color:var(--accent-text)}.debtor .bar{position:relative;grid-column:1 / -1;height:4px;background:var(--chart-track);border-radius:2px;overflow:hidden}.debtor .bar i,.debtor .bar b{position:absolute;left:0;top:0;bottom:0;border-radius:2px}.debtor .bar i{background:var(--chart-1)}.debtor .bar b{background:var(--red)}.onb{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:12px}.onb-head{display:flex;align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid var(--line);font-weight:600;font-size:13.5px}.onb-head .actions{margin-left:auto}.onb-step{display:flex;align-items:center;gap:10px;padding:7px 14px;border-bottom:1px solid var(--line)}.onb-step:last-child{border-bottom:0}.onb-head{border-bottom:0!important}.onb-step svg{width:16px;height:16px;flex:none;color:var(--text-3)}.onb-step.done svg{color:var(--green)}.onb-step.done .t{color:var(--text-3);text-decoration:line-through}a.onb-step:hover{background:var(--surface-2)}.onb-step .h{color:var(--text-3);font-size:12.5px}.run-prog{display:inline-flex;align-items:center;gap:8px}.run-prog .progress{width:56px}.gs{position:fixed;left:50%;top:10vh;transform:translate(-50%);width:560px;max-width:calc(100vw - 24px);background:var(--surface);border-radius:14px;box-shadow:var(--shadow-pop);z-index:51;display:flex;flex-direction:column;max-height:72vh;animation:pop .12s ease}.gs-input{display:flex;align-items:center;gap:8px;padding:0 14px;height:46px;border-bottom:1px solid var(--line)}.gs-input svg{width:16px;height:16px;color:var(--text-3);flex:none}.gs-input input{flex:1;min-width:0;border:0;background:none;outline:none;font-size:15px}.gs-list{overflow-y:auto;padding:4px}.gs-group{padding:8px 10px 3px;font-size:11.5px;font-weight:600;color:var(--text-3)}.gs-item{display:flex;gap:10px;align-items:baseline;width:100%;padding:7px 10px;border:0;background:none;border-radius:var(--radius-sm);text-align:left;cursor:pointer}.gs-item.sel{background:var(--accent-soft)}.gs-item .sub{color:var(--text-3);font-size:12.5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gs-item .title{font-weight:500;white-space:nowrap}.gs-hint{padding:16px 14px;color:var(--text-2);font-size:13px}.gs-foot{padding:6px 14px;border-top:1px solid var(--line);font-size:12px;color:var(--text-3);display:flex;gap:14px}.bell{position:relative}.bell .dot{position:absolute;top:0;right:0;min-width:15px;height:15px;padding:0 3px;border-radius:8px;background:var(--red);color:#fff;font-size:10px;font-weight:600;line-height:15px;text-align:center;font-variant-numeric:tabular-nums}.ntf{position:fixed;width:360px;max-width:calc(100vw - 16px);max-height:70vh;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-pop);z-index:60;display:flex;flex-direction:column}.ntf-head{display:flex;align-items:center;padding:9px 12px;border-bottom:1px solid var(--line);font-weight:600}.ntf-head .link{margin-left:auto;font-weight:400;font-size:12.5px}.ntf-list{overflow-y:auto}.ntf-item{display:block;width:100%;text-align:left;border:0;background:none;padding:8px 12px;border-bottom:1px solid var(--line);cursor:pointer}.ntf-item:last-child{border-bottom:0}.ntf-item:hover{background:var(--surface-2)}.ntf-item .t{font-size:13px;font-weight:500}.ntf-item.unread .t:before{content:"";display:inline-block;width:6px;height:6px;background:var(--accent);border-radius:50%;margin-right:6px;vertical-align:2px}.ntf-item:not(.unread) .t{font-weight:400;color:var(--text-2)}.ntf-item .b{font-size:12.5px;color:var(--text-2)}.ntf-item .w{font-size:11.5px;color:var(--text-3)}td.doc-cell{white-space:normal;min-width:120px;line-height:1.25}td.doc-cell .badge{white-space:normal;align-items:baseline;height:auto;min-height:22px;padding-top:3px;padding-bottom:3px;line-height:1.25;border-radius:8px}.plat-top{display:flex;align-items:center;gap:10px;padding:10px 24px;background:var(--surface);border-bottom:1px solid var(--line);font-weight:600}.plat-top .right-side{margin-left:auto;display:flex;gap:8px}.plat-wrap{overflow-y:auto;height:100%;display:flex;flex-direction:column}@media(max-width:480px){.kpis>:last-child:nth-child(odd){grid-column:1 / -1}}@media(max-width:900px){.set-layout{grid-template-columns:minmax(0,1fr);gap:12px}.set-nav{flex-direction:row;overflow-x:auto;position:static;scrollbar-width:none;gap:2px;border-bottom:1px solid var(--line);padding-bottom:6px}.perm-grid,.dash-grid{grid-template-columns:minmax(0,1fr)}.dash-grid>*{grid-column:auto!important}.dash-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.tile.today{grid-column:1 / -1;min-height:0}.tile .v{font-size:20px}.dash-run{grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;padding:8px 12px}.dash-run .where{grid-column:1 / -1;grid-row:2}.dash-run .prog{grid-column:1 / -1;grid-row:3;flex-direction:row;align-items:center}.dash-run .prog .progress{flex:1}.attn-row .names{white-space:normal}.onb-step .h{display:none}.plat-top{padding:10px 12px}.gs{top:8px;max-height:calc(100vh - 16px)}.audit-diff{grid-template-columns:minmax(0,1fr)}}
