:root{--primary-color:#9d4edd;--primary-hover:#c77dff;--bg-color:#10002b;--surface-color:#240046;--surface-light:#3c096c;--text-primary:#fff;--text-secondary:#e0e0e0;--accent-color:#5a189a;--border-color:#ffffff1a;--glass-bg:#24004699;color:var(--text-primary);background-color:var(--bg-color);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}body{background:radial-gradient(circle at top left, var(--surface-light) 0%, var(--bg-color) 40%);min-width:320px;min-height:100vh;margin:0}h1,h2,h3,h4,h5,h6{letter-spacing:-.02em;margin-top:0;font-weight:700}a{color:var(--primary-color);-webkit-text-decoration:inherit;text-decoration:inherit;font-weight:500;transition:color .3s}a:hover{color:var(--primary-hover)}button{background-color:var(--primary-color);color:#fff;cursor:pointer;border:1px solid #0000;border-radius:8px;padding:.6em 1.2em;font-family:inherit;font-size:1em;font-weight:600;transition:all .25s;box-shadow:0 4px 14px #9d4edd66}button:hover{background-color:var(--primary-hover);transform:translateY(-2px);box-shadow:0 6px 20px #c77dff99}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.glass-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-color);border-radius:16px;padding:2rem;box-shadow:0 8px 32px #0000004d}input{border:1px solid var(--border-color);width:100%;color:var(--text-primary);box-sizing:border-box;background-color:#ffffff0d;border-radius:8px;margin-bottom:1rem;padding:.8rem 1rem;font-size:1rem;transition:border-color .3s,background-color .3s}input:focus{border-color:var(--primary-hover);background-color:#ffffff1a;outline:none}.form-group label{color:var(--text-secondary);margin-bottom:.5rem;font-weight:500;display:block}html,body{overflow-x:clip}img,svg,video,pre,table{max-width:100%}@media (width<=900px){.glass-panel{padding:1.5rem}}@media (width<=600px){.glass-panel{border-radius:12px;padding:1.15rem}h1{font-size:1.75rem}h2{font-size:1.4rem}button,.btn-primary,.btn-secondary{min-height:44px;font-size:1rem}input,select,textarea{font-size:16px}}@media (hover:none){button:hover,.btn-primary:hover,.btn-secondary:hover{transform:none}}.navbar{border-radius:100px;justify-content:space-between;align-items:center;margin:1rem 2rem;padding:1rem 2rem;display:flex}.navbar-brand a{color:var(--text-primary);background:linear-gradient(135deg,#c77dff,#e0aaff);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.5rem;font-weight:800;text-decoration:none}.navbar-links{gap:2rem;margin:0;padding:0;list-style:none;display:flex}.navbar-links a{color:var(--text-secondary);font-weight:600}.navbar-links a:hover{color:var(--primary-hover)}.navbar-auth{gap:1rem;display:flex}.btn-secondary{color:var(--text-primary);border:1px solid var(--border-color);background-color:#0000;border-radius:8px;padding:.6em 1.2em;font-weight:600;text-decoration:none;transition:all .25s;display:inline-block}.btn-secondary:hover{border-color:var(--text-secondary);background-color:#ffffff1a}.btn-primary{color:#fff;background-color:var(--primary-color);border-radius:8px;padding:.6em 1.2em;font-weight:600;text-decoration:none;transition:all .25s;display:inline-block;box-shadow:0 4px 14px #9d4edd66}.btn-primary:hover{background-color:var(--primary-hover);color:#fff;transform:translateY(-2px);box-shadow:0 6px 20px #c77dff99}@media (width<=900px){.navbar{margin:.75rem 1rem;padding:.85rem 1.25rem}.navbar-links{gap:1.25rem}.navbar-brand a{font-size:1.25rem}}@media (width<=600px){.navbar{border-radius:16px;flex-direction:column;gap:.85rem;margin:.5rem .75rem;padding:1rem}.navbar-brand a{font-size:1.15rem}.navbar-links{flex-wrap:wrap;justify-content:center;gap:.75rem 1.25rem}.navbar-links:empty{display:none}.navbar-auth{flex-wrap:wrap;justify-content:center;width:100%}.navbar-auth .btn-primary,.navbar-auth .btn-secondary{text-align:center}}.home-container{flex-direction:column;align-items:center;gap:4rem;padding-top:4rem;display:flex}.text-center{text-align:center}.gradient-text{background:linear-gradient(135deg,#e0aaff,#9d4edd);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:1rem;font-size:3.5rem}.subtitle{color:var(--text-secondary);max-width:600px;margin:0 auto 2rem;font-size:1.2rem}.hero-cta{justify-content:center;gap:1rem;display:flex}.large-btn{padding:.8rem 1.5rem;font-size:1.1rem}.features-section{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:2rem;width:100%;display:grid}.feature-card{transition:transform .3s}.feature-card:hover{transform:translateY(-5px)}.feature-card h3{color:var(--primary-hover);margin-bottom:1rem}@media (width<=900px){.home-container{gap:2.5rem;padding-top:2rem}.gradient-text{font-size:2.5rem}.features-section{gap:1.25rem}}@media (width<=600px){.home-container{gap:2rem;padding-top:1rem}.gradient-text{font-size:1.9rem;line-height:1.2}.subtitle{margin-bottom:1.5rem;font-size:1rem}.hero-cta{flex-direction:column;align-items:stretch;gap:.75rem}.large-btn{padding:.85rem 1.25rem;font-size:1rem}}.password-field{display:block;position:relative}.password-field input{padding-right:3rem}.password-toggle{width:3rem;height:calc(100% - 1rem);box-shadow:none;cursor:pointer;opacity:.75;background:0 0;border:none;justify-content:center;align-items:center;padding:0;font-size:1.1rem;line-height:1;transition:opacity .2s;display:flex;position:absolute;top:0;right:0}.password-toggle:hover{box-shadow:none;opacity:1;background:0 0;transform:none}.password-toggle:focus-visible{outline:2px solid var(--primary-hover);outline-offset:-2px;border-radius:8px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=600px){.password-toggle{width:3.25rem;font-size:1.2rem}}.auth-container{justify-content:center;align-items:center;min-height:70vh;display:flex}.auth-card{text-align:center;width:100%;max-width:400px}.auth-card h2{color:var(--primary-hover);margin-bottom:.5rem}.auth-subtitle{color:var(--text-secondary);margin-bottom:2rem}.auth-form{text-align:left}.full-width{width:100%;margin-top:1rem}.auth-footer{margin-top:2rem;font-size:.9rem}.auth-footer a{font-weight:600}.auth-error{color:#ff4d4d;background-color:#ff4d4d1a;border:1px solid #ff4d4d4d;border-radius:6px;margin-bottom:1rem;padding:.6rem .75rem;font-size:.9rem}.auth-success{color:#2ecc71;background-color:#2ecc711f;border:1px solid #2ecc7159;border-radius:6px;margin-bottom:1rem;padding:.6rem .75rem;font-size:.9rem}.auth-form select{border:1px solid var(--border-color);width:100%;color:var(--text-primary);box-sizing:border-box;background-color:#ffffff0d;border-radius:8px;margin-bottom:1rem;padding:.8rem 1rem;font-family:inherit;font-size:1rem;transition:border-color .3s,background-color .3s}.auth-form select:focus{border-color:var(--primary-hover);background-color:#ffffff1a;outline:none}.auth-form select option{background-color:var(--surface-color);color:var(--text-primary)}.forgot-link{width:100%;box-shadow:none;color:var(--primary-hover);text-align:right;cursor:pointer;background:0 0;border:none;margin:-.25rem 0 1rem;padding:0;font-size:.88rem;font-weight:600;display:block}.forgot-link:hover{box-shadow:none;background:0 0;text-decoration:underline;transform:none}.forgot-panel{border:1px solid var(--border-color);text-align:left;background:#ffffff0a;border-radius:10px;margin-top:1.25rem;padding:1rem}.forgot-panel h3{color:var(--primary-hover);margin:0 0 .35rem;font-size:1rem}.forgot-panel p{color:var(--text-secondary);margin:0 0 .85rem;font-size:.85rem}.forgot-actions{gap:.6rem;display:flex}.forgot-actions button{flex:1}@media (width<=600px){.auth-container{align-items:flex-start;min-height:auto;padding:1rem 0}.auth-card{max-width:100%}.auth-subtitle{margin-bottom:1.5rem;font-size:.95rem}.full-width{min-height:46px}.auth-form select{min-height:46px;font-size:16px}.forgot-actions{flex-direction:column}}.mywork-container{grid-template-columns:1fr 2fr;gap:2rem;height:calc(100vh - 120px);display:grid}.problem-section{flex-direction:column;display:flex}.problem-section h2{color:var(--primary-hover);margin-bottom:1rem}.example{background-color:#0003;border-radius:8px;margin-top:1rem;padding:1rem}.example pre{color:#a9ff68;margin:.5rem 0 0}.editor-section{flex-direction:column;display:flex}.editor-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.editor-header h3{margin:0}.editor-wrapper{border:1px solid var(--border-color);border-radius:8px;flex:1;overflow:hidden}.cm-theme-dark{background-color:#1e1e1e!important}.output-section{background-color:#0006;border-radius:8px;min-height:100px;margin-top:1.5rem;padding:1rem}.output-section h4{color:var(--text-secondary);margin-bottom:.5rem}.console-output{color:#c77dff;margin:0;font-family:monospace}@media (width<=900px){.mywork-container{grid-template-columns:minmax(190px,1fr) 2.4fr;gap:1rem;height:auto;min-height:calc(100vh - 120px)}.sidebar{max-height:calc(100vh - 140px);position:sticky;top:1rem}}@media (width<=600px){.mywork-container{grid-template-columns:1fr;gap:1rem;height:auto;min-height:0}.sidebar{max-height:32vh;padding:1rem;position:static}.sidebar .module h4{font-size:.95rem}.sidebar ul{padding-left:.5rem}.sidebar li{min-height:40px;padding:.5rem .25rem;font-size:.9rem}.editor-header{z-index:2;background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);margin:-.5rem 0 .75rem;padding:.5rem 0;position:sticky;top:0}.editor-header h3{font-size:1.05rem}.run-btn{min-height:44px;padding:.6em 1.4em}.editor-wrapper .cm-editor,.editor-wrapper .cm-scroller{height:260px;max-height:45vh}.editor-wrapper .cm-content,.editor-wrapper .cm-gutters{font-size:16px}.output-section{margin-top:1rem;padding:.75rem}.console-output{white-space:pre-wrap;word-break:break-word;font-size:.85rem}.problem-section h2{font-size:1.2rem}}.hint-box{border-left:4px solid var(--primary-color);background-color:#9d4edd33;border-radius:4px;margin-top:1rem;padding:.8rem}.hint-box p{margin:0;font-size:.95rem}.validation-message{border-radius:8px;margin-top:1rem;padding:1rem;font-weight:600;animation:.3s fadeIn}.validation-message.success{color:#2ecc71;background-color:#2ecc7133;border:1px solid #2ecc71}.validation-message.failure{color:#e74c3c;background-color:#e74c3c33;border:1px solid #e74c3c}.validation-message p{margin:0}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.sidebar{min-height:0;overflow-y:auto}.sidebar li{cursor:pointer;transition:all .2s}.sidebar .module h4{cursor:pointer}.sidebar ul{padding-left:1rem;list-style-type:none}.sidebar li.locked{cursor:not-allowed;opacity:.5;color:var(--text-secondary)}.sidebar li.locked:hover{color:var(--text-secondary);background:0 0}.scores-container{justify-content:center;align-items:center;padding:2rem 0;display:flex}.leaderboard-card{text-align:center;width:100%;max-width:800px}.leaderboard-card h2{color:var(--primary-hover);margin-bottom:.5rem}.table-wrapper{margin-top:2rem;overflow-x:auto}.leaderboard-table{border-collapse:collapse;text-align:left;width:100%}.leaderboard-table th,.leaderboard-table td{border-bottom:1px solid var(--border-color);padding:1rem}.leaderboard-table th{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.9rem;font-weight:600}.leaderboard-table tbody tr{transition:background-color .2s}.leaderboard-table tbody tr:hover{background-color:#ffffff0d}.top-rank td{font-weight:600}.score-cell{color:var(--primary-hover);font-weight:700}@media (width<=600px){.scores-container{padding:.5rem 0}.table-wrapper{margin-top:1.25rem}.leaderboard-table th,.leaderboard-table td{padding:.6rem .4rem;font-size:.9rem}.leaderboard-table th{letter-spacing:.02em;font-size:.72rem}}.cheatsheet-page{max-width:1400px;margin:0 auto;padding:2rem}.cheatsheet-hero{text-align:center;margin-bottom:3rem}.cheatsheet-hero h1{background:linear-gradient(135deg, var(--primary-hover), #fff);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:.75rem;font-size:2.8rem}.cheatsheet-hero p{color:var(--text-secondary);font-size:1.1rem}.cheatsheet-grid{grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:1.5rem;display:grid}.cheat-card{padding:1.5rem;transition:transform .2s,box-shadow .2s}.cheat-card:hover{transform:translateY(-3px);box-shadow:0 12px 40px #9d4edd40}.cheat-card-header{margin-bottom:1.2rem;padding-left:.75rem}.cheat-card-header h2{color:var(--primary-hover);letter-spacing:0;margin:0;font-size:1.1rem}.cheat-items{flex-direction:column;gap:1rem;display:flex}.cheat-item{border-bottom:1px solid var(--border-color);padding-bottom:.8rem}.cheat-item:last-child{border-bottom:none;padding-bottom:0}.cheat-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);margin-bottom:.4rem;font-size:.78rem;font-weight:600;display:block}.cheat-code{color:#c77dff;white-space:pre;background-color:#00000059;border:1px solid #9d4edd33;border-radius:8px;margin:0;padding:.7rem 1rem;font-family:Fira Code,Courier New,monospace;font-size:.82rem;line-height:1.6;overflow-x:auto}@media (width<=768px){.cheatsheet-grid{grid-template-columns:1fr}.cheatsheet-hero h1{font-size:2rem}}@media (width<=600px){.cheatsheet-page{padding:1rem .75rem}.cheatsheet-hero{margin-bottom:1.75rem}.cheatsheet-hero h1{font-size:1.7rem}.cheatsheet-hero p{font-size:.95rem}.cheat-card{padding:1.1rem}.cheat-code{-webkit-overflow-scrolling:touch;padding:.6rem .7rem;font-size:.78rem}}.coaching-page{max-width:1200px;margin:0 auto;padding:2rem}.coaching-hero{text-align:center;margin-bottom:2rem;padding:2rem 1.5rem}.coaching-hero-badge{background:var(--primary-color);color:#fff;border-radius:9999px;margin-bottom:.8rem;padding:.3rem .8rem;font-size:.85rem;font-weight:600;display:inline-block}.coaching-hero h1{background:linear-gradient(135deg, var(--primary-hover), #fff);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:.5rem 0;font-size:2.2rem}.coaching-subtitle{color:var(--text-secondary);margin-bottom:1rem;font-size:1.1rem}.coaching-price-tag{color:#ffb400;margin-bottom:1rem;font-size:1.4rem;font-weight:600}.coaching-meta span{color:var(--text-secondary);margin:0 .6rem;font-size:.95rem;display:inline-block}.calendar-panel{padding:1.5rem}.calendar-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.cal-nav-btn{background:var(--primary-color);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:.3rem .6rem;font-weight:600}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:.4rem;display:grid}.cal-day-name{text-align:center;color:var(--text-secondary);font-size:.85rem;font-weight:600}.cal-day{border:1px solid var(--border-color);cursor:pointer;height:2.5rem;color:var(--text-primary);background:#ffffff14;border-radius:4px;justify-content:center;align-items:center;display:flex}.cal-day.available:hover{background:#ffffff26}.cal-day.disabled{color:var(--text-secondary);cursor:not-allowed;background:#ffffff08}.cal-day.selected{background:var(--primary-color);color:#fff}.calendar-hint{color:var(--text-secondary);text-align:center;margin-top:.4rem;font-size:.75rem}.timeslots-panel{padding:1.5rem}.timeslots-grid{flex-wrap:wrap;gap:.5rem;margin-top:.5rem;display:flex}.timeslot-btn{border:1px solid var(--border-color);cursor:pointer;background:#ffffff14;border-radius:4px;padding:.4rem .8rem;font-weight:500}.timeslot-btn.selected{background:var(--primary-color);color:#fff}.booking-summary{flex-direction:column;gap:.5rem;margin-top:1rem;display:flex}.summary-row{color:var(--text-primary);justify-content:space-between;font-size:.95rem;display:flex}.btn-primary.book-btn{background:var(--primary-color);color:#fff;cursor:pointer;border:none;border-radius:4px;align-self:flex-start;margin-top:.8rem;padding:.6rem 1.2rem;font-weight:600}.coaching-confirmation{text-align:center;padding:2rem}.confirmation-icon{margin-bottom:.8rem;font-size:3rem}.confirmation-details{flex-direction:column;align-items:center;gap:.5rem;margin:1rem 0;display:flex}.conf-label{margin-right:.5rem;font-weight:600}.zoom-notice{color:var(--text-secondary);justify-content:center;align-items:center;gap:.5rem;margin-top:1rem;font-size:.9rem;display:flex}@media (width<=600px){.coaching-hero{margin-bottom:1.25rem;padding:1.25rem .85rem}.coaching-hero h1{font-size:1.6rem}.coaching-subtitle{font-size:.95rem}.coaching-meta span{margin:.2rem 0;display:block}.calendar-panel,.timeslots-panel{padding:1rem .75rem}.calendar-grid{gap:.2rem}.cal-day{height:2.6rem;font-size:.9rem}.cal-day-name{font-size:.7rem}.cal-nav-btn{min-width:44px;min-height:40px;font-size:1rem}.timeslots-grid{gap:.5rem}.timeslot-btn{text-align:center;flex:calc(33.333% - .5rem);min-height:44px;padding:.5rem .4rem}.summary-row{gap:.75rem;font-size:.9rem}.btn-primary.book-btn{text-align:center;align-self:stretch;min-height:46px}.coaching-confirmation{padding:1.25rem}}@media (width<=768px){.coaching-page{padding:1rem}.calendar-grid{grid-template-columns:repeat(7,1fr)}}.booking-form{text-align:left;flex-direction:column;gap:.4rem;margin-top:1rem;display:flex}.booking-label{opacity:.9;font-size:.9rem;font-weight:600}.booking-input{box-sizing:border-box;width:100%;color:inherit;font:inherit;resize:vertical;background:#ffffff0f;border:1px solid #ffffff2e;border-radius:8px;padding:.6rem .7rem;font-size:.9rem}.booking-input:focus{background:#ffffff1a;border-color:#4b8bbe;outline:none}.booking-hint{opacity:.65;margin:0 0 .4rem;font-size:.78rem}.booking-checkbox{cursor:pointer;align-items:center;gap:.55rem;margin:.3rem 0;font-size:.9rem;display:flex}.booking-checkbox input{accent-color:#4b8bbe;cursor:pointer;width:16px;height:16px}.admin-page{max-width:1100px;margin:0 auto;padding:1.5rem 1rem 3rem}.admin-title{margin-bottom:1.2rem}.admin-kpis{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.4rem;display:grid}.admin-kpi{flex-direction:column;gap:.25rem;padding:1.1rem 1.2rem;display:flex}.kpi-label{opacity:.7;text-transform:uppercase;letter-spacing:.04em;font-size:.82rem}.kpi-value{font-size:1.9rem;font-weight:700;line-height:1.1}.kpi-sub{opacity:.6;font-size:.78rem}.admin-card{margin-bottom:1.4rem;padding:1.3rem 1.4rem}.admin-card h2{margin-top:0;margin-bottom:.9rem;font-size:1.15rem}.admin-table{border-collapse:collapse;width:100%;font-size:.9rem}.admin-table th,.admin-table td{text-align:left;vertical-align:top;border-bottom:1px solid #ffffff14;padding:.55rem .6rem}.admin-table th{text-transform:uppercase;letter-spacing:.04em;opacity:.65;font-size:.78rem}.admin-email{opacity:.6;font-size:.78rem}.admin-topic-cell{max-width:320px}.admin-hint{opacity:.6;margin:.7rem 0 0;font-size:.78rem}.admin-cal-header{justify-content:space-between;align-items:center;margin-bottom:.8rem;display:flex}.admin-cal-header h2{margin:0}.admin-cal-grid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.admin-cal-dayname{text-align:center;text-transform:uppercase;opacity:.55;padding-bottom:4px;font-size:.74rem}.admin-cal-day{aspect-ratio:1;color:inherit;font:inherit;cursor:default;background:#ffffff08;border:1px solid #ffffff14;border-radius:8px;justify-content:center;align-items:center;display:flex;position:relative}.admin-cal-day.today{border-color:#4b8bbecc}.admin-cal-day.has-sessions{cursor:pointer;background:#4b8bbe47}.admin-cal-day.has-sessions:hover{background:#4b8bbe73}.admin-cal-day.selected{outline:2px solid #4b8bbe}.admin-cal-num{font-size:.9rem}.admin-cal-badge{color:#06281a;background:#2ecc71;border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:.68rem;font-weight:700;display:flex;position:absolute;top:3px;right:4px}.admin-day-detail{border-top:1px solid #ffffff1a;margin-top:1.1rem;padding-top:.9rem}.admin-day-detail h3{margin:0 0 .6rem;font-size:1rem}.admin-session{background:#ffffff0a;border-radius:8px;flex-direction:column;gap:.3rem;margin-bottom:.6rem;padding:.7rem .85rem;font-size:.88rem;display:flex}.admin-session-head{align-items:center;gap:.6rem;display:flex}.admin-topic{opacity:.85}.tag{border-radius:999px;padding:2px 8px;font-size:.72rem;font-weight:600}.tag-free{color:#2ecc71;background:#2ecc7133}.tag-paid{color:#f1c40f;background:#f1c40f33}.app-container{flex-direction:column;min-height:100vh;display:flex}.main-content{box-sizing:border-box;flex:1;width:100%;max-width:1200px;margin:0 auto;padding:2rem}@media (width<=900px){.main-content{padding:1.5rem 1rem}}@media (width<=600px){.main-content{padding:1rem .75rem}}
