:root{--g:#8cff00;--bg:#020402;--panel:#070b07;--line:#253025;--muted:#b0b7ae;--blue:#27a8ff;--purple:#b954ff;--gold:#ffc400}
*{box-sizing:border-box}
html{scroll-behavior:smooth;height:100%}
body{margin:0;background:var(--bg);color:#fff;font-family:Arial,Helvetica,sans-serif;display:flex;flex-direction:column;min-height:100vh}
main{flex:1 0 auto;width:100%}
header.wrap,main.wrap,footer.wrap{margin-top:0;margin-bottom:0}
body:before{content:"";position:fixed;inset:0;z-index:-2;background:radial-gradient(circle at 72% 16%,#8cff0018,transparent 29%),linear-gradient(#8cff0006 1px,transparent 1px),linear-gradient(90deg,#8cff0006 1px,transparent 1px);background-size:auto,46px 46px,46px 46px}
a{text-decoration:none;color:inherit}
.wrap{width:min(1800px,95%);margin:auto}
header{height:112px;display:flex;align-items:center;justify-content:space-between;gap:25px;position:sticky;top:0;z-index:100;background:var(--bg);border-bottom:1px solid var(--line)}
.logo{width:150px}
.nav{display:flex;gap:25px;color:#d8ded5;font-size:13px}
.nav a:hover,.nav .active{color:var(--g)}
.btn{display:inline-block;border:1px solid var(--g);border-radius:9px;padding:12px 20px;font-weight:700;cursor:pointer;background:transparent;color:#fff;font-size:14px;font-family:inherit}
.btn.primary{background:var(--g);color:#071007}
.btn.blue{border-color:var(--blue)}
.btn.purple{border-color:var(--purple)}
.btn.gold{border-color:var(--gold)}
.actions{display:flex;gap:12px;align-items:center}
.section{padding:48px 0}
.section-title{display:flex;justify-content:space-between;align-items:end;margin-bottom:15px}
.section-title h2{font-size:25px;margin:0}
.section-title span{color:var(--g)}
.view{color:var(--g);font-size:12px}
.panel{border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:24px}
.muted{color:var(--muted)}
footer{border-top:1px solid var(--line);padding:30px 0 90px;display:flex;justify-content:space-between;color:#7c8679;font-size:11px;flex-wrap:wrap;gap:10px}
.footer-logo{width:190px}

/* Forms */
.auth-wrap{min-height:70vh;display:flex;align-items:center;justify-content:center;padding:40px 0}
.auth-card{width:min(420px,92vw);border:1px solid var(--line);border-radius:16px;background:var(--panel);padding:34px}
.auth-card h1{font-size:24px;margin:0 0 6px}
.auth-card p.sub{color:var(--muted);font-size:13px;margin:0 0 22px}
.field{margin-bottom:16px}
.field label{display:block;font-size:12px;color:#c7cec3;margin-bottom:6px;font-weight:700;letter-spacing:.3px}
.field input{width:100%;padding:12px 14px;border-radius:9px;border:1px solid var(--line);background:#050805;color:#fff;font-size:14px;font-family:inherit}
.field input:focus{outline:none;border-color:var(--g)}
.form-error{background:#2a0808;border:1px solid #6b1414;color:#ff9d9d;padding:10px 14px;border-radius:9px;font-size:13px;margin-bottom:16px}
.form-success{background:#08240c;border:1px solid #1f6b2f;color:#9dffb0;padding:10px 14px;border-radius:9px;font-size:13px;margin-bottom:16px}
.auth-card .btn{width:100%;text-align:center;padding:13px}
.auth-switch{margin-top:18px;text-align:center;font-size:13px;color:var(--muted)}
.auth-switch a{color:var(--g);font-weight:700}

/* Dashboard */
.dash-head{display:flex;justify-content:space-between;align-items:center;margin:30px 0 20px;flex-wrap:wrap;gap:12px}
.action-grid{display:flex;gap:10px;flex-wrap:wrap}
@media(max-width:700px){
  .action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));width:100%}
  .action-grid .btn{text-align:center}
}
.dash-head h1{margin:0;font-size:26px}
.enrollment-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.enrollment-card{border:1px solid var(--line);border-radius:14px;padding:20px;background:var(--panel)}
.enrollment-card .tier-tag{font-size:11px;font-weight:800;letter-spacing:1px;color:var(--g);text-transform:uppercase}
.enrollment-card h3{margin:8px 0 12px;font-size:18px}
.progress-track{height:8px;border-radius:6px;background:#101710;overflow:hidden;margin-bottom:8px}
.progress-fill{height:100%;background:var(--g);border-radius:6px}
.progress-label{font-size:11px;color:var(--muted);margin-bottom:16px}
.empty-state{text-align:center;padding:60px 20px;color:var(--muted)}
.empty-state a{color:var(--g);font-weight:700}

/* --- Dashboard redesign: action cards, hero journey, stats, upgrade banner --- */
.welcome-quote{color:var(--muted);font-style:italic;font-size:13px;margin:4px 0 20px;}

.action-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:24px;}
.action-card{display:block;border:1px solid var(--line);border-radius:14px;padding:18px;background:var(--panel);text-decoration:none;color:inherit;transition:border-color .15s ease,transform .15s ease;}
.action-card:hover{border-color:var(--g);transform:translateY(-2px);}
.action-card .ac-icon{width:42px;height:42px;border-radius:10px;background:#0f1f0a;color:var(--g);display:flex;align-items:center;justify-content:center;margin-bottom:12px;}
.action-card .ac-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.action-card h3{margin:0;font-size:14.5px;line-height:1.3;}
.action-card .ac-arrow{color:var(--g);flex-shrink:0;transition:transform .15s ease;}
.action-card:hover .ac-arrow{transform:translateX(3px);}
.action-card p{margin:6px 0 0;font-size:11.5px;color:var(--muted);}

.journey-hero{display:grid;grid-template-columns:200px 1fr;gap:28px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:30px;background:var(--panel);margin-bottom:24px;}
.journey-hero .jh-icon{width:180px;height:180px;border-radius:50%;border:2px solid var(--g);box-shadow:0 0 30px rgba(140,255,0,.25);display:flex;align-items:center;justify-content:center;color:var(--g);}
.journey-hero h2{margin:0 0 6px;font-size:24px;font-weight:700;}
.journey-hero h2 .accent{display:block;color:var(--g);}
.journey-hero p{color:var(--muted);font-size:13.5px;line-height:1.6;margin:0 0 16px;max-width:440px;}
@media(max-width:700px){.journey-hero{grid-template-columns:1fr;text-align:center;padding:26px 20px;}.journey-hero .jh-icon{margin:0 auto;width:130px;height:130px;}.journey-hero p{max-width:none;}}

.stat-cards-row{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:14px;margin-bottom:24px;overflow:hidden;}
.stat-cards-row .sc{text-align:center;padding:20px 10px;border-right:1px solid var(--line);}
.stat-cards-row .sc:last-child{border-right:0;}
.stat-cards-row .sc .sc-icon{color:var(--g);margin-bottom:8px;}
.stat-cards-row .sc b{display:block;font-size:22px;}
.stat-cards-row .sc small{color:var(--muted);font-size:11px;}
@media(max-width:600px){.stat-cards-row{grid-template-columns:repeat(2,1fr);}.stat-cards-row .sc:nth-child(2){border-right:0;}.stat-cards-row .sc:nth-child(-n+2){border-bottom:1px solid var(--line);}}

.upgrade-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid var(--g);border-radius:14px;padding:20px 24px;background:linear-gradient(90deg,#0a1207,#070b07);margin-bottom:10px;flex-wrap:wrap;}
.upgrade-banner .ub-left{display:flex;align-items:center;gap:16px;}
.upgrade-banner .ub-icon{width:46px;height:46px;border-radius:50%;background:#101f0a;color:var(--g);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.upgrade-banner h3{margin:0 0 3px;font-size:15px;}
.upgrade-banner p{margin:0;color:var(--muted);font-size:12px;max-width:360px;}
.upgrade-banner .btn{white-space:nowrap;}

.social-icons{display:flex;gap:12px;}
.social-icons a{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--muted);transition:border-color .15s ease,color .15s ease;}
.social-icons a:hover{border-color:var(--g);color:var(--g);}

/* Course / lesson player */
.course-layout{display:grid;grid-template-columns:1fr 320px;gap:24px;margin-top:24px}
.player-wrap{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#000}
.player-wrap video{width:100%;display:block;max-height:520px;background:#000}
.player-empty{padding:80px 20px;text-align:center;color:var(--muted)}
.lesson-title-bar{padding:18px 4px}
.lesson-title-bar h2{margin:0 0 6px;font-size:20px}
.lesson-list{border:1px solid var(--line);border-radius:14px;background:var(--panel);overflow:hidden}
.lesson-item{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line);cursor:pointer}
.lesson-item:last-child{border-bottom:0}
.lesson-item:hover{background:#0b120a}
.lesson-item.active{background:#0d1a0a;border-left:3px solid var(--g)}
.lesson-check{width:20px;height:20px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0}
.lesson-check.done{background:var(--g);border-color:var(--g);color:#071007}
.lesson-item .lname{font-size:13px;flex:1}
.lesson-locked{color:#6b756b;font-size:10px}
@media(max-width:900px){.course-layout{grid-template-columns:1fr}}

/* Course cards (homepage + browse) */
.courses{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.packages-gate{border:1px dashed var(--line);border-radius:16px;padding:50px 30px;text-align:center;background:var(--panel);}
.packages-gate .pg-icon{font-size:34px;margin-bottom:12px;}
.packages-gate h3{margin:0 0 8px;font-size:20px;}
.packages-gate p{color:var(--muted);font-size:13.5px;max-width:420px;margin:0 auto 20px;line-height:1.6;}
.course{border:1px solid #31442e;border-radius:14px;padding:20px;background:linear-gradient(145deg,#0a1208,#050805);position:relative;overflow:hidden}
.course.premium{border-color:#8736d9;background:linear-gradient(145deg,#110817,#060508)}
.course.vip{border-color:#b48a00;background:linear-gradient(145deg,#121006,#080705)}
.course h3{margin:0;color:var(--g);font-size:16px}
.premium h3{color:#b954ff}
.vip h3{color:#ffc400}
.price{position:absolute;right:18px;top:15px;text-align:right;}
.price .price-was{display:block;font-size:12.5px;color:var(--muted);text-decoration:line-through;font-weight:400;margin-bottom:2px;}
.price .price-now{display:block;font-size:28px;font-weight:800;color:var(--g);}
.premium .price .price-now{color:#b954ff}
.vip .price .price-now{color:#ffc400}
.course ul{padding-left:18px;color:#a8b0a5;font-size:12px;line-height:1.7;min-height:115px}
.course .btn{display:block;text-align:center}
.course .status-tag{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.5px;padding:4px 8px;border-radius:6px;background:#0d1a0a;color:var(--g);margin-bottom:10px}
.course.locked{opacity:.88;filter:grayscale(.25)}
.course.locked::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,transparent,transparent 10px,#00000022 10px,#00000022 20px);pointer-events:none}
.bot-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;}
.bot-card-head h3{margin:0;}
.bot-card-head .price{position:static;text-align:left;}
.bot-card-head .price .price-was{display:inline;margin-right:8px;margin-bottom:0;}
.bot-card-head .price .price-now{display:inline;font-size:20px;}
.invite-badge{display:block;text-align:center;border:1px dashed #5c655c;border-radius:8px;padding:12px;font-size:10.5px;font-weight:800;letter-spacing:.8px;color:#b0b7ae}

/* Toast */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);background:#151f15;border:1px solid var(--g);color:#fff;font-size:13px;font-weight:600;padding:12px 20px;border-radius:30px;opacity:0;pointer-events:none;transition:opacity .25s ease,transform .25s ease;max-width:85%;text-align:center;z-index:999}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* Admin */
.admin-table{width:100%;border-collapse:collapse;font-size:13px}
.admin-table th,.admin-table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line)}
.admin-table th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.5px}
.upload-form{display:grid;gap:12px;max-width:480px;margin-top:20px}
.upload-form select,.upload-form input[type=text],.upload-form input[type=number],.upload-form input[type=file]{padding:10px 12px;border-radius:8px;border:1px solid var(--line);background:#050805;color:#fff;font-family:inherit;font-size:13px}
.badge{display:inline-block;font-size:10px;padding:3px 8px;border-radius:6px;font-weight:700}
.badge.paid{background:#0d1a0a;color:var(--g)}
.badge.pending{background:#241a0a;color:#ffb84d}

@media(max-width:950px){.nav{display:none}.courses{grid-template-columns:1fr}}