*{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0a0a0a;--surface: #141414;--surface-2: #1c1c1c;--border: #2a2a2a;--fg: #f5f5f5;--fg-muted: #888888;--error: #ff5b50}html,body,#root{height:100%}body{background:var(--bg);color:var(--fg);font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:14px;font-weight:400;line-height:1.45;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}input{background:var(--bg);border:.5px solid var(--border);padding:10px 12px;width:100%;outline:none;transition:border-color .15s ease}input:focus{border-color:var(--fg)}input::placeholder{color:var(--fg-muted)}.splash{display:flex;align-items:center;justify-content:center;height:100%;min-height:60vh;color:var(--fg-muted);font-size:12px;letter-spacing:.04em}.login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px}.login-card{background:var(--surface);border:.5px solid var(--border);padding:32px;width:100%;max-width:360px;display:flex;flex-direction:column;gap:14px}.login-brand{font-size:11px;letter-spacing:.18em;color:var(--fg-muted);text-transform:uppercase}.login-title{font-size:20px;font-weight:500;letter-spacing:.02em;margin-top:-2px}.login-sub{color:var(--fg-muted);font-size:12px;margin-bottom:6px}.field{display:flex;flex-direction:column;gap:6px}.field span{font-size:11px;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.06em}.btn-primary{background:var(--fg);color:var(--bg);border:.5px solid var(--fg);padding:11px 14px;cursor:pointer;font-weight:500;margin-top:6px;transition:opacity .15s ease}.btn-primary:hover{opacity:.85}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--fg-muted);border:.5px solid var(--border);padding:6px 10px;cursor:pointer;transition:color .15s ease,border-color .15s ease}.btn-ghost:hover{color:var(--fg);border-color:var(--fg)}.login-error{background:#ff5b5014;border:.5px solid var(--error);color:var(--error);padding:8px 10px;font-size:12px}.dash-wrap{min-height:100vh;display:flex;flex-direction:column}.dash-header{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;border-bottom:.5px solid var(--border)}.dash-brand{font-weight:500;letter-spacing:.04em}.dash-meta{display:flex;align-items:center;gap:16px}.dash-user{color:var(--fg-muted);font-size:12px}.dash-main{flex:1;padding:48px 24px;max-width:800px;width:100%;margin:0 auto}.dash-title{font-size:22px;font-weight:500;margin-bottom:12px}.dash-text{color:var(--fg-muted);font-size:13px;line-height:1.7;margin-bottom:32px;max-width:60ch}.dash-list{list-style:none;border-top:.5px solid var(--border)}.dash-list li{display:flex;justify-content:space-between;gap:24px;padding:12px 0;border-bottom:.5px solid var(--border);font-size:12px}.dash-list .k{color:var(--fg-muted);text-transform:uppercase;letter-spacing:.06em}.dash-list .v{color:var(--fg)}.dash-footer{padding:12px 24px;border-top:.5px solid var(--border);color:var(--fg-muted);font-size:11px;text-align:center;letter-spacing:.04em}.card{background:var(--surface);border:.5px solid var(--border);padding:24px;margin-bottom:24px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.card-title{font-size:15px;font-weight:500}.card-sub{color:var(--fg-muted);font-size:12px;line-height:1.6;margin-bottom:16px;max-width:60ch}.badge{font-size:10px;text-transform:uppercase;letter-spacing:.08em;padding:3px 8px;border:.5px solid var(--border);font-weight:500}.badge-on{color:#4ade80;border-color:#4ade80}.badge-off{color:var(--fg-muted)}.btn-danger{background:transparent;color:var(--error);border:.5px solid var(--error);padding:11px 14px;cursor:pointer;font-weight:500;width:100%;transition:background .15s ease}.btn-danger:hover{background:#ff5b5014}.btn-danger:disabled{opacity:.5;cursor:not-allowed}.login-success{background:#4ade8014;border:.5px solid #4ade80;color:#4ade80;padding:8px 10px;font-size:12px;margin-bottom:12px}.totp-setup,.totp-disable{display:flex;flex-direction:column;gap:10px;margin-top:16px}.totp-step{font-size:12px;color:var(--fg-muted);margin-top:4px}.totp-qr{display:flex;justify-content:center;padding:16px;background:#fff;border:.5px solid var(--border);align-self:flex-start}.totp-secret{display:block;background:var(--bg);border:.5px solid var(--border);padding:10px 12px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:12px;word-break:break-all;color:var(--fg);letter-spacing:.04em}.dash-nav{display:flex;gap:4px;margin:0 24px}.nav-link{text-decoration:none;color:var(--fg-muted);font-size:12px;text-transform:uppercase;letter-spacing:.06em;padding:6px 10px;border:.5px solid transparent;transition:color .15s ease,border-color .15s ease}.nav-link:hover{color:var(--fg)}.nav-link-active{color:var(--fg);border-color:var(--border)}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:16px}.page-count{color:var(--fg-muted);font-size:12px}.page-sub{color:var(--fg-muted);font-size:12px;margin-top:4px}.filters{display:flex;gap:8px;margin-bottom:16px}.filters input{flex:1}.filters select{background:var(--bg);border:.5px solid var(--border);padding:10px 12px;color:var(--fg);outline:none}.filters select:focus{border-color:var(--fg)}.table-wrap{border:.5px solid var(--border);background:var(--surface);overflow-x:auto;margin-bottom:16px}.table{width:100%;border-collapse:collapse;font-size:12px}.table th{text-align:left;padding:10px 12px;border-bottom:.5px solid var(--border);color:var(--fg-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:500;font-size:10px}.table td{padding:12px;border-bottom:.5px solid var(--border);vertical-align:top}.table tr:last-child td{border-bottom:none}.row-link{cursor:pointer;transition:background .15s ease}.row-link:hover{background:var(--surface-2)}.cell-primary{font-weight:500}.cell-secondary{color:var(--fg-muted);font-size:11px;margin-top:2px}.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:11px}.td-loading{color:var(--fg-muted);text-align:center;padding:24px!important}.badge-frozen{color:var(--error);border-color:var(--error)}.pager{display:flex;align-items:center;justify-content:center;gap:16px;margin:16px 0 32px}.page-info{color:var(--fg-muted);font-size:12px;letter-spacing:.04em}.card-warning{border-color:#f59e0b;background:#f59e0b0d}.card-danger{border-color:var(--error)}.form-stack{display:flex;flex-direction:column;gap:12px}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:24px}.card-link{text-decoration:none;color:var(--fg);display:block;margin-bottom:0;transition:border-color .15s ease,background .15s ease}.card-link:hover{border-color:var(--fg);background:var(--surface-2)}.card-link-title{font-size:14px;font-weight:500;margin-bottom:4px}.card-link-sub{font-size:11px;color:var(--fg-muted)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:24px}.stat-card{background:var(--surface);border:.5px solid var(--border);padding:20px;text-decoration:none;color:var(--fg);display:block;transition:border-color .15s ease,background .15s ease}a.stat-card:hover{border-color:var(--fg);background:var(--surface-2)}.stat-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--fg-muted);margin-bottom:10px}.stat-value{font-size:28px;font-weight:500;letter-spacing:-.01em;margin-bottom:6px}.stat-meta{font-size:11px;color:var(--fg-muted)}.dash-footer-meta{margin-top:24px;text-align:center;font-size:11px;color:var(--fg-muted);letter-spacing:.04em}.audit-details{display:flex;flex-direction:column;gap:12px;font-size:12px}.audit-details strong{color:var(--fg-muted);text-transform:uppercase;letter-spacing:.06em;font-size:10px;font-weight:500}.audit-pre{background:var(--surface);border:.5px solid var(--border);padding:12px;margin-top:4px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:11px;color:var(--fg);white-space:pre-wrap;word-break:break-word;max-height:320px;overflow:auto}
