@import"https://fonts.googleapis.com/css2?family=Prompt:wght@300;400;500;600;700&display=swap";*{box-sizing:border-box}body{margin:0;font-family:Prompt,sans-serif;background:#f6f7fb;color:#202433}.app{min-height:100vh}aside{position:fixed;width:260px;height:100vh;background:#fff;border-right:1px solid #e9eaf0;padding:24px 16px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 25px}.crest{width:43px;height:43px;background:linear-gradient(145deg,#a10f3c,#6e0c29);color:#fff;border-radius:12px;display:grid;place-items:center;font-weight:700}.brand b{display:block;color:#861136}.brand small,.profile small{display:block;font-size:11px;color:#8b8e99}.close{display:none}nav{display:grid;gap:5px}nav button{border:0;background:none;border-radius:10px;padding:12px 14px;display:flex;gap:12px;align-items:center;color:#646774;font:inherit;text-align:left;cursor:pointer}nav svg{width:19px}nav button.active{background:#fbedf2;color:#94113b;font-weight:600}.sidefoot{margin-top:auto;padding:14px;color:#777;display:flex;gap:10px;align-items:center;font-size:14px}.sidefoot>svg{width:19px}.profile{position:absolute;bottom:70px;left:16px;right:16px;border-top:1px solid #eee;padding:18px 8px;display:flex;align-items:center;gap:10px}.profile span{background:#f6dfe8;color:#8a1037;padding:9px;border-radius:50%;font-weight:600}.profile b{font-size:12px;display:block}main{margin-left:260px}header{height:90px;background:#fff;border-bottom:1px solid #e9eaf0;padding:18px 32px;display:flex;align-items:center;justify-content:space-between}h1{font-size:22px;margin:0}header p{margin:3px 0 0;color:#8d909a;font-size:12px}.tools{display:flex;align-items:center;gap:10px}.tools label{display:flex;align-items:center;background:#f6f7f9;padding:10px 12px;border-radius:10px}.tools label svg{width:17px;color:#999}.tools input{border:0;outline:0;background:transparent;width:140px;font-family:inherit}.icon{position:relative;border:1px solid #e8e8ed;background:#fff;border-radius:10px;padding:9px}.icon svg{width:20px}.icon i{position:absolute;top:-4px;right:-4px;background:#9f1239;color:#fff;font-size:9px;border-radius:8px;padding:2px 5px}.primary{border:0;background:#99123b;color:#fff;padding:11px 16px;border-radius:10px;font:inherit;font-size:13px;display:flex;align-items:center;gap:7px;cursor:pointer;box-shadow:0 5px 13px #9f12392a}.primary svg{width:17px}.hamb{display:none}.content{padding:26px 32px;max-width:1500px;margin:auto}.welcome{background:linear-gradient(115deg,#7e0d31,#ac1747);color:#fff;border-radius:18px;padding:24px 30px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 10px 25px #8c123126}.welcome span{font-size:12px;opacity:.8}.welcome h2{margin:6px 0;font-size:24px}.welcome p{margin:0;opacity:.78;font-size:13px}.cycle{width:260px;background:#ffffff18;border:1px solid #ffffff22;border-radius:14px;padding:14px}.cycle b{display:block;margin:4px 0 10px}.cycle div{height:6px;background:#ffffff30;border-radius:8px}.cycle i{height:100%;display:block;background:#f4c430;border-radius:8px}.cycle span{font-size:10px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:20px 0}.stat,.panel{background:#fff;border:1px solid #e9eaf0;border-radius:15px}.stat{padding:18px;display:flex;gap:14px;align-items:center}.stat>span{width:44px;height:44px;border-radius:12px;display:grid;place-items:center}.stat svg{width:21px}.stat .red{background:#fbe8ef;color:#9f1239}.stat .green{background:#e5f7ed;color:#16834b}.stat .amber{background:#fff4d9;color:#c27b00}.stat .blue{background:#e6f1ff;color:#2870c7}.stat b{font-size:23px;display:block}.stat strong{display:block;font-size:12px}.stat small{font-size:10px;color:#90939d}.grid{display:grid;grid-template-columns:1.55fr 1fr;gap:18px}.panel{padding:20px}.panelhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.panelhead h3{font-size:15px;margin:0}.panelhead p{font-size:10px;color:#999;margin:3px 0}.panelhead button,.all{border:0;background:none;color:#99123b;font:inherit;font-size:11px;display:flex;align-items:center;cursor:pointer}.panelhead svg,.all svg{width:15px}.schedule article{display:flex;align-items:center;padding:13px 0;border-top:1px solid #f0f0f3;gap:13px}.date{width:48px;background:#f9edf1;border-radius:10px;text-align:center;padding:6px;color:#94113b}.date b{font-size:17px;display:block}.date span{font-size:10px}.appt{flex:1}.appt h4{font-size:12px;margin:0 0 5px}.appt p{font-size:10px;color:#777;margin:2px 0;display:flex;align-items:center;gap:4px}.appt svg{width:12px}.badge{font-size:9px;border-radius:12px;padding:4px 8px}.badge.amber{background:#fff2d5;color:#ad7000}.badge.green{background:#dff6e8;color:#117b43}.badge.blue{background:#e6f1ff;color:#2568b9}.more{border:1px solid #e4e4e8;background:#fff;border-radius:8px;padding:6px 9px;font:inherit;font-size:9px;cursor:pointer}.task{display:flex;align-items:center;gap:10px;border-top:1px solid #f0f0f3;padding:16px 0}.task>i{width:4px;height:38px;border-radius:5px}.task>i.red{background:#a51240}.task>i.amber{background:#e6a014}.task>i.blue{background:#3679cf}.task div{flex:1}.task b,.task span{display:block;font-size:11px}.task span,.task small{color:#999;font-size:9px}.all{margin:10px auto 0}.progress{margin-top:18px}.bars{display:grid;grid-template-columns:repeat(5,1fr);gap:25px}.bars span,.bars b{font-size:10px}.bars>div>div{height:7px;background:#f0e6ea;border-radius:8px;margin:9px 0}.bars i{height:100%;display:block;background:linear-gradient(90deg,#9f1239,#d44271);border-radius:8px}.empty{text-align:center;background:#fff;border:1px solid #eee;border-radius:18px;padding:90px 20px}.empty>svg{width:55px;height:55px;color:#a41442}.empty h2{margin-bottom:6px}.empty p{color:#888}.empty .primary{margin:20px auto}.toast{position:fixed;right:25px;bottom:25px;background:#152b21;color:#fff;border-radius:12px;padding:13px 18px;display:flex;gap:9px;align-items:center;font-size:12px;z-index:30;box-shadow:0 8px 25px #0003}.toast svg{width:18px;color:#5fe79d}@media (max-width:1050px){.stats{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}.bars{grid-template-columns:repeat(3,1fr)}}@media (max-width:720px){aside{transform:translate(-100%);transition:.25s}.open{transform:none;box-shadow:0 0 30px #0004}.close{display:block;margin-left:auto;border:0;background:none}.close svg{width:20px}main{margin-left:0}header{height:76px;padding:14px 18px}.hamb{display:block;border:0;background:none;margin-right:8px}header>div:nth-child(2){flex:1}header p,.tools label,.tools .primary{display:none}.content{padding:16px}.welcome{display:block;padding:20px}.welcome h2{font-size:19px}.cycle{width:100%;margin-top:18px}.stats{grid-template-columns:1fr 1fr;gap:10px}.stat{padding:12px;gap:8px}.stat>span{width:36px;height:36px}.stat b{font-size:18px}.stat small{display:none}.schedule article{flex-wrap:wrap}.appt{min-width:180px}.bars{grid-template-columns:1fr}.toast{left:16px;right:16px;bottom:16px}}.splash{height:100vh;display:grid;place-items:center;background:#861136;color:#fff;font-size:55px;font-weight:700}.login{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top right,#c3285d,#73102f 55%,#4e0b20);padding:20px}.loginbox{width:min(420px,100%);background:#fff;border-radius:22px;padding:34px;box-shadow:0 25px 70px #31000d70;text-align:center}.loginbox .crest{margin:auto;width:60px;height:60px;font-size:20px}.loginbox h1{color:#861136;margin:15px 0 3px}.loginbox p{color:#747783;font-size:13px;margin:0 0 25px}.loginbox form{text-align:left}.loginbox .primary{width:100%;justify-content:center;margin-top:15px;padding:13px}.loginbox>small{display:block;color:#aaa;margin-top:25px}.logout{position:absolute;bottom:14px;left:24px;border:0;background:none;color:#9f1239;font-family:inherit;cursor:pointer}nav button i{width:20px;font-style:normal;text-align:center}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;color:#71747f;font-weight:500;background:#fafafb}th,td{padding:12px 14px;border-bottom:1px solid #eee;white-space:nowrap}td{color:#343744}.none{text-align:center;padding:45px;color:#999}.loading{text-align:center;padding:50px;color:#999}.error{background:#fde9ed;color:#a2113c;padding:10px 12px;border-radius:9px;font-size:12px;margin:9px 0}.master{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.master button{background:#fff;border:1px solid #e5e5eb;border-radius:14px;text-align:left;padding:20px;font-family:inherit;cursor:pointer}.master b,.master span{display:block}.master b{color:#8b1037}.master span{font-size:11px;color:#888;margin-top:5px}.content>.content{padding:0}.form{max-width:900px;margin:auto}.form>h3{margin-top:0}.form label,.dialog label,.loginbox label{display:block;font-size:12px;font-weight:500;margin:10px 0;color:#474a55}.form input,.form textarea,.form select,.dialog input,.dialog textarea,.dialog select,.loginbox input{display:block;width:100%;border:1px solid #dddfe5;border-radius:9px;padding:10px 12px;font:inherit;font-size:12px;margin-top:5px;outline:none;background:#fff}.form input:focus,.form textarea:focus,.form select:focus,.dialog input:focus,.dialog textarea:focus,.dialog select:focus,.loginbox input:focus{border-color:#a51240;box-shadow:0 0 0 3px #a5124013}.form textarea,.dialog textarea{min-height:76px;resize:vertical}.scores{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.actions>button{border:1px solid #ddd;background:#fff;padding:10px 17px;border-radius:9px;font:inherit;font-size:12px;cursor:pointer}.actions>.primary{background:#99123b;border:0}.modal{position:fixed;z-index:40;top:0;right:0;bottom:0;left:0;background:#17202c99;display:grid;place-items:center;padding:18px}.dialog{background:#fff;width:min(600px,100%);max-height:90vh;overflow:auto;border-radius:18px;padding:26px;position:relative;box-shadow:0 30px 80px #0004}.dialog h2{font-size:19px;margin:0 0 15px}.dialog .x{position:absolute;right:18px;top:13px;border:0;background:none;font-size:26px;color:#777;cursor:pointer}.panelhead>.primary{color:#fff}.icon{font-size:20px}.toast{font-size:12px}.profile{bottom:55px}@media (max-width:720px){.master{grid-template-columns:1fr}.scores{grid-template-columns:1fr 1fr}.loginbox{padding:25px}.dialog{padding:22px}.panel{padding:14px}th,td{padding:10px}.tools .primary{display:none}}.syncresult{margin-top:16px;font-size:12px;color:#474a55}.syncresult ul{margin:6px 0 14px;padding-left:18px}.syncresult li{margin:2px 0}.syncresult b{color:#8b1037}.school-logo{display:block;object-fit:contain}.brand-logo{width:46px;height:56px;filter:drop-shadow(0 3px 5px #0002)}.login-logo{width:116px;height:142px;margin:0 auto 8px;filter:drop-shadow(0 8px 12px #50001835)}.splash-logo{width:130px;height:160px;animation:logoPulse 1.2s ease-in-out infinite alternate}@keyframes logoPulse{to{transform:scale(1.04);filter:drop-shadow(0 10px 20px #0005)}}.fatal{min-height:100vh;display:grid;place-content:center;justify-items:center;text-align:center;padding:30px;background:#f7f7fa}.fatal p{color:#777}.danger-btn,.restore-btn{border:0;border-radius:8px;padding:7px 10px;font:inherit;font-size:10px;cursor:pointer;white-space:nowrap}.danger-btn{background:#fee8ec;color:#b2163f}.restore-btn{background:#e5f7ed;color:#137746}.export{text-decoration:none;width:max-content;margin-top:8px}
