*{box-sizing:border-box;margin:0;padding:0}:root{--ink:#16181d;--ink-soft:#565b66;--muted:#8a8f99;--line:#e7e8ec;--bg:#f4f4f6;--surface:#fff;--accent:#4338ca;--accent-soft:#eef0fd;--danger:#d0392b;--danger-soft:#fdeeec;--success:#1f8a4c;--success-soft:#eaf9f0;--radius:14px;--radius-sm:9px;--shadow-sm:0 1px 2px #14141e0d, 0 1px 1px #14141e08;--shadow-md:0 10px 30px #14141e14, 0 2px 6px #14141e0d}html,body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,sans-serif;font-size:15px}a{color:inherit}button,pre{font-family:inherit}.login-wrap{background:radial-gradient(circle at 15% 10%, #edeefb 0%, transparent 45%), radial-gradient(circle at 85% 90%, #eef6f0 0%, transparent 45%), var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex;position:relative;overflow:hidden}.login-wrap:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(180px at 10% 80%,#4338ca0b 0%,#0000 100%),radial-gradient(220px at 90% 20%,#4338ca0a 0%,#0000 100%),radial-gradient(120px at 50% 10%,#1f8a4c08 0%,#0000 100%),radial-gradient(160px at 75% 75%,#4338ca09 0%,#0000 100%);position:absolute;inset:0}.login-wrap:after{content:"";opacity:.028;background-image:linear-gradient(30deg, var(--accent) 12%, transparent 12.5%, transparent 87%, var(--accent) 87.5%, var(--accent)), linear-gradient(150deg, var(--accent) 12%, transparent 12.5%, transparent 87%, var(--accent) 87.5%, var(--accent)), linear-gradient(30deg, var(--accent) 12%, transparent 12.5%, transparent 87%, var(--accent) 87.5%, var(--accent)), linear-gradient(150deg, var(--accent) 12%, transparent 12.5%, transparent 87%, var(--accent) 87.5%, var(--accent)), linear-gradient(60deg, #4338ca59 25%, transparent 25.5%, transparent 75%, #4338ca59 75%, #4338ca59), linear-gradient(60deg, #4338ca59 25%, transparent 25.5%, transparent 75%, #4338ca59 75%, #4338ca59);pointer-events:none;z-index:0;background-position:0 0,0 0,40px 70px,40px 70px,0 0,40px 70px;background-size:80px 140px;position:absolute;inset:0}.login-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:1;width:100%;max-width:360px;padding:36px 28px;position:relative}.brand-mark{background:var(--accent);color:#fff;border-radius:11px;justify-content:center;align-items:center;width:42px;height:42px;margin-bottom:16px;display:flex}.login-card h1{letter-spacing:-.4px;margin-bottom:4px;font-size:21px;font-weight:700}.login-card p.subtitle{color:var(--muted);margin-bottom:26px;font-size:13px}.field{margin-bottom:16px}.field label{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.4px;margin-bottom:6px;font-size:11.5px;font-weight:600;display:block}.field input{border-radius:var(--radius-sm);border:1.5px solid var(--line);width:100%;color:var(--ink);background:#fbfbfc;padding:12px 13px;font-size:15px;transition:border-color .15s,background .15s}.field input:focus{border-color:var(--accent);background:#fff;outline:none}.password-wrap{position:relative}.password-wrap input{padding-right:42px}.eye-toggle{cursor:pointer;color:var(--muted);background:0 0;border:none;justify-content:center;align-items:center;padding:8px;display:flex;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.eye-toggle:hover{color:var(--ink-soft)}.btn{background:var(--accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;justify-content:center;align-items:center;gap:7px;width:100%;margin-top:4px;padding:12px;font-size:14px;font-weight:600;transition:background .15s,transform 50ms;display:flex}.btn:hover{background:#372fb0}.btn:active{transform:scale(.99)}.btn:disabled{cursor:default;background:#c7c9d6}.btn-secondary{color:var(--ink);border:1.5px solid var(--line);background:#fff}.btn-secondary:hover{background:#fafafa}.error-msg{background:var(--danger-soft);color:var(--danger);border-radius:var(--radius-sm);border:1px solid #f4cec9;margin-bottom:16px;padding:10px 12px;font-size:13px}.success-msg{background:var(--success-soft);color:var(--success);border-radius:var(--radius-sm);border:1px solid #bfe9cf;margin-bottom:16px;padding:10px 12px;font-size:13px}.get-creds{text-align:center;border-top:1px solid var(--line);margin-top:20px;padding-top:18px}.get-creds p{color:var(--muted);margin-bottom:10px;font-size:12px}.get-creds-link{color:#fff;border-radius:var(--radius-sm);background:#25d366;align-items:center;gap:8px;padding:10px 18px;font-size:13px;font-weight:600;text-decoration:none;transition:background .15s,transform .1s,box-shadow .15s;display:inline-flex;box-shadow:0 2px 8px #25d36640}.get-creds-link:hover{background:#1fb855;transform:translateY(-1px);box-shadow:0 4px 14px #25d36659}.get-creds-link:active{transform:scale(.98)}.whatsapp-fab{z-index:100;background:#25d366;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;text-decoration:none;transition:transform .2s,box-shadow .2s;animation:.5s cubic-bezier(.34,1.56,.64,1) 1s both whatsapp-bounce-in;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 4px 14px #25d36666,0 1px 4px #0000001a}.whatsapp-fab:hover{transform:scale(1.1);box-shadow:0 6px 20px #25d36680,0 2px 6px #0000001f}.whatsapp-fab:active{transform:scale(.95)}.whatsapp-fab:after{content:"";border:2px solid #25d36659;border-radius:50%;animation:2.5s ease-out 2s infinite whatsapp-pulse;position:absolute;inset:-4px}@keyframes whatsapp-pulse{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.35)}}@keyframes whatsapp-bounce-in{0%{opacity:0;transform:scale(0)translateY(40px)}to{opacity:1;transform:scale(1)translateY(0)}}.top-header{background:var(--surface);border-bottom:1px solid var(--line);z-index:10;justify-content:space-between;align-items:center;gap:10px;padding:14px 18px;display:flex;position:sticky;top:0}.header-title-row{align-items:center;gap:12px;display:flex}.header-icon{background:var(--accent-soft);width:36px;height:36px;color:var(--accent);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.top-header h1{letter-spacing:-.3px;font-size:16.5px;font-weight:700}.top-header p{color:var(--muted);margin-top:1px;font-size:12px}.header-actions{flex-shrink:0;gap:8px;display:flex}.icon-btn{border:1.5px solid var(--line);cursor:pointer;color:var(--ink-soft);background:#fff;border-radius:8px;align-items:center;gap:6px;padding:7px 12px;font-size:12.5px;font-weight:500;transition:background .15s,border-color .15s;display:inline-flex}.icon-btn:hover{background:#fafafa;border-color:#d8d9de}.admin-wrap{max-width:760px;margin:0 auto;padding-bottom:40px}.admin-section{padding:18px}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--line);margin-bottom:16px;padding:20px 18px}.card h2{color:var(--ink);align-items:center;gap:8px;margin-bottom:14px;font-size:14.5px;font-weight:700;display:flex}.card-header-row{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.card-header-row h2{margin-bottom:0}.table-scroll{margin:0 -18px;padding:0 18px;overflow-x:auto}.student-table{border-collapse:collapse;width:100%;min-width:480px}.student-table th{text-align:left;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);border-bottom:1.5px solid var(--line);padding:8px;font-size:10.5px;font-weight:600}.student-table td{vertical-align:middle;border-bottom:1px solid #f1f1f3;padding:11px 8px;font-size:13px}.student-table tr:last-child td{border-bottom:none}.student-name{font-weight:600}.student-mobile{color:var(--ink-soft);font-variant-numeric:tabular-nums}.student-password{color:var(--ink-soft);font-variant-numeric:tabular-nums;letter-spacing:.2px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12.5px}.row-actions{gap:5px;display:flex}.row-actions button{border:1.5px solid var(--line);cursor:pointer;color:var(--ink-soft);background:#fff;border-radius:7px;justify-content:center;align-items:center;padding:6px 8px;transition:background .15s,border-color .15s,color .15s;display:flex}.row-actions button:hover{background:#fafafa;border-color:#d8d9de}.row-actions button.danger{color:var(--danger)}.row-actions button.danger:hover{background:var(--danger-soft);border-color:#f0c6bf}.empty-state{color:var(--muted);text-align:center;padding:24px 6px;font-size:13px}.overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:50;background:#0f0f1480;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-md);width:100%;max-width:360px;padding:22px 22px 20px}.modal-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.modal h3{font-size:16.5px;font-weight:700}.modal-close{cursor:pointer;color:var(--muted);background:0 0;border:none;flex-shrink:0;padding:2px;display:flex}.modal-close:hover{color:var(--ink)}.modal p.hint{color:var(--muted);margin:6px 0 16px;font-size:12.5px;line-height:1.5}.cred-block{border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);white-space:pre-wrap;word-break:break-word;background:#fafafb;margin-bottom:14px;padding:14px 15px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:13px;line-height:1.8}.section-label{color:var(--muted);letter-spacing:.5px;text-transform:uppercase;padding:14px 18px 8px;font-size:11px;font-weight:600}.lesson-item{background:var(--surface);cursor:pointer;color:inherit;border-bottom:1px solid #eeeef1;align-items:center;gap:13px;padding:14px 18px;text-decoration:none;transition:background .1s;display:flex}.lesson-item:hover{background:#fafafb}.lesson-item:active{background:#f2f2f4}.lesson-icon{background:var(--accent-soft);width:38px;height:38px;color:var(--accent);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.lesson-meta{flex:1;min-width:0}.lesson-title{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.lesson-type{color:var(--muted);text-transform:uppercase;letter-spacing:.3px;margin-top:2px;font-size:11px}.chevron{color:#c7c9d3;flex-shrink:0}.lesson-header{background:var(--surface);border-bottom:1px solid var(--line);z-index:10;align-items:center;gap:12px;padding:14px 18px;display:flex;position:sticky;top:0}.back-btn{cursor:pointer;color:var(--ink-soft);background:0 0;border:none;border-radius:8px;flex-shrink:0;padding:4px;line-height:1;display:flex}.back-btn:hover{color:var(--ink);background:#f4f4f6}.lesson-header-title{white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:700;overflow:hidden}.lesson-body{padding:18px}.video-wrap{border-radius:var(--radius);background:#000;width:100%;overflow:hidden}.video-wrap video{width:100%;max-height:260px;display:block}.text-content{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px 18px;line-height:1.7}.text-content h1{letter-spacing:-.3px;margin-bottom:12px;font-size:19px;font-weight:700}.text-content h2{margin:18px 0 7px;font-size:15.5px;font-weight:700}.text-content h3{color:var(--accent);margin:13px 0 5px;font-size:13.5px;font-weight:700}.text-content p{color:var(--ink-soft);margin-bottom:9px;font-size:13.5px}.text-content strong{color:var(--ink);font-weight:700}.file-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);align-items:center;gap:16px;padding:22px 18px;display:flex}.file-icon{background:var(--accent-soft);width:52px;height:52px;color:var(--accent);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.file-info{flex:1}.file-info p{color:var(--muted);margin-top:3px;font-size:12.5px}.download-btn{background:var(--accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;margin-top:13px;padding:9px 18px;font-size:13px;font-weight:600;text-decoration:none;display:inline-block}.download-btn:hover{background:#372fb0}.lesson-nav{gap:8px;margin-top:18px;display:flex}.nav-btn{background:var(--surface);border:1.5px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;color:var(--ink-soft);text-align:center;flex:1;padding:11px;font-size:13px;font-weight:500;transition:background .15s}.nav-btn:hover:not(:disabled){background:#fafafb}.nav-btn:disabled{color:#ccced6;cursor:default}.center-loading{min-height:100vh;color:var(--muted);justify-content:center;align-items:center;font-size:13px;display:flex}.dashboard-page{background:radial-gradient(ellipse at 20% 0%, #4338ca0a 0%, transparent 50%), radial-gradient(ellipse at 80% 100%, #1f8a4c08 0%, transparent 50%), var(--bg);min-height:100vh}.dash-content{max-width:720px;margin:0 auto;padding:0 16px 80px}.dash-greeting{padding:28px 4px 8px}.dash-greeting-text h2{letter-spacing:-.5px;color:var(--ink);align-items:center;gap:4px;font-size:22px;font-weight:800;display:flex}.dash-wave{transform-origin:70% 70%;margin-right:2px;animation:2s ease-in-out infinite dash-wave-anim;display:inline-block}@keyframes dash-wave-anim{0%,60%,to{transform:rotate(0)}10%{transform:rotate(14deg)}20%{transform:rotate(-8deg)}30%{transform:rotate(14deg)}40%{transform:rotate(-4deg)}50%{transform:rotate(10deg)}}.dash-greeting-text p{color:var(--muted);margin-top:4px;font-size:13.5px;line-height:1.5}.dash-section{padding-top:18px}.dash-section-header{padding:0 2px 12px}.dash-section-header h3{letter-spacing:-.2px;color:var(--ink);align-items:center;gap:7px;font-size:15px;font-weight:700;display:flex}.dash-section-header h3 svg{color:var(--accent)}.course-grid{flex-direction:column;gap:14px;display:flex}.course-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .18s,box-shadow .18s,border-color .18s;animation:.4s both dash-card-in;overflow:hidden}@keyframes dash-card-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.course-card:hover{border-color:#d8d9e2;transform:translateY(-3px);box-shadow:0 12px 36px #14141e1a,0 4px 10px #14141e0f}.course-card:active{transform:translateY(-1px)}.course-banner{justify-content:center;align-items:center;height:110px;display:flex;position:relative;overflow:hidden}.course-banner:after{content:"";pointer-events:none;background:linear-gradient(#0000 50%,#0000001f 100%);position:absolute;inset:0}.course-emoji{filter:drop-shadow(0 2px 8px #0003);z-index:1;font-size:42px;animation:3s ease-in-out infinite dash-emoji-float}@keyframes dash-emoji-float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.course-active-badge{z-index:2;letter-spacing:.2px;text-transform:uppercase;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;background:#ffffff38;border:1px solid #ffffff4d;border-radius:20px;align-items:center;gap:4px;padding:4px 10px;font-size:10.5px;font-weight:700;display:inline-flex;position:absolute;top:10px;right:10px}.course-card-body{padding:16px 18px 18px}.course-card-body h4{letter-spacing:-.3px;color:var(--ink);margin-bottom:5px;font-size:16px;font-weight:700;line-height:1.3}.course-card-body p{color:var(--ink-soft);margin-bottom:12px;font-size:13px;line-height:1.55}.course-tags{flex-wrap:wrap;gap:5px;margin-bottom:14px;display:flex}.course-tag{background:var(--accent-soft);color:var(--accent);letter-spacing:.1px;border-radius:20px;padding:3px 9px;font-size:10.5px;font-weight:600}.course-cta{background:var(--accent);color:#fff;border-radius:var(--radius-sm);align-items:center;gap:4px;margin-top:14px;padding:9px 18px;font-size:13px;font-weight:600;transition:background .15s,gap .2s;display:inline-flex}.course-card:hover .course-cta{background:#372fb0;gap:8px}@media (max-width:480px){.course-banner{height:95px}.course-emoji{font-size:34px}.dash-greeting-text h2{font-size:19px}}
