
/* Onest digits (0-9) layered over Saira for all body text */
@font-face{font-family:'OnestNum';font-style:normal;font-weight:100 900;font-display:swap;src:url(https://fonts.gstatic.com/s/onest/v9/gNMKW3F-SZuj7xmf-HY.woff2) format('woff2');unicode-range:U+0030-0039}
:root{--bg:#000000;--bg-elevated:#0a0a0a;--card:#111111;--card-hover:#1a1a1a;--border:#222222;--fg:#ffffff;--fg-muted:#777777;--accent:#f97316;--accent-dim:rgba(249,115,22,0.15);--accent-hover:#fb923c;--danger:#e85454;--danger-dim:rgba(232,84,84,0.15);--success:#4ade80;--success-dim:rgba(74,222,128,0.15);--info:#60a5fa;--info-dim:rgba(96,165,250,0.15);--tier-free:#6b7280;--tier-free-dim:rgba(107,114,128,0.15);--tier-medium:#3b82f6;--tier-medium-dim:rgba(59,130,246,0.15);--tier-high:#8b5cf6;--tier-high-dim:rgba(139,92,246,0.15);--radius:12px;--radius-sm:8px;--font-main:'OnestNum','Saira',sans-serif;--font-num:'Onest',sans-serif;--shadow:0 4px 24px rgba(0,0,0,0.5)}
.light-mode{--bg:#f5f5f5;--bg-elevated:#ffffff;--card:#ffffff;--card-hover:#f0f0f0;--border:#d0d0d0;--fg:#1a1a1a;--fg-muted:#555555;--accent:#ea580c;--accent-dim:rgba(234,88,12,0.1);--accent-hover:#dc2626;--danger:#dc2626;--danger-dim:rgba(220,38,38,0.1);--success:#16a34a;--success-dim:rgba(22,163,74,0.1);--info:#2563eb;--info-dim:rgba(37,99,235,0.1);--shadow:0 4px 24px rgba(0,0,0,0.08)}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font-main);background:var(--bg);color:var(--fg);min-height:100vh;overflow-x:hidden}
body::before{content:'';position:fixed;top:-200px;left:-200px;width:600px;height:600px;background:radial-gradient(circle,rgba(249,115,22,0.06) 0%,transparent 70%);pointer-events:none;z-index:0}
body::after{content:'';position:fixed;bottom:-300px;right:-200px;width:800px;height:800px;background:radial-gradient(circle,rgba(249,115,22,0.04) 0%,transparent 70%);pointer-events:none;z-index:0}
::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--fg-muted)}
.toast-container{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:10000;display:flex;flex-direction:column;align-items:center;gap:10px;pointer-events:none}
.toast{padding:14px 20px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;display:flex;align-items:center;gap:10px;animation:toastIn .4s ease;box-shadow:var(--shadow);max-width:420px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.toast.success{background:rgba(26,46,26,0.72);border:1px solid rgba(45,90,45,0.55);color:var(--success)}.toast.error{background:rgba(46,26,26,0.72);border:1px solid rgba(90,45,45,0.55);color:var(--danger)}.toast.info{background:rgba(26,26,46,0.72);border:1px solid rgba(45,45,90,0.55);color:var(--info)}
.toast.out{animation:toastOut .3s ease forwards}
@keyframes toastIn{from{opacity:0;transform:translateY(24px) scale(0.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes toastOut{from{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(24px) scale(0.97)}}
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.7);z-index:9000;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease;backdrop-filter:blur(4px)}
.modal-overlay.hidden{display:none}
.modal{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:32px;max-width:520px;width:90%;max-height:85vh;overflow-y:auto;animation:modalIn .3s ease;box-shadow:var(--shadow)}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes modalIn{from{opacity:0;transform:scale(0.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}
.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:var(--radius-sm);font-size:14px;font-weight:600;cursor:pointer;border:none;transition:all .2s ease;font-family:inherit;text-decoration:none}
.btn-primary{background:var(--accent);color:#0f0f0f}.btn-primary:hover{background:var(--accent-hover);transform:translateY(-1px)}
.btn-secondary{background:var(--card);color:var(--fg);border:1px solid var(--border)}.btn-secondary:hover{background:var(--card-hover);border-color:var(--fg-muted)}
.btn-danger{background:var(--danger-dim);color:var(--danger);border:1px solid rgba(232,84,84,0.3)}.btn-danger:hover{background:rgba(232,84,84,0.25)}
.btn-success{background:var(--success-dim);color:var(--success);border:1px solid rgba(74,222,128,0.3)}.btn-success:hover{background:rgba(74,222,128,0.25)}
.btn-sm{padding:6px 14px;font-size:13px}.btn-lg{padding:14px 28px;font-size:16px}
.btn:active{transform:scale(0.97)}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}
.form-group{margin-bottom:18px}.form-group label{display:block;font-size:13px;font-weight:600;color:var(--fg-muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}
.form-input{width:100%;padding:11px 14px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--fg);font-size:15px;font-family:inherit;transition:border-color .2s}
.form-input:focus{outline:none;border-color:var(--accent)}.form-input::placeholder{color:var(--fg-muted);opacity:.5}
textarea.form-input{resize:vertical;min-height:80px}select.form-input{cursor:pointer}
.auth-page{min-height:100vh;display:flex;position:relative;z-index:1;overflow:hidden}
.auth-left{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:60px;background:linear-gradient(135deg,#f97316 0%,#ea580c 50%,#c2410c 100%);position:relative;overflow:hidden}
.auth-left::before{content:'';position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at 30% 40%,rgba(255,255,255,0.12) 0%,transparent 50%);pointer-events:none}
.auth-left::after{content:'';position:absolute;bottom:-30%;right:-20%;width:500px;height:500px;background:radial-gradient(circle,rgba(255,255,255,0.08),transparent 70%);border-radius:50%;pointer-events:none}
.auth-brand{position:relative;z-index:1;color:#fff;display:flex;flex-direction:column;align-items:center;width:100%;max-width:300px}
.auth-brand .logo-large{font-family:var(--font-num);font-size:42px;font-weight:800;margin-bottom:8px;letter-spacing:-1px;line-height:1.1;text-align:center}
.auth-brand .logo-large span{opacity:0.85}
.auth-brand .tagline{font-size:18px;opacity:0.85;margin-bottom:48px;font-weight:400;line-height:1.4;text-align:center}
.auth-brand-features{display:flex;flex-direction:column;gap:20px;max-width:280px}
.auth-feature{display:flex;align-items:center;gap:14px;font-size:15px;opacity:0.9}
.auth-feature-icon{width:40px;height:40px;min-width:40px;background:rgba(255,255,255,0.15);border-radius:10px;display:flex;align-items:center;justify-content:center}
.auth-feature-icon svg{width:20px;height:20px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.auth-right{flex:1;display:flex;align-items:center;justify-content:center;padding:60px 40px;background:var(--bg)}
.auth-card{width:100%;max-width:400px;animation:lpAuthFadeUp .6s cubic-bezier(.22,1,.36,1) both}
.auth-card .auth-header{margin-bottom:36px}
.auth-card .auth-header h1{font-family:var(--font-num);font-size:32px;font-weight:700;margin-bottom:8px;letter-spacing:-0.5px}
.auth-card .auth-header p{color:var(--fg-muted);font-size:15px}
.auth-input-group{position:relative;margin-bottom:20px}
.auth-input-group .input-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--fg-muted);font-size:16px;pointer-events:none;transition:color .2s}
.auth-input-group .form-input{padding-left:44px;height:48px;border-radius:12px;font-size:15px}
.auth-input-group .form-input:focus~.input-icon,.auth-input-group:focus-within .input-icon{color:var(--accent)}
.auth-input-group .toggle-pw{position:absolute;right:14px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--fg-muted);cursor:pointer;font-size:14px;padding:4px;transition:color .2s}
.auth-input-group .toggle-pw:hover{color:var(--fg)}
.auth-extras{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;font-size:13px}
.auth-extras label{display:flex;align-items:center;gap:8px;color:var(--fg-muted);cursor:pointer}
.auth-extras label input[type="checkbox"]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}
.auth-extras a{color:var(--accent);text-decoration:none;font-weight:500;transition:opacity .2s}
.auth-extras a:hover{opacity:0.8}
.auth-submit{width:100%;height:48px;border-radius:12px;font-size:15px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s}
.auth-submit:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(249,115,22,0.3)}
.auth-divider{display:flex;align-items:center;gap:16px;margin:24px 0;color:var(--fg-muted);font-size:13px}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:var(--border)}
.auth-social{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px}
.auth-social-btn{height:44px;border-radius:12px;border:1px solid var(--border);background:var(--card);color:var(--fg);font-size:14px;font-weight:500;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:all .2s}
.auth-social-btn:hover{border-color:var(--fg-muted);background:var(--bg-elevated)}
.auth-switch{text-align:center;font-size:14px;color:var(--fg-muted)}
.auth-switch a{color:var(--accent);cursor:pointer;text-decoration:none;font-weight:600;transition:opacity .2s}
.auth-switch a:hover{opacity:0.8}
@media(max-width:900px){
  .auth-left{display:none}
  .auth-page{justify-content:center}
  .auth-right{padding:40px 20px}
}
.auth-card>*{animation:lpAuthFadeUp .5s cubic-bezier(.22,1,.36,1) backwards}
.auth-card>*:nth-child(1){animation-delay:.05s}
.auth-card>*:nth-child(2){animation-delay:.1s}
.auth-card>*:nth-child(3){animation-delay:.15s}
.auth-card>*:nth-child(4){animation-delay:.2s}
.auth-card>*:nth-child(5){animation-delay:.25s}
.auth-card>*:nth-child(6){animation-delay:.3s}
.auth-card>*:nth-child(7){animation-delay:.35s}
.auth-card>*:nth-child(8){animation-delay:.4s}
.auth-card>*:nth-child(9){animation-delay:.45s}
@keyframes lpAuthFadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.auth-card,.auth-card>*{animation:none;opacity:1;transform:none}}

.app-layout{display:flex;min-height:100vh;position:relative}
.sidebar{width:260px;background:var(--bg-elevated);border-right:1px solid var(--border);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100;transition:transform .3s ease,width .3s ease}
.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:24px 20px;border-bottom:1px solid var(--border)}
.sidebar-header .logo{font-family:var(--font-num);font-size:22px;font-weight:700;color:var(--accent)}.sidebar-header .logo span{color:var(--fg)}
.sidebar-collapse-btn{width:32px;height:32px;border:none;background:none;color:var(--fg-muted);cursor:pointer;border-radius:6px;font-size:15px;transition:all .15s;display:flex;align-items:center;justify-content:center}
.sidebar-collapse-btn:hover{color:var(--fg);background:var(--card)}
@media(min-width:769px){
  body.sidebar-collapsed .sidebar{transform:none;width:60px}
  body.sidebar-collapsed .main-content{margin-left:60px}
  body.sidebar-collapsed .sidebar-header{justify-content:center;padding:16px 0}
  body.sidebar-collapsed .sidebar-header .logo{display:none}
  body.sidebar-collapsed .sidebar-nav{display:flex;flex-direction:column;align-items:center;padding:8px 0;gap:2px;overflow-y:auto}
  body.sidebar-collapsed .nav-section{display:flex;flex-direction:column;align-items:center;margin-bottom:12px}
  body.sidebar-collapsed .nav-section-title{display:none}
  body.sidebar-collapsed .nav-item{justify-content:center;width:44px;height:44px;padding:0}
  body.sidebar-collapsed .nav-item i{width:auto;font-size:18px;margin:0}
  body.sidebar-collapsed .nav-label{display:none}
  body.sidebar-collapsed .nav-badge{top:2px;right:2px;min-width:16px;height:16px;font-size:9px;border-radius:8px}
  body.sidebar-collapsed .sidebar-footer{padding:8px 0;display:flex;flex-direction:column;align-items:center;gap:8px}
  body.sidebar-collapsed .user-menu{width:44px}
  body.sidebar-collapsed .user-info{width:44px;height:44px;padding:0;justify-content:center;background:transparent;border-radius:10px}
  body.sidebar-collapsed .user-info:hover{background:var(--card);color:var(--fg)}
  body.sidebar-collapsed .user-info>div:not(.user-avatar){display:none}
  body.sidebar-collapsed .user-menu-caret{display:none}
  body.sidebar-collapsed .user-dropdown{left:52px;right:auto;width:240px}
}
.sidebar-nav{flex:1;padding:16px 12px;overflow-y:auto}
.nav-section{margin-bottom:24px}
.nav-section-title{font-size:11px;font-weight:700;color:var(--fg-muted);text-transform:uppercase;letter-spacing:1px;padding:0 8px;margin-bottom:8px}
.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;color:var(--fg-muted);cursor:pointer;transition:all .15s;border:none;background:none;width:100%;text-align:left;font-family:inherit;position:relative}
.nav-item:hover{background:var(--card);color:var(--fg)}.nav-item.active{background:var(--accent-dim);color:var(--accent)}
.nav-badge{position:absolute;top:6px;right:8px;min-width:18px;height:18px;border-radius:9px;background:var(--danger);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 5px}
.nav-badge.hidden{display:none}
.nav-item i{width:20px;text-align:center;font-size:15px;display:inline-block;line-height:1}
.sidebar-footer{padding:16px 12px;border-top:1px solid var(--border)}
.user-menu{position:relative}
.user-info{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--card);width:100%;cursor:pointer;border:none;font-family:inherit;text-align:left;transition:all .15s}
.user-info:hover{background:var(--accent-dim)}
.user-avatar{width:36px;height:36px;border-radius:50%;background:var(--accent-dim);color:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex-shrink:0}
.user-name{font-size:14px;font-weight:600}.user-role{font-size:11px;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.5px}
.user-menu-caret{margin-left:auto;font-size:11px;color:var(--fg-muted)}
.user-dropdown{position:absolute;bottom:calc(100% + 8px);left:0;right:0;z-index:130;background:var(--card);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);padding:6px;display:flex;flex-direction:column}
.user-dropdown.hidden{display:none}
.user-dropdown-head{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--border);margin-bottom:4px}
.user-dropdown button{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border:none;background:none;color:var(--fg);font-size:13px;font-weight:500;cursor:pointer;border-radius:6px;text-align:left;font-family:inherit}
.user-dropdown button:hover{background:var(--bg-elevated);color:var(--accent)}
.user-dropdown button i{width:16px;text-align:center;color:var(--fg-muted)}
.user-dropdown button:hover i{color:var(--accent)}
.user-dropdown button.signout{color:#f87171}
.user-dropdown button.signout i{color:#f87171}
.user-dropdown button.signout:hover{background:rgba(248,113,113,0.1);color:#f87171}
.user-dropdown-progress{padding:10px 12px;border-bottom:1px solid var(--border);margin-bottom:4px}
.user-dropdown-progress .udp-level{font-family:var(--font-num);font-size:15px;font-weight:700;color:var(--accent)}
.user-dropdown-progress .udp-xp{font-size:11px;color:var(--fg-muted);font-weight:600}
.main-content{margin-left:260px;flex:1;padding:32px;min-height:100vh;overflow-y:auto;overflow-x:hidden;transition:margin-left .3s ease}
.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;flex-wrap:wrap;gap:16px}
.page-header h1{font-family:var(--font-num);font-size:28px;font-weight:700}.page-header p{color:var(--fg-muted);font-size:15px;margin-top:4px}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:28px}
.stat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;transition:border-color .2s}.stat-card:hover{border-color:var(--fg-muted)}
.stat-card .stat-icon{width:40px;height:40px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:16px;margin-bottom:14px}
.stat-card .stat-value{font-family:var(--font-num);font-size:28px;font-weight:700}.stat-card .stat-label{font-size:13px;color:var(--fg-muted);margin-top:4px}
.table-wrap{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.table-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);flex-wrap:wrap;gap:12px}.table-header h3{font-size:16px;font-weight:700}
table{width:100%;border-collapse:collapse}
th{text-align:left;padding:12px 20px;font-size:12px;font-weight:700;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);background:var(--bg-elevated)}
td{padding:14px 20px;font-size:14px;border-bottom:1px solid var(--border)}tr:last-child td{border-bottom:none}tr:hover td{background:rgba(255,255,255,0.02)}
.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:600}
.badge-success{background:var(--success-dim);color:var(--success)}.badge-danger{background:var(--danger-dim);color:var(--danger)}.badge-info{background:var(--info-dim);color:var(--info)}.badge-accent{background:var(--accent-dim);color:var(--accent)}
.courses-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.course-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:all .25s ease;cursor:pointer}
.course-card:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 8px 32px rgba(0,0,0,0.3)}
.course-img{height:160px;background-size:cover;background-position:center;position:relative}
.course-img .price-tag{position:absolute;bottom:12px;right:12px;background:rgba(15,15,15,0.85);backdrop-filter:blur(8px);padding:6px 14px;border-radius:20px;font-weight:700;font-size:16px;color:var(--accent);border:1px solid rgba(249,115,22,0.3)}
.course-body{padding:18px}.course-body .course-cat{font-size:11px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.8px;margin-bottom:8px}
.course-body h3{font-size:17px;font-weight:700;margin-bottom:8px;line-height:1.3}
.course-body .course-desc{font-size:13px;color:var(--fg-muted);line-height:1.5;margin-bottom:14px}
.course-meta{display:flex;align-items:center;gap:16px;font-size:12px;color:var(--fg-muted)}.course-meta span{display:flex;align-items:center;gap:5px}
.payment-method-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:16px;transition:border-color .2s}
.payment-method-card.active-method{border-color:var(--accent)}
.pp-checkout-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;background:#ffc439;border:none;border-radius:999px;padding:13px 24px;cursor:pointer;transition:transform .12s,box-shadow .12s;box-shadow:0 1px 2px rgba(0,0,0,0.2)}
.pp-checkout-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,0.25)}
.pp-checkout-btn:active{transform:translateY(0)}
.pp-checkout-btn .pp-wordmark{font-size:22px;font-weight:800;font-style:italic;color:#003087;font-family:Verdana,Helvetica,Arial,sans-serif;letter-spacing:-.5px;line-height:1}
.pp-checkout-btn .pp-wordmark b{color:#009cde}
.pp-checkout-btn .pp-checkout-tag{font-size:11px;font-weight:700;color:#003087;letter-spacing:.3px;margin-left:2px}
.pp-checkout{overflow:hidden;border-radius:var(--radius);border:1px solid var(--border)}
.pp-checkout .pp-top{background:#0d5c8a;padding:14px 18px;display:flex;align-items:center;justify-content:space-between}
.pp-checkout .pp-top .pp-top-brand{display:flex;align-items:center;gap:10px;color:#fff}
.pp-checkout .pp-top .pp-secure{font-size:12px;color:#cfe3f0;display:flex;align-items:center;gap:6px}
.pp-checkout .pp-body{padding:22px}
.pp-checkout .pp-amount{font-size:24px;font-weight:800;font-family:var(--font-num);color:var(--fg);margin-bottom:4px}
.pp-checkout .pp-for{margin:0 0 20px;font-size:13px;color:var(--fg-muted)}
.pp-checkout .pp-field{margin-bottom:14px}
.pp-checkout .pp-field label{display:block;font-size:12px;font-weight:700;color:var(--fg-muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.04em}
.pp-checkout .pp-field input{width:100%;box-sizing:border-box;padding:12px 14px;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--fg);font-size:14px;font-family:inherit}
.pp-checkout .pp-field input:focus{outline:none;border-color:#009cde}
.pp-paynow-btn{width:100%;background:#0090de;border:none;border-radius:8px;padding:13px;color:#fff;font-size:15px;font-weight:700;cursor:pointer;transition:background .15s}
.pp-paynow-btn:hover{background:#0070ba}
.pp-paynow-btn:disabled{opacity:.7;cursor:not-allowed}
.pp-cancel-link{display:block;text-align:center;margin-top:12px;font-size:12px;color:var(--fg-muted);cursor:pointer}
.pp-processing{text-align:center;padding:18px 0}
.pp-success{text-align:center;padding:14px 0 6px}
.payment-method-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.payment-method-header .method-name{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:700}
.payment-method-header .method-name i{width:36px;height:36px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:15px}
.toggle{width:44px;height:24px;border-radius:12px;background:var(--border);cursor:pointer;position:relative;transition:background .2s;border:none}
.toggle.on{background:var(--accent)}.toggle::after{content:'';position:absolute;width:18px;height:18px;border-radius:50%;background:white;top:3px;left:3px;transition:transform .2s}
.toggle.on::after{transform:translateX(20px)}
.payment-option{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:10px;cursor:pointer;transition:all .15s}
.payment-option:hover{border-color:var(--fg-muted)}.payment-option.selected{border-color:var(--accent);background:var(--accent-dim)}
.payment-option .radio{width:18px;height:18px;border-radius:50%;border:2px solid var(--border);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:border-color .15s}
.payment-option.selected .radio{border-color:var(--accent)}.payment-option.selected .radio::after{content:'';width:10px;height:10px;border-radius:50%;background:var(--accent)}
.payment-option .po-info h4{font-size:14px;font-weight:600}.payment-option .po-info p{font-size:12px;color:var(--fg-muted);margin-top:2px}
.mobile-header{display:none;position:fixed;top:0;left:0;right:0;background:var(--bg-elevated);border-bottom:1px solid var(--border);padding:14px 20px;z-index:200;align-items:center;justify-content:space-between}
body.lp-auth .mobile-header{display:none!important}
.mobile-header .menu-btn{background:none;border:none;color:var(--fg);font-size:20px;cursor:pointer}
.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.6);z-index:99}
@media(max-width:1024px){.mobile-header{display:flex}.sidebar{transform:translateX(-100%)}.sidebar.open{transform:translateX(0)}.sidebar-overlay.open{display:block}.main-content{margin-left:0;padding:80px 16px 32px}.courses-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}.table-wrap{overflow-x:auto}table{min-width:600px}[style*="grid-template-columns:1fr 1fr"]{grid-template-columns:1fr!important}#fbAdminList{column-count:1!important}#mainContent [style*="grid-template-columns:2fr 1fr"],#mainContent [style*="grid-template-columns:1fr 2fr"],#mainContent [style*="grid-template-columns:3fr 1fr"],#mainContent [style*="grid-template-columns:1fr 1fr 1fr"],#mainContent [style*="grid-template-columns:repeat(3,"],#mainContent [style*="grid-template-columns:repeat(2,"]{grid-template-columns:1fr!important}}
.page-section{display:none}.page-section.active{display:block;animation:fadeIn .3s ease}
.empty-state{text-align:center;padding:60px 20px;color:var(--fg-muted)}.empty-state i{font-size:48px;margin-bottom:16px;opacity:.3}.empty-state h3{font-size:18px;color:var(--fg);margin-bottom:8px}

@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(74,222,128,0.4)}50%{box-shadow:0 0 0 6px rgba(74,222,128,0)}}
.progress-bar{height:6px;background:var(--border);border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .5s ease}
.tier-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:20px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}
.tier-badge.free{background:var(--tier-free-dim);color:var(--tier-free)}.tier-badge.medium,.tier-badge.pro{background:var(--tier-medium-dim);color:var(--tier-medium)}.tier-badge.high,.tier-badge.elite{background:var(--tier-high-dim);color:var(--tier-high)}
.paid-tag{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:20px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;background:var(--accent);color:#000;white-space:nowrap;cursor:help}
.lp-paid-tip{display:none;position:fixed;z-index:100000;max-width:240px;width:max-content;padding:9px 12px;border-radius:8px;background:#1a1a1a;border:1px solid var(--border);box-shadow:0 10px 28px rgba(0,0,0,.55);font-size:11px;font-weight:500;line-height:1.5;color:var(--fg);text-align:center;pointer-events:none}
.gd-icon .fa-lock-open{color:var(--success)}.nv-play .fa-lock-open{color:var(--success)}
.topic-tag{display:inline-block;padding:2px 8px;background:var(--accent-dim);color:var(--accent);border-radius:12px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;margin:2px;white-space:nowrap}
.gd-topics{display:flex;flex-wrap:wrap;gap:4px;margin-top:10px;overflow:hidden;max-height:50px}
.sub-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-bottom:32px}
.sub-plan{background:var(--card);border:2px solid var(--border);border-radius:var(--radius);padding:28px;position:relative;transition:all .3s ease;cursor:pointer}
.sub-plan:hover{border-color:var(--fg-muted);transform:translateY(-2px)}.sub-plan.current{border-color:var(--accent)}
.sub-plan.current::after{content:'Current Plan';position:absolute;top:-12px;right:20px;background:var(--accent);color:#0f0f0f;padding:4px 12px;border-radius:20px;font-size:11px;font-weight:700}
.sub-plan .plan-name{font-family:var(--font-num);font-size:22px;font-weight:700;margin-bottom:6px}
.sub-plan .plan-price{font-family:var(--font-num);font-size:32px;font-weight:700;color:var(--accent);margin-bottom:4px}
.sub-plan .plan-price span{font-size:14px;color:var(--fg-muted);font-weight:400}
.sub-plan .plan-desc{font-size:13px;color:var(--fg-muted);margin-bottom:20px}
.sub-plan .plan-features{list-style:none;margin-bottom:24px}.sub-plan .plan-features li{padding:6px 0;font-size:13px;color:var(--fg-muted);display:flex;align-items:center;gap:8px}
.sub-plan .plan-features li i{color:var(--success);font-size:12px}.sub-plan .plan-features li.disabled{opacity:.4}.sub-plan .plan-features li.disabled i{color:var(--fg-muted)}
.locked-overlay{position:relative;pointer-events:none;user-select:none}
.locked-overlay::after{content:'';position:absolute;inset:0;background:rgba(15,15,15,0.7);border-radius:var(--radius);display:flex;align-items:center;justify-content:center}
.locked-msg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px 24px;text-align:center;z-index:2;pointer-events:auto}
.locked-msg i{font-size:24px;color:var(--accent);margin-bottom:8px;display:block}.locked-msg p{font-size:13px;color:var(--fg-muted);margin-bottom:12px}
.locked-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px 22px;min-height:170px;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;overflow:hidden;background:#171717;transition:border-color .2s,transform .2s}
.locked-card:hover{border-color:var(--accent);transform:translateY(-2px)}
.locked-card .lc-preview{position:absolute;inset:0;background-size:cover;background-position:center;filter:blur(20px) brightness(.45) saturate(1.1);transform:scale(1.3);pointer-events:none}
.locked-card .lc-overlay{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%}
.locked-card .lock-ic{width:50px;height:50px;border-radius:50%;background:rgba(249,115,22,0.22);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:20px;margin-bottom:12px;backdrop-filter:blur(2px)}
.locked-card .lock-tier{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:#fff;margin-bottom:6px;text-shadow:0 1px 4px rgba(0,0,0,.6)}
.locked-card .lock-title{font-size:14px;font-weight:700;color:#fff;margin-bottom:14px;text-shadow:0 1px 4px rgba(0,0,0,.6)}
.locked-card.lp-compact{padding:10px 12px;min-height:88px}
.locked-card.lp-compact .lc-preview{filter:blur(14px) brightness(.45) saturate(1.1)}
.locked-card.lp-compact .lock-ic{width:34px;height:34px;font-size:15px;margin-bottom:6px}
.locked-card.lp-compact .lock-tier{font-size:10px;margin-bottom:3px}
.locked-card.lp-compact .lock-title{font-size:11.5px;margin-bottom:8px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.locked-card.lp-compact .btn-sm{font-size:11px;padding:4px 12px}
.lp-lock-remove-btn{position:absolute;top:8px;right:8px;z-index:3;background:rgba(0,0,0,0.5);border:none;color:var(--fg-muted);cursor:pointer;font-size:12px;width:24px;height:24px;border-radius:6px;line-height:1;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(2px)}
.lp-lock-remove-btn:hover{color:#fff;background:rgba(0,0,0,0.7)}
.discovery-header{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:28px;margin-bottom:24px;text-align:center}
.discovery-header h1{font-family:var(--font-num);font-size:26px;font-weight:700;margin-bottom:6px}
.discovery-header p{color:var(--fg-muted);font-size:14px;margin-bottom:20px}
.discovery-search{max-width:680px;margin:0 auto;display:flex;gap:0;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:border-color .2s}
.discovery-search:focus-within{border-color:var(--accent)}
.discovery-search input{flex:1;background:none;border:none;color:var(--fg);font-size:15px;padding:14px 18px;font-family:inherit;outline:none}.discovery-search input::placeholder{color:var(--fg-muted)}
.discovery-search button{background:var(--accent);color:#0f0f0f;border:none;padding:14px 24px;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;transition:background .2s;display:flex;align-items:center;gap:8px;white-space:nowrap}
.discovery-search button:hover{background:var(--accent-hover)}
.filter-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:20px;padding:14px 18px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius)}
.filter-bar label{font-size:11px;font-weight:700;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}
.filter-bar select,.filter-bar input{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--fg);padding:7px 10px;font-size:13px;font-family:inherit}
.filter-bar select:focus,.filter-bar input:focus{outline:none;border-color:var(--accent)}
.filter-divider{width:1px;height:24px;background:var(--border);flex-shrink:0}
.sort-bar{display:flex;align-items:center;gap:6px;margin-left:auto}
.sort-btn{padding:6px 12px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;border:1px solid var(--border);background:var(--card);color:var(--fg-muted);transition:all .15s;font-family:inherit;white-space:nowrap}
.sort-btn:hover{border-color:var(--fg-muted);color:var(--fg)}.sort-btn.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}
.section-divider{display:flex;align-items:center;gap:12px;margin:28px 0 18px;padding-bottom:0}
.section-divider h2{font-family:var(--font-num);font-size:18px;font-weight:700;display:flex;align-items:center;gap:8px;white-space:nowrap}
.section-divider .sd-line{flex:1;height:1px;background:var(--border)}.section-divider .sd-count{font-size:12px;color:var(--fg-muted);font-weight:500;white-space:nowrap}
.result-card{display:flex;gap:0;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:all .25s;margin-bottom:14px}
.result-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 6px 24px rgba(0,0,0,0.3)}
.result-card .rc-thumb{width:220px;min-height:150px;background-size:cover;background-position:center;flex-shrink:0;position:relative}
.result-card .rc-thumb .rc-type-badge{position:absolute;top:10px;left:10px;padding:3px 10px;border-radius:4px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}
.result-card .rc-body{flex:1;padding:18px 20px;display:flex;flex-direction:column;min-width:0}
.result-card .rc-title{font-size:16px;font-weight:700;line-height:1.3;cursor:pointer;transition:color .15s}.result-card .rc-title:hover{color:var(--accent)}
.result-card .rc-desc{font-size:13px;color:var(--fg-muted);line-height:1.55;margin-bottom:10px;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.result-card .rc-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--fg-muted);margin-bottom:10px}.result-card .rc-meta span{display:flex;align-items:center;gap:4px}.result-card .rc-meta i{font-size:11px}
.rc-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.rc-tag{padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}
.rc-tag.video{background:rgba(255,0,0,0.12);color:#ff5555}.rc-tag.docs{background:rgba(96,165,250,0.12);color:var(--info)}.rc-tag.article{background:rgba(249,115,22,0.12);color:var(--accent)}.rc-tag.interactive{background:rgba(74,222,128,0.12);color:var(--success)}.rc-tag.playlist{background:rgba(168,85,247,0.12);color:#a855f7}
.rc-tag.beginner{background:var(--success-dim);color:var(--success)}.rc-tag.intermediate{background:var(--info-dim);color:var(--info)}.rc-tag.advanced{background:var(--danger-dim);color:var(--danger)}
.rc-rating{display:flex;align-items:center;gap:8px}
.rating-stars{display:inline-flex;align-items:center;gap:2px;font-size:13px;line-height:1}.rating-stars .star{color:var(--border)}.rating-stars .star.filled{color:var(--accent)}.star-half{position:relative;display:inline-flex;line-height:1}.star-half .star.filled{position:absolute;inset:0;clip-path:inset(0 50% 0 0)}
.rating-score{font-size:13px;font-weight:700;color:var(--accent)}.rating-explain{font-size:11px;color:var(--fg-muted);font-style:italic;max-width:400px}
.rc-actions{display:flex;gap:8px;margin-top:auto;padding-top:12px}.rc-actions .btn{font-size:12px;padding:7px 14px}
.results-count-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;font-size:13px;color:var(--fg-muted)}.results-count-bar strong{color:var(--fg)}
.no-results{text-align:center;padding:60px 20px;color:var(--fg-muted)}.no-results i{font-size:48px;margin-bottom:16px;opacity:.3;display:block}.no-results h3{font-size:18px;color:var(--fg);margin-bottom:8px}
.learning-path{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:24px}
.learning-path h3{font-size:15px;font-weight:700;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.learning-path .lp-steps{display:flex;gap:0;align-items:center;flex-wrap:wrap}
.learning-path .lp-step{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--fg-muted)}
.learning-path .lp-step .step-num{width:22px;height:22px;border-radius:50%;background:var(--accent-dim);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;flex-shrink:0}
.learning-path .lp-arrow{color:var(--border);margin:0 6px;font-size:10px}
.section-header-docs{background:linear-gradient(135deg,rgba(96,165,250,0.08) 0%,rgba(96,165,250,0.02) 100%);border:1px solid rgba(96,165,250,0.15);border-radius:var(--radius);padding:20px 24px;margin-bottom:16px;display:flex;align-items:center;justify-content:space-between}
.section-header-docs h2{font-family:var(--font-num);font-size:18px;font-weight:700;display:flex;align-items:center;gap:10px;margin:0}
.section-header-docs .section-icon{width:36px;height:36px;border-radius:var(--radius-sm);background:rgba(96,165,250,0.15);color:var(--info);display:flex;align-items:center;justify-content:center;font-size:16px}
.section-header-docs .section-stats{display:flex;gap:16px;font-size:12px;color:var(--fg-muted)}.section-header-docs .section-stats span{display:flex;align-items:center;gap:4px}
.section-header-video{background:linear-gradient(135deg,rgba(255,68,68,0.08) 0%,rgba(255,68,68,0.02) 100%);border:1px solid rgba(255,68,68,0.15);border-radius:var(--radius);padding:20px 24px;margin-bottom:16px;display:flex;align-items:center;justify-content:space-between}
.section-header-video h2{font-family:var(--font-num);font-size:18px;font-weight:700;display:flex;align-items:center;gap:10px;margin:0}
.section-header-video .section-icon{width:36px;height:36px;border-radius:var(--radius-sm);background:rgba(255,68,68,0.15);color:#ff4444;display:flex;align-items:center;justify-content:center;font-size:16px}
.section-header-video .section-stats{display:flex;gap:16px;font-size:12px;color:var(--fg-muted)}.section-header-video .section-stats span{display:flex;align-items:center;gap:4px}
.netflix-video-card{min-width:300px;max-width:340px;flex-shrink:0;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;cursor:pointer;transition:all .3s cubic-bezier(0.16,1,0.3,1);position:relative}
.netflix-video-card:hover{border-color:rgba(255,68,68,0.4);transform:scale(1.05) translateY(-4px);box-shadow:0 12px 40px rgba(0,0,0,0.5);z-index:10}
.netflix-video-card .nv-thumb{height:170px;background-size:cover;background-position:center;position:relative}
.netflix-video-card .nv-thumb::after{content:'';position:absolute;bottom:0;left:0;right:0;height:60%;background:linear-gradient(transparent,rgba(0,0,0,0.8));pointer-events:none}
.netflix-video-card .nv-duration{position:absolute;bottom:10px;right:10px;background:rgba(0,0,0,0.85);padding:3px 10px;border-radius:4px;font-size:11px;font-weight:600;z-index:2}
.netflix-video-card .nv-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s;z-index:2}
.netflix-video-card:hover .nv-play{opacity:1}
.netflix-video-card .nv-play i{width:56px;height:56px;border-radius:50%;background:rgba(255,68,68,0.9);color:white;display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:0 4px 20px rgba(255,68,68,0.4)}
.netflix-video-card .nv-info{padding:14px 16px}.netflix-video-card .nv-info h4{font-size:14px;font-weight:600;line-height:1.4;margin-bottom:6px;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.netflix-video-card .nv-info .nv-desc{font-size:12px;color:var(--fg-muted);line-height:1.5;margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.netflix-video-card .nv-meta{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--fg-muted);margin-bottom:8px}
.netflix-video-card .nv-rating{display:flex;align-items:center;gap:6px}.netflix-video-card .nv-rating .rating-stars{font-size:11px}
.netflix-video-card .nv-tags{display:flex;gap:6px;margin-top:8px}.netflix-video-card .nv-tags span{padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}
.nv-ai-summary{display:flex;align-items:flex-start;gap:6px;font-size:11px;line-height:1.45;color:#a78bfa;background:rgba(167,139,250,0.08);border:1px solid rgba(167,139,250,0.22);border-radius:8px;padding:7px 10px;margin-top:8px}.nv-ai-summary i{margin-top:2px;font-size:11px}
.ai-picks-section{margin-bottom:24px}.ai-picks-section .netflix-video-card{min-width:280px;max-width:300px;flex-shrink:0}
.online-course-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;cursor:pointer;transition:all .25s;display:flex;flex-direction:column}
.online-course-card:hover{border-color:#facc15;transform:translateY(-2px);box-shadow:0 6px 24px rgba(0,0,0,0.3)}
.online-course-card .oc-thumb{height:130px;background-size:cover;background-position:center;position:relative;border-bottom:1px solid var(--border)}
.online-course-card .oc-fav{position:absolute;bottom:-16px;left:16px;width:34px;height:34px;border-radius:8px;background:var(--card);border:2px solid var(--border);display:flex;align-items:center;justify-content:center;overflow:hidden}
.online-course-card .oc-fav img{width:22px;height:22px;object-fit:contain}
.online-course-card .oc-info{padding:20px 16px 14px;display:flex;flex-direction:column;gap:8px;flex:1}
.online-course-card .oc-top{display:flex;align-items:flex-start;gap:8px;justify-content:space-between}
.online-course-card .oc-top h4{font-size:14px;font-weight:600;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.oc-ai-summary{display:flex;align-items:flex-start;gap:6px;font-size:11.5px;line-height:1.5;color:#fde68a;background:rgba(250,204,21,0.08);border:1px solid rgba(250,204,21,0.25);border-radius:8px;padding:7px 9px;margin-top:7px}
.oc-ai-summary i{margin-top:2px;font-size:11px;color:#facc15}
.online-course-card .oc-foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:4px}
.online-course-card .oc-cta{font-size:11px;font-weight:600;color:#facc15;display:flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid rgba(250,204,21,0.4);border-radius:6px}
.online-course-card:hover .oc-cta{background:rgba(250,204,21,0.12)}
.oc-card .oc-fav{position:absolute;bottom:8px;left:8px;width:30px;height:30px;border-radius:7px;background:var(--card);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;z-index:2;overflow:hidden}
.oc-card .oc-fav img{width:18px;height:18px;object-fit:contain}
.oc-card .oc-ext{position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:50%;background:rgba(0,0,0,.75);color:#facc15;display:flex;align-items:center;justify-content:center;font-size:12px;z-index:2}
.oc-card .oc-avatar{background:var(--bg-elevated);border:1px solid var(--border);display:flex;align-items:center;justify-content:center}
.oc-card .oc-avatar img{width:22px;height:22px;border-radius:50%;object-fit:cover}
.oc-card .oc-visit{font-size:11px;font-weight:600;color:#facc15;display:inline-flex;align-items:center;gap:6px;margin-top:8px}
.oc-card:hover .oc-visit{text-decoration:underline}
.channel-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;cursor:pointer;transition:all .25s;display:flex;flex-direction:column;min-width:220px;max-width:240px;flex-shrink:0;padding:16px;gap:8px}
.channel-card:hover{border-color:#22d3ee;transform:translateY(-2px);box-shadow:0 6px 24px rgba(0,0,0,0.3)}
.channel-card .cc-top{display:flex;align-items:center;gap:12px}
.channel-card .cc-avatar{width:52px;height:52px;border-radius:50%;background-size:cover;background-position:center;flex-shrink:0;border:2px solid rgba(34,211,238,0.4)}
.channel-card .cc-head h4{font-size:13px;font-weight:600;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.channel-card .cc-handle{font-size:11px;color:var(--fg-muted)}
.channel-card .cc-subs{font-size:11px;color:#22d3ee;display:flex;align-items:center;gap:6px}
.channel-card .nv-desc{font-size:11px;color:var(--fg-muted);line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.channel-card .cc-foot{margin-top:auto;padding-top:4px;display:flex;align-items:center;justify-content:space-between}
.channel-card .cc-foot .nv-rating{display:flex;align-items:center;gap:6px}.channel-card .cc-foot .rating-stars{font-size:11px}
.channel-card .cc-cta{font-size:11px;font-weight:600;color:#22d3ee;display:flex;align-items:center;gap:6px}
.github-doc-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;cursor:pointer;transition:all .25s;display:flex;gap:0}
.github-doc-card:hover{border-color:var(--info);transform:translateY(-2px);box-shadow:0 6px 24px rgba(0,0,0,0.3)}
.github-doc-card .gd-icon{width:60px;min-height:100%;flex-shrink:0;background:rgba(96,165,250,0.08);display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--info);border-right:1px solid var(--border)}
.github-doc-card .gd-body{flex:1;padding:16px 20px}.github-doc-card .gd-body h3{font-size:15px;font-weight:700;margin-bottom:6px;transition:color .15s}
.github-doc-card:hover .gd-body h3{color:var(--info)}
.github-doc-card .gd-body p{font-size:13px;color:var(--fg-muted);line-height:1.5;margin-bottom:10px;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.github-doc-card .gd-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;font-size:12px;color:var(--fg-muted)}.github-doc-card .gd-meta span{display:flex;align-items:center;gap:4px;white-space:nowrap}
.github-doc-card .gd-rating{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}
.github-doc-card .gd-rating .rating-explain{font-size:11px;color:var(--fg-muted);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.source-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}
.source-tag.youtube{background:rgba(255,0,0,0.15);color:#ff4444}.source-tag.docs{background:rgba(96,165,250,0.15);color:var(--info)}.source-tag.tutorial{background:rgba(74,222,128,0.15);color:var(--success)}.source-tag.article{background:rgba(249,115,22,0.15);color:var(--accent)}
.category-pills{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}
.category-pill{padding:8px 16px;border-radius:20px;font-size:13px;font-weight:600;cursor:pointer;border:1px solid var(--border);background:var(--card);color:var(--fg-muted);transition:all .2s;font-family:inherit;display:flex;align-items:center;gap:6px}
.category-pill:hover{border-color:var(--accent);color:var(--fg);background:var(--accent-dim)}.category-pill.active{background:var(--accent);color:#0f0f0f;border-color:var(--accent)}
.category-pill i{font-size:14px}
.quick-suggestions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px;justify-content:center}
.quick-suggestion{padding:6px 14px;border-radius:16px;font-size:12px;font-weight:500;cursor:pointer;border:1px solid var(--border);background:rgba(255,255,255,0.03);color:var(--fg-muted);transition:all .15s;font-family:inherit}
.quick-suggestion:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}
.duration-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600;background:var(--bg-elevated);color:var(--fg-muted)}
.empty-search-state{text-align:center;padding:80px 20px;color:var(--fg-muted)}.empty-search-state .empty-icon{width:80px;height:80px;border-radius:50%;background:var(--accent-dim);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:32px;margin:0 auto 20px}
.empty-search-state h3{font-size:20px;color:var(--fg);margin-bottom:8px}.empty-search-state p{font-size:14px;max-width:400px;margin:0 auto 24px;line-height:1.6}
.topic-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.topic-tag{padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;background:var(--bg-elevated);color:var(--fg-muted)}
.category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-bottom:28px}
.category-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;text-align:center;cursor:pointer;transition:all .2s;position:relative}
.category-card:hover{border-color:var(--accent);transform:translateY(-2px)}.category-card i{font-size:28px;margin-bottom:10px;display:block;color:var(--accent)}
.category-card h4{font-size:14px;font-weight:600;margin-bottom:4px}.category-card p{font-size:11px;color:var(--fg-muted)}
.category-card .cat-count{position:absolute;top:10px;right:10px;background:var(--accent-dim);color:var(--accent);padding:2px 8px;border-radius:10px;font-size:10px;font-weight:700}
.sub-status-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin-bottom:24px}
.sub-status-card .sub-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}.sub-status-card .sub-row:last-child{border-bottom:none}
.sub-status-card .sub-row .label{font-size:13px;color:var(--fg-muted)}.sub-status-card .sub-row .value{font-size:14px;font-weight:600}
/* Account & subscription surfaces (Settings + Subscription pages) */
.acct-hero{display:flex;align-items:center;gap:18px;flex-wrap:wrap;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:22px 24px;margin-bottom:20px;position:relative;overflow:hidden}
.acct-hero::after{content:'';position:absolute;top:-60px;right:-40px;width:220px;height:220px;background:radial-gradient(circle,var(--accent-dim) 0%,transparent 70%);pointer-events:none}
.acct-hero-avatar{width:64px;height:64px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-num);font-size:26px;font-weight:700;color:#0f0f0f;background:linear-gradient(135deg,var(--accent),#fb923c);box-shadow:0 4px 18px rgba(249,115,22,0.28)}
.acct-hero-main{flex:1;min-width:200px}
.acct-hero-main h2{font-family:var(--font-num);font-size:22px;font-weight:700;margin-bottom:3px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.acct-hero-main .acct-hero-email{font-size:13px;color:var(--fg-muted)}
.acct-hero-meta{display:flex;gap:18px;flex-wrap:wrap;margin-top:10px}
.acct-hero-meta div{font-size:12px;color:var(--fg-muted)}
.acct-hero-meta div strong{display:block;font-size:14px;font-weight:700;color:var(--fg);margin-top:2px}
.acct-tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:22px;overflow-x:auto;scrollbar-width:none}
.acct-tabs::-webkit-scrollbar{display:none}
.acct-tabs .yt-analytics-tab{white-space:nowrap;display:flex;align-items:center;gap:7px}
.acct-tabs .yt-analytics-tab.danger{color:var(--danger)}
.acct-tabs .yt-analytics-tab.danger.active{color:var(--danger);border-bottom-color:var(--danger)}
.acct-section{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:22px 24px;margin-bottom:20px}
.acct-section > h3{font-size:15px;font-weight:700;margin-bottom:4px;display:flex;align-items:center;gap:9px}
.acct-section > h3 i{color:var(--accent);font-size:13px}
.acct-section > .acct-section-hint{font-size:12.5px;color:var(--fg-muted);margin-bottom:18px;line-height:1.55}
.acct-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0 20px}
.acct-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:4px}
.acct-danger{border-color:rgba(232,84,84,0.4)}
.acct-danger > h3 i{color:var(--danger)}
.acct-danger-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:14px 0;border-bottom:1px solid var(--border)}
.acct-danger-row:last-child{border-bottom:none;padding-bottom:0}
.acct-danger-row .adr-text h4{font-size:13.5px;font-weight:600;margin-bottom:3px}
.acct-danger-row .adr-text p{font-size:12px;color:var(--fg-muted);line-height:1.55;max-width:520px}
.acct-empty{text-align:center;padding:34px 20px;color:var(--fg-muted)}
.acct-empty i{font-size:30px;color:var(--border);margin-bottom:10px;display:block}
.acct-empty p{font-size:13px}

/* Billing history cards - modern card-based layout */
.bill-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.bill-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:box-shadow .2s,transform .2s}
.bill-card:hover{box-shadow:0 8px 24px rgba(0,0,0,.12);transform:translateY(-2px)}
.bill-card.sm{padding:14px}
.bill-card-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border);background:var(--bg-elevated)}
.bill-card-head .tier-badge{font-size:11px}
.bill-card-body{padding:14px 16px;display:flex;flex-direction:column;gap:8px}
.bill-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:4px 0;font-size:13px}
.bill-label{font-size:11px;font-weight:600;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0;min-width:70px}
.bill-value{font-weight:600;color:var(--fg);text-align:right}
.bill-value.money{color:var(--accent);font-family:var(--font-num);font-size:14px}
.recent-billing-timeline{display:flex;flex-direction:column;gap:16px}
.recent-billing-timeline .bill-card.sm{position:relative;padding-left:28px}
.recent-billing-timeline .bill-card.sm::before{content:'';position:absolute;left:11px;top:0;bottom:0;width:2px;background:var(--border)}
.recent-billing-timeline .bill-card.sm:last-child::before{display:none}
.recent-billing-timeline .bill-card.sm .bill-card-head::before{content:'';position:absolute;left:-28px;top:50%;transform:translateY(-50%);width:10px;height:10px;border-radius:50%;background:var(--accent);border:3px solid var(--bg);box-shadow:0 0 0 2px var(--accent);z-index:1}
.recent-billing-timeline .bill-card.sm .bill-card-head{padding:10px 14px}
.recent-billing-timeline .bill-card.sm .bill-card-body{padding:8px 14px;gap:4px}
.recent-billing-timeline .bill-row{gap:8px;padding:2px 0;font-size:12px}
.recent-billing-timeline .bill-label{min-width:60px;font-size:10px}
.recent-billing-timeline .bill-value{font-size:12px}
.recent-billing-timeline .bill-value.money{font-size:13px}

@media(max-width:640px){
  .bill-cards{grid-template-columns:1fr;gap:12px}
  .bill-card{padding:0}
  .bill-card.sm{padding:0}
  .bill-card-head{padding:12px 14px}
  .bill-card-body{padding:12px 14px;gap:6px}
  .bill-row{gap:8px;padding:3px 0;font-size:12px}
  .bill-label{min-width:60px;font-size:10px}
  .bill-value{font-size:12px}
  .bill-value.money{font-size:13px}
}
.acct-table{width:100%;border-collapse:collapse}
.acct-table th{text-align:left;padding:9px 8px;font-size:12px;font-weight:600;color:var(--fg-muted);border-bottom:1px solid var(--border)}
.acct-table td{padding:10px 8px;font-size:13px;border-bottom:1px solid var(--border)}
.acct-table tr:last-child td{border-bottom:none}
@media(max-width:640px){
  .acct-table thead{display:none}
  .acct-table,.acct-table tbody,.acct-table tr,.acct-table td{display:block;width:100%}
  .acct-table tbody{display:flex;flex-direction:column;gap:10px}
  .acct-table tr{background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}
  .acct-table tr:last-child td{border-bottom:1px solid var(--border)}
  .acct-table td{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:6px 0;font-size:13px;border-bottom:1px solid var(--border)}
  .acct-table td:last-child{border-bottom:none}
  .acct-table td::before{content:attr(data-label);font-size:11px;font-weight:600;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0;min-width:70px}
  .acct-table td[data-label="Amount"]{font-weight:700;color:var(--accent)}
  /* Billing history: shorter labels, tighter layout */
  .acct-table td[data-label="Plan"]::before{content:"Plan"}
  .acct-table td[data-label="Period end"]::before{content:"Ends"}
  .acct-table td[data-label="Next due / ended"]::before{content:"Ends"}
}
.active-hero{display:grid;grid-template-columns:1fr 320px;gap:24px;align-items:start;margin-bottom:24px}
.active-hero-main{display:flex;flex-direction:column;gap:20px}
.active-tier-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:100px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.active-plan-name{margin:0;font-size:28px;font-weight:800;color:var(--fg);line-height:1.2}
.active-meta-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.active-meta-item{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}
.active-meta-label{display:block;font-size:11px;font-weight:600;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}
.active-meta-value{font-size:15px;font-weight:600;color:var(--fg)}
.active-meta-value.highlight{color:var(--accent);font-family:var(--font-num);font-size:18px;font-weight:800}
.status-indicator{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:100px;font-size:11px;font-weight:600;text-transform:uppercase}
.status-indicator.active{background:var(--success-dim);color:var(--success)}
.status-indicator.scheduled{background:var(--warning-dim);color:var(--warning)}
.active-progress-section{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:16px}
.active-progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:12px;color:var(--fg-muted)}
.active-progress-pct{font-family:var(--font-num);font-weight:800;color:var(--fg)}
.active-progress-bar{height:8px;background:var(--bg);border-radius:4px;overflow:hidden}
.active-progress-fill{height:100%;border-radius:4px;transition:width .3s ease}
.active-progress-labels{display:flex;justify-content:space-between;margin-top:8px;font-size:11px;color:var(--fg-muted)}
.active-hero-side{display:flex;flex-direction:column;gap:16px}
.active-tier-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;text-align:center}
.active-tier-icon{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;margin:0 auto 12px}
.active-tier-name{font-size:18px;font-weight:800;color:var(--fg);margin-bottom:4px}
.active-tier-price{font-family:var(--font-num);font-size:24px;font-weight:800;color:var(--accent)}
.active-upgrade-btn,.active-downgrade-btn{font-weight:600}
.active-benefits{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:16px}
.active-benefits h4{margin:0 0 12px;font-size:14px;font-weight:700;color:var(--fg);display:flex;align-items:center;gap:8px}
.active-benefits h4 i{color:var(--success)}
.active-benefits-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.active-benefits-list li{font-size:13px;color:var(--fg);display:flex;align-items:center;gap:10px}
.active-benefits-list li i{color:var(--success);font-size:11px}
.active-benefits-list .more-benefits{color:var(--fg-muted);font-size:12px;padding-left:19px}

