:root{--bg:#eef1f6;--surface:#fff;--surface-2:#f8fafc;--border:#e5e8ef;--border-strong:#d5dae2;--text:#131925;--text-muted:#5a6675;--text-soft:#8a94a4;--primary:#2563eb;--primary-hover:#1d4ed8;--primary-soft:#eef4ff;--accent:#3b82f6;--danger:#ef4444;--ok-bg:#dcfce7;--ok-fg:#166534;--pos:#16a34a;--warn-bg:#fef3c7;--warn-fg:#92650e;--info-bg:#e0f2fe;--info-fg:#075985;--r-sm:8px;--r:10px;--r-lg:14px;--header-h:64px;--ring:0 0 0 3px #2563eb2e;--shadow-sm:0 1px 2px #1018280a, 0 1px 3px #1018280f;--shadow-md:0 4px 12px #10182814, 0 2px 4px #1018280a;--shadow-lg:0 18px 45px #0f172a38;--nav-bg:#0f1729;--nav-fg:#aeb8c8;--nav-fg-strong:#f4f7fb;--nav-active-bg:#1d2b4a;--nav-hover-bg:#17223c;--sidebar-w:244px}*{box-sizing:border-box}html,body{height:100%}.hidden{display:none!important}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}.shell{grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh;transition:grid-template-columns .2s;display:grid}.sidebar{background:var(--nav-bg);color:var(--nav-fg);flex-direction:column;height:100vh;display:flex;position:sticky;top:0}.brand{color:var(--nav-fg-strong);letter-spacing:-.01em;align-items:center;gap:10px;padding:20px 20px 16px;font-size:1.08rem;font-weight:700;display:flex}.brand .logo{background:linear-gradient(135deg, var(--accent), var(--primary-hover));border-radius:8px;flex:none;place-items:center;width:30px;height:30px;font-size:1rem;display:grid}.brand-name{letter-spacing:-.01em;font-size:1.02rem;font-weight:700;line-height:1.2}.brand-org{color:var(--nav-fg);cursor:pointer;align-items:center;gap:5px;margin-top:3px;font-size:.78rem;font-weight:500;display:inline-flex}.brand-org:hover{color:var(--nav-fg-strong)}.brand-org .chev{opacity:.8;font-size:.7rem}.org-switch{background:var(--nav-active-bg);border-radius:var(--r);color:var(--nav-fg-strong);cursor:pointer;align-items:center;gap:8px;margin:0 14px 12px;padding:10px 12px;font-size:.84rem;display:flex}.org-switch .sub{color:var(--nav-fg);font-size:.74rem}.org-switch .chev{opacity:.7;margin-left:auto}.nav{scrollbar-width:none;-ms-overflow-style:none;flex:1;padding:6px 12px;overflow-y:auto}.nav::-webkit-scrollbar{width:0;height:0;display:none}.nav-group{color:var(--text-soft);text-transform:uppercase;letter-spacing:.06em;padding:14px 12px 6px;font-size:.68rem}.nav a{border-radius:var(--r-sm);color:var(--nav-fg);align-items:center;gap:11px;margin-bottom:2px;padding:9px 12px;font-size:.9rem;font-weight:500;text-decoration:none;transition:background .12s,color .12s;display:flex}.nav a .ico{text-align:center;width:20px;font-size:1rem}.nav a.cat-leaf .ico{opacity:.9;font-size:.56rem}[data-ic=📁]{filter:grayscale()}.nav a:hover{background:var(--nav-hover-bg);color:var(--nav-fg-strong)}.nav a.active{background:var(--nav-active-bg);color:var(--nav-fg-strong);box-shadow:inset 3px 0 0 var(--accent)}.nav a .count{color:var(--nav-fg-strong);background:#22314f;border-radius:999px;margin-left:auto;padding:1px 8px;font-size:.72rem}.nav .nav-item{margin-bottom:2px}.nav .parent .caret{opacity:.8;margin-left:auto;font-size:.7rem;transition:transform .15s}.nav .parent.open .caret{transform:rotate(90deg)}.nav .sub{margin:2px 0 6px;display:none}.nav .sub.open{display:block}.nav .sub a{color:var(--nav-fg);padding:7px 12px 7px 44px;font-size:.84rem;position:relative}.nav .sub a:hover{background:var(--nav-hover-bg);color:var(--nav-fg-strong)}.nav .sub a.active{box-shadow:none;color:var(--nav-fg-strong);background:0 0;font-weight:600}.nav .sub a.active:before{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px;margin-top:-3px;position:absolute;top:50%;left:26px}.side-foot{border-top:1px solid #1c2740;align-items:center;gap:10px;padding:14px;display:flex}.avatar{color:#fff;background:linear-gradient(135deg,#38bdf8,#6366f1);border-radius:50%;flex:none;place-items:center;width:34px;height:34px;font-size:.82rem;font-weight:650;display:grid}.side-foot .who-col{flex-direction:column;gap:12px;min-width:0;display:flex}.side-foot .who{color:var(--nav-fg-strong);white-space:nowrap;text-overflow:ellipsis;font-size:.84rem;line-height:1.2;overflow:hidden}.side-foot .who small{color:var(--nav-fg);font-size:.72rem}.side-foot .foot-settings{color:var(--nav-fg);align-items:center;gap:4px;font-size:.74rem;line-height:1;text-decoration:none;display:inline-flex}.side-foot .foot-settings:hover{color:var(--nav-fg-strong)}.side-foot .out{color:#fff;background:var(--danger);cursor:pointer;border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;width:22px;height:22px;margin-left:auto;padding:0;font-size:.72rem;line-height:1;display:inline-flex}.side-foot .out:hover{background:#dc2626}.main{flex-direction:column;min-width:0;display:flex}.header{z-index:20;box-sizing:border-box;height:var(--header-h);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);background:#ffffffd9;align-items:center;gap:14px;padding:14px 26px;display:flex;position:sticky;top:0}.header .burger{cursor:pointer;color:var(--text);background:0 0;border:0;font-size:1.3rem;display:none}.page-title{letter-spacing:-.01em;font-size:1.15rem;font-weight:700}.page-title .crumb{color:var(--text-soft);font-size:.82rem;font-weight:500;display:block}.header .spacer{flex:1}.search{position:relative}.search input{border:1px solid var(--border-strong);background:var(--surface-2);border-radius:999px;width:260px;max-width:40vw;padding:9px 12px 9px 34px;font-size:.88rem;transition:box-shadow .15s,border-color .15s}.search input:focus{border-color:var(--primary);box-shadow:var(--ring);background:#fff;outline:none}.search .mag{color:var(--text-soft);font-size:.9rem;position:absolute;top:50%;left:12px;transform:translateY(-50%)}#langsel{background:var(--surface-2);border:1px solid var(--border-strong);border-radius:999px;padding:9px 12px;font-size:.88rem}#langsel:hover{border-color:#b9c1cd}#langsel:focus{border-color:var(--primary);box-shadow:var(--ring);background:#fff;outline:none}.lang-wrap{flex:none;position:relative}.lang-select{background:var(--surface-2);border:1px solid var(--border-strong);width:auto;height:32px;color:var(--text);cursor:pointer;box-shadow:none;border-radius:999px;align-items:center;gap:7px;padding:5px 10px 5px 8px;font-size:.82rem;font-weight:500;line-height:1;display:inline-flex}.lang-select:hover{background:var(--surface-2);border-color:#b9c1cd}.lang-select:focus-visible{border-color:var(--primary);box-shadow:var(--ring);background:#fff;outline:none}.lang-select:active{transform:none}.lang-caret{color:var(--text-soft);font-size:.7rem;line-height:1}.flag{border-radius:2px;flex:none;display:block;box-shadow:inset 0 0 0 1px #1018282e}.lang-name{white-space:nowrap}.lang-menu{z-index:1000;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-sm);min-width:172px;box-shadow:var(--shadow-lg);margin:0;padding:4px;list-style:none;position:fixed}.lang-opt{width:100%;color:var(--text);text-align:left;cursor:pointer;box-shadow:none;background:0 0;border:0;border-radius:6px;align-items:center;gap:9px;padding:8px 10px;font-size:.87rem;font-weight:500;line-height:1.2;display:flex}.lang-opt:hover{background:var(--surface-2)}.lang-opt:focus-visible{background:var(--surface-2);box-shadow:var(--ring);outline:none}.lang-opt:active{transform:none}.lang-opt.is-active{background:var(--primary-soft);color:var(--primary-hover)}.lang-check{color:var(--primary);margin-left:auto;font-size:.8rem}.online-users{flex:none;position:relative}.online-strip{background:var(--surface-2);border:1px solid var(--border-strong);height:32px;box-shadow:none;border-radius:999px;align-items:center;gap:0;padding:2px 8px 2px 6px;display:flex}.online-strip:hover{background:var(--surface-2);border-color:#b9c1cd}.online-strip .dot{background:#16a34a;border-radius:50%;flex:none;width:7px;height:7px;margin-right:7px;box-shadow:0 0 0 2px #16a34a2e}.online-strip .face{margin-left:-7px}.online-strip .face:first-of-type{margin-left:0}.face{background:var(--primary);color:#fff;box-sizing:border-box;border:2px solid #fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:26px;height:26px;font-size:.68rem;font-weight:600;display:inline-flex;overflow:hidden}.face img{object-fit:cover;width:100%;height:100%;display:block}.face.more{background:var(--surface);color:var(--text-soft);border-color:#fff;font-size:.66rem}.face.sm{border-width:1px;width:24px;height:24px;font-size:.64rem}.online-pop{z-index:40;border:1px solid var(--border);border-radius:var(--r-sm);min-width:220px;max-width:280px;max-height:60vh;box-shadow:var(--shadow-md);background:#fff;padding:8px 0;position:absolute;top:calc(100% + 8px);right:0;overflow-y:auto}.online-pop .pop-head{color:var(--text-soft);text-transform:uppercase;letter-spacing:.04em;padding:4px 12px 8px;font-size:.72rem;font-weight:600}.online-pop ul{margin:0;padding:0;list-style:none}.online-pop li{align-items:center;gap:8px;padding:6px 12px;font-size:.84rem;display:flex}.online-pop li .nm{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.content{padding:24px 26px 60px}button{border-radius:var(--r-sm);background:var(--primary);color:#fff;cursor:pointer;box-shadow:var(--shadow-sm);border:0;padding:9px 16px;font-size:.9rem;font-weight:550;transition:background .15s,transform 50ms}button:hover{background:var(--primary-hover)}button:active{transform:translateY(1px)}button.ghost{background:var(--surface-2);color:var(--text);border:1px solid var(--border-strong);box-shadow:none}button.ghost:hover{background:#eef1f5}button.small{padding:6px 11px;font-size:.78rem}button.danger{background:var(--danger);color:#fff}button.danger:hover{background:#dc2626}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);margin-bottom:20px;padding:20px}.card>h2{margin:0 0 14px;font-size:1.02rem;font-weight:650}.muted{color:var(--text-soft);font-size:.82rem}label{color:var(--text-muted);margin:10px 0 4px;font-size:.78rem;font-weight:500;display:block}input,select,textarea{border:1px solid var(--border-strong);border-radius:var(--r-sm);width:100%;color:var(--text);background:var(--surface);box-sizing:border-box;padding:10px 12px;font-size:.92rem;transition:border-color .15s,box-shadow .15s}input:hover,select:hover,textarea:hover{border-color:#b9c1cd}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:var(--ring);outline:none}textarea{resize:vertical;min-height:68px;font-family:inherit;line-height:1.45}.kpis{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px;display:grid}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:16px 18px}.kpi .k-label{color:var(--text-muted);align-items:center;gap:8px;font-size:.78rem;font-weight:500;display:flex}.kpi .k-ico{background:var(--primary-soft);border-radius:9px;place-items:center;width:30px;height:30px;font-size:.95rem;display:grid}.kpi .k-val{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:8px;font-size:1.5rem;font-weight:750}.kpi .k-chg{margin-top:2px;font-size:.76rem}.up{color:#16a34a}.down{color:var(--danger)}.toolbar .grow{flex:1}.seg{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:3px;display:inline-flex}.seg button{color:var(--text-muted);box-shadow:none;background:0 0;padding:6px 12px;font-size:.82rem}.seg button.on{color:var(--text);box-shadow:var(--shadow-sm);background:#fff}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums;padding:11px 12px;font-size:.87rem}th{color:var(--text-soft);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:600}td.num,th.num{text-align:right}tbody tr{transition:background .12s}tbody tr:hover{background:var(--surface-2)}tbody tr:last-child td{border-bottom:0}.badge{border-radius:999px;padding:3px 10px;font-size:.72rem;font-weight:600;display:inline-block}.badge.sq{border-radius:5px;padding:2px 7px}.sticky-head thead th{top:var(--header-h);z-index:5;background:var(--surface);box-shadow:inset 0 -1px 0 var(--border);position:sticky}.mtx-scroll{overflow:auto}.mtx-scroll .sticky-head thead th{top:0}.mtx-scroll .sticky-head th:first-child,.mtx-scroll .sticky-head td:first-child{z-index:4;background:var(--surface);box-shadow:inset -1px 0 0 var(--border);position:sticky;left:0}.mtx-scroll .sticky-head thead th:first-child{z-index:6}.filelink{color:var(--primary);cursor:pointer}.filelink:hover{text-decoration:underline}.b-ok{background:var(--ok-bg);color:var(--ok-fg)}.b-warn{background:var(--warn-bg);color:var(--warn-fg)}.b-info{background:var(--info-bg);color:var(--info-fg)}.b-mut{color:var(--text-muted);background:#eef1f5}.b-danger{color:#b91c1c;background:#fee2e2}.cust{align-items:center;gap:10px;display:flex}.cust .ava{color:#fff;background:linear-gradient(135deg,#60a5fa,#4338ca);border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-size:.74rem;font-weight:650;display:grid}.rowbtn{color:var(--primary);box-shadow:none;background:0 0;padding:5px 8px;font-size:.82rem;font-weight:600}.rowbtn:hover{background:var(--primary-soft)}.pager{color:var(--text-muted);align-items:center;gap:10px;margin-top:14px;font-size:.85rem;display:flex}.pager .grow{flex:1}.demo-flag{background:var(--warn-bg);color:var(--warn-fg);border-radius:999px;align-items:center;gap:8px;margin-bottom:18px;padding:8px 14px;font-size:.8rem;font-weight:600;display:inline-flex}.collapse-btn{box-shadow:none;color:var(--text-muted);cursor:pointer;border-radius:var(--r-sm);background:0 0;border:0;justify-content:center;align-items:center;padding:5px 8px;font-size:1.2rem;display:inline-flex}.collapse-btn:hover{background:var(--surface-2);color:var(--text)}.sidebar{transition:none}.shell.collapsed{grid-template-columns:70px 1fr}.shell.collapsed .brand{justify-content:center;padding:20px 0 16px}.shell.collapsed .brand-text{display:none}.shell.collapsed .org-switch{justify-content:center;margin:0 12px 12px;padding:10px 0}.shell.collapsed .org-switch .os-text,.shell.collapsed .org-switch .chev{display:none}.shell.collapsed .nav{padding:6px 10px}.shell.collapsed .nav-group{color:#0000;background:#1f2c49;height:1px;margin:12px 8px;padding:0;overflow:hidden}.shell.collapsed .nav a{justify-content:center;padding:11px 0}.shell.collapsed .nav a .lbl,.shell.collapsed .nav a .count,.shell.collapsed .nav .parent .caret,.shell.collapsed .nav .sub{display:none}.shell.collapsed .side-foot{justify-content:center;padding:14px 0}.shell.collapsed .side-foot .who-col,.shell.collapsed .side-foot .out{display:none}.filter{position:relative}.filter-drop{z-index:40;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r);min-width:240px;box-shadow:var(--shadow-md);display:none;position:absolute;top:calc(100% + 6px);left:0;overflow:hidden}.filter.open .filter-drop{display:block}.filter-search{border-bottom:1px solid var(--border);padding:8px}.filter-search input{border:1px solid var(--border-strong);border-radius:var(--r-sm);width:100%;padding:8px 10px;font-size:.85rem}.filter-search input:focus{border-color:var(--primary);box-shadow:var(--ring);outline:none}.filter-list{max-height:240px;padding:4px;overflow-y:auto}.filter-item{border-radius:var(--r-sm);cursor:pointer;padding:8px 10px;font-size:.87rem}.filter-item:hover{background:var(--surface-2)}.filter-item.chosen{color:var(--primary);background:var(--primary-soft);font-weight:600}.filter-item.hide{display:none}.filter-empty{color:var(--text-soft);padding:10px;font-size:.84rem}.ord-chips{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 14px;display:flex}.chip{background:var(--primary-soft);color:var(--primary-hover);border:1px solid #d6e4ff;border-radius:999px;align-items:center;gap:6px;padding:4px 6px 4px 11px;font-size:.8rem;font-weight:550;display:inline-flex}.chip button{box-shadow:none;color:inherit;cursor:pointer;background:0 0;border:0;padding:0 2px;font-size:.9rem;line-height:1}.chip button:hover{color:var(--danger)}.filter.field{display:block}.filter.field .filter-btn{text-align:left;background:var(--surface);width:100%;color:var(--text);border:1px solid var(--border-strong);box-shadow:none;padding:10px 30px 10px 12px;font-size:.92rem;font-weight:400}.filter.field .filter-btn:hover{background:var(--surface);border-color:#b9c1cd}.filter.field.open .filter-btn{border-color:var(--primary);box-shadow:var(--ring)}.filter.field .filter-drop{min-width:100%}.filter.field .filter-btn.placeholder{color:var(--text-soft)}.filter.field:after{content:"▾";color:var(--text-soft);pointer-events:none;font-size:.8rem;position:absolute;top:12px;right:12px}.modal-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:80;background:#0f141c8c;justify-content:center;align-items:flex-start;padding:32px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-backdrop.hidden{display:none}body.modal-open{overflow:hidden}.modal{width:min(960px,100%);max-height:none;box-shadow:var(--shadow-lg);margin:0}.modal-head{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.modal-head h2{letter-spacing:-.01em;margin:0;font-size:1.15rem;font-weight:700}.icon-btn{box-shadow:none;color:var(--text-muted);cursor:pointer;border-radius:var(--r-sm);background:0 0;border:0;padding:6px 9px;font-size:1.05rem}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.form-grid{grid-template-columns:1fr 1fr 1fr;gap:10px 14px;display:grid}.form-grid .col-2{grid-column:span 2}.form-grid .col-full{grid-column:1/-1}.form-grid label{margin-top:4px}.section-label{color:var(--text);margin:22px 0 8px;font-size:.82rem;font-weight:650}.line-wrap{overflow-x:auto}.line-table{border-collapse:collapse;width:100%;min-width:560px}.line-table th{color:var(--text-soft);text-transform:uppercase;letter-spacing:.04em;text-align:left;padding:4px 8px;font-size:.7rem;font-weight:600}.line-table th.num{text-align:right}.line-table td{border:0;padding:4px 8px}.line-table input{padding:7px 9px;font-size:.86rem}.line-table .ln-total{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.88rem}.subtotal{text-align:right;color:var(--text-muted);margin-top:14px;font-size:1rem}.subtotal b{color:var(--text);font-variant-numeric:tabular-nums;margin-left:6px;font-size:1.25rem}.modal-foot{gap:10px;margin-top:22px;display:flex}.topbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.topbar h2{letter-spacing:-.005em;font-size:1.02rem;font-weight:650}.row3{grid-template-columns:1fr 1fr 1fr;gap:14px;margin-top:4px;display:grid}.row2{grid-template-columns:1fr 1fr;gap:14px;margin-top:4px;display:grid}.ord-lines{table-layout:fixed}.ord-lines th,.ord-lines td{vertical-align:middle;padding:5px 6px}.ord-lines thead th{padding-bottom:8px}.ord-lines input{padding:7px 8px;font-size:.86rem}.ord-lines .ln-total{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.88rem}.ord-lines .filter.field .filter-btn{padding:8px 24px 8px 10px;font-size:.86rem}.ord-lines .filter.field:after{top:11px;right:9px}.ord-lines{margin-top:14px}.ord-lines tbody td{border-bottom:0}.modal label{margin:5px 0 3px}.modal .row3,.modal .row2{row-gap:6px}.modal .row3 input,.modal .row3 select,.modal .row2 input,.modal .row2 select{padding:8px 11px}.modal .row3 .filter.field .filter-btn,.modal .row2 .filter.field .filter-btn{padding:8px 28px 8px 11px}@media (width<=640px){.form-grid,.row3,.row2{grid-template-columns:1fr}.form-grid .col-2{grid-column:span 1}}.chart-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}@media (width<=900px){.chart-grid{grid-template-columns:1fr}}.bar-h{align-items:center;gap:10px;margin:9px 0;font-size:.85rem;display:flex}.bar-h .lbl{text-align:right;width:150px;color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.bar-h .track{background:var(--surface-2);border-radius:6px;flex:1;height:22px}.bar-h .fill{background:linear-gradient(90deg, var(--accent), var(--primary));border-radius:6px;min-width:2px;height:100%}.bar-h .val{text-align:right;font-variant-numeric:tabular-nums;width:92px;color:var(--text)}.cols{align-items:flex-end;gap:18px;min-height:210px;padding:24px 4px 0;display:flex;overflow-x:auto}.col{flex-direction:column;justify-content:flex-end;align-items:center;min-width:56px;display:flex}.col .cval{font-variant-numeric:tabular-nums;color:var(--text-muted);margin-bottom:5px;font-size:.72rem}.col .cbar{background:linear-gradient(180deg, var(--accent), var(--primary));border-radius:6px 6px 0 0;width:42px;min-height:2px}.col .clbl{text-align:center;color:var(--text-muted);margin-top:7px;font-size:.75rem}.chg-up{color:#16a34a;margin-top:3px;font-size:.74rem}.chg-down{color:var(--danger);margin-top:3px;font-size:.74rem}.pie{border-radius:50%;flex:none;width:190px;height:190px}.legend-row{align-items:center;gap:9px;margin:8px 0;font-size:.86rem;display:flex}.legend-row .sw{border-radius:3px;flex:none;width:13px;height:13px}.legend-row .nm{flex:1}.legend-row .pc{font-variant-numeric:tabular-nums;font-weight:600}.legend-row .vl{color:var(--text-soft);font-variant-numeric:tabular-nums}@keyframes sk-shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton{background:linear-gradient(90deg,#eef1f5 25%,#e1e6ee 37%,#eef1f5 63%) 0 0/800px 100%;border-radius:6px;animation:1.3s linear infinite sk-shimmer}.sk-row{border-bottom:1px solid var(--border);align-items:center;gap:14px;padding:11px 12px;display:flex}.sk-row:last-child{border-bottom:0}.sk-line{flex:1;height:12px}.sk-avatar{border-radius:50%;flex:none;width:30px;height:30px}.sk-chart{border-radius:var(--r);height:220px}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:2px solid var(--border-strong);border-top-color:var(--primary);vertical-align:-3px;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin;display:inline-block}.state{text-align:center;padding:48px 20px}.state .st-ico{font-size:2.4rem;line-height:1}.state .st-title{margin-top:12px;font-size:1.02rem;font-weight:650}.state .st-sub{color:var(--text-soft);margin-top:5px;font-size:.88rem}.state .st-act{margin-top:18px}.state.error .st-title{color:var(--danger)}.msg{font-size:.82rem}.msg.err{color:var(--danger)}.msg.ok{color:var(--pos)}.toast-wrap{z-index:100;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:18px;right:18px}.toast{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:var(--r);box-shadow:var(--shadow-lg);align-items:center;gap:10px;min-width:240px;max-width:360px;padding:12px 16px;font-size:.9rem;animation:.2s toast-in;display:flex}.toast.ok{border-left-color:#16a34a}.toast.err{border-left-color:var(--danger)}.toast .t-ico{font-size:1.1rem;line-height:1}.toast.hide{animation:.2s forwards toast-out}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes toast-out{to{opacity:0;transform:translateY(8px)}}#navtoggle,.scrim{display:none}@media (width<=900px){.shell,.shell.collapsed{grid-template-columns:1fr}.sidebar{z-index:60;width:var(--sidebar-w);transition:transform .22s;position:fixed;transform:translate(-100%)}#navtoggle:checked~.shell .sidebar{box-shadow:var(--shadow-md);transform:translate(0)}#navtoggle:checked~.shell .scrim{z-index:55;background:#060a1480;display:block;position:fixed;inset:0}.header .burger{display:block}.header .collapse-btn{display:none}.kpis{grid-template-columns:1fr 1fr}.search input{width:150px}.online-users{display:none}}@media (width<=560px){.kpis{grid-template-columns:1fr}.content{padding:18px 14px 48px}}.login{grid-template-columns:1.05fr .95fr;min-height:100vh;display:grid}.login-brand{color:#eaf0fb;background:linear-gradient(150deg,#0f1729 0%,#16244a 55%,#1d4ed8 140%);flex-direction:column;padding:48px 52px;display:flex;position:relative;overflow:hidden}.login-brand:after{content:"";background:radial-gradient(circle,#3b82f659,#0000 70%);border-radius:50%;width:360px;height:360px;position:absolute;bottom:-120px;right:-120px}.vn-decor{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.vn-decor .vn-art{opacity:.9;filter:drop-shadow(0 12px 30px #00000059);width:auto;height:90%;position:absolute;bottom:0;right:2%}.login-brand .lb-top,.login-brand .lb-mid,.login-brand .lb-foot{z-index:1;position:relative}.login-brand .lb-top{align-items:center;gap:12px;font-size:1.2rem;font-weight:700;display:flex}.login-brand .lb-top .logo{background:linear-gradient(135deg, var(--accent), #6366f1);border-radius:10px;place-items:center;width:38px;height:38px;font-size:1.2rem;display:grid}.login-brand .lb-mid{max-width:420px;margin-top:auto;margin-bottom:auto}.login-brand h1{letter-spacing:-.02em;margin:0 0 14px;font-size:2.1rem;font-weight:750;line-height:1.15}.login-brand p.tag{color:#b8c6e4;margin:0 0 26px;font-size:1rem;line-height:1.55}.feat{color:#d6e0f5;align-items:center;gap:12px;margin:12px 0;font-size:.92rem;display:flex}.feat .fi{background:#ffffff17;border-radius:9px;flex:none;place-items:center;width:34px;height:34px;font-size:1rem;display:grid}.login-brand .lb-foot{color:#8ea1c6;font-size:.8rem}.login-form{background:var(--bg);place-items:center;padding:40px 26px;display:grid}.login-card{width:100%;max-width:380px}.login-card h2{letter-spacing:-.02em;margin:0 0 4px;font-size:1.45rem;font-weight:750}.login-card .sub{color:var(--text-muted);margin:0 0 22px;font-size:.9rem}.login-card label{color:var(--text-muted);margin:14px 0 5px;font-size:.8rem;font-weight:500;display:block}.login-card input{border:1px solid var(--border-strong);border-radius:var(--r-sm);background:#fff;width:100%;padding:11px 13px;font-size:.95rem;transition:border-color .15s,box-shadow .15s}.login-card input:focus{border-color:var(--primary);box-shadow:var(--ring);outline:none}.pw-wrap{position:relative}.pw-wrap .eye{box-shadow:none;color:var(--text-soft);cursor:pointer;background:0 0;border:0;padding:4px;font-size:1rem;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.login-row{justify-content:space-between;align-items:center;margin:14px 0 20px;font-size:.84rem;display:flex}.login-row label{color:var(--text-muted);cursor:pointer;align-items:center;gap:7px;margin:0;display:inline-flex}.login-row input{width:auto}.login-row a{color:var(--primary);font-weight:550;text-decoration:none}.btn-block{justify-content:center;width:100%;padding:12px;font-size:.95rem}.login-foot{text-align:center;color:var(--text-soft);margin-top:22px;font-size:.8rem}#loginMsg.msg{background:0 0;margin-top:10px;padding:0;font-size:.8rem}#loginMsg.msg.err{color:var(--danger)}#loginMsg.msg.ok{color:#16a34a}@media (width<=860px){.login{grid-template-columns:1fr}.login-brand{display:none}}.report-head{border-bottom:2px solid var(--border-strong);margin-bottom:4px;padding-bottom:10px}.report-foot{border-top:1px solid var(--border);padding-top:8px}@media print{@page{size:A4;margin:12mm}.sidebar,.header,.no-print{display:none!important}.shell,.shell.collapsed{display:block!important}.main{margin:0!important}.content,.report-page{padding:0!important}body{background:#fff!important}.report-sheet{box-shadow:none!important;border:none!important;padding:0!important}.kpi,table,.kpis{break-inside:avoid}}.who-cell{align-items:center;gap:10px;display:flex}.who-cell .av{color:#fff;background:linear-gradient(135deg,#38bdf8,#6366f1);border-radius:50%;flex:none;place-items:center;width:32px;height:32px;font-size:.78rem;font-weight:700;display:grid}.who-cell .nm{color:var(--text);font-weight:600;line-height:1.2}.who-cell .ty{color:var(--text-soft);font-size:.74rem}.rank{font-variant-numeric:tabular-nums;font-weight:700}.medal{font-size:1.15rem}.lv{border-radius:999px;padding:3px 9px;font-size:.72rem;font-weight:700;display:inline-block}.lv-plat{color:#075985;background:#e0f2fe}.lv-gold{color:#92650e;background:#fef3c7}.lv-silv{color:#5a6675;background:#eef1f5}.lv-brz{color:#8a5a2b;background:#f4e4d4}.stars{color:#f59e0b;letter-spacing:1px;font-size:.85rem}.stars .off{color:#dfe3ea}.score{align-items:center;gap:8px;min-width:130px;display:flex}.score .bar{background:var(--surface-2);border-radius:999px;flex:1;height:7px;overflow:hidden}.score .fill{background:linear-gradient(90deg,#3b82f6,#6366f1);border-radius:999px;height:100%}.score .val{font-variant-numeric:tabular-nums;text-align:right;min-width:34px;font-size:.85rem;font-weight:700}tr.top1 td{background:#fffbeb}tr.top2 td{background:#f8fafc}tr.top3 td{background:#fdf6ef}.podium{grid-template-columns:1fr 1.15fr 1fr;align-items:end;gap:16px;margin:6px 0 4px;display:grid}.pod{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm);text-align:center;padding:18px 14px;position:relative}.pod .cap{font-size:1.6rem;position:absolute;top:-14px;left:50%;transform:translate(-50%)}.pod .pav{color:#fff;background:linear-gradient(135deg,#38bdf8,#6366f1);border-radius:50%;place-items:center;width:56px;height:56px;margin:10px auto 8px;font-size:1.05rem;font-weight:800;display:grid}.pod .pnm{font-weight:700}.pod .pty{color:var(--text-soft);margin-bottom:8px;font-size:.76rem}.pod .pmetric{color:var(--text-muted);font-size:.8rem}.pod .pmetric b{color:var(--text)}.pod .prize{color:#92650e;background:#fef3c7;border-radius:999px;margin-top:10px;padding:4px 12px;font-size:.82rem;font-weight:700;display:inline-block}.pod-1{border-color:#f4d06a;padding-top:26px;box-shadow:0 8px 26px #f59e0b2e}.pod-1 .pav{background:linear-gradient(135deg,#fbbf24,#f59e0b);width:66px;height:66px}.pod-2 .pav{background:linear-gradient(135deg,#cbd5e1,#94a3b8)}.pod-3 .pav{background:linear-gradient(135deg,#e7b88a,#c98a4b)}.meta-row{color:var(--text-muted);flex-wrap:wrap;gap:22px;font-size:.86rem;display:flex}.meta-row b{color:var(--text)}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.sale-board{align-items:flex-start;gap:12px;padding-bottom:8px;display:flex;overflow-x:auto}.sale-col{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);flex-direction:column;flex:0 0 260px;max-height:calc(100vh - 220px);display:flex}.sale-col-head{border-bottom:1px solid var(--border);background:var(--surface-2);border-radius:var(--r-sm) var(--r-sm) 0 0;align-items:center;gap:8px;padding:10px 12px;font-weight:600;display:flex;position:sticky;top:0}.sale-col-title{flex:1;font-size:.9rem}.sale-col-body{flex-direction:column;gap:8px;padding:8px;display:flex;overflow-y:auto}.sale-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;box-shadow:var(--shadow-sm);padding:9px 10px}.sale-card:hover{border-color:var(--border-strong)}.sale-card-name{margin-bottom:2px;font-size:.9rem;font-weight:600}.sale-kpis{flex-wrap:wrap;gap:12px;display:flex}.sale-kpi{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);flex-direction:column;flex:1;gap:2px;min-width:110px;padding:12px 14px;display:flex}.sale-kpi-v{font-size:1.5rem;font-weight:700}.sale-kpi-l{color:var(--text-muted);font-size:.8rem}.sale-funnel{flex-direction:column;gap:6px;display:flex}.sale-funnel-row{align-items:center;gap:10px;display:flex}.sale-funnel-lbl{flex:0 0 130px;font-size:.86rem}.sale-funnel-bar-wrap{background:var(--surface-2);border-radius:var(--r-sm);flex:1;overflow:hidden}.sale-funnel-bar{background:linear-gradient(90deg,var(--primary),var(--primary-hover));color:#fff;border-radius:var(--r-sm);align-items:center;min-width:38px;padding:6px 10px;transition:width .3s;display:flex}.sale-funnel-n{font-size:.85rem;font-weight:700}.sale-funnel-conv{text-align:right;color:var(--text-muted);flex:0 0 90px;font-size:.82rem}
