:root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#162644;background:#f4f7fd;font-synthesis:none;line-height:1.48}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:#245db6}button:disabled{opacity:.45;cursor:not-allowed}.layout{display:flex;min-height:100vh}.sidebar{width:252px;background:#1e3167;color:#fff;padding:25px 15px;flex-shrink:0;min-height:100vh}.brand{display:flex;align-items:center;gap:12px;padding:3px 10px 26px;border-bottom:1px solid #ffffff25}.brand-icon{background:#fff;color:#233a75;border-radius:13px;font-weight:900;font-size:23px;width:44px;height:44px;display:grid;place-items:center}.brand strong{font-size:23px;letter-spacing:-.6px}.brand small{display:block;color:#c3d1f2;font-size:11px}.side-menu{display:grid;gap:4px;margin-top:22px}.navbtn{border:0;text-align:left;background:transparent;color:#d9e4ff;padding:12px 13px;border-radius:11px;font-weight:550;display:flex;align-items:center;gap:11px}.navbtn:hover,.navbtn.active{background:#ffffff1d;color:#fff}.navbtn .ico{width:22px;text-align:center}.side-bottom{margin-top:32px;color:#b7c7ec;font-size:12px;padding:0 12px;line-height:1.6}.content{flex:1;min-width:0}.topbar{height:75px;background:#fff;border-bottom:1px solid #e1e8f5;padding:0 32px;display:flex;align-items:center;justify-content:space-between}.topbar .left strong{font-size:17px}.topbar .left small{display:block;color:#667894}.topbar .right{display:flex;align-items:center;gap:12px}.chip{display:inline-block;background:#edf2fc;color:#305393;border-radius:99px;font-weight:650;font-size:12px;padding:6px 10px}.chip.success{background:#e6f7ed;color:#168253}.chip.warn{background:#fff5db;color:#ad6c09}.chip.danger{background:#ffeded;color:#b22d39}.chip.info{background:#e9f0ff;color:#2859ab}.main{max-width:1380px;margin:auto;padding:29px 32px 60px}.heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px}.heading h1{font-size:27px;letter-spacing:-.7px;margin:0}.muted{color:#74839e}.sub{margin:3px 0 0;color:#72829b;font-size:14px}.btn{border:1px solid #d9e1ee;background:#fff;color:#2e4575;padding:9px 15px;border-radius:10px;font-weight:650;font-size:13px}.btn:hover{background:#eef3fd}.btn.primary{background:#2959b8;border-color:#2959b8;color:#fff}.btn.primary:hover{background:#214c9d}.btn.green{background:#18815c;border-color:#18815c;color:#fff}.btn.red{background:#fce9e8;border-color:#f7cbc6;color:#a33235}.btn.small{padding:6px 10px;font-size:12px}.btn.ghost{background:transparent;border:0}.btn-row{display:flex;gap:8px;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:20px}.stat{background:#fff;border:1px solid #e4eaf3;border-radius:15px;padding:20px}.stat .k{color:#74839e;font-size:12px;font-weight:600}.stat .v{font-size:30px;font-weight:750;margin:4px 0}.stat .hint{font-size:12px;color:#7a8aa2}.card{background:white;border:1px solid #e1e8f2;border-radius:15px;box-shadow:0 2px 4px #21325e08;padding:21px;margin-bottom:18px}.card h2{font-size:17px;margin:0 0 14px}.card h3{font-size:15px;margin:0 0 10px}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.tablewrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;font-size:12px;background:#f4f7fd;color:#607492;font-weight:700;padding:12px 13px;white-space:nowrap}td{padding:11px 13px;border-bottom:1px solid #eef1f8;vertical-align:middle}tr:last-child td{border-bottom:0}.clickable{cursor:pointer;color:#2559b0;font-weight:700;text-decoration:underline;text-decoration-color:#b5c9ee;text-underline-offset:3px}tr:hover td{background:#fafbfe}.empty{color:#8795aa;text-align:center;padding:35px 14px;font-size:13px}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field{display:flex;flex-direction:column;gap:5px}.field label{font-weight:650;font-size:12px;color:#4e5f7a}.field input,.field select,.field textarea,.toolbar select,.toolbar input{width:100%;border-radius:9px;border:1px solid #dbe2ee;background:#fff;padding:10px 11px;min-height:40px;outline-color:#5682c6;color:#263a61}.field textarea{min-height:77px;resize:vertical}.field.full{grid-column:1/-1}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:14px}.toolbar select,.toolbar input{max-width:210px}.note{padding:13px 15px;border:1px solid #dfe8f8;background:#f4f8ff;border-radius:11px;color:#3c567c;font-size:13px}.note.warn{background:#fff9e9;border-color:#f5e1a7;color:#8c6210}.note.danger{background:#fff2f1;border-color:#f2cac8;color:#9b3039}.note.good{background:#f0faf4;border-color:#c8edd8;color:#24794e}.toast{position:fixed;right:24px;bottom:24px;background:#22365d;color:white;border-radius:12px;padding:13px 19px;box-shadow:0 10px 35px #0004;z-index:70;max-width:360px}.toast.error{background:#a42f36}.modal-backdrop{position:fixed;inset:0;background:#101e35a1;display:flex;align-items:center;justify-content:center;z-index:50;padding:14px}.modal{background:white;border-radius:16px;max-width:710px;width:100%;max-height:90vh;overflow:auto;padding:25px;box-shadow:0 20px 80px #0004}.modal h2{margin:0 0 17px}.modal footer{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.divider{height:1px;background:#e7edf5;margin:17px 0}.weekday{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.daybox{background:#f7f9fd;border:1px solid #e5ebf5;border-radius:12px;padding:11px;min-height:85px}.daybox strong{font-size:12px}.daybox .meta{font-size:11px;margin-top:7px;display:block}.tile{border:1px solid #e2e9f5;border-radius:12px;padding:13px;margin-top:8px}.tile strong{font-size:13px}.tile small{font-size:12px;color:#72849c}.rows{display:flex;flex-direction:column;gap:11px}.row{display:flex;align-items:center;justify-content:space-between;gap:14px}.label{font-size:12px;color:#75859a}.big{font-size:24px;font-weight:750}.pill{display:inline-flex;gap:5px;align-items:center;border-radius:8px;background:#f1f5fc;padding:6px 9px;font-size:12px}.callout{background:#f5f8fe;border:1px solid #e1e8f5;border-radius:12px;padding:15px}.error{color:#b12b40;font-size:12px}.auth{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(125deg,#e8efff,#f8f9fd)}.authbox{background:#fff;border-radius:20px;padding:35px;max-width:420px;width:100%;box-shadow:0 15px 50px #1b376a17}.authbox h1{margin:12px 0 0}.authbox .fields{grid-template-columns:1fr}.loading{padding:100px;text-align:center;color:#4c6591}.kbd{font-family:monospace;background:#eef1f8;border-radius:5px;padding:2px 5px;font-size:12px}.mini{font-size:11px;color:#7c8ba1}.actions{display:flex;gap:5px;justify-content:flex-end}.mobile-brand{display:none}.section-title{font-size:13px;text-transform:uppercase;letter-spacing:1px;color:#8795ac;font-weight:750;margin:22px 0 10px}.timeline{display:grid;gap:10px}.exam{display:grid;grid-template-columns:120px 1fr auto;gap:12px;align-items:start;border:1px solid #e5eaf4;border-radius:12px;padding:14px;margin-bottom:10px}.exam .exdate{font-size:13px;font-weight:750}.exam .exmeta{font-size:13px}.exam small{color:#7b8ba2}.inline-choice{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.inline-choice label{font-size:13px}.badgecount{background:#edf3fe;color:#2356a1;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:700}.kv{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:13px}.kv div:nth-child(even){text-align:right;font-weight:700}.upload{border:2px dashed #cbd9ef;border-radius:15px;background:#f9fbff;padding:26px;text-align:center}.upload input{width:100%;max-width:430px}.footline{color:#8e9cb0;font-size:12px;margin-top:22px}.warning-banner{background:#fff6de;color:#895e12;border-bottom:1px solid #f0dba9;padding:9px 30px;font-size:12px}code{white-space:pre-wrap}pre{overflow-x:auto;background:#f3f6fc;padding:15px;border-radius:10px}.checkline{display:flex;align-items:center;gap:10px;font-size:13px}.checkline input{width:auto}.noline{white-space:nowrap}.linkbtn{border:0;background:transparent;color:#295cb2;font-weight:650;text-decoration:underline;cursor:pointer}.hide{display:none!important}@media(max-width:1100px){.stats{grid-template-columns:repeat(2,1fr)}.weekday{grid-template-columns:repeat(3,1fr)}}@media(max-width:800px){.layout{display:block}.sidebar{width:100%;min-height:auto;padding:10px 15px}.brand{padding:0 0 9px;border:0}.brand-icon{width:36px;height:36px;font-size:19px}.brand strong{font-size:19px}.brand small{display:none}.side-menu{display:flex;overflow-x:auto;margin-top:6px;gap:5px;padding-bottom:2px}.navbtn{font-size:12px;white-space:nowrap;padding:8px 10px}.side-bottom{display:none}.topbar{padding:10px 16px;height:60px}.main{padding:20px 14px 45px}.grid2,.grid3,.grid4,.fields{grid-template-columns:1fr}.stats{gap:8px}.stat{padding:14px}.stat .v{font-size:25px}.heading h1{font-size:22px}.heading{align-items:start}.weekday{grid-template-columns:repeat(2,1fr)}.exam{grid-template-columns:1fr}.modal{padding:18px}.topbar .left strong{font-size:14px}}
