@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--navy:#123b55;--teal:#138d76;--mint:#45c794;--text:#193c52;--muted:#718795;--line:#e8eef1;--bg:#f5f8fa;--white:#fff;--gold:#e5ad50;--shadow:0 8px 28px rgba(23,54,74,.055)}*{box-sizing:border-box}body{margin:0;background:var(--bg);font-family:'DM Sans',Arial,sans-serif;color:var(--text);font-size:14px}button,input,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:flex}.sidebar{width:245px;background:#fff;border-right:1px solid #e9eff2;padding:25px 16px 18px;display:flex;flex-direction:column;flex-shrink:0}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--navy);font-family:Manrope,sans-serif;font-size:20px;font-weight:800;padding:0 8px 38px}.brand>span:last-child>span{color:var(--teal)}.brand small{display:block;color:#94a4ae;font-size:9px;letter-spacing:2px;margin-top:3px;font-family:'DM Sans',sans-serif}.brand-mark{width:42px;height:42px;border-radius:13px;background:var(--navy);display:grid;place-items:center}.brand-mark svg{width:31px;fill:none;stroke:#59d5a0;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.side-label,.eyebrow{font-size:10px;letter-spacing:1.6px;font-weight:700;color:#8ca0ac}.side-label{padding:0 12px 11px}.nav{display:grid;gap:5px}.nav-link{height:43px;border:0;border-radius:10px;background:transparent;text-align:left;padding:0 13px;color:#617783;font-weight:500}.nav-link i{font-style:normal;display:inline-grid;place-items:center;width:22px;margin-right:8px;font-size:16px}.nav-link:hover{background:#f4f8f9}.nav-link.active{background:#e5f5ee;color:#147762;font-weight:700}.sidebar-note{margin-top:auto;padding:16px 15px;background:#eef4fb;border-radius:14px;color:#315a76}.note-icon{font-size:18px;color:#258a77;margin-bottom:8px}.sidebar-note b{font-size:12px}.sidebar-note p{font-size:11px;line-height:1.55;margin:7px 0 0;color:#718795}.side-bottom{display:flex;align-items:center;gap:10px;padding:18px 4px 0;margin-top:16px;border-top:1px solid var(--line)}.side-bottom>div{min-width:0;flex:1}.side-bottom b,.side-bottom small{display:block}.side-bottom b{font-size:12px}.side-bottom small{font-size:10px;color:#8ca0ac;margin-top:3px}.avatar{width:33px;height:33px;border-radius:50%;display:grid;place-items:center;background:#d9eee7;color:#11715e;font-size:11px;font-weight:700}.avatar.small{width:32px;height:32px}.dots{border:0;background:none;letter-spacing:2px;color:#91a2ac;font-weight:bold}.main{min-width:0;flex:1}.topbar{height:68px;background:rgba(255,255,255,.9);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 42px}.crumb{color:#8ba0ac;font-size:12px}.crumb span{padding:0 9px;color:#bac5ca}.crumb b{color:#496474;font-weight:600}.top-actions{display:flex;align-items:center;gap:18px}.today{font-size:12px;color:#778b97}.icon-btn{position:relative;border:0;background:none;color:#657c89;font-size:20px}.notification-dot{position:absolute;width:6px;height:6px;border-radius:50%;background:#ed8a75;right:2px;top:2px}.mobile-menu{display:none}.content{max-width:1280px;margin:auto;padding:35px 42px 22px}.welcome{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:25px}.welcome .eyebrow{margin:0 0 8px}.welcome h1{font:800 26px Manrope,sans-serif;margin:0;color:#173d55;letter-spacing:-.6px}.wave{color:#e7b250;font-size:22px}.subheading{margin:8px 0 0;color:#7c909c;font-size:13px}.primary{border:0;background:#128c74;color:white;border-radius:9px;padding:11px 16px;font-weight:700;box-shadow:0 4px 10px #128c7425}.primary:hover{background:#0d7964}.primary span{font-size:17px;padding-right:5px}.stats{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:15px}.stat-card,.panel{background:white;border:1px solid #edf1f3;border-radius:14px;box-shadow:var(--shadow)}.stat-card{padding:18px 20px;min-height:139px}.stat-head{display:flex;justify-content:space-between;align-items:center;color:#8599a4;font-size:10px;font-weight:700;letter-spacing:1px}.stat-symbol{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-size:14px}.teal{color:#188e76;background:#e1f5ed}.blue{color:#4c83a2;background:#eaf2f8}.gold{color:#ad7b2b;background:#fff2dc}.progress-row{display:flex;align-items:center;gap:17px;margin-top:12px}.progress-row>strong,.stat-number strong{font:800 30px Manrope;color:#193d54}.progress-detail{flex:1}.bar{height:7px;background:#e8eff2;border-radius:8px;overflow:hidden}.bar span{display:block;width:72%;height:100%;background:linear-gradient(90deg,#138d76,#45c794);border-radius:8px}.progress-detail small{display:block;color:#8a9ca6;font-size:10px;margin-top:7px}.stat-foot{font-size:11px;color:#8599a4;margin-top:10px}.live-dot{display:inline-block;width:6px;height:6px;background:#37bd8c;border-radius:50%;margin:0 5px 1px 0}.stat-number{display:flex;align-items:baseline;gap:5px;margin-top:8px}.stat-number span{font-size:16px;color:#9aabb4}.next-title{display:block;font-size:16px;margin-top:14px;color:#304d5e}.next-meta{font-size:11px;color:#8a9ca6;margin-top:6px}.middle-grid,.bottom-grid{display:grid;grid-template-columns:1.65fr 1fr;gap:15px;margin-top:16px}.panel{padding:20px}.plan-panel{min-height:225px}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.panel-heading h2{margin:0;color:#1c4055;font:700 15px Manrope}.panel-heading p{margin:6px 0 0;color:#8a9ca6;font-size:11px}.text-button{border:0;background:none;color:#168b73;font-size:11px;font-weight:700;white-space:nowrap;padding:3px}.text-button span{font-size:15px;margin-left:4px}.plan-list{margin-top:14px;display:grid;gap:8px}.plan-item{display:flex;align-items:center;gap:11px;background:#f7fafb;border-radius:9px;padding:10px 12px}.check{width:16px;height:16px;border:1px solid #c8d7dc;border-radius:50%;background:#fff;display:grid;place-items:center;flex-shrink:0;color:white;font-size:10px}.check.done{background:#1aa17e;border-color:#1aa17e}.plan-copy{min-width:0;flex:1}.plan-copy b{display:block;font-size:11px;font-weight:600;color:#3d5a6a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plan-copy small{font-size:10px;color:#8b9da7;display:block;margin-top:3px}.plan-date{font-size:10px;color:#8195a0;white-space:nowrap}.momentum-panel{background:var(--navy);border:0;color:white;min-height:225px;overflow:hidden;position:relative}.momentum-panel:after{content:'';position:absolute;width:185px;height:185px;border-radius:50%;border:1px solid #ffffff12;right:-62px;top:-88px;box-shadow:0 0 0 23px #ffffff06,0 0 0 47px #ffffff04}.momentum-top{display:flex;justify-content:space-between;align-items:center}.momentum-top .eyebrow{color:#84d7b7}.sparkle{color:#efbd62;font-size:18px}.streak{display:flex;align-items:center;gap:12px;margin-top:18px}.streak strong{font:800 40px Manrope;color:#fff}.streak span{font-size:12px;color:#d2e1e6;line-height:1.4}.momentum-panel>p{font-size:11px;color:#c4d6de;margin:4px 0 17px}.week-dots,.week-labels{display:grid;grid-template-columns:repeat(7,1fr);gap:9px;max-width:225px}.day-dot{width:19px;height:19px;border-radius:50%;background:#ffffff20;display:grid;place-items:center;font-size:10px;color:white}.day-dot.active{background:#48cb99;color:#103b55}.week-labels{margin-top:5px;text-align:center;color:#9bb5c0;font-size:9px}.bottom-grid{margin-top:16px}.courses-panel,.deadline-panel{min-height:206px}.course-list{margin-top:16px;display:grid;grid-template-columns:1fr 1fr;gap:14px 20px}.course-item{min-width:0}.course-title{display:flex;justify-content:space-between;gap:8px;margin-bottom:7px}.course-title b{font-size:11px;color:#3d5968;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.course-title span{font-size:10px;color:#8195a0}.mini-bar{height:5px;background:#eaf0f2;border-radius:8px;overflow:hidden}.mini-bar span{display:block;height:100%;border-radius:8px;background:#28aa87}.deadline-list{margin-top:12px;display:grid;gap:7px}.deadline-item{display:flex;align-items:center;gap:10px;padding:8px 9px;background:#fafcfd;border-radius:9px}.date-pill{width:37px;height:40px;background:#fff1dc;border-radius:8px;display:grid;place-content:center;text-align:center;color:#966d2c;flex-shrink:0}.date-pill b{font-size:14px;line-height:1}.date-pill span{font-size:8px;text-transform:uppercase;margin-top:3px}.deadline-copy{min-width:0;flex:1}.deadline-copy b{font-size:10px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#405c6c}.deadline-copy small{font-size:9px;color:#8a9ca6;display:block;margin-top:3px}.deadline-type{font-size:9px;color:#758b96;background:#edf3f5;border-radius:10px;padding:5px 7px}footer{text-align:center;color:#9aabb3;font-size:10px;padding:24px 0 4px}footer span{margin:0 5px;color:#c1cbd0}footer b{color:#557486}.empty{text-align:center;padding:24px 10px;color:#8ba0aa}.empty>span{font-size:24px;color:#1d9c7e}.empty b{display:block;font-size:12px;color:#557080;margin-top:6px}.empty p{font-size:11px;margin:5px}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#163e55;color:white;padding:11px 18px;border-radius:10px;box-shadow:var(--shadow);transition:.25s;z-index:10}.toast.show{opacity:1;transform:translate(-50%,0)}dialog{border:0;padding:0;border-radius:17px;width:min(470px,calc(100% - 30px));box-shadow:0 24px 80px #102f4540;color:var(--text)}dialog::backdrop{background:#102b3a80;backdrop-filter:blur(3px)}#taskForm{padding:25px}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.modal-head .eyebrow{margin:0 0 6px}.modal-head h2{font:700 21px Manrope;margin:0}.close{border:0;background:#f1f5f6;border-radius:50%;width:30px;height:30px;color:#66808c;font-size:22px;line-height:1}label{display:block;font-size:11px;font-weight:700;color:#607987;margin-bottom:14px}input,select{display:block;width:100%;margin-top:7px;height:41px;border:1px solid #dfe8eb;border-radius:8px;padding:0 11px;background:#fff;color:#355467;outline:none}input:focus,select:focus{border-color:#35ad8b;box-shadow:0 0 0 3px #38ba9420}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.secondary{border:1px solid #dfe8eb;background:white;color:#637d89;border-radius:8px;padding:10px 15px}.modal-actions .primary{padding:10px 16px}.toast{z-index:20}
@media(max-width:1050px){.content{padding:30px 25px}.topbar{padding:0 25px}.sidebar{width:220px}.stats{grid-template-columns:1fr 1fr}.next-card{grid-column:1/-1;min-height:110px}.bottom-grid{grid-template-columns:1fr}.deadline-panel,.courses-panel{min-height:unset}}
@media(max-width:700px){.sidebar{position:fixed;z-index:9;left:-260px;top:0;bottom:0;width:245px;transition:left .25s;box-shadow:0 10px 35px #17364922}.sidebar.open{left:0}.mobile-menu{display:block;border:0;background:none;color:#476576;font-size:19px;margin-right:10px}.topbar{height:58px;padding:0 16px;justify-content:flex-start}.crumb{flex:1;font-size:11px}.today{display:none}.top-actions{gap:12px}.content{padding:26px 16px}.welcome{align-items:flex-start;gap:14px}.welcome h1{font-size:22px}.subheading{font-size:12px;max-width:300px;line-height:1.5}.welcome>.primary{font-size:0;padding:9px 12px;white-space:nowrap}.welcome>.primary span{font-size:19px}.stats{gap:10px}.stat-card{padding:15px;min-height:125px}.progress-card{grid-column:1/-1;min-height:120px}.stat-number strong,.progress-row>strong{font-size:27px}.next-card{grid-column:1/-1}.middle-grid{grid-template-columns:1fr}.plan-panel,.momentum-panel{min-height:unset}.momentum-panel{padding-bottom:22px}.course-list{grid-template-columns:1fr}.plan-date{font-size:9px}.panel{padding:17px}.panel-heading h2{font-size:14px}.text-button{font-size:10px}.deadline-type{display:none}.form-row{grid-template-columns:1fr}footer{padding:20px}}
[hidden]{display:none!important}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:28px;background:radial-gradient(circle at 12% 18%,#d9eee8 0,transparent 28%),radial-gradient(circle at 90% 88%,#dceafa 0,transparent 25%),#f5f8fa}.auth-card{width:min(440px,100%);background:#fff;border:1px solid #e8eef1;border-radius:20px;padding:34px;box-shadow:0 18px 55px #17364913}.auth-brand{padding:0 0 33px}.auth-card .eyebrow{margin:0 0 9px}.auth-card h1{font:800 25px Manrope,sans-serif;color:#173d55;line-height:1.25;margin:0}.auth-copy{color:#758b97;font-size:13px;line-height:1.55;margin:10px 0 23px}.auth-card label{margin-bottom:15px}.auth-submit{width:100%;margin-top:3px;height:44px}.auth-error{min-height:18px;color:#bf514c;font-size:12px;margin:10px 0 0}.auth-foot{border-top:1px solid #edf1f3;padding-top:16px;margin:18px 0 0;color:#8396a0;font-size:11px;line-height:1.5}.admin-actions{display:flex;align-items:center;gap:9px}.admin-actions .secondary{padding:10px 13px;font-weight:700;color:#168b73;border-color:#d9e9e5}.logout-btn{border:0;background:transparent;color:#718795;font-size:11px;font-weight:600}.logout-btn:hover{color:#168b73}.student-picker{max-width:115px;border:1px solid #e1e9ec;border-radius:7px;background:#fff;color:#59717e;padding:5px;font-size:10px}.edit-progress{border:0;background:none;color:#168b73;font-size:9px;font-weight:700;padding:0 2px}.check:disabled{opacity:.4;cursor:default}
@media(max-width:700px){.auth-card{padding:27px 22px}.auth-card h1{font-size:22px}.admin-actions{flex-direction:column;align-items:stretch;gap:6px}.admin-actions button{font-size:10px!important;padding:8px 10px!important}.student-picker{max-width:92px}.logout-btn{font-size:10px;padding:4px}.top-actions{gap:8px}}
.auth-link{display:block;margin:13px auto 0;border:0;background:transparent;color:#168b73;font-size:12px;font-weight:700;cursor:pointer}.auth-link:hover{text-decoration:underline}.auth-submit:disabled{opacity:.65;cursor:wait}
