@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-B2xhLi22.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-CMZtQduZ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,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-CGAr0uHJ.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CaVNZxsx.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@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+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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-CFHvXkgd.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-C2S99t-D.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{--font: "Inter Variable", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace;--r-sm: 6px;--r: 10px;--r-lg: 14px;--r-xl: 20px;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 20px;--s6: 24px;--s8: 32px;--s10: 40px;--sidebar: 248px;--topbar: 60px;--ease: cubic-bezier(.2, .7, .2, 1);--bg: #F6F7F9;--surface: #FFFFFF;--surface-2: #F1F3F6;--surface-hover: #F4F6F9;--border: #E4E7EC;--border-strong: #D0D5DD;--text: #0B2545;--text-2: #475467;--text-3: #8A94A6;--primary: #1F5EFF;--primary-hover: #1748C9;--primary-soft: #EEF3FF;--primary-text: #FFFFFF;--accent: #FF7A00;--nav-bg: #0A1A4F;--nav-text: #C9D3F0;--nav-text-active: #FFFFFF;--nav-active: rgba(255, 255, 255, .09);--nav-border: rgba(255, 255, 255, .08);--ok: #067647;--ok-soft: #ECFDF3;--warn: #B54708;--warn-soft: #FFFAEB;--bad: #C01048;--bad-soft: #FFF1F3;--info: #1F5EFF;--info-soft: #EEF3FF;--neutral-soft: #F2F4F7;--series-1: #1F5EFF;--series-2: #eb6834;--grid: #EEF0F3;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .05);--shadow: 0 1px 3px rgba(16, 24, 40, .08), 0 1px 2px rgba(16, 24, 40, .04);--shadow-lg: 0 12px 32px -8px rgba(16, 24, 40, .18), 0 4px 8px -4px rgba(16, 24, 40, .06);--ring: 0 0 0 3px rgba(31, 94, 255, .25);color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0A0F1E;--surface: #111829;--surface-2: #172036;--surface-hover: #182238;--border: #232E48;--border-strong: #31405F;--text: #E7ECF6;--text-2: #A6B1C7;--text-3: #6F7B94;--primary: #4C7DFF;--primary-hover: #6B93FF;--primary-soft: #16244A;--nav-bg: #070C1A;--nav-text: #9FAACA;--ok: #47CD89;--ok-soft: #0D2A1D;--warn: #FDB022;--warn-soft: #2E2108;--bad: #FD6F8E;--bad-soft: #33101A;--info: #6B93FF;--info-soft: #16244A;--neutral-soft: #1B2540;--series-1: #4C7DFF;--series-2: #d95926;--grid: #1C2640;--shadow-sm: none;--shadow: 0 1px 2px rgba(0, 0, 0, .4);--shadow-lg: 0 16px 40px -8px rgba(0, 0, 0, .6);--ring: 0 0 0 3px rgba(76, 125, 255, .35);color-scheme:dark}}:root[data-theme=dark]{--bg: #0A0F1E;--surface: #111829;--surface-2: #172036;--surface-hover: #182238;--border: #232E48;--border-strong: #31405F;--text: #E7ECF6;--text-2: #A6B1C7;--text-3: #6F7B94;--primary: #4C7DFF;--primary-hover: #6B93FF;--primary-soft: #16244A;--nav-bg: #070C1A;--nav-text: #9FAACA;--ok: #47CD89;--ok-soft: #0D2A1D;--warn: #FDB022;--warn-soft: #2E2108;--bad: #FD6F8E;--bad-soft: #33101A;--info: #6B93FF;--info-soft: #16244A;--neutral-soft: #1B2540;--series-1: #4C7DFF;--series-2: #d95926;--grid: #1C2640;--shadow-sm: none;--shadow: 0 1px 2px rgba(0, 0, 0, .4);--shadow-lg: 0 16px 40px -8px rgba(0, 0, 0, .6);--ring: 0 0 0 3px rgba(76, 125, 255, .35);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}[hidden]{display:none!important}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 var(--font);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01","tnum" 0}h1,h2,h3,h4{margin:0;letter-spacing:-.015em;color:var(--text)}h1{font-size:22px;font-weight:650}h2{font-size:16px;font-weight:620}h3{font-size:14px;font-weight:600}p{margin:0}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--r-sm)}.num{font-variant-numeric:tabular-nums}.muted{color:var(--text-2)}.subtle{color:var(--text-3);font-size:12.5px}.mono{font-family:var(--mono);font-size:12.5px}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row{display:flex;align-items:center;gap:var(--s2)}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.stack{display:grid;gap:var(--s4)}.stack-sm{display:grid;gap:var(--s2)}.grow{flex:1;min-width:0}.grid-2{display:grid;gap:var(--s4);grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{display:grid;gap:var(--s4);grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{display:grid;gap:var(--s4);grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:1100px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}@media(max-width:720px){.grid-2,.grid-3,.grid-4{grid-template-columns:minmax(0,1fr)}}::selection{background:var(--primary-soft)}.shell{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);min-height:100%}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:var(--s2);background:var(--nav-bg);color:var(--nav-text);padding:var(--s4) var(--s3);border-right:1px solid var(--nav-border)}.brand{display:flex;align-items:center;gap:10px;padding:6px 8px 14px;color:#fff;text-decoration:none}.brand:hover{text-decoration:none}.brand-mark{width:30px;height:30px;border-radius:9px;flex:none}.brand-name{font-weight:720;font-size:16px;letter-spacing:-.02em}.brand-name b{color:var(--accent);font-weight:720}.brand-sub{display:block;font-size:11px;color:var(--nav-text);font-weight:500;letter-spacing:.02em}.nav-group{display:grid;gap:2px}.nav-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:#c9d3f08c;padding:12px 10px 4px}.nav-link{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;color:var(--nav-text);font-weight:520;text-decoration:none;transition:background .15s var(--ease),color .15s var(--ease)}.nav-link svg{width:17px;height:17px;flex:none;opacity:.85}.nav-link:hover{background:var(--nav-active);color:#fff;text-decoration:none}.nav-link.active{background:var(--nav-active);color:var(--nav-text-active);box-shadow:inset 2px 0 0 var(--accent)}.nav-link .badge-count{margin-left:auto;font-size:11px;background:#ffffff1f;padding:0 7px;border-radius:99px}.sidebar-foot{margin-top:auto;border-top:1px solid var(--nav-border);padding-top:var(--s3);display:grid;gap:4px}.user-chip{display:flex;align-items:center;gap:10px;padding:6px 8px;color:#fff}.avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;flex:none;background:linear-gradient(135deg,var(--primary),#6B93FF);color:#fff;font-weight:650;font-size:12.5px}.main{min-width:0;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:5;height:var(--topbar);display:flex;align-items:center;gap:var(--s3);padding:0 var(--s6);background:color-mix(in srgb,var(--bg) 85%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--border)}.crumbs{display:flex;align-items:center;gap:6px;color:var(--text-2);font-size:13px;min-width:0}.crumbs a{color:var(--text-2)}.crumbs strong{color:var(--text);font-weight:600}.content{padding:var(--s6);max-width:1320px;width:100%;margin:0 auto;display:grid;gap:var(--s6);align-content:start}.topbar .menu-btn{display:none}@media(max-width:900px){.shell{grid-template-columns:minmax(0,1fr)}.sidebar{position:fixed;inset:0 auto 0 0;width:280px;z-index:30;transform:translate(-100%);transition:transform .22s var(--ease)}.shell.nav-open .sidebar{transform:none;box-shadow:var(--shadow-lg)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#050a1e73;z-index:25}.topbar .menu-btn{display:inline-flex}.topbar{padding:0 var(--s4)}.content{padding:var(--s4);gap:var(--s4)}}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s4);flex-wrap:wrap}.page-head .desc{color:var(--text-2);margin-top:4px;max-width:70ch}.page-actions{display:flex;gap:var(--s2);flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 14px;border-radius:9px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-weight:560;cursor:pointer;white-space:nowrap;text-decoration:none;box-shadow:var(--shadow-sm);transition:background .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease)}.btn:hover{background:var(--surface-hover);text-decoration:none}.btn:disabled{opacity:.55;cursor:default}.btn svg{width:16px;height:16px}.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-text)}.btn.primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn.danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,var(--border))}.btn.danger:hover{background:var(--bad-soft)}.btn.ghost{border-color:transparent;background:transparent;box-shadow:none;color:var(--text-2)}.btn.ghost:hover{background:var(--surface-2);color:var(--text)}.btn.sm{height:30px;padding:0 10px;font-size:13px;border-radius:8px}.btn.icon{width:36px;padding:0}.btn.sm.icon{width:30px}.topbar .btn.ghost,.sidebar .btn.ghost{color:inherit}.sidebar .btn.ghost:hover{background:var(--nav-active);color:#fff}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.card-pad{padding:var(--s5)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:var(--s4) var(--s5);border-bottom:1px solid var(--border)}.card-body{padding:var(--s5)}.card-foot{padding:var(--s3) var(--s5);border-top:1px solid var(--border)}.stat{padding:var(--s5);display:grid;gap:6px}.stat-label{display:flex;align-items:center;gap:8px;color:var(--text-2);font-size:13px;font-weight:520}.stat-label svg{width:16px;height:16px;color:var(--text-3)}.stat-value{font-size:26px;font-weight:680;letter-spacing:-.025em;font-variant-numeric:tabular-nums}.stat-foot{font-size:12.5px;color:var(--text-3)}.stat.bad .stat-value{color:var(--bad)}.badge{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border-radius:99px;font-size:12px;font-weight:560;white-space:nowrap;background:var(--neutral-soft);color:var(--text-2)}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.8}.badge.plain:before{display:none}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.bad{background:var(--bad-soft);color:var(--bad)}.badge.info{background:var(--info-soft);color:var(--info)}.table-wrap{overflow-x:auto}table.table{width:100%;border-collapse:separate;border-spacing:0}.table th{text-align:left;font-size:12px;font-weight:560;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;padding:10px var(--s4);border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;white-space:nowrap}.table td{padding:12px var(--s4);border-bottom:1px solid var(--border);vertical-align:middle}.table tr:last-child td{border-bottom:0}.table tbody tr{transition:background .12s}.table tbody tr.click{cursor:pointer}.table tbody tr.click:hover{background:var(--surface-hover)}.table .right{text-align:right}.cell-title{font-weight:580;color:var(--text)}.cell-sub{font-size:12.5px;color:var(--text-3)}.field{display:grid;gap:6px}.field>span{font-size:13px;font-weight:560;color:var(--text-2)}.field .hint{font-size:12px;color:var(--text-3);font-weight:400}.input,.select,.textarea{width:100%;height:38px;padding:0 12px;border-radius:9px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm);transition:border-color .15s,box-shadow .15s}.textarea{height:auto;min-height:90px;padding:10px 12px;resize:vertical;line-height:1.45}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--primary);box-shadow:var(--ring)}.input-group{display:flex;align-items:stretch}.input-group .addon{display:grid;place-items:center;padding:0 10px;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text-3);font-size:13px}.input-group .addon:first-child{border-radius:9px 0 0 9px;border-right:0}.input-group .addon:last-child{border-radius:0 9px 9px 0;border-left:0}.input-group .input{border-radius:0}.input-group .input:first-child{border-radius:9px 0 0 9px}.input-group .input:last-child{border-radius:0 9px 9px 0}.form-grid{display:grid;gap:var(--s4);grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid .full{grid-column:1 / -1}@media(max-width:640px){.form-grid{grid-template-columns:minmax(0,1fr)}}.search{position:relative}.search svg{position:absolute;left:11px;top:50%;width:16px;height:16px;transform:translateY(-50%);color:var(--text-3)}.search .input{padding-left:34px}.toolbar{display:flex;gap:var(--s2);flex-wrap:wrap;align-items:center}.toolbar .search{width:min(320px,100%)}.seg{display:inline-flex;padding:3px;gap:2px;border-radius:10px;background:var(--surface-2);border:1px solid var(--border)}.seg button{white-space:nowrap;border:0;background:transparent;padding:5px 11px;border-radius:7px;color:var(--text-2);font-weight:540;cursor:pointer;font-size:13px}.seg button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.dialog{border:0;padding:0;background:transparent;max-width:none;max-height:none}.dialog::backdrop{background:#050a1e80;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.dialog-panel{width:min(640px,calc(100vw - 24px));max-height:calc(100dvh - 48px);display:flex;flex-direction:column;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-lg)}.dialog-panel.lg{width:min(860px,calc(100vw - 24px))}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s3);padding:var(--s5) var(--s6) var(--s3)}.dialog-head p{color:var(--text-2);margin-top:4px;font-size:13.5px}.dialog-body{padding:var(--s2) var(--s6) var(--s5);overflow:auto}.dialog-foot{display:flex;justify-content:flex-end;gap:var(--s2);padding:var(--s4) var(--s6);border-top:1px solid var(--border)}.dialog-foot .left{margin-right:auto}.empty{display:grid;justify-items:center;gap:8px;text-align:center;padding:var(--s10) var(--s6);color:var(--text-2)}.empty svg{width:34px;height:34px;color:var(--text-3)}.empty h3{color:var(--text)}.skeleton{background:linear-gradient(90deg,var(--surface-2),var(--surface-hover),var(--surface-2));background-size:200% 100%;animation:shimmer 1.2s infinite;border-radius:8px;min-height:16px}@keyframes shimmer{to{background-position:-200% 0}}.toasts{position:fixed;right:20px;bottom:20px;display:grid;gap:8px;z-index:60}.toast{display:flex;align-items:center;gap:10px;min-width:260px;max-width:min(420px,calc(100vw - 40px));padding:12px 14px;border-radius:12px;background:var(--nav-bg);color:#fff;box-shadow:var(--shadow-lg);animation:rise .2s var(--ease)}.toast.bad{background:#7a0a2c}.toast svg{width:18px;height:18px;flex:none}@keyframes rise{0%{transform:translateY(8px);opacity:0}}.alert{display:flex;gap:10px;padding:12px 14px;border-radius:12px;background:var(--warn-soft);color:var(--warn);font-size:13.5px}.alert.bad{background:var(--bad-soft);color:var(--bad)}.alert.info{background:var(--info-soft);color:var(--info)}.alert svg{width:18px;height:18px;flex:none;margin-top:1px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);overflow-x:auto}.tabs button{border:0;background:none;padding:10px 12px;margin-bottom:-1px;color:var(--text-2);font-weight:560;cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap}.tabs button.on{color:var(--text);border-bottom-color:var(--primary)}.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(260px,1fr);gap:var(--s3);overflow-x:auto;padding-bottom:6px;align-items:start}.column{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--s2);display:grid;gap:var(--s2);min-height:120px}.column.drop{border-color:var(--primary);background:var(--primary-soft)}.column-head{display:flex;align-items:center;justify-content:space-between;padding:6px 8px 2px}.column-head h3{display:flex;align-items:center;gap:8px;font-size:13px}.column-head .count{font-size:12px;color:var(--text-3);font-weight:500}.column-sum{padding:0 8px 4px;font-size:12px;color:var(--text-3)}.kcard{background:var(--surface);border:1px solid var(--border);border-radius:11px;padding:12px;display:grid;gap:6px;cursor:pointer;box-shadow:var(--shadow-sm);transition:border-color .15s,box-shadow .15s,transform .15s}.kcard:hover{border-color:var(--border-strong);box-shadow:var(--shadow)}.kcard.dragging{opacity:.5}.kcard-title{font-weight:600;line-height:1.35}.kcard-meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center;color:var(--text-3);font-size:12.5px}.kcard-meta svg{width:13px;height:13px}.progress{height:6px;border-radius:99px;background:var(--surface-2);overflow:hidden}.progress>i{display:block;height:100%;background:var(--primary);border-radius:inherit}.list{display:grid;grid-template-columns:minmax(0,1fr)}.list-item{display:flex;align-items:center;gap:var(--s3);padding:12px var(--s5);border-bottom:1px solid var(--border);text-decoration:none;color:inherit}.list-item:last-child{border-bottom:0}a.list-item:hover{background:var(--surface-hover);text-decoration:none}.list-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex:none;background:var(--surface-2);color:var(--text-2)}.list-icon svg{width:17px;height:17px}.list-icon.ok{background:var(--ok-soft);color:var(--ok)}.list-icon.info{background:var(--info-soft);color:var(--info)}.list-icon.warn{background:var(--warn-soft);color:var(--warn)}.list-icon.bad{background:var(--bad-soft);color:var(--bad)}.date-chip{display:grid;place-items:center;width:44px;flex:none;line-height:1.1;border-radius:10px;padding:5px 0;background:var(--surface-2);color:var(--text-2);font-size:11px;text-transform:uppercase}.date-chip b{font-size:16px;color:var(--text)}.kv{display:grid;grid-template-columns:140px 1fr;gap:10px 16px}.kv dt{color:var(--text-3);font-size:13px}.kv dd{margin:0;min-width:0;overflow-wrap:anywhere}@media(max-width:640px){.kv{grid-template-columns:minmax(0,1fr);gap:2px 0}.kv dd{margin-bottom:8px}}.chart{width:100%;height:auto;display:block}.chart text{fill:var(--text-3);font-size:11px;font-family:var(--font)}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--text-2)}.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}.login-page{min-height:100%;display:grid;grid-template-columns:1.1fr 1fr}.login-hero{background:radial-gradient(1200px 600px at 10% 10%,#1748C9 0%,transparent 60%),var(--nav-bg);color:#fff;padding:48px;display:flex;flex-direction:column;justify-content:space-between}.login-hero h1{color:#fff;font-size:34px;line-height:1.15;max-width:16ch;font-weight:700;letter-spacing:-.03em}.login-hero p{color:#c9d3f0;max-width:46ch;margin-top:12px;font-size:15px}.login-side{display:grid;place-items:center;padding:32px 20px}.login-card{width:min(380px,100%);display:grid;gap:var(--s4)}@media(max-width:860px){.login-page{grid-template-columns:minmax(0,1fr)}.login-hero{display:none}}.bottom-nav,.show-sm{display:none}@media(max-width:900px){.bottom-nav{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:fixed;left:0;right:0;bottom:0;z-index:20;background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);border-top:1px solid var(--border);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}.bottom-nav a,.bottom-nav button{display:grid;justify-items:center;gap:2px;padding:4px 0;border:0;background:none;color:var(--text-3);font-size:10.5px;font-weight:560;text-decoration:none;cursor:pointer}.bottom-nav svg{width:21px;height:21px}.bottom-nav a.on{color:var(--primary)}.bottom-nav a:hover{text-decoration:none}.content{padding-bottom:calc(84px + env(safe-area-inset-bottom))}.toasts{bottom:calc(80px + env(safe-area-inset-bottom));right:12px;left:12px}.toast{min-width:0;max-width:none}.page-head h1{font-size:20px}.stat{padding:var(--s4)}.stat-value{font-size:22px}.board{grid-auto-columns:minmax(78vw,1fr);scroll-snap-type:x mandatory}.column{scroll-snap-align:start}.dialog-panel{width:100vw;max-height:92dvh;border-radius:20px 20px 0 0;margin:auto 0 0}.dialog-head{padding:var(--s4) var(--s4) var(--s2)}.dialog-body{padding:var(--s2) var(--s4) var(--s4)}.dialog-foot{padding:var(--s3) var(--s4) calc(var(--s3) + env(safe-area-inset-bottom));flex-wrap:wrap}.card-head{flex-wrap:wrap;padding:var(--s3) var(--s4)}.card-body{padding:var(--s4)}.list-item{padding:12px var(--s4)}.table td,.table th{padding-left:10px;padding-right:10px}}@media(max-width:640px){.hide-sm{display:none}.show-sm{display:inline}.toolbar .search{width:100%}.toolbar .seg{max-width:100%;overflow-x:auto}.page-actions{width:100%}.page-actions .btn{flex:1}.grid-4{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s3)}.grid-3{grid-template-columns:minmax(0,1fr);gap:var(--s3)}.stat-value{font-size:19px}.stat-foot{font-size:11.5px}}@media(max-width:640px){.table.cards thead{display:none}.table.cards,.table.cards tbody{display:block}.table.cards tr{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main val" "status act";gap:8px 12px;align-items:center;padding:12px var(--s4);border-bottom:1px solid var(--border)}.table.cards tr:last-child{border-bottom:0}.table.cards td{display:block;padding:0;border:0}.table.cards td.hide-sm{display:none}.table.cards .c-main{grid-area:main;min-width:0}.table.cards .c-val{grid-area:val}.table.cards .c-status{grid-area:status}.table.cards .c-act{grid-area:act}}.grid-wide{display:grid;gap:var(--s4);grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}@media(max-width:1000px){.grid-wide{grid-template-columns:minmax(0,1fr)}}
