:root{--bg-0: #060B12;--bg-1: rgba(11, 15, 26, .78);--bg-2: rgba(19, 24, 38, .74);--bg-3: rgba(27, 34, 51, .82);--bg-4: rgba(35, 44, 66, .9);--fg-0: #F8FAFC;--fg-1: #CBD5E1;--fg-2: #94A3B8;--fg-3: #64748B;--accent: #00C9A7;--accent-hover: #29F1CF;--accent-blue: #4F8CFF;--accent-amber: #FBBF24;--accent-soft: rgba(0, 201, 167, .12);--accent-border: rgba(0, 201, 167, .32);--danger: #F87171;--danger-soft: rgba(248, 113, 113, .12);--warning: #FBBF24;--warning-soft: rgba(251, 191, 36, .12);--success: #34D399;--success-soft: rgba(52, 211, 153, .12);--border: rgba(148, 163, 184, .18);--border-strong: rgba(148, 163, 184, .3);--shadow: 0 22px 70px rgba(0, 0, 0, .38), 0 1px 0 rgba(255, 255, 255, .07) inset;--radius-sm: 10px;--radius: 14px;--radius-lg: 22px;--glass-blur: saturate(150%) blur(24px);--font-sans: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", system-ui, sans-serif;--font-mono: "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", monospace}*{box-sizing:border-box}html,body{margin:0;padding:0;font-family:var(--font-sans);font-size:14px;line-height:1.5;background:radial-gradient(980px 620px at 8% -8%,rgba(0,201,167,.18),transparent 62%),radial-gradient(760px 520px at 108% 18%,rgba(79,140,255,.14),transparent 60%),radial-gradient(760px 520px at 72% 108%,rgba(251,191,36,.08),transparent 62%),var(--bg-0);color:var(--fg-0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:linear-gradient(rgba(226,232,240,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(226,232,240,.035) 1px,transparent 1px);background-size:54px 54px;mask-image:radial-gradient(circle at 50% 8%,black,transparent 72%);-webkit-mask-image:radial-gradient(circle at 50% 8%,black,transparent 72%)}button,input,textarea,select{font:inherit;color:inherit}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code,pre,kbd,samp{font-family:var(--font-mono);font-size:.92em}.app-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:linear-gradient(180deg,rgba(255,255,255,.06),transparent 34%),var(--bg-1);border-right:1px solid var(--border);padding:20px 16px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh;overflow-y:auto;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:4px 8px 20px;border-bottom:1px solid var(--border);margin-bottom:16px}.sidebar-brand-mark{width:34px;height:34px;border-radius:12px;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent-blue) 62%,var(--accent)));display:grid;place-items:center;font-weight:700;color:var(--bg-0);font-size:14px;box-shadow:0 14px 34px #00c9a73d,0 1px #ffffff47 inset}.sidebar-brand-name{font-weight:600;letter-spacing:.02em}.sidebar-brand-env{margin-left:auto;font-size:10px;font-weight:600;padding:2px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.08em}.sidebar-brand-env.dev{background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent-border)}.sidebar-brand-env.prod{background:var(--danger-soft);color:var(--danger);border:1px solid rgba(248,113,113,.32)}.sidebar-section-label{font-size:10px;font-weight:700;letter-spacing:.12em;color:var(--fg-3);text-transform:uppercase;padding:16px 8px 6px}.nav-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;color:var(--fg-1);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;background:transparent;text-align:left;width:100%;font-size:13px}.nav-item:hover{background:#ffffff0e;color:var(--fg-0)}.nav-item.active{background:linear-gradient(135deg,rgba(255,255,255,.08),transparent 44%),var(--accent-soft);color:var(--accent);border:1px solid var(--accent-border);box-shadow:0 12px 28px #00c9a71a}.nav-item-icon{width:16px;opacity:.85}.sidebar-footer{margin-top:auto;padding-top:16px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--fg-2)}.sidebar-user{padding:8px;border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:2px}.sidebar-user-name{color:var(--fg-0);font-weight:600}.sidebar-user-email{color:var(--fg-3);font-size:11px;word-break:break-all}.main{padding:32px 40px;max-width:1280px;width:100%;position:relative;z-index:1}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding-bottom:20px;border-bottom:1px solid var(--border);margin-bottom:24px}.page-title{font-size:22px;font-weight:700;letter-spacing:-.01em;margin:0}.page-subtitle{color:var(--fg-2);font-size:13px;margin:4px 0 0}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(1200px 600px at 50% -10%,rgba(0,201,167,.2),transparent 60%),radial-gradient(900px 520px at 92% 22%,rgba(79,140,255,.12),transparent 62%),var(--bg-0)}.auth-card{width:100%;max-width:420px;background:linear-gradient(135deg,rgba(255,255,255,.08),transparent 42%),var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px;box-shadow:var(--shadow);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.auth-card-brand{display:flex;align-items:center;gap:12px;margin-bottom:28px}.auth-card-brand-mark{width:40px;height:40px;border-radius:14px;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent-blue) 58%,var(--accent)));display:grid;place-items:center;font-weight:700;color:var(--bg-0);font-size:18px}.auth-card-title{font-size:18px;font-weight:700;margin:0}.auth-card-subtitle{color:var(--fg-2);font-size:13px;margin:4px 0 24px}.card{background:linear-gradient(135deg,rgba(255,255,255,.065),transparent 42%),var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.card-title{font-size:14px;font-weight:600;margin:0}.card-subtitle{color:var(--fg-2);font-size:12px;margin:2px 0 0}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.field-label{font-size:12px;font-weight:600;color:var(--fg-1);letter-spacing:.02em}.field-hint{font-size:11px;color:var(--fg-3)}.input,.textarea,.select{background:linear-gradient(135deg,rgba(255,255,255,.055),transparent 46%),var(--bg-2);border:1px solid var(--border-strong);border-radius:var(--radius);padding:10px 12px;color:var(--fg-0);outline:none;transition:border-color .14s ease,box-shadow .14s ease,background .14s ease;width:100%;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.input:focus,.textarea:focus,.select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.textarea{resize:vertical;min-height:96px;font-family:var(--font-mono)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 16px;border-radius:999px;border:1px solid transparent;font-weight:600;font-size:13px;cursor:pointer;position:relative;overflow:hidden;transition:background .14s ease,border-color .14s ease,transform 80ms ease,box-shadow .14s ease;-webkit-user-select:none;user-select:none;white-space:nowrap}.btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.26),transparent 46%);opacity:0;transition:opacity .14s ease;pointer-events:none}.btn:hover:not(:disabled):after{opacity:1}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:active:not(:disabled){transform:translateY(1px)}.btn-primary{background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent-blue) 58%,var(--accent)));color:var(--bg-0);box-shadow:0 14px 34px #00c9a738,0 1px #ffffff3d inset}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--accent-hover),color-mix(in srgb,var(--accent-blue) 64%,var(--accent-hover)));box-shadow:0 18px 42px #00c9a747,0 1px #ffffff4d inset}.btn-ghost{background:#ffffff09;color:var(--fg-1);border-color:var(--border-strong);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.btn-ghost:hover:not(:disabled){background:#ffffff13;color:var(--fg-0)}.btn-danger{background:var(--danger-soft);color:var(--danger);border-color:#f8717152}.btn-danger:hover:not(:disabled){background:#f871712e}.btn-block{width:100%}.btn-sm{padding:6px 10px;font-size:12px}.table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}.table th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-3);padding:10px 12px;border-bottom:1px solid var(--border);font-weight:700}.table td{padding:12px;border-bottom:1px solid var(--border);color:var(--fg-1);vertical-align:top}.table tr:hover td{background:#ffffff0b}.table-mono{font-family:var(--font-mono);font-size:12px}.pill{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:3px 8px;border-radius:999px;white-space:nowrap;border:1px solid transparent}.pill-success{background:var(--success-soft);color:var(--success);border-color:#34d39952}.pill-warning{background:var(--warning-soft);color:var(--warning);border-color:#fbbf2452}.pill-danger{background:var(--danger-soft);color:var(--danger);border-color:#f8717152}.pill-muted{background:var(--bg-3);color:var(--fg-2);border-color:var(--border-strong)}.pill-accent{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-border)}.toast-host{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:10px;z-index:100}.toast{min-width:280px;max-width:420px;padding:12px 14px;background:linear-gradient(135deg,rgba(255,255,255,.08),transparent 44%),var(--bg-2);border:1px solid var(--border-strong);border-radius:var(--radius);display:flex;gap:10px;align-items:flex-start;box-shadow:var(--shadow);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);animation:toast-in .2s ease}.toast.toast-success{border-left:3px solid var(--success)}.toast.toast-error{border-left:3px solid var(--danger)}.toast.toast-info{border-left:3px solid var(--accent)}.toast-msg{font-size:13px;color:var(--fg-0);flex:1}.toast-close{cursor:pointer;background:none;border:none;color:var(--fg-3);padding:0;font-size:16px}.toast-close:hover{color:var(--fg-0)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.spinner{width:14px;height:14px;border-radius:50%;border:2px solid var(--bg-3);border-top-color:var(--accent);animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.empty{text-align:center;padding:48px 24px;color:var(--fg-3)}.alert{display:flex;gap:10px;padding:12px;border-radius:var(--radius);font-size:13px;margin:0 0 16px;border:1px solid}.alert-error{background:var(--danger-soft);color:var(--danger);border-color:#f8717152}.alert-info{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-border)}.row{display:flex;gap:12px;align-items:center}.col{display:flex;flex-direction:column;gap:12px}.spacer{flex:1}.muted{color:var(--fg-2)}.mono{font-family:var(--font-mono);font-size:12px}.tabular{font-variant-numeric:tabular-nums}.qr-frame{background:#fff;padding:16px;border-radius:20px;display:flex;justify-content:center}.qr-frame img,.qr-frame svg{display:block;width:200px;height:200px}.totp-secret{background:var(--bg-2);padding:10px 12px;border-radius:var(--radius);font-family:var(--font-mono);font-size:13px;letter-spacing:.08em;text-align:center;-webkit-user-select:all;user-select:all;border:1px dashed var(--border-strong)}@media (max-width: 760px){.app-shell{grid-template-columns:1fr}.sidebar{position:relative;top:auto;height:auto;max-height:none;border-right:0;border-bottom:1px solid var(--border);padding:14px 12px}.sidebar-brand{padding:0 4px 12px;margin-bottom:10px}.sidebar-section-label{padding:12px 4px 6px}.nav-item{min-height:42px}.sidebar-footer{margin-top:12px}.main{padding:22px 14px 32px;max-width:none}.page-header{align-items:flex-start;flex-direction:column}.auth-card{max-width:min(420px,calc(100vw - 28px));padding:24px}.card{overflow-x:auto}.table{min-width:640px}.toast-host{left:14px;right:14px;bottom:14px}.toast{min-width:0;max-width:none}}
