:root{color:#172033;font-synthesis:none;--ink:#172033;--muted:#6c7788;--line:#dfe5ec;--surface:#fff;--accent:#176b5b;--accent-soft:#e5f3ef;--warn:#a56316;--warn-soft:#fff3dd;--danger:#b53a42;--nav:#182230;background:#f4f6f8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select{font:inherit}button{cursor:pointer}.login-shell{background:#e9eef2;place-items:center;min-height:100dvh;padding:24px;display:grid}.login-panel{background:var(--surface);border:1px solid var(--line);width:min(420px,100%);padding:40px;box-shadow:0 18px 50px #21304414}.brand-mark{color:#fff;background:var(--accent);border-radius:8px;place-items:center;width:42px;height:42px;display:grid}.login-panel h1{margin:8px 0;font-size:28px}.login-panel form{margin-top:28px}.eyebrow{letter-spacing:.08em;color:#718096;margin:0 0 8px;font:600 11px/1.2 ui-monospace,SFMono-Regular,monospace}.muted{color:var(--muted);margin:0}.login-panel label,.modal label{gap:7px;margin:16px 0;font-size:13px;font-weight:600;display:grid}.login-panel input,.modal input,.modal select{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:6px;outline:none;padding:12px 13px}input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #176b5b1c}.primary,.secondary,.danger-ghost,.icon-button{border:0;border-radius:6px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:0 15px;font-weight:600;display:inline-flex}.primary{background:var(--accent);color:#fff}.primary:hover{background:#115647}.secondary{color:var(--ink);background:#eef2f5}.full{width:100%}.form-error{color:var(--danger);font-size:13px}.app-shell{min-height:100dvh;display:flex}.sidebar{background:var(--nav);color:#d9e2eb;flex-direction:column;flex:0 0 232px;width:232px;padding:22px 14px;display:flex}.brand{align-items:center;gap:11px;padding:0 10px 28px;display:flex}.brand strong,.brand span{display:block}.brand strong{color:#fff;font-size:15px}.brand span{color:#8fa0b2;margin-top:3px;font-size:11px}.sidebar .brand-mark{border-radius:7px;width:34px;height:34px}.nav-item{color:#aebdca;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:10px;width:100%;margin:2px 0;padding:11px 12px;display:flex}.nav-item:hover,.nav-item.active{color:#fff;background:#ffffff12}.nav-item.active{box-shadow:inset 3px 0 var(--accent);padding-left:9px}.sidebar-bottom{margin-top:auto}.system-pill{color:#aebdca;background:#ffffff0b;border-radius:6px;align-items:center;gap:8px;margin:12px;padding:9px 10px;font-size:12px;display:flex}.status-dot{background:#47bf91;border-radius:50%;width:7px;height:7px}.content{flex:1;min-width:0}.topbar{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;height:92px;padding:20px 34px;display:flex}.topbar h1{margin:0;font-size:21px}.icon-button{width:40px;color:var(--ink);background:#f0f3f5;padding:0;font-size:24px}.page{max-width:1280px;padding:30px 34px}.metric-grid{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.metric,.panel{background:var(--surface);border:1px solid var(--line);border-radius:8px}.metric{padding:20px}.metric span,.metric small{color:var(--muted);font-size:12px;display:block}.metric strong{margin:12px 0 5px;font-size:28px;font-weight:650;display:block}.section-grid{grid-template-columns:1fr 1fr;gap:14px;margin-top:14px;display:grid}.panel{padding:22px}.panel-head,.toolbar{justify-content:space-between;align-items:center;gap:16px;display:flex}.panel h2,.toolbar h2{margin:0;font-size:18px}.status-list{border-top:1px solid var(--line);margin-top:20px}.status-list div{border-bottom:1px solid var(--line);justify-content:space-between;padding:14px 0;font-size:13px;display:flex}.status-list b{color:var(--muted);font-weight:500}.tag,.type-tag{border-radius:5px;align-items:center;gap:5px;padding:5px 8px;font-size:12px;font-weight:600;display:inline-flex}.tag.success{background:var(--accent-soft);color:var(--accent)}.tag.warning{background:var(--warn-soft);color:var(--warn)}.type-tag{color:#536174;background:#edf1f5}.quick-actions{gap:8px;margin-top:20px;display:grid}.quick-actions button{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:6px;justify-content:space-between;align-items:center;padding:13px;display:flex}.quick-actions button:hover{border-color:var(--accent);color:var(--accent)}.toolbar{margin-bottom:18px}.table-panel{padding:0;overflow:auto}table{border-collapse:collapse;text-align:left;width:100%;font-size:13px}th,td{border-bottom:1px solid var(--line);white-space:nowrap;padding:15px 18px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;background:#fafbfc;font-size:11px;font-weight:650}tr:last-child td{border-bottom:0}.mono{font-family:ui-monospace,SFMono-Regular,monospace}.danger-ghost{min-height:32px;color:var(--danger);background:#fff1f1;padding:0 9px;font-size:12px}.empty{text-align:center;color:var(--muted);padding:45px}.empty-panel{text-align:center;color:var(--muted);padding:90px 20px}.empty-panel h2{color:var(--ink)}.modal-backdrop{z-index:10;background:#101a2680;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:8px;width:min(440px,100%);padding:24px;box-shadow:0 20px 60px #101a2638}.modal form{margin-top:18px}.spin{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=800px){.sidebar{flex-basis:64px;width:64px;padding:16px 8px}.brand{padding:0 7px 24px}.brand>div:last-child,.nav-item{font-size:0}.nav-item{justify-content:center}.nav-item svg{width:19px;height:19px}.system-pill{justify-content:center;padding:10px 0}.system-pill span:last-child{display:none}.page{padding:22px 16px}.topbar{padding:18px 16px}.metric-grid{grid-template-columns:repeat(2,1fr)}.section-grid{grid-template-columns:1fr}}@media (width<=480px){.metric-grid{grid-template-columns:1fr 1fr}.metric{padding:15px}.metric strong{font-size:23px}.topbar{height:78px}.toolbar{flex-direction:column;align-items:flex-start}.toolbar .primary,.toolbar .secondary{width:100%}}.toolbar-actions{align-items:center;gap:8px;display:flex}@media (width<=480px){.toolbar-actions{flex-direction:column;width:100%}.toolbar-actions>button{width:100%}}