@media(max-width:640px){
  .active-hero{grid-template-columns:1fr;gap:16px}
  .active-hero-side{order:-1}
  .active-meta-grid{grid-template-columns:1fr}
  .active-plan-name{font-size:22px}
  .active-meta-value.highlight{font-size:16px}
  .active-tier-card{padding:16px}
  .active-tier-icon{width:48px;height:48px;font-size:18px}
  .active-tier-price{font-size:20px}
  .active-progress-section{padding:12px}
  .active-benefits{padding:12px}
}
.acct-warn i{color:var(--danger);font-size:15px;margin-top:2px}
.acct-warn p{font-size:12.5px;line-height:1.6;color:var(--fg)}
.acct-warn ul{margin:8px 0 0 16px;font-size:12.5px;color:var(--fg-muted);line-height:1.7}
@media(max-width:640px){.acct-hero{padding:18px}.acct-section{padding:18px}.modal{padding:24px 18px}}
.fb-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.fb-card .fb-body{padding:20px}
.fb-card .fb-head{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--border);flex-wrap:wrap;gap:10px}
.fb-stars{display:inline-flex;gap:2px;font-size:15px}
.fb-stars i{color:var(--accent)}
.fb-avatar{width:34px;height:34px;border-radius:50%;background:var(--accent-dim);color:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex-shrink:0}
.fb-reply{background:var(--bg-elevated);border-left:3px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin:12px 20px 0;padding:12px 16px}
.fb-reply .fb-reply-label{font-size:11px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}
.fb-reply p{font-size:13px;line-height:1.6;margin:0;white-space:pre-wrap}
.fb-reply .fb-reply-date{font-size:11px;color:var(--fg-muted);margin-top:6px}
.fb-reply-box{display:flex;gap:10px;align-items:flex-start;padding:14px 20px;border-top:1px solid var(--border);flex-wrap:wrap}
.fb-reply-box textarea{flex:1;min-width:200px}
.fb-reply-box .btn{flex-shrink:0}
.fb-suggestion{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all .2s}
.fb-suggestion:hover{border-color:var(--accent);background:var(--accent-dim)}
.fb-suggestion-cat{font-size:10px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.5px}
.fb-suggestion-text{font-size:13px;color:var(--fg);line-height:1.5}

