.admin-intro{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:5px 0 25px}.admin-intro .pill{gap:7px;font-size:9px;letter-spacing:1px}.admin-intro h2{font-size:25px;margin:17px 0 9px;color:#534262}.admin-intro p{font-size:12px;color:#8a7c96;line-height:1.8}.admin-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap;margin-top:24px}.admin-dialog{max-width:610px}.admin-dialog form{margin-top:20px}.admin-checkbox{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:500;color:#80718d}.admin-checkbox input{width:16px;height:16px;margin:0;accent-color:#7753c4}.admin-count{font-size:12px;color:#9788a2}.preserve-lines{white-space:pre-wrap}.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:25px}.month-controls{display:flex;align-items:center;gap:10px}.month-controls h2{min-width:160px;text-align:center;font-size:19px}.month-controls button{padding:8px}.segmented{display:flex;border:1px solid #e4ddeb;border-radius:9px;padding:3px;gap:3px;background:#f9f7fc}.segmented button{border:0;background:transparent;padding:7px 13px}.segmented button[aria-pressed=true]{background:#fff;box-shadow:0 1px 6px #4d335b15;color:#7c54bb}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid #e9e2ef;border-radius:11px;overflow:hidden}.calendar-weekday{text-align:center;font-size:10px;font-weight:650;letter-spacing:.6px;padding:14px 0;background:#faf8fc;color:#a090ad}.calendar-day{min-height:118px;min-width:0;border:0;border-top:1px solid #eee8f3;border-right:1px solid #eee8f3;border-radius:0;padding:9px 6px;background:#fff;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:8px;font-weight:400}.calendar-day:nth-child(7n){border-right:0}.calendar-day.outside{background:#fcfbfe;color:#c0b4c9}.calendar-day.outside .day-number{opacity:.5}.calendar-day.selected{background:#f2edfb;box-shadow:inset 0 0 0 2px #b7a1d9}.day-number{align-self:flex-start;width:25px;height:25px;display:flex;align-items:center;justify-content:center;font-size:11px;border-radius:50%}.calendar-day.is-today .day-number{color:#fff;background:#8b68c6;font-weight:700}.day-events{display:flex;flex-direction:column;gap:4px;min-width:0;text-align:left}.calendar-chip{font-size:9px;line-height:1.4;border-radius:4px;padding:4px 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-day small{font-size:9px;color:#a185b3;padding:3px}.event-kind-0{background:#eee5fa;color:#926cb3}.event-kind-1{background:#e8f5ed;color:#628974}.event-kind-2{background:#fcebdc;color:#ad815b}.event-kind-3{background:#fce7ec;color:#b07183}.event-kind-4{background:#e7edf9;color:#748bb8}.calendar-legend{display:flex;gap:17px;flex-wrap:wrap;margin-top:18px}.calendar-legend>span{display:flex;gap:6px;align-items:center;font-size:10px;color:#9c8ba6}.calendar-legend i{width:9px;height:9px;border-radius:3px}.calendar-legend .event-kind-0,.mobile-event-dots .event-kind-0{background:#b599d4}.calendar-legend .event-kind-1,.mobile-event-dots .event-kind-1{background:#9ec7ae}.calendar-legend .event-kind-2,.mobile-event-dots .event-kind-2{background:#dfb690}.calendar-legend .event-kind-3,.mobile-event-dots .event-kind-3{background:#d9a2b2}.calendar-legend .event-kind-4,.mobile-event-dots .event-kind-4{background:#9eb1d5}.mobile-event-dots{display:none}.agenda-row{display:flex;width:100%;align-items:center;justify-content:flex-start;text-align:left;border:0;border-bottom:1px solid #efe9f5;border-radius:0;background:#fff;padding:18px 5px;gap:14px;font-weight:400}.agenda-row>span:nth-child(2){flex:1;min-width:0}.agenda-row b{font-size:13px;color:#6f577f;font-weight:600;overflow-wrap:anywhere}.agenda-row small{display:block;font-size:11px;margin-top:7px;line-height:1.5}.event-icon{display:inline-flex;padding:10px;border-radius:10px;flex-shrink:0}.agenda-row>.pill{font-size:10px}.announcement-feed{display:grid;grid-template-columns:1fr;gap:0}.announcement-card{position:relative;padding:25px;overflow:hidden}.announcement-card.is-pinned{border-left:3px solid #b6a0d6}.announcement-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pin-label{margin-left:auto;display:flex;align-items:center;gap:5px;font-size:10px;color:#aa8dbc}.announcement-card h2{font-size:19px;margin:19px 0 12px;overflow-wrap:anywhere}.announcement-body{font-size:13px;color:#8c7799;line-height:1.85;white-space:pre-wrap;overflow-wrap:anywhere}.announcement-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:24px;padding-top:17px;border-top:1px solid #efe7f4}.announcement-footer>div{display:flex;gap:8px}.announcement-footer button{font-size:11px;padding:7px 10px}.announcement-footer button:disabled{cursor:default}.admin-stats{grid-template-columns:repeat(3,1fr)}.admin-stats a{display:inline-flex;align-items:center;gap:4px;font-size:11px;margin-top:4px}.admin-shortcut{display:flex;align-items:center;gap:13px;padding:17px 0;border-bottom:1px solid #efe9f5}.admin-shortcut>span:nth-child(2){flex:1}.admin-shortcut b{display:block;font-size:12px;color:#796087}.admin-shortcut small{display:block;font-size:10px;margin-top:7px;line-height:1.6}.overdue{color:#b57578!important}.top-actions .unread-count{position:absolute;right:0;top:0;font-size:8px;padding:2px;min-width:13px;height:13px;border-radius:8px;background:#9069c5;color:#fff;font-style:normal}@media(max-width:1100px){.calendar-day{min-height:100px}.calendar-chip{font-size:8px}.calendar-panel{padding:16px}.month-controls h2{font-size:17px;min-width:140px}}@media(max-width:650px){.admin-intro{align-items:flex-start;flex-wrap:wrap}.admin-intro h2{font-size:22px}.calendar-toolbar{flex-direction:column;align-items:stretch;gap:15px}.month-controls{justify-content:space-between;gap:5px}.month-controls h2{font-size:16px;min-width:0;flex:1}.segmented{align-self:flex-start}.calendar-day{min-height:69px;padding:7px 3px;gap:5px}.calendar-weekday{font-size:9px}.day-events{display:none}.mobile-event-dots{display:flex;gap:3px;padding:0 3px;flex-wrap:wrap}.mobile-event-dots i{width:5px;height:5px;border-radius:50%}.day-number{width:23px;height:23px;font-size:10px}.calendar-legend{gap:10px}.calendar-legend>span{font-size:9px}.calendar-panel{padding:12px}.agenda-row{gap:10px}.agenda-row>.pill{display:none}.announcement-card{padding:19px}.announcement-footer{align-items:flex-start;flex-direction:column}.announcement-meta{gap:6px}.admin-stats{grid-template-columns:1fr}.admin-actions>button{flex:1}.admin-dialog .form-grid{grid-template-columns:1fr}.calendar-grid{border-radius:7px}}.announcement-footer>div{flex-wrap:wrap}:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#282637;background:#f6f7fb;font-synthesis:none;font-weight:400}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{display:inline-flex;justify-content:center;align-items:center;gap:8px;padding:10px 15px;border:1px solid #e1e1e9;border-radius:9px;background:#fff;color:#3e3a51;font-size:12px;font-weight:600;cursor:pointer;transition:background .16s}button:hover{background:#f3effe;border-color:#cdc2ec}button:disabled{opacity:.6;cursor:wait}button:focus-visible,a:focus-visible{outline:3px solid #9e88eb;outline-offset:3px}a{color:#7356bd;text-decoration:none}input,select,textarea{border:1px solid #dfe1e9;border-radius:8px;background:#fff;padding:11px 12px;color:#393447;font-size:13px;max-width:100%}input:focus,select:focus,textarea:focus{outline:2px solid #b8a7e5;outline-offset:1px}label{display:block;font-size:12px;font-weight:600;line-height:1.5}label>input,label>select,label>textarea{display:block;width:100%;margin:7px 0 19px}textarea{resize:vertical}.primary{background:#7753c4;border-color:#7753c4;color:#fff}.primary:hover{background:#6240a9;color:#fff}.wide{width:100%}h1,h2,h3,p{margin:0}h1,h2,h3{letter-spacing:-.035em}h2{font-size:17px;font-weight:650}small{font-size:10px;color:#95919f}.logo{display:flex;gap:10px;align-items:center;color:#292335;font-size:21px;font-weight:750;letter-spacing:-.7px}.logo small{display:block;font-size:7px;font-weight:650;letter-spacing:2px;color:#9690a3;margin-top:4px}.logo-icon{font-weight:850;font-size:31px;position:relative;color:#8059cd;font-style:italic;line-height:1}.logo-icon>img{display:block;width:36px;height:36px;object-fit:contain}.logo-icon>span{position:absolute;font-size:17px;bottom:-3px;right:-4px;color:#b4a0e8}.app{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:244px;background:#fff;border-right:1px solid #e8e8ef;display:flex;flex-direction:column;padding:30px 17px 15px;z-index:40}.sidebar-logo{padding:0 15px 26px}.college-switch{display:flex;gap:10px;align-items:center;background:#f8f7fb;border:1px solid #ebe8f1;border-radius:10px;padding:12px 9px;margin:3px 0 26px}.college-switch b{font-size:11px;display:block;max-width:148px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.college-switch small{display:block;font-size:9px;margin-top:4px}.college-icon{display:flex;padding:7px;background:#eae4f8;color:#8c73bc;border-radius:7px}.nav-label{font-size:8px;font-weight:650;letter-spacing:1.7px;padding:0 14px 12px}.sidebar nav{overflow:auto}.sidebar nav a{position:relative;display:flex;gap:12px;align-items:center;padding:12px 14px;color:#838091;font-size:12px;font-weight:500;border-radius:9px;margin:2px 0}.sidebar nav a.active{color:#7554ba;background:#f0ebfa;font-weight:650}.sidebar nav a:hover{background:#f5f2fa}.nav-dot{width:5px;height:5px;background:#8661ca;border-radius:50%;margin-left:auto}.sidebar-bottom{margin-top:auto;padding-top:25px}.sidebar-bottom>div{display:flex;gap:9px;align-items:center;padding:13px 3px}.sidebar-bottom b{display:block;font-size:10px}.sidebar-bottom small{font-size:8px}.sidebar-bottom>button{width:100%;border:0;justify-content:flex-start;padding-left:17px;color:#8a8495;font-size:11px}.main{margin-left:244px;flex:1;min-width:0}.topbar{height:78px;background:#fffe;border-bottom:1px solid #e7e7ef;display:flex;justify-content:space-between;align-items:center;padding:0 35px}.topbar>div,.topbar>div>span,.top-actions{display:flex;align-items:center;gap:11px}.topbar>div>span{font-size:11px;color:#9995a3}.topbar b{color:#585266;font-weight:600}.year-tag{border:1px solid #e8e4f0;border-radius:6px;padding:7px 11px;font-size:10px!important;color:#7f748e!important}.icon-btn{border:0;background:transparent;padding:7px;position:relative}.icon-btn i{position:absolute;width:5px;height:5px;background:#a286d4;border:1px solid white;border-radius:50%;top:7px;right:7px}.top-separator{height:25px;width:1px;background:#e7e3ed;margin:0 5px}.avatar{width:32px;height:32px;flex-shrink:0;background:#ecedf5;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;color:#85839e;font-size:10px;font-weight:650}.lavender{background:#e7dff6;color:#7d60a9}.user-name b{display:block;font-size:10px}.user-name small{display:block;font-size:8px;margin-top:3px}.content{max-width:1600px;padding:22px 35px 0;margin:auto}.preview-strip{font-size:9px;color:#9388a2;display:flex;justify-content:space-between;gap:10px;margin-bottom:26px}.preview-strip>span:first-child{font-size:8px;font-weight:700;letter-spacing:1.4px;display:flex;align-items:center;gap:7px}.status-dot{width:5px;height:5px;border-radius:50%;background:#a495c3}.page-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px;gap:15px}.eyebrow{font-size:8px;letter-spacing:1.7px;font-weight:700;color:#a3a0ae}.page-title h1{font-size:25px;font-weight:650;line-height:1.4;margin:7px 0}.page-title p{font-size:11px;color:#9792a3}.hero{display:flex;align-items:center;justify-content:space-between;position:relative;overflow:hidden;background:linear-gradient(112deg,#e9e2f8,#f2edf9 55%,#e6e5f6);border:1px solid #e2d9f1;border-radius:15px;margin-bottom:23px;padding:29px 32px;min-height:236px}.hero>div{z-index:1;flex-shrink:0}.hero .eyebrow{color:#9c85bf}.hero h1{font-size:30px;line-height:1.27;font-weight:650;color:#4f3b74;margin:12px 0}.hero h1 em{font-family:Georgia,serif;font-weight:400;color:#8464b3}.hero p{font-size:10px;color:#9989b0;margin:10px 0 19px}.hero button{background:#fff;border:0;color:#8a6cb3;font-size:10px;padding:9px 12px}.campus{width:390px;max-width:45%;filter:drop-shadow(0 16px 16px #9481bc22)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.stat{background:#fff;border:1px solid #e8e8ef;border-radius:12px;padding:21px}.stat>div{display:flex;align-items:center;justify-content:space-between;color:#a89bb8}.stat span{font-size:10px;color:#8b859a}.stat strong{display:block;font-size:28px;letter-spacing:-1px;font-weight:650;margin:11px 0 6px}.stat small{font-size:9px}.panel{background:#fff;border:1px solid #e7e7ee;border-radius:12px;padding:22px;margin-bottom:23px;min-width:0}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.panel-title h2{font-size:14px}.panel-title p{font-size:11px;color:#938e9e;line-height:1.6;margin-top:7px}.panel-title a{font-size:9px;display:flex;align-items:center;gap:5px}.two-col{display:grid;grid-template-columns:1.17fr 1fr;gap:22px}.schedule-row{display:flex;align-items:center;gap:15px;padding:13px 0;border-top:1px solid #f2f1f7}.schedule-row time{font-size:11px;font-weight:600;min-width:35px}.schedule-row time small{display:block;font-size:8px;margin-top:4px}.schedule-row b{font-size:10px}.schedule-row p{font-size:8px;margin-top:6px;color:#a09aab}.schedule-row .pill{margin-left:auto;font-size:8px}.schedule-line{height:32px;width:3px;border-radius:3px;background:#bda9dd}.schedule-line.color1{background:#bdcbbc}.schedule-line.color2{background:#e2b8a2}.pill{display:inline-flex;align-items:center;background:#f4f3f8;color:#9a91a7;border-radius:5px;padding:5px 8px;font-size:9px;white-space:nowrap}.purple{background:#f0eafa;color:#9372bc}.green{background:#edf7f2;color:#77a28b}.amber{background:#fff5e6;color:#bc965e}.notice-row{display:flex;align-items:flex-start;gap:13px;border-top:1px solid #f2f1f7;padding:15px 0}.notice-icon{display:inline-flex;align-items:center;justify-content:center;padding:8px;border-radius:9px;background:#f3effa;color:#ae96ca}.notice-row b{font-size:10px}.notice-row p{font-size:9px;color:#9993a3;line-height:1.7;margin:6px 0}.notice-row small{font-size:8px}.filters{display:flex;gap:10px;align-items:center;margin-bottom:19px;flex-wrap:wrap}.filters select{font-size:10px;padding:9px 11px;min-width:125px}.search{display:flex;align-items:center;gap:8px;border:1px solid #e3e2eb;border-radius:8px;padding-left:11px;color:#b0a9ba;flex:1;max-width:300px}.search input{min-width:0;width:100%;border:0;background:none;padding:10px;font-size:10px}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap;font-size:10px}th{font-weight:500;color:#9690a2;font-size:9px;padding:12px 10px;background:#faf9fc;border-bottom:1px solid #f0edf5}td{padding:14px 10px;border-bottom:1px solid #f3f1f7;color:#8d859c}td b{color:#676071;font-weight:600;font-size:10px}td small{display:block;margin-top:4px;font-size:8px}td button{font-size:9px;padding:6px 10px}.person{display:flex;align-items:center;gap:10px}.empty{text-align:center;padding:55px 20px;color:#938a9e;font-size:12px}.empty svg{margin:0 auto 15px}.empty h2{margin-bottom:15px}.main-footer{display:flex;justify-content:space-between;align-items:center;padding:12px 0 26px;color:#b2adba;font-size:9px}.main-footer .logo{font-size:11px;opacity:.5}.main-footer .logo-icon{font-size:17px}.main-footer .logo-icon>img{width:20px;height:20px}.main-footer .logo-icon>span{font-size:9px}.main-footer .logo small{font-size:5px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.programme-icon{display:inline-flex;background:#f0eaf9;color:#a18ac2;padding:13px;border-radius:13px;margin-bottom:22px}.programme>small{display:block;font-size:9px}.programme h2{font-size:16px;margin:10px 0}.programme p{font-size:10px;line-height:1.7;color:#9c93a8}.periods{display:flex;gap:6px;flex-wrap:wrap;margin-top:20px}.periods span{padding:5px 7px;font-size:8px;background:#f7f5fa;border:1px solid #eeebf3;border-radius:5px;color:#a096ad}.faculty-card{text-align:center;padding:28px 20px}.large-avatar{display:flex;align-items:center;justify-content:center;background:linear-gradient(130deg,#e2d9f1,#f3eefb);color:#ae95cc;width:70px;height:70px;border-radius:50%;margin:0 auto 18px;font-size:20px}.faculty-card h2{font-size:15px;margin-bottom:12px}.faculty-card p{font-size:11px;color:#9d92ab;margin:15px 0 6px}.faculty-bottom{display:flex;justify-content:space-around;border-top:1px solid #eee9f4;margin-top:24px;padding-top:20px}.faculty-bottom span{font-size:9px;color:#a498af}.faculty-bottom b{display:block;font-size:12px;color:#776684;margin-top:8px}.timetable{display:grid;grid-template-columns:60px repeat(5,minmax(135px,1fr));overflow:auto;gap:9px}.day{font-size:10px;padding:12px 4px;color:#8f849d}.time-row{display:contents}.time-row>time{font-size:10px;color:#a69bae;padding-top:24px}.lesson{padding:15px 11px;border-radius:8px;background:#f0eafa;border-left:3px solid #cab7e3;display:flex;flex-direction:column;gap:10px;min-height:135px}.lesson b{font-size:11px;font-weight:600;color:#837294}.lesson small,.lesson span{font-size:8px;color:#a291b4}.lesson.color1{background:#edf5f1;border-color:#c3dacb}.lesson.color2{background:#fff3e8;border-color:#e9cab0}.inline-label{display:flex;align-items:center;gap:8px;color:#9c8eaa;font-size:10px}.inline-label input{margin:0;font-size:10px}.footnote{font-size:10px;color:#a296ad;line-height:1.8;margin-top:19px}.exam-banner{display:flex;gap:17px;align-items:center;background:#eee7f8;border:1px solid #e2d7f1;border-radius:12px;padding:22px;margin-bottom:22px;color:#9b83ba}.exam-banner h2{font-size:15px;color:#77608f}.exam-banner p{font-size:10px;margin-top:7px}.exam-banner>.pill{margin-left:auto}.mark-input{width:72px;padding:8px;font-size:11px}.finance-stats{grid-template-columns:1fr 1fr}.notices h2{margin:17px 0 13px;font-size:16px}.notices p{font-size:12px;line-height:1.8;color:#9887a6;white-space:pre-wrap}.notices small{display:block;margin-top:14px}.settings-panel{max-width:850px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 24px}.structure-preview,.settings-note{display:flex;align-items:flex-start;gap:16px;background:#f7f3fc;border-radius:10px;padding:22px;margin:8px 0 25px;color:#9a84af}.structure-preview b,.settings-note b{font-size:13px;color:#78618e}.structure-preview p,.settings-note p{font-size:11px;line-height:1.8;margin:8px 0}.structure-preview small{font-size:10px}.settings-note{border-top:1px solid #e9e1f0;background:none;padding-left:0;padding-bottom:0;margin-bottom:0}.alert{display:flex;justify-content:space-between;align-items:center;background:#f0ebf8;border:1px solid #e5daef;border-radius:9px;padding:13px 16px;color:#826496;font-size:12px;margin:0 0 20px;line-height:1.7}.alert.error{background:#fff2ee;color:#a76750;border-color:#f4d6cc}.modal{padding:27px;border:1px solid #ddd1e8;border-radius:17px;max-width:520px;width:calc(100% - 35px);color:#65516f;box-shadow:0 30px 110px #22133022}.modal::backdrop{background:#20152a77;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal p{font-size:13px;line-height:1.8;margin:12px 0}.modal h3{margin-top:20px}.modal dl{font-size:12px;line-height:1.8}.modal dt{color:#a193a9;margin-top:14px}.modal dd{margin:0}.result-line{display:flex;justify-content:space-between;border-bottom:1px solid #e8dfec;padding:8px 0}.mobile-only,.backdrop{display:none}.loading{display:grid;place-items:center;height:100vh;color:#947fac;font-size:14px}.login{display:grid;grid-template-columns:1.08fr 1fr;min-height:100vh;background:#fff}.login-story{padding:50px 60px;display:flex;flex-direction:column;justify-content:space-between;background:radial-gradient(ellipse at 40% 75%,#6b508e,#2b253e 70%);color:#fff;overflow:hidden}.login-story .logo{color:#fff}.login-story .logo small{color:#b6a4d2}.login-story>div:nth-child(2){margin:60px 0 30px}.login-story .eyebrow{color:#bcb0d2;font-size:9px}.login-story h1{font-size:clamp(37px,4vw,60px);font-weight:500;line-height:1.14;margin:25px 0}.login-story em{font-family:Georgia,serif;color:#d5c7ed}.login-story p{font-size:13px;line-height:1.9;color:#bbaed0;max-width:330px}.login-story .campus{display:block;width:490px;max-width:100%;margin:40px auto 10px}.login-story footer{display:flex;justify-content:space-between;font-size:7px;letter-spacing:1px;color:#ac9ebd}.login-form{width:100%;max-width:455px;align-self:center;justify-self:center;padding:45px 25px}.tag{font-size:8px;letter-spacing:1.5px;display:inline-flex;align-items:center;gap:7px;color:#987cae;background:#f3eef9;padding:8px 10px;border-radius:5px}.login-form h2{font-size:32px;letter-spacing:-1px;margin:25px 0 10px}.login-form>p{font-size:12px;color:#a396ad;line-height:1.8;margin-bottom:28px}.login-form .google{width:100%;padding:13px;margin-bottom:10px}.divider{display:flex;align-items:center;gap:15px;color:#b4a7bd;font-size:10px;margin:18px 0 24px}.divider:before,.divider:after{content:"";height:1px;background:#eee7f3;flex:1}.login-form .help{font-size:10px;text-align:center;margin:20px 0}.preview-login{border:1px dashed #dcd0e8;border-radius:10px;padding:17px;background:#fbf9fd;margin-top:30px}.preview-login strong{font-size:11px}.preview-login p{font-size:10px;color:#ae9dba;margin:7px 0 15px}.preview-login>div{display:flex;gap:7px}.preview-login select{min-width:0;flex:1;font-size:10px;padding:8px}.preview-login button{font-size:10px;padding:8px}@media(min-width:1600px){.hero{min-height:260px}.campus{width:450px}.content{padding-top:30px}}@media(max-width:1150px){.sidebar{width:210px;padding-inline:12px}.main{margin-left:210px}.content,.topbar{padding-inline:22px}.hero{padding:25px}.hero h1{font-size:26px}.stats{gap:10px}.stat{padding:17px}.two-col{grid-template-columns:1fr}.cards{gap:12px}.programme{padding:18px}.login-story{padding:40px}.timetable{grid-template-columns:50px repeat(5,140px)}}@media(max-width:800px){.sidebar{transform:translate(-100%);transition:transform .2s;width:250px}.sidebar.open{transform:translate(0)}.sidebar-logo{display:flex;align-items:center;justify-content:space-between;padding-inline:8px}.mobile-only{display:inline-flex}.backdrop{display:block;position:fixed;inset:0;z-index:35;background:#2b203966;border:0;border-radius:0}.main{margin-left:0}.topbar{height:68px;padding-inline:18px}.content{padding-inline:18px}.topbar>div{gap:6px}.user-name{display:none}.top-actions{gap:7px!important}.hero .campus{max-width:40%}.cards{grid-template-columns:1fr 1fr}.login{grid-template-columns:1fr}.login-story{min-height:250px;padding:28px 30px}.login-story>div:nth-child(2){margin:25px 0 0;position:relative}.login-story h1{font-size:34px;position:relative;z-index:1}.login-story .campus{width:250px;position:absolute;right:-40px;bottom:-20px;max-width:50%;opacity:.6}.login-story p,.login-story footer{display:none}.login-form{padding:35px 24px}.preview-strip{font-size:8px}.page-title h1{font-size:22px}}@media(max-width:520px){.stats{grid-template-columns:1fr 1fr}.stat strong{font-size:25px}.stat small{font-size:8px}.hero{min-height:218px;padding:24px}.hero h1{font-size:25px}.hero .campus{position:absolute;right:-60px;bottom:10px;opacity:.4;max-width:65%}.hero p{max-width:220px;line-height:1.8}.hero>div{max-width:100%;flex-shrink:1}.panel{padding:16px}.preview-strip{flex-wrap:wrap;gap:5px}.cards,.form-grid{grid-template-columns:1fr}.page-title{align-items:flex-start}.page-title>button{font-size:9px;padding:8px}.topbar>div>span{font-size:10px}.year-tag{display:none!important}.main-footer>span{max-width:130px;text-align:right;font-size:8px}.filters .search{max-width:none;flex-basis:100%}.filters select{flex:1;min-width:100px}.exam-banner{flex-wrap:wrap}.exam-banner>.pill{margin-left:0}.inline-label{flex-direction:column;align-items:flex-start}.panel-title{flex-wrap:wrap}.login-story .eyebrow{font-size:7px}.modal{padding:20px}.structure-preview{padding:16px}.preview-login>div{flex-wrap:wrap}.preview-login select{min-width:160px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}table{font-size:12px}th{font-size:11px;color:#81778e}td{color:#766c81}td b{font-size:12px;color:#50475b}td small{font-size:10px;color:#8d8298}.sidebar nav a{font-size:13px;color:#746b81}.page-title p{font-size:12px;color:#867b92}.panel-title h2{font-size:16px}.schedule-row b,.notice-row b{font-size:12px}.schedule-row p,.notice-row p{font-size:11px;color:#8b7e97}.filters select,.search input,.stat span{font-size:12px}.stat small{font-size:10px;color:#8b8197}.pill{font-size:10px}.user-name b{font-size:12px}.user-name small{font-size:10px}.preview-login .demo-role-buttons{display:grid;grid-template-columns:1fr;gap:8px}.preview-login .demo-role-buttons button{width:100%;justify-content:space-between;margin:0}.login-form>.primary.wide,.login-form form .wide{padding:13px;margin-bottom:10px;font-size:13px}.secondary{background:#fff;border-color:#d9d2e8;color:#3d2f63}.secondary:hover{background:#f6f2fd;border-color:#cdc2ec}.login-form h2{font-size:28px;letter-spacing:-.6px}.login-form>p,.login-form .help{font-size:13px;color:#7a6f87}.login-story h1{font-size:clamp(28px,3.2vw,40px);line-height:1.15}.choose-college{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}.choose-college strong{font-size:15px;color:#282637}.choose-college p{font-size:13px;color:#7a6f87;margin-bottom:4px}.choice-row{width:100%;justify-content:flex-start;gap:10px;padding:13px 14px;font-size:13px;text-align:left}.choice-row span{flex:1}.link-button{align-self:flex-start;padding:6px 0;border:0;background:none;color:#7753c4}.link-button:hover{background:none;color:#6240a9;text-decoration:underline}.access-ended{grid-template-columns:1fr;place-items:center;background:#f6f7fb}.access-ended .login-form{background:#fff;border:1px solid #ebe8f2;border-radius:16px}.access-actions{display:flex;flex-direction:column;gap:10px;margin-top:22px}.access-actions a.primary{display:flex;justify-content:center;align-items:center;padding:13px;border:1px solid #7753c4;border-radius:9px;font-size:13px;font-weight:600;text-decoration:none}.access-actions .wide{padding:13px;font-size:13px}.muted{color:#8b859a}.stat span,.stat small{font-size:12px}.stat strong.stat-text{font-size:17px;letter-spacing:-.2px;line-height:1.3}.panel+.panel,.stats+.panel,.two-col+.panel,.alert+.panel,.alert+.two-col{margin-top:20px}.panel .filters{margin:4px 0 16px;flex-wrap:wrap}.panel .filters .inline-label{display:inline-flex;align-items:center;gap:8px;font-size:13px}.panel .filters input[type=date]{margin:0}.form-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:18px;flex-wrap:wrap}.form-actions .muted{margin-right:auto;font-size:13px}.row-actions{white-space:nowrap;text-align:right}tr.archived td{color:#9a93a8}tr.archived .pill,td .pill+.pill{margin-left:8px}tr.selected td{background:#f6f2fd}.modal form label{display:block}.modal .muted{font-size:13px;margin-bottom:12px}.settings-page form{max-width:760px}fieldset.choice-group{border:0;padding:0;margin:4px 0 18px;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}fieldset.choice-group legend{font-size:13px;font-weight:600;margin-bottom:10px;color:#3e3a51}label.choice{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:1px solid #e1e1e9;border-radius:12px;cursor:pointer;background:#fff;transition:border-color .16s,background .16s}label.choice:hover{border-color:#cdc2ec}label.choice.on{border-color:#7753c4;background:#f6f2fd;box-shadow:0 0 0 3px #7753c41f}label.choice input{margin:3px 0 0;accent-color:#7753c4;width:auto;display:inline}label.choice svg{color:#7753c4;flex:none;margin-top:1px}.choice-text{display:flex;flex-direction:column;gap:3px}.choice-text b{font-size:14px;color:#282637}.choice-text small{font-size:12.5px;color:#7a6f87;line-height:1.45}.week{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.week-day{border:1px solid #ecebf2;border-radius:12px;padding:12px;background:#fcfbff;min-height:120px}.week-day h3{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#7a6f87;margin-bottom:10px}.week-day .muted{font-size:13px}.slot{position:relative;display:flex;flex-direction:column;gap:3px;padding:10px 36px 10px 12px;margin-bottom:8px;border-radius:10px;background:#fff;border:1px solid #e8e3f4;border-left:3px solid #7753c4}.slot b{font-size:13.5px;color:#282637}.slot small{font-size:12px;color:#7a6f87}.slot .icon-btn{position:absolute;top:6px;right:6px;padding:6px}.slot-time{font-size:12px;font-weight:600;color:#6240a9;font-variant-numeric:tabular-nums}.schedule-row .slot-time{min-width:92px}.segmented{display:inline-flex;gap:4px;padding:3px;border:1px solid #e1e1e9;border-radius:10px;background:#fafafd}.segmented button{min-width:36px;padding:7px 10px;border:0;border-radius:7px;background:transparent;font-size:12.5px}.segmented button.on{background:#7753c4;color:#fff}.segmented button.on.absent{background:#c2410c}.segmented button.on.late{background:#b7791f}.segmented button.on.excused{background:#64748b}.attendance-summary{font-size:13px;color:#6b6378;margin-bottom:10px}.result-card{border:1px solid #ecebf2;border-radius:12px;padding:14px;margin-top:14px}.result-card .person{margin-bottom:10px}.result-line{margin-top:10px;font-size:13px}.demo-note{margin:0 0 10px;padding:10px 12px;border-radius:10px;background:#f6f2fd;display:flex;flex-direction:column;gap:2px}.demo-note b{font-size:12px}.demo-note small{font-size:11.5px;color:#7a6f87}@media(max-width:760px){.stats{grid-template-columns:repeat(2,1fr)}.week{grid-template-columns:1fr}.segmented button{min-width:32px;padding:7px 8px}}.note{font-size:13px;line-height:1.5;color:#5f5670;background:#f7f3fc;border-radius:10px;padding:10px 14px;margin:0 0 14px}.results-table td.num,.results-table th.num{text-align:right;font-variant-numeric:tabular-nums}.results-table small{display:block;color:#8b859a;font-size:11.5px}.results-key{font-size:12px;margin-top:10px}.results-table th+th,.results-table td+td,.results-table.self th,.results-table.self td{text-align:right}.two-col>.panel+.panel{margin-top:0}.red{background:#fbece7;color:#ab3f22}.form-section{font-size:13px;font-weight:650;color:#3e3a51;margin:6px 0 10px}.academics>.panel+.panel{margin-top:20px}.import-panel{border-color:#d9d2e8}.import-steps{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:10px}.import-steps li{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border:1px solid #ecebf2;border-radius:12px;flex-wrap:wrap}.import-steps li b{font-size:13.5px}.import-steps li p{font-size:12.5px;color:#7a6f87;margin-top:2px}.file-pick{position:relative;display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border:1px dashed #cdc2ec;border-radius:9px;font-size:12.5px;font-weight:600;cursor:pointer}.file-pick input{position:absolute;inset:0;opacity:0;cursor:pointer}.file-pick span{display:inline-flex;align-items:center;gap:6px}.text-bad{color:#ab3f22}.problems{margin:0;padding-left:16px;font-size:12.5px;color:#ab3f22}tr.has-problem td{background:#fffaf8}.area-choices{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin:6px 0 4px}.segmented.tabs{margin:0 0 14px;flex-wrap:wrap}.row-actions button+button{margin-left:6px}
