*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}html{height:var(--hsal-vh)}#root{width:100%;text-align:initial}:root{--hsal-font:"Inter", "Noto Sans Khmer", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--hsal-primary:#2563eb;--hsal-primary-dk:#1d4ed8;--hsal-primary-dp:#1e40af;--hsal-accent:#f5a623;--hsal-green:#10b981;--hsal-red:#ef4444;--hsal-danger:#dc2626;--hsal-danger-dk:#b91c1c;--hsal-amber:#f59e0b;--hsal-purple:#8b5cf6;--hsal-pink:#ec4899;--hsal-teal:#14b8a6;--hsal-bg:#f6f7f9;--hsal-surface:#fff;--hsal-surface-alt:#f9fafb;--hsal-surface-hover:#f3f4f6;--hsal-border:#e5e7eb;--hsal-border-strong:#d1d5db;--hsal-text:#111827;--hsal-text-strong:#111827;--hsal-text-muted:#374151;--hsal-text-subtle:#6b7280;--hsal-text-faint:#9ca3af;--hsal-side:#0b1220;--hsal-side-text:#f8fafc;--hsal-side-text-muted:#a3adbd;--hsal-side-text-faint:#6b7688;--hsal-side-border:#ffffff12;--hsal-side-hover:#ffffff0d;--hsal-side-active-bg:#3b82f629;--hsal-side-child-active-bg:#3b82f624;--hsal-side-child-hover:#ffffff0a;--hsal-side-child-border:#ffffff14;--hsal-primary-tint:#eff6ff;--hsal-primary-tint-strong:#dbeafe;--hsal-focus:#2563eb40;--hsal-scroll:#64748b59;--hsal-overlay:#0f172a73;--hsal-shadow-xs:0 1px 2px #1018280d;--hsal-shadow-md:0 8px 24px #1018281a;--hsal-shadow-lg:0 12px 40px #10182824;--hsal-shadow-xl:0 25px 60px #10182829;--hsal-badge-bg-green:#dcfce7;--hsal-badge-text-green:#166534;--hsal-badge-bg-red:#fee2e2;--hsal-badge-text-red:#991b1b;--hsal-badge-bg-amber:#fef3c7;--hsal-badge-text-amber:#92400e;--hsal-badge-bg-blue:#dbeafe;--hsal-badge-text-blue:#1e40af;--hsal-badge-bg-purple:#f3e8ff;--hsal-badge-text-purple:#6b21a8;--hsal-badge-bg-gray:#f3f4f6;--hsal-badge-text-gray:#374151;--hsal-badge-bg-indigo:#e0e7ff;--hsal-badge-text-indigo:#3730a3;--hsal-badge-bg-orange:#ffedd5;--hsal-badge-text-orange:#9a3412;--hsal-badge-bg-emerald:#d1fae5;--hsal-badge-text-emerald:#065f46;--hsal-badge-bg-pink:#fce7f3;--hsal-badge-text-pink:#9d174d}html[data-theme=dark]{--hsal-primary:#3b82f6;--hsal-primary-dk:#2563eb;--hsal-primary-dp:#1d4ed8;--hsal-danger:#ef4444;--hsal-danger-dk:#dc2626;--hsal-bg:#0b1120;--hsal-surface:#121a2b;--hsal-surface-alt:#172034;--hsal-surface-hover:#1e293d;--hsal-border:#243049;--hsal-border-strong:#33415e;--hsal-text:#f1f5f9;--hsal-text-strong:#fff;--hsal-text-muted:#d5dce6;--hsal-text-subtle:#a3adbd;--hsal-text-faint:#7b879a;--hsal-primary-tint:#3b82f629;--hsal-primary-tint-strong:#3b82f647;--hsal-focus:#3b82f666;--hsal-side:#070c17;--hsal-side-text:#f1f5f9;--hsal-side-text-muted:#a3adbd;--hsal-side-text-faint:#6b7688;--hsal-side-border:#ffffff0f;--hsal-side-hover:#ffffff0d;--hsal-side-active-bg:#3b82f633;--hsal-side-child-active-bg:#3b82f62e;--hsal-side-child-hover:#ffffff0a;--hsal-side-child-border:#ffffff12;--hsal-scroll:#94a3b84d;--hsal-overlay:#000000a6;--hsal-shadow-xs:0 1px 2px #0000004d;--hsal-shadow-md:0 8px 24px #00000080;--hsal-shadow-lg:0 12px 40px #0009;--hsal-shadow-xl:0 25px 60px #000000b3;--hsal-badge-bg-green:#10b9812e;--hsal-badge-text-green:#6ee7b7;--hsal-badge-bg-red:#ef44442e;--hsal-badge-text-red:#fca5a5;--hsal-badge-bg-amber:#f59e0b2e;--hsal-badge-text-amber:#fcd34d;--hsal-badge-bg-blue:#3b82f62e;--hsal-badge-text-blue:#93c5fd;--hsal-badge-bg-purple:#8b5cf62e;--hsal-badge-text-purple:#c4b5fd;--hsal-badge-bg-gray:#9ca3af2e;--hsal-badge-text-gray:#e2e8f0;--hsal-badge-bg-indigo:#6366f12e;--hsal-badge-text-indigo:#a5b4fc;--hsal-badge-bg-orange:#f973162e;--hsal-badge-text-orange:#fdba74;--hsal-badge-bg-emerald:#10b9812e;--hsal-badge-text-emerald:#6ee7b7;--hsal-badge-bg-pink:#ec48992e;--hsal-badge-text-pink:#f9a8d4;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root{--hsal-zoom:1;--hsal-vh:calc(100vh / var(--hsal-zoom))}@media (width>=1440px){:root{--hsal-zoom:1.1;zoom:1.1}}@media (width>=1800px){:root{--hsal-zoom:1.25;zoom:1.25}}body{background:var(--hsal-bg);color:var(--hsal-text);font-family:var(--hsal-font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.45}:lang(km) body{line-height:1.6}button,input,select,textarea{letter-spacing:inherit;font-family:inherit}::selection{background:var(--hsal-primary-tint-strong)}:focus-visible{outline:2px solid var(--hsal-primary);outline-offset:2px}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):focus,select:focus,textarea:focus{box-shadow:0 0 0 3px var(--hsal-focus);outline:none;border-color:var(--hsal-primary)!important}input,select,textarea{transition:border-color .12s,box-shadow .12s}input::placeholder,textarea::placeholder{color:var(--hsal-text-faint)}select:not([multiple]):not([size]){appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")!important;background-position:right 10px center!important;background-repeat:no-repeat!important;background-size:12px!important;padding-right:30px!important}input[type=checkbox],input[type=radio]{accent-color:var(--hsal-primary)}*{scrollbar-width:thin;scrollbar-color:var(--hsal-scroll) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--hsal-scroll);background-clip:padding-box;border:2px solid #0000;border-radius:8px}::-webkit-scrollbar-track{background:0 0}table{border-collapse:collapse}tbody>tr{transition:background-color .1s}tbody>tr:hover{background:var(--hsal-surface-alt)}@keyframes pulse{50%{opacity:.6}}.hsal-btn{border:1px solid var(--hsal-border-strong);background:var(--hsal-surface);height:34px;color:var(--hsal-text-strong);box-shadow:var(--hsal-shadow-xs);white-space:nowrap;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-size:14px;font-weight:500;line-height:1;transition:background-color .12s,border-color .12s,color .12s;display:inline-flex}.hsal-btn:hover:not(:disabled){background:var(--hsal-surface-hover)}.hsal-btn--sm{border-radius:6px;gap:4px;height:28px;padding:0 10px;font-size:13px}.hsal-btn--primary{border-color:var(--hsal-primary);background:var(--hsal-primary);color:#fff}.hsal-btn--primary:hover:not(:disabled){border-color:var(--hsal-primary-dk);background:var(--hsal-primary-dk)}.hsal-btn--danger{border-color:var(--hsal-danger);background:var(--hsal-danger);color:#fff}.hsal-btn--danger:hover:not(:disabled){border-color:var(--hsal-danger-dk);background:var(--hsal-danger-dk)}.hsal-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.hsal-btn svg{flex-shrink:0}.hsal-badge{white-space:nowrap;border-radius:9999px;justify-content:center;align-items:center;height:24px;padding:0 10px;font-size:12px;font-weight:600;line-height:1;display:inline-flex}.hsal-badge--sm{height:20px;padding:0 8px;font-size:11px}.hsal-badge--pulse{animation:1.5s infinite pulse}.hsal-card{background:var(--hsal-surface);color:var(--hsal-text);border:1px solid var(--hsal-border);box-shadow:var(--hsal-shadow-xs);border-radius:12px}.hsal-page-header{background:var(--hsal-surface);border-bottom:1px solid var(--hsal-border);justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;display:flex}.hsal-page-header h1,.hsal-page-header h2{letter-spacing:-.01em;color:var(--hsal-text-strong);margin:0;font-size:20px;font-weight:600;line-height:1.3}.hsal-page-header p{color:var(--hsal-text-subtle);margin:4px 0 0;font-size:14px}.hsal-page-header-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.hsal-kpi{flex-direction:column;flex:200px;min-width:0;padding:16px;display:flex}.hsal-kpi--clickable{cursor:pointer;transition:border-color .12s,box-shadow .12s}.hsal-kpi--clickable:hover{border-color:var(--hsal-border-strong);box-shadow:var(--hsal-shadow-md)}.hsal-kpi-head{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:10px;display:flex}.hsal-kpi-title{-webkit-line-clamp:2;min-width:0;color:var(--hsal-text-subtle);-webkit-box-orient:vertical;flex:1;font-size:13px;font-weight:500;line-height:1.35;display:-webkit-box;overflow:hidden}.hsal-kpi-icon{border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.hsal-kpi-icon svg{width:16px;height:16px}.hsal-kpi-value{font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--hsal-text-strong);margin-top:auto;font-size:26px;font-weight:600;line-height:1.15}.hsal-kpi-delta{margin-top:4px;font-size:13px;font-weight:500}.hsal-th{background:var(--hsal-surface-alt);border-bottom:1px solid var(--hsal-border);color:var(--hsal-text-subtle);white-space:nowrap;letter-spacing:.01em;padding:10px 12px;font-size:12px;font-weight:600}.hsal-th:first-child,.hsal-td:first-child{padding-left:16px}.hsal-th:last-child,.hsal-td:last-child{padding-right:16px}.hsal-td{border-bottom:1px solid var(--hsal-border);vertical-align:middle;padding:12px;font-size:14px}tbody>tr:last-child>.hsal-td{border-bottom:none}.hsal-tabs{border-bottom:1px solid var(--hsal-border);gap:4px;padding:0 16px;display:flex}.hsal-tab{color:var(--hsal-text-subtle);white-space:nowrap;cursor:pointer;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 12px;font-size:14px;transition:color .12s,border-color .12s}.hsal-tab:hover{color:var(--hsal-text-strong)}.hsal-tab--active,.hsal-tab--active:hover{border-bottom-color:var(--hsal-primary);color:var(--hsal-primary)}.hsal-field{margin-bottom:14px}.hsal-field>label,.hsal-field-label{color:var(--hsal-text-muted);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.hsal-field-hint{color:var(--hsal-text-subtle);margin-top:6px;font-size:12px;line-height:1.4}.hsal-form{gap:16px;display:grid}.hsal-form .hsal-field{margin-bottom:0}.hsal-form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.hsal-input{border:1px solid var(--hsal-border-strong);background:var(--hsal-surface);width:100%;height:34px;color:var(--hsal-text);box-shadow:var(--hsal-shadow-xs);border-radius:8px;outline:none;padding:0 12px;font-size:14px}.hsal-select{border:1px solid var(--hsal-border-strong);background-color:var(--hsal-surface);min-width:120px;height:34px;color:var(--hsal-text-muted);box-shadow:var(--hsal-shadow-xs);border-radius:8px;padding:0 12px;font-size:13px}.hsal-pagination .hsal-select{min-width:0;height:30px}.hsal-search{border:1px solid var(--hsal-border-strong);background:var(--hsal-surface);max-width:100%;height:34px;color:var(--hsal-text-faint);box-shadow:var(--hsal-shadow-xs);border-radius:8px;align-items:center;gap:8px;padding:0 10px;transition:border-color .12s,box-shadow .12s;display:flex}.hsal-search:focus-within{border-color:var(--hsal-primary);box-shadow:0 0 0 3px var(--hsal-focus)}.hsal-search svg{flex-shrink:0}.hsal-search input{min-width:0;height:100%;color:var(--hsal-text);background:0 0;border:none;outline:none;flex:1;padding:0;font-size:14px}.hsal-search input:focus{box-shadow:none!important}.hsal-search input::-webkit-search-cancel-button{display:none}.hsal-search button{color:var(--hsal-text-faint);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 4px;font-size:12px;line-height:1}.hsal-search button:hover{color:var(--hsal-text-strong)}.hsal-chip{border:1px solid var(--hsal-border);background:var(--hsal-surface);height:30px;color:var(--hsal-text-muted);white-space:nowrap;cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:500;line-height:1;transition:background-color .12s,border-color .12s,color .12s;display:inline-flex}.hsal-chip:hover{border-color:var(--hsal-border-strong);color:var(--hsal-text-strong)}.hsal-chip--active,.hsal-chip--active:hover{border-color:color-mix(in srgb, var(--hsal-primary) 45%, transparent);background:var(--hsal-primary-tint);color:var(--hsal-primary)}.hsal-chip-count{color:var(--hsal-text-subtle);font-variant-numeric:tabular-nums;font-size:13px;font-weight:500;line-height:1}.hsal-chip-count--zero{color:var(--hsal-text-faint);opacity:.7}.hsal-chip--active .hsal-chip-count{color:var(--hsal-primary);opacity:.75}.hsal-vh{font-size:0}.hsal-toolbar{flex-wrap:wrap;align-items:center;gap:8px 10px;padding:16px 24px 0;display:flex}.hsal-toolbar+.hsal-toolbar{padding-top:10px}.hsal-toolbar-divider{background:var(--hsal-border);width:1px;height:22px;margin:0 2px}.hsal-page-body{padding:16px 24px 24px}.hsal-table-card{border:1px solid var(--hsal-border);background:var(--hsal-surface);box-shadow:var(--hsal-shadow-xs);border-radius:12px;overflow-x:auto}.hsal-table{border-collapse:collapse;width:100%}.hsal-empty-row>td{color:var(--hsal-text-faint);text-align:center;padding:40px 16px;font-size:14px}tbody>tr.hsal-empty-row:hover{background:0 0}.hsal-pagination{color:var(--hsal-text-subtle);justify-content:space-between;align-items:center;gap:12px;margin-top:12px;font-size:13px;display:flex}.hsal-pagination-size,.hsal-pagination-nav{flex:1;align-items:center;gap:8px;display:flex}.hsal-pagination-nav{justify-content:flex-end;gap:6px}.hsal-input-group{border:1px solid var(--hsal-border-strong);background:var(--hsal-surface);height:34px;box-shadow:var(--hsal-shadow-xs);border-radius:8px;align-items:center;transition:border-color .12s,box-shadow .12s;display:flex;overflow:hidden}.hsal-input-group:focus-within{border-color:var(--hsal-primary);box-shadow:0 0 0 3px var(--hsal-focus)}.hsal-input-group input{min-width:0;height:100%;color:var(--hsal-text);background:0 0;border:none;outline:none;flex:1;padding:0 12px;font-size:14px}.hsal-input-group input:focus{box-shadow:none!important}.hsal-input-addon{border-right:1px solid var(--hsal-border);background:var(--hsal-surface-alt);color:var(--hsal-text-subtle);white-space:nowrap;-webkit-user-select:none;user-select:none;align-self:stretch;align-items:center;padding:0 10px;font-size:14px;display:flex}.hsal-input-group .hsal-icon-btn{flex-shrink:0;width:28px;height:28px;margin-right:3px}.hsal-icon-btn:disabled{opacity:.4;cursor:not-allowed}.hsal-icon-btn:disabled:hover{color:var(--hsal-text-subtle);background:0 0}.hsal-icon-btn svg{width:16px;height:16px}.hsal-input-suffix{border-left:1px solid var(--hsal-border);background:var(--hsal-surface-alt);color:var(--hsal-text-subtle);white-space:nowrap;-webkit-user-select:none;user-select:none;align-self:stretch;align-items:center;padding:0 10px;font-size:13px;display:flex}.hsal-input-group--invalid,.hsal-input-group--invalid:focus-within{border-color:var(--hsal-red)}.hsal-sheet{border:1px solid var(--hsal-border);background:var(--hsal-surface);border-radius:12px}.hsal-sheet-head,.hsal-sheet-row{grid-template-columns:minmax(0,1fr) 132px 96px 56px;align-items:center;column-gap:16px;padding:0 20px;display:grid}.hsal-sheet-head{border-bottom:1px solid var(--hsal-border);height:40px;color:var(--hsal-text-subtle);font-size:12px;font-weight:500}.hsal-sheet-section{z-index:2;box-shadow:0 1px 0 var(--hsal-border), 0 6px 12px -10px #00000059;border-bottom:1px solid var(--hsal-border);background:var(--hsal-surface);align-items:baseline;gap:8px;padding:18px 20px 8px;display:flex;position:sticky;top:0}.hsal-sheet-section span:first-child{color:var(--hsal-text-strong);font-size:15px;font-weight:600}.hsal-sheet-section span:last-child{color:var(--hsal-text-faint);font-size:13px}.hsal-sheet-section--described{display:block}.hsal-sheet-section--described>div{align-items:baseline;gap:8px;display:flex}.hsal-sheet-section--described>div span:first-child{color:var(--hsal-text-strong);font-size:15px;font-weight:600}.hsal-sheet-section--described>div span:last-child{color:var(--hsal-text-faint);font-size:13px}.hsal-sheet-section--described p{color:var(--hsal-text-subtle);margin:2px 0 0;font-size:13px}.hsal-sheet-tags{align-items:center;gap:6px;margin-top:4px;display:flex}.hsal-sheet-locked{color:var(--hsal-text-subtle);align-items:center;gap:4px;font-size:12px;display:inline-flex}.hsal-sheet-locked svg,.hsal-sheet-legend svg{width:13px;height:13px}.hsal-sheet-input:disabled{background-color:var(--hsal-surface-alt);color:var(--hsal-text-faint);cursor:not-allowed}.hsal-sheet-legend{color:var(--hsal-text-subtle);flex-wrap:wrap;align-items:center;gap:8px 20px;font-size:12px;display:flex}.hsal-sheet-legend>span{align-items:center;gap:6px;display:inline-flex}.hsal-sheet-legend-dot{border-radius:50%;width:8px;height:8px}.hsal-sheet-row{padding-top:10px;padding-bottom:10px}.hsal-sheet-row+.hsal-sheet-row{border-top:1px solid var(--hsal-border)}.hsal-sheet-row:hover{background:var(--hsal-surface-alt)}.hsal-sheet-name{color:var(--hsal-text-strong);font-size:14px;font-weight:500}.hsal-sheet-desc{max-width:96ch;color:var(--hsal-text-subtle);margin-top:2px;font-size:13px;line-height:1.45}.hsal-sheet-error{color:var(--hsal-red);margin-top:4px;font-size:12px}.hsal-sheet-input{text-align:right;font-variant-numeric:tabular-nums;height:32px;box-shadow:none;font-weight:500}select.hsal-sheet-input{text-align:left}.hsal-sheet-input[aria-invalid=true]{border-color:var(--hsal-red)}.hsal-sheet-row--edited .hsal-sheet-input{border-color:var(--hsal-primary);background-color:var(--hsal-primary-tint);color:var(--hsal-primary)}.hsal-sheet-unit{color:var(--hsal-text-subtle);font-size:13px}.hsal-sheet-reset{color:var(--hsal-primary);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px}.hsal-sheet-reset:hover{text-decoration:underline}.hsal-sheet-empty{color:var(--hsal-text-faint);text-align:center;padding:40px 20px;font-size:14px}.hsal-sheet-savebar{z-index:5;border:1px solid var(--hsal-border-strong);background:var(--hsal-surface);box-shadow:var(--hsal-shadow-lg);color:var(--hsal-text-muted);border-radius:12px;justify-content:space-between;align-items:center;gap:16px;margin-top:16px;padding:12px 16px;font-size:14px;display:flex;position:sticky;bottom:16px}@media (width<=720px){.hsal-sheet-head{display:none}.hsal-sheet-row{grid-template-columns:minmax(0,1fr) 110px;row-gap:6px}.hsal-sheet-unit,.hsal-sheet-row>:last-child{grid-column:2}}.hsal-modal-overlay{z-index:999;background:var(--hsal-overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.hsal-modal{max-width:100%;max-height:calc(var(--hsal-vh) * .85);border:1px solid var(--hsal-border);background:var(--hsal-surface);color:var(--hsal-text);box-shadow:var(--hsal-shadow-xl);border-radius:12px;outline:none;flex-direction:column;display:flex;overflow:hidden}.hsal-modal-header{border-bottom:1px solid var(--hsal-border);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px 14px 24px;display:flex}.hsal-modal-title{color:var(--hsal-text-strong);font-size:16px;font-weight:600}.hsal-modal-body{padding:20px 24px 24px;overflow-y:auto}.hsal-modal-footer{border-top:1px solid var(--hsal-border);background:var(--hsal-surface-alt);flex-shrink:0;justify-content:flex-end;gap:8px;padding:12px 24px;display:flex}.hsal-sidebar{background:var(--hsal-side);scrollbar-width:none;-ms-overflow-style:none;flex-direction:column;flex-shrink:0;width:248px;height:100%;display:flex;overflow-y:auto}.hsal-sidebar::-webkit-scrollbar{display:none}.hsal-sidebar-brand{border-bottom:1px solid var(--hsal-side-border);flex-shrink:0;align-items:center;gap:10px;height:56px;padding:0 16px;display:flex}.hsal-sidebar-logo{background:var(--hsal-primary);color:#fff;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;font-weight:700;display:flex}img.hsal-sidebar-logo{object-fit:cover;flex-shrink:0}.hsal-sidebar-title{color:var(--hsal-side-text);font-size:14px;font-weight:600;line-height:1.2}.hsal-sidebar-sub{color:var(--hsal-side-text-faint);margin-top:2px;font-size:12px;line-height:1.2}.hsal-sidebar-nav{flex:1;min-height:0;padding:10px 10px 16px}.hsal-nav-block{margin-bottom:2px}.hsal-nav-top{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:7px;align-items:center;gap:10px;padding:8px 10px;font-size:14px;font-weight:500;transition:background-color .12s,color .12s;display:flex}.hsal-nav-top--leaf-active{background:var(--hsal-side-active-bg);color:var(--hsal-side-text)}.hsal-nav-top--group-active{color:var(--hsal-side-text)}.hsal-nav-top--inactive{color:var(--hsal-side-text-muted)}.hsal-nav-top--inactive:hover,.hsal-nav-top--group-active:hover{background:var(--hsal-side-hover);color:var(--hsal-side-text)}.hsal-nav-ico{flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:flex}.hsal-nav-ico svg{width:18px;height:18px}.hsal-nav-ico--on{color:#60a5fa}.hsal-nav-ico--off{color:var(--hsal-side-text-faint)}.hsal-nav-chev{width:14px;height:14px;color:var(--hsal-side-text-faint);flex-shrink:0}.hsal-nav-chev svg{width:14px;height:14px}.hsal-nav-children{border-left:1px solid var(--hsal-side-child-border);margin:2px 0 6px 19px;padding-left:10px}.hsal-nav-child{cursor:pointer;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;font-size:13px;transition:background-color .12s,color .12s;display:flex}.hsal-nav-child--active{background:var(--hsal-side-child-active-bg);color:var(--hsal-side-text);font-weight:500}.hsal-nav-child--inactive{color:var(--hsal-side-text-muted);font-weight:400}.hsal-nav-child--inactive:hover{background:var(--hsal-side-child-hover);color:var(--hsal-side-text)}.hsal-nav-new{letter-spacing:.02em;border-radius:3px;flex-shrink:0;padding:1px 4px;font-size:8px;font-weight:700}.hsal-nav-new--section{color:#93c5fd;background:#3b82f633}.hsal-nav-new--item{color:#34d399;background:#10b98133}.hsal-icon-btn{width:34px;height:34px;color:var(--hsal-text-subtle);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;padding:0;transition:background-color .12s,color .12s;display:inline-flex}.hsal-icon-btn:hover{background:var(--hsal-surface-hover);color:var(--hsal-text-strong)}.w-4{width:16px}.h-4{height:16px}.w-5{width:20px}.h-5{height:20px}.rotate-90{transform:rotate(90deg)}.transition-transform{transition:transform .15s}.hsal-login{min-height:var(--hsal-vh);font-family:var(--hsal-font);background:var(--hsal-surface);display:flex}.hsal-login-main{flex-direction:column;flex:46%;min-width:0;padding:28px 40px;display:flex}.hsal-login-brand{align-items:center;gap:14px;display:flex}.hsal-login-brand img{border-radius:12px;flex-shrink:0;width:52px;height:52px}.hsal-login-brand span{color:var(--hsal-text-strong);font-size:21px;font-weight:700}.hsal-login-form{width:100%;max-width:400px;margin:auto;padding:40px 0}.hsal-login-form h1{letter-spacing:-.02em;color:var(--hsal-text-strong);margin:0 0 8px;font-size:32px;font-weight:700}.hsal-login-lead{color:var(--hsal-text-subtle);margin:0 0 28px;font-size:15px;line-height:1.5}.hsal-login-error{background:var(--hsal-badge-bg-red);color:var(--hsal-badge-text-red);border-radius:10px;align-items:flex-start;gap:10px;margin-bottom:20px;padding:12px 14px;font-size:13px;line-height:1.45;display:flex}.hsal-login-error-icon{flex-shrink:0;width:18px;height:18px;display:flex}.hsal-login-error-icon svg{width:18px!important;height:18px!important}.hsal-login-field{margin-bottom:18px;display:block}.hsal-login-field>span{color:var(--hsal-text-muted);margin-bottom:7px;font-size:13px;font-weight:600;display:block}.hsal-login-input{border:1px solid var(--hsal-border-strong);background:var(--hsal-surface);width:100%;height:48px;color:var(--hsal-text);font:inherit;border-radius:10px;outline:none;padding:0 16px;font-size:15px;transition:border-color .15s,box-shadow .15s}.hsal-login-input::placeholder{color:var(--hsal-text-faint)}.hsal-login-input:focus{border-color:var(--hsal-primary);box-shadow:0 0 0 4px var(--hsal-primary-tint-strong)}.hsal-login-password{position:relative}.hsal-login-password .hsal-login-input{padding-right:48px}.hsal-login-eye{color:var(--hsal-text-subtle);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px;display:flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.hsal-login-eye:hover{background:var(--hsal-surface-hover);color:var(--hsal-text-strong)}.hsal-login-eye svg{width:20px!important;height:20px!important}.hsal-login-remember{color:var(--hsal-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;margin:2px 0 24px;font-size:14px;display:inline-flex}.hsal-login-remember input{width:18px;height:18px;accent-color:var(--hsal-primary);cursor:pointer;margin:0}.hsal-login-submit{background:var(--hsal-primary);color:#fff;width:100%;height:50px;font:inherit;cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:10px;font-size:15px;font-weight:700;transition:background .15s,transform .15s;display:flex;box-shadow:0 8px 20px #2563eb40}.hsal-login-submit:hover:not(:disabled){background:var(--hsal-primary-dk)}.hsal-login-submit:active:not(:disabled){transform:translateY(1px)}.hsal-login-submit:disabled{opacity:.75;cursor:progress}.hsal-login-spinner{border:2px solid #ffffff73;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.8s linear infinite hsal-login-spin}@keyframes hsal-login-spin{to{transform:rotate(360deg)}}.hsal-login-foot{color:var(--hsal-text-faint);text-align:center;font-size:13px}.hsal-login-hero{color:#fff;background:radial-gradient(circle at 75% 15%,#0ea5e959,#0000 45%),radial-gradient(circle at 10% 90%,#0ea5e92e,#0000 40%),#0b1324;flex-direction:column;flex:54%;gap:32px;padding:44px 56px;display:flex;position:relative;overflow:hidden}.hsal-login-badge{color:#e2e8f0;background:#0f172a99;border:1px solid #94a3b840;border-radius:999px;align-self:flex-start;align-items:center;gap:8px;padding:7px 14px;font-size:13px;font-weight:600;display:inline-flex}.hsal-login-badge-dot{background:var(--hsal-green);border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #10b98133}.hsal-login-map{flex:1;align-self:center;width:100%;min-height:0;max-height:340px}.hsal-login-route{fill:none;stroke:#38bdf8;stroke-width:3px;stroke-linecap:round;stroke-dasharray:2 9}.hsal-login-route--alt{stroke:#7dd3fc8c}.hsal-login-hero-copy h2{letter-spacing:-.02em;max-width:460px;margin:0 0 24px;font-size:34px;font-weight:700;line-height:1.2}.hsal-login-hero-copy ul{gap:16px;margin:0 0 28px;padding:0;list-style:none;display:grid}.hsal-login-hero-copy li{align-items:flex-start;gap:14px;display:flex}.hsal-login-feature-icon{color:#7dd3fc;background:#0ea5e926;border:1px solid #38bdf84d;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.hsal-login-hero-copy strong{margin-bottom:2px;font-size:15px;display:block}.hsal-login-hero-copy p{color:#94a3b8;margin:0;font-size:14px;line-height:1.45}.hsal-login-version{color:#64748b;font-size:12px}@media (width<=960px){.hsal-login-hero{display:none}}@media (width<=480px){.hsal-login-main{padding:20px 16px}.hsal-login-brand img{border-radius:10px;width:44px;height:44px}.hsal-login-brand span{font-size:18px}}