.privacy-content{max-width:800px;margin:0 auto;padding:0 20px}
.privacy-meta{font-size:12px;color:var(--fg-muted);margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border)}
.privacy-section{margin-bottom:32px}
.privacy-section h2{font-size:18px;font-weight:700;color:var(--fg);margin-bottom:12px;display:flex;align-items:center;gap:8px}
.privacy-section h3{font-size:15px;font-weight:600;color:var(--fg);margin:20px 0 8px}
.privacy-section p{font-size:13px;color:var(--fg-muted);line-height:1.7;margin-bottom:12px}
.privacy-section ul{margin:8px 0 12px 20px;list-style:disc}
.privacy-section li{font-size:13px;color:var(--fg-muted);line-height:1.6;margin-bottom:6px}
.privacy-section strong{color:var(--fg)}
.privacy-section a{color:var(--accent);text-decoration:none}
.privacy-section a:hover{text-decoration:underline}

@media(max-width:640px){
  .privacy-content{padding:0 14px}
  .privacy-section h2{font-size:16px}
  .privacy-section p,.privacy-section li{font-size:12px}
}
.kpi-tab:hover{color:var(--fg);background:var(--bg)}
.kpi-tab.active{color:var(--fg);background:var(--accent);color:#0f0f0f;font-weight:600}
.kpi-chart-btn{width:28px;height:28px;border-radius:4px;color:var(--fg-muted);background:transparent;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;transition:all .15s}
.kpi-chart-btn:hover{color:var(--fg)}
.kpi-chart-btn.active{color:var(--fg);background:var(--accent);color:#0f0f0f}
.analytics-tab{font-size:12px;padding:6px 14px;border-radius:4px;color:var(--fg-muted);background:transparent;border:none;cursor:pointer;transition:all .15s;font-weight:500}
.analytics-tab:hover{color:var(--fg);background:var(--bg)}
.analytics-tab.active{color:var(--fg);background:var(--accent);color:#0f0f0f;font-weight:600}
.analytics-period-btn{font-size:11px;padding:4px 10px;border-radius:4px;color:var(--fg-muted);background:transparent;border:none;cursor:pointer;transition:all .15s}
.analytics-period-btn:hover{color:var(--fg);background:var(--bg)}
.analytics-period-btn.active{color:var(--fg);background:var(--accent);color:#0f0f0f;font-weight:600}
.analytics-chart-btn{width:28px;height:28px;border-radius:4px;color:var(--fg-muted);background:transparent;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;transition:all .15s}
.analytics-chart-btn:hover{color:var(--fg)}
.analytics-chart-btn.active{color:var(--fg);background:var(--accent);color:#0f0f0f}
.yt-analytics-tab{font-size:13px;padding:12px 16px;border:none;background:transparent;color:var(--fg-muted);cursor:pointer;border-bottom:2px solid transparent;transition:all .15s;font-weight:500;white-space:nowrap;flex-shrink:0}
.yt-analytics-tab:hover{color:var(--fg);}
.yt-analytics-tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600;}
.yt-date-btn{font-size:12px;padding:6px 14px;border-radius:20px;border:1px solid var(--border);background:transparent;color:var(--fg-muted);cursor:pointer;transition:all .15s;white-space:nowrap}
.yt-date-btn:hover{border-color:var(--fg-muted);color:var(--fg);}
.yt-date-btn.active{background:var(--accent);color:#0f0f0f;border-color:var(--accent);font-weight:600;}
.yt-chart-toggle{width:32px;height:32px;border-radius:50%;border:none;background:transparent;color:var(--fg-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:13px;transition:all .15s;}
.yt-chart-toggle:hover{background:var(--bg);}
.yt-chart-toggle.active{background:var(--accent);color:#0f0f0f;}
.toggle-switch{position:relative;display:inline-block;width:48px;height:26px;cursor:pointer}
.toggle-switch input{opacity:0;width:0;height:0}
.toggle-slider{position:absolute;inset:0;background:var(--border);border-radius:26px;transition:.3s}
.toggle-slider:before{content:'';position:absolute;width:20px;height:20px;left:3px;bottom:3px;background:var(--fg);border-radius:50%;transition:.3s}
.toggle-switch input:checked+.toggle-slider{background:var(--accent)}
.toggle-switch input:checked+.toggle-slider:before{transform:translateX(22px)}
.fp-code-box{background:var(--bg-elevated);border:1px dashed var(--accent);border-radius:12px;padding:14px;text-align:center;font-family:var(--font-num);font-size:26px;font-weight:700;letter-spacing:8px;color:var(--accent);margin-bottom:12px}
.viewer-modal{position:fixed;inset:0;background:var(--bg);z-index:9500;display:flex;flex-direction:column;animation:fadeIn .2s ease;overflow:hidden}
.viewer-modal.hidden{display:none}
.viewer-modal.lp-fs,.viewer-modal:fullscreen,.viewer-modal:-webkit-full-screen{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;border-radius:0;margin:0;z-index:10050;background:var(--bg)}
.viewer-modal.lp-fs .lp-side-panel,.viewer-modal.lp-fs .lp-ai-dock,.viewer-modal.lp-fs .lp-panel-toggle,.viewer-modal.lp-fs .lp-panel-restore,.viewer-modal:fullscreen .lp-side-panel,.viewer-modal:fullscreen .lp-ai-dock,.viewer-modal:fullscreen .lp-panel-toggle,.viewer-modal:fullscreen .lp-panel-restore,.viewer-modal:-webkit-full-screen .lp-side-panel,.viewer-modal:-webkit-full-screen .lp-ai-dock,.viewer-modal:-webkit-full-screen .lp-panel-toggle,.viewer-modal:-webkit-full-screen .lp-panel-restore{display:none}
.viewer-modal.lp-fs .lp-left,.viewer-modal:fullscreen .lp-left,.viewer-modal:-webkit-full-screen .lp-left{flex:1;overflow:hidden}
.viewer-modal.lp-fs .lp-player,.viewer-modal:fullscreen .lp-player,.viewer-modal:-webkit-full-screen .lp-player{flex:1;display:flex;align-items:center;justify-content:center;min-height:0}
.viewer-modal.lp-fs .lp-player-inner,.viewer-modal:fullscreen .lp-player-inner,.viewer-modal:-webkit-full-screen .lp-player-inner{width:100%;height:100%;padding-top:0;display:flex;align-items:center;justify-content:center;background:#000}
.viewer-modal.lp-fs .lp-player-inner iframe,.viewer-modal.lp-fs .lp-player-inner video,.viewer-modal:fullscreen .lp-player-inner iframe,.viewer-modal:fullscreen .lp-player-inner video,.viewer-modal:-webkit-full-screen .lp-player-inner iframe,.viewer-modal:-webkit-full-screen .lp-player-inner video{position:relative;width:100%;height:100%;border:0}
@media(max-width:1024px){.viewer-modal.lp-fs .lp-info-bar,.viewer-modal:fullscreen .lp-info-bar,.viewer-modal:-webkit-full-screen .lp-info-bar{display:none}}
.lesson-page{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}
.lp-topbar{display:flex;align-items:center;gap:12px;padding:10px 20px;background:var(--bg-elevated);border-bottom:1px solid var(--border);flex-shrink:0;z-index:10}
.lp-back{background:none;border:none;color:var(--fg);font-size:18px;cursor:pointer;padding:8px;border-radius:8px;transition:all .15s}
.lp-back:hover{background:var(--card)}
.lp-topbar-title{flex:1;font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lp-topbar-actions{display:flex;gap:4px}
.lp-topbar-actions button{background:none;border:none;color:var(--fg-muted);width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:14px;cursor:pointer;transition:all .15s}
.lp-topbar-actions button:hover{background:var(--card);color:var(--fg)}
.lp-main{display:flex;flex:1;overflow:hidden}
.lp-left{flex:1;display:flex;flex-direction:column;overflow-y:auto;min-width:0}
.lp-player{background:#000;position:relative;width:100%;flex-shrink:0}
.lp-player-inner{position:relative;width:100%;padding-top:56.25%;background:#000}
.lp-player-inner video,.lp-player-inner iframe{position:absolute;inset:0;width:100%;height:100%}
.lp-player-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--fg-muted);gap:12px}
.lp-player-placeholder i{font-size:64px;color:var(--accent);opacity:.5}
.lp-player-placeholder p{font-size:14px}
.lp-controls{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,0.9));padding:0 12px 8px;z-index:5;transition:opacity .3s}
.lp-player:hover .lp-controls{opacity:1}
.lp-progress-bar{width:100%;height:4px;background:rgba(255,255,255,0.2);border-radius:2px;cursor:pointer;margin-bottom:6px;position:relative;transition:height .15s}
.lp-progress-bar:hover{height:6px}
.lp-progress-fill{height:100%;background:var(--accent);border-radius:2px;width:0%;transition:width .1s linear}
.lp-progress-hover{position:absolute;top:0;height:100%;background:rgba(255,255,255,0.3);border-radius:2px;width:0%;pointer-events:none;display:none}
.lp-controls-row{display:flex;align-items:center;justify-content:space-between}
.lp-controls-left,.lp-controls-right{display:flex;align-items:center;gap:6px}
.lp-controls button{background:none;border:none;color:white;width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:13px;cursor:pointer;transition:all .15s}
.lp-controls button:hover{background:rgba(255,255,255,0.15)}
.lp-volume-group{display:flex;align-items:center;gap:4px}
.lp-volume-slider{width:0;opacity:0;transition:all .2s;accent-color:var(--accent)}
.lp-volume-group:hover .lp-volume-slider{width:80px;opacity:1}
.lp-time{font-size:12px;color:rgba(255,255,255,0.8);font-variant-numeric:tabular-nums;white-space:nowrap}
.lp-speed-group button{font-size:12px;font-weight:700;width:auto;padding:0 8px}
#lpCaptionsBtn{font-size:10px;font-weight:700;width:auto;padding:0 6px;border:1px solid rgba(255,255,255,0.3);border-radius:4px}
#lpCaptionsBtn.active{background:var(--accent);color:#000;border-color:var(--accent)}
.lp-shortcuts-overlay{position:absolute;inset:0;background:rgba(0,0,0,0.8);display:flex;align-items:center;justify-content:center;z-index:20}
.lp-shortcuts-overlay.hidden{display:none}
.lp-shortcuts-panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:24px;max-width:360px;width:90%}
.lp-shortcuts-panel h4{font-size:16px;font-weight:700;margin-bottom:16px;font-family:var(--font-num)}
.lp-shortcut{display:flex;justify-content:space-between;padding:6px 0;font-size:13px;color:var(--fg-muted);border-bottom:1px solid var(--border)}
.lp-shortcut:last-child{border-bottom:none}
.lp-shortcut kbd{background:var(--bg-elevated);padding:2px 8px;border-radius:4px;font-family:monospace;font-size:12px;border:1px solid var(--border);color:var(--fg)}
.lp-info-bar{display:flex;align-items:flex-start;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);gap:16px;flex-wrap:wrap}
.lp-info-main h2{font-size:18px;font-weight:700;font-family:var(--font-num);margin-bottom:6px}
.lp-info-meta{display:flex;gap:16px;font-size:12px;color:var(--fg-muted);flex-wrap:wrap}
.lp-info-meta span{display:flex;align-items:center;gap:4px}
.lp-info-actions{display:flex;gap:8px;flex-shrink:0}
.lp-panel-toggle{display:none;width:100%;padding:10px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--fg);font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;margin:0 20px 12px;width:calc(100% - 40px);text-align:center}
.lp-doc-view{display:none}
.lp-doc-mode .lp-player,.lp-doc-mode .lp-info-bar,.lp-doc-mode .lp-panel-toggle,.lp-doc-mode .lp-side-panel{display:none}
.lp-doc-mode .lp-doc-view{display:flex;flex:1;justify-content:center;padding:40px 24px 64px}
.lp-doc-card{max-width:76ch;width:100%;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:40px 48px}
.lp-doc-badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.8px;margin-bottom:16px}
.lp-doc-logo{width:26px;height:26px;border-radius:7px;background:var(--bg-elevated);border:1px solid var(--border);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:4px}
.lp-doc-logo img{width:100%;height:100%;object-fit:contain}
.lp-doc-title{font-family:var(--font-num);font-size:28px;font-weight:700;line-height:1.25;margin-bottom:10px}
.lp-doc-meta{display:flex;gap:16px;font-size:12px;color:var(--fg-muted);flex-wrap:wrap;margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid var(--border)}
.lp-doc-meta span{display:flex;align-items:center;gap:5px}
.lp-doc-summary{display:flex;gap:12px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);padding:18px 20px;margin-bottom:24px}
.lp-doc-summary>i{color:var(--accent);font-size:14px;margin-top:3px;flex-shrink:0}
.lp-doc-summary-label{display:block;font-size:11px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.6px;margin-bottom:6px}
.lp-doc-summary div{font-size:14px;line-height:1.7;color:var(--fg)}
.lp-doc-desc{font-size:14px;line-height:1.7;color:var(--fg-muted);margin-bottom:24px}
.lp-doc-actions{display:flex;gap:10px;flex-wrap:wrap}
.lp-doc-section{margin:0 0 24px}
.lp-doc-section-title{font-family:var(--font-num);font-size:15px;font-weight:700;display:flex;align-items:center;gap:8px;margin-bottom:12px;color:var(--fg)}
.lp-doc-section-title i{color:var(--accent);font-size:13px}
.lp-doc-prose{font-size:14px;line-height:1.75;color:var(--fg);white-space:pre-line}
.lp-doc-generating{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--fg-muted);padding:14px 16px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:24px}
.lp-doc-generating i{color:var(--accent)}
.lp-doc-error{background:rgba(232,84,84,0.08);border-color:rgba(232,84,84,0.25);color:var(--danger)}
.lp-doc-error i{color:var(--danger)}
.lp-doc-err-detail{display:block;font-size:11px;color:var(--fg-muted);margin-top:4px;word-break:break-word}
.lp-doc-notes .lp-notes-textarea{min-height:140px}
@media(max-width:1024px){.lp-doc-card{padding:28px 22px}.lp-doc-title{font-size:22px}.lp-doc-view{padding:20px 14px 48px}}
.lp-playlist{border-top:1px solid var(--border);flex-shrink:0}
.lp-playlist-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--border);background:var(--bg-elevated)}
.lp-playlist-header h3{font-size:14px;font-weight:700;display:flex;align-items:center;gap:8px;font-family:var(--font-num)}
.lp-playlist-header span{font-size:12px;color:var(--fg-muted)}
.lp-playlist-items{max-height:300px;overflow-y:auto}
.lp-playlist-item{display:flex;align-items:center;gap:12px;padding:10px 20px;cursor:pointer;transition:all .15s;border-bottom:1px solid var(--border)}
.lp-playlist-item:hover{background:var(--card)}
.lp-playlist-item.active{background:var(--accent-dim);border-left:3px solid var(--accent)}
.lp-playlist-item.completed{opacity:.7}
.lp-playlist-thumb{width:100px;height:56px;border-radius:6px;background-size:cover;background-position:center;flex-shrink:0;position:relative}
.lp-playlist-thumb .lp-pl-num{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0.5);color:white;font-size:12px;font-weight:700;border-radius:6px}
.lp-playlist-item.completed .lp-playlist-thumb .lp-pl-num{background:var(--success);color:white}
.lp-playlist-info{flex:1;min-width:0}
.lp-playlist-info h4{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lp-playlist-info p{font-size:11px;color:var(--fg-muted);margin-top:2px}
.lp-playlist-dur{font-size:11px;color:var(--fg-muted);flex-shrink:0}
.lp-side-panel{width:380px;background:var(--bg-elevated);border-left:1px solid var(--border);display:flex;flex-direction:row;flex-shrink:0;position:relative;transition:width .3s ease,margin-right .3s ease}
.lp-side-panel.collapsed{width:0;margin-right:-1px;overflow:hidden}
.lp-panel-restore{flex-shrink:0;align-self:center;width:30px;height:72px;border:1px solid var(--border);border-radius:10px;background:var(--bg-elevated);color:var(--fg-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;box-shadow:-2px 0 10px rgba(0,0,0,0.12);transition:all .2s;z-index:6;margin:0 2px}
.lp-panel-restore:hover{color:var(--accent);border-color:var(--accent);background:var(--card)}
.lp-panel-restore.hidden{display:none}
.lp-restore-label{display:none}
.lp-doc-mode .lp-panel-restore{display:none}
.lp-side-panel.dragging{transition:none}
.lp-panel-resize-handle{position:absolute;left:-7px;top:0;bottom:0;width:14px;cursor:ew-resize;z-index:20;touch-action:none}
.lp-panel-resize-handle::after{content:'';position:absolute;left:6px;top:0;bottom:0;width:2px;background:var(--fg-muted);opacity:.25;transition:opacity .15s,background .15s}
.lp-panel-resize-handle::before{content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:3px;height:42px;border-radius:2px;background:var(--fg-muted);opacity:.45;transition:opacity .15s,background .15s}
.lp-panel-resize-handle:hover::after,.lp-panel-resize-handle.dragging::after,.lp-panel-resize-handle:hover::before,.lp-panel-resize-handle.dragging::before{opacity:1;background:var(--accent)}
.lp-panel-body{flex:1;min-width:0;display:flex;flex-direction:column}
.lp-panel-header{display:flex;align-items:center;justify-content:space-between;padding:0 8px 0 14px;height:42px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--bg-elevated)}
.lp-panel-title{font-size:12.5px;font-weight:700;color:var(--fg);display:flex;align-items:center;gap:8px;letter-spacing:.2px;text-transform:uppercase;font-family:var(--font-num)}
.lp-panel-title i{color:var(--accent);font-size:12px}
.lp-hamburger-wrap{position:relative}
.lp-hamburger-btn{width:30px;height:30px;border:none;background:none;color:var(--fg-muted);cursor:pointer;font-size:15px;border-radius:6px;transition:all .15s;display:flex;align-items:center;justify-content:center}
.lp-hamburger-btn:hover{color:var(--fg);background:var(--card)}
.lp-hamburger-menu{position:absolute;top:36px;right:0;z-index:50;min-width:210px;background:var(--card);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);padding:6px;display:flex;flex-direction:column}
.lp-hamburger-menu.hidden{display:none}
.lp-hamburger-menu button{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:none;background:none;color:var(--fg);font-size:13px;font-weight:500;cursor:pointer;border-radius:6px;text-align:left;font-family:inherit}
.lp-hamburger-menu button:hover{background:var(--bg-elevated);color:var(--accent)}
.lp-hamburger-menu button.active{color:var(--accent)}
.lp-hamburger-menu button i{width:16px;text-align:center;color:var(--fg-muted)}
.lp-hamburger-menu button:hover i{color:var(--accent)}
.lp-hamburger-divider{height:1px;background:var(--border);margin:6px 4px}
.lp-panel-content{flex:1;overflow-y:auto;padding:0}
.lp-tab-content{display:none;padding:16px}
.lp-tab-content.active{display:block}
.lp-panel-section{margin-bottom:20px}
.lp-panel-section h4{font-size:13px;font-weight:700;margin-bottom:10px;display:flex;align-items:center;gap:8px;color:var(--fg)}
.lp-panel-section h4 i{color:var(--accent);font-size:12px}
.lp-ai-summary-title{gap:8px}
.lp-ai-summary-logo{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 18px;color:var(--accent);line-height:1}
.lp-panel-section h4 .lp-ai-summary-logo svg{width:18px;height:18px;display:block}
.lp-ai-mark{width:var(--ai-mark-size,16px);height:var(--ai-mark-size,16px);display:inline-flex;align-items:center;justify-content:center;flex:0 0 var(--ai-mark-size,16px);color:var(--accent);line-height:1;vertical-align:-2px}
.lp-ai-mark svg{width:100%;height:100%;display:block}
.lp-ai-mark.on-accent{color:#0f0f0f}
.lp-doc-summary>.lp-ai-mark{margin-top:3px}
.lp-panel-section p{font-size:13px;color:var(--fg-muted);line-height:1.6}
.lp-objectives-list{list-style:none;padding:0;margin:0}
.lp-objectives-list li{padding:6px 0;font-size:13px;color:var(--fg-muted);display:flex;align-items:flex-start;gap:8px;line-height:1.5}
.lp-objectives-list li i{color:var(--success);font-size:11px;margin-top:4px;flex-shrink:0}
.lp-concepts-chips{display:flex;flex-wrap:wrap;gap:6px}
.lp-concepts-chips span{padding:4px 10px;background:var(--card);border:1px solid var(--border);border-radius:16px;font-size:11px;font-weight:600;color:var(--fg-muted)}
.lp-code-block{background:var(--bg);border:1px solid var(--border);border-radius:8px;overflow:hidden}
.lp-code-block pre{margin:0;padding:14px;overflow-x:auto;font-size:12px;line-height:1.6}
.lp-code-block code{font-family:'SF Mono','Fira Code',monospace;color:var(--fg)}
.lp-notes-content{font-size:13px;color:var(--fg-muted);line-height:1.6}
.lp-notes-textarea{width:100%;min-height:200px;background:var(--card);border:1px solid var(--border);border-radius:8px;padding:12px;color:var(--fg);font-size:13px;font-family:inherit;resize:vertical;line-height:1.6}
.lp-notes-textarea:focus{outline:none;border-color:var(--accent)}
.lp-related-list{display:flex;flex-direction:column;gap:8px}
.lp-related-item{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--card);border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:all .15s;font-size:13px}
.lp-related-item:hover{border-color:var(--accent)}
.lp-related-item i{color:var(--accent);font-size:12px}
.lp-progress-circle{width:120px;height:120px;margin:0 auto 16px;position:relative}
.lp-progress-circle svg{width:100%;height:100%;transform:rotate(-90deg)}
.lp-progress-bg{fill:none;stroke:var(--border);stroke-width:6}
.lp-progress-ring{fill:none;stroke:var(--accent);stroke-width:6;stroke-linecap:round;stroke-dasharray:283;stroke-dashoffset:283;transition:stroke-dashoffset .6s ease}
.lp-progress-circle span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-num);font-size:22px;font-weight:700;color:var(--accent)}
.lp-progress-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.lp-progress-stat{padding:10px;background:var(--card);border-radius:8px;text-align:center}
.lp-progress-stat .stat-val{font-family:var(--font-num);font-size:18px;font-weight:700}
.lp-progress-stat .stat-lbl{font-size:11px;color:var(--fg-muted);margin-top:2px}
.lp-completed-list{max-height:200px;overflow-y:auto}
.lp-completed-item{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:12px;color:var(--fg-muted);border-bottom:1px solid var(--border)}
.lp-completed-item:last-child{border-bottom:none}
.lp-completed-item i{color:var(--success);font-size:11px}
/* AI snap dock beside the course panel */
.lp-ai-dock{width:360px;background:var(--bg-elevated);border-left:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;min-width:0;transition:width .3s ease;position:relative}
.lp-ai-dock.dragging{transition:none}
.lp-ai-dock-resize{position:absolute;left:-6px;top:0;bottom:0;width:12px;cursor:ew-resize;z-index:20;touch-action:none}
.lp-ai-dock-resize::after{content:'';position:absolute;left:5px;top:0;bottom:0;width:2px;background:var(--fg-muted);opacity:.25;transition:opacity .15s,background .15s}
.lp-ai-dock-resize::before{content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:3px;height:42px;border-radius:2px;background:var(--fg-muted);opacity:.45;transition:opacity .15s,background .15s}
.lp-ai-dock-resize:hover::after,.lp-ai-dock-resize.dragging::after,.lp-ai-dock-resize:hover::before,.lp-ai-dock-resize.dragging::before{opacity:1;background:var(--accent)}
.lp-ai-dock .ai-edge-handle{display:none}
.lp-ai-dock .ai-resize-grip{display:none}
.ai-resize-grip{position:absolute;right:3px;bottom:3px;width:18px;height:18px;z-index:7;cursor:nwse-resize;touch-action:none;opacity:.55;transition:opacity .15s}
.ai-resize-grip:hover{opacity:1}
.ai-resize-grip::before{content:'';position:absolute;right:3px;bottom:3px;width:9px;height:9px;border-right:2px solid var(--fg-muted);border-bottom:2px solid var(--fg-muted)}
.ai-resize-grip::after{content:'';position:absolute;right:9px;bottom:9px;width:6px;height:6px;border-right:2px solid var(--fg-muted);border-bottom:2px solid var(--fg-muted)}
      /* Summary Panel Styles — split layout: doc viewer left, notes top-right, AI summary bottom-right */
      .lp-summary-page{height:calc(100vh - 64px);display:flex;flex-direction:column;min-height:0;overflow:hidden;box-sizing:border-box}
      .lp-summary-toolbar{flex:1;min-height:0;display:flex;flex-direction:column}
