@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+460-52F,U+1C80-1C88,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+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-CGAr0uHJ.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-CaVNZxsx.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-CFHvXkgd.woff2)format("woff2-variations");unicode-range:U+100-2AF,U+304,U+308,U+329,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+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#f4f5fa;--surface:#fff;--surface-2:#f8f8fd;--surface-3:#efeffa;--line:#e6e7f1;--line-strong:#d6d8e6;--text:#1c1b2e;--text-2:#4b4b63;--muted:#6b6b82;--accent:#6d4fe8;--accent-strong:#5a3dd0;--accent-soft:#ece8ff;--accent-line:#cabffb;--chart-1:#8a63f2;--chart-2:#73c4f8;--chart-3:#1fb15c;--chart-4:#d9902f;--pos:#0b6a2d;--pos-bg:#e5f6ec;--warn:#8a5000;--warn-bg:#fdf1dc;--neg:#a92339;--neg-bg:#fde8ec;--info:#1f64ab;--info-bg:#e6f1fb;--radius:16px;--radius-sm:10px;--shadow:0 1px 2px #1f1c460a, 0 6px 20px #1f1c460d;--shadow-pop:0 12px 40px #1f1c462e;--font:"Inter Variable", "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--sidebar-w:252px}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font:14px/1.5 var(--font);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11", "ss01";margin:0}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;font-weight:650}h1{font-size:26px;line-height:1.2}h2{font-size:17px}h3{font-size:15px}p{margin:0}a{color:var(--accent-strong);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.num{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.small{font-size:12.5px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app{grid-template-columns:var(--sidebar-w) 1fr;min-height:100%;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;gap:6px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0;overflow-y:auto}.brand{align-items:center;gap:10px;padding:4px 10px 18px;font-size:19px;font-weight:650;display:flex}.brand-mark{background:linear-gradient(135deg,#8a63f2,#5a3dd0);border-radius:10px;place-items:center;width:34px;height:34px;display:grid}.nav a{color:var(--text-2);border-radius:12px;align-items:center;gap:12px;padding:10px 12px;font-weight:500;text-decoration:none;display:flex}.nav a:hover{background:var(--surface-3)}.nav a[aria-current=page]{background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.nav .count{background:var(--surface-3);color:var(--muted);border-radius:999px;margin-left:auto;padding:1px 8px;font-size:12px}.side-foot{margin-top:auto}.link-card{border:1px solid var(--line);background:var(--surface-2);border-radius:14px;align-items:center;gap:10px;padding:12px;display:flex}.dot{background:var(--line-strong);border-radius:50%;flex:none;width:9px;height:9px}.dot.ok{background:#1fb15c}.dot.warn{background:#e0a030}.dot.error{background:#d64560}.main{min-width:0;padding:24px 32px 48px}.topbar{flex-wrap:wrap;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.topbar .titles{flex:1;min-width:220px}.topbar .sub{color:var(--muted);margin-top:4px}.search-btn{background:var(--surface);border:1px solid var(--line);min-width:300px;color:var(--muted);cursor:pointer;box-shadow:var(--shadow);border-radius:14px;align-items:center;gap:10px;padding:10px 14px;display:flex}.search-btn kbd{font:12px var(--font);background:var(--surface-3);border-radius:6px;margin-left:auto;padding:1px 7px}.icon-btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;width:40px;height:40px;box-shadow:var(--shadow);border-radius:12px;place-items:center;display:grid}.avatar{background:var(--accent-soft);width:40px;height:40px;color:var(--accent-strong);cursor:pointer;border:0;border-radius:50%;place-items:center;font-weight:650;display:grid}.demo-banner{background:var(--warn-bg);color:var(--warn);border:1px solid #f0d49c;border-radius:12px;margin-bottom:16px;padding:8px 14px;font-size:13px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;padding:20px}.card-head{flex-wrap:wrap;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.card-head .grow{flex:1;min-width:0}.grid{gap:16px;display:grid}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g-main{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}.stack{gap:16px;display:grid}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.row.between{justify-content:space-between}.kpi{align-items:center;gap:14px;display:flex}.kpi-ico{border-radius:14px;flex:none;place-items:center;width:48px;height:48px;display:grid}.kpi-label{color:var(--muted);font-size:13px}.kpi-value{letter-spacing:-.02em;font-size:24px;font-weight:650}.kpi-note{color:var(--muted);font-size:12.5px}.btn{border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;border-radius:12px;align-items:center;gap:8px;padding:9px 16px;font-weight:550;line-height:1.2;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-3)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover:not(:disabled){background:var(--accent-strong)}.btn.danger{color:var(--neg);border-color:#f0c0c9}.btn.small{border-radius:10px;padding:5px 11px;font-size:13px}.btn.ghost{color:var(--accent-strong);background:0 0;border-color:#0000}.field{gap:5px;display:grid}.field>label,.lbl{color:var(--text-2);font-size:12.5px;font-weight:600}.input,select.input,textarea.input{border:1px solid var(--line-strong);background:var(--surface);border-radius:11px;width:100%;padding:9px 12px}.input:focus{border-color:var(--accent);outline:2px solid var(--accent-soft)}textarea.input{resize:vertical;min-height:84px}.hint{color:var(--muted);font-size:12px}.err{color:var(--neg);font-size:13px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;display:grid}.form-grid .wide{grid-column:1/-1}.tabs{border-bottom:1px solid var(--line);gap:4px;margin-bottom:16px;display:flex;overflow-x:auto}.tab{cursor:pointer;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;padding:9px 14px;font-weight:550}.tab[aria-selected=true]{color:var(--accent-strong);border-color:var(--accent)}.seg{background:var(--surface-3);border-radius:12px;padding:3px;display:inline-flex}.seg button{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:9px;padding:6px 12px;font-weight:550}.seg button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.badge{background:var(--surface-3);color:var(--text-2);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:2px 9px;font-size:12px;font-weight:600;display:inline-flex}.badge.pos{background:var(--pos-bg);color:var(--pos)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.neg{background:var(--neg-bg);color:var(--neg)}.badge.info{background:var(--info-bg);color:var(--info)}.badge.accent{background:var(--accent-soft);color:var(--accent-strong)}.badge.demo{background:var(--warn-bg);color:var(--warn);border:1px dashed #e0b565}.table-wrap{border:1px solid var(--line);background:var(--surface);border-radius:14px;overflow-x:auto}table.t{border-collapse:collapse;width:100%;font-size:13.5px}.t th{text-align:left;color:var(--muted);text-transform:none;background:var(--surface-2);border-bottom:1px solid var(--line);white-space:nowrap;padding:10px 14px;font-size:12px;font-weight:600}.t td{border-bottom:1px solid var(--line);vertical-align:top;padding:11px 14px}.t tr:last-child td{border-bottom:0}.t tr.click{cursor:pointer}.t tr.click:hover td{background:var(--surface-2)}.t td.r,.t th.r{text-align:right}.empty{text-align:center;color:var(--muted);padding:36px 16px}.empty b{color:var(--text);margin-bottom:4px;display:block}.list>*{border-bottom:1px solid var(--line);padding:11px 0}.list>:last-child{border-bottom:0}.bar{background:var(--surface-3);border-radius:99px;height:8px;overflow:hidden}.bar>i{background:var(--chart-1);border-radius:99px;height:100%;display:block}.check{border:1.5px solid var(--line-strong);background:var(--surface);cursor:pointer;border-radius:6px;flex:none;place-items:center;width:20px;height:20px;padding:0;display:grid}.check[aria-checked=true]{background:var(--accent);border-color:var(--accent);color:#fff}.legend{color:var(--muted);flex-wrap:wrap;gap:14px;font-size:12.5px;display:flex}.legend i{border-radius:3px;width:10px;height:10px;margin-right:6px;display:inline-block}.kanban{grid-auto-columns:minmax(230px,1fr);grid-auto-flow:column;gap:12px;padding-bottom:8px;display:grid;overflow-x:auto}.col{background:var(--surface-3);border-radius:14px;min-height:140px;padding:10px}.col.over{outline:2px dashed var(--accent)}.col h4{color:var(--text-2);justify-content:space-between;margin:2px 4px 10px;font-size:13px;display:flex}.kcard{background:var(--surface);border:1px solid var(--line);cursor:grab;box-shadow:var(--shadow);border-radius:12px;margin-bottom:8px;padding:10px 12px}.kcard:hover{border-color:var(--accent-line)}.overlay{z-index:50;background:#1c1b2e6b;justify-content:center;align-items:flex-start;padding:6vh 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--surface);box-shadow:var(--shadow-pop);border-radius:20px;width:min(640px,100%);padding:24px}.modal.wide{width:min(980px,100%)}.modal-head{align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.modal-head h2{flex:1}.modal-foot{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.palette{background:var(--surface);width:min(640px,100%);box-shadow:var(--shadow-pop);border-radius:18px;overflow:hidden}.palette input{border:0;border-bottom:1px solid var(--line);outline:none;width:100%;padding:16px 18px;font-size:16px}.palette ul{max-height:50vh;margin:0;padding:6px;list-style:none;overflow:auto}.palette li button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;width:100%;padding:10px 12px;display:flex}.palette li button:hover,.palette li button[data-active=true]{background:var(--accent-soft)}.toasts{z-index:80;gap:8px;display:grid;position:fixed;bottom:18px;right:18px}.toast{background:var(--text);color:#fff;box-shadow:var(--shadow-pop);border-radius:12px;max-width:380px;padding:11px 16px}.toast.error{background:var(--neg)}.menu{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-pop);z-index:40;border-radius:14px;min-width:220px;padding:6px;position:absolute;top:46px;right:0}.menu button,.menu a{text-align:left;cursor:pointer;width:100%;color:var(--text);background:0 0;border:0;border-radius:9px;padding:9px 12px;display:block}.menu button:hover{background:var(--surface-3)}.login{background:radial-gradient(1200px 500px at 20% -10%, #e5defe 0%, transparent 60%), var(--bg);place-items:center;min-height:100vh;padding:24px;display:grid}.login .card{width:min(420px,100%);padding:32px}.note-box{background:var(--accent-soft);border:1px solid var(--accent-line);color:var(--accent-strong);border-radius:12px;padding:10px 14px;font-size:13px}.warn-box{background:var(--warn-bg);color:var(--warn);border:1px solid #f0d49c;border-radius:12px;padding:10px 14px;font-size:13px}.mono{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:12.5px}.kv{grid-template-columns:170px 1fr;gap:6px 14px;font-size:13.5px;display:grid}.kv dt{color:var(--muted)}.kv dd{word-break:break-word;margin:0}.hamburger{display:none}.stepper{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px 8px;margin:0;padding:0;list-style:none;display:grid}.step{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;justify-items:start;gap:2px;padding:10px 12px;display:grid}.step-dot{border:2px solid var(--line-strong);width:22px;height:22px;color:var(--muted);background:var(--surface);border-radius:50%;place-items:center;font-size:12px;font-weight:700;display:grid}.step.done{background:var(--pos-bg);border-color:#bfe3cd}.step.done .step-dot{background:var(--pos);border-color:var(--pos);color:#fff}.step.pending{background:var(--warn-bg);border-color:#f0d49c}.step.pending .step-dot{border-color:var(--warn);color:var(--warn)}.step-name{font-size:13.5px;font-weight:650}.step-note{color:var(--text-2);font-size:12px}.step.none .step-name{color:var(--muted)}.timeline{margin:0;padding:0;list-style:none}.timeline li{border-bottom:1px solid var(--line);grid-template-columns:96px 1fr auto;align-items:baseline;gap:12px;padding:10px 0;display:grid}.timeline li:last-child{border-bottom:0}@media (width<=900px){.stepper{grid-template-columns:repeat(2,minmax(0,1fr))}.timeline li{grid-template-columns:1fr;gap:4px}}@media (width<=1180px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g-main{grid-template-columns:1fr}}@media (width<=900px){.app{grid-template-columns:1fr}.sidebar{z-index:60;width:min(86vw,290px);box-shadow:var(--shadow-pop);transition:transform .2s;position:fixed;top:0;left:0;transform:translate(-102%)}.sidebar.open{transform:none}.hamburger{display:grid}.main{padding:16px 16px 40px}.g3,.g2,.form-grid{grid-template-columns:1fr}.topbar{flex-wrap:nowrap;align-items:center;gap:8px}.topbar .titles{min-width:0}.topbar h1{font-size:20px}.topbar .sub{display:none}.search-btn{border-radius:12px;flex:none;justify-content:center;width:40px;min-width:0;height:40px;padding:0}.search-btn span,.search-btn kbd{display:none}.kv{grid-template-columns:1fr}}@media (width<=560px){.g4{grid-template-columns:1fr}h1{font-size:22px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media (pointer:coarse),(width<=720px){.btn{min-height:44px}.btn.small{min-height:40px;padding:8px 14px}a.small,.card-head a{align-items:center;min-height:40px;padding:0 4px;display:inline-flex}input[type=checkbox],input[type=radio]{width:22px;height:22px}select,input:not([type=checkbox]):not([type=radio]){min-height:44px;font-size:16px}}
