/* ════════ RESET & VARIABLES ════════ */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }

:root, [data-theme="dark"] {
  --bg:      #08080F;
  --bg2:     #0E0E1A;
  --bg3:     #141422;
  --bg4:     #1C1C2E;
  --bg5:     #24243A;
  --accent:  #7C3AED;
  --accent2: #9B5CFF;
  --accent3: #A78BFA;
  --accent4: #C4B5FD;
  --glow:    rgba(124,58,237,.25);
  --text:    #EDEDFF;
  --text2:   #7070A0;
  --text3:   #3A3A5C;
  --border:  #161628;
  --border2: #202036;
  --success: #10B981;
  --danger:  #EF4444;
  --warn:    #F59E0B;
  --blue:    #60A5FA;
  --green:   #34D399;
  --font-body:    'Plus Jakarta Sans', sans-serif;
  --font-display: 'Space Grotesk', sans-serif;
  --max-w: 1120px;
  --nav-h: 58px;
}

[data-theme="light"] {
  --bg:      #F5F5FA;
  --bg2:     #FFFFFF;
  --bg3:     #EBEBF5;
  --bg4:     #DEDEED;
  --bg5:     #D0D0E4;
  --accent:  #7C3AED;
  --accent2: #6D28D9;
  --accent3: #5B21B6;
  --accent4: #7C3AED;
  --glow:    rgba(124,58,237,.12);
  --text:    #0A0A18;
  --text2:   #50507A;
  --text3:   #A0A0C0;
  --border:  #E0E0EE;
  --border2: #CACADE;
  --success: #059669;
  --danger:  #DC2626;
  --warn:    #D97706;
  --blue:    #2563EB;
  --green:   #059669;
}

html { scroll-behavior:smooth; }
body {
  font-family: var(--font-body);
  background: var(--bg);
  color: var(--text);
  min-height: 100vh;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  transition: background .2s, color .2s;
  line-height: 1.5;
  width: 100%;
}
#root, .page-root { width:100%; overflow-x:hidden; }
::-webkit-scrollbar { width:4px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:var(--bg5); border-radius:4px; }
::selection { background:rgba(124,58,237,.2); }
button { cursor:pointer; font-family:var(--font-body); border:none; background:none; }
input, select, textarea { font-family:var(--font-body); }
a { color:inherit; text-decoration:none; }

@keyframes fadeUp { from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)} }
@keyframes fadeIn { from{opacity:0}to{opacity:1} }
@keyframes shimmer { to{background-position:-200% 0} }
@keyframes pulse { 0%,100%{opacity:1}50%{opacity:.4} }
@keyframes spin { to{transform:rotate(360deg)} }
@keyframes dotPulse { 0%,100%{opacity:1}50%{opacity:.3} }
@keyframes badgePulse { 0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.5)}50%{box-shadow:0 0 0 4px rgba(239,68,68,0)} }

/* ── Password Eye Toggle (global) ── */
.pass-eye-wrap { position:relative; }
.pass-eye-wrap input { padding-right:42px !important; }
.pass-eye-btn { position:absolute; right:1px; top:1px; bottom:1px; width:38px; background:none; border:none; border-left:1px solid var(--border2); color:var(--text3); display:flex; align-items:center; justify-content:center; cursor:pointer; border-radius:0 9px 9px 0; transition:color .2s, background .2s; }
.pass-eye-btn:hover { color:var(--text); background:rgba(124,58,237,.06); }
.pass-eye-btn .eye-open, .pass-eye-btn .eye-closed { position:absolute; transition:opacity .2s ease, transform .2s ease; }
.pass-eye-btn .eye-open { opacity:1; transform:scale(1); }
.pass-eye-btn .eye-closed { opacity:0; transform:scale(.7); }
.pass-eye-btn.active { color:var(--accent3); }
.pass-eye-btn.active .eye-open { opacity:0; transform:scale(.7); }
.pass-eye-btn.active .eye-closed { opacity:1; transform:scale(1); }

/* ════════ SIDEBAR ════════ */
:root, [data-theme="dark"] { --sb-w:220px; --sb-cw:60px; --nb-h:50px; }