.lp-summary-toolbar h2{font-family:var(--font-num);font-size:28px;font-weight:700;display:flex;align-items:center;gap:8px;color:var(--fg);margin:0 0 28px;flex-shrink:0}
.lp-summary-toolbar h2 i{color:var(--accent);font-size:22px}
.lp-summary-container{display:grid;grid-template-columns:minmax(0,1fr) 10px minmax(0,1fr);grid-template-rows:minmax(0,1fr);gap:0;flex:1;min-height:0;overflow:hidden;box-sizing:border-box}
      .lp-summary-left{grid-column:1;grid-row:1;display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}
      .lp-summary-split-v{grid-column:2;grid-row:1;cursor:col-resize;z-index:3;position:relative}
      .lp-summary-split-v::before{content:'';position:absolute;left:50%;top:12px;bottom:12px;width:1px;transform:translateX(-50%);background:var(--border);transition:background .2s,width .2s}
      .lp-summary-split-v:hover::before,.lp-summary-split-v:active::before{background:var(--accent);width:3px}
      .lp-summary-right{grid-column:3;grid-row:1;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) 10px minmax(0,1fr);gap:0;min-width:0;min-height:0;overflow:hidden}
      .lp-summary-split-h{grid-column:1;grid-row:2;cursor:row-resize;z-index:3;position:relative}
      .lp-summary-split-h::before{content:'';position:absolute;top:50%;left:12px;right:12px;height:1px;transform:translateY(-50%);background:var(--border);transition:background .2s,height .2s}
      .lp-summary-split-h:hover::before,.lp-summary-split-h:active::before{background:var(--accent);height:3px}
      .lp-summary-section{min-height:0;overflow:hidden;display:flex;flex-direction:column;padding:12px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;box-sizing:border-box}
      .lp-summary-notes-pane{grid-column:1;grid-row:1}
      .lp-summary-ai-pane{grid-column:1;grid-row:3}
      .lp-summary-left .lp-summary-section{flex:1}
      .lp-summary-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;flex-shrink:0}
      .lp-summary-header h4{font-size:13px;font-weight:700;display:flex;align-items:center;gap:8px;color:var(--fg);margin:0}
      .lp-summary-header h4 i{color:var(--accent);font-size:12px}
      .lp-summary-header .lp-ai-summary-logo{width:16px;height:16px;flex-basis:16px;color:var(--accent)}
      .lp-summary-header .lp-ai-summary-logo svg{width:16px;height:16px;display:block}
      .lp-summary-controls{display:flex;gap:6px}
      .lp-summary-controls .btn{font-size:11px;padding:4px 8px}
      .lp-summary-doc-viewer{flex:1;min-height:0;background:var(--card);border:1px solid var(--border);border-radius:8px;overflow:hidden;position:relative}
      .lp-summary-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--fg-muted);padding:40px;text-align:center}
      .lp-summary-empty i{font-size:32px;opacity:.5}
      .lp-summary-empty p{font-size:13px;color:var(--fg-muted);margin:8px 0}
      .lp-summary-empty .btn{font-size:12px;padding:6px 12px}
      .lp-summary-doc-content{position:absolute;inset:0}
      .lp-summary-doc-content iframe{width:100%;height:100%;border:none;border-radius:8px;background:#fff}
      .lp-summary-notes-content{flex:1;min-height:0;display:flex;flex-direction:column}
      .lp-summary-notes-textarea{flex:1;min-height:0;width:100%;background:var(--card);border:1px solid var(--border);border-radius:8px;padding:12px;color:var(--fg);font-size:13px;font-family:inherit;resize:none;line-height:1.6;box-sizing:border-box}
      .lp-summary-notes-textarea:focus{outline:none;border-color:var(--accent)}
      .lp-summary-notes-actions{display:flex;gap:8px;margin-top:12px;flex-shrink:0}
      .lp-summary-notes-actions .btn{flex:1}
.lp-summary-ai-content{flex:1;min-height:0;display:flex;flex-direction:column}
      .lp-summary-doc-wrap{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:14px;padding:2px 2px 10px;box-sizing:border-box}
      .lp-summary-doc{width:100%;flex-shrink:0;background:var(--card);border:1px solid var(--border);border-radius:10px;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,0.25)}
      .lp-summary-doc-head{display:flex;align-items:flex-start;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--bg-elevated)}
      .lp-summary-doc-head .lp-ai-mark{width:22px;height:22px;flex-basis:22px;color:var(--accent);margin-top:2px}
      .lp-summary-doc-head .lp-ai-mark svg{width:22px;height:22px;display:block}
      .lp-summary-doc-head-text{min-width:0}
      .lp-summary-doc-head h5{font-size:13px;font-weight:700;color:var(--fg);margin:0}
      .lp-summary-doc-meta{font-size:11px;color:var(--fg-muted);margin:2px 0 0;font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
      .lp-summary-doc-body{padding:18px 22px;font-size:13.5px;line-height:1.75;color:var(--fg);word-break:break-word}
      .lp-summary-doc-body h3,.lp-summary-doc-body h4,.lp-summary-doc-body h5,.lp-summary-doc-body h6{font-weight:700;line-height:1.35;margin:18px 0 8px;color:var(--fg)}
      .lp-summary-doc-body h3{font-size:19px;padding-bottom:6px;border-bottom:1px solid var(--border)}
      .lp-summary-doc-body h4{font-size:16px}
      .lp-summary-doc-body h5{font-size:14px}
      .lp-summary-doc-body h6{font-size:13px;text-transform:uppercase;letter-spacing:.4px;color:var(--accent)}
      .lp-summary-doc-body p{margin:0 0 10px}
      .lp-summary-doc-body ul,.lp-summary-doc-body ol{margin:0 0 10px;padding-left:22px}
      .lp-summary-doc-body li{margin:3px 0}
      .lp-summary-doc-body blockquote{margin:10px 0;padding:10px 14px;border-left:3px solid var(--accent);background:var(--accent-dim);border-radius:0 8px 8px 0}
      .lp-summary-doc-body blockquote p{margin:0}
      .lp-summary-doc-body code{font-family:monospace;font-size:12.5px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:5px;padding:1px 5px}
      .lp-summary-doc-body pre{background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;padding:12px 14px;overflow-x:auto;margin:0 0 10px}
      .lp-summary-doc-body pre code{background:none;border:none;padding:0;font-size:12.5px;line-height:1.6;display:block;white-space:pre-wrap;word-break:break-word}
      .lp-summary-doc-body hr{border:none;border-top:1px solid var(--border);margin:16px 0}
      .lp-summary-doc-body a{color:var(--accent);text-decoration:underline}
      .lp-summary-doc-body strong{font-weight:700}
      .lp-summary-doc-loading{display:flex;align-items:center;gap:10px;color:var(--fg-muted);padding:18px 22px}
      .lp-summary-doc-loading i{color:var(--accent)}
      .lp-summary-doc-error{display:flex;align-items:center;gap:8px;color:var(--danger);padding:14px 16px}
      .lp-summary-doc-error i{font-size:16px;flex-shrink:0}
      .lp-summary-doc-retry{margin-left:8px}
      .lp-summary-chat-input{flex-shrink:0;display:flex;gap:8px;align-items:center;padding-top:10px}
      .lp-summary-chat-input .lp-summary-instruction{margin-bottom:0}
      .lp-summary-instruction{flex:1;min-width:0;padding:8px 10px;background:var(--card);border:1px solid var(--border);border-radius:8px;color:var(--fg);font-size:12px;font-family:inherit;box-sizing:border-box}
      .lp-summary-instruction::placeholder{color:var(--fg-muted);opacity:.8}
      .lp-summary-instruction:focus{outline:none;border-color:var(--accent)}
      .lp-summary-ai-empty{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--fg-muted);padding:30px;text-align:center}
      .lp-summary-ai-empty i{font-size:28px;opacity:.5}
      .lp-summary-ai-empty .lp-ai-mark{width:30px;height:30px;flex-basis:30px;opacity:.5}
