@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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAa0ABQAAAAADOwAAAZHAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbbhwoP0hWQVJtP01WQVJGBmA/U1RBVIEcAGQvXBEICoMkgmcLFgAwhEwBNgIkAyYEIAWGXAdiDAcbOgtRlHLSRcD8TEzkdoghPRuspKefbVnJIM5yRfA8vZv9uTNJSCZY21Scrigr6qyJ/C3sE1OFKuVP3e+lxUTbYio1zb/kFdk2bufY2BlhWERRBrcDUBhB5GEpd2Cy+MDxqf9zLPX+XVsk5r+s50d6IpWLatqbdT6f2MAikiOKQocbjya2QT0DqPDX4R0jQBgAUAiCRhDA0EkvYeLk9X3I2bEWI8jBAihIANm+kUWQBgggWChcBBdFhXlAUgOCAgBA0AgKjUJ8HKvjddFCKSgAVklEBYAeEJgCQJH0qB3B+neDg4sAA4hAD0AVIEAA0IACJGeaUjMIIIhBUE/zNABjTQMBwEVRcwcYBUCObLERABAgjAA1M/ZSa9hSi4OlpsnZ2KBOVUsAZlRGl1W0NZ6gSwhQPIAFs7YFL0QS91vRQgdgx2VDAnIegKpQvwAJIoLgooBAGtCJcHizg0TDiz8vhPgIcVXaDJu37ZyDAIjFy4AAiC1JAA0olJwN6nFAACQk/zfQVUuA3t5ELKMT9hpBSRj+HBSggYCIAIEkUoC4PCIQIWHGA8+IStxf0PW15ntP22gc+Wo+BLyQAHECQiAVd+c3Ba8gZ4NOACBaLOhsbIMkAXEmuHsSAvkf4oJaAogH6nEQAzoBIEihUAwAA0AACAObAGcANYAAABaqgMmpWAhiiVyrvNyqFV8tMQ5Iyq6r9Lf7W82i8ILl2cv8zbfdJ5lnPzSnvt/XXPfRR/5pH3xA+u5uS0798EPJ3Fft33w36Wc+8E/7aIB/9fvvb1pE9erNXLB9mkw//cSg8Cnx03VGXDvZnRzKqV9Xkhn7eRHb3wVjHpg19nkZpX9bBU+vnHegrsuQcbW9Bi7oO33h+8SU0Tly/MbeYUuG1cftVz6oNxrW0qH1iezq446fkDFo/rgvTkqt7zmteFzncZ0uxXti09FFF2z+C7CODpjUudOE5NSeb3bv/mbPKcmOEzpWQ3VBgBAuj/AOY3qMm7UvgA8qo3+qvAUBBAX0wADQG4AG+jCKaSxkBe/zvcTG8jRpRZgqhCog4sd++cOo7J+/RdvaaMoc78Ri/PNPSclx6fDvG1Kt3qQFi1rq+5EaavTtt9TVvfvucYsA5wc4oESU+E1ikF9TkrOkIsIH5Fawx7SBNLnMcWlM3skBluCmQNs7GeyFvYVDamsqwhxx18n/+WdxzDgOLU1AqbUlb3m+KOT9+ONvY/7XlrdLS//5v7nN97XHj0VzJpJvz4spq0V7ioXDuv2YrSxtF/KZmvbWfKtorXSh8dfvgGu+ev/nFSaXM6jyuCE/f/EpmuP7Rqu8R98vP/+tXUdrOgKlZP9Q/s+fRF9+3CHZd4EugfPv158me9X7v/6aSMCxMJmIr//65bNXngl7+uiPP5oKx+y27D8trp+psUzMacpm80XlnYeMAct0LynxhNYgaP3dtn8/LBAi+ksr+7NvjjtJV+UXrz0uLXV1x08AZRN1S2A8EaVE5afk/dfGjz//+fdHn36Xdttz2d9/z+bawZ8/slNN1aYtq+ZPGzNuPGdwOsfYflwmHCkPgs5DcKizvdpS/3gEUMW9/lvQvWp1bGTW1fpngC/uSVYAfH3TeSusL8TtlHUD4KAAEHjahk4YpuffGwEBN/dUmpHqdHyJ3Ap8O3UlQ4gCNrMRwLBBKiskL6a+RoBi/9XGlgc8L4/CUejQxaiIyqmomdhktOhfgDbDfaNDb4+yKIPd6IgmzDa0CByijWFmL2dlSRKagTIWXeIU9HDphoZiJeBTjAefHMxDhVSRFUgVcOkW3EGMahYVMFjWHhMluB2wAcbHYqF1LpsDF9C6s+CI2fDgh4wSuFEyGadjXAmIk3CugIRibLIti9ZtC8S4VSqfikGqPaoI122XyRYLBmsOmdiiTpqK1OklUQzpMcZmQRQV4M4oJCMkfRQXK+qvjifUcQd1bRdetW/LWjacYxvcttnVjWg5h0q4xw6rZyejSpZVZ78LzC4uyDNRQ4bymHSTMyM+SZ7D75mg/7YTlmNz7W8T00h0VEiGKB+F7iWYZFvSTiA4LVxttm2ATt5EoUWLJbY4EnLGrfsvEROlHtzlKn3H9VUT5tU/2dt3/EBv7foYzV/W4upyj04woO/gh6Vwwt3WGQAA)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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-vietnamese-wght-normal-qRpaaN48.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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-ext-wght-normal-DmpS2jIq.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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-wght-normal-eXO_dkmS.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{--bg:#f1f5f9;--surface:#fff;--border:#e2e8f0;--border-soft:#f1f5f9;--text:#0f172a;--text-2:#334155;--muted:#64748b;--muted-2:#94a3b8;--nav:#1e293b;--nav-2:#0f172a;--primary:#2563eb;--primary-hover:#1d4ed8;--primary-soft:#eff6ff;--primary-soft-2:#dbeafe;--success:#059669;--success-soft:#ecfdf5;--warning:#d97706;--warning-soft:#fffbeb;--danger:#dc2626;--danger-soft:#fef2f2;--radius:10px;--radius-sm:6px;--shadow:0 1px 2px #0f172a0f, 0 1px 3px #0f172a0a;--shadow-md:0 4px 12px #0f172a14;font-feature-settings:"cv11", "ss01";--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:Inter Variable,Inter,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.45}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1{letter-spacing:-.02em;margin:0 0 2px;font-size:21px;font-weight:700}h2{letter-spacing:-.01em;margin:24px 0 10px;font-size:16px;font-weight:700}h3{margin:0 0 10px;font-size:14px;font-weight:700}.num,.mono{font-variant-numeric:tabular-nums}.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:12px}.frame{flex-direction:column;min-height:100vh;display:flex}.tabbar{background:var(--nav-2);box-sizing:border-box;z-index:21;align-items:center;gap:2px;height:40px;padding:0 10px;display:flex;position:sticky;top:0}.tabbar button.nav{color:#94a3b8;cursor:pointer;width:28px;height:28px;box-shadow:none;background:0 0;border:none;border-radius:7px;flex:none;place-items:center;padding:0;display:grid}.tabbar button.nav:hover{color:#fff;background:#ffffff1a}.tabbar button.nav:disabled{opacity:.3;cursor:default;background:0 0}.tabbar .tabs{scrollbar-width:none;flex:1;align-self:stretch;align-items:flex-end;gap:2px;min-width:0;margin-left:8px;display:flex;overflow:auto hidden}.tabbar .tabs::-webkit-scrollbar{display:none}.tabbar .tab{color:#94a3b8;cursor:pointer;-webkit-user-select:none;user-select:none;box-sizing:border-box;border-radius:9px 9px 0 0;flex:none;align-items:center;gap:6px;min-width:90px;max-width:190px;height:32px;margin-top:8px;padding:0 8px 0 14px;font-size:12.5px;font-weight:600;display:flex}.tabbar .tab:hover{color:#e2e8f0;background:#ffffff12}.tabbar .tab.on{background:var(--nav);color:#fff;box-shadow:inset 0 1px #ffffff1f}.tabbar .tab .label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tabbar .tab .x{width:18px;height:18px;color:inherit;cursor:pointer;opacity:.55;box-shadow:none;background:0 0;border:none;border-radius:5px;flex:none;place-items:center;padding:0;display:grid}.tabbar .tab .x:hover{opacity:1;color:#fff;background:#ffffff26}.tabbar .add{color:#94a3b8;cursor:pointer;width:28px;height:28px;box-shadow:none;background:0 0;border:none;border-radius:7px;flex:none;align-self:center;place-items:center;margin-top:8px;padding:0;display:grid}.tabbar .add:hover{color:#fff;background:#ffffff1a}.topnav{background:var(--nav);color:#cbd5e1;z-index:20;align-items:stretch;height:70px;padding:0 16px;display:flex;position:sticky;top:0;box-shadow:0 2px 8px #0f172a40}.frame.has-tabs .topnav{top:40px}.frame.has-tabs .actionbar{top:110px}.frame.has-tabs .scan-viewer{top:172px}.topnav .brand{color:#fff;letter-spacing:-.02em;border-right:1px solid #ffffff1a;align-items:center;gap:10px;margin-right:6px;padding-right:18px;font-size:15px;font-weight:800;display:flex}.topnav .brand .logo{background:var(--primary);color:#fff;border-radius:8px;place-items:center;width:30px;height:30px;display:grid}.topnav .brand small{color:#94a3b8;letter-spacing:.06em;text-transform:uppercase;font-size:10px;font-weight:500;display:block}.topnav nav{flex:1;align-items:center;gap:2px;display:flex}.topnav nav a,.topnav .right a,.topnav .navbtn{color:#cbd5e1;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-width:78px;padding:8px 12px;font-family:inherit;font-size:10.5px;font-weight:700;display:flex}.topnav nav a:hover,.topnav .right a:hover,.topnav .navbtn:hover{color:#fff;background:#ffffff12;text-decoration:none}.topnav nav a.active,.topnav .right a.active{color:#fff;background:#ffffff1f;box-shadow:inset 0 0 0 1px #ffffff1a}.topnav .right{align-items:center;gap:2px;margin-left:auto;display:flex}.actionbar{border-bottom:1px solid var(--border);z-index:15;background:#f8fafc;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;min-height:46px;padding:4px 16px;display:flex;position:sticky;top:70px}.actionbar .scope{letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);align-items:center;gap:6px;font-size:11px;font-weight:700;display:flex;position:absolute;left:20px}.actionbar button,.actionbar a{color:var(--text-2);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:7px;padding:7px 12px;font-size:13.5px;font-weight:500;display:inline-flex}.actionbar button:hover,.actionbar a:hover{border-color:var(--border);color:var(--text);box-shadow:var(--shadow);background:#fff;text-decoration:none}.actionbar button.primary{background:var(--primary-soft);border-color:var(--primary-soft-2);color:var(--primary-hover);box-shadow:none;font-weight:700}.actionbar button.danger{color:var(--danger);background:0 0;border-color:#0000}.actionbar button.danger:hover{background:var(--danger-soft);border-color:#fecaca}.actionbar button:disabled{opacity:.45;cursor:not-allowed}.actionbar svg{color:var(--muted)}.content{flex:1;width:100%;max-width:1480px;margin:0 auto;padding:20px 28px 40px}.statusbar{border-top:1px solid var(--border);letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);background:#f8fafc;align-items:center;gap:28px;padding:10px 32px;font-size:11px;font-weight:700;display:flex}.statusbar b{color:var(--text-2)}.statusbar .dot{background:#cbd5e1;border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.statusbar .dot.ok{background:var(--success)}.statusbar .spacer{flex:1}.statusbar .warn{color:var(--danger)}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.page-header .title{align-items:center;gap:12px;display:flex}.page-header .title .icon{background:var(--primary-soft);width:36px;height:36px;color:var(--primary);border-radius:12px;place-items:center;display:grid}.page-header .sub{color:var(--muted);margin-top:2px;font-size:13.5px}.page-header .sub .badge{margin-right:6px}.card{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:14px;padding:16px 18px}.card .card-title{justify-content:space-between;align-items:center;gap:12px;margin:-4px 0 14px;display:flex}.card .card-title h3{color:var(--primary);margin:0;font-size:15px}.card .card-title .kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);font-size:10.5px;font-weight:700;display:block}.card.flush{padding:0;overflow:hidden}.card .card-foot{border-top:1px solid var(--border-soft);text-align:right;letter-spacing:.06em;text-transform:uppercase;padding:12px 22px;font-size:11.5px;font-weight:700}.stat-row{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin-bottom:16px;display:grid}.stat{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:12px;padding:12px 16px;display:flex}.stat .ico{background:var(--primary-soft);width:40px;height:40px;color:var(--primary);border-radius:50%;flex:none;place-items:center;display:grid}.stat .ico.green{background:var(--success-soft);color:var(--success)}.stat .ico.amber{background:var(--warning-soft);color:var(--warning)}.stat .ico.red{background:var(--danger-soft);color:var(--danger)}.stat .ico.slate{color:var(--text-2);background:#f1f5f9}.stat .label{color:var(--muted);font-size:12.5px;font-weight:500}.stat .value{letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--text);margin:0;font-size:21px;font-weight:800}.stat .value.neg{color:var(--danger)}.stat .hint{color:var(--muted-2);font-size:11.5px}a.stat:hover{box-shadow:var(--shadow-md);text-decoration:none}.search-panel{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:14px;padding:14px 18px}.search-panel .kicker{letter-spacing:.1em;text-transform:uppercase;color:var(--text-2);align-items:center;gap:10px;margin-bottom:12px;font-size:11px;font-weight:800;display:flex}.search-panel .kicker .ico{background:var(--primary);color:#fff;border-radius:9px;place-items:center;width:34px;height:34px;display:grid}.search-panel .kicker small{color:var(--muted-2);letter-spacing:.08em;font-size:10px;font-weight:700;display:block}.radio-row{flex-wrap:wrap;gap:6px 22px;margin-bottom:14px;display:flex}.radio-row label{color:var(--text-2);cursor:pointer;align-items:center;gap:8px;font-size:13.5px;display:inline-flex}.radio-row input{accent-color:var(--primary);width:15px;height:15px}.radio-row label.on{color:var(--text);font-weight:600}.search-input{position:relative}.search-input svg{color:var(--muted-2);position:absolute;top:50%;left:14px;transform:translateY(-50%)}.search-input input{width:100%;font:inherit;border:1px solid var(--border);background:#fff;border-radius:9px;padding:11px 14px 11px 42px;font-size:14px}.search-input input:focus{outline:2px solid var(--primary-soft-2);border-color:var(--primary)}.check-row{color:var(--text-2);gap:22px;margin-top:12px;font-size:13.5px;font-weight:600;display:flex}.check-row label{cursor:pointer;align-items:center;gap:8px;display:inline-flex}.check-row input{accent-color:var(--primary);width:15px;height:15px}.table-wrap{border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);margin-bottom:14px;overflow-x:auto}table.grid{border-collapse:collapse;width:100%;font-size:13px}table.grid th{text-align:left;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border-soft);white-space:nowrap;background:#f8fafc;padding:9px 12px;font-size:10.5px;font-weight:800}table.grid td{border-bottom:1px solid var(--border-soft);vertical-align:middle;color:var(--text-2);padding:7px 12px;line-height:1.3}table.grid tr:last-child td{border-bottom:none}table.grid tbody tr:hover td{background:#f8fafc}table.grid td.num,table.grid th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}table.grid td.strong,.strong{color:var(--text);font-weight:700}table.grid td.pos{color:var(--success);font-weight:700}table.grid td.neg{color:var(--danger);font-weight:700}table.grid .sub{color:var(--muted-2);margin-top:0;font-size:11px;display:block}table.grid .right-actions{text-align:right;white-space:nowrap}.cell-id{border:1px solid var(--border);color:var(--text-2);background:#f1f5f9;border-radius:5px;padding:1px 6px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.5px;font-weight:600;display:inline-block}.avatar{background:var(--primary-soft);width:24px;height:24px;color:var(--primary);vertical-align:middle;border-radius:50%;place-items:center;margin-right:10px;font-size:12px;font-weight:800;display:inline-grid}.alert-ico{color:var(--danger);vertical-align:middle;margin-right:6px}.badge{letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:10.5px;font-weight:800;display:inline-block}.badge.blue{background:var(--primary-soft);color:var(--primary-hover)}.badge.outline{border:1px solid var(--border);color:var(--text-2);background:#fff}button,.btn{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text-2);cursor:pointer;border-radius:8px;align-items:center;gap:7px;padding:8px 14px;font-size:13px;font-weight:600;line-height:1.2;display:inline-flex}button:hover,.btn:hover{color:var(--text);background:#f8fafc;text-decoration:none}button.primary,.btn.primary{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 1px 2px #2563eb4d}button.primary:hover,.btn.primary:hover{background:var(--primary-hover);color:#fff}button.danger{background:var(--danger);color:#fff;border-color:var(--danger)}button.sm,.btn.sm{letter-spacing:.06em;text-transform:uppercase;border-radius:6px;padding:3px 9px;font-size:10.5px;font-weight:800}button.ghost{color:var(--primary);background:0 0;border-color:#0000}button:disabled{opacity:.5;cursor:not-allowed}.btn-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.form-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;display:grid}.field{flex-direction:column;gap:5px;display:flex}.field label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:800}.field label.plain{text-transform:none;letter-spacing:0;color:var(--text-2);align-items:center;gap:8px;font-size:13.5px;font-weight:600;display:flex}.field input,.field select,.field textarea,.toolbar input,.toolbar select{font:inherit;border:1px solid var(--border);color:var(--text);background:#fff;border-radius:8px;padding:9px 12px;font-size:14px}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--primary-soft-2);border-color:var(--primary)}.field .hint{color:var(--muted-2);font-size:12px}.field input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary)}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.toolbar .right{margin-left:auto}.toolbar .search-input input{padding-left:42px}.seg{border:1px solid var(--border);background:#f1f5f9;border-radius:10px;gap:2px;padding:3px;display:inline-flex}.seg button{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:0 0;border:none;border-radius:8px;padding:6px 14px;font-size:11px;font-weight:800}.seg button.on{color:var(--primary);box-shadow:var(--shadow);background:#fff}.tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:18px;display:flex}.tabs button{color:var(--muted);background:0 0;border:none;border-radius:0;padding:10px 14px;font-size:13px;font-weight:600;position:relative}.tabs button.on{color:var(--primary)}.tabs button.on:after{content:"";background:var(--primary);height:2px;position:absolute;bottom:-1px;left:0;right:0}.error-box{background:var(--danger-soft);color:#b91c1c;border:1px solid #fecaca;border-radius:8px;margin-bottom:14px;padding:11px 14px;font-weight:500}.ok-box{background:var(--success-soft);color:#047857;border:1px solid #a7f3d0;border-radius:8px;margin-bottom:14px;padding:11px 14px;font-weight:500}.muted{color:var(--muted)}.kv{grid-template-columns:160px 1fr;gap:8px 16px;font-size:13.5px;display:grid}.kv dt{color:var(--muted);font-weight:600}.kv dd{color:var(--text);margin:0}.two-col{grid-template-columns:1fr 1fr;gap:18px;display:grid}@media (width<=960px){.two-col{grid-template-columns:1fr}.content{padding:20px 16px}.actionbar .scope{display:none}}.empty{text-align:center;color:var(--muted);padding:36px}.login-wrap{background:var(--nav-2);place-items:center;min-height:100vh;display:grid}.login-card{background:#fff;border-radius:14px;width:360px;padding:32px;box-shadow:0 20px 60px #0006}.login-card .logo{background:var(--primary);color:#fff;border-radius:12px;place-items:center;width:48px;height:48px;margin:0 auto 14px;display:grid}.login-card h1{text-align:center;margin-bottom:4px}.login-card .sub{text-align:center;color:var(--muted);margin-bottom:20px;font-size:13px}form.stack{flex-direction:column;gap:14px;display:flex}@media print{.topnav,.actionbar,.statusbar,.toolbar,.btn-row,button{display:none!important}.content{padding:0}.card,.table-wrap{box-shadow:none}}.scan-link{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);align-items:center;gap:4px;margin-left:8px;font-size:11px;font-weight:700;display:inline-flex}.scan-link:hover{color:var(--primary);text-decoration:none}.scan-layout{grid-template-columns:minmax(420px,1fr) minmax(380px,520px);align-items:start;gap:18px;display:grid}@media (width<=1100px){.scan-layout{grid-template-columns:1fr}}.scan-list tr.sel td{background:var(--primary-soft)!important}.scan-list tr{cursor:pointer}.scan-viewer{position:sticky;top:132px}.scan-viewer .img{background:#0f172a;border-radius:8px;place-items:center;min-height:220px;display:grid;overflow:hidden}.scan-viewer .img img{width:100%;height:auto;display:block}.scan-viewer .img .none{color:#94a3b8;text-align:center;padding:40px 20px;font-size:13px}.scan-viewer .ask{background:var(--warning-soft);border:1px solid #fde68a;border-radius:8px;margin-top:12px;padding:12px 14px}.scan-viewer .ask h4{color:#92400e;margin:0 0 8px;font-size:13.5px}.scan-viewer .ok{background:var(--success-soft);color:#047857;border:1px solid #a7f3d0;border-radius:8px;margin-top:12px;padding:12px 14px;font-weight:500}.scan-viewer .bad{background:var(--danger-soft);color:#b91c1c;border:1px solid #fecaca;border-radius:8px;margin-top:12px;padding:12px 14px;font-weight:500}.dropzone{border:2px dashed var(--border);border-radius:var(--radius);text-align:center;color:var(--muted);cursor:pointer;background:#f8fafc;padding:28px 20px;transition:border-color .15s,background .15s}.dropzone.over,.dropzone:hover{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-hover)}.dropzone input{display:none}.dropzone strong{color:var(--text)}.barcode{letter-spacing:.04em;color:var(--text-2);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px}.barcode b{color:var(--primary)}.progress{background:#e2e8f0;border-radius:999px;height:8px;overflow:hidden}.progress div{background:var(--primary);border-radius:999px;height:100%;transition:width .4s}.scan-input input{letter-spacing:.04em;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:16px}.alloc-log li{border-bottom:1px solid var(--border-soft);align-items:center;gap:12px;padding:6px 0;font-size:13px;display:flex}.alloc-log li:last-child{border-bottom:none}table.grid tbody tr.row-link{cursor:pointer}.frame.side-layout{flex-direction:row;min-height:100vh}.side{background:var(--nav);color:#cbd5e1;z-index:40;scrollbar-width:thin;flex-direction:column;flex:none;width:236px;height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.side .brand{color:#fff;letter-spacing:-.02em;align-items:center;gap:10px;padding:16px 16px 14px;font-size:15px;font-weight:800;display:flex}.side .brand .logo{background:var(--primary);color:#fff;border-radius:9px;flex:none;place-items:center;width:32px;height:32px;display:grid}.side .brand small{color:#94a3b8;letter-spacing:.06em;text-transform:uppercase;font-size:10px;font-weight:500;display:block}.side nav{flex:1;padding:4px 0 10px}.side .group-title{letter-spacing:.12em;text-transform:uppercase;color:#64748b;padding:6px 20px 4px;font-size:10px;font-weight:800}.side nav a,.side .foot a,.side .foot button.plain,.side .foot>button:not(.collapse){color:#cbd5e1;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:9px;align-items:center;gap:11px;width:calc(100% - 16px);margin:1px 8px;padding:6px 12px;font-family:inherit;font-size:13.5px;font-weight:600;text-decoration:none;display:flex}.side nav a:hover,.side .foot a:hover,.side .foot>button:not(.collapse):hover{color:#fff;background:#ffffff14;text-decoration:none}.side nav a.active,.side .foot a.active{color:#fff;background:#ffffff21;box-shadow:inset 3px 0 #fff}.side svg{opacity:.9;flex:none}.side .count{background:var(--primary);color:#fff;text-align:center;border-radius:999px;min-width:22px;margin-left:auto;padding:1px 8px;font-size:11px;font-weight:800}.side .foot{border-top:1px solid #ffffff1a;padding:8px 0 10px}.side .foot .who{color:#e2e8f0;white-space:nowrap;text-overflow:ellipsis;padding:8px 20px 2px;font-size:12.5px;font-weight:700;overflow:hidden}.side .foot .who small{color:#64748b;letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:600;display:block}.side .foot .collapse{color:#64748b;background:0 0;border:none;border-radius:7px;justify-content:center;align-items:center;width:30px;height:28px;margin:6px 8px 0 auto;padding:0;display:flex}.side .foot .collapse:hover{color:#fff;background:#ffffff14}.side.collapsed{width:64px}.side.collapsed .lbl,.side.collapsed .count{display:none}.side.collapsed .brand{justify-content:center;padding-left:0;padding-right:0}.side.collapsed nav a,.side.collapsed .foot a,.side.collapsed .foot>button:not(.collapse){justify-content:center;padding:10px 0}.side.collapsed .foot .collapse{margin:6px auto 0}.side-scrim{display:none}.stage{flex-direction:column;flex:1;min-width:0;display:flex}.top{z-index:30;background:var(--nav-2);position:sticky;top:0;box-shadow:0 2px 8px #0f172a24}.top .tabbar{position:static}.top .tabbar .menu-btn{display:none}.top .actionbar{justify-content:flex-start;gap:4px;padding:5px 18px;position:static}.top .actionbar .scope{border-right:1px solid var(--border);letter-spacing:.04em;text-transform:none;color:var(--text);margin-right:12px;padding-right:14px;font-size:12.5px;font-weight:800;position:static}.frame.side-layout .scan-viewer{top:112px}.gsearch{flex:none;align-self:center;align-items:center;width:clamp(200px,28vw,340px);margin-left:auto;display:flex;position:relative}.gsearch .ico{color:#94a3b8;pointer-events:none;position:absolute;left:11px}.gsearch input{color:#fff;width:100%;height:30px;font:inherit;background:#ffffff14;border:1px solid #ffffff24;border-radius:8px;padding:0 56px 0 33px;font-size:13px}.gsearch input:focus{color:var(--text);background:#fff;border-color:#fff;outline:none}.gsearch input:focus~kbd{display:none}.gsearch kbd{color:#94a3b8;pointer-events:none;border:1px solid #ffffff2e;border-radius:5px;padding:1px 6px;font:700 10px Inter,sans-serif;position:absolute;right:8px}.gsearch-pop{width:min(460px,92vw);max-height:70vh;color:var(--text);border:1px solid var(--border);z-index:60;background:#fff;border-radius:12px;padding:6px;position:absolute;top:calc(100% + 8px);right:0;overflow:auto;box-shadow:0 18px 50px #0f172a4d}.gsearch-pop .grp{letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2);padding:8px 10px 4px;font-size:10px;font-weight:800}.gsearch-pop button{text-align:left;cursor:pointer;width:100%;font:inherit;color:var(--text);background:0 0;border:none;border-radius:8px;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:2px 8px;padding:8px 10px;display:grid}.gsearch-pop .ic{color:var(--primary);grid-row:1/3;place-items:center;display:grid}.gsearch-pop .t{white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:700;overflow:hidden}.gsearch-pop .s{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.gsearch-pop .none{color:var(--muted);padding:16px;font-size:13px}.gsearch-pop .tip{color:var(--muted-2);border-top:1px solid var(--border-soft);margin-top:4px;padding:8px 10px 4px;font-size:11px}@media (width<=960px){.side{width:252px;transition:transform .2s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:0 0 40px #0006}.side.open{transform:none}.side.collapsed{width:252px}.side.collapsed .lbl,.side.collapsed .count{display:initial}.side-scrim{z-index:35;background:#0f172a80;display:block;position:fixed;inset:0}.top .tabbar .menu-btn{color:#cbd5e1;background:0 0;border:none;place-items:center;width:30px;height:30px;margin-right:4px;padding:0;display:grid}.gsearch{width:140px}.gsearch kbd{display:none}}@media print{.side,.top{display:none!important}}.top .tabbar .tabs{border-bottom:none;align-self:stretch;margin-bottom:0}@media (width<=960px){.side.collapsed nav a,.side.collapsed .foot a,.side.collapsed .foot>button:not(.collapse){justify-content:flex-start;padding:8px 12px}.side.collapsed .brand{justify-content:flex-start;padding:16px 16px 14px}.side .foot .collapse{display:none}}.side .group{padding:4px 0 2px}.side .foot .me{align-items:center;gap:2px;padding:6px 8px 0 20px;display:flex}.side .foot .me .who{flex:1;min-width:0;padding:0}.side .foot .me button.icon{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:7px;place-items:center;width:30px;height:30px;margin:0;padding:0;display:grid}.side .foot .me button.icon:hover{color:#fff;background:#ffffff1a}.side.collapsed .foot .me{flex-direction:column;padding:6px 0 0}.side.collapsed .foot .me button.icon{width:40px}@media (width<=960px){.side.collapsed .foot .me{flex-direction:row;padding:6px 8px 0 20px}.side .foot .me button.collapse{display:none}}:root{--bg:#f5f6fa;--surface:#fff;--border:#e3e6ee;--border-soft:#eceff5;--text:#111827;--text-2:#374151;--muted:#6b7280;--muted-2:#6b7280;--nav:#0d2577;--nav-2:#0a1d5c;--primary:#1d3fc9;--primary-hover:#1631a3;--primary-soft:#eaeefc;--primary-soft-2:#d4dcf8;--success:#15803d;--success-soft:#dcf5e3;--warning:#a16207;--warning-soft:#fff1c9;--danger:#dc2626;--danger-soft:#fde8e8;--radius:12px;--radius-sm:8px;--shadow:none;--shadow-md:0 4px 14px #11182714;font-feature-settings:normal;font-family:Plus Jakarta Sans Variable,Plus Jakarta Sans,system-ui,-apple-system,Segoe UI,sans-serif}h1{letter-spacing:-.01em;font-size:22px;font-weight:700}.card .card-title h3{color:var(--text);font-size:16px}button,.btn{border-radius:8px}.card,.stat{border-color:var(--border);box-shadow:none}table.grid tbody tr.row-link:hover td{background:var(--primary-soft)}table.grid th{letter-spacing:0;text-transform:none;color:var(--text-2);padding:12px;font-size:13.5px;font-weight:600}.badge{letter-spacing:0;text-transform:none;border-radius:6px;padding:3px 9px;font-size:12px;font-weight:600}.badge.green{background:var(--success-soft);color:#166534}.badge.red{background:var(--danger-soft);color:#b42318}.badge.amber{background:var(--warning-soft);color:#8a5a00}.stat .value{letter-spacing:-.02em;font-weight:700}.stat .ico.slate{background:#eef0f5}button.sm,.btn.sm{text-transform:none;letter-spacing:0;font-size:12.5px;font-weight:600}.side .brand .logo,.topnav .brand .logo,.login-card .logo{color:var(--nav);background:#fff}.login-wrap{background:var(--nav)}.side{background:var(--nav);color:#fff}.side .brand{letter-spacing:-.01em;font-size:15px;font-weight:700}.side .brand small{color:#b8c4f5;letter-spacing:0;text-transform:none;font-size:11.5px;font-weight:500}.side .group-title{color:#9fb0f0}.side nav a,.side .foot a,.side .foot>button:not(.collapse){color:#fff;border-radius:8px;font-size:14px}.side nav a:hover,.side .foot a:hover,.side .foot>button:not(.collapse):hover{color:#fff;background:#ffffff1c}.side nav a.active,.side .foot a.active{color:var(--nav-2);box-shadow:none;background:#fff}.side nav a.active svg,.side .foot a.active svg{color:var(--nav);opacity:1}.side .count{color:#fff;background:#ef4444}.side .foot{border-top-color:#ffffff2e}.side .foot .who{color:#fff}.side .foot .who small{color:#b8c4f5}.side .foot .collapse,.side .foot .me button.icon{color:#c7d2fb}.topnav nav a,.topnav .right a,.topnav .navbtn{color:#e0e7ff}.topnav nav a.active,.topnav .right a.active{color:var(--nav-2);box-shadow:none;background:#fff}.top{box-shadow:0 1px 0 var(--border);background:#fff}.tabbar{background:#fff}.tabbar button.nav,.tabbar .add{color:var(--muted)}.tabbar button.nav:hover,.tabbar .add:hover{background:var(--bg);color:var(--text)}.tabbar .tab{color:var(--text-2);border-radius:0}.tabbar .tab:hover{background:var(--bg);color:var(--text)}.tabbar .tab.on{color:var(--text);box-shadow:inset 0 -3px 0 var(--primary);background:#fff}.tabbar .tab .x:hover{background:var(--border);color:var(--text)}.top .tabbar .tab{height:44px;margin-top:0}.top .tabbar .add{margin-top:0}.top .tabbar{height:48px}.top .tabbar .menu-btn{color:var(--text-2)}.gsearch{width:clamp(220px,34vw,420px)}.gsearch .ico{color:var(--muted)}.gsearch input{height:38px;color:var(--text);background:#fff;border-color:#d9dde8;border-radius:10px}.gsearch input::placeholder{color:var(--muted)}.gsearch input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft-2)}.gsearch kbd{color:var(--muted);background:#fff;border-color:#d9dde8}.top .actionbar{border-top:1px solid var(--border-soft);background:#fff;border-bottom:0}.top .actionbar .scope{border-right-color:var(--border)}.actionbar button,.actionbar a{border-color:var(--border);background:#fff}.actionbar button:hover,.actionbar a:hover{background:var(--bg);box-shadow:none;border-color:#cfd4e1}.actionbar button.primary{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:none}.actionbar button.primary:hover{background:var(--primary-hover);color:#fff}.actionbar button.primary svg{color:#fff}.actionbar button.danger{border-color:var(--border)}.gsearch-pop button.on,.gsearch-pop button:hover{background:var(--primary-soft)}.gsearch-pop .ic{color:var(--primary)}@media (width<=960px){.top .tabbar .menu-btn{color:var(--text-2)}}.frame.shell2{flex-direction:column;min-height:100vh}.shell2 .tabstrip{z-index:60;border-bottom:1px solid var(--border);background:#e8ebf3;position:sticky;top:0}.shell2 .tabstrip .tabbar{background:0 0;height:44px;padding:0 12px;position:static}.shell2 .tabbar button.nav,.shell2 .tabbar .add{color:#4b5563}.shell2 .tabbar button.nav:hover,.shell2 .tabbar .add:hover{color:var(--text);background:#11182712}.shell2 .tabbar .tab{color:#4b5563;height:34px;box-shadow:none;background:0 0;border-radius:10px 10px 0 0;margin-top:10px}.shell2 .tabbar .tab:hover{color:var(--text);background:#ffffff8c}.shell2 .tabbar .tab.on{color:var(--text);box-shadow:none;background:#fff}.shell2 .tabbar .add{margin-top:10px}.shell2 .tabbar .menu-btn{display:none}.shell2 .body{flex:1;min-width:0;display:flex}.shell2 .side .brand{padding:16px 14px 12px 16px}.shell2 .side .brand .lbl{flex:1;min-width:0;line-height:1.2}.shell2 .side .brand .collapse{color:#fff;cursor:pointer;background:#ffffff1f;border:none;border-radius:8px;flex:none;place-items:center;width:28px;height:28px;margin-left:auto;padding:0;display:grid}.shell2 .side .brand .collapse:hover{background:#ffffff38}.shell2 .side nav{padding:6px 12px 12px}.shell2 .side nav a,.shell2 .side .foot a{margin:2px 0;padding:10px 12px;font-weight:600}.shell2 .side nav .divided{border-top:1px solid #fff3;margin-top:8px;padding-top:8px}.shell2 .side .foot{padding:8px 12px 12px}.shell2 .side.collapsed nav{padding:6px 8px}.shell2 .side.collapsed .brand{flex-direction:column;gap:8px;padding:14px 0}.shell2 .side.collapsed .brand .collapse{margin:0}.shell2 .stage{background:var(--bg)}.pagehead{border-bottom:1px solid var(--border);z-index:31;background:#fff;align-items:center;gap:16px;padding:10px 24px;display:flex;position:relative}.pagehead .pt{letter-spacing:-.01em;white-space:nowrap;margin:0;font-size:17px;font-weight:700}.pagehead .gsearch{margin:0 auto 0 12px}.pagehead .who{flex:none;align-items:center;gap:10px;margin-left:auto;display:flex}.pagehead .who-name{text-align:right;font-size:13px;font-weight:700;line-height:1.25}.pagehead .who-name small{color:var(--muted);text-transform:capitalize;font-size:11px;font-weight:500;display:block}.pagehead .avatar{background:var(--nav);color:#fff;border-radius:50%;place-items:center;width:34px;height:34px;font-size:12.5px;font-weight:700;display:grid}.pagehead button.icon{border:1px solid var(--border);width:34px;height:34px;color:var(--text-2);cursor:pointer;background:#fff;border-radius:9px;place-items:center;padding:0;display:grid}.pagehead button.icon:hover{background:var(--bg)}.pagehead .signout{color:var(--text-2);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:6px 8px;font-size:13px;font-weight:600;display:inline-flex}.pagehead .signout:hover{color:var(--danger);background:0 0}.subrow{border-bottom:1px solid var(--border);z-index:30;background:#fff;flex-wrap:wrap;align-items:center;gap:16px;min-height:48px;padding:0 24px;display:flex;position:sticky;top:44px}.subtabs{scrollbar-width:none;gap:4px;min-width:0;display:flex;overflow-x:auto}.subtabs::-webkit-scrollbar{display:none}.subtabs a{color:var(--text-2);white-space:nowrap;border-bottom:3px solid #0000;align-items:center;gap:7px;padding:14px 14px 11px;font-size:13.5px;font-weight:600;text-decoration:none;display:inline-flex}.subtabs a:hover{color:var(--text);background:var(--bg);text-decoration:none}.subtabs a.on{color:var(--primary);border-bottom-color:var(--primary)}.subtabs .n{color:#fff;text-align:center;background:#ef4444;border-radius:999px;min-width:20px;padding:0 7px;font-size:11px;font-weight:800;line-height:18px}.subrow .actionbar{background:0 0;border:0;flex-wrap:wrap;justify-content:flex-end;margin-left:auto;padding:8px 0;position:static}@media (width<=960px){.shell2 .side{height:100vh;top:0}.shell2 .tabbar .menu-btn{width:30px;height:30px;color:var(--text-2);background:0 0;border:none;place-items:center;margin-right:4px;padding:0;display:grid}.pagehead{flex-wrap:wrap;gap:10px;padding:8px 14px}.pagehead .who-name,.pagehead .signout span{display:none}.pagehead .gsearch{order:3;width:100%;margin:0}.subrow{padding:0 12px}}@media print{.tabstrip,.pagehead,.subrow{display:none!important}}.toolbar .search input{min-width:280px}:root{font-size:15px}body{color:var(--text);font-size:14.5px}a{color:var(--primary)}table.grid td.strong a,table.grid td a.strong,.strong>a,td.strong a:visited{color:var(--text);font-weight:650;text-decoration:none}table.grid td.strong a:hover{color:var(--primary);text-decoration:underline}.table-wrap{border:1px solid var(--border);box-shadow:none;background:#fff;border-radius:12px;overflow:auto}table.grid{border-collapse:separate;border-spacing:0;font-size:14.5px}table.grid thead th{color:#374151;border-bottom:1px solid var(--border);white-space:nowrap;background:#f4f5f9;padding:13px 14px;font-size:14.5px;font-weight:500}table.grid tbody td{color:var(--text);vertical-align:middle;border-bottom:1px solid #eef0f5;padding:11px 14px}table.grid tbody tr:last-child td{border-bottom:none}table.grid td .sub{color:var(--muted);font-size:12px;font-weight:500;display:block}table.grid td.num,table.grid th.num{font-variant-numeric:tabular-nums}table.grid td.strong{font-weight:650}.cell-id{color:var(--text);background:0 0;border:none;padding:0;font-family:inherit;font-size:13.5px;font-weight:500}.badge{border-radius:5px;padding:3px 10px;font-size:12.5px;font-weight:500}.badge.green{color:#15803d;background:#dcfce7}.badge.amber{color:#92400e;background:#fef3c7}.badge.red{color:#b91c1c;background:#fee2e2}.badge.grey{color:#4b5563;background:#eef0f5}.btn-row button,.toolbar button:not(.primary),.actionbar button:not(.primary),button.sm:not(.primary){font-weight:600}button.primary,.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.toolbar{gap:10px}.toolbar input,.toolbar select,.search input{background:#fff;border:1px solid #d9dde8;border-radius:10px;height:40px;font-size:14px}.toolbar .seg{background:#fff;border:1px solid #d9dde8;border-radius:10px;padding:3px}.toolbar .seg button{text-transform:none;letter-spacing:0;border-radius:8px;padding:7px 13px;font-size:13px;font-weight:600}.stat-row{flex-wrap:wrap;gap:12px;display:flex}.stat{background:#fff;border-radius:12px;flex:150px;min-width:150px;padding:12px 18px;display:block}.stat .ico{display:none}.stat>div{flex-direction:column;display:flex}.stat .value{order:1;font-size:24px;font-weight:700;line-height:1.15}.stat .label{color:var(--text-2);order:2;font-size:13px;font-weight:500}.stat .hint{color:var(--muted);order:3;font-size:12px}a.stat:hover{border-color:var(--primary)}.page-header{align-items:center;margin-bottom:14px}.page-header .sub{color:var(--muted);margin:0;font-size:13.5px}.content{padding-top:18px}.card{border-radius:12px}.subrow{min-height:0;padding:0;display:block}.subrow .subtabs{border-bottom:1px solid var(--border);padding:0 24px}.subrow .actionbar{border-bottom:1px solid var(--border-soft);background:#fff;justify-content:flex-start;gap:8px;margin:0;padding:10px 24px;display:flex}.subrow .actionbar:empty{display:none}.subrow:not(:has(.subtabs)) .actionbar{border-top:none}.shell2 .scan-viewer{top:190px}@media (width<=960px){.subrow .subtabs,.subrow .actionbar{padding-left:12px;padding-right:12px}}.shell2 .tabstrip .tabbar .tabs{border-bottom:none;align-self:stretch;align-items:flex-end;margin-bottom:0}.shell2 .tabstrip .tabbar .tab{align-self:flex-end;height:36px;margin-top:0}.shell2 .tabstrip .tabbar .add{align-self:center;margin-top:0}.frame.shell2{--side-w:236px}.frame.shell2.side-collapsed{--side-w:64px}.shell2 .tabstrip{background:#e8ebf3;height:38px}.shell2 .tabstrip .tabbar{align-items:stretch;gap:0;height:38px;padding:0}.shell2 .tabbar .tabnav{width:var(--side-w);box-sizing:border-box;flex:none;align-items:center;gap:2px;padding:0 10px;display:flex}.shell2 .tabstrip .tabbar .tabs{align-self:stretch;align-items:flex-end;gap:2px;margin-left:0}.shell2 .tabstrip .tabbar .tab{border-radius:9px 9px 0 0;align-self:flex-end;height:32px;margin-top:0}.shell2 .tabstrip .tabbar .tab.on{box-shadow:0 -1px 0 var(--border) inset, 1px 0 0 var(--border), -1px 0 0 var(--border);background:#fff}.shell2 .tabstrip .tabbar .add{align-self:center;margin:0 4px}.shell2 .side{height:calc(100vh - 38px);top:38px}.subrow{top:38px}@media (width<=960px){.shell2 .tabbar .tabnav{width:auto;padding:0 8px}.shell2 .side{height:100vh;top:0}}.subrow .subtabs{background:#fff;border-bottom:none;gap:6px;padding:12px 24px 10px;overflow-x:auto}.subrow .subtabs a:hover{background:var(--primary-soft);color:var(--primary);border-color:var(--primary-soft-2)}.subrow .subtabs a.on{background:var(--primary);border-color:var(--primary);color:#fff}.subrow .subtabs a .n{color:#fff;background:#ef4444}.subrow .actionbar{border-bottom:1px solid var(--border);border-top:none;justify-content:flex-start;padding:2px 24px 12px}.subrow:not(:has(.actionbar>*)) .subtabs{border-bottom:1px solid var(--border);padding-bottom:12px}.toolbar .seg button.on{background:var(--primary);color:#fff}.shell2 .tabstrip .tabbar .tab{border-radius:12px 12px 0 0;padding-left:16px}.shell2 .tabstrip .tabbar .tab.on:before,.shell2 .tabstrip .tabbar .tab.on:after{content:"";pointer-events:none;width:12px;height:12px;position:absolute;bottom:0}.shell2 .tabstrip .tabbar .tab{position:relative}.shell2 .tabstrip .tabbar .tab.on:before{background:radial-gradient(circle at 0 0,#0000 11.5px,#fff 12px);left:-12px}.shell2 .tabstrip .tabbar .tab.on:after{background:radial-gradient(circle at 100% 0,#0000 11.5px,#fff 12px);right:-12px}.shell2 .tabstrip .tabbar .tab.on{box-shadow:none}.shell2 .tabbar .tabnav{width:auto;padding:0 6px 0 12px}.shell2 .tabstrip .tabbar .tabs{margin-left:4px}.side .foot a.powered{color:#b8c4f5;letter-spacing:.06em;text-transform:uppercase;background:0 0;flex-direction:column;align-items:flex-start;gap:4px;padding:12px 14px 4px;font-size:11px;font-weight:600;display:flex}.side .foot a.powered:hover{color:#fff;background:0 0}.side .foot a.powered img{opacity:.95;width:auto;height:54px}.side.collapsed .foot a.powered{align-items:center;padding:10px 0}.side.collapsed .foot a.powered .lbl{display:none}.side.collapsed .foot a.powered img{height:34px}.powered-login{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;justify-content:center;align-items:center;gap:10px;margin-top:18px;font-size:11px;font-weight:600;display:flex}.powered-login img{width:auto;height:52px}.logo.mark,.side .brand .logo.mark,.login-card .logo.mark{box-shadow:none;background:0 0!important;padding:0!important}.logo.mark img.givr-mark{border-radius:10px;display:block}.side .brand .logo.mark{width:40px;height:40px}.login-card .logo.mark{width:64px;height:64px;margin:0 auto 8px}.login-card .logo.mark img.givr-mark{width:64px!important;height:64px!important}.voucher-link{font:inherit;color:var(--text);text-underline-offset:3px;cursor:pointer;box-shadow:none;background:0 0;border:none;margin:0;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.voucher-link:hover{color:var(--primary);background:0 0;text-decoration:underline}.peek-scrim{z-index:1000;background:#0f172a8c;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.peek{width:min(860px,96vw);max-height:92vh;margin:0;padding:18px 22px 22px;overflow:auto}.peek-head{align-items:center;gap:14px;margin-bottom:12px;display:flex}.peek-head h3{letter-spacing:-.01em;margin:0;font-size:24px}.peek-kicker{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:700}.peek-x{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:9px;place-items:center;width:32px;height:32px;margin-left:auto;padding:0;display:grid}.peek-body{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;gap:20px;display:grid}@media (width<=760px){.peek-body{grid-template-columns:1fr}}.peek-scan{justify-items:start;gap:10px;display:grid}.peek-scan img{border:1px solid var(--border);background:#fff;border-radius:10px;width:100%}.peek-noscan{border:1px dashed var(--border);text-align:center;border-radius:10px;width:100%;padding:40px 16px}.peek-dl{grid-template-columns:auto 1fr;gap:6px 14px;margin:0;display:grid}.peek-dl dt{color:var(--muted);font-weight:600}.peek-dl dd{margin:0}.peek-item{border:1px solid var(--border);border-radius:10px;gap:2px;margin-bottom:8px;padding:9px 12px;display:grid}:root{--z:.9}.frame.shell2{min-height:calc(100vh / var(--z))}.shell2 .side{height:calc((100vh / var(--z)) - 38px)}@media (width<=960px){.shell2 .side{height:calc(100vh / var(--z))}}.page-header{align-items:center;gap:12px;margin-bottom:12px}.page-header .title{flex:auto;min-width:0}.page-header h1{letter-spacing:-.01em;color:var(--text);margin:0;font-size:20px;font-weight:700}.page-header .btn-row{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-left:auto;display:flex}.page-header .action-slot{display:contents}.page-header .btn-row button{align-items:center;gap:6px;display:inline-flex}.subrow{border-bottom:1px solid var(--border);background:#fff;min-height:0;padding:8px 24px;display:block}.subrow .subtabs{background:#eef0f6;border:1px solid #d9dde8;border-radius:10px;gap:2px;max-width:100%;padding:3px;display:inline-flex;overflow-x:auto}.subrow .subtabs a{color:var(--text-2);background:0 0;border:none;border-radius:8px;padding:6px 16px;font-size:13.5px;font-weight:600}.subrow .subtabs a:hover{color:var(--text);background:#ffffffb3;border:none}.subrow .subtabs a.on{background:var(--primary);color:#fff;box-shadow:0 1px 2px #0f172a2e}.subrow .actionbar{border:0;padding:8px 0 2px}.subrow:not(:has(.subtabs)):not(:has(.actionbar>*)){display:none}.subrow:not(:has(.subtabs)) .actionbar{padding-top:0}@media (width<=960px){.subrow{padding:8px 12px}}.textsize{position:relative}.textsize-scrim{z-index:90;position:fixed;inset:0}.textsize-pop{z-index:91;border:1px solid var(--border);width:230px;box-shadow:var(--shadow-md);background:#fff;border-radius:12px;gap:2px;padding:10px;display:grid;position:absolute;top:calc(100% + 6px);right:0}.textsize-pop .ts-title{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:2px 6px 6px;font-size:11px;font-weight:700}.textsize-pop .ts-step{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;padding:0 0 8px;font-weight:600;display:flex}.textsize-pop .ts-step button{width:44px;height:32px;padding:0;font-weight:800}.textsize-pop>button[role=menuitemradio]{text-align:left;box-shadow:none;background:0 0;border:none;border-radius:7px;padding:6px 8px;font-weight:500}.textsize-pop>button[role=menuitemradio]:hover{background:var(--bg)}.textsize-pop>button[role=menuitemradio].on{background:var(--primary-soft);color:var(--primary);font-weight:700}.textsize-pop .ts-note{margin:6px 6px 2px;font-size:11.5px}.statusbar .demo-note{color:#92400e;background:#fef3c7;border-radius:6px;padding:1px 10px;font-weight:600}tr[data-cf-hide]{display:none}.cf-btn{vertical-align:middle;color:#6b7280;cursor:pointer;width:20px;height:20px;box-shadow:none;opacity:.55;background:0 0;border:none;border-radius:5px;place-items:center;margin-left:4px;padding:0;font-size:11px;line-height:1;display:inline-grid}.cf-btn:before{content:"▾"}.cf-btn[data-state~=a]:before,.cf-btn[data-state=fa]:before{content:"▲"}.cf-btn[data-state=d]:before,.cf-btn[data-state=fd]:before{content:"▼"}th:hover .cf-btn,.cf-btn.on{opacity:1}.cf-btn:hover{background:#11182714}.cf-btn.on{background:var(--primary-soft-2);color:var(--primary)}.cf-btn[data-state^=f]{outline:1.5px solid var(--primary)}.cf-scrim{z-index:998;position:fixed;inset:0}.cf-menu{z-index:999;border:1px solid var(--border);text-transform:none;letter-spacing:0;width:280px;max-height:80vh;color:var(--text);background:#fff;border-radius:12px;padding:8px;font-size:13.5px;font-weight:400;position:fixed;overflow:auto;box-shadow:0 12px 32px #0f172a38}.cf-menu hr{border:0;border-top:1px solid var(--border);margin:6px 0}.cf-title{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:2px 6px 4px;font-size:11px;font-weight:700}.cf-opt{text-align:left;width:100%;box-shadow:none;cursor:pointer;background:0 0;border:none;border-radius:7px;align-items:center;gap:8px;padding:6px 8px;font-weight:500;display:flex}.cf-opt:hover{background:var(--bg)}.cf-opt.on{background:var(--primary-soft);color:var(--primary);font-weight:700}.cf-search{border:1px solid #d9dde8;border-radius:8px;width:100%;height:32px;margin:2px 0 6px;padding:0 10px;font-size:13.5px}.cf-add{color:var(--text-2);align-items:center;gap:6px;padding:2px 4px 6px;font-size:12.5px;font-weight:600;display:flex}.cf-list{border:1px solid var(--border);border-radius:8px;max-height:240px;padding:4px;overflow:auto}.cf-row{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:4px 6px;display:flex}.cf-row:hover{background:var(--bg)}.cf-row.all{border-bottom:1px solid var(--border-soft);border-radius:6px 6px 0 0;font-weight:700}.cf-val{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.cf-n{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.cf-none{color:var(--muted);padding:8px}.cf-foot{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}@media print{.listbar-host,.cf-btn{display:none!important}}.cf-foot button{padding:5px 11px;font-size:13px}:root{--primary:#0d2577;--primary-hover:#091b5a;--primary-soft:#e8ecf9;--primary-soft-2:#cfd7f1}button.primary,.btn.primary{box-shadow:0 1px 2px #0d25774d}.pagehead{align-items:center;gap:16px;padding:8px 24px;display:flex}.pagehead .ph-left{flex:1 1 0;align-items:center;min-width:0;display:flex}.pagehead .gsearch{flex:0 460px;width:460px;margin:0}.pagehead .who{flex:1 1 0;justify-content:flex-end;margin-left:0}.pagehead .subtabs{background:#eef0f6;border:1px solid #d9dde8;border-radius:10px;gap:2px;max-width:100%;padding:3px;display:inline-flex;overflow-x:auto}.pagehead .subtabs a{color:var(--text-2);background:0 0;border:none;border-radius:8px;outline:none;padding:6px 16px;font-size:13.5px;font-weight:600}.pagehead .subtabs a:hover{color:var(--text);background:#ffffffb3}.pagehead .subtabs a.on{background:var(--primary);color:#fff;box-shadow:0 1px 2px #0d25774d}.pagehead .subtabs a:focus-visible{box-shadow:0 0 0 2px #fff, 0 0 0 4px var(--primary)}.pagehead .subtabs .n{color:#fff;background:#ef4444}.subrow:not(:has(.actionbar>*)){display:none}@media (width<=960px){.pagehead{flex-wrap:wrap}.pagehead .gsearch{flex:100%;order:3;width:100%}.pagehead .ph-left{flex:auto}.pagehead .who{flex:none}}.picker{min-width:260px;position:relative}.picker .pk-box{background:#fff;border:1px solid #d9dde8;border-radius:9px;align-items:center;gap:8px;height:38px;padding:0 12px;display:flex}.picker .pk-box:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft-2)}.picker .pk-box input{min-width:0;height:100%;font:inherit;box-shadow:none;background:0 0;border:none;outline:none;flex:1;padding:0}.picker .pk-box svg{color:var(--muted);flex:none}.picker .pk-list{z-index:60;border:1px solid var(--border);max-height:320px;box-shadow:var(--shadow-md);background:#fff;border-radius:10px;min-width:340px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto}.picker .pk-list li{cursor:pointer;border-radius:7px;flex-wrap:wrap;align-items:center;gap:8px;padding:7px 10px;display:flex}.picker .pk-list li.on{background:var(--primary-soft)}.picker .pk-main{color:var(--text);font-weight:650}.picker .pk-sub{font-size:12.5px}.picker .pk-extra{font-variant-numeric:tabular-nums;margin-left:auto;font-size:13px;font-weight:600}.picker .pk-none{color:var(--muted);cursor:default}.picker.chosen{border:1px solid var(--primary-soft-2);background:var(--primary-soft);border-radius:9px;flex-wrap:wrap;align-items:center;gap:8px;min-height:38px;padding:4px 10px;display:flex}.picker .pk-change{color:var(--primary);cursor:pointer;box-shadow:none;background:0 0;border:none;align-items:center;gap:4px;margin-left:auto;padding:2px 6px;font-size:13px;font-weight:600;display:inline-flex}.alloc-card{margin-bottom:12px}.alloc-client{background:var(--primary-soft);border-radius:9px;flex-wrap:wrap;justify-content:space-between;gap:16px;margin-bottom:10px;padding:8px 12px;display:flex}.alloc-client.bad{background:var(--danger-soft)}.order-lines .line-done td{color:var(--muted)}.order-lines .line-flash td{animation:2.4s ease-out lineflash}@keyframes lineflash{0%{background:#bbf7d0}to{background:0 0}}table.grid tr.row-on td{background:var(--primary-soft)}.warn-box{color:#78350f;background:#fffbeb;border:1px solid #fcd34d;border-radius:10px;margin:10px 0;padding:10px 14px}.alloc-ask ul{margin:6px 0 10px 18px;padding:0}.alloc-ask .ask-head{align-items:center;gap:8px;margin-bottom:4px;display:flex}.alloc-ask .ask-book{margin-bottom:4px;font-size:13px}.status-options{gap:6px;display:grid}.status-options label{border:1px solid var(--border);cursor:pointer;border-radius:10px;align-items:flex-start;gap:10px;padding:8px 12px;display:flex}.status-options label.on{border-color:var(--primary);background:var(--primary-soft)}.status-options label input{accent-color:var(--primary);margin-top:3px}.status-options .sub{color:var(--muted);font-size:12.5px;font-weight:400;display:block}.status-options em{color:var(--muted);font-size:12.5px;font-style:normal}.page-header{justify-content:flex-start;align-items:flex-start;gap:20px}.page-header .title{flex:none;max-width:42%}.page-header .btn-row{flex:1 1 0;justify-content:flex-start;min-width:0;margin-left:0}@media (width<=960px){.page-header .title,.page-header .btn-row{max-width:100%}}.page-header .btn-row{gap:6px}.page-header .btn-row button,.page-header .btn-row a.btn{gap:5px;padding:6px 9px;font-size:13px}.page-header .title{max-width:30%}.page-header{gap:14px}.page-header .btn-row{justify-content:flex-end}@media (width<=960px){.page-header .btn-row{justify-content:flex-start}}.lm-scrim{z-index:1200;position:fixed;inset:0}.lm-menu{z-index:1201;border:1px solid var(--border);background:#fff;border-radius:10px;min-width:190px;padding:5px;position:fixed;box-shadow:0 10px 28px #0f172a38}.lm-menu button{text-align:left;cursor:pointer;width:100%;box-shadow:none;color:var(--text);background:0 0;border:none;border-radius:7px;align-items:center;gap:9px;padding:7px 10px;font-weight:500;display:flex}.lm-menu button:hover{background:var(--primary-soft);color:var(--primary)}.connections h4{margin:14px 0 6px;font-size:14px}.copybox{border:1px solid var(--border);background:#f4f5f9;border-radius:9px;padding:10px 96px 10px 12px;position:relative}.copybox pre{white-space:pre-wrap;word-break:break-all;margin:0;font:12.5px/1.45 ui-monospace,SF Mono,Menlo,Consolas,monospace}.copybox button{position:absolute;top:8px;right:8px}.connections .stack{gap:10px;display:grid}.connections form input{min-width:280px;height:38px;font:inherit;background:#fff;border:1px solid #d9dde8;border-radius:9px;padding:0 12px}.connections .field input{background:#fff;border:1px solid #d9dde8;border-radius:9px;height:38px;padding:0 12px}.tour{z-index:2000;position:fixed;inset:0}.tour-dim{background:#0f172a8c;position:absolute;inset:0}.tour-hole{pointer-events:none;border-radius:12px;outline:3px solid #fff;transition:all .25s;position:absolute;box-shadow:0 0 0 9999px #0f172a8c}.tour-card{background:#fff;border-radius:14px;width:min(380px,100vw - 24px);padding:18px 20px 16px;position:absolute;box-shadow:0 18px 48px #0f172a66}.tour-card h3{margin:4px 0 6px;font-size:17px}.tour-card p{color:var(--text-2);margin:0 0 12px;line-height:1.5}.tour-count{letter-spacing:.08em;text-transform:uppercase;color:var(--primary);font-size:11.5px;font-weight:700}.tour-x{cursor:pointer;width:26px;height:26px;color:var(--muted);background:0 0;border:none;border-radius:7px;place-items:center;padding:0;display:grid;position:absolute;top:10px;right:10px}.tour-x:hover{background:var(--bg)}.tour-nav{justify-content:space-between;align-items:center;gap:8px;margin-top:4px;display:flex}.tour-btns{gap:6px;display:flex}.tour-btns button{align-items:center;gap:4px;display:inline-flex}.tour-skip{color:var(--muted);cursor:pointer;box-shadow:none;background:0 0;border:none;padding:6px 2px;font-weight:600}.tour-skip:hover{color:var(--text);background:0 0}.tour-act{margin:-2px 0 12px}.pagehead .tour-btn{border:1px solid var(--border);width:34px;height:34px;color:var(--text-2);cursor:pointer;background:#fff;border-radius:9px;place-items:center;padding:0;display:grid}.pagehead .tour-btn:hover{background:var(--bg)}@media (width<=860px){.inbox-grid{grid-template-columns:1fr!important}}.inbox-row:hover{background:var(--soft,#f3f4f6)!important}.gsearch-pop .gsearch-scopes{border-bottom:1px solid var(--border);z-index:1;background:#fff;flex-wrap:wrap;gap:4px;margin-bottom:4px;padding:4px 4px 8px;display:flex;position:sticky;top:-6px}.gsearch-pop .gsearch-scopes button{border:1px solid var(--border);width:auto;color:var(--muted,#6b7280);background:#fff;border-radius:999px;align-items:center;gap:5px;padding:4px 9px;font-size:12px;font-weight:600;display:inline-flex}.gsearch-pop .gsearch-scopes button:hover{border-color:var(--primary);color:var(--primary)}.gsearch-pop .gsearch-scopes button.on{background:var(--primary);border-color:var(--primary);color:#fff}.gsearch-pop .none code{background:#f1f5f9;border-radius:4px;padding:0 4px}.pager{flex-wrap:wrap;align-items:center;gap:10px;margin:-4px 0 14px;font-size:13px;display:flex}.pager .grow{flex:1}.pager button.sm{align-items:center;padding:4px 8px;display:inline-flex}.pager select{margin-left:4px}th.sortable{padding:0}th.sortable .sort-btn{all:unset;box-sizing:border-box;width:100%;padding:inherit;cursor:pointer;font:inherit;font-weight:inherit;color:inherit;align-items:center;gap:4px;padding:9px 12px;display:inline-flex}th.sortable.num .sort-btn{justify-content:flex-end}th.sortable .sort-btn:hover{text-decoration:underline}th.sortable .sort-btn:focus-visible{outline:2px solid var(--accent,#0b6b5d);outline-offset:-2px}
