.sa-root{--sa-primary:#005e89;--sa-primary-hover:#004a6d;--sa-primary-soft:rgba(0,94,137,0.08);--sa-ink:#0f172a;--sa-text:#334155;--sa-muted:#64748b;--sa-faint:#94a3b8;--sa-line:#e2e8f0;--sa-line-soft:#f1f5f9;--sa-bg:#f1f5f9;--sa-surface:#fff;--sa-surface-2:#f8fafc;--sa-nav-bg:#0b2a3c;text-align:left;min-height:100vh;background:var(--sa-bg);color:var(--sa-text);font-size:14px}.sa-root *,.sa-root :after,.sa-root :before{box-sizing:border-box}.sa-topbar{background:var(--sa-nav-bg);color:#fff;position:sticky;top:0;z-index:50;box-shadow:0 1px 0 hsla(0,0%,100%,.04)}.sa-topbar-inner{max-width:1240px;margin:0 auto;padding:0 16px;height:56px;gap:20px}.sa-brand,.sa-topbar-inner{display:flex;align-items:center}.sa-brand{gap:10px;font-weight:600;font-size:15px;white-space:nowrap}.sa-brand,.sa-brand:hover{color:#fff}.sa-brand img{width:24px;height:24px;-o-object-fit:contain;object-fit:contain}.sa-brand-tag{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;background:hsla(0,0%,100%,.12);color:#bae6fd;padding:2px 8px;border-radius:999px}.sa-nav{display:flex;gap:2px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}.sa-nav::-webkit-scrollbar{display:none}.sa-nav a{color:#cbd5e1;padding:7px 12px;border-radius:6px;font-weight:500;font-size:13px;white-space:nowrap;display:inline-flex;align-items:center;gap:8px}.sa-nav a:hover{color:#fff;background:hsla(0,0%,100%,.08)}.sa-nav a.router-link-active{color:#fff;background:hsla(0,0%,100%,.14)}.sa-user{position:relative;flex-shrink:0}.sa-user-btn{display:flex;align-items:center;gap:8px;background:transparent;border:1px solid hsla(0,0%,100%,.16);color:#e2e8f0;border-radius:999px;padding:4px 10px 4px 4px;font-size:12px;cursor:pointer}.sa-user-btn:hover{background:hsla(0,0%,100%,.08)}.sa-avatar{width:26px;height:26px;border-radius:50%;background:#0ea5e9;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:600;font-size:12px}.sa-user-email{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sa-menu{position:absolute;right:0;top:calc(100% + 8px);background:var(--sa-surface);border:1px solid var(--sa-line);border-radius:10px;box-shadow:0 12px 32px rgba(15,23,42,.16);min-width:200px;padding:6px;z-index:60}.sa-menu a,.sa-menu button{display:flex;width:100%;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;font-size:13px;color:var(--sa-text);background:none;border:0;text-align:left;cursor:pointer}.sa-menu a:hover,.sa-menu button:hover{background:var(--sa-line-soft);color:var(--sa-ink)}.sa-menu i{width:16px;color:var(--sa-muted)}@media (max-width:640px){.sa-brand-text,.sa-user-email{display:none}.sa-topbar-inner{flex-wrap:wrap;height:auto;gap:6px 12px;padding:8px 16px 6px}.sa-user{margin-left:auto}.sa-nav{order:3;flex:1 0 100%;margin:0 -6px}}.sa-main{max-width:1240px;margin:0 auto;padding:24px 16px 56px}.sa-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}.sa-page-title{font-size:20px;font-weight:600;color:var(--sa-ink);margin:0;line-height:1.3}.sa-page-sub{color:var(--sa-muted);font-size:13px;margin:2px 0 0}.sa-back{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--sa-muted);margin-bottom:8px}.sa-back:hover{color:var(--sa-primary)}.sa-actions{display:flex;gap:8px;flex-wrap:wrap}.sa-card{background:var(--sa-surface);border:1px solid var(--sa-line);border-radius:10px;margin-bottom:20px}.sa-card-head{padding:14px 18px;border-bottom:1px solid var(--sa-line);display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.sa-card-title{font-size:14px;font-weight:600;color:var(--sa-ink);margin:0}.sa-card-body{padding:18px}.sa-card.danger,.sa-card.danger .sa-card-head{border-color:#fecaca}.sa-card.danger .sa-card-title{color:#b91c1c}.sa-grid-2{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:20px;align-items:start}@media (max-width:960px){.sa-grid-2{grid-template-columns:minmax(0,1fr)}}.sa-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;margin-bottom:20px}.sa-stat{background:var(--sa-surface);border:1px solid var(--sa-line);border-radius:10px;padding:16px 18px}.sa-stat-label{font-size:12px;font-weight:500;color:var(--sa-muted)}.sa-stat-value{font-size:26px;font-weight:600;color:var(--sa-ink);line-height:1.2;margin-top:4px;font-variant-numeric:tabular-nums}.sa-stat-note{font-size:12px;color:var(--sa-faint);margin-top:2px}.sa-stat-note .bad{color:#b91c1c;font-weight:500}.sa-bars{display:flex;flex-direction:column;gap:12px}.sa-bar-row{display:grid;grid-template-columns:110px minmax(0,1fr) 36px;gap:12px;align-items:center;font-size:13px}.sa-bar-label{color:var(--sa-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sa-bar-track{height:10px;background:var(--sa-line-soft);overflow:hidden}.sa-bar-fill,.sa-bar-track{display:block;border-radius:999px}.sa-bar-fill{height:100%;background:var(--sa-primary);min-width:4px}.sa-bar-value{text-align:right;font-variant-numeric:tabular-nums;color:var(--sa-ink);font-weight:500}.sa-table-wrap{overflow-x:auto}.sa-table{width:100%;border-collapse:collapse;font-size:13px}.sa-table th{text-align:left;font-weight:600;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--sa-muted);padding:10px 14px;background:var(--sa-surface-2);border-bottom:1px solid var(--sa-line);white-space:nowrap}.sa-table td{padding:12px 14px;border-bottom:1px solid var(--sa-line-soft);vertical-align:middle}.sa-table tr:last-child td{border-bottom:0}.sa-table .num{text-align:right;font-variant-numeric:tabular-nums}.sa-table tr.sa-row-link{cursor:pointer}.sa-table tr.sa-row-link:hover td{background:var(--sa-surface-2)}.sa-cell-main{font-weight:500;color:var(--sa-ink)}.sa-cell-sub{font-size:12px;color:var(--sa-muted)}.sa-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.sa-truncate{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sa-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;padding:2px 10px;border-radius:999px;white-space:nowrap;line-height:1.6}.sa-badge.dot:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.sa-badge.success{background:#ecfdf5;color:#047857}.sa-badge.warning{background:#fffbeb;color:#b45309}.sa-badge.danger{background:#fef2f2;color:#b91c1c}.sa-badge.muted{background:#f1f5f9;color:#64748b}.sa-badge.info{background:#eff6ff;color:#1d4ed8}.sa-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:500;padding:8px 14px;border-radius:6px;border:1px solid transparent;cursor:pointer;white-space:nowrap;line-height:1.2;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.sa-btn:disabled{opacity:.6;cursor:not-allowed}.sa-btn-primary{background:var(--sa-primary);color:#fff}.sa-btn-primary:hover:not(:disabled){background:var(--sa-primary-hover);color:#fff}.sa-btn-secondary{background:var(--sa-surface);color:var(--sa-text);border-color:#cbd5e1}.sa-btn-secondary:hover:not(:disabled){background:var(--sa-surface-2);color:var(--sa-ink)}.sa-btn-danger{background:#dc2626;color:#fff}.sa-btn-danger:hover:not(:disabled){background:#b91c1c}.sa-btn-danger-outline{background:var(--sa-surface);color:#b91c1c;border-color:#fecaca}.sa-btn-danger-outline:hover:not(:disabled){background:#fef2f2}.sa-btn-link{background:none;border:0;color:var(--sa-primary);padding:0;font-weight:500;cursor:pointer;font-size:12px}.sa-btn-sm{padding:5px 10px;font-size:12px}.sa-btn-block{width:100%}.sa-icon-btn{background:none;border:0;color:var(--sa-muted);width:32px;height:32px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.sa-icon-btn:hover{background:var(--sa-line-soft);color:var(--sa-ink)}.sa-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}@media (max-width:640px){.sa-form-grid{grid-template-columns:1fr}}.sa-field label,.sa-label{display:block;font-size:12px;font-weight:500;color:#475569;margin-bottom:6px}.sa-field .req{color:#dc2626}.sa-field.full{grid-column:1/-1}.sa-field input,.sa-field select,.sa-field textarea{width:100%}.sa-hint{font-size:11px;color:var(--sa-faint);margin-top:4px}.sa-hint.error{color:#dc2626}.sa-section-label{grid-column:1/-1;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--sa-faint);padding-top:12px;margin-top:4px;border-top:1px solid var(--sa-line-soft)}.sa-section-label:first-child{border-top:0;padding-top:0;margin-top:0}.sa-input-group{position:relative}.sa-input-group input{padding-right:72px!important}.sa-input-group .sa-input-addon{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:flex;gap:2px}.sa-input-group .sa-input-addon .sa-icon-btn{width:28px;height:28px}.sa-check,.sa-field label.sa-check{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:400;color:var(--sa-text);cursor:pointer;margin:0}.sa-check input{width:16px;height:16px;accent-color:var(--sa-primary);margin:0}.sa-feature-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}.sa-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:14px 18px;border-bottom:1px solid var(--sa-line)}.sa-toolbar .sa-search{flex:1 1 220px;min-width:0;position:relative}.sa-toolbar .sa-search i{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--sa-faint);font-size:12px}.sa-toolbar .sa-search input{width:100%;padding-left:32px!important}.sa-toolbar select{width:auto;min-width:140px}@media (max-width:640px){.sa-toolbar select{flex:1 1 140px}}.sa-pager{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 18px;font-size:12px;color:var(--sa-muted);border-top:1px solid var(--sa-line);flex-wrap:wrap}.sa-empty,.sa-loading{padding:44px 18px;text-align:center;color:var(--sa-muted);font-size:13px}.sa-empty i{font-size:24px;color:var(--sa-faint);display:block;margin-bottom:10px}.sa-alert{padding:10px 12px;border-radius:6px;font-size:13px;border:1px solid;margin-bottom:14px;display:flex;gap:10px;align-items:flex-start}.sa-alert i{margin-top:3px}.sa-alert.error{background:#fef2f2;color:#b91c1c;border-color:#fecaca}.sa-alert.info{background:#f0f9ff;color:#075985;border-color:#bae6fd}.sa-alert.warning{background:#fffbeb;color:#92400e;border-color:#fde68a}.sa-alert.success{background:#ecfdf5;color:#065f46;border-color:#a7f3d0}.sa-dl{display:grid;grid-template-columns:170px minmax(0,1fr);gap:10px 16px;font-size:13px;margin:0}.sa-dl dt{color:var(--sa-muted);font-weight:500}.sa-dl dd{margin:0;color:var(--sa-ink);word-break:break-word}@media (max-width:640px){.sa-dl{grid-template-columns:minmax(0,1fr);gap:2px}.sa-dl dd{margin-bottom:10px}}.sa-modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:48px 16px;overflow-y:auto}.sa-modal{background:var(--sa-surface);border-radius:12px;width:100%;max-width:640px;box-shadow:0 24px 60px rgba(15,23,42,.28);text-align:left;color:var(--sa-text)}.sa-modal.sm{max-width:440px}.sa-modal.lg{max-width:760px}.sa-modal-head{padding:16px 20px;border-bottom:1px solid var(--sa-line);display:flex;justify-content:space-between;align-items:center;gap:12px}.sa-modal-title{font-size:16px;font-weight:600;color:var(--sa-ink);margin:0}.sa-modal-body{padding:20px}.sa-modal-foot{padding:14px 20px;border-top:1px solid var(--sa-line);display:flex;justify-content:flex-end;gap:10px;border-radius:0 0 12px 12px;flex-wrap:wrap}.sa-creds,.sa-modal-foot{background:var(--sa-surface-2)}.sa-creds{border:1px solid var(--sa-line);border-radius:8px;padding:14px 16px}.sa-creds-row{display:grid;grid-template-columns:130px minmax(0,1fr);gap:12px;padding:6px 0;font-size:13px}.sa-creds-row span:first-child{color:var(--sa-muted)}.sa-creds-row span:last-child{color:var(--sa-ink);font-weight:500;word-break:break-all}.sa-login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:radial-gradient(1200px 600px at 10% -10%,#0e4a6b 0,transparent 60%),var(--sa-nav-bg)}.sa-login-card{width:100%;max-width:400px;background:var(--sa-surface);border-radius:14px;padding:32px 28px 28px;box-shadow:0 30px 80px rgba(0,0,0,.35)}.sa-login-brand{display:flex;align-items:center;gap:10px;margin-bottom:22px}.sa-login-brand img{width:32px;height:32px;-o-object-fit:contain;object-fit:contain}.sa-login-brand .name{font-weight:600;color:var(--sa-ink);font-size:15px;line-height:1.2}.sa-login-brand .tag{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--sa-primary)}.sa-login h1{font-size:20px;font-weight:600;color:var(--sa-ink);margin:0 0 4px}.sa-login p.lead{font-size:13px;color:var(--sa-muted);margin:0 0 22px}.sa-login .sa-field{margin-bottom:14px}.sa-login-foot{margin-top:18px;text-align:center;font-size:12px;color:var(--sa-faint)}.sa-login-foot a{color:var(--sa-muted)}.sa-login-foot a:hover{color:var(--sa-primary)}.sa-spin{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:sa-spin .7s linear infinite}@keyframes sa-spin{to{transform:rotate(1turn)}}