.lp-summary-ai-empty p{font-size:13px;color:var(--fg-muted);margin:8px 0}

/* Limit reached modal */
.lp-limit-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.6);z-index:10000;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s}
.lp-limit-modal-overlay.show{opacity:1;visibility:visible}
.lp-limit-modal{background:var(--card);border:1px solid var(--border);border-radius:14px;max-width:420px;width:100%;box-shadow:0 12px 40px rgba(0,0,0,0.5);overflow:hidden;transform:scale(0.95);transition:transform .25s}
.lp-limit-modal-overlay.show .lp-limit-modal{transform:scale(1)}
.lp-limit-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border);background:var(--bg-elevated)}
.lp-limit-header h3{font-size:16px;font-weight:700;color:var(--fg);margin:0;display:flex;align-items:center;gap:8px}
.lp-limit-header h3 i{color:var(--accent)}
.lp-limit-close{background:none;border:none;color:var(--fg-muted);font-size:22px;cursor:pointer;padding:4px;line-height:1;transition:color .2s}
.lp-limit-close:hover{color:var(--fg)}
.lp-limit-body{padding:20px}
.lp-limit-message{font-size:14px;line-height:1.6;color:var(--fg);margin:0 0 20px}
.lp-limit-message strong{color:var(--accent)}
.lp-limit-upgrade h4,.lp-limit-wait h4{font-size:14px;font-weight:700;color:var(--fg);margin:0 0 8px}
.lp-limit-upgrade p,.lp-limit-wait p{font-size:13px;color:var(--fg-muted);margin:0 0 16px}
.lp-limit-upgrade .btn-lg{width:100%;padding:12px 16px;font-size:14px}
.lp-limit-reset{margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}
.lp-limit-countdown{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--fg);margin-bottom:6px}
.lp-limit-countdown i{color:var(--accent);font-size:16px}
.lp-limit-countdown span{font-weight:600;color:var(--accent)}
.lp-limit-hint{font-size:12px;color:var(--fg-muted);margin:0 0 12px}
.lp-limit-reset .btn-secondary{width:100%}

@media(max-width:900px){
        .lp-summary-page{height:auto;overflow:visible}
        .lp-summary-container{grid-template-columns:1fr;grid-template-rows:none;overflow:visible;height:auto}
        .lp-summary-left,.lp-summary-right{grid-column:1;grid-row:auto}
        .lp-summary-right{grid-template-columns:1fr;grid-template-rows:none}
        .lp-summary-notes-pane,.lp-summary-ai-pane{grid-column:1;grid-row:auto}
        .lp-summary-split-v,.lp-summary-split-h{display:none}
        .lp-summary-doc-viewer{min-height:55vh}
        .lp-summary-notes-textarea{min-height:180px}
      }.ai-resize-grip:hover::before,.ai-resize-grip:hover::after{border-color:var(--accent)}
