:root{--primary-900:#0b2239;--primary-800:#123456;--primary-700:#17466f;--accent-600:#00a878;--warning-600:#d97706;--danger-600:#dc2626;--neutral-bg:#f7f9fc;--neutral-surface:#ffffff;--neutral-soft:#f1f5f9;--neutral-border:#e2e8f0;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--radius-card:18px;--radius-button:14px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;background:var(--neutral-bg);color:var(--text-primary);min-width:1024px}.topbar{display:flex;align-items:center;gap:12px;height:56px;padding:0 20px;background:var(--neutral-surface);border-bottom:1px solid var(--neutral-border)}.env-badge{font-size:12px;font-weight:600;padding:4px 10px;border-radius:9999px;background:var(--neutral-soft);color:var(--text-secondary)}.topbar-title{font-size:14px;font-weight:600}.shell{display:flex;min-height:calc(100vh - 56px)}.sidebar{width:240px;flex-shrink:0;background:var(--primary-900);padding:20px 12px}.sidebar-brand{color:#ffffff;font-size:16px;font-weight:700;padding:0 12px 20px}.sidebar-nav{display:flex;flex-direction:column;gap:4px}.sidebar-link{display:block;padding:10px 12px;border-radius:10px;color:#cbd5e1;font-size:14px;font-weight:500;text-decoration:none}.sidebar-link.active,.sidebar-link:hover{background:var(--primary-800);color:#ffffff}.content{flex:1 1;max-width:1280px;padding:32px}.page-title{font-size:24px;font-weight:700;margin-bottom:8px}.page-subtitle{font-size:14px;color:var(--text-secondary);margin-bottom:24px}.card{background:var(--neutral-surface);border:1px solid var(--neutral-border);border-radius:var(--radius-card);padding:20px}.env-badge.env-production{background:#fee2e2;color:var(--danger-600)}.sidebar-signout{margin-top:24px;width:100%;padding:10px 12px;border:1px solid rgba(255,255,255,.25);border-radius:10px;background:transparent;color:#cbd5e1;font-size:14px;cursor:pointer}.sidebar-signout:hover{background:var(--primary-800);color:#ffffff}.metric-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:16px;gap:16px}.metric-label{font-size:12px;font-weight:600;letter-spacing:.4px;text-transform:uppercase;color:var(--text-secondary)}.metric-value{font-size:24px;font-weight:700;margin-top:4px}.section{margin-bottom:16px}.section-title{font-size:13px;font-weight:600;letter-spacing:.4px;text-transform:uppercase;color:var(--text-secondary);margin-bottom:10px}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;color:var(--text-secondary);font-weight:600;border-bottom:1px solid var(--neutral-border);padding:8px 10px}.table td{border-bottom:1px solid var(--neutral-soft);padding:8px 10px;vertical-align:top}.badge{display:inline-block;padding:2px 10px;border-radius:9999px;font-size:12px;font-weight:600;background:var(--neutral-soft);color:var(--text-secondary)}.badge-success{background:#ddf8ef;color:var(--accent-600)}.badge-danger{background:#fee2e2;color:var(--danger-600)}.btn{padding:8px 16px;border:1px solid var(--neutral-border);border-radius:10px;background:var(--neutral-surface);color:var(--text-primary);font-size:14px;font-weight:500;cursor:pointer}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--primary-900);border-color:var(--primary-900);color:#ffffff}.btn-danger{background:var(--danger-600);border-color:var(--danger-600);color:#ffffff}.btn-row{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.search-row{display:flex;gap:8px;margin-bottom:16px}.field-label{display:block;font-size:13px;font-weight:500;margin:12px 0 4px}.field-input{width:100%;padding:10px 14px;border:1px solid #cbd5e1;border-radius:10px;font-size:14px;font-family:inherit}.field-input:focus{outline:2px solid var(--primary-900);outline-offset:0}.field-error{color:var(--danger-600);font-size:13px;margin-top:10px}.danger-card{border-color:var(--danger-600)}.muted{color:var(--text-secondary);font-size:13px}.inspect-row{display:flex;gap:6px;align-items:center}.login-wrap{display:flex;justify-content:center;padding-top:80px}.login-card{width:380px}.login-card .btn{margin-top:16px;width:100%}