.sb {
  position:fixed; top:0; left:0; bottom:0; width:var(--sb-w); z-index:300;
  background:var(--bg2); border-right:1px solid var(--border);
  display:flex; flex-direction:column; overflow:hidden;
  transition:width .2s ease;
}
.main-wrap { transition:margin-left .2s ease; }
.sb-top { padding:18px 14px 14px; text-align:center; }
.sb-logo { display:inline; }
.sb-logo-r { font-family:'Sora',sans-serif; font-size:18px; font-weight:800; color:var(--text); letter-spacing:-.5px; line-height:1; }
.sb-logo-s { font-family:'Sora',sans-serif; font-size:18px; font-weight:800; background:linear-gradient(135deg,#7C3AED,#9B5CFF); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; letter-spacing:-.5px; line-height:1; }
[data-theme="light"] .sb-logo-r { color:#0A0A18; }

.sb-nav { flex:1; padding:4px 8px; overflow-y:auto; overflow-x:hidden; }
.sb-label { font-size:9px; font-weight:800; color:var(--text3); text-transform:uppercase; letter-spacing:1px; padding:14px 12px 6px; white-space:nowrap; }
.sb-link { display:flex; align-items:center; gap:11px; padding:10px 12px; border-radius:10px; color:var(--text2); font-size:13px; font-weight:600; transition:all .15s; position:relative; margin-bottom:2px; white-space:nowrap; overflow:hidden; }
.sb-link svg { flex-shrink:0; min-width:18px; opacity:.6; transition:opacity .15s; }
.sb-link:hover { background:var(--bg3); color:var(--text); }
.sb-link:hover svg { opacity:1; }
.sb-link-active { background:rgba(124,58,237,.1) !important; color:var(--accent3) !important; }
.sb-link-active svg { opacity:1; stroke:var(--accent3); }
.sb-link-active::before { content:''; position:absolute; left:0; top:8px; bottom:8px; width:3px; border-radius:0 3px 3px 0; background:var(--accent); }
.sb-link-key { color:var(--accent3) !important; }
.sb-link-danger { color:var(--text3); }
.sb-link-danger:hover { background:rgba(239,68,68,.08); color:#F87171; }
.sb-link-danger:hover svg { stroke:#F87171; }
.sb-badge { background:#EF4444; color:white; font-size:9px; font-weight:800; min-width:18px; height:18px; border-radius:9px; padding:0 5px; display:inline-flex; align-items:center; justify-content:center; margin-left:auto; }
.sb-text { transition:opacity .2s; }

.sb-bottom { padding:8px 8px 14px; border-top:1px solid var(--border); }
.sb-av { width:32px; height:32px; min-width:32px; border-radius:50%; background:linear-gradient(135deg,#7C3AED,#A855F7); display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:800; color:white; font-family:var(--font-display); flex-shrink:0; }

/* Collapsed */
.sb-collapsed .sb { width:var(--sb-cw); }
.sb-collapsed .sb-text { opacity:0; width:0; overflow:hidden; pointer-events:none; position:absolute; }
.sb-collapsed .sb-top { display:flex; justify-content:center; padding:14px 0 10px; }
.sb-collapsed .sb-logo { justify-content:center; }
.sb-collapsed .sb-nav { padding:4px 6px; }
.sb-collapsed .sb-link { justify-content:center; padding:10px 0; gap:0; }
.sb-collapsed .sb-link svg { margin:0; }
.sb-collapsed .sb-link::before { left:-6px; }
.sb-collapsed .sb-badge { display:none; }
.sb-collapsed .sb-bottom { padding:8px 6px 14px; }
.sb-collapsed .sb-bottom .sb-link { justify-content:center; padding:10px 0; gap:0; }
.sb-collapsed .main-wrap { margin-left:var(--sb-cw); }

.sb-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:299; }
.sb-overlay.open { display:block; }

/* ════════ SITE NAVBAR ════════ */
.site-navbar { position:sticky; top:0; z-index:200; height:56px; background:var(--bg2); border-bottom:1px solid var(--border); display:flex; align-items:center; padding:0 20px; gap:12px; }
[data-theme="light"] .site-navbar { background:var(--bg2); }
.nb-toggle { background:none; border:1px solid var(--border2); width:36px; height:36px; border-radius:9px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; cursor:pointer; color:var(--text3); transition:all .15s; flex-shrink:0; }
.nb-toggle span { display:block; width:16px; height:2px; background:currentColor; border-radius:2px; }
.nb-toggle:hover { background:var(--bg3); color:var(--text); border-color:var(--accent); }

/* User button + dropdown */
.nb-user-wrap { position:relative; }
.nb-user { display:flex; align-items:center; gap:9px; padding:6px 10px 6px 6px; border-radius:10px; transition:background .15s; background:none; border:none; cursor:pointer; color:inherit; font-family:inherit; }
.nb-user:hover { background:var(--bg3); }
.nb-av { width:32px; height:32px; min-width:32px; border-radius:50%; background:linear-gradient(135deg,#7C3AED,#A855F7); display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:800; color:white; font-family:var(--font-display); }
img.nb-av-img { object-fit:cover; border:2px solid var(--border2); }
.nb-uname { font-size:14px; font-weight:700; color:var(--text); }
.nb-chevron { color:var(--text3); transition:transform .2s; flex-shrink:0; }
.nb-user[aria-expanded="true"] .nb-chevron { transform:rotate(180deg); }

.nb-dropdown { position:absolute; top:calc(100% + 6px); right:0; background:var(--bg2); border:1px solid var(--border2); border-radius:12px; min-width:180px; padding:5px; box-shadow:0 12px 40px rgba(0,0,0,.35); z-index:500; animation:fadeUp .15s ease; }
.nb-dd-item { display:flex; align-items:center; gap:9px; padding:9px 12px; border-radius:8px; font-size:13px; font-weight:600; color:var(--text2); transition:all .12s; }
.nb-dd-item:hover { background:var(--bg3); color:var(--text); }
.nb-dd-item svg { opacity:.5; }
.nb-dd-item:hover svg { opacity:1; }
.nb-dd-danger { color:#F87171 !important; }
.nb-dd-danger:hover { background:rgba(239,68,68,.07) !important; }
.nb-dd-profile { display:flex; align-items:center; gap:10px; padding:10px 12px; }
.nb-dd-pinfo { flex:1; min-width:0; }
.nb-dd-pname { font-size:13px; font-weight:700; color:var(--text); }
.nb-dd-pemail { font-size:11px; color:var(--text3); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.nb-dd-line { height:1px; background:var(--border); margin:4px 0; }

/* ════════ MAIN CONTENT ════════ */
.main-wrap { margin-left:var(--sb-w); min-height:100vh; }

/* ════════ RESPONSIVE ════════ */
@media(max-width:768px){
  .sb { width:var(--sb-w) !important; transform:translateX(-100%); transition:transform .25s ease !important; }
  .sb.open { transform:translateX(0); box-shadow:8px 0 30px rgba(0,0,0,.3); }
  .sb-collapsed .sb { width:var(--sb-w) !important; }
  .sb-collapsed .sb-text { opacity:1; width:auto; overflow:visible; position:static; }
  .sb-collapsed .sb-link { justify-content:flex-start; padding:10px 12px; gap:11px; }
  .sb-collapsed .sb-top { justify-content:space-between; padding:14px 14px 10px; }
  .sb-collapsed .sb-nav { padding:4px 8px; }
  .sb-collapsed .sb-bottom { padding:8px 8px 14px; }
  .sb-collapsed .sb-bottom .sb-link { justify-content:flex-start; padding:10px 12px; gap:11px; }
  .main-wrap { margin-left:0 !important; }
  .nb-uname { display:none; }
}

/* ── Notification Bell ── */
.notif-wrap { position:relative; flex-shrink:0; margin-right:4px; }
.notif-bell { background:none; border:1px solid var(--border2); color:var(--text3); width:34px; height:34px; border-radius:9px; display:flex; align-items:center; justify-content:center; transition:all .15s; position:relative; }
.notif-bell:hover { background:var(--bg3); color:var(--text); }
.notif-dot { position:absolute; top:5px; right:5px; width:9px; height:9px; background:#EF4444; border-radius:50%; border:2px solid var(--bg); animation:badgePulse 2s ease-in-out infinite; pointer-events:none; }

/* ── Notification Overlay (click-outside) ── */
.notif-overlay { display:none; position:fixed; inset:0; z-index:999; }
.notif-overlay.open { display:block; }

/* ── Notification Dropdown (body-level, position:fixed) ── */
.notif-dropdown {
  display:none; position:fixed; z-index:1000;
  width:380px; max-height:500px;
  background:var(--bg2);
  border:1px solid var(--border2);
  border-radius:14px;
  box-shadow: 0 8px 30px rgba(0,0,0,.35), 0 2px 8px rgba(0,0,0,.2);
  flex-direction:column;
  overflow:hidden;
}
.notif-dropdown.open { display:flex; animation:notifDropIn .2s cubic-bezier(.16,1,.3,1); }
@keyframes notifDropIn { from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)} }

/* Arrow — hidden, positioning is dynamic */
.notif-dd-arrow { display:none; }

/* Header */
.notif-dd-header { display:flex; align-items:center; justify-content:space-between; padding:14px 18px; border-bottom:1px solid var(--border); flex-shrink:0; background:var(--bg2); }
.notif-dd-title { font-family:var(--font-display); font-size:14px; font-weight:800; color:var(--text); letter-spacing:-.2px; }
.notif-dd-readall { background:rgba(124,58,237,.1); border:none; color:var(--accent3); font-size:11px; font-weight:700; padding:5px 12px; border-radius:6px; transition:all .15s; white-space:nowrap; }
.notif-dd-readall:hover { background:rgba(124,58,237,.2); color:var(--accent2); }

/* List */
.notif-dd-list { flex:1; overflow-y:auto; overscroll-behavior:contain; }
.notif-dd-empty { padding:40px 20px; text-align:center; color:var(--text3); font-size:13px; font-weight:500; }
.notif-spinner { display:inline-block; width:18px; height:18px; border:2px solid var(--border2); border-top-color:var(--accent); border-radius:50%; animation:spin .6s linear infinite; }

/* Items */
.notif-item { display:flex; gap:12px; padding:14px 18px; border-bottom:1px solid var(--border); transition:background .12s; position:relative; }
.notif-item:last-child { border-bottom:none; }
.notif-item:hover { background:var(--bg3); }
.notif-item.unread { background:rgba(124,58,237,.05); }
.notif-item.unread:hover { background:rgba(124,58,237,.1); }

.notif-item-left { flex-shrink:0; padding-top:1px; }
.notif-icon { width:34px; height:34px; border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:14px; font-weight:700; }
.notif-icon.success { background:rgba(16,185,129,.15); color:#34D399; }
.notif-icon.warning { background:rgba(245,158,11,.15); color:#FBBF24; }
.notif-icon.danger { background:rgba(239,68,68,.15); color:#F87171; }
.notif-icon.info { background:rgba(96,165,250,.15); color:#93C5FD; }

.notif-item-body { flex:1; min-width:0; }
.notif-item-top { display:flex; align-items:center; gap:8px; margin-bottom:2px; }
.notif-label { font-size:11px; font-weight:800; letter-spacing:.3px; }
.notif-label.success { color:#10B981; }
.notif-label.warning { color:#F59E0B; }
.notif-label.danger { color:#EF4444; }
.notif-label.info { color:#60A5FA; }
.notif-time { font-size:10.5px; color:var(--text3); font-weight:600; white-space:nowrap; margin-left:auto; }
.notif-title { font-size:13px; font-weight:700; color:var(--text); line-height:1.35; }
.notif-msg { font-size:12px; color:var(--text2); line-height:1.5; margin-top:2px; }
.notif-unread-indicator { position:absolute; left:6px; top:50%; transform:translateY(-50%); width:6px; height:6px; background:var(--accent); border-radius:50%; }

[data-theme="light"] .notif-dropdown { box-shadow:0 8px 30px rgba(0,0,0,.12), 0 2px 8px rgba(0,0,0,.08); }

@media(max-width:480px){
  .notif-dropdown { max-height:70vh; }
}

/* ════════ TOAST ════════ */
.toast-container { position:fixed; bottom:24px; right:24px; z-index:9999; display:flex; flex-direction:column; gap:10px; pointer-events:none; }
.toast { display:flex; align-items:flex-start; gap:12px; padding:14px 16px; border-radius:12px; min-width:300px; max-width:380px; pointer-events:all; opacity:0; transform:translateX(120%); transition:opacity .3s ease, transform .3s ease; box-shadow:0 8px 32px rgba(0,0,0,.4); border:1px solid transparent; }
.toast.visible { opacity:1; transform:translateX(0); }
.toast-success { background:#0a1f15; border-color:rgba(16,185,129,.35); }
.toast-error { background:#1f0a0a; border-color:rgba(239,68,68,.35); }
.toast-info { background:#0d0e1f; border-color:rgba(124,58,237,.35); }
[data-theme="light"] .toast-success { background:#ecfdf5; }
[data-theme="light"] .toast-error { background:#fef2f2; }
[data-theme="light"] .toast-info { background:#f5f3ff; }
.toast-icon { width:26px; height:26px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:800; flex-shrink:0; }
.toast-success .toast-icon { background:rgba(16,185,129,.15); color:#10B981; }
.toast-error .toast-icon { background:rgba(239,68,68,.15); color:#F87171; }
.toast-info .toast-icon { background:rgba(124,58,237,.15); color:#A78BFA; }
.toast-content { flex:1; }
.toast-title { font-size:13px; font-weight:800; color:var(--text); margin-bottom:3px; }
.toast-msg { font-size:12.5px; color:var(--text2); line-height:1.5; }
.toast-close { color:var(--text3); font-size:12px; padding:2px; flex-shrink:0; }

@media(max-width:480px){
  .toast-container { bottom:16px; right:12px; left:12px; }
  .toast { min-width:unset; max-width:unset; width:100%; }
}

/* ════════ AUTH PAGE ════════ */
.auth-root { display:grid; grid-template-columns:1fr 1fr; min-height:100vh; width:100%; overflow:hidden; }
.auth-left { display:flex; align-items:center; justify-content:center; padding:40px 24px; background:var(--bg); min-height:100vh; }
.auth-formwrap { width:100%; max-width:400px; display:flex; flex-direction:column; gap:6px; }
.auth-brand { display:flex; align-items:center; gap:9px; margin-bottom:28px; }
.auth-brand-mark { width:34px; height:34px; border-radius:9px; background:linear-gradient(135deg,#7C3AED,#A855F7); display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:800; font-size:16px; color:white; box-shadow:0 0 16px rgba(124,58,237,.4); flex-shrink:0; }
.auth-brand-name { font-family:var(--font-display); font-size:17px; font-weight:800; color:var(--text); letter-spacing:-.3px; }
.auth-tabs { display:flex; gap:4px; background:var(--bg2); border:1px solid var(--border2); border-radius:11px; padding:4px; margin-bottom:20px; }
.auth-tab { flex:1; padding:9px; border-radius:8px; color:var(--text2); font-size:13.5px; font-weight:600; transition:all .15s; text-align:center; }
.auth-tab:hover { color:var(--text); background:var(--bg3); }
.auth-tab-active { flex:1; padding:9px; border-radius:8px; background:var(--bg3); color:var(--text); font-size:13.5px; font-weight:700; box-shadow:0 1px 4px rgba(0,0,0,.2); text-align:center; }
.auth-title { font-family:var(--font-display); font-size:22px; font-weight:800; color:var(--text); letter-spacing:-.5px; margin-bottom:4px; margin-top:4px; }
.auth-sub { font-size:13.5px; color:var(--text2); line-height:1.55; margin-bottom:20px; }
.auth-form { display:flex; flex-direction:column; gap:14px; }
.auth-field { display:flex; flex-direction:column; gap:6px; }
.auth-field label { font-size:11px; font-weight:700; color:var(--text2); text-transform:uppercase; letter-spacing:.7px; font-family:var(--font-display); }
.auth-field input { background:var(--bg2); border:1px solid var(--border2); border-radius:11px; padding:13px 14px; color:var(--text); font-size:14px; outline:none; transition:border-color .2s, box-shadow .2s; width:100%; }
.auth-field input:focus { border-color:var(--accent3); box-shadow:0 0 0 3px rgba(124,58,237,.12); }
.auth-field input::placeholder { color:var(--text3); }
.auth-otp-input { width:100%; padding:20px; background:var(--bg2); border:2px solid var(--accent3); border-radius:14px; color:var(--text); font-size:30px; font-family:'Courier New',monospace; font-weight:800; text-align:center; letter-spacing:12px; outline:none; box-shadow:0 0 0 4px rgba(124,58,237,.1); box-sizing:border-box; }
.auth-err { background:rgba(239,68,68,.08); border:1px solid rgba(239,68,68,.22); color:#F87171; border-radius:10px; padding:11px 14px; font-size:13px; font-weight:500; line-height:1.5; }
.auth-ok { background:rgba(16,185,129,.08); border:1px solid rgba(16,185,129,.22); color:#10B981; border-radius:10px; padding:11px 14px; font-size:13px; font-weight:500; }
.auth-btn { width:100%; padding:14px; border-radius:11px; background:linear-gradient(135deg,#7C3AED,#9B5CFF); color:white; font-size:15px; font-weight:700; transition:opacity .2s, transform .15s; box-shadow:0 6px 24px rgba(124,58,237,.35); margin-top:2px; }
.auth-btn:hover:not(:disabled) { opacity:.92; transform:translateY(-1px); }
.auth-btn:disabled { opacity:.4; cursor:default; }
.auth-forgot-btn { color:var(--text3); font-size:13px; font-weight:600; text-align:center; padding:4px; transition:color .15s; }
.auth-forgot-btn:hover { color:var(--text2); }
.auth-back-btn { color:var(--text3); font-size:13px; font-weight:600; padding:4px; display:block; width:100%; text-align:center; }
.auth-back-btn:hover { color:var(--text2); }
.auth-switch { text-align:center; font-size:13.5px; color:var(--text2); margin-top:8px; }
.auth-switch-btn { color:var(--accent3); font-weight:700; font-size:13.5px; }
.auth-switch-btn:hover { text-decoration:underline; }
.auth-right { background:linear-gradient(145deg,#0D0820 0%,#100A28 50%,#0A0618 100%); border-left:1px solid rgba(124,58,237,.2); display:flex; align-items:center; justify-content:center; padding:48px 40px; position:relative; overflow:hidden; }
.auth-right::before { content:''; position:absolute; top:-100px; left:-100px; width:500px; height:500px; border-radius:50%; background:radial-gradient(circle,rgba(124,58,237,.15) 0%,transparent 65%); pointer-events:none; }
.auth-right-inner { position:relative; z-index:1; max-width:360px; display:flex; flex-direction:column; gap:28px; }
.auth-right-brand { display:flex; align-items:center; gap:10px; }
.auth-right-mark { width:38px; height:38px; border-radius:10px; background:linear-gradient(135deg,#7C3AED,#A855F7); display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:800; font-size:18px; color:white; box-shadow:0 0 20px rgba(124,58,237,.5); }
.auth-right-name { font-family:var(--font-display); font-size:20px; font-weight:800; color:white; letter-spacing:-.3px; }
.auth-tagline { font-size:28px; font-weight:800; color:white; font-family:var(--font-display); line-height:1.2; letter-spacing:-.8px; }
.auth-features { display:flex; flex-direction:column; gap:20px; border-top:1px solid rgba(255,255,255,.08); padding-top:28px; }
.auth-feat { display:flex; align-items:flex-start; gap:14px; }
.auth-feat-icon { width:38px; height:38px; border-radius:10px; background:rgba(124,58,237,.15); border:1px solid rgba(124,58,237,.25); flex-shrink:0; }
.auth-feat-title { font-size:14px; font-weight:700; color:white; font-family:var(--font-display); margin-bottom:3px; }
.auth-feat-desc { font-size:13px; color:rgba(255,255,255,.45); line-height:1.45; }

@media(max-width:768px){ .auth-root{grid-template-columns:1fr} .auth-right{display:none} .auth-left{padding:32px 20px} .auth-formwrap{max-width:100%} }

/* ════════ HOMEPAGE ════════ */
.hp-page { width:100%; overflow-x:hidden; }
.hp-hero { position:relative; overflow:hidden; background:linear-gradient(180deg,#0C0818 0%,var(--bg) 100%); }
.hp-hero-glow { position:absolute; top:0; left:50%; transform:translateX(-50%); width:800px; height:400px; border-radius:50%; background:radial-gradient(ellipse,rgba(124,58,237,.15) 0%,transparent 70%); pointer-events:none; z-index:0; }
.hp-hero-inner { position:relative; z-index:1; max-width:var(--max-w); margin:0 auto; padding:64px 24px 56px; display:grid; grid-template-columns:1fr 360px; gap:56px; align-items:center; }
.hp-hero-left { display:flex; flex-direction:column; gap:22px; }
.hp-pill { display:inline-flex; align-items:center; gap:8px; font-size:11px; font-weight:700; color:var(--accent3); letter-spacing:1.5px; text-transform:uppercase; font-family:var(--font-display); border:1px solid rgba(124,58,237,.22); background:rgba(124,58,237,.07); padding:5px 13px; border-radius:99px; align-self:flex-start; }
.hp-pill-dot { width:5px; height:5px; border-radius:50%; background:var(--accent3); flex-shrink:0; animation:pulse 2s ease-in-out infinite; }
.hp-title { font-family:var(--font-display); font-size:clamp(36px,4.5vw,54px); font-weight:800; color:var(--text); line-height:1.08; letter-spacing:-2px; }
.hp-grad { background:linear-gradient(135deg,#A78BFA 0%,#7C3AED 100%); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.hp-desc { font-size:15px; color:var(--text2); line-height:1.7; }
.hp-meta { display:flex; align-items:center; gap:0; }
.hp-meta-item { display:flex; flex-direction:column; gap:3px; padding-right:24px; }
.hp-meta-item:last-child { padding-right:0; }
.hp-meta-num { font-size:20px; font-weight:800; color:var(--text); font-family:var(--font-display); }
.hp-meta-lbl { font-size:10.5px; color:var(--text3); text-transform:uppercase; letter-spacing:.7px; font-weight:700; }
.hp-meta-sep { width:1px; height:32px; background:var(--border2); margin:0 24px; }
.hp-xcard { width:100%; position:relative; overflow:hidden; background:var(--bg2); border:1px solid var(--border2); border-radius:20px; box-shadow:0 0 0 1px rgba(124,58,237,.08),0 24px 64px rgba(0,0,0,.4); }
.hp-xcard-bg { position:absolute; inset:0; background:linear-gradient(145deg,rgba(124,58,237,.06) 0%,transparent 60%); pointer-events:none; }
.hp-xcard-inner { position:relative; z-index:1; padding:26px 24px; }
.hp-xcard-label { font-size:10px; font-weight:800; color:var(--text3); letter-spacing:3px; margin-bottom:14px; font-family:var(--font-display); }
.hp-xcard-title { font-size:26px; font-weight:800; color:var(--text); font-family:var(--font-display); line-height:1.15; letter-spacing:-.8px; margin-bottom:18px; }
.hp-xcard-sep { height:1px; background:var(--border); margin-bottom:18px; }
.hp-xcard-list { display:flex; flex-direction:column; gap:10px; margin-bottom:22px; }
.hp-xcard-row { display:flex; align-items:center; gap:10px; font-size:13.5px; color:var(--text2); font-weight:500; }
.hp-xcard-dot { width:4px; height:4px; border-radius:50%; background:var(--accent3); flex-shrink:0; }
.hp-xcard-bottom { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.hp-xcard-pill { font-size:11.5px; font-weight:700; font-family:var(--font-display); padding:4px 12px; border-radius:99px; border:1px solid; }
.hp-xcard-stock { display:flex; align-items:center; gap:6px; margin-left:auto; font-size:12px; font-weight:700; color:var(--green); }
.hp-xcard-stock-dot { width:6px; height:6px; border-radius:50%; background:var(--green); box-shadow:0 0 8px var(--green); animation:pulse 1.5s ease-in-out infinite; }
.hp-hero-brands { display:flex; gap:12px; flex-wrap:wrap; }
.hp-brand-card { position:relative; overflow:hidden; background:var(--bg2); border:1px solid var(--border2); border-radius:16px; padding:22px 20px; min-width:160px; flex:1; }
.hp-brand-card::before { content:''; position:absolute; inset:0; opacity:.06; pointer-events:none; }
.hp-brand-xbox { border-color:rgba(96,165,250,.2); }
.hp-brand-xbox::before { background:linear-gradient(135deg,#60A5FA,transparent); }
.hp-brand-spotify { border-color:rgba(29,185,84,.2); }
.hp-brand-spotify::before { background:linear-gradient(135deg,#1DB954,transparent); }
.hp-brand-label { font-size:10px; font-weight:800; color:var(--text3); letter-spacing:3px; margin-bottom:10px; font-family:var(--font-display); }
.hp-brand-name { font-size:20px; font-weight:800; color:var(--text); font-family:var(--font-display); line-height:1.15; letter-spacing:-.5px; margin-bottom:12px; }
.hp-brand-feat { font-size:11.5px; color:var(--text3); font-weight:500; }
.hp-brand-xbox .hp-brand-label { color:#60A5FA; }
.hp-brand-spotify .hp-brand-label { color:#1DB954; }
@media(max-width:640px) { .hp-hero-brands { flex-direction:column; } .hp-brand-card { min-width:auto; } }
.hp-feats { display:grid; grid-template-columns:repeat(4,1fr); background:var(--bg2); border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.hp-feat { padding:20px 24px; border-right:1px solid var(--border); }
.hp-feat:last-child { border-right:none; }
.hp-feat-title { font-size:13.5px; font-weight:700; color:var(--text); font-family:var(--font-display); margin-bottom:4px; }
.hp-feat-desc { font-size:12px; color:var(--text3); line-height:1.45; }
.hp-products { padding:52px 0 48px; }
.hp-products-inner { max-width:var(--max-w); margin:0 auto; padding:0 24px; }
.hp-prod-top { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:20px; flex-wrap:wrap; }
.hp-prod-title { font-size:22px; font-weight:800; color:var(--text); font-family:var(--font-display); letter-spacing:-.5px; }
.hp-prod-sub { font-size:13px; color:var(--text2); margin-top:4px; }
.hp-filter-row { display:flex; gap:5px; }
.hp-fbtn { display:flex; align-items:center; gap:6px; padding:7px 13px; border-radius:8px; background:var(--bg2); border:1px solid var(--border2); color:var(--text2); font-size:13px; font-weight:600; transition:all .15s; }
.hp-fbtn:hover { background:var(--bg3); color:var(--text); }
.hp-fbtn-active { background:rgba(124,58,237,.1) !important; border-color:rgba(124,58,237,.25) !important; color:var(--accent3) !important; }
.hp-fcount { background:var(--bg4); color:var(--text3); font-size:10.5px; font-weight:700; padding:1px 6px; border-radius:5px; }
.hp-fbtn-active .hp-fcount { background:rgba(124,58,237,.18); color:var(--accent3); }
.hp-search { width:100%; background:var(--bg2); border:1px solid var(--border2); border-radius:11px; padding:12px 16px; color:var(--text); font-size:14px; outline:none; transition:border-color .2s,box-shadow .2s; margin-bottom:20px; }
.hp-search:focus { border-color:var(--accent3); box-shadow:0 0 0 3px rgba(124,58,237,.1); }
.hp-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(270px,1fr)); gap:14px; }
.hp-empty { text-align:center; padding:80px 20px; }
.hp-empty-title { font-size:18px; font-weight:700; color:var(--text2); margin-bottom:6px; }
.hp-empty-sub { font-size:14px; color:var(--text3); }
.hp-subs { margin-top:40px; padding-top:32px; border-top:1px solid var(--border); }
.hp-subs-title { font-size:18px; font-weight:800; color:var(--text); font-family:var(--font-display); margin-bottom:16px; letter-spacing:-.3px; }
.hp-subs-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:12px; }
.hp-sub { background:var(--bg2); border:1px solid var(--border); border-radius:14px; padding:18px 20px; transition:border-color .2s,box-shadow .2s; }
.hp-sub:hover { border-color:var(--border2); box-shadow:0 4px 16px rgba(0,0,0,.06); }
.hp-sub-top { display:flex; align-items:center; gap:14px; margin-bottom:14px; }
.hp-sub-icon { width:40px; height:40px; min-width:40px; border-radius:11px; background:var(--bg3); display:flex; align-items:center; justify-content:center; }
.hp-sub-info { flex:1; min-width:0; }
.hp-sub-name { font-size:14px; font-weight:700; color:var(--text); font-family:var(--font-display); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.hp-sub-period { font-size:11.5px; color:var(--text3); margin-top:1px; }
.hp-sub-days { font-size:22px; font-weight:800; font-family:var(--font-display); line-height:1; letter-spacing:-.5px; }
.hp-sub-days span { font-size:12px; font-weight:600; }
.hp-sub-bar { height:4px; background:var(--bg4); border-radius:3px; margin-bottom:10px; overflow:hidden; }
.hp-sub-fill { height:100%; border-radius:3px; transition:width .3s ease; }
.hp-sub-bottom { display:flex; align-items:center; justify-content:space-between; font-size:11.5px; color:var(--text3); }
.hp-how { padding:56px 0; background:var(--bg2); border-top:1px solid var(--border); }
.hp-how-inner { max-width:var(--max-w); margin:0 auto; padding:0 24px; }
.hp-how-header { margin-bottom:36px; }
.hp-how-title { font-size:22px; font-weight:800; color:var(--text); font-family:var(--font-display); letter-spacing:-.5px; margin-bottom:6px; }
.hp-how-sub { font-size:14px; color:var(--text2); }
.hp-how-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--border); border-radius:16px; overflow:hidden; border:1px solid var(--border); }
.hp-how-step { background:var(--bg2); padding:28px 26px; }
.hp-how-num { font-size:11px; font-weight:800; color:var(--accent3); letter-spacing:2px; font-family:var(--font-display); margin-bottom:16px; }
.hp-how-stitle { font-size:16px; font-weight:800; color:var(--text); font-family:var(--font-display); letter-spacing:-.3px; margin-bottom:10px; }
.hp-how-sdesc { font-size:13.5px; color:var(--text2); line-height:1.65; }

/* ── Light theme: Hero overrides ── */
[data-theme="light"] .hp-hero { background:linear-gradient(180deg,#E8E0F8 0%,#F5F5FA 100%); }
[data-theme="light"] .hp-hero-glow { background:radial-gradient(ellipse,rgba(124,58,237,.12) 0%,transparent 70%); }
[data-theme="light"] .hp-xcard { box-shadow:0 0 0 1px rgba(124,58,237,.1),0 16px 48px rgba(80,50,140,.1); }
[data-theme="light"] .hp-pill { background:rgba(124,58,237,.08); border-color:rgba(124,58,237,.18); }

@media(max-width:900px){ .hp-hero-inner{grid-template-columns:1fr;padding:44px 20px 40px;gap:32px} .hp-hero-right{display:none} .hp-feats{grid-template-columns:1fr 1fr} .hp-how-grid{grid-template-columns:1fr} .hp-prod-top{flex-direction:column;align-items:flex-start} }
@media(max-width:600px){ .hp-title{font-size:32px;letter-spacing:-1px} .hp-meta{flex-wrap:wrap;gap:16px} .hp-meta-sep{display:none} .hp-meta-item{padding-right:0} .hp-feats{grid-template-columns:1fr 1fr} .hp-grid{grid-template-columns:1fr 1fr;gap:10px} .hp-products{padding:36px 0 32px} .hp-how{padding:40px 0} .hp-how-step{padding:22px 18px} }
@media(max-width:380px){ .hp-grid{grid-template-columns:1fr} .hp-feats{grid-template-columns:1fr} }

/* ════════ PRODUCT CARD ════════ */
/* Product Cards */
.pc-card { position:relative; overflow:hidden; background:var(--bg2); border:1px solid var(--border); border-radius:18px; padding:0; cursor:pointer; text-align:left; width:100%; transition:transform .25s ease, border-color .25s, box-shadow .25s; display:flex; flex-direction:column; }
.pc-top-gradient { position:absolute; top:0; left:0; right:0; height:80px; background:linear-gradient(180deg,rgba(var(--pc-rgb),.08) 0%,transparent 100%); pointer-events:none; }
.pc-card:hover { transform:translateY(-4px); border-color:rgba(var(--pc-rgb),.35); box-shadow:0 16px 48px rgba(var(--pc-rgb),.12); }

.pc-header { display:flex; align-items:center; justify-content:space-between; padding:18px 20px 0; position:relative; }
.pc-brand-icon { width:44px; height:44px; border-radius:12px; background:rgba(var(--pc-rgb),.1); display:flex; align-items:center; justify-content:center; }
.pc-badge { font-size:11px; font-weight:700; color:var(--text3); text-transform:uppercase; letter-spacing:.5px; margin-bottom:8px; }
.pc-stock { display:flex; align-items:center; gap:5px; font-size:11px; font-weight:700; color:#10B981; }
.pc-stock-dot { width:7px; height:7px; border-radius:50%; background:#10B981; box-shadow:0 0 6px #10B981; animation:pulse 2s ease-in-out infinite; }
.pc-stock-out { color:#EF4444; }
.pc-stock-out .pc-stock-dot { background:#EF4444; box-shadow:0 0 6px #EF4444; }

.pc-body { padding:14px 20px 6px; flex:1; }
.pc-name { font-size:17px; font-weight:800; color:var(--text); font-family:var(--font-display); letter-spacing:-.3px; margin-bottom:5px; line-height:1.25; }
.pc-desc { font-size:12.5px; color:var(--text3); line-height:1.5; }

.pc-footer { display:flex; align-items:center; justify-content:space-between; padding:14px 20px; border-top:1px solid var(--border); margin-top:auto; }
.pc-price { font-size:26px; font-weight:800; font-family:var(--font-display); color:var(--pc-accent); letter-spacing:-.5px; line-height:1; }
.pc-price-cur { font-size:14px; font-weight:700; margin-left:1px; }
.pc-cta { font-size:13px; font-weight:700; color:var(--pc-accent); transition:transform .2s; display:inline-block; }
.pc-card:hover .pc-cta { transform:translateX(4px); }
@media(max-width:560px){ .pc-name{font-size:15px} .pc-price{font-size:22px} .pc-brand-icon{width:38px;height:38px;border-radius:10px} .pc-brand-icon svg{width:18px;height:18px} }

/* ════════ PRODUCT MODAL ════════ */
.pm-overlay { position:fixed; inset:0; z-index:500; background:rgba(0,0,0,.85); backdrop-filter:blur(10px); display:flex; align-items:center; justify-content:center; padding:16px; }
.pm-modal { background:var(--bg2); border:1px solid var(--border2); border-radius:20px; width:100%; max-width:780px; max-height:92vh; overflow-y:auto; position:relative; box-shadow:0 40px 120px rgba(0,0,0,.8); animation:fadeUp .25s ease; }
.pm-close { position:absolute; top:14px; right:14px; z-index:10; background:rgba(0,0,0,.5); border:1px solid rgba(255,255,255,.12); color:rgba(255,255,255,.8); width:32px; height:32px; border-radius:9px; font-size:14px; display:flex; align-items:center; justify-content:center; transition:all .15s; }
.pm-close:hover { background:rgba(0,0,0,.7); color:white; }
.pm-hero { height:155px; position:relative; overflow:hidden; border-radius:20px 20px 0 0; }
.pm-hero-glow { position:absolute; width:400px; height:400px; border-radius:50%; filter:blur(80px); opacity:.7; top:-120px; left:-80px; }
.pm-hero-content { position:relative; z-index:1; height:100%; display:flex; align-items:center; justify-content:space-between; padding:0 24px; }
.pm-hero-left { display:flex; align-items:center; gap:16px; }
.pm-hero-xbox { font-family:var(--font-display); font-size:36px; font-weight:800; letter-spacing:-2px; text-shadow:0 0 40px currentColor; flex-shrink:0; }
.pm-hero-title { font-size:15px; font-weight:700; color:rgba(255,255,255,.85); font-family:var(--font-display); }
.pm-hero-sub { font-size:12px; color:rgba(255,255,255,.45); margin-top:2px; }
.pm-hero-months { display:flex; align-items:baseline; gap:5px; margin-top:6px; }
.pm-hero-months-lbl { font-size:10px; font-weight:800; color:rgba(255,255,255,.35); letter-spacing:1px; font-family:var(--font-display); }
.pm-hero-stats { display:flex; align-items:center; gap:16px; }
.pm-hstat { text-align:center; }
.pm-hstat-num { font-size:20px; font-weight:800; font-family:var(--font-display); }
.pm-hstat-lbl { font-size:10px; color:rgba(255,255,255,.4); font-weight:700; text-transform:uppercase; letter-spacing:.6px; font-family:var(--font-display); margin-top:2px; }
.pm-hero-divider { width:1px; height:32px; background:rgba(255,255,255,.1); }
.pm-hero-badge { position:absolute; bottom:0; left:0; right:0; text-align:center; font-size:10px; font-weight:800; color:white; padding:5px; letter-spacing:1px; text-transform:uppercase; font-family:var(--font-display); }
.pm-body { padding:20px 22px 24px; }
.pm-two-col { display:flex; gap:20px; }
.pm-left { flex:1; min-width:0; }
.pm-right { width:220px; flex-shrink:0; display:flex; flex-direction:column; gap:12px; }
.pm-sec-lbl { font-size:10px; font-weight:800; color:var(--text3); text-transform:uppercase; letter-spacing:.9px; margin-bottom:10px; font-family:var(--font-display); }
.pm-desc { font-size:13.5px; color:var(--text2); line-height:1.7; }
.pm-includes { display:grid; grid-template-columns:1fr 1fr; gap:7px; }
.pm-inc { background:var(--bg3); border:1px solid var(--border); border-radius:10px; padding:9px 11px; }
.pm-inc-t { font-size:12px; font-weight:800; font-family:var(--font-display); margin-bottom:2px; }
.pm-inc-d { font-size:11px; color:var(--text3); }
.pm-step { display:flex; align-items:flex-start; gap:10px; margin-bottom:10px; }
.pm-step-n { width:22px; height:22px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:800; flex-shrink:0; font-family:var(--font-display); }
.pm-step-title { font-size:12.5px; font-weight:700; color:var(--text); font-family:var(--font-display); }
.pm-step-text { font-size:12px; color:var(--text2); margin-top:1px; }
.pm-stock-card { background:var(--bg3); border:1px solid var(--border); border-radius:12px; padding:14px; }
.pm-stock-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.pm-stock-title { font-size:12px; font-weight:800; color:var(--text); font-family:var(--font-display); }
.pm-stock-badge { display:flex; align-items:center; gap:5px; font-size:11px; font-weight:700; font-family:var(--font-display); }
.pm-stock-dot { width:6px; height:6px; border-radius:50%; flex-shrink:0; }
.pm-stock-meta { display:flex; flex-direction:column; gap:7px; }
.pm-stock-meta-row { display:flex; justify-content:space-between; font-size:12.5px; }
.pm-buy-btn { display:flex; align-items:center; gap:12px; padding:14px 16px; border-radius:12px; color:white; transition:opacity .2s,transform .15s; }
.pm-buy-btn:hover { opacity:.92; transform:translateY(-1px); }
.pm-buy-title { font-size:14px; font-weight:800; font-family:var(--font-display); }
.pm-buy-sub { font-size:11px; opacity:.8; margin-top:2px; }
.pm-buy-arrow { font-size:18px; margin-left:auto; flex-shrink:0; transition:transform .2s; }
.pm-buy-btn:hover .pm-buy-arrow { transform:translateX(4px); }
.pm-buy-note { font-size:11.5px; color:var(--text3); line-height:1.55; text-align:center; }
.pm-seller { background:var(--bg3); border:1px solid var(--border); border-radius:11px; padding:12px; display:flex; align-items:center; gap:10px; }
.pm-seller-av { width:32px; height:32px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:800; color:white; flex-shrink:0; font-family:var(--font-display); }
.pm-seller-name { font-size:13px; font-weight:700; color:var(--text); font-family:var(--font-display); }
@media(max-width:640px){ .pm-two-col{flex-direction:column} .pm-right{width:100%} .pm-hero{height:120px} .pm-hero-stats{display:none} .pm-body{padding:16px} }

/* ════════ ACTIVATE PAGE ════════ */
.ap-page { min-height:calc(100vh - var(--nav-h)); background:var(--bg); padding:28px 16px; }
.ap-wrap { max-width:860px; margin:0 auto; width:100%; }
.ap-header { display:flex; align-items:center; gap:16px; margin-bottom:24px; }
.ap-header-icon { width:52px; height:52px; border-radius:14px; flex-shrink:0; background:linear-gradient(135deg,rgba(124,58,237,.3),rgba(139,92,246,.15)); border:1px solid rgba(124,58,237,.3); display:flex; align-items:center; justify-content:center; }
.ap-title { font-family:var(--font-display); font-size:24px; font-weight:800; color:var(--text); letter-spacing:-.5px; }
.ap-sub { font-size:13.5px; color:var(--text2); margin-top:4px; line-height:1.5; }
.ap-grid { display:grid; grid-template-columns:1fr 260px; gap:16px; align-items:start; }
.ap-form-card { background:var(--bg2); border:1px solid var(--border); border-radius:16px; padding:26px; }
.ap-sec-title { font-size:11px; font-weight:800; color:var(--text3); text-transform:uppercase; letter-spacing:.9px; font-family:var(--font-display); margin-bottom:14px; }
.ap-key-input { width:100%; background:var(--bg3); border:2px solid var(--border2); border-radius:14px; padding:20px; color:#A78BFA; font-size:20px; font-family:'Courier New',monospace; font-weight:800; text-align:center; letter-spacing:2px; outline:none; transition:border-color .2s, box-shadow .2s; box-sizing:border-box; }
.ap-key-input:focus { border-color:var(--accent3); box-shadow:0 0 0 3px rgba(124,58,237,.15); }
.ap-key-input-error { border-color:#EF4444 !important; box-shadow:0 0 0 3px rgba(239,68,68,.15) !important; }
.ap-key-input-error:focus { border-color:#EF4444 !important; box-shadow:0 0 0 3px rgba(239,68,68,.2) !important; }
.ap-shake { animation:apShake .4s ease; }
@keyframes apShake { 0%,100%{transform:translateX(0)} 15%{transform:translateX(-6px)} 30%{transform:translateX(5px)} 45%{transform:translateX(-4px)} 60%{transform:translateX(3px)} 75%{transform:translateX(-2px)} }
.ap-key-hint { font-size:13px; color:var(--text3); line-height:1.6; margin:12px 0 16px; }
.ap-error-box { background:rgba(239,68,68,.08); border:1px solid rgba(239,68,68,.25); color:#F87171; border-radius:10px; padding:13px 15px; font-size:13px; font-weight:500; display:flex; align-items:flex-start; gap:10px; margin-bottom:14px; line-height:1.5; }
.ap-activate-btn { width:100%; padding:15px; border-radius:12px; background:linear-gradient(135deg,#7C3AED,#8B5CF6); color:white; font-size:15px; font-weight:800; transition:opacity .2s,transform .15s; display:flex; align-items:center; justify-content:center; gap:8px; box-shadow:0 6px 24px rgba(124,58,237,.35); }
.ap-activate-btn:disabled { opacity:.35; background:var(--bg4) !important; box-shadow:none !important; }
.ap-success-box { background:rgba(16,185,129,.05); border:1px solid rgba(16,185,129,.25); border-radius:14px; padding:22px; display:flex; flex-direction:column; align-items:center; text-align:center; gap:14px; margin-top:16px; }
.ap-success-icon { width:60px; height:60px; border-radius:50%; background:rgba(16,185,129,.15); border:2px solid rgba(16,185,129,.3); display:flex; align-items:center; justify-content:center; font-size:28px; color:#10B981; font-weight:800; }
.ap-success-title { font-size:19px; font-weight:800; color:var(--text); font-family:var(--font-display); }
.ap-success-months-num { font-size:52px; font-weight:800; color:#10B981; font-family:var(--font-display); line-height:1; letter-spacing:-2px; }
.ap-success-months-lbl { font-size:12px; font-weight:800; color:var(--text3); letter-spacing:1px; font-family:var(--font-display); }
.ap-key-box { width:100%; background:var(--bg); border:1px solid var(--border); border-radius:10px; padding:13px 15px; }
.ap-key-label { font-size:9.5px; font-weight:800; color:var(--text3); text-transform:uppercase; letter-spacing:.8px; font-family:var(--font-display); margin-bottom:8px; }
.ap-key-row { display:flex; align-items:center; gap:8px; }
.ap-key-val { flex:1; font-family:'Courier New',monospace; font-size:14px; color:#A78BFA; font-weight:700; letter-spacing:1px; text-align:left; word-break:break-all; }
.ap-copy-btn { flex-shrink:0; padding:6px 13px; background:var(--bg3); border:1px solid var(--border2); border-radius:6px; color:var(--text2); font-size:11px; font-weight:700; transition:all .15s; white-space:nowrap; }
.ap-copy-btn:hover { background:var(--bg4); color:var(--text); }
.ap-account-box { width:100%; background:var(--bg3); border:1px solid rgba(124,58,237,.25); border-radius:11px; padding:15px; text-align:left; }
.ap-account-label { font-size:12px; font-weight:800; color:var(--text); font-family:var(--font-display); margin-bottom:4px; }
.ap-account-desc { font-size:11.5px; color:var(--text3); margin-bottom:12px; }
.ap-account-row { display:flex; align-items:center; gap:8px; padding:9px 0; border-bottom:1px solid var(--border); }
.ap-account-row:last-child { border-bottom:none; }
.ap-account-key { font-size:11px; font-weight:700; color:var(--text3); width:52px; flex-shrink:0; }
.ap-account-val { flex:1; font-family:'Courier New',monospace; font-size:13px; color:var(--text); font-weight:600; word-break:break-all; }
.ap-new-key-btn { width:100%; padding:11px; background:var(--bg3); border:1px solid var(--border2); border-radius:9px; color:var(--text); font-size:13px; font-weight:700; transition:all .15s; }
.ap-new-key-btn:hover { background:var(--bg4); }
.ap-info-col { display:flex; flex-direction:column; gap:12px; }
.ap-info-card { background:var(--bg2); border:1px solid var(--border); border-radius:14px; padding:18px; }
.ap-info-title { font-size:10.5px; font-weight:800; color:var(--text3); text-transform:uppercase; letter-spacing:.9px; font-family:var(--font-display); margin-bottom:14px; }
.ap-info-step { display:flex; align-items:flex-start; gap:10px; margin-bottom:10px; }
.ap-info-step-n { width:22px; height:22px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:800; flex-shrink:0; font-family:var(--font-display); }
.ap-info-step-t { font-size:12.5px; color:var(--text2); padding-top:3px; line-height:1.4; }
.ap-bullet { display:flex; align-items:center; gap:10px; font-size:13.5px; color:var(--text2); padding:8px 0; border-bottom:1px solid var(--border); }
.ap-bullet:last-child { border-bottom:none; }
@media(max-width:768px){ .ap-grid{grid-template-columns:1fr} .ap-info-col{order:-1} .ap-page{padding:16px 12px} }
@media(max-width:480px){ .ap-key-input{font-size:16px;padding:16px} }

/* ════════ ORDERS PAGE ════════ */
.op-page { max-width:var(--max-w); margin:0 auto; padding:28px 16px; }
.op-header { margin-bottom:24px; }
.op-title { font-family:var(--font-display); font-size:24px; font-weight:800; color:var(--text); letter-spacing:-.5px; }
.op-sub { font-size:14px; color:var(--text2); margin-top:5px; }
.op-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-bottom:24px; }
.op-stat { background:var(--bg2); border:1px solid var(--border); border-radius:12px; padding:14px 16px; }
.op-stat-num { font-size:22px; font-weight:800; color:var(--text); font-family:var(--font-display); }
.op-stat-lbl { font-size:11px; color:var(--text3); text-transform:uppercase; letter-spacing:.6px; font-weight:700; margin-top:3px; }
.op-tabs { display:flex; gap:4px; margin-bottom:18px; overflow-x:auto; }
.op-tab { background:none; border:1px solid var(--border); color:var(--text2); font-size:13px; font-weight:600; padding:8px 14px; border-radius:9px; white-space:nowrap; transition:all .15s; display:flex; align-items:center; gap:6px; }
.op-tab-active { background:var(--bg3) !important; color:var(--text) !important; border-color:var(--border2) !important; }
.op-tab-badge { background:var(--bg4); color:var(--text3); font-size:11px; font-weight:700; padding:1px 7px; border-radius:6px; }
.op-list { display:flex; flex-direction:column; gap:10px; }
.op-card { background:var(--bg2); border:1px solid var(--border); border-left:3px solid transparent; border-radius:14px; overflow:hidden; transition:border-color .2s; }
.op-card-dim { opacity:.6; }
.op-card-rev { opacity:.5; }
.op-card-new { border-color:rgba(16,185,129,.4) !important; box-shadow:0 0 0 1px rgba(16,185,129,.15); }
.op-card-top { display:flex; align-items:center; gap:12px; padding:14px 16px; cursor:pointer; user-select:none; }
.op-brand { font-size:13px; font-weight:800; font-family:var(--font-display); width:36px; text-align:center; flex-shrink:0; }
.op-info { flex:1; min-width:0; }
.op-name-row { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:4px; }
.op-name { font-size:14px; font-weight:700; color:var(--text); font-family:var(--font-display); }
.op-new-tag { font-size:9.5px; font-weight:800; padding:2px 7px; border-radius:5px; background:rgba(16,185,129,.15); border:1px solid rgba(16,185,129,.3); color:#10B981; }
.op-meta { font-size:12px; color:var(--text3); display:flex; align-items:center; flex-wrap:wrap; gap:4px; }
.op-prog { margin-top:8px; }
.op-prog-bg { height:3px; background:var(--bg4); border-radius:2px; overflow:hidden; }
.op-prog-fill { height:100%; border-radius:2px; transition:width .5s; }
.op-prog-txt { font-size:11px; color:var(--text3); margin-top:4px; font-weight:600; }
.op-acc-hint { display:flex; align-items:center; gap:6px; margin-top:6px; font-size:11.5px; color:var(--accent3); font-weight:600; }
.op-acc-pulse { width:7px; height:7px; border-radius:50%; background:#A78BFA; box-shadow:0 0 8px #A78BFA; flex-shrink:0; }
.op-card-right { display:flex; flex-direction:column; align-items:flex-end; gap:8px; flex-shrink:0; }
.op-badge { font-size:11px; font-weight:800; padding:4px 10px; border-radius:7px; font-family:var(--font-display); white-space:nowrap; }
.op-badge-active { background:rgba(16,185,129,.12); color:#10B981; border:1px solid rgba(16,185,129,.22); }
.op-badge-exp { background:var(--bg3); color:var(--text3); border:1px solid var(--border); }
.op-badge-rev { background:rgba(239,68,68,.08); color:#F87171; border:1px solid rgba(239,68,68,.2); }
.op-detail { padding:0 16px 16px; }
.op-detail-div { height:1px; background:var(--border); margin-bottom:14px; }
.op-acc-box { background:var(--bg3); border:1px solid var(--border); border-radius:12px; padding:14px; margin-bottom:12px; }
.op-acc-highlight { border-color:rgba(124,58,237,.3) !important; background:rgba(124,58,237,.04) !important; }
.op-acc-title { font-size:11px; font-weight:800; color:var(--text); text-transform:uppercase; letter-spacing:.8px; font-family:var(--font-display); }
.op-acc-active { font-size:10px; font-weight:700; padding:2px 8px; border-radius:5px; background:rgba(16,185,129,.12); color:#10B981; }
.op-acc-exp { font-size:10px; font-weight:700; padding:2px 8px; border-radius:5px; background:var(--bg4); color:var(--text3); }
.op-acc-field { margin-bottom:10px; }
.op-acc-lbl { font-size:10px; font-weight:800; color:var(--text3); text-transform:uppercase; letter-spacing:.7px; font-family:var(--font-display); margin-bottom:5px; }
.op-acc-row { display:flex; align-items:center; gap:8px; }
.op-acc-val { flex:1; font-family:'Courier New',monospace; font-size:14px; color:var(--text); font-weight:700; word-break:break-all; }
.op-key-box { background:var(--bg3); border:1px solid var(--border); border-radius:12px; padding:14px; }
.op-empty { text-align:center; padding:60px 20px; }
@media(max-width:600px){ .op-page{padding:20px 12px} .op-stats{grid-template-columns:repeat(2,1fr)} }

/* ════════ PROFILE PAGE ════════ */
.pp-page { max-width:var(--max-w); margin:0 auto; padding:28px 16px; }
.pp-title { font-family:var(--font-display); font-size:24px; font-weight:800; color:var(--text); letter-spacing:-.5px; margin-bottom:20px; }
.pp-layout { display:grid; grid-template-columns:240px 1fr; gap:16px; align-items:start; }
.pp-sidebar { display:flex; flex-direction:column; gap:10px; position:sticky; top:calc(var(--nav-h)+12px); }
.pp-profile-card { background:var(--bg2); border:1px solid var(--border); border-radius:16px; padding:20px; text-align:center; }
.pp-av { width:60px; height:60px; border-radius:50%; background:linear-gradient(135deg,#7C3AED,#A855F7); display:flex; align-items:center; justify-content:center; font-size:22px; font-weight:800; color:white; font-family:var(--font-display); margin:0 auto 12px; box-shadow:0 0 0 4px rgba(124,58,237,.2); }
img.pp-av-img { object-fit:cover; border:3px solid var(--border2); }
.pp-name { font-size:16px; font-weight:700; color:var(--text); font-family:var(--font-display); }
.pp-email { font-size:12px; color:var(--text2); margin-top:3px; word-break:break-all; }
.pp-since { font-size:11px; color:var(--text3); margin-top:3px; }
.pp-verified { display:inline-block; font-size:10.5px; font-weight:700; margin-top:8px; padding:3px 10px; border-radius:20px; background:rgba(16,185,129,.1); color:#10B981; }
.pp-stats { display:flex; justify-content:space-around; border-top:1px solid var(--border); border-bottom:1px solid var(--border); margin:14px 0; padding:12px 0; }
.pp-stat-n { font-size:18px; font-weight:800; color:var(--text); font-family:var(--font-display); }
.pp-stat-l { font-size:10px; color:var(--text3); text-transform:uppercase; font-weight:700; }
.pp-tabmenu { background:var(--bg2); border:1px solid var(--border); border-radius:12px; padding:6px; display:flex; flex-direction:column; gap:2px; }
.pp-tab { color:var(--text2); font-size:13px; font-weight:600; padding:10px 12px; border-radius:8px; text-align:left; transition:all .15s; }
.pp-tab:hover { background:var(--bg3); color:var(--text); }
.pp-tab-active { background:var(--bg3) !important; color:var(--text) !important; font-weight:700 !important; }
.pp-tab-danger { color:#F87171 !important; }
.pp-logout-btn { width:100%; padding:10px; background:rgba(239,68,68,.08); border:1px solid rgba(239,68,68,.2); border-radius:10px; color:#F87171; font-size:13px; font-weight:700; }
.pp-card { background:var(--bg2); border:1px solid var(--border); border-radius:16px; padding:22px; }
.pp-card-title { font-size:11px; font-weight:800; color:var(--text3); text-transform:uppercase; letter-spacing:.9px; margin-bottom:16px; font-family:var(--font-display); }
.pp-card-desc { font-size:13.5px; color:var(--text2); margin-bottom:16px; line-height:1.55; }
.pp-divider { height:1px; background:var(--border); margin:20px 0; }
.pp-info-row { display:flex; justify-content:space-between; align-items:center; padding:10px 0; border-bottom:1px solid var(--border); gap:12px; }
.pp-info-l { font-size:13px; color:var(--text2); font-weight:500; flex-shrink:0; }
.pp-info-v { font-size:13px; font-weight:700; color:var(--text); font-family:var(--font-display); text-align:right; word-break:break-all; }
.pp-form { display:flex; flex-direction:column; gap:13px; }
.pp-field label { font-size:10.5px; font-weight:800; color:var(--text2); letter-spacing:.7px; text-transform:uppercase; font-family:var(--font-display); }
.pp-field input { background:var(--bg3); border:1px solid var(--border2); border-radius:10px; padding:11px 13px; color:var(--text); font-size:14px; outline:none; width:100%; margin-top:5px; }
.pp-field input:focus { border-color:var(--accent3); }
.pp-field .pass-eye-wrap { margin-top:5px; }
.pp-field .pass-eye-wrap input { margin-top:0; }
.pp-otp-input { background:var(--bg3); border:2px solid var(--accent3) !important; border-radius:12px; padding:14px; color:var(--text); font-size:28px; font-family:'Courier New',monospace; outline:none; text-align:center; letter-spacing:10px; font-weight:800; width:100%; box-sizing:border-box; }
.pp-save-btn { padding:12px 20px; background:linear-gradient(135deg,#7C3AED,#8B5CF6); border-radius:10px; color:white; font-size:13.5px; font-weight:700; align-self:flex-start; box-shadow:0 4px 16px rgba(124,58,237,.3); }
.pp-save-btn:disabled { opacity:.4; }
.pp-settrow { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:13px 0; border-bottom:1px solid var(--border); }
.pp-settlabel { font-size:14px; font-weight:600; color:var(--text); }
.pp-settdesc { font-size:12px; color:var(--text3); margin-top:2px; }
.pp-toggle { width:44px; height:24px; border-radius:12px; position:relative; transition:background .2s; flex-shrink:0; }
.pp-toggle-circle { width:18px; height:18px; border-radius:50%; background:white; position:absolute; top:3px; transition:left .2s; box-shadow:0 1px 3px rgba(0,0,0,.3); }
.pp-secgrid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.pp-secitem { background:var(--bg3); border:1px solid var(--border); border-radius:10px; padding:14px; }
.pp-danger-header { display:flex; align-items:flex-start; gap:14px; background:rgba(239,68,68,.06); border:1px solid rgba(239,68,68,.2); border-radius:12px; padding:16px; margin-bottom:16px; }
.pp-danger-title { font-size:15px; font-weight:800; color:#F87171; font-family:var(--font-display); margin-bottom:4px; }
.pp-delete-btn { width:100%; padding:13px; background:linear-gradient(135deg,#DC2626,#EF4444); border-radius:10px; color:white; font-size:14px; font-weight:800; box-shadow:0 4px 16px rgba(239,68,68,.3); }
.pp-delete-btn:disabled { opacity:.35; }
@media(max-width:900px){ .pp-layout{grid-template-columns:1fr} .pp-sidebar{position:static} .pp-tabmenu{flex-direction:row;flex-wrap:wrap} .pp-tab{flex:1;min-width:calc(33% - 4px);text-align:center;font-size:12px} .pp-secgrid{grid-template-columns:1fr} }

/* ════════ CONFIRM MODAL ════════ */
.cm-overlay { position:fixed; inset:0; z-index:1000; background:rgba(0,0,0,.75); backdrop-filter:blur(6px); display:flex; align-items:center; justify-content:center; padding:20px; }
.cm-modal { background:var(--bg2); border:1px solid var(--border2); border-radius:16px; padding:28px 24px; width:100%; max-width:360px; text-align:center; box-shadow:0 24px 80px rgba(0,0,0,.6); animation:fadeUp .2s ease; }
.cm-title { font-size:17px; font-weight:800; color:var(--text); font-family:var(--font-display); margin-bottom:8px; }
.cm-desc { font-size:13px; color:var(--text2); line-height:1.55; margin-bottom:20px; }
.cm-btns { display:flex; gap:10px; }
.cm-cancel { flex:1; padding:11px; background:var(--bg3); border:1px solid var(--border2); border-radius:9px; color:var(--text2); font-size:13px; font-weight:700; }
.cm-confirm { flex:1; padding:11px; border-radius:9px; color:white; font-size:13px; font-weight:800; }
.cm-danger { background:linear-gradient(135deg,#DC2626,#EF4444); }
.cm-normal { background:linear-gradient(135deg,#7C3AED,#9B5CFF); }

/* ════════ UTILITY ════════ */
.skel { border-radius:18px; background:linear-gradient(90deg,var(--bg2) 25%,var(--bg3) 50%,var(--bg2) 75%); background-size:200% 100%; animation:shimmer 1.5s ease-in-out infinite; }
.loading-center { min-height:100vh; display:flex; align-items:center; justify-content:center; color:var(--text3); font-size:14px; }