.lp-ai-dock.hidden{display:none}
.lp-ai-dock .ai-chat-window{position:static;width:100%;height:100%;max-width:none;max-height:none;border:none;border-radius:0;box-shadow:none;display:flex;flex-direction:column;transform:none;opacity:1;pointer-events:auto}
.lp-ai-dock .ai-chat-window.minimized{display:none}
.lp-ai-dock .ai-fab{display:none!important}
.lp-doc-mode .lp-ai-dock{display:none}
.lp-doc-mode #lpAIDockBtn{display:none}
.ai-snap-btn{display:none}
#viewerModal:not(.hidden) ~ #aiWidget .ai-snap-btn{display:inline-flex}
#viewerModal.ai-docked .lp-ai-dock .ai-snap-btn{display:inline-flex}
.ai-snap-btn.active,.lp-topbar-actions button.active{background:var(--accent-dim);color:var(--accent)}
.lp-player.theater .lp-player-inner{padding-top:0;height:70vh}
.lp-player.theater{position:fixed;inset:0;z-index:9600;background:#000}
.lp-player.theater .lp-controls{opacity:1}
#lpYtContainer{position:absolute;inset:0;width:100%;height:100%}
#lpYtContainer iframe{width:100%!important;height:100%!important}
#lpTabPlaylist .lp-playlist-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s;border-bottom:1px solid var(--border);font-size:13px}
#lpTabPlaylist .lp-playlist-item:hover{background:var(--card)}
#lpTabPlaylist .lp-playlist-item.active{background:var(--accent-dim);border-left:3px solid var(--accent)}
#lpTabPlaylist .lp-playlist-item.completed{opacity:.7}
#lpTabPlaylist .lp-pl-thumb{width:80px;height:45px;border-radius:6px;background-size:cover;background-position:center;flex-shrink:0;position:relative}
#lpTabPlaylist .lp-pl-thumb .lp-pl-num{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0.5);color:white;font-size:11px;font-weight:700;border-radius:6px}
#lpTabPlaylist .lp-playlist-item.completed .lp-pl-thumb .lp-pl-num{background:var(--success);color:white}
#lpTabPlaylist .lp-pl-info{flex:1;min-width:0}
#lpTabPlaylist .lp-pl-info h4{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}
#lpTabPlaylist .lp-pl-info p{font-size:10px;color:var(--fg-muted);margin:2px 0 0}
#lpTabPlaylist .lp-pl-dur{font-size:10px;color:var(--fg-muted);flex-shrink:0}
#lpTabPlaylist .lp-playlist-item.external{background:rgba(250,204,21,0.05);border:1px dashed rgba(250,204,21,0.3);border-bottom:1px dashed rgba(250,204,21,0.3)}
#lpTabPlaylist .lp-playlist-item.external:hover{background:rgba(250,204,21,0.1)}
#lpTabPlaylist .lp-playlist-item.external.active{border-left:3px solid var(--accent);background:var(--accent-dim)}
#lpTabPlaylist .lp-playlist-item.external .lp-pl-thumb .lp-pl-num{background:rgba(0,0,0,0.6);color:#facc15}
#lpTabPlaylist .lp-playlist-item.completed.external .lp-pl-thumb .lp-pl-num{background:var(--success);color:white}
#lpTabPlaylist .lp-playlist-item.playlist{background:rgba(34,211,238,0.05);border:1px dashed rgba(34,211,238,0.35);border-bottom:1px dashed rgba(34,211,238,0.35)}
#lpTabPlaylist .lp-playlist-item.playlist:hover{background:rgba(34,211,238,0.1)}
#lpTabPlaylist .lp-playlist-item.playlist.active{border-left:3px solid var(--accent);background:var(--accent-dim)}
#lpTabPlaylist .lp-playlist-item.playlist .lp-pl-thumb .lp-pl-num{background:rgba(0,0,0,0.6);color:#22d3ee}
#lpTabPlaylist .lp-playlist-item.completed.playlist .lp-pl-thumb .lp-pl-num{background:var(--success);color:white}
.lp-pl-online-pl{background:rgba(34,211,238,0.12);color:#22d3ee;border:1px solid rgba(34,211,238,0.4)}
.lp-pl-online{display:inline-block;font-size:9px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;background:rgba(250,204,21,0.12);color:#facc15;border:1px solid rgba(250,204,21,0.35);border-radius:4px;padding:1px 6px;margin-left:6px;vertical-align:2px}
.channel-viewer{width:100%;height:100%;background:var(--bg);display:flex;flex-direction:column}
.chv-body{flex:1;overflow-y:auto;padding:24px;max-width:980px;margin:0 auto;width:100%}
.chv-hero{display:flex;gap:20px;align-items:flex-start;padding:24px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:20px;flex-wrap:wrap}
.chv-avatar{width:96px;height:96px;border-radius:50%;background-size:cover;background-position:center;background-color:var(--card);flex-shrink:0;border:3px solid var(--border);position:relative}
.chv-avatar::after{content:'';position:absolute;inset:-3px;border-radius:50%;border:2px solid rgba(255,68,68,0.4);pointer-events:none}
.chv-info{flex:1;min-width:260px}
.chv-info h2{font-family:var(--font-num);font-size:22px;font-weight:800;margin:0 0 2px}
.chv-handle{font-size:13px;color:var(--fg-muted);margin-bottom:10px}
.chv-stats{display:flex;gap:18px;margin-bottom:10px;flex-wrap:wrap}
.chv-stat{font-size:12.5px;color:var(--fg-muted)}
.chv-stat b{color:var(--fg);font-weight:700}
.chv-desc{font-size:13px;color:var(--fg-muted);line-height:1.6;margin-bottom:16px}
.chv-videos h3{font-family:var(--font-num);font-size:16px;font-weight:700;margin:0 0 12px;display:flex;align-items:center;gap:8px}
.chv-vid{display:flex;gap:12px;align-items:center;padding:10px;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s;background:var(--card);margin-bottom:8px}
.chv-vid:hover{border-color:var(--accent);transform:translateX(2px)}
.chv-vid-thumb{width:140px;height:79px;border-radius:6px;background-size:cover;background-position:center;background-color:var(--bg-elevated);flex-shrink:0}
.chv-vid-info{flex:1;min-width:0}
.chv-vid-info h4{font-size:13.5px;font-weight:600;margin:0 0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chv-vid-info p{font-size:11.5px;color:var(--fg-muted);margin:0}
.chv-vid-play{color:var(--accent);font-size:15px;flex-shrink:0;margin-left:6px}
.chv-spinner{display:flex;flex-direction:column;align-items:center;gap:10px;padding:36px 0;color:var(--fg-muted);font-size:13px}
.chv-err{font-size:13px;color:#ffb3b3;background:rgba(255,68,68,0.08);border:1px solid rgba(255,68,68,0.25);border-radius:var(--radius-sm);padding:14px 16px;margin:0}
@media(max-width:1024px){.lp-main{flex-direction:column;overflow-y:auto;scrollbar-width:none}.lp-main::-webkit-scrollbar{display:none}.lp-left{flex:none;overflow:visible;order:0}.lp-side-panel{width:100%;max-height:none;flex:none;border-left:none;border-top:1px solid var(--border);order:1}.lp-side-panel.collapsed{max-height:0;width:100%}.lp-ai-dock{width:100%;height:min(65vh,540px);flex:none;border-left:none;border-top:1px solid var(--border);order:2}.lp-ai-dock-resize{display:none}.lp-panel-resize-handle{display:none}.lp-panel-toggle{display:block}.lp-panel-collapse{display:none}.lp-panel-restore{display:flex!important;width:calc(100% - 40px);height:auto;padding:12px;margin:0 20px 12px;border-radius:10px;border:1px solid var(--border);align-self:auto;justify-content:center;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--fg);background:var(--card);box-shadow:none}
.lp-panel-restore.hidden{display:none!important}
.lp-restore-label{display:inline}
#lpPlaylistItems{max-height:none!important;overflow-y:visible!important}.lp-playlist-thumb{width:80px;height:45px}}
.viewer-options{display:flex;gap:12px;padding:16px 20px;border-top:1px solid var(--border);background:var(--bg-elevated)}
.viewer-opt{flex:1;padding:16px;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s;text-align:center;background:var(--card)}
.viewer-opt:hover{border-color:var(--accent)}.viewer-opt.selected{border-color:var(--accent);background:var(--accent-dim)}
.viewer-opt i{font-size:20px;margin-bottom:6px;display:block;color:var(--accent)}.viewer-opt h5{font-size:13px;font-weight:600;margin-bottom:2px}.viewer-opt p{font-size:11px;color:var(--fg-muted)}
.docs-viewer{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.docs-header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}
.docs-header h3{font-size:16px;font-weight:700;display:flex;align-items:center;gap:8px}
.docs-header .docs-source{font-size:12px;color:var(--fg-muted);display:flex;align-items:center;gap:6px}
.docs-body{padding:24px;font-size:14px;line-height:1.8;color:var(--fg);max-height:600px;overflow-y:auto}
.docs-body h1{font-size:24px;font-weight:700;margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid var(--border)}
.docs-body h2{font-size:20px;font-weight:700;margin:28px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border)}
.docs-body h3{font-size:16px;font-weight:700;margin:20px 0 8px}
.docs-body p{margin-bottom:12px;color:var(--fg-muted)}
.docs-body code{background:var(--bg-elevated);padding:2px 6px;border-radius:4px;font-family:'SF Mono','Fira Code',monospace;font-size:13px;border:1px solid var(--border)}
.docs-body pre{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px;overflow-x:auto;margin-bottom:16px}.docs-body pre code{background:none;border:none;padding:0}
.docs-body ul,.docs-body ol{margin:0 0 12px 20px;color:var(--fg-muted)}.docs-body li{margin-bottom:4px}
.docs-body a{color:var(--accent);text-decoration:none}.docs-body a:hover{text-decoration:underline}
.docs-body blockquote{border-left:3px solid var(--accent);padding:12px 16px;background:var(--accent-dim);border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin-bottom:16px;color:var(--fg-muted)}
.xp-bar-wrap{background:var(--bg-elevated);border:1px solid var(--border);border-radius:20px;padding:12px 16px;margin-bottom:20px}
.xp-bar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.xp-bar-header .level{font-family:var(--font-num);font-size:22px;font-weight:700;color:var(--accent)}
.xp-bar-header .xp-text{font-size:12px;color:var(--fg-muted);font-weight:600}
.xp-bar{height:8px;background:var(--border);border-radius:4px;overflow:hidden}
.xp-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent),#fb923c);border-radius:4px;transition:width .8s cubic-bezier(.4,0,.2,1);position:relative}
.xp-bar-fill::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.3),transparent);animation:xpShimmer 2s infinite}
@keyframes xpShimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
@keyframes pathDraw{0%{stroke-dashoffset:1}100%{stroke-dashoffset:0}}
@keyframes pathDrawReverse{0%{stroke-dashoffset:0}100%{stroke-dashoffset:1}}
@keyframes iconFadeIn{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}
.anim-icon{display:inline-flex;align-items:center;justify-content:center}
.anim-icon svg{transition:transform .3s ease}
.anim-icon:hover svg{transform:scale(1.1)}
.anim-icon svg path,.anim-icon svg circle,.anim-icon svg rect,.anim-icon svg line{stroke-dasharray:1;stroke-dashoffset:0;transition:stroke-dashoffset .6s ease}
.anim-icon:hover svg path,.anim-icon:hover svg circle{stroke-dashoffset:0;animation:pathDraw .6s ease forwards}
.anim-icon.anim-spin:hover svg{animation:iconSpin .6s ease}
@keyframes iconSpin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}
.anim-icon.anim-pop:hover svg{animation:iconPop .4s ease}
@keyframes iconPop{0%{transform:scale(1)}50%{transform:scale(1.3)}100%{transform:scale(1)}}
.anim-icon.anim-shake:hover svg{animation:iconShake .4s ease}
@keyframes iconShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}
.xp-gain{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:var(--success-dim);color:var(--success);border-radius:12px;font-size:11px;font-weight:700;animation:xpPop .4s ease}
@keyframes xpPop{0%{transform:scale(0);opacity:0}50%{transform:scale(1.2)}100%{transform:scale(1);opacity:1}}
.level-badge-lg{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#fb923c);display:flex;align-items:center;justify-content:center;font-family:var(--font-num);font-size:32px;font-weight:700;color:#0f0f0f;box-shadow:0 4px 24px rgba(249,115,22,0.3);position:relative}
.level-badge-lg::after{content:'';position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--accent);opacity:.4}
.achievement-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;display:flex;align-items:center;gap:16px;transition:all .25s}
.achievement-card:hover{border-color:var(--accent);transform:translateY(-2px)}
.achievement-card.unlocked{border-color:var(--accent);background:var(--accent-dim)}
.achievement-card.locked{opacity:.5;filter:grayscale(1)}
.achievement-icon{width:52px;height:52px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}
.achievement-card.unlocked .achievement-icon{background:linear-gradient(135deg,var(--accent),#fb923c);color:#0f0f0f}
.achievement-card.locked .achievement-icon{background:var(--border);color:var(--fg-muted)}
.achievement-info h4{font-size:15px;font-weight:700;margin-bottom:2px}
.achievement-info p{font-size:12px;color:var(--fg-muted)}
.achievement-info .ach-xp{font-size:11px;font-weight:700;color:var(--accent);margin-top:4px}
.badge-showcase{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px}
.badge-item{text-align:center;padding:20px 12px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);transition:all .25s}
.badge-item:hover{border-color:var(--accent);transform:translateY(-2px)}
.badge-item.earned{border-color:var(--accent)}
.badge-item.locked{opacity:.4;filter:grayscale(1)}
.badge-item .badge-icon{width:56px;height:56px;border-radius:50%;margin:0 auto 10px;display:flex;align-items:center;justify-content:center;font-size:24px}
.badge-item.earned .badge-icon{background:linear-gradient(135deg,var(--accent),#fb923c);color:#0f0f0f}
.badge-item.locked .badge-icon{background:var(--border);color:var(--fg-muted)}
.badge-item h5{font-size:13px;font-weight:700;margin-bottom:2px}
.badge-item p{font-size:11px;color:var(--fg-muted)}
.streak-display{display:flex;align-items:center;gap:12px;padding:16px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius)}
.streak-fire{font-size:32px;animation:fireGlow 1.5s ease infinite}
@keyframes fireGlow{0%,100%{filter:brightness(1)}50%{filter:brightness(1.3) drop-shadow(0 0 8px rgba(249,115,22,0.5))}}
.streak-info .streak-count{font-family:var(--font-num);font-size:28px;font-weight:700;color:var(--accent)}
.streak-info .streak-label{font-size:12px;color:var(--fg-muted)}
.leaderboard-row{display:flex;align-items:center;gap:14px;padding:14px 16px;border-bottom:1px solid var(--border);transition:background .15s}
.leaderboard-row:last-child{border-bottom:none}
.leaderboard-row:hover{background:rgba(255,255,255,0.02)}
.lb-rank{width:28px;font-family:var(--font-num);font-size:16px;font-weight:700;color:var(--fg-muted);text-align:center}
.lb-rank.gold{color:#fbbf24}.lb-rank.silver{color:#94a3b8}.lb-rank.bronze{color:#d97706}
.lb-avatar{width:36px;height:36px;border-radius:50%;background:var(--accent-dim);color:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex-shrink:0}
.lb-info{flex:1}
.lb-info .lb-name{font-size:14px;font-weight:600}
.lb-info .lb-level{font-size:11px;color:var(--fg-muted)}
.lb-xp{font-family:var(--font-num);font-size:14px;font-weight:700;color:var(--accent)}
.notify-ach{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--card);border:2px solid var(--accent);border-radius:var(--radius);padding:16px 24px;display:flex;align-items:center;gap:14px;z-index:9999;box-shadow:0 8px 32px rgba(0,0,0,0.5);animation:achSlideUp .5s cubic-bezier(.4,0,.2,1)}
@keyframes achSlideUp{0%{transform:translateX(-50%) translateY(100px);opacity:0}100%{transform:translateX(-50%) translateY(0);opacity:1}}
.notify-ach .ach-notify-icon{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#fb923c);display:flex;align-items:center;justify-content:center;font-size:20px;color:#0f0f0f;flex-shrink:0}
.notify-ach .ach-notify-text h4{font-size:14px;font-weight:700;margin-bottom:2px}
.notify-ach .ach-notify-text p{font-size:12px;color:var(--fg-muted)}
.notify-ach .ach-notify-xp{font-family:var(--font-num);font-size:16px;font-weight:700;color:var(--accent)}
.cert-card{background:linear-gradient(135deg,#1a1a2e,#16213e);border:2px solid var(--accent);border-radius:var(--radius);padding:32px;text-align:center;position:relative;overflow:hidden}
.cert-card::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 30% 30%,rgba(249,115,22,0.1),transparent 60%)}
.cert-card .cert-icon{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#fb923c);display:flex;align-items:center;justify-content:center;font-size:36px;color:#0f0f0f;margin:0 auto 16px;box-shadow:0 4px 24px rgba(249,115,22,0.4)}
.cert-card h3{font-family:var(--font-num);font-size:22px;font-weight:700;margin-bottom:4px}
.cert-card p{color:var(--fg-muted);font-size:14px}
.gamification-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:24px}
.gam-stat{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px;text-align:center}
.gam-stat .gam-stat-icon{font-size:24px;color:var(--accent);margin-bottom:8px}
.gam-stat .gam-stat-val{font-family:var(--font-num);font-size:28px;font-weight:700}
.gam-stat .gam-stat-label{font-size:12px;color:var(--fg-muted);margin-top:2px}

/* ═══════════════════════════════════════════════════════════════
   AI LEARNING ASSISTANT WIDGET
   ═══════════════════════════════════════════════════════════════ */
.ai-widget{position:fixed;bottom:24px;right:24px;z-index:10001;font-family:var(--font-main)}
.ai-fab{width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#fb923c);border:none;color:#0f0f0f;font-size:24px;cursor:pointer;box-shadow:0 4px 24px rgba(249,115,22,0.4);transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;display:flex;align-items:center;justify-content:center}
.ai-fab:hover{transform:scale(1.08);box-shadow:0 6px 32px rgba(249,115,22,0.5)}
.ai-fab:active{transform:scale(0.95)}
.ai-fab-badge{position:absolute;top:-2px;right:-2px;width:18px;height:18px;border-radius:50%;background:var(--danger);color:white;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid var(--bg);animation:aiPulse 2s infinite}
.ai-fab-badge.hidden{display:none}
.ai-fab-lock{position:absolute;top:-2px;right:-2px;width:18px;height:18px;border-radius:50%;background:var(--bg-elevated);border:2px solid var(--bg);color:var(--accent);font-size:9px;display:flex;align-items:center;justify-content:center}
.ai-fab-lock.hidden{display:none}
.ai-fab.ai-locked{box-shadow:0 4px 24px rgba(0,0,0,0.4)}
.lp-topbar-actions button.ai-locked,.lp-topbar-actions button.ai-locked:hover{opacity:.6}
.lp-topbar-actions button.ai-locked i{color:var(--fg-muted)}
@keyframes aiPulse{0%,100%{box-shadow:0 0 0 0 rgba(232,84,84,0.4)}50%{box-shadow:0 0 0 8px rgba(232,84,84,0)}}
.ai-chat-window{--ai-scale:1;position:fixed;bottom:24px;right:24px;width:340px;height:500px;max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);background:var(--bg-elevated);border:1px solid var(--border);border-radius:16px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 12px 48px rgba(0,0,0,0.5);transition:opacity .25s ease,transform .3s cubic-bezier(.4,0,.2,1);transform-origin:bottom right;font-size:calc(13px * var(--ai-scale))}
.ai-chat-window.minimized{opacity:0;transform:scale(0.9) translateY(20px);pointer-events:none}
.ai-chat-window.resizing,.ai-chat-window.dragging{transition:none;user-select:none}
.ai-drag-lock iframe{pointer-events:none!important}
.ai-drag-lock .ai-chat-window{user-select:none}
.ai-edge-handle{position:absolute;z-index:6;touch-action:none}
.ai-h-top,.ai-h-bottom{height:8px;left:18px;right:18px;cursor:ns-resize}
.ai-h-top{top:4px}.ai-h-bottom{bottom:4px}
.ai-h-left,.ai-h-right{width:8px;top:18px;bottom:18px;cursor:ew-resize}
.ai-h-left{left:4px}.ai-h-right{right:4px}
.ai-h-nw,.ai-h-ne,.ai-h-sw,.ai-h-se{width:16px;height:16px}
.ai-h-nw{left:4px;top:4px;cursor:nwse-resize}
.ai-h-se{right:4px;bottom:4px;cursor:nwse-resize}
.ai-h-ne{right:4px;top:4px;cursor:nesw-resize}
.ai-h-sw{left:4px;bottom:4px;cursor:nesw-resize}
.ai-edge-handle::before{content:'';position:absolute;background:var(--fg-muted);opacity:.3;transition:opacity .15s,background .15s}
.ai-edge-handle:hover::before{opacity:.85;background:var(--accent)}
.ai-h-top::before,.ai-h-bottom::before{left:50%;transform:translateX(-50%);width:56px;height:2px;top:50%;margin-top:-1px}
.ai-h-left::before,.ai-h-right::before{top:50%;transform:translateY(-50%);height:56px;width:2px;left:50%;margin-left:-1px}
.ai-h-nw::before,.ai-h-ne::before,.ai-h-sw::before,.ai-h-se::before{width:7px;height:7px;background:none;opacity:.5}
.ai-h-nw::before{left:5px;top:5px;border-left:2px solid var(--fg-muted);border-top:2px solid var(--fg-muted)}
.ai-h-ne::before{right:5px;top:5px;border-right:2px solid var(--fg-muted);border-top:2px solid var(--fg-muted)}
.ai-h-sw::before{left:5px;bottom:5px;border-left:2px solid var(--fg-muted);border-bottom:2px solid var(--fg-muted)}
.ai-h-se::before{right:5px;bottom:5px;border-right:2px solid var(--fg-muted);border-bottom:2px solid var(--fg-muted)}
.ai-h-nw:hover::before,.ai-h-ne:hover::before,.ai-h-sw:hover::before,.ai-h-se:hover::before{border-color:var(--accent);opacity:1}
.ai-chat-header{display:flex;align-items:center;justify-content:space-between;padding:1.08em 1.23em;background:var(--card);border-bottom:1px solid var(--border);flex-shrink:0;cursor:grab;touch-action:none}
.ai-chat-header button{cursor:pointer}
.ai-header-left{display:flex;align-items:center;gap:0.62em;font-size:1.08em;font-weight:700;font-family:var(--font-num);min-width:0}
.ai-header-left>span:not(.ai-context-pill){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.ai-header-left .ai-context-pill{flex-shrink:0}
.ai-context-pill{font-size:0.77em;font-weight:600;padding:0.23em 0.62em;border-radius:10px;background:var(--accent-dim);color:var(--accent);max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:none}
.ai-context-pill.visible{display:inline-block}
.ai-header-actions{display:flex;gap:2px}
.ai-more-wrap{position:relative;display:block}
.ai-header-actions .ai-action-btn{display:none !important}
.ai-more-btn{background:none;border:none;color:var(--fg-muted);width:calc(32px * var(--ai-scale));height:calc(32px * var(--ai-scale));border-radius:calc(8px * var(--ai-scale));display:flex;align-items:center;justify-content:center;font-size:calc(13px * var(--ai-scale));cursor:pointer}
.ai-more-btn:hover{background:var(--card);color:var(--fg)}
.ai-more-menu{position:absolute;top:calc(100% + 6px);right:0;background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,0.45);padding:6px;min-width:190px;z-index:50;display:flex;flex-direction:column;gap:2px;animation:aiPanelIn .15s ease;transform-origin:top right}
.ai-more-menu.hidden{display:none}
.ai-more-menu button{display:flex;align-items:center;gap:10px;background:none;border:none;color:var(--fg);padding:9px 12px;border-radius:8px;font-size:13px;font-family:inherit;cursor:pointer;text-align:left;white-space:nowrap}
.ai-more-menu button:hover{background:var(--card);color:var(--accent)}
.ai-more-menu button i{width:18px;text-align:center;color:var(--fg-muted);flex-shrink:0}
.ai-more-menu button:hover i{color:var(--accent)}
.ai-more-menu button.active,.ai-more-menu button.active i{color:var(--accent)}
.ai-chat-window.ai-docked .ai-more-wrap{display:block}
.ai-chat-window.ai-docked .ai-header-actions .ai-action-btn{display:none !important}
.ai-chat-window.ai-stretched-top .ai-more-wrap{display:block}
.ai-chat-window.ai-stretched-top .ai-header-actions .ai-action-btn{display:none !important}
.ai-header-actions button{background:none;border:none;color:var(--fg-muted);width:calc(32px * var(--ai-scale));height:calc(32px * var(--ai-scale));border-radius:calc(8px * var(--ai-scale));display:flex;align-items:center;justify-content:center;font-size:calc(13px * var(--ai-scale));cursor:pointer;transition:all .15s}
.ai-header-actions button:hover{background:var(--card);color:var(--fg)}
.ai-header-actions .ai-more-menu button{width:100%;height:auto}
.ai-chat-search{display:flex;gap:0.62em;padding:0.62em 0.92em;border-bottom:1px solid var(--border);background:var(--card)}
.ai-chat-search.hidden{display:none}
.ai-chat-search input{flex:1;background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;padding:0.62em 0.92em;color:var(--fg);font-size:1em;font-family:inherit}
.ai-chat-search input:focus{outline:none;border-color:var(--accent)}
.ai-chat-search button{background:none;border:none;color:var(--fg-muted);cursor:pointer;font-size:calc(14px * var(--ai-scale));padding:calc(4px * var(--ai-scale)) calc(8px * var(--ai-scale))}
.ai-quick-actions{display:flex;flex-wrap:wrap;align-items:center;gap:0.46em;padding:0.77em 0.92em;flex-shrink:0;border-bottom:1px solid var(--border);position:relative}
.ai-quick-action-chip{flex-shrink:0;padding:calc(6px * var(--ai-scale)) calc(12px * var(--ai-scale));border-radius:calc(16px * var(--ai-scale));font-size:calc(11px * var(--ai-scale));font-weight:600;cursor:pointer;border:1px solid var(--border);background:rgba(255,255,255,0.03);color:var(--fg-muted);transition:all .15s;font-family:inherit;white-space:nowrap}
.ai-quick-action-chip:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}
.ai-quick-more-chip{border-style:dashed}
.ai-quick-more-menu{position:absolute;top:calc(100% + 4px);left:0.92em;background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,0.45);padding:6px;min-width:210px;z-index:50;display:flex;flex-direction:column;gap:2px;animation:aiPanelIn .15s ease;transform-origin:top left;max-height:280px;overflow-y:auto}
.ai-quick-more-menu.hidden{display:none}
.ai-quick-more-menu button{display:flex;align-items:center;gap:10px;background:none;border:none;color:var(--fg);padding:9px 12px;border-radius:8px;font-size:13px;font-family:inherit;cursor:pointer;text-align:left;white-space:nowrap}
.ai-quick-more-menu button:hover{background:var(--card);color:var(--accent)}
.ai-quick-more-menu button i{width:18px;text-align:center;color:var(--fg-muted);flex-shrink:0}
.ai-quick-more-menu button:hover i{color:var(--accent)}
.ai-messages{flex:1;overflow-y:auto;padding:1.23em;display:flex;flex-direction:column;gap:1.08em;scroll-behavior:smooth}
.ai-messages::-webkit-scrollbar{width:4px}
.ai-messages::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}
.ai-message{display:flex;gap:0.77em;max-width:92%;animation:aiMsgIn .3s ease}
.ai-message.user{align-self:flex-end;flex-direction:row-reverse}
@keyframes aiMsgIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.ai-msg-avatar{width:calc(28px * var(--ai-scale));height:calc(28px * var(--ai-scale));border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:calc(12px * var(--ai-scale));font-weight:700;flex-shrink:0}
.ai-message.assistant .ai-msg-avatar{background:linear-gradient(135deg,var(--accent),#fb923c);color:#0f0f0f}
.ai-message.user .ai-msg-avatar{background:var(--info-dim);color:var(--info)}
.ai-msg-body{display:flex;flex-direction:column;gap:4px}
.ai-msg-content{padding:0.92em 1.23em;border-radius:14px;font-size:1em;line-height:1.65;word-wrap:break-word}
.ai-message.assistant .ai-msg-content{background:var(--card);border:1px solid var(--border);border-top-left-radius:4px;color:var(--fg)}
.ai-message.user .ai-msg-content{background:linear-gradient(135deg,var(--accent),#fb923c);color:#0f0f0f;border-top-right-radius:4px}
.ai-msg-content p{margin:0 0 8px}.ai-msg-content p:last-child{margin-bottom:0}
.ai-msg-content strong{font-weight:700}.ai-msg-content em{font-style:italic}
.ai-msg-content ul,.ai-msg-content ol{margin:6px 0;padding-left:20px}
.ai-msg-content li{margin-bottom:3px}
.ai-msg-content blockquote{border-left:3px solid var(--accent);padding:0.62em 0.92em;background:var(--accent-dim);border-radius:0 8px 8px 0;margin:0.62em 0;color:var(--fg-muted);font-size:0.92em}
.ai-msg-content code{background:var(--bg-elevated);padding:0.15em 0.46em;border-radius:4px;font-family:'SF Mono','Fira Code',monospace;font-size:0.92em;border:1px solid var(--border)}
.ai-message.user .ai-msg-content code{background:rgba(0,0,0,0.2);border-color:rgba(0,0,0,0.3)}
.ai-code-block{position:relative;margin:0.62em 0;border-radius:10px;overflow:hidden;border:1px solid var(--border)}
.ai-code-block-header{display:flex;align-items:center;justify-content:space-between;padding:0.46em 0.92em;background:var(--bg);border-bottom:1px solid var(--border);font-size:0.85em;font-weight:600;color:var(--fg-muted)}
.ai-code-block-header button{background:none;border:none;color:var(--fg-muted);font-size:0.85em;cursor:pointer;padding:0.15em 0.62em;border-radius:4px;font-family:inherit;font-weight:600}
.ai-code-block-header button:hover{background:var(--card);color:var(--accent)}
.ai-code-block pre{margin:0;padding:1.08em;background:var(--bg);overflow-x:auto;font-size:0.92em;line-height:1.6}
.ai-code-block pre code{background:none;border:none;padding:0;font-family:'SF Mono','Fira Code',monospace;color:var(--fg)}
.ai-msg-time{font-size:0.77em;color:var(--fg-muted);padding:0 4px;opacity:.6}
.ai-message.user .ai-msg-time{text-align:right}
.ai-msg-actions{display:flex;gap:4px;padding:0 4px;opacity:0;transition:opacity .15s}
.ai-message:hover .ai-msg-actions{opacity:1}
.ai-msg-actions button{background:none;border:none;color:var(--fg-muted);font-size:calc(11px * var(--ai-scale));cursor:pointer;padding:calc(2px * var(--ai-scale)) calc(6px * var(--ai-scale));border-radius:calc(4px * var(--ai-scale));display:flex;align-items:center;gap:calc(4px * var(--ai-scale))}
.ai-msg-actions button:hover{background:var(--card);color:var(--accent)}
.ai-msg-actions button.pinned{color:var(--accent)}
.ai-typing{display:flex;gap:0.77em;padding:0 1.23em;align-items:center}
.ai-typing-avatar{width:calc(28px * var(--ai-scale));height:calc(28px * var(--ai-scale));border-radius:50%;background:linear-gradient(135deg,var(--accent),#fb923c);color:#0f0f0f;display:flex;align-items:center;justify-content:center;font-size:calc(12px * var(--ai-scale));font-weight:700;flex-shrink:0}
.ai-typing-dots{display:flex;gap:4px;padding:0.92em 1.23em;background:var(--card);border:1px solid var(--border);border-radius:14px;border-top-left-radius:4px}
.ai-typing-dots span{width:6px;height:6px;border-radius:50%;background:var(--fg-muted);animation:aiDotBounce 1.4s infinite}
.ai-typing-dots span:nth-child(2){animation-delay:.2s}
.ai-typing-dots span:nth-child(3){animation-delay:.4s}
@keyframes aiDotBounce{0%,60%,100%{transform:translateY(0);opacity:.4}30%{transform:translateY(-6px);opacity:1}}
.ai-input-area{display:flex;align-items:flex-end;gap:0.62em;padding:0.92em;border-top:1px solid var(--border);background:var(--card);flex-shrink:0}
.ai-attach-btn{background:none;border:none;color:var(--fg-muted);width:calc(36px * var(--ai-scale));height:calc(36px * var(--ai-scale));border-radius:calc(8px * var(--ai-scale));display:flex;align-items:center;justify-content:center;font-size:calc(15px * var(--ai-scale));cursor:pointer;flex-shrink:0;transition:all .15s}
.ai-attach-btn:hover{background:var(--bg-elevated);color:var(--accent)}
.ai-input-area textarea{flex:1;background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;padding:0.77em 1.08em;color:var(--fg);font-size:1em;font-family:inherit;resize:none;max-height:9.2em;line-height:1.5;transition:border-color .15s}
.ai-input-area textarea:focus{outline:none;border-color:var(--accent)}
.ai-input-area textarea::placeholder{color:var(--fg-muted);opacity:.5}
.ai-send-btn{width:calc(36px * var(--ai-scale));height:calc(36px * var(--ai-scale));border-radius:50%;background:var(--accent);border:none;color:#0f0f0f;display:flex;align-items:center;justify-content:center;font-size:calc(14px * var(--ai-scale));cursor:pointer;flex-shrink:0;transition:all .15s}
.ai-send-btn:hover{background:var(--accent-hover);transform:scale(1.05)}
.ai-send-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}
.ai-streaming-cursor{display:inline-block;width:2px;height:14px;background:var(--accent);margin-left:2px;animation:aiCursorBlink 1s step-end infinite;vertical-align:text-bottom}
@keyframes aiCursorBlink{0%,100%{opacity:1}50%{opacity:0}}
.ai-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:2.46em;color:var(--fg-muted)}
.ai-empty-state i,.ai-empty-state svg{width:3.08em;height:3.08em;margin-bottom:0.92em;color:var(--accent);opacity:.5}
.ai-empty-state h4{font-size:1.23em;font-weight:700;color:var(--fg);margin-bottom:0.46em}
.ai-empty-state p{font-size:0.92em;line-height:1.5;max-width:20em}
.ai-pinned-panel,.ai-settings-panel{position:absolute;inset:0;background:var(--bg-elevated);z-index:10;display:flex;flex-direction:column;animation:aiPanelIn .25s ease}
.ai-pinned-panel.hidden,.ai-settings-panel.hidden{display:none}
@keyframes aiPanelIn{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}
.ai-panel-header{display:flex;align-items:center;justify-content:space-between;padding:1.08em 1.23em;border-bottom:1px solid var(--border);background:var(--card)}
.ai-panel-header h4{font-size:1.08em;font-weight:700;font-family:var(--font-num)}
.ai-panel-header button{background:none;border:none;color:var(--fg-muted);cursor:pointer;font-size:calc(14px * var(--ai-scale));padding:calc(4px * var(--ai-scale)) calc(8px * var(--ai-scale));border-radius:calc(6px * var(--ai-scale))}
.ai-panel-header button:hover{background:var(--bg-elevated);color:var(--fg)}
.ai-panel-body{flex:1;overflow-y:auto;padding:0.92em}
.ai-pinned-item{padding:0.92em;background:var(--card);border:1px solid var(--border);border-radius:10px;margin-bottom:0.62em;cursor:pointer;transition:all .15s}
.ai-pinned-item:hover{border-color:var(--accent)}
.ai-pinned-item .pi-content{font-size:0.92em;line-height:1.5;margin-bottom:0.46em;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.ai-pinned-item .pi-meta{font-size:0.77em;color:var(--fg-muted);display:flex;justify-content:space-between}
.ai-settings-group{margin-bottom:1.54em}
.ai-settings-group label{display:block;font-size:0.92em;font-weight:600;color:var(--fg-muted);margin-bottom:0.46em;text-transform:uppercase;letter-spacing:.5px}
.ai-settings-group input[type="text"],.ai-settings-group input[type="password"]{width:100%;padding:0.77em 0.92em;background:var(--card);border:1px solid var(--border);border-radius:8px;color:var(--fg);font-size:1em;font-family:inherit}
.ai-settings-group input:focus{outline:none;border-color:var(--accent)}
.ai-settings-group select{width:100%;padding:0.77em 0.92em;background:var(--card);border:1px solid var(--border);border-radius:8px;color:var(--fg);font-size:1em;font-family:inherit;cursor:pointer}
.ai-settings-actions{display:flex;gap:0.62em;flex-wrap:wrap}
.ai-settings-panel .btn{font-size:calc(13px * var(--ai-scale));padding:calc(6px * var(--ai-scale)) calc(14px * var(--ai-scale))}
.ai-welcome-msg{text-align:center;padding:1.85em 1.23em}
.ai-welcome-msg .ai-welcome-icon{width:calc(56px * var(--ai-scale));height:calc(56px * var(--ai-scale));border-radius:50%;background:linear-gradient(135deg,var(--accent),#fb923c);display:flex;align-items:center;justify-content:center;font-size:calc(24px * var(--ai-scale));color:#0f0f0f;margin:0 auto 0.92em;box-shadow:0 4px 20px rgba(249,115,22,0.3)}
.ai-welcome-msg h3{font-family:var(--font-num);font-size:1.38em;font-weight:700;margin-bottom:0.31em}
.ai-welcome-msg p{font-size:1em;color:var(--fg-muted);line-height:1.5}
.ai-chart-bars{display:flex;align-items:flex-end;gap:3px;height:40px;margin-top:8px}
.ai-chart-bar{flex:1;background:var(--accent);border-radius:2px 2px 0 0;transition:height .3s ease;min-width:4px}
.ai-light-mode{--bg:#f5f5f5;--bg-elevated:#ffffff;--card:#ffffff;--card-hover:#f0f0f0;--border:#d0d0d0;--fg:#1a1a1a;--fg-muted:#555555;--accent:#ea580c;--accent-dim:rgba(234,88,12,0.1);--accent-hover:#dc2626;--shadow:0 4px 24px rgba(0,0,0,0.08)}
.ai-light-mode .ai-chat-window{border-color:#e0e0e0;box-shadow:0 12px 48px rgba(0,0,0,0.12)}
.ai-light-mode .ai-msg-content.assistant{background:#f5f5f5;border-color:#e0e0e0}
.ai-light-mode .ai-msg-content.user{color:#fff}
@media(max-width:1024px){.ai-widget{bottom:16px;right:16px}.ai-chat-window{width:calc(100vw - 32px);height:calc(100vh - 100px);max-height:600px;bottom:0;right:0}.ai-fab{width:52px;height:52px;font-size:20px}}
@media(max-width:480px){.ai-chat-window{width:calc(100vw - 16px);right:0;border-radius:12px}}
.ai-header-actions .ai-fs-btn{display:inline-flex!important}
.ai-chat-window.ai-fullscreen{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;max-width:100vw;max-height:100dvh;border-radius:0;border:none;z-index:10002;bottom:auto;right:auto;transform:none}
.ai-chat-window.ai-fullscreen .ai-edge-handle{display:none}
.ai-chat-window.ai-fullscreen .ai-chat-header{cursor:default}
/* ── YouTube-Inspired Video Grid ──────────────────────────────── */
.yt-video-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.yt-section-label{grid-column:1/-1;display:flex;align-items:center;gap:10px;font-family:var(--font-num);font-size:17px;font-weight:700;color:var(--fg);padding:6px 2px 2px;margin-top:10px}
.yt-section-label:first-child{margin-top:0;padding-top:0}
.yt-section-label i{color:var(--accent);font-size:15px}
.yt-section-label span{margin-left:auto;font-size:12px;font-weight:600;color:var(--fg-muted);background:var(--bg-elevated);border:1px solid var(--border);padding:2px 10px;border-radius:999px}
.yt-section-label{cursor:pointer;-webkit-user-select:none;user-select:none}
.yt-section-label .yt-sec-toggle{width:26px;height:26px;border-radius:7px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--fg-muted);display:flex;align-items:center;justify-content:center;font-size:11px;cursor:pointer;transition:all .2s;flex-shrink:0}
.yt-section-label:hover .yt-sec-toggle{color:var(--accent);border-color:var(--accent)}
.yt-section-label .yt-sec-toggle i{color:inherit;font-size:11px}
.yt-section-label.collapsed .yt-sec-toggle i{transform:rotate(-90deg)}
.yt-video-card.yt-sec-hidden{display:none}
.yt-badge.playlist-badge{background:rgba(168,85,247,0.15);color:#c084fc}
.yt-video-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;cursor:pointer;transition:all .25s ease;position:relative}
.yt-video-card:hover{border-color:rgba(255,68,68,0.5);transform:translateY(-3px);box-shadow:0 8px 32px rgba(0,0,0,0.4)}
.yt-video-card .yt-thumb{position:relative;padding-top:56.25%;background-size:cover;background-position:center;background-color:var(--bg-elevated)}
.yt-video-card .yt-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.yt-video-card .yt-duration-badge{position:absolute;bottom:8px;right:8px;background:rgba(0,0,0,0.85);padding:3px 8px;border-radius:4px;font-size:12px;font-weight:600;color:white;z-index:2}
.yt-video-card .yt-progress-track{position:absolute;bottom:0;left:0;right:0;height:3px;background:rgba(255,255,255,0.2);z-index:2}
.yt-video-card .yt-progress-fill{height:100%;background:var(--accent);transition:width .3s}
.yt-video-card .yt-card-body{padding:12px 14px}
.yt-video-card .yt-channel-row{display:flex;align-items:flex-start;gap:10px;margin-bottom:4px}
.yt-video-card .yt-channel-avatar{width:36px;height:36px;border-radius:50%;background:var(--accent-dim);color:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex-shrink:0}
.yt-video-card .yt-card-title{font-size:14px;font-weight:600;line-height:1.4;margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.yt-video-card .yt-card-meta{font-size:12px;color:var(--fg-muted);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.yt-video-card .yt-card-meta span{display:flex;align-items:center;gap:3px}
.yt-video-card .yt-card-badges{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.yt-video-card .yt-badge{padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}
.yt-video-card .yt-badge.diff-beginner{background:var(--success-dim);color:var(--success)}
.yt-video-card .yt-badge.diff-intermediate{background:var(--info-dim);color:var(--info)}
.yt-video-card .yt-badge.diff-advanced{background:var(--danger-dim);color:var(--danger)}
.yt-video-card .yt-play-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .25s;background:rgba(0,0,0,0.3);z-index:3}
.yt-video-card:hover .yt-play-overlay{opacity:1}
.yt-video-card .yt-play-overlay i{width:52px;height:52px;border-radius:50%;background:rgba(255,68,68,0.9);color:white;display:flex;align-items:center;justify-content:center;font-size:18px;box-shadow:0 4px 16px rgba(255,68,68,0.4)}
/* ── YouTube x Netflix Hybrid Grid ───────────────────────────────── */
.yt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:18px}
.yt-vid{position:relative;background:var(--card);border:1px solid var(--border);border-radius:12px;overflow:hidden;cursor:pointer;display:flex;flex-direction:column;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.yt-vid:hover{transform:translateY(-4px);box-shadow:0 14px 40px rgba(0,0,0,.5);border-color:rgba(255,68,68,.45);z-index:2}
.yt-vid-thumb{position:relative;padding-top:56.25%;background:var(--bg-elevated);overflow:hidden}
.yt-vid-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.yt-vid:hover .yt-vid-thumb img{transform:scale(1.06)}
.yt-vid-dur{position:absolute;bottom:8px;right:8px;background:rgba(0,0,0,.85);padding:2px 7px;border-radius:4px;font-size:11px;font-weight:600;color:#fff;z-index:2;letter-spacing:.3px}
.yt-vid-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .25s ease;z-index:2;background:linear-gradient(to top,rgba(0,0,0,.35),transparent 55%)}
.yt-vid:hover .yt-vid-play{opacity:1}
.yt-vid-play i{width:46px;height:46px;border-radius:50%;background:rgba(255,68,68,.92);color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;box-shadow:0 4px 18px rgba(255,68,68,.45)}
.yt-vid-body{padding:10px 12px 12px;display:flex;gap:10px;flex:1}
.yt-vid-avatar{flex:0 0 34px;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;letter-spacing:.5px;color:#fff;margin-top:2px}
.yt-vid-info{min-width:0;display:flex;flex-direction:column}
.yt-vid-title{font-size:13.5px;font-weight:600;line-height:1.35;color:var(--fg);margin:0 0 5px;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;transition:color .2s}
.yt-vid:hover .yt-vid-title{color:var(--accent)}
.yt-vid-channel{font-size:12px;color:var(--fg-muted);font-weight:500}
.yt-vid-meta{font-size:11.5px;color:var(--fg-muted);margin-top:2px}
.yt-vid-meta .star{font-size:10px;color:var(--fg-muted)}.yt-vid-meta .star.filled,.yt-vid-meta .star.half{color:#f59e0b}
.yt-vid-score{font-weight:700;color:#f59e0b;margin-left:4px}
.yt-results-bar{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--fg-muted);margin-bottom:16px}
.yt-results-bar strong{color:var(--fg)}
.yt-cached-note{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;margin-bottom:16px;background:var(--accent-dim);border:1px dashed var(--accent);border-radius:var(--radius-sm);font-size:12.5px;color:var(--accent)}
.yt-load-more{display:block;width:100%;max-width:280px;margin:20px auto 0;padding:12px 24px}
/* ── Admin Enhanced UI ────────────────────────────────────────── */
.admin-dashboard-quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:24px}
.admin-quick-action{display:flex;align-items:center;gap:12px;padding:16px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:all .2s}
.admin-quick-action:hover{border-color:var(--accent);transform:translateY(-2px)}
.admin-quick-action .qa-icon{width:40px;height:40px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.admin-quick-action .qa-text h4{font-size:14px;font-weight:600;margin-bottom:2px}
.admin-quick-action .qa-text p{font-size:12px;color:var(--fg-muted)}
.admin-course-actions{display:flex;gap:4px;flex-wrap:wrap}
.admin-course-actions .btn{padding:4px 10px;font-size:11px}
.admin-bulk-bar{position:sticky;top:0;z-index:10;background:var(--accent);color:#0f0f0f;padding:10px 16px;border-radius:var(--radius-sm);display:flex;align-items:center;gap:12px;margin-bottom:12px;font-size:13px;font-weight:600}
.admin-bulk-bar.hidden{display:none}
.batch-import-url-list{display:flex;flex-direction:column;gap:8px;max-height:300px;overflow-y:auto}
.batch-import-url-item{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px}
.batch-import-url-item .url-status{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;flex-shrink:0}
.batch-import-url-item .url-status.pending{background:var(--info-dim);color:var(--info)}
.batch-import-url-item .url-status.done{background:var(--success-dim);color:var(--success)}
@media(max-width:1024px){.yt-video-grid{grid-template-columns:1fr}.admin-dashboard-quick-actions{grid-template-columns:1fr}.analytics-tabs{overflow-x:auto;scrollbar-width:none}.analytics-tabs::-webkit-scrollbar{display:none}.analytics-period{flex-wrap:wrap;justify-content:flex-start!important;gap:10px}}
/* ---- Solve daily challenge — Visual Studio-style editor ---- */
.lp-solve-window{background:#1e1e1e;border:1px solid #3c3c3c;border-radius:12px;overflow:hidden;box-shadow:0 16px 40px -18px rgba(0,0,0,.65),inset 0 1px 0 rgba(255,255,255,.03);position:relative}
.lp-solve-chrome{display:flex;align-items:stretch;gap:0;padding:0 10px;height:38px;background:#252526;border-bottom:1px solid #333333}
.lp-solve-chrome .dot{display:none}
.lp-solve-chrome .filename{display:flex;align-items:center;gap:8px;font-family:Consolas,'JetBrains Mono',monospace;font-size:12.5px;color:#e8e8e8;background:#1e1e1e;border-top:1px solid #007acc;padding:0 18px;height:38px;white-space:nowrap;border-right:1px solid #333333}
.lp-solve-chrome .filename i{color:#4a9eff}
.lp-solve-chrome .attempts{display:flex;align-items:center;gap:6px;margin-left:auto;font-family:Consolas,'JetBrains Mono',monospace;font-size:11px;color:#9d9d9d;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.lp-solve-chrome .attempts b{color:#e8e8e8}
.lp-solve-body{padding:0;overflow-x:auto}
.lp-solve-body pre{margin:0;color:#d4d4d4;font:13px/1.8 Consolas,'JetBrains Mono',monospace;white-space:pre-wrap;word-break:break-word}
.lp-blank-slot{font-family:Consolas,'JetBrains Mono',monospace;font-size:13px;font-weight:700;letter-spacing:.4px;color:var(--accent);background:rgba(255,106,0,.08);border:1.5px dashed rgba(255,106,0,.55);border-radius:8px;padding:2px 10px;min-width:210px;width:auto;max-width:100%;caret-color:var(--accent);outline:none;vertical-align:middle;transition:border-color .18s,box-shadow .18s,background .18s,transform .15s;margin:0 2px}
.lp-blank-slot::placeholder{color:rgba(255,106,0,.4);font-weight:400;letter-spacing:.8px}
.lp-blank-slot:hover{border-color:var(--accent)}
.lp-blank-slot:focus{border-style:solid;border-color:var(--accent);background:rgba(255,106,0,.12);box-shadow:0 0 0 3px rgba(255,106,0,.15);animation:lpPulse 1.6s ease-in-out infinite}
.lp-blank-slot.wrong{border-color:#ff5f56!important;border-style:solid;background:rgba(255,95,86,.12);box-shadow:0 0 0 3px rgba(255,95,86,.15);animation:lpShake .5s}
.lp-blank-slot.right{border-color:#2fd27f!important;border-style:solid;background:rgba(47,210,127,.14);box-shadow:0 0 0 3px rgba(47,210,127,.18)}
.lp-blank-slot.judging{opacity:.55;animation:lpPulse 1s ease-in-out infinite}
@keyframes lpPulse{0%,100%{border-color:var(--accent);box-shadow:0 0 0 3px rgba(255,106,0,.13)}50%{border-color:rgba(255,106,0,.4);box-shadow:0 0 0 4px rgba(255,106,0,.05)}}
@keyframes lpShake{0%,100%{transform:translateX(0)}20%{transform:translateX(-7px)}40%{transform:translateX(7px)}60%{transform:translateX(-5px)}80%{transform:translateX(5px)}}
.lp-blank-token{display:inline-block;padding:1px 8px;border-radius:6px;background:var(--accent-dim);color:var(--accent);font-weight:700;font-size:12.5px;letter-spacing:.03em}
.lp-solve-fallback{margin:12px 14px 14px;border:1.5px dashed rgba(255,106,0,.3);border-radius:10px;padding:14px}
.lp-solve-fallback .lp-blank-slot{width:100%;max-width:100%}
.lp-solve-cta-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.lp-solve-body .lp-run-bar{margin:0 14px}
.lp-solve-body .lp-output{margin:0 14px 14px}
.lp-solve-body .lp-preview{margin:0 14px 14px;width:calc(100% - 28px)}
.lp-solve-body .lp-run-note{margin:0 14px 14px}
/* code grid — Visual Studio dark theme: flat surface, gutter, active line */
.lp-src{display:block;background:#1e1e1e;border-radius:0;overflow:hidden;min-width:0;width:100%;padding:8px 0 10px}
.lp-src .lp-ln{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:start;transition:background .12s ease}
.lp-src .lp-ln:hover{background:rgba(86,156,214,.07)}
.lp-src .lp-ln.cur{background:rgba(38,79,120,.35);box-shadow:inset 2px 0 0 #007acc}
.lp-src .lp-g{grid-column:1;text-align:right;padding:0 16px 0 8px;color:#858585;user-select:none;font-family:Consolas,'JetBrains Mono',monospace;font-size:12px;line-height:1.8;background:transparent}
.lp-src .lp-ln.cur .lp-g{color:#d7d7d7}
.lp-src .lp-c{grid-column:2;display:block;min-width:0;width:auto;white-space:pre-wrap;word-break:break-word;color:#d4d4d4;font-family:Consolas,'JetBrains Mono',monospace;font-size:13px;line-height:1.8;padding:0 18px 0 16px;tab-size:4}
.lp-src .lp-c::selection{background:rgba(38,79,120,.45)}
.lp-hl-c{color:#6a9955;font-style:italic}
.lp-hl-s{color:#ce9178}
.lp-hl-k{color:#569cd6;font-weight:500}
.lp-hl-n{color:#b5cea8}
.lp-hl-f{color:#dcdcaa}
.lp-hl-t{color:#4ec9b0}
.lp-src .lp-blank-slot{min-width:160px;width:160px;max-width:100%}
/* solved view: run panels */
.lp-output{white-space:pre-wrap;word-break:break-word;font-family:Consolas,'JetBrains Mono',monospace;font-size:12.5px;line-height:1.65;color:#cccccc;background:#1e1e1e;border:1px solid #333333;border-radius:10px;padding:14px 16px;max-height:260px;overflow:auto;margin:0}
.lp-output.err{color:#ff8f86;background:#250c0c;border-color:#4a1a1a}
.lp-preview{width:100%;height:240px;border:1px solid #333333;border-radius:10px;background:#fff}
.lp-run-note{font-size:13px;color:var(--fg-muted);line-height:1.6;padding:14px 16px;background:var(--bg-elevated);border:1px dashed var(--border);border-radius:10px;margin:0}
.lp-run-fab{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--accent)}
.lp-run-bar{display:flex;align-items:center;gap:8px;padding:9px 14px;background:#252526;border:1px solid #333333;border-radius:10px 10px 0 0;font:12px Consolas,'JetBrains Mono',monospace;color:#9d9d9d}
.lp-frame{width:0;height:0;border:0}
