:root{--bg:#fafbfc;--surface:#fff;--surface-alt:#f6f7f9;--border:#e3e6ea;--border-strong:#cdd2d8;--text:#1a1d22;--text-muted:#6b7280;--text-soft:#8b929c;--accent:#1f6feb;--accent-hover:#1158c7;--accent-soft:#eaf2ff;--danger:#d1242f;--danger-soft:#ffebe9;--success:#1a7f37;--success-soft:#dafbe1;--shadow:0 1px 2px #0f11150a, 0 4px 12px #0f11150f;--radius:8px;--radius-lg:12px;--sidebar-w:220px;--header-h:56px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", "Inter", system-ui, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--surface-alt:#1c2128;--border:#2d333b;--border-strong:#444c56;--text:#e6edf3;--text-muted:#8b949e;--text-soft:#6e7681;--accent:#4493f8;--accent-hover:#6cb6ff;--accent-soft:#388bfd29;--danger:#f85149;--danger-soft:#f8514929;--success:#3fb950;--success-soft:#3fb95029;--shadow:0 1px 2px #0006, 0 4px 12px #0000004d}}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-size:14px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,.button{appearance:none;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:var(--radius);cursor:pointer;padding:7px 12px;font-family:inherit;font-size:13px;transition:background .1s,border-color .1s}button:hover,.button:hover{background:var(--surface-alt)}button:disabled{opacity:.5;cursor:not-allowed}button.primary,.button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:500}button.primary:hover,.button.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}button.danger,.button.danger{background:var(--surface);border-color:var(--border-strong);color:var(--danger)}button.ghost{background:0 0;border-color:#0000}button.ghost:hover{background:var(--surface-alt)}button.switch{border-color:var(--border-strong);background:var(--surface-alt);vertical-align:middle;border-radius:999px;width:38px;height:22px;padding:2px}button.switch span{background:var(--text-soft);border-radius:999px;width:16px;height:16px;transition:transform .12s,background .12s;display:block}button.switch.on{background:var(--success-soft);border-color:#0000}button.switch.on span{background:var(--success);transform:translate(16px)}input,select,textarea{appearance:none;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:var(--radius);width:100%;padding:7px 10px;font-family:inherit;font-size:13px}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.password-field{position:relative}.password-field input{padding-right:68px}.password-field button.password-toggle{width:auto;color:var(--text-muted);background:0 0;border-color:#0000;margin-top:0;padding:0 9px;font-size:12px;position:absolute;top:4px;bottom:4px;right:4px}.password-field button.password-toggle:hover{background:var(--surface-alt)}label{color:var(--text-muted);margin-bottom:4px;font-size:12px;font-weight:500;display:block}.app-shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);border-right:1px solid var(--border);background:var(--surface);flex-direction:column;gap:4px;padding:16px 12px;display:flex}.sidebar .brand{color:var(--text);margin-bottom:8px;padding:8px 10px;font-size:14px;font-weight:600}.sidebar .brand-sub{color:var(--text-soft);font-size:12px;font-weight:400}.sidebar nav{flex-direction:column;flex:1;gap:2px;display:flex}.sidebar nav a{color:var(--text-muted);border-radius:6px;align-items:center;gap:8px;padding:7px 10px;font-size:13px;display:flex}.sidebar nav a:hover{background:var(--surface-alt);color:var(--text);text-decoration:none}.sidebar nav a.active{background:var(--accent-soft);color:var(--accent);font-weight:500}.sidebar .footer{border-top:1px solid var(--border);color:var(--text-soft);padding-top:12px;font-size:12px}.content{flex:1;min-width:0}.header{height:var(--header-h);border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;gap:16px;padding:0 24px;display:flex}.header h1{margin:0;font-size:16px;font-weight:600}.header .actions{align-items:center;gap:8px;display:flex}.page{padding:24px}.page-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.page-header h2{margin:0;font-size:20px;font-weight:600}.page-header p{color:var(--text-muted);margin:4px 0 0;font-size:13px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:20px}.card+.card{margin-top:16px}.card h3{margin:0 0 12px;font-size:14px;font-weight:600}.table{border-collapse:separate;border-spacing:0;width:100%}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);padding:10px 12px;font-size:13px}.table th{color:var(--text-muted);background:var(--surface-alt);font-weight:500;position:sticky;top:0}.table tr:hover td{background:var(--surface-alt)}.table tr:last-child td{border-bottom:none}.table .mono{font-family:var(--font-mono)}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.table-actions.align-end{justify-content:flex-end}.empty{text-align:center;color:var(--text-muted);padding:32px 16px}.badge{background:var(--surface-alt);color:var(--text-muted);border:1px solid var(--border);border-radius:999px;padding:2px 8px;font-size:11px;display:inline-block}.badge.active{color:var(--success);background:var(--success-soft);border-color:#0000}.badge.expired{color:var(--text-soft)}.badge.disabled{color:var(--danger);background:var(--danger-soft);border-color:#0000}.badge.unused{color:var(--accent);background:var(--accent-soft);border-color:#0000}.row{flex-wrap:wrap;gap:12px;display:flex}.row>*{flex:200px;min-width:0}.field-label-row{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.field-label-row label{margin-bottom:0}.text-button{padding:2px 6px;font-size:12px}.duration-fields{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto;align-items:center;gap:6px;display:grid}.duration-fields span{color:var(--text-muted);font-size:12px}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.toolbar>*{flex:none}.toolbar .grow{flex:1}.table-toolbar .dim{white-space:nowrap}.sort-button{color:inherit;font:inherit;text-align:inherit;background:0 0;border:0;padding:0}.sort-button:hover{color:var(--accent);background:0 0}.alert{border-radius:var(--radius);border:1px solid #0000;margin-bottom:12px;padding:10px 14px;font-size:13px}.alert.error{background:var(--danger-soft);color:var(--danger)}.alert.success{background:var(--success-soft);color:var(--success)}.muted{color:var(--text-muted)}.dim{color:var(--text-soft);font-size:12px}.mono{font-family:var(--font-mono)}.modal-backdrop{z-index:100;background:#0006;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius-lg);width:100%;max-width:560px;max-height:90vh;box-shadow:var(--shadow);padding:24px;overflow:auto}.modal h2{margin:0 0 16px;font-size:18px}.modal .modal-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.multi-select{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);flex-wrap:wrap;gap:6px;min-height:36px;padding:6px;display:flex}.multi-select .chip{background:var(--accent-soft);color:var(--accent);cursor:pointer;border:1px solid var(--accent-soft);border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;display:inline-flex}.multi-select .chip.outline{background:var(--surface);color:var(--text-muted);border-color:var(--border-strong)}.multi-select .chip.outline:hover{background:var(--surface-alt)}.login-shell{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:360px;box-shadow:var(--shadow);padding:32px}.login-card h1{margin:0 0 4px;font-size:18px}.login-card p{color:var(--text-muted);margin:0 0 20px;font-size:13px}.login-card .field+.field{margin-top:12px}.login-card button{width:100%;margin-top:20px}
