*{box-sizing:border-box}
:root{--navy:#172235;--ink:#223047;--muted:#69758a;--line:#e7eaf0;--paper:#f5f6f8;--orange:#f47b20;--yellow:#f9bd2e;--red:#df4a4a;--green:#2f9c71;--blue:#3c6fd8;--white:#fff;--shadow:0 14px 38px rgba(30,44,67,.09)}
html,body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--paper)}button,input,textarea,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}
/* public landing */
.landing-body{min-height:100vh;background:#fff;overflow-x:hidden}.public-topbar{height:74px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;border-bottom:1px solid rgba(231,234,240,.9);background:rgba(255,255,255,.94);backdrop-filter:blur(12px);position:sticky;top:0;z-index:10}.public-logo{width:195px}.public-nav{display:flex;gap:6px}.public-nav button{border:0;background:transparent;padding:10px 16px;border-radius:12px;font-weight:800;color:#536075}.public-nav button.active,.public-nav button:hover{background:#fff1e6;color:#c95910}.landing-main{min-height:calc(100vh - 74px)}.landing-hero{min-height:calc(100vh - 74px);display:grid;grid-template-columns:1.3fr .55fr;align-items:center;gap:38px;padding:58px 7vw;position:relative;overflow:hidden;background:linear-gradient(90deg,rgba(255,255,255,.98) 0 42%,rgba(255,255,255,.86) 58%,rgba(246,241,234,.76) 100%)}.landing-watermark{position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(255,255,255,1) 0 32%,rgba(255,255,255,.82) 47%,rgba(255,255,255,.25) 72%,rgba(255,255,255,.08)),url('/assets/landing_professora.png');background-size:cover;background-position:center;opacity:.52}.landing-copy,.landing-login{position:relative;z-index:2}.landing-copy{max-width:720px}.landing-copy h1{font-size:58px;line-height:1.02;letter-spacing:-2px;margin:14px 0 20px;color:#18243a}.landing-copy>p{font-size:20px;line-height:1.65;max-width:680px;color:#526076}.landing-promises{display:grid;grid-template-columns:repeat(2,220px);gap:12px;margin-top:34px}.landing-promises span{background:rgba(255,255,255,.9);border:1px solid var(--line);border-radius:14px;padding:13px 16px;font-weight:800}.login-card{background:#fff;border-radius:24px;box-shadow:0 24px 70px rgba(41,49,61,.15);padding:38px}.landing-login{max-width:420px;width:100%;justify-self:end}.login-card h2{font-size:30px;margin:0}.muted{color:var(--muted)}.tiny{font-size:12px;color:#8992a2}.public-section{min-height:calc(100vh - 74px);display:grid;place-items:center;padding:60px 8vw;background:linear-gradient(135deg,#fff,#f8f3ed)}.public-section-inner{max-width:1050px}.public-section-inner h2{font-size:42px;line-height:1.1;margin:10px 0 26px}.public-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.public-cards article{background:#fff;border:1px solid var(--line);padding:26px;border-radius:20px;box-shadow:var(--shadow)}.public-cards article b{font-size:20px}.public-cards article p,.story-block p{line-height:1.7;color:#556278;font-size:17px}
/* forms */
label{display:block;font-weight:750;margin:16px 0 6px}input,textarea,select{width:100%;border:1px solid #dbe0e8;border-radius:12px;padding:12px 13px;background:#fff;color:var(--ink);outline:none}input:focus,textarea:focus,select:focus{border-color:#f39b50;box-shadow:0 0 0 3px rgba(244,123,32,.11)}.btn{border:0;border-radius:12px;padding:11px 16px;font-weight:850}.btn.primary{background:linear-gradient(100deg,var(--orange),#ec5e31);color:#fff}.btn.secondary{background:#fff;border:1px solid var(--line);color:var(--ink)}.btn.ghost{background:#f2f3f6;color:var(--ink)}.btn.small{padding:8px 11px;font-size:13px}.form-msg{min-height:20px;margin-top:9px;color:var(--red);font-size:13px}.eyebrow{font-size:12px;font-weight:900;letter-spacing:2px;color:var(--orange)}.link-btn{border:0;background:transparent;color:#2263c8;font-weight:800}
/* app shell */
.app-body{overflow:hidden}.shell{height:100vh;display:grid;grid-template-rows:76px 1fr}.topbar{background:#fff;border-bottom:1px solid var(--line);display:grid;grid-template-columns:220px 1fr auto;align-items:center;padding:0 28px;gap:22px}.topbar img{width:185px}.nav{display:flex;gap:4px;height:100%;align-items:center;overflow:auto}.nav button{height:42px;border:0;background:transparent;padding:0 13px;border-radius:10px;color:#536075;font-weight:800;white-space:nowrap}.nav button.active,.nav button:hover{background:#fff2e8;color:#ca5c11}.userbox{display:flex;align-items:center;gap:12px}.avatar{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,var(--yellow),var(--red));display:grid;place-items:center;color:#fff;font-weight:900}.workspace{min-height:0;padding:18px 22px 22px}.view{height:100%;display:none;min-height:0}.view.active{display:block}.card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 3px 16px rgba(37,46,68,.035);padding:18px;min-height:0}.card.scroll{overflow:auto}.full-card{height:calc(100% - 58px)}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.section-title h2,.section-title h3{margin:0}.view-head{height:54px;display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.view-head h1{font-size:25px;margin:2px 0 0}.compact-head{align-items:center}.meta{font-size:12px;color:var(--muted);margin-top:3px}.pill{font-size:11px;font-weight:850;padding:5px 8px;border-radius:999px;background:#f1f3f6;color:#5a6475;white-space:nowrap}.pill.orange{background:#fff0e2;color:#b8500d}.pill.green{background:#eaf7f1;color:#287b5d}.pill.red{background:#fdeaea;color:#a93636}.dot{width:10px;height:10px;border-radius:50%;background:var(--orange);flex:none}.grow{flex:1;min-width:0}.grow b{display:block}.empty{display:grid;place-items:center;text-align:center;color:var(--muted);padding:28px 20px;border:1px dashed #d5dae3;border-radius:16px;min-height:120px}.small-empty{min-height:80px}.progress{height:7px;background:#eceff4;border-radius:99px;overflow:hidden;margin-top:8px}.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--yellow),var(--orange));border-radius:99px}
/* modal */
.modal-backdrop{position:fixed;inset:0;background:rgba(14,21,33,.58);display:grid;place-items:center;padding:24px;z-index:40}.modal{position:relative;background:#fff;border-radius:20px;box-shadow:0 30px 80px rgba(0,0,0,.25);width:min(760px,96vw);max-height:90vh;overflow:auto;padding:28px}.modal-wide{width:min(1180px,97vw);height:min(92vh,850px);overflow:hidden}.modal-x{position:absolute;right:14px;top:12px;border:0;background:#f2f3f6;width:36px;height:36px;border-radius:50%;font-size:24px;line-height:1}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.form-grid .wide{grid-column:1/-1}.success-box{background:#f0fbf6;border:1px solid #cdecdc;border-radius:14px;padding:16px}.toast{position:fixed;right:24px;bottom:24px;background:#162033;color:#fff;padding:12px 16px;border-radius:12px;z-index:70;box-shadow:var(--shadow)}
/* availability */
.availability-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin:16px 0}.availability-day{margin:0!important;border:1px solid var(--line);border-radius:12px;padding:10px;text-align:center}.availability-day span{display:block;font-size:12px;margin-bottom:5px}.availability-day input{padding:8px;text-align:center}.availability-day small{display:block;color:var(--muted);margin-top:3px}.availability-summary{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:15px 0}.availability-summary div{border:1px solid var(--line);border-radius:10px;padding:10px 6px;text-align:center}.availability-summary b,.availability-summary span{display:block}.availability-summary span{font-size:12px;color:var(--muted);margin-top:4px}.plan-capacity{display:flex;justify-content:space-between;padding:14px;background:#f8fafc;border-radius:12px}.plan-layout{height:calc(100% - 64px);display:grid;grid-template-columns:330px 1fr;gap:16px;min-height:0}.plan-day{margin-bottom:22px}.plan-day h3{margin:0 0 9px}.plan-day h3 small{font-size:12px;color:var(--muted);font-weight:600}.task{border:1px solid var(--line);border-radius:14px;padding:12px 13px;display:flex;align-items:center;gap:10px;background:#fff;margin:8px 0}.task-icon{width:30px;height:30px;border-radius:8px;background:#fff1e6;color:#d45f0a;display:grid;place-items:center}
/* home */
.home-grid{height:100%;display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:16px}.home-main,.home-side{display:grid;gap:14px;min-height:0}.home-main{grid-template-rows:auto auto auto 1fr}.home-side{grid-template-rows:auto auto 1fr}.welcome-card{background:linear-gradient(135deg,#fff6ee,#fff);display:grid;grid-template-columns:1fr 190px;align-items:center}.welcome-card h1{margin:3px 0 8px;font-size:32px}.home-actions{display:flex;gap:8px;margin-top:14px}.welcome-number{text-align:right}.welcome-number span,.welcome-number small{display:block;color:var(--muted)}.welcome-number b{display:block;font-size:44px;color:var(--orange)}.home-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.week-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.week-day{border:1px solid var(--line);border-radius:10px;text-align:center;padding:9px 4px}.week-day b,.week-day span{display:block}.week-day span{font-size:11px;color:var(--muted);margin-top:3px}.week-day.today{border-color:#f4a66f;background:#fff6ef}.next-activity h3{margin:12px 0 4px}.continue-card{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:14px;padding:14px}.goal-list.compact{display:grid;gap:7px;max-height:145px;overflow:auto}.goal{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;align-items:center;gap:10px}.mini-row{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #f0f1f4;padding:9px 0}.home-tip{background:linear-gradient(145deg,#172235,#263854);color:#fff}.home-tip p{color:#d6dfec;line-height:1.6}
/* study */
.study-tools{display:flex;gap:8px;align-items:center}.study-tools input{width:220px}.study-layout{height:calc(100% - 62px);display:grid;grid-template-columns:260px 330px 1fr;gap:14px;min-height:0}.discipline-pane,.chapter-pane,.topic-detail{height:100%}.discipline-card{width:100%;border:1px solid var(--line);background:#fff;border-radius:13px;padding:13px;text-align:left;margin-bottom:8px;position:relative;overflow:hidden}.discipline-card.active{border-color:#f4a66f;background:#fff7f1}.discipline-card b,.discipline-card span{display:block}.discipline-card span{font-size:12px;color:var(--muted);margin-top:4px}.discipline-card i{position:absolute;left:0;bottom:0;height:3px;background:var(--orange)}.chapter{border:1px solid var(--line);border-radius:12px;margin-bottom:8px;background:#fff}.chapter summary{padding:12px;cursor:pointer;display:flex;justify-content:space-between;gap:10px}.chapter summary span{font-size:11px;color:var(--muted)}.chapter>div{padding:0 8px 8px}.topic-button{width:100%;display:flex;justify-content:space-between;gap:8px;border:0;background:#f8fafc;padding:10px;border-radius:9px;margin-top:5px;text-align:left}.topic-button small{color:var(--muted);white-space:nowrap}.topic-compact-head{display:flex;justify-content:space-between;gap:14px}.topic-compact-head h2{margin:4px 0 8px;font-size:24px}.topic-compact-head p{max-width:850px;line-height:1.55;color:#526076}.topic-metrics{display:flex;gap:6px;align-items:flex-start}.tabs{display:flex;gap:8px;margin:15px 0 12px}.tabs button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 12px;font-weight:800}.tabs button.active{background:#18243a;color:#fff;border-color:#18243a}.study-content{line-height:1.65}.lesson-text{max-width:900px}.example-box{background:#f8fafc;border-left:3px solid var(--orange);padding:12px 14px;margin:10px 0;border-radius:8px}.listen-panel,.practice-launch{border:1px solid var(--line);border-radius:16px;padding:20px;background:#fafbfc}.practice-launch{display:grid;grid-template-columns:1fr 170px auto auto;gap:10px;align-items:center}.practice-launch p{margin:4px 0;color:var(--muted)}
/* presentation */
.presentation-preview{height:100%;display:grid;grid-template-rows:1fr auto;gap:8px}.slide-stage{min-height:330px;background:linear-gradient(135deg,#172235,#263956);border-radius:18px;color:#fff;padding:42px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.slide-stage:after{content:"";position:absolute;width:230px;height:230px;border-radius:50%;right:-70px;bottom:-70px;background:linear-gradient(135deg,var(--yellow),var(--red));opacity:.9}.slide-stage>*{position:relative;z-index:1}.slide-stage h2{font-size:34px;margin:0 0 18px}.slide-stage li{font-size:18px;margin:8px 0;line-height:1.4}.slide-controls{display:flex;gap:8px;align-items:center;justify-content:center;margin-top:10px}.presentation-shell{height:100%;display:grid;grid-template-rows:54px 1fr;background:#0f1827;border-radius:16px;padding:14px}.presentation-top{display:flex;justify-content:space-between;align-items:center;color:#fff;font-weight:800}.presentation-shell #presentationStage{min-height:0;display:grid;grid-template-rows:1fr auto}.presentation-shell .slide-stage{height:100%;border-radius:12px}.presentation-shell:fullscreen{border-radius:0;padding:24px;background:#0f1827}.presentation-shell:fullscreen .slide-stage{min-height:calc(100vh - 130px)}
/* library */
.library-layout{height:calc(100% - 62px);display:grid;grid-template-columns:330px 1fr;gap:16px;min-height:0}.upload-card{display:grid;grid-template-rows:1fr auto;padding:0;overflow:hidden}.upload-card-body{padding:18px;overflow:auto}.upload-action{border-top:1px solid var(--line);padding:14px 18px;background:#fff;position:sticky;bottom:0}.upload-action .btn{width:100%}.upload-action small{display:block;color:var(--muted);margin-top:6px;text-align:center}.upload-zone{border:1.5px dashed #cfd5df;border-radius:16px;padding:18px;text-align:center;background:#fafbfc}.upload-zone input{border:0;padding:8px}.goal-checks{display:grid;gap:6px;margin-top:7px}.goal-checks label{margin:0;border:1px solid var(--line);padding:9px;border-radius:10px;font-weight:650}.goal-checks input{width:auto}.material-list{display:grid;gap:9px}.material-row{border:1px solid var(--line);border-radius:14px;padding:12px;display:flex;align-items:center;gap:10px}.file-icon{width:38px;height:38px;border-radius:10px;background:#fdeaea;color:#c43a3a;font-size:10px;font-weight:900;display:grid;place-items:center}.material-overview{font-size:12px;color:#5d697d;margin-top:6px}.error-friendly{font-size:12px;color:#a93636;background:#fff0f0;border-radius:8px;padding:7px 9px;margin-top:7px}.icon-btn{width:34px;height:34px;border:0;border-radius:9px;background:#f4f5f7}
/* practice */
.practice-layout{height:calc(100% - 62px);display:grid;grid-template-columns:300px 1fr 320px;gap:14px;min-height:0}.practice-topic{border:1px solid var(--line);border-radius:12px;margin-bottom:8px}.practice-topic summary{padding:11px;display:flex;justify-content:space-between;cursor:pointer}.practice-topic summary span{font-size:11px;color:var(--muted)}.practice-topic>div{padding:0 8px 8px}.set-button{width:100%;border:0;background:#f8fafc;border-radius:9px;padding:10px;text-align:left;margin-top:5px}.set-button span,.set-button small{display:block}.set-button small{color:var(--muted);margin-top:3px}.question-card{border:1px solid var(--line);border-radius:14px;padding:14px;margin:0 0 14px}.question-card legend{font-weight:800;padding:0 6px;line-height:1.5}.answer-option{display:flex;align-items:flex-start;gap:8px;margin:8px 0;font-weight:500;border:1px solid #eef0f4;border-radius:9px;padding:9px}.answer-option input{width:auto;margin-top:3px}.exercise-actions{display:flex;justify-content:flex-end;gap:8px;position:sticky;bottom:-18px;background:#fff;padding:14px 0}.result-summary{display:flex;justify-content:space-between;align-items:center;padding:12px 0 18px}.result-summary h2{margin:4px 0}.score-ring{width:82px;height:82px;border:9px solid #dff4e9;border-top-color:var(--green);border-radius:50%;display:grid;place-items:center;font-weight:900;font-size:18px}.review-question{border-left:4px solid #d9dee7;background:#fafbfc;border-radius:10px;padding:12px 14px;margin:10px 0}.review-question.correct{border-color:var(--green);background:#f3fbf7}.review-question.wrong{border-color:var(--red);background:#fff6f6}.result-card{border:1px solid var(--line);border-radius:14px;padding:14px;margin-top:14px}
/* progress/admin */
.progress-grid{height:calc(100% - 62px);display:grid;grid-template-columns:repeat(2,1fr);gap:14px;overflow:auto}.progress-topic{margin:12px 0}.progress-topic>div:first-child{display:flex;justify-content:space-between;gap:10px}.admin-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stat{background:#fff;border:1px solid var(--line);border-radius:15px;padding:16px}.stat b{display:block;font-size:26px;margin-top:7px}.admin-info{margin-top:16px}.user-list{display:grid;gap:9px}.user-row{border:1px solid var(--line);border-radius:13px;padding:12px;display:flex;align-items:center;gap:11px}
@media(max-width:1050px){.landing-hero{grid-template-columns:1fr}.landing-login{justify-self:start}.landing-watermark{opacity:.3}.home-grid{grid-template-columns:1fr}.home-side{grid-template-columns:repeat(3,1fr);grid-template-rows:auto}.study-layout{grid-template-columns:220px 280px 1fr}.practice-layout{grid-template-columns:250px 1fr}.correction-panel{display:none}}
@media(max-width:850px){.public-nav{display:none}.landing-hero{padding:34px 22px}.landing-copy h1{font-size:42px}.landing-promises{grid-template-columns:1fr 1fr}.topbar{grid-template-columns:145px 1fr;padding:0 12px}.topbar img{width:140px}.userbox .uname{display:none}.nav{position:fixed;left:0;right:0;bottom:0;height:58px;background:#fff;border-top:1px solid var(--line);z-index:30;padding:4px}.nav button{font-size:11px;padding:0 8px}.workspace{padding:10px 10px 70px}.app-body{overflow:auto}.shell{grid-template-rows:62px 1fr}.view{height:auto;min-height:calc(100vh - 140px)}.home-grid,.home-row,.plan-layout,.study-layout,.library-layout,.practice-layout,.progress-grid{grid-template-columns:1fr;height:auto}.home-side{display:grid;grid-template-columns:1fr}.study-tools{display:none}.availability-grid,.availability-summary{grid-template-columns:repeat(4,1fr)}.discipline-pane,.chapter-pane,.topic-detail{max-height:none}.practice-launch{grid-template-columns:1fr}.public-cards{grid-template-columns:1fr}.modal-wide{height:92vh}.admin-stat-grid{grid-template-columns:repeat(2,1fr)}}
