:root{color-scheme:dark;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--accent: #2563eb;--accent-ink: #1d4ed8;--accent-soft: color-mix(in oklab, var(--accent) 22%, transparent);--bg: #09090b;--surface: #18181b;--rail: #09090b;--rail-2: #1f1f23;--border: #27272a;--border-strong: #3f3f46;--ink: #ffffff;--ink-2: #f4f4f5;--muted: #a1a1aa;--muted-2: #71717a;--hover: rgba(255,255,255,.05);--active: rgba(255,255,255,.08);--ok: #16a34a;--warn: #d97706;--err: #ef4444;--r-sm: 6px;--r-md: 8px;--r-lg: 12px;--r-xl: 16px;--sidebar-w: 220px;--topbar-h: 44px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-sans);font-size:14px;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}::selection{background:var(--accent-soft);color:var(--ink)}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer;background:var(--surface);border:1px solid var(--border);color:var(--ink);border-radius:var(--r-md);padding:6px 12px}button:hover{background:var(--rail-2)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--ink);border-color:var(--ink);color:var(--bg)}button.primary:hover{background:var(--accent-ink);border-color:var(--accent-ink);color:#fff}button.danger{background:color-mix(in oklab,var(--err) 14%,var(--surface));border-color:color-mix(in oklab,var(--err) 40%,var(--border));color:var(--err)}button.danger:hover{background:color-mix(in oklab,var(--err) 22%,var(--surface))}input,textarea,select{background:var(--surface);border:1px solid var(--border);border-radius:7px;padding:6px 10px}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.app-shell{display:flex;min-height:100vh}.topbar{display:none;height:var(--topbar-h);align-items:center;gap:8px;padding:0 12px;border-bottom:1px solid var(--border);background:var(--bg);position:sticky;top:0;z-index:60}.topbar-menu{border:0;background:transparent;color:var(--muted);width:32px;height:32px;border-radius:var(--r-sm);display:grid;place-items:center;padding:0;font-size:16px}.topbar-menu:hover{background:var(--hover);color:var(--ink)}.topbar-title{font-size:14px;font-weight:600}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--rail);border-right:1px solid var(--border);padding:16px 12px;display:flex;flex-direction:column;gap:4px;transition:width .18s ease,padding .18s ease}.sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:4px;margin:0 4px 16px}.sidebar h1{font-size:15px;margin:0;white-space:nowrap;overflow:hidden}.sidebar-toggle{border:0;background:transparent;color:var(--muted);width:28px;height:28px;border-radius:var(--r-sm);display:grid;place-items:center;padding:0;flex-shrink:0}.sidebar-toggle:hover{background:var(--hover);color:var(--ink)}.nav-icon-svg{width:18px;height:18px}.nav-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.nav-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar .nav-item{background:none;border:none;text-align:left;padding:8px;border-radius:var(--r-sm);color:var(--muted);display:flex;align-items:center;gap:10px}.sidebar .nav-item:hover{background:var(--hover);color:var(--ink)}.sidebar .nav-item.active{background:var(--rail-2);color:var(--ink);font-weight:600}.sidebar .spacer{flex:1}.sidebar .whoami{font-size:12px;color:var(--muted);padding:8px;border-top:1px solid var(--border);margin-top:8px}.whoami-email{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whoami-logout{margin-top:8px;width:100%;display:flex;align-items:center;justify-content:center;gap:6px}.sidebar.is-collapsed{width:56px;padding:16px 8px}.sidebar.is-collapsed .sidebar-head{justify-content:center}.sidebar.is-collapsed h1{display:none}.sidebar.is-collapsed .nav-item{justify-content:center;padding:8px}.sidebar.is-collapsed .nav-label{display:none}.sidebar.is-collapsed .whoami{display:flex;flex-direction:column;align-items:center;padding:8px 0}.sidebar.is-collapsed .whoami-email{display:none}.sidebar.is-collapsed .whoami-logout{width:28px;height:28px;margin:0 auto;padding:0}.mobile-backdrop{display:none;position:fixed;inset:0;z-index:70;background:color-mix(in oklab,black 30%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.main{flex:1;min-width:0;padding:24px 32px}.main h2{margin-top:0}.toolbar{display:flex;gap:8px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.toolbar input,.toolbar select{min-width:180px}.tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--border);flex-wrap:wrap}.tabs .tab{background:none;border:none;padding:8px 14px;color:var(--muted);border-bottom:2px solid transparent;border-radius:0}.tabs .tab:hover{color:var(--ink)}.tabs .tab.active{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border)}th{color:var(--muted-2);font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.06em}tr.clickable{cursor:pointer}tr.clickable:hover{background:var(--rail-2)}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;text-transform:uppercase;letter-spacing:.04em;font-family:var(--font-mono)}.badge.active,.badge.success{background:color-mix(in oklab,var(--ok) 18%,transparent);color:var(--ok)}.badge.pending{background:color-mix(in oklab,var(--warn) 18%,transparent);color:var(--warn)}.badge.suspended,.badge.rejected,.badge.error{background:color-mix(in oklab,var(--err) 16%,transparent);color:var(--err)}.pagination{display:flex;gap:8px;align-items:center;margin-top:12px;font-size:13px;color:var(--muted);flex-wrap:wrap}.error-banner{background:color-mix(in oklab,var(--err) 14%,var(--surface));border:1px solid color-mix(in oklab,var(--err) 40%,var(--border));color:var(--err);padding:10px 14px;border-radius:var(--r-md);margin-bottom:16px}.hint{font-size:12px;color:var(--muted);margin:-4px 0 12px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:16px 20px;margin-bottom:16px}.card h3{margin-top:0;font-size:14px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.field-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px 20px}.field-grid .field label{display:block;font-size:11px;color:var(--muted);margin-bottom:2px}.field-grid .field .value{font-size:14px}.action-row{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.back-btn{margin-bottom:12px;display:inline-flex;align-items:center;gap:4px}.inline-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.muted{color:var(--muted);font-size:13px}.mono{font-family:var(--font-mono);font-size:12px}.login-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:16px}.login-card{width:min(340px,calc(100vw - 32px));background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);padding:28px}.login-card h1{font-size:18px;margin:0 0 4px}.login-card p{color:var(--muted);font-size:13px;margin:0 0 20px}.login-card form{display:flex;flex-direction:column;gap:12px}.login-card input{width:100%}.login-card button[type=submit]{margin-top:4px}.modal-backdrop{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.modal{width:min(420px,calc(100vw - 32px));max-height:min(90vh,720px);overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);padding:20px;box-shadow:0 24px 60px -20px #00000080,0 4px 12px -4px #0000004d}.modal h3{margin-top:0}.modal input,.modal textarea{width:100%}.modal input{margin-bottom:10px}.modal .confirm-target{font-family:var(--font-mono);background:var(--rail-2);padding:2px 6px;border-radius:4px}.modal .modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.empty-state{color:var(--muted);padding:24px;text-align:center}@media(max-width:900px){.app-shell{flex-direction:column}.topbar{display:flex}.sidebar{position:fixed;left:0;top:0;bottom:0;width:260px;z-index:80;transform:translate(-100%);transition:transform .22s cubic-bezier(.2,.7,.2,1);box-shadow:0 0 40px #0000004d}.app-shell[data-sidebar=open] .sidebar{transform:translate(0)}.app-shell[data-sidebar=open] .mobile-backdrop{display:block}.sidebar-toggle{display:none}.sidebar.is-collapsed{width:260px;padding:16px 12px}.sidebar.is-collapsed .sidebar-head{justify-content:space-between}.sidebar.is-collapsed h1{display:block}.sidebar.is-collapsed .nav-item{justify-content:flex-start;padding:8px}.sidebar.is-collapsed .nav-label{display:inline}.sidebar.is-collapsed .whoami{flex-direction:column;align-items:stretch;padding:8px}.sidebar.is-collapsed .whoami-email{display:block}.sidebar.is-collapsed .whoami-logout{width:100%;height:auto;padding:6px 12px}.main{padding:16px}}@media(max-width:540px){.toolbar{flex-direction:column;align-items:stretch}.toolbar input,.toolbar select{min-width:0;width:100%}table{font-size:12px}th,td{padding:6px 8px}.modal{max-height:92vh}.field-grid{grid-template-columns:1fr}.action-row{flex-direction:column;align-items:stretch}.action-row button{width:100%}.pagination{flex-wrap:wrap}.login-card{padding:20px}}.modal.wide{width:480px}.form-grid{display:flex;flex-direction:column;gap:12px}.form-grid label{display:block;font-size:11px;color:var(--muted);margin-bottom:4px}.form-grid input,.form-grid select{width:100%}.modal .tabs{margin-bottom:16px}.notice{background:#123b26;border:1px solid var(--ok);color:var(--ok);padding:10px 14px;border-radius:6px;margin-bottom:16px}.fatal-error{max-width:480px;margin:15vh auto;padding:24px;display:flex;flex-direction:column;gap:12px;align-items:flex-start;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);color:var(--ink-2);font-size:14px;line-height:1.5}.fatal-error h1{font-size:18px;margin:0}.fatal-error p{margin:0;color:var(--muted)}.fatal-error button{appearance:none;border:1px solid var(--border);border-radius:var(--r-md);padding:8px 16px;background:var(--rail-2);color:var(--ink-2);font:inherit;cursor:pointer}.fatal-error details{width:100%;color:var(--muted);font-size:12px}.fatal-error pre{overflow-x:auto;white-space:pre-wrap;word-break:break-word}
