:root{--navy:#071b31;--ink:#10243a;--muted:#8090a2;--line:#dce6ed;--bg:#f3f7fa;--blue:#117ccc;--pink:#ca4169;--gold:#b77b08}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:"Segoe UI",Arial,sans-serif;display:grid;grid-template-columns:235px 1fr;min-height:100vh}aside{position:fixed;width:235px;height:100vh;background:var(--navy);color:#fff;padding:25px 17px;display:flex;flex-direction:column}.brand{display:flex;gap:11px;align-items:center;margin:0 8px 29px}.brand>b{background:#1b8be0;border-radius:10px;padding:10px;font-size:20px}.brand strong,.brand small{display:block}.brand small{color:#88a2ba;font-size:10px}.brand nav{display:grid;gap:6px}.brand+nav button{border:0;background:transparent;color:#92a8be;text-align:left;border-radius:9px;padding:14px;font-weight:700}.brand+nav button.on{background:#16466f;color:#fff;border-left:3px solid #31a5f1}.term{margin-top:auto;background:#102f4d;border:1px solid #1b4668;border-radius:10px;padding:15px;font-size:11px}.term i{display:inline-block;width:8px;height:8px;background:#26c999;border-radius:50%;margin-right:7px}.term small{display:block;color:#89a3bb;margin:5px 0 0 18px}main{grid-column:2}header{height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 32px;color:#7b8b9c;font-size:12px;position:sticky;top:0;z-index:5}header time{margin-left:auto}#menu{display:none}.wrap{padding:35px 38px;max-width:1500px;margin:auto}.page{display:none}.page.on{display:block}.title small{font-size:9px;letter-spacing:1.7px;color:#698199;font-weight:800}.title h1{font-size:30px;margin:8px 0 5px}.title p{margin:0 0 25px;color:#7d8d9e;font-size:13px}.hero{display:grid;grid-template-columns:1.35fr 1fr;gap:14px}.now,.nextday,.strip,.card,.month,.timeline,.agenda{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 25px rgba(25,48,70,.06)}.now{padding:28px;background:linear-gradient(135deg,#09243e,#125b8d);color:#fff}.kicker{font-size:9px;letter-spacing:1.3px;color:#80a9c6;font-weight:800}.now h2{font-size:24px;margin:15px 0 5px}.now p{color:#b5cede}.bigtime{font-size:21px;font-weight:800;margin:25px 0 12px}.chip{background:#176d9e;padding:6px 9px;border-radius:5px;font-size:9px}.nextday{padding:28px}.nextday h3{font-size:15px;margin:14px 0 5px}.nextday p{font-size:11px;color:#8293a5}.datecards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:15px 0}.datecard{border:1px solid var(--line);background:#fff;border-radius:13px;padding:20px;text-align:left;color:var(--ink)}.datecard>small{font-size:9px;letter-spacing:1.1px;color:#7e91a4;font-weight:800}.datebody{display:flex;align-items:center;gap:15px;margin-top:17px}.datebox{width:57px;height:58px;display:grid;place-content:center;text-align:center;background:#fff5d9;color:var(--gold);border-radius:10px}.datebox b{font-size:21px}.datebox em{font-size:9px;font-style:normal;margin-top:4px}.datecard.exam .datebox{background:#fff0f5;color:var(--pink)}.datecard.end .datebox{background:#eaf4ff;color:var(--blue)}.datetext b,.datetext small{display:block}.datetext b{font-size:13px}.datetext small{color:#8797a7;margin-top:5px}.agenda{padding:22px}.agenda h2{font-size:17px}.lessonrow{display:grid;grid-template-columns:80px 1fr auto;padding:15px;border:1px solid var(--line);border-left:4px solid var(--c);border-radius:9px;margin-top:9px;align-items:center}.lessonrow time{color:var(--blue);font-weight:800}.lessonrow b{font-size:12px}.lessonrow small{display:block;color:#8795a3;margin-top:3px}.grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.day{background:#fff;border:1px solid var(--line);border-radius:11px;padding:13px}.day.today{border:2px solid #248bd2}.day h3{font-size:12px;margin:0 0 12px}.lesson{border:1px solid var(--line);border-left:4px solid var(--c);border-radius:8px;padding:11px;margin:8px 0;min-height:85px}.lesson time{font-size:9px;color:#708396}.lesson b{display:block;font-size:10px;margin:8px 0}.lesson small{font-size:9px;color:#8292a3}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.card{padding:19px;border-top:4px solid var(--c)}.card h3{font-size:13px}.card p{font-size:10px;color:#77899b}.assess{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.assess .card{display:grid;grid-template-columns:100px 1fr auto;align-items:center;border-top:1px solid var(--line);border-left:4px solid #d75c83}.status{font-size:8px;background:#edf3f5;padding:6px;border-radius:5px}.months{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.month{padding:16px}.month h3{text-transform:capitalize}.monthgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}.monthgrid span,.monthgrid button{aspect-ratio:1;border:0;border-radius:5px;display:grid;place-items:center;background:transparent;font-size:9px}.monthgrid .dow{aspect-ratio:auto;color:#8997a6}.monthgrid .event{background:#fff1b9}.monthgrid .exam{background:#f8bfd1}.monthgrid .sat{background:#cdeaca}.monthgrid .today{outline:2px solid var(--blue)}.countdowns{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:15px}.countdowns .card b{font-size:17px;color:var(--blue);display:block;margin:8px 0}.timeline{padding:22px}.eventrow{display:grid;grid-template-columns:100px 20px 1fr;align-items:center;padding:8px;opacity:.95}.eventrow.past{opacity:.45}.eventrow time{text-align:right;padding-right:12px;font-size:10px}.dot{width:10px;height:10px;border-radius:50%;background:#318fc7}.eventrow.exam .dot{background:#db6388}.eventrow.holiday .dot{background:#e0aa2f}.eventrow.saturday .dot{background:#60a65e}.eventrow div:last-child{border-left:1px solid var(--line);padding:10px 15px}.eventrow b{font-size:12px}.eventrow small{display:block;color:#8090a0;margin-top:4px}#modal{display:none;position:fixed;inset:0;background:#061525aa;place-items:center;z-index:20}#modal.on{display:grid}#modal article{background:#fff;border-radius:15px;padding:27px;width:min(480px,90%);position:relative}#close{position:absolute;right:12px;top:12px;border:0;border-radius:50%;font-size:20px}@media(max-width:900px){.grid{grid-template-columns:repeat(2,1fr)}.months{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){body{display:block}aside{transform:translateX(-100%);z-index:10;transition:.2s}aside.open{transform:none}main{display:block}header{padding:0 16px}#menu{display:block;margin-right:12px}.wrap{padding:25px 15px}.hero,.cards,.assess,.months,.countdowns{grid-template-columns:1fr}.datecards{display:flex;overflow:auto}.datecard{min-width:86%}.grid{grid-template-columns:1fr}.lessonrow{grid-template-columns:65px 1fr}.lessonrow>span:last-child{display:none}}
.todayclasses{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.todayclass{position:relative;overflow:hidden;min-height:270px;padding:30px;border:1px solid #cfdde7;border-radius:15px;background:linear-gradient(145deg,#fff,#f5f9fc);box-shadow:0 10px 28px rgba(23,48,72,.08)}.todayclass:before{content:"";position:absolute;inset:0 auto 0 0;width:6px;background:var(--class)}.todayclass.upnext,.todayclass.active{background:linear-gradient(135deg,#09243e,#125b8d);border-color:#125b8d;color:#fff;box-shadow:0 16px 35px rgba(9,53,87,.2)}.todayclass .kicker{color:#66839a}.todayclass.upnext .kicker,.todayclass.active .kicker{color:#82c4ed}.todayclass h2{font-size:24px;line-height:1.25;margin:18px 0 7px}.todayclass p{font-size:15px;color:#778da1}.todayclass.upnext p,.todayclass.active p{color:#bdd5e6}.todayclass .bigtime{margin:32px 0 16px}.classstate{display:inline-block;padding:7px 10px;border-radius:6px;background:#e9f3fa;color:#1778b7;font-size:10px;font-weight:800}.todayclass.upnext .classstate,.todayclass.active .classstate{background:#1674a8;color:#fff}.tomorrowbar{display:flex;align-items:center;gap:28px;background:#fff;border:1px solid var(--line);border-radius:11px;padding:15px 20px;margin-top:14px}.tomorrowbar span{flex:0 0 auto}.tomorrowbar small,.tomorrowbar b{display:block}.tomorrowbar small{font-size:8px;letter-spacing:1.2px;color:#8091a2;margin-bottom:4px}.tomorrowbar b{font-size:12px}.tomorrowbar p{margin:0;color:#7e90a2;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:650px){.todayclasses{grid-template-columns:1fr}.todayclass{min-height:245px;padding:24px}.todayclass h2{font-size:21px}.tomorrowbar{display:block}.tomorrowbar p{margin-top:9px;white-space:normal}}.todayheading{display:flex;align-items:center;gap:17px;margin-bottom:25px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:17px 20px;box-shadow:0 7px 22px rgba(24,48,70,.05)}.todayheading .title{flex:1}.todayheading .title h1{margin:4px 0 2px}.todayheading .title p{margin:0}.todaydate{width:68px;height:70px;flex:0 0 68px;border-radius:12px;background:#e8f8ef;color:#168b55;display:grid;place-content:center;text-align:center;box-shadow:inset 0 0 0 1px #d0f0dd}.todaydate b{font-size:28px;line-height:1;font-weight:800}.todaydate em{font-style:normal;font-size:10px;font-weight:700;margin-top:7px}.todaypulse{display:flex;align-items:center;gap:7px;background:#eaf8f0;color:#168452;padding:8px 11px;border-radius:20px;font-size:8px;letter-spacing:.8px;font-weight:800}.todaypulse i{width:7px;height:7px;background:#23bd78;border-radius:50%;box-shadow:0 0 0 4px #d2f2e0}@media(max-width:650px){.todayheading{padding:14px;align-items:center}.todaydate{width:60px;height:62px;flex-basis:60px}.todaydate b{font-size:24px}.todayheading .title h1{font-size:23px}.todayheading .title small{font-size:7px}.todayheading .title p{font-size:10px}.todaypulse{display:none}}