:root{--bg: #0f1117;--surface: #1a1d27;--surface2: #22263a;--border: #2e3250;--accent: #22d3ee;--success: #22c55e;--warn: #f59e0b;--danger: #ef4444;--text: #e2e8f0;--muted: #64748b;--radius: 10px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,sans-serif;min-height:100vh;font-size:14px}.app-shell{display:flex;height:100vh;overflow:hidden}.sidebar{width:230px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0}.main-content{flex:1;overflow-y:auto;padding:28px 32px}.sidebar-header{padding:18px 16px 12px;border-bottom:1px solid var(--border)}.sidebar-header h1{font-size:14px;font-weight:700;color:var(--accent)}.sidebar-header p{font-size:11px;color:var(--muted);margin-top:2px}.sidebar-user{padding:10px 16px;border-bottom:1px solid var(--border);font-size:12px;color:var(--muted)}.sidebar-user strong{color:var(--text);display:block}nav{flex:1;padding:6px 0;overflow-y:auto}.nav-section{padding:8px 16px 2px;font-size:10px;font-weight:700;text-transform:uppercase;color:var(--muted);letter-spacing:1px}.nav-link{display:flex;align-items:center;gap:8px;padding:8px 16px;font-size:13px;color:var(--text);text-decoration:none;cursor:pointer;transition:background .15s;border:none;background:none;width:100%;text-align:left}.nav-link:hover{background:var(--surface2)}.nav-link.active{background:var(--surface2);color:var(--accent);border-left:3px solid var(--accent);padding-left:13px}.sidebar-footer{padding:10px 16px;border-top:1px solid var(--border)}.page-title{font-size:22px;font-weight:700;margin-bottom:4px}.page-sub{font-size:13px;color:var(--muted);margin-bottom:24px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:16px}.card-title{font-size:14px;font-weight:600;margin-bottom:14px}.stats-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin-bottom:24px}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.stat-card.accent{border-color:var(--accent)}.stat-card.success{border-color:var(--success)}.stat-card.warn{border-color:var(--warn)}.stat-card.danger{border-color:var(--danger)}.stat-value{font-size:28px;font-weight:700}.stat-label{font-size:12px;color:var(--muted);margin-top:4px}.form-group{margin-bottom:13px}.form-group label{display:block;font-size:12px;color:var(--muted);margin-bottom:5px;font-weight:500}input,select,textarea{width:100%;background:var(--surface2);border:1px solid var(--border);color:var(--text);padding:9px 11px;border-radius:7px;font-size:13px;outline:none;font-family:inherit}input:focus,select:focus,textarea:focus{border-color:var(--accent)}textarea{resize:vertical;min-height:70px;font-family:monospace;font-size:11px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.btn{padding:9px 16px;border-radius:7px;font-size:13px;font-weight:600;cursor:pointer;border:none;transition:opacity .15s;display:inline-flex;align-items:center;gap:6px}.btn:hover{opacity:.82}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--accent);color:#000}.btn-success{background:var(--success);color:#000}.btn-danger{background:var(--danger);color:#fff}.btn-warn{background:var(--warn);color:#000}.btn-ghost{background:var(--surface2);color:var(--text);border:1px solid var(--border)}.btn-sm{padding:5px 12px;font-size:12px}.btn-logout{width:100%;background:transparent;border:1px solid var(--border);color:var(--muted);padding:7px;border-radius:6px;font-size:12px;cursor:pointer}.btn-logout:hover{color:var(--danger);border-color:var(--danger)}.table-wrap{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--border)}table{width:100%;border-collapse:collapse;font-size:13px}thead th{background:var(--surface2);padding:10px 14px;text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;color:var(--muted);letter-spacing:.5px;white-space:nowrap}tbody td{padding:10px 14px;border-top:1px solid var(--border);vertical-align:top}tbody tr:hover td{background:var(--surface2)}.badge{display:inline-block;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:600}.b-issued,.b-approved,.b-completed,.b-quarantine_cleared,.b-number_available{background:#14532d;color:#86efac}.b-revoked,.b-rejected,.b-failed{background:#450a0a;color:#fca5a5}.b-suspended,.b-number_quarantined,.b-credentials_revoked,.b-credential_revoked,.b-sim_deactivated{background:#451a03;color:#fdba74}.b-submitted,.b-in_progress,.b-initiated,.b-customer{background:#1e3a5f;color:#93c5fd}.b-pending,.b-reserving_number,.b-number_reserved,.b-number_assigned{background:#2d1a4f;color:#c4b5fd}.b-admin{background:#3b0764;color:#e9d5ff}.resp-box{background:#0a0d14;border:1px solid var(--border);border-radius:7px;padding:12px;font-family:monospace;font-size:11px;color:#a5d6a7;white-space:pre-wrap;word-break:break-all;max-height:260px;overflow-y:auto;margin-top:10px}.resp-box.err{color:#ef9a9a}.alert{padding:10px 13px;border-radius:7px;font-size:13px;margin-bottom:14px}.alert-err{background:#450a0a;border:1px solid var(--danger);color:#fca5a5}.alert-ok{background:#052e16;border:1px solid var(--success);color:#86efac}.tabs{display:flex;border-bottom:1px solid var(--border);margin-bottom:20px}.tab-btn{padding:8px 16px;font-size:13px;cursor:pointer;color:var(--muted);border:none;border-bottom:2px solid transparent;background:none;transition:all .15s}.tab-btn.active{color:var(--accent);border-bottom-color:var(--accent)}.flex{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.mt{margin-top:16px}.mono{font-family:monospace;font-size:11px;word-break:break-all}.muted{color:var(--muted)}.sm{font-size:12px}.nowrap{white-space:nowrap}.w-200{width:200px}.login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg)}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:36px;width:360px}.login-card h2{font-size:20px;font-weight:700;margin-bottom:4px}.login-card .sub{font-size:13px;color:var(--muted);margin-bottom:24px}.operator-badge{display:inline-block;background:var(--surface2);border:1px solid var(--accent);color:var(--accent);font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px;letter-spacing:.5px;margin-bottom:12px}
