@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.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}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.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{--font:"Inter Variable", "Segoe UI", system-ui, sans-serif;--mono:"JetBrains Mono Variable", ui-monospace, Consolas, monospace;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-xl:16px;--ease:cubic-bezier(.2, .8, .2, 1);--t-fast:.12s;--t-base:.2s;--t-slow:.32s;--accent:#5b5bf0;--accent-2:#0ea5c6;--grad:linear-gradient(135deg, #6d6df5 0%, #22b8d9 100%);--sidebar-w:272px;--sidebar-w-collapsed:68px;--topbar-h:64px;--safe-b:env(safe-area-inset-bottom,0px)}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f7fb;--bg-elev:#fff;--bg-sunken:#eef0f6;--bg-hover:#f1f2f8;--border:#e4e6ef;--border-strong:#d2d6e3;--text:#0f172a;--text-2:#475069;--text-3:#7b839c;--accent-soft:#ececff;--accent-text:#4343d8;--ok:#0f9d6b;--ok-soft:#e1f6ee;--warn:#b7791f;--warn-soft:#fdf1d9;--danger:#d93a4a;--danger-soft:#fde8ea;--info:#0b86a3;--info-soft:#dff4f9;--shadow-1:0 1px 2px #1018280d, 0 1px 1px #10182808;--shadow-2:0 4px 12px #10182812, 0 1px 3px #1018280d;--shadow-3:0 20px 48px #10182829, 0 4px 12px #10182814;--sidebar-bg:#fff;--overlay:#0f172a73;--chart-1:#5b5bf0;--chart-2:#0ea5c6;--chart-3:#f59e0b;--chart-4:#10b981;--chart-5:#e5484d;--chart-grid:#e8eaf2}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0a0e1a;--bg-elev:#111729;--bg-sunken:#0d1222;--bg-hover:#171e34;--border:#1f2842;--border-strong:#2c3757;--text:#eef1fb;--text-2:#aab3cf;--text-3:#6f7a9b;--accent-soft:#1d2150;--accent-text:#a5a8ff;--ok:#34d399;--ok-soft:#0f2a25;--warn:#fbbf24;--warn-soft:#30250d;--danger:#ff6b78;--danger-soft:#35161c;--info:#38d0ee;--info-soft:#0b2a33;--shadow-1:0 1px 2px #00000059;--shadow-2:0 6px 16px #00000059, 0 1px 3px #0000004d;--shadow-3:0 24px 56px #0000008c, 0 4px 12px #0006;--sidebar-bg:#0d1325;--overlay:#02040ca8;--chart-1:#8e8eff;--chart-2:#22d3ee;--chart-3:#fbbf24;--chart-4:#34d399;--chart-5:#ff6b78;--chart-grid:#1c2440}@media (prefers-reduced-motion:reduce){:root{--t-fast:0s;--t-base:0s;--t-slow:0s}*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11", "ss01";text-rendering:optimizelegibility;transition:background var(--t-base) var(--ease), color var(--t-base) var(--ease);margin:0;font-size:16px;line-height:1.5}h1,h2,h3,h4,p{margin:0}h1{letter-spacing:-.02em;font-size:25.5px;font-weight:650}h2{letter-spacing:-.01em;font-size:18.5px;font-weight:620}h3{font-size:16px;font-weight:600}a{color:var(--accent-text);text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}::selection{background:var(--accent-soft);color:var(--accent-text)}.num,.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.muted{color:var(--text-2)}.faint{color:var(--text-3)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.btn{border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--bg-elev);height:40px;color:var(--text);white-space:nowrap;transition:transform var(--t-fast) var(--ease), background var(--t-fast), border-color var(--t-fast), box-shadow var(--t-base), opacity var(--t-fast);box-shadow:var(--shadow-1);justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:15.5px;font-weight:550;display:inline-flex}.btn:hover{background:var(--bg-hover)}.btn:active{transform:translateY(1px)scale(.985)}.btn[disabled]{opacity:.55;cursor:not-allowed;transform:none}.btn-primary{background:var(--grad);color:#fff;border-color:#0000;box-shadow:0 1px 2px #3c3cc859,inset 0 1px #ffffff2e}.btn-primary:hover{background:var(--grad);filter:brightness(1.07);box-shadow:0 6px 16px #5b5bf059}.btn-ghost{box-shadow:none;background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--bg-hover)}.btn-danger{color:var(--danger)}.btn-danger:hover{background:var(--danger-soft);border-color:var(--danger)}.btn-sm{height:34px;padding:0 12px;font-size:14.5px}.btn-icon{width:40px;padding:0}.btn-icon.btn-sm{width:34px}.spin{border:2px solid;border-right-color:#0000;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field>label,.label{color:var(--text-2);font-size:14.5px;font-weight:550}.input,.select,.textarea{border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--bg-elev);width:100%;height:42px;transition:border-color var(--t-fast), box-shadow var(--t-fast);padding:0 12px}.textarea{resize:vertical;height:auto;min-height:84px;padding:10px 12px}.input::placeholder,.textarea::placeholder{color:var(--text-3)}.input:hover,.select:hover,.textarea:hover{border-color:var(--text-3)}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);outline:none}.input[aria-invalid=true]{border-color:var(--danger)}.field-error{color:var(--danger);font-size:14px}.field-hint{color:var(--text-3);font-size:14px}.input-wrap{align-items:center;display:flex;position:relative}.input-wrap .input{padding-right:42px}.input-wrap .eye{border-radius:var(--r-sm);width:32px;height:30px;color:var(--text-3);background:0 0;border:0;place-items:center;display:grid;position:absolute;right:4px}.input-wrap .eye:hover{color:var(--text);background:var(--bg-hover)}.input-prefix{position:relative}.input-prefix>span{color:var(--text-3);pointer-events:none;font-size:15px;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.input-prefix .input{font-family:var(--mono);padding-left:36px}.grid{gap:14px;display:grid}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.check{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:15px;display:inline-flex}.check input{width:16px;height:16px;accent-color:var(--accent)}.check input.switch,.switch{appearance:none;background:var(--border-strong);cursor:pointer;width:38px;height:22px;transition:background var(--t-base);border-radius:99px;flex:none;position:relative}.switch:after{content:"";width:16px;height:16px;transition:transform var(--t-base) var(--ease);box-shadow:var(--shadow-1);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px}.check input.switch{width:38px;height:22px}.check input.switch:checked,.switch:checked{background:var(--ok)}.switch:checked{background:var(--accent)}.switch:checked:after{transform:translate(16px)}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-1)}.card-pad{padding:18px}.badge{background:var(--bg-sunken);height:22px;color:var(--text-2);white-space:nowrap;border-radius:99px;align-items:center;gap:5px;padding:0 8px;font-size:13px;font-weight:600;display:inline-flex}.badge-ok{background:var(--ok-soft);color:var(--ok)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.badge-info{background:var(--info-soft);color:var(--info)}.badge-accent{background:var(--accent-soft);color:var(--accent-text)}.dot{background:currentColor;border-radius:50%;flex:none;width:7px;height:7px}.avatar{color:#fff;background:var(--grad);border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-size:12px;font-weight:700;display:grid}.avatar-lg{width:40px;height:40px;font-size:15px}.meter{background:var(--bg-sunken);border-radius:99px;height:6px;overflow:hidden}.meter>i{border-radius:inherit;background:var(--grad);transform-origin:0;height:100%;animation:grow .8s var(--ease) both;display:block}.meter.warn>i{background:linear-gradient(90deg,#f59e0b,#f97316)}.meter.over>i{background:linear-gradient(90deg,#ef4444,#dc2626)}@keyframes grow{0%{transform:scaleX(0)}}.overlay{z-index:60;background:var(--overlay);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade var(--t-base) var(--ease);place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-xl);width:min(720px,100%);max-height:min(92vh,900px);box-shadow:var(--shadow-3);animation:pop var(--t-slow) var(--ease);flex-direction:column;display:flex;overflow:hidden}.modal-lg{width:min(980px,100%)}.modal-sm{width:min(440px,100%)}.modal-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.modal-body{flex:1;padding:20px;overflow:auto}.modal-foot{border-top:1px solid var(--border);background:var(--bg-sunken);justify-content:flex-end;gap:10px;padding:14px 20px;display:flex}.drawer-overlay{place-items:stretch end;padding:0}.drawer{width:min(560px,100%);height:100%;max-height:none;animation:slide var(--t-slow) var(--ease);border-radius:0}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(10px)scale(.98)}}@keyframes slide{0%{opacity:0;transform:translate(32px)}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}.page-enter{animation:rise var(--t-slow) var(--ease)}.menu-wrap{display:inline-block;position:relative}.menu{z-index:50;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-lg);min-width:200px;box-shadow:var(--shadow-3);animation:pop var(--t-base) var(--ease);transform-origin:100% 0;padding:6px;position:absolute;top:calc(100% + 6px);right:0}.menu-item{border-radius:var(--r-md);text-align:left;width:100%;color:var(--text);background:0 0;border:0;align-items:center;gap:10px;padding:8px 10px;font-size:15.5px;display:flex}.menu-item:hover,.menu-item[aria-selected=true]{background:var(--bg-hover)}.menu-sep{background:var(--border);height:1px;margin:6px 0}.toasts{z-index:100;right:16px;bottom:calc(16px + var(--safe-b));flex-direction:column;gap:10px;width:min(380px,100vw - 32px);display:flex;position:fixed}.toast{border-radius:var(--r-lg);background:var(--bg-elev);border:1px solid var(--border);box-shadow:var(--shadow-3);animation:slide var(--t-slow) var(--ease);align-items:flex-start;gap:10px;padding:12px 14px;font-size:15.5px;display:flex}.toast .ico{flex:none;margin-top:1px}.toast-ok .ico{color:var(--ok)}.toast-error .ico{color:var(--danger)}.toast-info .ico{color:var(--info)}.skel{background:linear-gradient(90deg, var(--bg-sunken) 25%, var(--bg-hover) 37%, var(--bg-sunken) 63%);border-radius:var(--r-md);background-size:400% 100%;animation:1.4s infinite shimmer}@keyframes shimmer{0%{background-position:100%}to{background-position:0}}.tabs{border-bottom:1px solid var(--border);gap:2px;display:flex;overflow-x:auto}.tab{color:var(--text-2);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 14px;font-weight:550}.tab:hover{color:var(--text)}.tab[aria-selected=true]{color:var(--accent-text);border-bottom-color:var(--accent)}.table-wrap{border-radius:var(--r-lg);overflow:auto}table.table{border-collapse:collapse;width:100%}.table th{text-align:left;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;background:var(--bg-sunken);border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 14px;font-size:14px;font-weight:600;position:sticky;top:0}.table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:11px 14px}.table tbody tr{transition:background var(--t-fast)}.table tbody tr:hover{background:var(--bg-hover)}.table tbody tr.click{cursor:pointer}.table .r{text-align:right}.empty{text-align:center;color:var(--text-2);place-items:center;gap:8px;padding:48px 16px;display:grid}.empty svg{color:var(--text-3)}.row{align-items:center;gap:10px;display:flex}.row-wrap{flex-wrap:wrap}.spread{justify-content:space-between}.grow{flex:1;min-width:0}.stack{flex-direction:column;gap:14px;display:flex}.kpis{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.kpi{padding:14px 16px}.kpi .k-label{color:var(--text-3);font-size:14px;font-weight:550}.kpi .k-value{letter-spacing:-.02em;margin-top:2px;font-size:27.5px;font-weight:650}.alert{border-radius:var(--r-md);align-items:flex-start;gap:8px;padding:10px 12px;font-size:15px;display:flex}.alert-error{background:var(--danger-soft);color:var(--danger)}.alert-warn{background:var(--warn-soft);color:var(--warn)}.alert-info{background:var(--info-soft);color:var(--info)}.timeline{flex-direction:column;gap:16px;padding-left:22px;display:flex;position:relative}.timeline:before{content:"";background:var(--border);border-radius:2px;width:2px;position:absolute;top:6px;bottom:6px;left:6px}.t-item{position:relative}.t-item:before{content:"";background:var(--bg-elev);border:2px solid var(--accent);border-radius:50%;width:10px;height:10px;position:absolute;top:6px;left:-21px}.t-card{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-elev);padding:12px 14px}.shell{grid-template-columns:var(--sidebar-w) 1fr;height:100%;transition:grid-template-columns var(--t-slow) var(--ease);display:grid}.shell.collapsed{grid-template-columns:var(--sidebar-w-collapsed) 1fr}.sidebar{background:var(--sidebar-bg);border-right:1px solid var(--border);z-index:30;flex-direction:column;min-height:0;display:flex;overflow:hidden}.sb-head{height:var(--topbar-h);border-bottom:1px solid var(--border);flex:none;align-items:center;gap:10px;padding:0 16px;display:flex}.sb-nav{flex-direction:column;flex:1;gap:2px;padding:12px 10px;display:flex;overflow-y:auto}.sb-section{letter-spacing:.09em;text-transform:uppercase;color:var(--text-3);white-space:nowrap;padding:16px 10px 6px;font-size:12px;font-weight:650}.nav-item{border-radius:var(--r-md);height:42px;color:var(--text-2);white-space:nowrap;text-align:left;width:100%;transition:background var(--t-fast), color var(--t-fast);background:0 0;border:0;align-items:center;gap:12px;padding:0 10px;font-weight:550;display:flex;position:relative}.nav-item svg{flex:none}.nav-item:hover{background:var(--bg-hover);color:var(--text)}.nav-item.active{background:var(--accent-soft);color:var(--accent-text)}.nav-item.active:before{content:"";background:var(--grad);border-radius:0 3px 3px 0;width:3px;position:absolute;top:9px;bottom:9px;left:-10px}.nav-item.soon{opacity:.62;cursor:not-allowed}.nav-item.soon:hover{color:var(--text-2);background:0 0}.nav-item .soon-tag{background:var(--bg-sunken);color:var(--text-3);letter-spacing:.02em;border-radius:99px;margin-left:auto;padding:2px 6px;font-size:11.5px;font-weight:650}.collapsed .nav-label,.collapsed .soon-tag,.collapsed .sb-section span,.collapsed .brand-word{display:none}.collapsed .sb-section{text-align:center;padding:10px 0 4px}.collapsed .sb-section:after{content:"";background:var(--border);height:1px;display:block}.collapsed .nav-item{justify-content:center;padding:0}.sb-foot{border-top:1px solid var(--border);flex:none;padding:10px}.main{flex-direction:column;min-width:0;min-height:0;display:flex}.topbar{height:var(--topbar-h);border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--bg) 86%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:20;flex:none;align-items:center;gap:10px;padding:0 20px;display:flex;position:relative}.content{flex:1;min-height:0;padding:24px;overflow:auto}.page{flex-direction:column;gap:18px;width:100%;max-width:none;min-height:100%;margin:0;display:flex}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.page-head p{color:var(--text-2);margin-top:2px}.notif-dot{background:var(--danger);color:#fff;min-width:16px;height:16px;animation:pop var(--t-base) var(--ease);border-radius:99px;place-items:center;padding:0 4px;font-size:11.5px;font-weight:700;display:grid;position:absolute;top:4px;right:4px}.bottom-nav,.mobile-only{display:none}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.search{flex:1;min-width:200px;max-width:360px;position:relative}.search svg{color:var(--text-3);pointer-events:none;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.search .input{padding-left:34px}.seg{background:var(--bg-sunken);border-radius:var(--r-md);border:1px solid var(--border);gap:2px;padding:3px;display:inline-flex}.seg button{height:28px;color:var(--text-2);background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;padding:0 10px;font-weight:550;display:inline-flex}.seg button[aria-pressed=true]{background:var(--bg-elev);color:var(--text);box-shadow:var(--shadow-1)}.filters{animation:rise var(--t-base) var(--ease);grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;padding:14px;display:grid}.board{scroll-snap-type:x proximity;flex:1;grid-auto-columns:minmax(320px,1fr);grid-auto-flow:column;align-items:stretch;gap:14px;min-height:420px;padding-bottom:10px;display:grid;overflow-x:auto}.col{background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--r-xl);scroll-snap-align:start;min-height:0;transition:background var(--t-base), border-color var(--t-base), box-shadow var(--t-base);flex-direction:column;display:flex}.col.over{background:var(--accent-soft);border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent), inset 0 0 40px color-mix(in srgb, var(--accent) 8%, transparent)}.col-head{align-items:center;gap:8px;padding:12px 14px 8px;display:flex}.col-head .swatch{border-radius:3px;width:8px;height:8px}.col-head h3{text-transform:uppercase;letter-spacing:.06em;color:var(--text-2);font-size:14px}.col-count{font-family:var(--mono);background:var(--bg-elev);border:1px solid var(--border);text-align:center;border-radius:99px;min-width:26px;margin-left:auto;padding:1px 8px;font-size:14px;font-weight:600}.col-body{flex-direction:column;flex:1;gap:10px;min-height:120px;padding:4px 10px 12px;display:flex;overflow-y:auto}.col-empty{border:1.5px dashed var(--border-strong);border-radius:var(--r-lg);text-align:center;color:var(--text-3);padding:22px 12px;font-size:14.5px}.pcard{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-1);cursor:grab;touch-action:manipulation;transition:box-shadow var(--t-base), border-color var(--t-base), transform var(--t-base) var(--ease);padding:12px 13px;position:relative}.pcard[data-status=NEW]{--st:#6366f1}.pcard[data-status=IN_DEVELOPMENT]{--st:#eab308}.pcard[data-status=AWAITING_STARTUP]{--st:#f97316}.pcard[data-status=IN_STARTUP]{--st:#a855f7}.pcard[data-status=DONE]{--st:#22c55e}.pcard[data-status]{background:color-mix(in srgb, var(--st) 13%, var(--bg-elev));border-color:color-mix(in srgb, var(--st) 35%, var(--border));border-left:4px solid var(--st)}.pcard[data-status] .meter{background:color-mix(in srgb, var(--text) 16%, var(--bg-elev));height:8px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--text) 18%, transparent)}.pcard[data-status] .meter:not(.warn):not(.over)>i{background:var(--st);filter:saturate(1.15)brightness(.92)}.pcard[data-status]:hover{border-color:var(--st)}.pcard:hover{box-shadow:var(--shadow-2);border-color:var(--border-strong);transform:translateY(-1px)}.pcard.dragging{opacity:.35}.pcard.overlay{cursor:grabbing;box-shadow:var(--shadow-3);border-color:var(--accent);transform:rotate(1.6deg)scale(1.02)}.pcard .p-code{font-family:var(--mono);color:var(--text-3);white-space:nowrap;font-size:12.5px}.pcard>.row{flex-wrap:wrap;row-gap:4px}.modal:focus{outline:none}.pcard .p-title{margin:2px 0 1px;font-weight:620;line-height:1.3}.pcard .p-client{color:var(--text-2);font-size:14.5px}.pcard .p-meta{color:var(--text-2);justify-content:space-between;margin-top:10px;font-size:14px;display:flex}.pcard .p-hours{margin-top:10px}.pcard .p-hours .line{color:var(--text-2);justify-content:space-between;margin-bottom:5px;font-size:13px;display:flex}.pcard .p-foot{justify-content:space-between;align-items:center;gap:6px;margin-top:10px;display:flex}.prio-URGENT{color:var(--danger)}.prio-HIGH{color:var(--warn)}.prio-MEDIUM{color:var(--info)}.prio-LOW{color:var(--text-3)}.dnd-hint{color:var(--text-3);font-size:14px}.login{color:#eef1fb;background:#070b17;grid-template-columns:1.1fr 1fr;min-height:100%;display:grid}.login-hero{background:radial-gradient(1100px 600px at 20% 10%,#5b5bf059,#0000 60%),radial-gradient(900px 600px at 90% 90%,#22d3ee38,#0000 60%),#070b17;flex-direction:column;justify-content:space-between;padding:44px;display:flex;position:relative;overflow:hidden}.login-hero:before{content:"";background-image:linear-gradient(#ffffff0b 1px,#0000 1px),linear-gradient(90deg,#ffffff0b 1px,#0000 1px);background-size:44px 44px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(at 40% 40%,#000 20%,#0000 75%);mask-image:radial-gradient(at 40% 40%,#000 20%,#0000 75%)}.login-hero>.neural{z-index:0;width:100%;height:100%;position:absolute;inset:0}.login-hero{justify-content:space-between}.login-hero h2{pointer-events:none;text-shadow:0 2px 24px #070b17e6}.orbit{opacity:.9;pointer-events:none;width:640px;height:640px;position:absolute;top:50%;right:-120px;transform:translateY(-50%)}.orbit .ring{transform-origin:320px 320px;animation:60s linear infinite orbit}.orbit .ring2{animation-duration:90s;animation-direction:reverse}.orbit .pulse{animation:3.2s ease-in-out infinite pulse}@keyframes orbit{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.35;transform:scale(1.25)}}.login-hero>*{z-index:1;position:relative}.login-hero h2{letter-spacing:-.03em;max-width:700px;font-size:clamp(34px,4vw,58px);font-weight:680;line-height:1.1}.login-hero h2 em{background:var(--grad);color:#0000;-webkit-background-clip:text;background-clip:text;font-style:normal}.login-hero p{color:#9aa5c4;max-width:440px;margin-top:14px;font-size:17px}.login-panel{background:#0b1020;border-left:1px solid #1a2240;place-items:center;padding:32px;display:grid}.login-form{width:min(380px,100%);animation:rise var(--t-slow) var(--ease);flex-direction:column;gap:18px;display:flex}.login-form h1{font-size:30px}.login-form .sub{color:#9aa5c4;margin-top:4px}.login-form .field>label{color:#aab3cf}.login-form .input{color:#eef1fb;background:#0f1630;border-color:#232d52;height:42px}.login-form .input:hover{border-color:#3a4672}.login-form .input-wrap .eye{color:#7f8bb0}.login-form .input-wrap .eye:hover{color:#fff;background:#172044}.login-form .btn-primary{height:44px;font-size:16.5px}.login-form .check{color:#aab3cf}.shake{animation:shake .4s var(--ease)}@keyframes shake{20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.kv{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;display:grid}.kv .k{color:var(--text-3);margin-bottom:2px;font-size:14px;font-weight:550}.kv .v{font-weight:550}.chart-box{height:320px}@media (width<=1100px){.grid-4,.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=900px){.login{grid-template-columns:1fr}.login-hero{display:none}.login-panel{background:radial-gradient(600px 400px at 50% 0,#5b5bf038,#0000 70%),#0b1020;border:0}.shell,.shell.collapsed{grid-template-columns:1fr}.sidebar{width:min(290px,86vw);transition:transform var(--t-slow) var(--ease);box-shadow:var(--shadow-3);position:fixed;inset:0 auto 0 0;transform:translate(-102%)}.sidebar.open{transform:none}.collapsed .nav-label,.collapsed .soon-tag,.collapsed .sb-section span,.collapsed .brand-word{display:initial}.collapsed .nav-item{justify-content:flex-start;padding:0 10px}.scrim{z-index:25;background:var(--overlay);animation:fade var(--t-base);position:fixed;inset:0}.content{padding:16px 14px calc(78px + var(--safe-b))}.topbar{padding:0 12px}.bottom-nav{z-index:24;background:var(--sidebar-bg);border-top:1px solid var(--border);padding:6px 4px calc(6px + var(--safe-b));grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav a,.bottom-nav button{color:var(--text-3);border-radius:var(--r-md);background:0 0;border:0;flex-direction:column;align-items:center;gap:2px;padding:6px 0;font-size:12px;font-weight:600;display:flex}.bottom-nav .active{color:var(--accent-text)}.mobile-only{display:initial}.desktop-only{display:none!important}.board{scroll-snap-type:x mandatory;grid-auto-columns:84vw;margin:0 -14px;padding:0 14px 10px;scroll-padding:14px}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.modal-overlay-m,.overlay{align-items:end;padding:0}.overlay .modal{width:100%;max-height:94vh;animation:slideUp var(--t-slow) var(--ease);border-radius:18px 18px 0 0}.drawer-overlay{place-items:end stretch}.drawer{border-radius:18px 18px 0 0;height:94vh}.kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.kpi{padding:10px 12px}.kpi .k-value{font-size:22px}.page-head h1{font-size:23px}.toasts{bottom:calc(80px + var(--safe-b))}.table-resp thead{display:none}.table-resp tr{border-bottom:1px solid var(--border);padding:10px 12px;display:block}.table-resp td{border:0;justify-content:space-between;gap:12px;padding:3px 0;display:flex}.table-resp td:before{content:attr(data-label);color:var(--text-3);font-size:14px}.btn{height:40px}.btn-sm{height:34px}.input,.select{height:42px;font-size:16px}.textarea{font-size:16px}}@keyframes slideUp{0%{opacity:0;transform:translateY(40px)}}.tl-legend{color:var(--text-2);flex-wrap:wrap;gap:14px;font-size:13px;display:flex}.tl-legend span{align-items:center;gap:6px;display:inline-flex}.tl-legend i{border-radius:4px;width:12px;height:12px;display:inline-block}.tl-today-swatch{background:var(--danger);border-radius:2px!important;width:3px!important}.tl{padding:0;overflow:hidden}.tl-scroll{min-height:280px;max-height:calc(100vh - 330px);position:relative;overflow:auto}.tl-inner{position:relative}.tl-head{z-index:6;background:var(--bg-elev);border-bottom:1px solid var(--border-strong);display:flex;position:sticky;top:0}.tl-left{z-index:5;background:var(--bg-elev);border-right:1px solid var(--border-strong);flex:none;width:340px;position:sticky;left:0}.tl-corner{z-index:7;color:var(--text-2);align-items:flex-end;padding:0 14px 8px;font-size:13px;font-weight:650;display:flex}.tl-track{flex:none;position:relative}.tl-months{border-bottom:1px solid var(--border);height:28px;position:relative}.tl-month{border-left:1px solid var(--border-strong);white-space:nowrap;height:100%;padding:4px 8px;font-size:13px;font-weight:650;position:absolute;top:0;overflow:hidden}.tl-ticks{height:24px;position:relative}.tl-tick{height:100%;color:var(--text-3);border-left:1px solid var(--border);text-align:left;padding:3px 0 0 4px;font-size:12px;position:absolute;top:0;overflow:hidden}.tl-tick.we{background:var(--bg-sunken)}.tl-row{border-bottom:1px solid var(--border);height:60px;display:flex}.tl-row:hover .tl-left,.tl-row:hover .tl-track{background-color:color-mix(in srgb, var(--accent) 5%, var(--bg-elev))}.tl-name{text-align:left;cursor:pointer;color:inherit;border-top:0;border-bottom:0;border-left:0;align-items:center;gap:10px;padding:0 12px;display:flex}.tl-sw{border-radius:3px;flex:none;align-self:stretch;width:6px;margin:10px 0}.tl-nm{flex-direction:column;flex:1;min-width:0;line-height:1.3;display:flex}.tl-nm b{-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.25;display:-webkit-box;overflow:hidden}.tl-nm small{text-overflow:ellipsis;white-space:nowrap;color:var(--text-3);font-size:12px;overflow:hidden}.tl-bar{cursor:pointer;text-align:left;height:30px;box-shadow:var(--shadow-1);border:1.5px solid;border-radius:8px;align-items:center;padding:0;display:flex;position:absolute;top:15px;overflow:hidden}.tl-bar:hover{box-shadow:var(--shadow-2);filter:brightness(1.05)}.tl-bar.late{box-shadow:0 0 0 2px color-mix(in srgb, var(--danger) 55%, transparent)}.tl-bar.partial{border-style:dashed}.tl-fill{opacity:.55;position:absolute;top:0;bottom:0;left:0}.tl-lbl{color:var(--text);white-space:nowrap;padding:0 10px;font-size:13px;font-weight:600;position:relative}.tl-out{color:var(--text-2);white-space:nowrap;pointer-events:none;font-size:13px;position:absolute;top:19px}.tl-today{background:var(--danger);opacity:.75;z-index:4;pointer-events:none;width:2px;position:absolute;top:0;bottom:0}
