:root{--primary:#2563eb;--primary-dark:#1d4ed8;--navy:#172554;--soft:#eef4ff;--bg:#f5f7fb;--surface:#fff;--text:#172033;--muted:#667085;--line:#e4e9f1;--shadow:0 12px 40px rgba(29,45,79,.08);--sidebar:260px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:16px}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:1rem;top:1rem;z-index:9999;background:#fff;padding:.75rem 1rem;border-radius:10px}.beta-bar{height:34px;background:linear-gradient(90deg,#163a70,#245bd6);color:#fff;padding:.4rem 0;font-size:.82rem;position:relative;z-index:1040}.beta-bar a{color:#fff;font-weight:700;text-decoration:none}.brand{display:flex;align-items:center;gap:.65rem;text-decoration:none;color:var(--text);font-size:1.16rem;font-weight:700}.brand b{color:var(--primary)}.brand-mark{width:42px;height:42px;display:grid;place-items:center;flex:0 0 auto}.brand-mark svg{width:42px;height:42px}.public-nav{background:rgba(255,255,255,.92);backdrop-filter:blur(15px);border-bottom:1px solid rgba(228,233,241,.8)}.public-nav .nav-link{font-weight:600;color:#475467;padding:.8rem 1rem}.sidebar{position:fixed;left:0;top:34px;bottom:0;width:var(--sidebar);background:#fff;border-right:1px solid var(--line);padding:1.2rem 1rem;display:flex;flex-direction:column;z-index:1030}.sidebar .brand{padding:.1rem .55rem 1.35rem}.side-nav{display:flex;flex-direction:column;gap:.25rem}.side-nav a{display:flex;align-items:center;gap:.8rem;padding:.72rem .85rem;border-radius:12px;color:#475467;text-decoration:none;font-weight:620;transition:.16s}.side-nav a i{font-size:1.14rem}.side-nav a:hover{background:#f7f9fc;color:var(--text)}.side-nav a.active{background:var(--soft);color:var(--primary);box-shadow:inset 3px 0 var(--primary)}.nav-caption{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:#98a2b3;font-weight:800;padding:1.4rem .85rem .45rem}.sidebar-user{margin-top:auto;border:1px solid var(--line);background:#fafbfc;border-radius:15px;padding:.75rem;display:flex;align-items:center;gap:.65rem}.sidebar-user small{color:var(--muted)}.sidebar-user>a{margin-left:auto;color:#667085}.avatar{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#dbeafe,#eff6ff);color:var(--primary);display:grid;place-items:center;font-weight:800}.app-topbar{position:fixed;top:34px;left:var(--sidebar);right:0;height:72px;background:rgba(255,255,255,.9);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:1rem;padding:0 2rem;z-index:1020}.top-search{max-width:520px;flex:1;display:flex;align-items:center;gap:.6rem;background:#f7f9fc;border:1px solid var(--line);border-radius:13px;padding:.65rem .9rem}.top-search input{border:0;outline:0;background:transparent;width:100%;color:var(--text)}.app-main{margin-left:var(--sidebar);padding-top:72px;min-height:100vh}.content-wrap{max-width:1450px;padding-left:2rem;padding-right:2rem}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem}.page-head h1{font-size:1.85rem;letter-spacing:-.03em;margin:0}.page-head p{color:var(--muted);margin:.35rem 0 0}.section{padding:2.2rem 0}.hero{padding:6rem 0 5rem;background:radial-gradient(circle at 80% 15%,#dbeafe,transparent 30%),linear-gradient(180deg,#fff,#f7f9fc)}.hero h1{font-size:clamp(2.7rem,5vw,5rem);letter-spacing:-.055em;line-height:1.02}.hero .lead{font-size:1.18rem;color:var(--muted);max-width:740px}.eyebrow,.status-pill{display:inline-flex;align-items:center;gap:.35rem;background:var(--soft);color:#1e40af;border-radius:999px;padding:.43rem .72rem;font-weight:750;font-size:.82rem}.panel,.card-soft,.tool-card,.metric-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.panel{padding:1.45rem}.tool-card{height:100%;padding:1.25rem;transition:.18s;position:relative;overflow:hidden}.tool-card:hover{transform:translateY(-3px);border-color:#bfdbfe;box-shadow:0 20px 45px rgba(37,99,235,.12)}.tool-card h3{font-size:1.05rem}.tool-icon{width:48px;height:48px;border-radius:14px;background:linear-gradient(145deg,#eff6ff,#dbeafe);color:var(--primary);display:grid;place-items:center;font-size:1.35rem}.metric-card{padding:1.2rem;display:flex;gap:1rem;align-items:center}.metric-icon{width:46px;height:46px;border-radius:14px;background:var(--soft);display:grid;place-items:center;color:var(--primary);font-size:1.25rem}.metric-card strong{font-size:1.55rem;display:block;line-height:1}.metric-card small,.muted{color:var(--muted)}.result{white-space:pre-wrap;background:#fbfcfe;border:1px solid var(--line);border-radius:14px;padding:1.2rem;min-height:180px}.btn{border-radius:11px;padding:.68rem 1rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:.45rem}.btn-primary{background:var(--primary);border-color:var(--primary);box-shadow:0 6px 16px rgba(37,99,235,.2)}.btn-primary:hover{background:var(--primary-dark);border-color:var(--primary-dark)}.icon-btn{width:42px;height:42px;padding:0;border:1px solid var(--line);background:#fff}.form-label{font-weight:700;color:#344054;font-size:.9rem}.form-control,.form-select{border-color:#d9e0ea;border-radius:11px;padding:.75rem .85rem;background:#fff}.form-control:focus,.form-select:focus{border-color:#60a5fa;box-shadow:0 0 0 .22rem rgba(37,99,235,.12)}.form-text{color:#7b8798}.table-card{overflow:hidden}.table{margin:0}.table>:not(caption)>*>*{padding:.9rem 1rem;border-color:#edf0f4}.table thead th{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:#667085;background:#fafbfc}.empty{text-align:center;padding:3.5rem 1rem;color:var(--muted)}.empty i{font-size:2.2rem;color:#9db8f3}.timeline{border-left:2px solid #dbeafe;padding-left:1.2rem}.timeline-item{position:relative;margin-bottom:1.25rem}.timeline-item:before{content:"";position:absolute;width:11px;height:11px;border-radius:50%;background:var(--primary);left:-1.62rem;top:.35rem}.auth-wrap{min-height:calc(100vh - 150px);display:grid;place-items:center;padding:3rem 1rem}.auth-card{width:min(100%,480px);padding:2rem}.auth-card h1{letter-spacing:-.035em}.security-card{border-left:4px solid var(--primary)}.code-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.55rem}.recovery-code{font-family:ui-monospace,monospace;background:#f5f7fa;border:1px dashed #b8c1ce;border-radius:9px;padding:.55rem;text-align:center;font-weight:700}.admin-tabs{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:1.2rem}.admin-tabs a{padding:.58rem .8rem;border-radius:10px;text-decoration:none;color:#475467;font-weight:650}.admin-tabs a:hover{background:var(--soft);color:var(--primary)}.footer{margin-top:5rem;padding:2.4rem 0;background:#fff;border-top:1px solid var(--line);color:var(--muted)}.footer a{color:#344054;text-decoration:none}.mobile-bottom{position:fixed;left:0;right:0;bottom:0;height:66px;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-top:1px solid var(--line);display:flex;z-index:1040}.mobile-bottom a{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-decoration:none;color:#667085;gap:.1rem}.mobile-bottom a.active{color:var(--primary)}.mobile-bottom i{font-size:1.2rem}.mobile-bottom small{font-size:.65rem}.alert{border:0;border-radius:12px}@media(max-width:991.98px){.sidebar{display:none}.app-topbar{left:0;padding:0 1rem}.app-main{margin-left:0;padding-bottom:74px}.content-wrap{padding-left:1rem;padding-right:1rem}.top-search{max-width:none}.section{padding:1.5rem 0}}@media(max-width:575.98px){.top-search{display:none}.app-topbar{justify-content:space-between}.page-head{display:block}.page-head .btn{margin-top:1rem;width:100%}.hero{padding:4rem 0}.panel{padding:1.1rem}.code-grid{grid-template-columns:1fr}}
.security-hero{display:flex;align-items:center;gap:1.2rem;padding:1.5rem 1.6rem;border:1px solid #cfe0ff;border-radius:22px;background:linear-gradient(135deg,#fff,#edf5ff);box-shadow:0 16px 45px rgba(37,99,235,.1)}.security-shield{width:64px;height:64px;border-radius:20px;background:linear-gradient(145deg,#2563eb,#163a70);color:#fff;display:grid;place-items:center;font-size:1.75rem;box-shadow:0 12px 28px rgba(37,99,235,.28)}.security-kicker{display:block;color:#2563eb;font-size:.72rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase;margin-bottom:.35rem}.security-state{display:inline-flex;align-items:center;gap:.4rem;padding:.58rem .8rem;border-radius:999px;font-weight:800;font-size:.82rem;white-space:nowrap}.security-state.is-on{background:#dcfce7;color:#166534}.security-state.is-off{background:#fff7ed;color:#9a3412}.security-section-head{padding:1.45rem 1.5rem;border-bottom:1px solid var(--line)}.method-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding:1.5rem}.method-card{display:flex;gap:1rem;padding:1.25rem;border:1px solid var(--line);border-radius:18px;background:#fff}.method-card.active{border-color:#93c5fd;background:#f7fbff;box-shadow:inset 0 0 0 1px #bfdbfe}.method-card h3{font-size:1rem;margin:0 0 .35rem}.method-card p{font-size:.9rem;color:var(--muted)}.method-icon{width:48px;height:48px;flex:0 0 auto;border-radius:15px;background:#eaf2ff;color:#2563eb;display:grid;place-items:center;font-size:1.3rem}.method-active{display:inline-flex;align-items:center;gap:.35rem;color:#15803d;font-weight:800;font-size:.86rem}.totp-setup{margin:0 1.5rem 1.5rem;padding:1.4rem;border:1px solid #bfdbfe;border-radius:18px;background:#f8fbff}.qr-box{width:214px;height:214px;background:#fff;padding:12px;border-radius:16px;border:1px solid var(--line);display:grid;place-items:center}.secret-box{display:flex;align-items:center;gap:.7rem;background:#fff;border:1px dashed #94a3b8;border-radius:12px;padding:.75rem 1rem;max-width:480px}.secret-box code{word-break:break-all;flex:1;color:#172033;font-size:.88rem}.secret-box button{border:0;background:transparent;color:#2563eb}.totp-input{max-width:180px;text-align:center;font-size:1.2rem;letter-spacing:.22em;font-weight:800}.security-actions,.danger-zone{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 1.5rem;border-top:1px solid var(--line)}.security-actions h3,.danger-zone h3{font-size:1rem;margin:0}.security-actions p,.danger-zone p{font-size:.88rem;color:var(--muted);margin:.25rem 0 0}.danger-zone{background:#fffafa}.recovery-vault{padding:1.5rem;border-radius:22px;background:linear-gradient(135deg,#172554,#1e3a8a);color:#fff;box-shadow:0 20px 55px rgba(23,37,84,.22)}.recovery-vault .security-kicker{color:#93c5fd}.recovery-vault p{color:#dbeafe}.recovery-vault .recovery-code{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.35);color:#fff;cursor:pointer}.login-list{display:flex;flex-direction:column}.login-entry,.session-entry{display:flex;align-items:center;gap:.85rem;padding:.9rem 0;border-top:1px solid var(--line)}.login-entry:first-child{border-top:0}.login-entry strong,.session-entry strong{display:block;font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.login-entry small,.session-entry small{display:block;color:var(--muted);font-size:.78rem}.login-device{width:40px;height:40px;border-radius:12px;background:#f0f5ff;color:#2563eb;display:grid;place-items:center;flex:0 0 auto}.two-factor-login-icon{width:70px;height:70px;border-radius:22px;margin:0 auto 1.2rem;background:linear-gradient(145deg,#eff6ff,#dbeafe);color:#2563eb;display:grid;place-items:center;font-size:2rem}.otp-login-input{letter-spacing:.22em;border-width:2px}.min-w-0{min-width:0}@media(max-width:991.98px){.method-grid{grid-template-columns:1fr}.security-hero{align-items:flex-start;flex-wrap:wrap}.security-state{margin-left:76px}.security-actions,.danger-zone{align-items:flex-start;flex-direction:column}}@media(max-width:575.98px){.method-grid,.security-section-head{padding:1rem}.totp-setup{margin:0 1rem 1rem;padding:1rem}.qr-box{margin:auto}.security-state{margin-left:0}.security-hero{padding:1.2rem}.security-shield{width:54px;height:54px}.security-actions form,.danger-zone form{width:100%}.security-actions form .form-control,.danger-zone form .form-control{width:100%}.recovery-vault{padding:1.15rem}}

/* Admin navigation refresh */
.admin-section{padding-top:1.8rem}.admin-page-head{margin-bottom:1.7rem}.admin-layout{display:grid;grid-template-columns:minmax(260px,310px) minmax(0,1fr);gap:1.5rem;align-items:start}.admin-content-stack{display:flex;flex-direction:column;gap:1.5rem;min-width:0}.admin-menu{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:.85rem;position:sticky;top:126px}.admin-menu-head{display:flex;align-items:center;gap:.8rem;padding:.75rem .75rem 1rem;border-bottom:1px solid var(--line);margin-bottom:.55rem}.admin-menu-head strong,.admin-menu-head small{display:block}.admin-menu-head small{color:var(--muted);font-size:.78rem;margin-top:.12rem}.admin-menu-icon{width:42px;height:42px;border-radius:13px;background:linear-gradient(145deg,#2563eb,#1d4ed8);color:#fff;display:grid;place-items:center;font-size:1.12rem;box-shadow:0 8px 18px rgba(37,99,235,.22)}.admin-menu-group+.admin-menu-group{margin-top:.35rem}.admin-menu-caption{padding:.8rem .75rem .35rem;font-size:.68rem;line-height:1;text-transform:uppercase;letter-spacing:.12em;color:#98a2b3;font-weight:850}.admin-menu-link{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:.72rem;text-decoration:none;color:#344054;padding:.68rem .7rem;border:1px solid transparent;border-radius:14px;transition:.16s ease}.admin-menu-link:hover{background:#f8faff;border-color:#e5edff;color:#1d4ed8;transform:translateX(2px)}.admin-menu-link.active{background:linear-gradient(135deg,#edf4ff,#f7faff);border-color:#bfd3ff;color:#1d4ed8;box-shadow:0 7px 18px rgba(37,99,235,.08)}.admin-menu-link-icon{width:40px;height:40px;border-radius:12px;background:#f2f5fa;color:#667085;display:grid;place-items:center;font-size:1.05rem}.admin-menu-link.active .admin-menu-link-icon{background:#dbeafe;color:#2563eb}.admin-menu-link-copy{min-width:0}.admin-menu-link-copy strong,.admin-menu-link-copy small{display:block}.admin-menu-link-copy strong{font-size:.9rem;line-height:1.2}.admin-menu-link-copy small{font-size:.73rem;color:#7b8798;line-height:1.25;margin-top:.16rem;white-space:normal}.admin-menu-arrow{font-size:.78rem;color:#b0b8c5}.admin-menu-link.active .admin-menu-arrow{color:#2563eb}.admin-metric{min-height:88px}.admin-metric small{display:block;margin-top:.32rem}.panel-headline{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-bottom:1rem}.panel-headline h2{font-size:1.05rem;margin:.12rem 0 0}.panel-headline>a{font-size:.82rem;font-weight:750;text-decoration:none;white-space:nowrap}.panel-kicker{display:block;color:#667085;text-transform:uppercase;letter-spacing:.09em;font-size:.67rem;font-weight:850}.role-badge,.status-badge{display:inline-flex;align-items:center;padding:.34rem .58rem;border-radius:999px;background:#f1f5f9;color:#475467;font-size:.75rem;font-weight:750}.feedback-list{display:flex;flex-direction:column}.feedback-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:.85rem;padding:.9rem 0;border-top:1px solid var(--line)}.feedback-row:first-child{border-top:0}.feedback-row strong,.feedback-row small{display:block}.feedback-row strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.feedback-row small{font-size:.78rem;color:var(--muted);margin-top:.15rem}.feedback-icon{width:42px;height:42px;border-radius:13px;background:#eef4ff;color:#2563eb;display:grid;place-items:center}@media(max-width:1199.98px){.admin-layout{grid-template-columns:250px minmax(0,1fr)}.admin-menu-link-copy small{display:none}}@media(max-width:991.98px){.admin-layout{grid-template-columns:1fr}.admin-menu{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.admin-menu-head{grid-column:1/-1;margin-bottom:.2rem}.admin-menu-group{display:contents}.admin-menu-caption{grid-column:1/-1;padding-top:.7rem}.admin-menu-group+.admin-menu-group{margin-top:0}.admin-menu-link-copy small{display:block}}@media(max-width:575.98px){.admin-menu{grid-template-columns:1fr;padding:.65rem}.admin-menu-caption{padding-left:.55rem}.admin-menu-link{padding:.62rem}.admin-page-head .btn{width:100%}.panel-headline{align-items:flex-start;flex-direction:column}.feedback-row{grid-template-columns:40px minmax(0,1fr)}.feedback-row .status-badge{grid-column:2;justify-self:start}}
