:root{color:#162019;font-synthesis:none;--ink:#162019;--muted:#6e776f;--line:#dfe4dc;--paper:#fbfcf9;--green:#1e684d;background:#f3f5f0;font-family:system-ui,-apple-system,Segoe UI,Microsoft YaHei UI,PingFang SC,sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{cursor:pointer;transition:transform .16s,background-color .16s,border-color .16s,box-shadow .16s}button:active:not(:disabled){transform:translateY(1px)scale(.985)}button:focus-visible,input:focus-visible{outline:2px solid var(--primary,var(--green));outline-offset:3px;box-shadow:0 0 0 4px var(--primary-soft,#e6f1ea)}.app{grid-template-columns:248px minmax(0,1fr);min-height:100vh;transition:grid-template-columns .25s;display:grid}.app.portal-is-open{grid-template-columns:0 minmax(0,1fr);padding-right:46vw}.app.portal-is-open .sidebar{transform:translate(-100%)}.sidebar{z-index:20;color:#f6f8f5;background:#16261f;border-right:1px solid #ffffff14;flex-direction:column;width:248px;padding:28px 18px 20px;display:flex;position:fixed;inset:0 auto 0 0}.brand{align-items:center;gap:11px;padding:0 8px 28px;display:flex}.brand-mark{color:#163a2d;background:#d9ef9f;border-radius:12px;place-items:center;width:40px;height:40px;display:grid}.brand b{letter-spacing:.2px;font-family:Crimson Pro,serif;font-size:21px;display:block}.brand small,.profile small{color:#93a39a;margin-top:1px;font-size:11px;display:block}nav{gap:4px;display:grid}.nav-label{color:#70827a;letter-spacing:1.5px;text-transform:uppercase;margin:4px 12px 8px;font-size:10px;font-weight:700}.nav-label.second{margin-top:22px}.nav-item{color:#aebbb4;text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:12px;width:100%;min-height:44px;padding:0 12px;transition:all .2s;display:flex}.nav-item:hover{color:#fff;background:#ffffff0f}.nav-item.active{color:#18372c;background:#d9ef9f;font-weight:700;box-shadow:0 9px 24px #00000021}.nav-item small{color:#fff;background:#d76855;border-radius:99px;margin-left:auto;padding:1px 7px;font-size:10px}.semester-card{background:#ffffff09;border:1px solid #ffffff1a;border-radius:14px;margin-top:auto;padding:16px}.semester-card>span{color:#b9c9c1;align-items:center;gap:7px;font-size:11px;display:flex}.semester-card strong{margin-top:12px;font-size:13px;display:block}.semester-card p{color:#85968d;margin:3px 0 12px;font-size:11px}.semester-card>div{background:#34473e;border-radius:99px;height:4px;overflow:hidden}.semester-card i{border-radius:inherit;background:#d9ef9f;height:100%;display:block}.profile{border-top:1px solid #ffffff14;grid-template-columns:36px 1fr 24px;align-items:center;gap:9px;margin-top:16px;padding:12px 5px 0;display:grid}.profile>span{color:#e8f3ed;background:#345347;border-radius:10px;place-items:center;width:36px;height:36px;font-size:12px;font-weight:700;display:grid}.profile b{font-size:12px}.profile button{color:#82928a;background:0 0;border:0;padding:0}main{grid-column:2;min-width:0}.topbar{border-bottom:1px solid var(--line);z-index:10;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#f7f9f5ed;justify-content:space-between;align-items:center;gap:24px;min-height:108px;padding:25px 34px 20px;display:flex;position:sticky;top:0}.topbar p{color:var(--green);letter-spacing:.7px;text-transform:uppercase;margin:0 0 3px;font-size:11px;font-weight:700}.topbar h1{letter-spacing:-.3px;margin:0;font-family:Crimson Pro,serif;font-size:27px;line-height:1.1}.top-actions{align-items:center;gap:9px;display:flex}.top-actions button{white-space:nowrap;border-radius:10px;align-items:center;gap:7px;height:42px;padding:0 14px;font-size:12px;font-weight:600;display:flex}.search{border:1px solid var(--line);color:#879087;background:#fff;border-radius:10px;align-items:center;gap:8px;width:240px;height:42px;padding:0 12px;display:flex}.search input{width:100%;color:var(--ink);background:0 0;border:0;outline:0;font-size:12px}.portal-btn,.credential-btn{color:#34423a;background:#fff;border:1px solid #cfd6ce}.portal-btn:hover,.credential-btn:hover{background:#f0f6ef}.credential-btn{color:#245c47}.sync-btn{color:#fff;background:#1f6a4f;border:1px solid #1d624a;box-shadow:0 8px 18px #1e684d26}.sync-btn:disabled{opacity:.6}.mobile-menu{display:none}.content{max-width:1500px;margin:0 auto;padding:22px 34px 42px}.sync-strip{color:#557064;align-items:center;gap:9px;height:34px;font-size:11px;display:flex}.sync-strip>i{background:var(--line);flex:1;height:1px}.sync-strip small{color:#8b948d}.pulse-dot{background:#41a677;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #41a6771f}.stats-row{grid-template-columns:repeat(4,1fr);gap:12px;margin:11px 0 16px;display:grid}.mini-stat{border:1px solid var(--line);background:var(--paper);border-radius:15px;align-items:center;gap:13px;min-height:104px;padding:16px;display:flex;box-shadow:0 6px 24px #1c322709}.stat-icon{border-radius:12px;place-items:center;width:42px;height:42px;display:grid}.mini-stat p{color:#747e76;margin:0;font-size:11px}.mini-stat strong{margin:4px 7px 0 0;font-family:Crimson Pro,serif;font-size:25px;line-height:1;display:inline-block}.mini-stat span{color:#8b948d;font-size:10px}.mini-stat.blue .stat-icon{color:#4b59a7;background:#e5e9ff}.mini-stat.green .stat-icon{color:#33745a;background:#e0f0e8}.mini-stat.amber .stat-icon{color:#966e22;background:#f7edcf}.mini-stat.rose .stat-icon{color:#a35345;background:#f7e6e2}.main-grid{grid-template-columns:minmax(0,1fr) 292px;gap:16px;display:grid}.panel{border:1px solid var(--line);background:var(--paper);border-radius:16px;box-shadow:0 8px 30px #1c32270a}.schedule-panel{padding:20px}.panel-head{justify-content:space-between;align-items:flex-start;margin-bottom:16px;display:flex}.eyebrow{color:#818c84;letter-spacing:1.5px;font-size:9px;font-weight:700}.panel h2{margin:3px 0 0;font-family:Crimson Pro,serif;font-size:21px;line-height:1.15}.panel-head button,.next-class>button,.source-panel>button{color:#446153;background:0 0;border:0;align-items:center;gap:4px;padding:6px 0;font-size:11px;font-weight:600;display:flex}.schedule-wrap{background:#fff;border:1px solid #dfe6dd;border-radius:12px;overflow:auto}.schedule-grid{border:0;grid-template-rows:46px repeat(12,42px);display:grid;position:relative}.schedule-grid.five-days{grid-template-columns:56px repeat(5,minmax(128px,1fr));min-width:720px}.schedule-grid.seven-days{grid-template-columns:56px repeat(7,minmax(116px,1fr));min-width:920px}.corner,.day-head,.period{border-bottom:1px solid #e2e8e0;border-right:1px solid #e2e8e0}.corner{color:#65736a;background:#f6f8f4;place-items:center;font-size:9px;font-weight:700;display:grid}.day-head{color:#526159;background:#f8faf7;justify-content:center;align-items:center;gap:6px;font-size:10px;display:flex}.day-head b{color:#1d3026;font-family:Crimson Pro,serif;font-size:18px}.day-head small{color:#69776e;font-size:8px}.day-head.today{background:#edf5e5;box-shadow:inset 0 -2px #6d9d49}.day-head.today b{color:#183b2c;background:#d9ef9f;border-radius:50%;place-items:center;width:27px;height:27px;display:grid}.period{color:#69776e;background:#fafbf9;flex-direction:column;grid-column:1;justify-content:center;align-items:center;display:flex}.period b{color:#33483c;font-family:Crimson Pro,serif;font-size:14px}.period span{font-size:7px}.schedule-grid:after{content:"";pointer-events:none;background:repeating-linear-gradient(#0000 0 41px,#e2e8e0 41px 42px);position:absolute;inset:46px 0 0 56px}.course{z-index:1;text-align:left;color:#21342a;border:0;border-radius:8px;align-self:stretch;margin:3px 4px;padding:8px 9px;transition:filter .18s,box-shadow .18s;overflow:hidden;box-shadow:0 2px 7px #19352712}.course:hover{filter:brightness(.98);box-shadow:0 5px 14px #19352721}.course strong{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:10px;line-height:1.35;display:-webkit-box;overflow:hidden}.course span{opacity:.86;white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:3px;margin-top:4px;font-size:8px;line-height:1.3;display:flex;overflow:hidden}.course.indigo{background:#e8eafb;border-left:3px solid #6370bb}.course.mint{background:#e1f0e8;border-left:3px solid #4c9171}.course.amber{background:#f7e9c8;border-left:3px solid #c58a28}.course.rose{background:#f6e4df;border-left:3px solid #c26b5a}.course.sky{background:#e0edf1;border-left:3px solid #4e8fa2}.right-column{gap:16px;display:grid}.next-class{color:#fff;background:#1d342a;border-color:#1d342a;padding:20px;position:relative;overflow:hidden}.next-class:after{content:"";border:1px solid #d9ef9f21;border-radius:50%;width:170px;height:170px;position:absolute;top:-55px;right:-70px}.next-class .eyebrow{color:#a8c0b4}.course-symbol{align-items:center;gap:10px;margin:27px 0 18px;display:flex}.course-symbol span{color:#1b4936;background:#d9ef9f;border-radius:14px;place-items:center;width:49px;height:49px;font-family:Crimson Pro,serif;font-size:19px;font-weight:700;display:grid}.course-symbol i{background:#567065;width:30px;height:1px}.next-class h2{font-size:25px}.next-class>p{color:#a8b8b0;margin:6px 0 24px;font-size:11px}.location{background:#ffffff0a;border:1px solid #ffffff1a;border-radius:11px;align-items:center;gap:10px;padding:13px;display:flex}.location b,.location small{display:block}.location b{font-size:11px}.location small{color:#8fa49a;margin-top:3px;font-size:9px}.next-class>button{color:#d9ef9f;margin-top:13px}.exams{padding:18px}.panel-head.compact{margin-bottom:9px}.exam-row{border-top:1px solid #e8ece6;grid-template-columns:42px 1fr;align-items:center;gap:11px;padding:11px 0;display:grid}.exam-row>span{background:#edf1eb;border-radius:9px;align-content:center;place-items:center;height:42px;display:grid}.exam-row>span b{font-family:Crimson Pro,serif;font-size:18px;line-height:1}.exam-row>span small{color:#7f8b83;font-size:7px}.exam-row>div b,.exam-row>div small{display:block}.exam-row>div b{font-size:11px}.exam-row>div small{color:#879088;margin-top:4px;font-size:9px}.bottom-grid{grid-template-columns:1.5fr 1fr;gap:16px;margin-top:16px;display:grid}.grade-panel,.source-panel{padding:20px}.grade-list{border-top:1px solid #e5eae3;grid-template-columns:1fr 1fr;display:grid}.grade-list>div{border-bottom:1px solid #e5eae3;justify-content:space-between;align-items:center;padding:13px 12px 13px 0;display:flex}.grade-list>div:nth-child(odd){margin-right:18px}.grade-list b,.grade-list small{display:block}.grade-list b{font-size:11px}.grade-list small{color:#8a938c;margin-top:3px;font-size:9px}.grade-list strong{color:#275f49;font-family:Crimson Pro,serif;font-size:22px}.source-status{background:#edf3ed;border-radius:11px;align-items:center;gap:11px;margin-top:17px;padding:13px;display:flex}.source-status>span{background:#fff;border-radius:9px;place-items:center;width:32px;height:32px;display:grid}.source-status i{background:#43a877;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #e1f2e8}.source-status b,.source-status small{display:block}.source-status b{font-size:11px}.source-status small{color:#7b877e;white-space:nowrap;text-overflow:ellipsis;max-width:260px;margin-top:3px;font-size:9px;overflow:hidden}.table-summary{color:#6c776f;font-size:10px;line-height:1.6}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;color:#829087;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:150px;padding:28px;display:flex}.empty-state svg{color:#96ad9f}.empty-state b{color:#45564c;font-size:13px}.empty-state span{max-width:360px;font-size:10px;line-height:1.6}.source-health{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.source-health>span{color:#7d8880;background:#f7f9f6;border:1px solid #dfe5de;border-radius:99px;align-items:center;gap:4px;height:23px;padding:0 7px;font-size:9px;display:flex}.source-health>span.ok{color:#2d7556;background:#edf7f0;border-color:#cde3d6}.source-health>span.error{color:#a25043;background:#fff2ef;border-color:#efd2cc}.source-health>span i{background:#abb4ad;border-radius:50%;width:6px;height:6px}.page-stack{gap:16px;display:grid}.page-title{justify-content:space-between;align-items:center;gap:20px;min-height:88px;padding:4px 2px;display:flex}.page-title h2{margin:4px 0 3px;font-family:Crimson Pro,serif;font-size:29px;line-height:1.05}.page-title p{color:#7e8881;margin:0;font-size:11px}.page-title>b{color:#597064;border:1px solid var(--line);background:#f8faf7;border-radius:99px;padding:8px 11px;font-size:11px}.hero-number{color:#225e46;flex-direction:column;align-items:flex-end;font-family:Crimson Pro,serif;font-size:38px;line-height:1;display:flex}.hero-number small{color:#818b84;letter-spacing:.8px;text-transform:uppercase;margin-top:7px;font-family:Noto Sans SC,sans-serif;font-size:9px}.course-list{display:grid}.compact-list{border-top:1px solid #e6ebe4}.course-list-item{border-bottom:1px solid #e6ebe4;grid-template-columns:4px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:56px;padding:8px 2px;display:grid}.course-list-item>i{border-radius:5px;width:4px;height:28px}.course-list-item>i.indigo{background:#6370bb}.course-list-item>i.mint{background:#4c9171}.course-list-item>i.amber{background:#c59438}.course-list-item>i.rose{background:#c26b5a}.course-list-item>i.sky{background:#4e8fa2}.course-list-item b,.course-list-item span{display:block}.course-list-item b{font-size:11px}.course-list-item span,.course-list-item small{color:#879188;margin-top:3px;font-size:9px}.course-list-item small{white-space:nowrap}.data-table-panel{padding:20px;overflow:hidden}.data-table{border-top:1px solid #e2e7e0;overflow-x:auto}.data-row{color:#4a584f;border-bottom:1px solid #e7ebe5;grid-template-columns:1.35fr .7fr .4fr 1fr 1.5fr;align-items:center;min-width:780px;display:grid}.data-row>span{padding:12px 10px;font-size:10px;line-height:1.45}.data-row b,.data-row small{display:block}.data-row b{color:#26362d;font-size:11px}.data-row small{color:#8b948d;margin-top:3px;font-size:8px}.data-row.header{color:#808b83;background:#f4f7f2}.data-row.header>span{padding-top:9px;padding-bottom:9px;font-size:9px;font-weight:700}.semester-gpa{color:#2d674e;background:#edf4eb;border-radius:9px;padding:7px 10px;font-family:Crimson Pro,serif;font-size:15px}.grades-table .data-row{grid-template-columns:minmax(260px,1.5fr) .45fr .5fr .5fr .6fr}.score-cell{color:#225e46;font-family:Crimson Pro,serif;font-size:17px!important}.status-pass,.status-fail,.status-muted{white-space:nowrap;border-radius:99px;padding:4px 8px;font-size:9px;font-style:normal;display:inline-flex}.status-pass{color:#267150;background:#e4f2e9}.status-fail{color:#a0493d;background:#f8e5e1}.status-muted{color:#737e76;background:#e9ede8}.exam-board{padding:6px 20px}.exam-card{border-bottom:1px solid #e5e9e3;grid-template-columns:58px minmax(190px,1fr) minmax(190px,.8fr) auto;align-items:center;gap:18px;padding:18px 2px;display:grid}.exam-card:last-child{border-bottom:0}.exam-card.finished{opacity:.68}.exam-card h3{margin:4px 0;font-family:Crimson Pro,serif;font-size:19px}.exam-card p{color:#748078;margin:0;font-size:10px}.exam-date{background:#e9efe8;border-radius:12px;align-content:center;place-items:center;height:55px;display:grid}.exam-date b{font-family:Crimson Pro,serif;font-size:21px;line-height:1}.exam-date small{color:#7d8880;margin-top:3px;font-size:8px}.exam-location{color:#617168;align-items:center;gap:9px;display:flex}.exam-location b,.exam-location small{display:block}.exam-location b{font-size:10px}.exam-location small{color:#8a948d;margin-top:4px;font-size:9px}.week-toolbar{background:#f6f8f4;border:1px solid #e0e6de;border-radius:11px;grid-template-columns:1fr auto 1fr;align-items:center;min-height:52px;margin:-4px 0 12px;padding:5px 7px;display:grid}.week-navigation{justify-self:start;gap:4px;display:flex}.week-toolbar button{color:#294c3c;background:#fff;border:1px solid #d4ddd2;border-radius:9px;place-items:center;min-width:40px;height:40px;display:grid}.week-toolbar .today-button{min-width:54px;padding:0 11px;font-size:10px;font-weight:700}.week-toolbar>span{justify-content:center;align-items:baseline;gap:9px;display:flex}.week-toolbar>span b{color:#205c43;font-family:Crimson Pro,serif;font-size:19px}.week-toolbar>span small{color:#647269;font-size:9px}.week-toolbar .weekend-toggle{justify-self:end;width:auto;padding:0 12px;font-size:9px;font-weight:700}.week-toolbar .weekend-toggle.active{color:#1f6548;background:#dff0e4;border-color:#b9d5c2}.module-panel,.profile-panel{padding:20px}.module-list{border-top:1px solid #e4e9e2}.module-item{border-bottom:1px solid #e6ebe4}.module-row{text-align:left;width:100%;min-height:66px;color:inherit;background:0 0;border:0;grid-template-columns:minmax(180px,1fr) minmax(150px,1.2fr) 125px 24px;align-items:center;gap:18px;padding:12px 4px;display:grid}.module-row:hover{background:#f5f8f3}.module-row b,.module-row small{display:block}.module-row b{font-size:11px}.module-row small{color:#737f77;margin-top:4px;font-size:9px}.module-row>span{text-align:right;color:#52665a;font-size:9px}.module-row>span strong{color:#1d684a;font-family:Crimson Pro,serif;font-size:16px}.module-chevron{color:#6f7e75;transition:transform .2s}.module-item.open .module-chevron{transform:rotate(180deg)}.progress-track{background:#e5eae3;border-radius:99px;height:6px;overflow:hidden}.progress-track i{border-radius:inherit;background:linear-gradient(90deg,#1f694e,#96c25f);height:100%;display:block}.module-detail{padding:0 4px 14px}.submodule-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px;display:grid}.submodule-grid article{background:#f8faf7;border:1px solid #dfe6dc;border-radius:10px;min-height:88px;padding:12px}.submodule-grid article>div:first-child{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.submodule-grid span{color:#31443a;font-size:10px;font-weight:700}.submodule-grid b{color:#1f694b;white-space:nowrap;font-family:Crimson Pro,serif;font-size:16px}.submodule-grid b small{color:#6d7a72;font-family:Noto Sans SC,sans-serif;font-size:8px}.submodule-grid .progress-track{height:4px;margin:10px 0 7px}.submodule-grid article>small{color:#68766d;font-size:8px}.module-courses{background:#fff;border:1px solid #dfe6dc;border-radius:11px;overflow-x:auto}.module-course-row{border-top:1px solid #e7ece5;grid-template-columns:minmax(240px,1.6fr) .5fr .4fr .5fr .8fr;align-items:center;min-width:700px;display:grid}.module-course-row:first-child{border-top:0}.module-course-row>span{color:#4f5f55;padding:10px 12px;font-size:9px}.module-course-row b,.module-course-row small{display:block}.module-course-row b{color:#293a30;font-size:10px}.module-course-row small{color:#68756d;margin-top:3px;font-size:8px}.module-course-row.header{background:#f3f7f1}.module-course-row.header span{color:#526159;font-weight:700}.profile-grid{border-top:1px solid #e3e8e1;border-left:1px solid #e3e8e1;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.profile-grid>div{background:#fbfcf9;border-bottom:1px solid #e3e8e1;border-right:1px solid #e3e8e1;min-height:82px;padding:16px}.profile-grid span,.profile-grid b{display:block}.profile-grid span{color:#88928b;font-size:9px}.profile-grid b{color:#2c3b32;margin-top:8px;font-size:12px;line-height:1.5}.panel-empty{text-align:center;color:#89928b;margin:0;padding:25px 5px;font-size:10px}.notice-list{border-top:1px solid #e4e9e2;margin-top:14px;display:grid}.notice-list>div{color:#567063;border-bottom:1px solid #e7ebe5;grid-template-columns:20px 1fr;gap:8px;padding:12px 0;display:grid}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0e1d168c;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.credential-modal{background:#fbfcf9;border:1px solid #ffffff80;border-radius:20px;width:min(820px,100%);max-height:calc(100vh - 48px);overflow:auto;box-shadow:0 28px 90px #091b134d}.credential-modal>header{border-bottom:1px solid #e0e6de;justify-content:space-between;align-items:center;min-height:84px;padding:19px 22px;display:flex}.credential-modal>header>div{align-items:center;gap:12px;display:flex}.credential-icon{color:#256548;background:#dff0e6;border-radius:12px;place-items:center;width:43px;height:43px;display:grid}.credential-modal h2{margin:0;font-family:Crimson Pro,serif;font-size:23px}.credential-modal header p{color:#65736a;margin:3px 0 0;font-size:10px}.credential-modal header>button{color:#596a60;background:0 0;border:0;border-radius:10px;width:44px;height:44px}.credential-modal header>button:hover{background:#edf2eb}.credential-warning{color:#944a3e;background:#fff0ed;border-radius:10px;align-items:center;gap:8px;margin:18px 22px 0;padding:12px;font-size:11px;display:flex}.credential-slots{grid-template-columns:1fr 1fr;gap:14px;padding:20px 22px;display:grid}.credential-slot{background:#fff;border:1px solid #dfe5dd;border-radius:14px;padding:17px}.slot-head{justify-content:space-between;align-items:flex-start;gap:10px;min-height:47px;margin-bottom:13px;display:flex}.slot-head h3{color:#26382e;margin:0;font-size:13px}.slot-head p{color:#6d7b72;margin:3px 0 0;font-size:9px}.slot-head>span{color:#287152;white-space:nowrap;background:#e8f4ec;border-radius:99px;align-items:center;gap:4px;padding:5px 7px;font-size:8px;display:flex}.credential-slot label{margin-top:11px;display:block}.credential-slot label>span{color:#526159;margin-bottom:5px;font-size:9px;font-weight:700;display:block}.credential-slot input{color:#27362e;background:#fbfcfa;border:1px solid #d7ded5;border-radius:9px;width:100%;height:42px;padding:0 11px;font-size:12px}.credential-slot input::placeholder{color:#89938c}.password-input{position:relative}.password-input input{padding-right:47px}.password-input button{color:#66756c;background:0 0;border:0;border-radius:8px;place-items:center;width:40px;height:40px;display:grid;position:absolute;top:1px;right:1px}.password-input button:hover{background:#edf2eb}.slot-actions{gap:8px;margin-top:14px;display:flex}.slot-actions button{border-radius:9px;justify-content:center;align-items:center;gap:6px;min-height:42px;font-size:10px;font-weight:700;display:flex}.save-credential{color:#fff;background:#216b50;border:1px solid #1e654a;flex:1}.save-credential:hover{background:#19583f}.clear-credential{color:#934a3e;background:#fff7f5;border:1px solid #e3cbc6;padding:0 11px}.slot-actions button:disabled{opacity:.55;cursor:not-allowed}.credential-modal>footer{color:#52675b;background:#f2f6f0;border-top:1px solid #e0e6de;align-items:center;gap:8px;min-height:53px;padding:13px 22px;font-size:9px;line-height:1.5;display:flex}.schedule-grid.five-days:after{background:repeating-linear-gradient(90deg,#0000 0 calc(20% - 1px),#e2e8e0 calc(20% - 1px) 20%),repeating-linear-gradient(#0000 0 41px,#e2e8e0 41px 42px)}.schedule-grid.seven-days:after{background:repeating-linear-gradient(90deg,#0000 0 calc(14.2857% - 1px),#e2e8e0 calc(14.2857% - 1px) 14.2857%),repeating-linear-gradient(#0000 0 41px,#e2e8e0 41px 42px)}.result-cell{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.grade-point{color:#31443a;font-family:Crimson Pro,serif;font-size:15px}.program-result{border-radius:99px;align-items:center;gap:4px;min-height:25px;padding:3px 8px;font-style:normal;font-size:9px!important;font-weight:800!important;display:inline-flex!important}.program-result.passed{color:#126b43;background:#dff3e8;border:1px solid #b9dfca}.program-result.failed{color:#9c3f35;background:#fae7e4;border:1px solid #ecc7c1}.program-result.neutral{color:#56645c;background:#edf1ec;border:1px solid #dce3da}.schedule-title-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:9px;display:flex}.schedule-title-actions label{border:1px solid var(--line);background:#fff;border-radius:10px;align-items:center;gap:8px;height:40px;padding:0 10px;display:flex}.schedule-title-actions label span{color:#758078;font-size:9px;font-weight:700}.schedule-title-actions select,.exam-controls select,.notification-controls select{color:#263a2f;background:0 0;border:0;outline:0;font-size:10px;font-weight:700}.schedule-title-actions>button{color:#315745;background:#fff;border:1px solid #d5ddd3;border-radius:10px;align-items:center;gap:6px;height:40px;padding:0 12px;font-size:10px;font-weight:700;display:flex}.schedule-title-actions>b{color:#296247;background:#e8f2e7;border-radius:99px;padding:7px 10px;font-size:9px}.week-toolbar button:disabled{opacity:.38;cursor:not-allowed;background:#eef1ed}.course .custom-clock{color:#805912;opacity:1;font-weight:700}.time-modal{background:#fbfcf9;border:1px solid #ffffff80;border-radius:20px;grid-template-rows:auto minmax(0,1fr) auto;width:min(920px,100%);max-height:calc(100vh - 48px);display:grid;overflow:hidden;box-shadow:0 28px 90px #091b134d}.time-modal>header{border-bottom:1px solid #e0e6de;justify-content:space-between;align-items:center;min-height:82px;padding:18px 22px;display:flex}.time-modal>header>div{align-items:center;gap:11px;display:flex}.time-modal h2{margin:0;font-family:Crimson Pro,serif;font-size:22px}.time-modal header p{color:#69756d;margin:3px 0 0;font-size:9px}.time-modal header>button{color:#596a60;background:0 0;border:0;border-radius:10px;place-items:center;width:42px;height:42px;display:grid}.time-modal-body{gap:25px;padding:20px 22px;display:grid;overflow:auto}.settings-section-title{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.settings-section-title b,.settings-section-title span{display:block}.settings-section-title b{font-size:12px}.settings-section-title span{color:#7b877f;margin-top:2px;font-size:9px}.settings-section-title button{color:#285f47;background:#edf5eb;border:1px solid #cdd9cf;border-radius:9px;height:34px;padding:0 11px;font-size:9px;font-weight:700}.period-settings{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;display:grid}.period-settings label,.override-settings>div{background:#fff;border:1px solid #dfe5dd;border-radius:9px;align-items:center;gap:6px;padding:8px;display:flex}.period-settings label b{min-width:35px;font-size:9px}.period-settings input,.override-settings input,.override-settings select{color:#27382e;background:#fafcf9;border:1px solid #d7dfd5;border-radius:7px;min-width:0;height:32px;padding:0 6px;font-size:9px}.override-settings{gap:7px;display:grid}.override-settings>div{grid-template-columns:minmax(110px,1fr) 80px 105px 14px 105px 35px;display:grid}.override-settings>div>button{color:#9c4d41;background:#fff0ed;border:0;border-radius:7px;place-items:center;height:32px;display:grid}.settings-empty{text-align:center;color:#849087;border:1px dashed #d4ddd2;border-radius:10px;padding:20px;font-size:9px}.time-modal>footer{background:#f3f6f1;border-top:1px solid #e0e6de;justify-content:flex-end;gap:8px;padding:13px 22px;display:flex}.time-modal>footer button{color:#42574b;background:#fff;border:1px solid #d2dbd0;border-radius:9px;height:39px;padding:0 13px;font-size:10px;font-weight:700}.time-modal>footer .save-time-settings{color:#fff;background:#216b50;border-color:#1e654a;align-items:center;gap:6px;display:flex}.exam-controls{border:1px solid var(--line);background:#f9fbf7;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:10px;display:flex}.exam-controls>label{background:#fff;border:1px solid #dbe2d8;border-radius:9px;align-items:center;gap:9px;height:38px;padding:0 10px;display:flex}.exam-controls>label span{color:#758178;font-size:9px}.exam-status-tabs{gap:4px;display:flex}.exam-status-tabs button{color:#5f6e65;background:0 0;border:1px solid #0000;border-radius:9px;height:38px;padding:0 12px;font-size:9px;font-weight:700}.exam-status-tabs button small{background:#e8ede7;border-radius:99px;margin-left:4px;padding:1px 5px}.exam-status-tabs button.active{color:#1f6147;background:#fff;border-color:#cbd8cc;box-shadow:0 3px 10px #1932250f}.exam-card.ended{opacity:.67}.exam-card.ongoing{background:#f0f7ed;border-radius:10px;margin:0 -10px;padding-left:10px;padding-right:10px}.status-upcoming,.status-ongoing,.status-ended{white-space:nowrap;border-radius:99px;justify-content:center;align-items:center;gap:5px;min-width:64px;padding:5px 9px;font-size:9px;font-style:normal;font-weight:800;display:inline-flex}.status-upcoming{color:#825c18;background:#f8ebc9}.status-ongoing{color:#176342;background:#dff2e7}.status-ended{color:#6f7a72;background:#e9ede8}.live-dot{background:#2c9b69;border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 3px #2c9b6926}.notification-summary{grid-template-columns:auto 1fr;align-items:end;column-gap:6px;display:grid}.notification-summary b{color:#206046;grid-row:1/3;font-family:Crimson Pro,serif;font-size:34px;line-height:.95}.notification-summary span{font-size:10px;font-weight:700}.notification-summary small{color:#7b867e;font-size:8px}.notification-controls{gap:8px;display:flex}.notice-search{border:1px solid var(--line);color:#78847c;background:#fff;border-radius:10px;flex:1;align-items:center;gap:8px;max-width:520px;height:42px;padding:0 12px;display:flex}.notice-search input{background:0 0;border:0;outline:0;width:100%;font-size:11px}.notification-controls select{border:1px solid var(--line);background:#fff;border-radius:10px;height:42px;padding:0 12px}.notification-center{grid-template-columns:minmax(280px,38%) minmax(0,1fr);min-height:580px;display:grid;overflow:hidden}.notification-list-panel{background:#f8faf7;border-right:1px solid #e0e6de}.notification-list-panel>header{border-bottom:1px solid #e0e6de;justify-content:space-between;align-items:center;height:53px;padding:0 16px;display:flex}.notification-list-panel>header b{font-size:11px}.notification-list-panel>header span{color:#7a867e;font-size:9px}.notification-history{max-height:650px;overflow:auto}.notification-history>button{text-align:left;color:#2a3930;background:0 0;border:0;border-bottom:1px solid #e4e9e2;width:100%;min-height:112px;padding:14px 16px;display:block;position:relative}.notification-history>button:hover{background:#f1f6ef}.notification-history>button.active{background:#fff;box-shadow:inset 3px 0 #2c7657}.notification-history>button.unread:after{content:"";background:#e07157;border-radius:50%;width:7px;height:7px;position:absolute;top:17px;right:14px}.notice-type{color:#438064;letter-spacing:.4px;font-size:8px;font-weight:800}.notification-history b{margin:6px 14px 0 0;font-size:11px;line-height:1.5;display:block}.notification-history p{color:#7c877f;white-space:nowrap;text-overflow:ellipsis;margin:5px 0;font-size:9px;line-height:1.5;overflow:hidden}.notification-history time{color:#99a19b;font-size:8px}.notification-detail{background:#fff;padding:28px 32px;overflow:auto}.notification-detail>header{color:#4e695b;border-bottom:1px solid #e4e9e2;justify-content:space-between;align-items:flex-start;gap:20px;padding-bottom:20px;display:flex}.notification-detail h2{margin:8px 0 6px;font-family:Noto Sans SC,sans-serif;font-size:20px;line-height:1.45}.notification-detail header p{color:#818c84;margin:0;font-size:9px}.notification-content{color:#334139;overflow-wrap:anywhere;padding:22px 0;font-size:12px;line-height:1.9}.notification-content img{max-width:100%}.notification-content table{border-collapse:collapse;width:100%}.notification-content td,.notification-content th{border:1px solid #dfe5dd;padding:7px}.notice-source{color:#577064;background:#eff5ed;border-radius:8px;align-items:center;gap:6px;padding:10px;font-size:9px;display:flex}.notice-list>button{color:#567063;text-align:left;background:0 0;border:0;border-bottom:1px solid #e7ebe5;grid-template-columns:20px 1fr;gap:8px;width:100%;padding:12px 0;display:grid}.notice-list>button:hover{background:#f5f8f3}.notice-list b,.notice-list small{display:block}.notice-list b{color:#33433a;font-size:10px}.notice-list small{color:#89938c;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:4px;font-size:8px;line-height:1.5;display:-webkit-box;overflow:hidden}.module-course-row{grid-template-columns:minmax(240px,1.6fr) .45fr .35fr .45fr .4fr .65fr;min-width:760px}.grade-point-cell{font-family:Crimson Pro,serif;font-weight:700;color:#31443a!important;font-size:15px!important}.result-cell{justify-content:flex-start;min-width:86px}.submodule-grid>button{min-height:96px;color:inherit;text-align:left;cursor:pointer;background:#f8faf7;border:1px solid #dfe6dc;border-radius:10px;padding:12px;transition:border-color .2s,background-color .2s,box-shadow .2s}.submodule-grid>button:hover{background:#f3f8f4;border-color:#a9c7b5}.submodule-grid>button:focus-visible{outline-offset:2px;outline:3px solid #1f694e38}.submodule-grid>button.active{background:#edf7f0;border-color:#2c7658;box-shadow:inset 0 0 0 1px #2c76581f}.submodule-grid>button>div:first-child{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.submodule-grid>button>small{color:#68766d;font-size:8px;display:block}.module-course-scope{justify-content:space-between;align-items:center;gap:12px;padding:8px 2px;display:flex}.module-course-scope b,.module-course-scope small{display:block}.module-course-scope b{color:#263c30;font-size:11px}.module-course-scope small{color:#6c7a71;margin-top:2px;font-size:8px}.module-course-scope>span{color:#246a4c;background:#edf4ef;border-radius:99px;flex:none;padding:4px 9px;font-size:9px;font-weight:700}.notification-heading-actions{align-items:center;gap:14px;display:flex}.mark-all-read{color:#176443;background:#e5f3e9;border:1px solid #bcd9c8;border-radius:10px;align-items:center;gap:6px;min-height:42px;padding:0 13px;font-size:10px;font-weight:800;display:flex}.mark-all-read:hover{background:#d9eddf}.mark-all-read:disabled{opacity:.45;cursor:not-allowed}.notification-controls{justify-content:space-between;align-items:center}.notice-category-tabs{border:1px solid var(--line);background:#f4f7f2;border-radius:11px;gap:4px;padding:4px;display:flex;overflow:auto}.notice-category-tabs button{color:#647168;white-space:nowrap;background:0 0;border:0;border-radius:8px;align-items:center;gap:5px;height:34px;padding:0 10px;font-size:9px;font-weight:700;display:flex}.notice-category-tabs button small{background:#e3e8e1;border-radius:99px;min-width:18px;padding:1px 5px;font-size:8px}.notice-category-tabs button.active{color:#205f46;background:#fff;box-shadow:0 2px 8px #1d372914}.notification-history>button.category-announcement,.notification-history>button.category-grade{box-shadow:inset 3px 0 #0000}.notification-history>button.active.category-announcement{box-shadow:inset 3px 0 #4a72b8}.notification-history>button.active.category-grade{box-shadow:inset 3px 0 #ad7b25}.notice-type.category-announcement,.category-announcement .notice-type{color:#416da9}.notice-type.category-grade,.category-grade .notice-type{color:#9b6b1d}.notice-attachment-count{color:#547565;align-items:center;gap:3px;font-size:8px;display:flex;position:absolute;bottom:14px;right:14px}.grade-notification-card{background:linear-gradient(135deg,#fffaf0,#f8edcf);border:1px solid #e4d5aa;border-radius:15px;grid-template-columns:minmax(0,1fr) 86px;gap:18px;margin:24px 0;padding:20px;display:grid}.grade-notification-card h3{margin:5px 0 3px;font-family:Crimson Pro,serif;font-size:21px}.grade-notification-card p,.grade-notification-card>div>span{color:#7a715d;margin:0;font-size:9px}.grade-notification-card>strong{color:#755317;border-left:1px solid #e5d6ae;flex-direction:column;justify-content:center;align-items:center;font-family:Crimson Pro,serif;font-size:30px;display:flex}.grade-notification-card>strong small{color:#8b8067;margin-top:3px;font-family:Noto Sans SC,sans-serif;font-size:8px}.grade-notification-card dl{border-top:1px solid #e6d8b2;grid-column:1/-1;grid-template-columns:repeat(3,1fr);margin:0;display:grid}.grade-notification-card dl div{padding:12px 8px 0}.grade-notification-card dt{color:#887c62;font-size:8px}.grade-notification-card dd{margin:3px 0 0;font-size:12px;font-weight:800}.grade-notification-card dd.passed{color:#1b724c}.grade-notification-card dd.failed{color:#a64c3d}.notification-attachments{border-top:1px solid #e3e8e1;margin-top:20px;padding-top:17px}.attachment-title{align-items:center;gap:6px;display:flex}.attachment-title b{font-size:11px}.attachment-title span{color:#879189;font-size:8px}.attachment-grid{grid-template-columns:1fr 1fr;gap:7px;margin-top:10px;display:grid}.attachment-grid>button{color:#496657;text-align:left;background:#f8faf7;border:1px solid #dce4da;border-radius:10px;align-items:center;gap:9px;min-height:58px;padding:9px 11px;display:flex}.attachment-grid>button:hover{background:#f0f6ee;border-color:#bcd3c2}.attachment-grid>button>span{min-width:0}.attachment-grid b,.attachment-grid small{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.attachment-grid b{color:#2d3e34;max-width:240px;font-size:9px}.attachment-grid small{color:#869087;margin-top:3px;font-size:8px}.asset-preview{text-align:center;background:#f1f4ef;border-radius:11px;margin:12px 0 0;padding:10px}.asset-preview img{object-fit:contain;border-radius:7px;max-width:100%;max-height:520px}.asset-preview figcaption{color:#68756d;margin-top:7px;font-size:8px}.pdf-preview{background:#f4f7f2;border:1px solid #dce3da;border-radius:11px;margin-top:12px;padding:8px}.pdf-preview iframe{background:#fff;border:0;border-radius:7px;width:100%;height:540px}.pdf-preview>a,.file-download{color:#275f47;background:#e6f0e5;border-radius:8px;justify-content:center;align-items:center;gap:6px;min-height:38px;margin-top:7px;font-size:9px;font-weight:700;text-decoration:none;display:flex}.notification-content{max-width:76ch}.notification-content img{object-fit:contain;border-radius:8px;height:auto;max-height:620px}.notification-content a{color:#236a4d;text-underline-offset:3px;text-decoration:underline}.notification-sync-warning{color:#72551f;background:#fff8e9;border:1px solid #edd3a3;border-radius:12px;align-items:flex-start;gap:9px;padding:11px 13px;display:flex}.notification-sync-warning>span,.notification-sync-warning b,.notification-sync-warning small{display:block}.notification-sync-warning b{font-size:10px}.notification-sync-warning small{overflow-wrap:anywhere;margin-top:3px;font-size:9px;line-height:1.5}@media (width<=1250px){.search{display:none}.stats-row{grid-template-columns:1fr 1fr}.main-grid{grid-template-columns:1fr}.right-column{grid-template-columns:1fr 1fr}.bottom-grid,.app.portal-is-open .right-column{grid-template-columns:1fr}.notification-controls{flex-direction:column;align-items:stretch}.notice-category-tabs{width:max-content;max-width:100%}}@media (width<=900px){.app{display:block}.sidebar{transform:translate(-100%)}main{grid-column:auto}.topbar{padding:20px}.content{padding:18px 20px}.mobile-menu{width:40px;border:1px solid var(--line)!important;color:#29382f!important;background:#fff!important;place-items:center!important;padding:0!important;display:grid!important}.topbar>div:first-child{grid-template-columns:44px 1fr;display:grid}.topbar>div:first-child p,.topbar>div:first-child h1{grid-column:2}.portal-btn{display:none!important}.main-grid{display:block}.right-column{grid-template-columns:1fr 1fr;margin-top:16px}}@media (width<=760px){.source-health{display:none}.exam-card{grid-template-columns:52px 1fr}.exam-location{grid-column:2}.exam-card>em{grid-column:2;justify-self:start}.profile-grid{grid-template-columns:1fr 1fr}.module-row{grid-template-columns:1fr 90px 22px;gap:10px}.module-row .progress-track{grid-area:2/1/auto/-1}.module-row>span{grid-area:1/2;font-size:8px}.module-chevron{grid-area:1/3}.submodule-grid{grid-template-columns:1fr 1fr}.credential-slots{grid-template-columns:1fr}.credential-btn{width:42px;font-size:0;padding:0!important}.credential-btn svg{display:block}.week-toolbar{grid-template-columns:1fr auto}.week-toolbar>span{justify-self:end}.week-toolbar .weekend-toggle{grid-column:1/-1;justify-self:stretch;margin-top:5px}}@media (width<=620px){.topbar h1{font-size:21px}.sync-btn{padding:0 10px!important}.stats-row,.right-column,.grade-list{grid-template-columns:1fr}.mini-stat{min-height:82px}.sync-strip small{display:none}.grade-list>div:nth-child(odd){margin-right:0}.content{padding:12px}.topbar{padding:15px 12px}.panel{border-radius:13px}.page-title h2{font-size:25px}.hero-number{font-size:30px}.profile-grid,.submodule-grid{grid-template-columns:1fr}.exam-board{padding:5px 14px}.data-table-panel,.module-panel,.profile-panel{padding:14px}.page-title{min-height:72px}.schedule-panel{padding:12px}.week-toolbar>span{text-align:right;gap:0;display:grid}.week-toolbar>span b{font-size:17px}}@media (width<=900px){.notification-center{grid-template-columns:1fr}.notification-list-panel{border-bottom:1px solid #e0e6de;border-right:0}.notification-history{max-height:330px}.notification-detail{min-height:360px}.period-settings{grid-template-columns:1fr 1fr}}@media (width<=620px){.schedule-title-actions{justify-content:flex-start}.page-title{flex-direction:column;align-items:flex-start}.exam-controls{flex-direction:column;align-items:stretch}.exam-status-tabs{overflow:auto}.exam-status-tabs button{flex:none}.notification-controls{flex-direction:column}.notification-controls select{width:100%}.notification-detail{padding:20px 16px}.notification-heading-actions{justify-content:space-between;width:100%}.attachment-grid{grid-template-columns:1fr}.pdf-preview iframe{height:420px}.period-settings{grid-template-columns:1fr}.override-settings>div{grid-template-columns:1fr 70px 1fr 10px 1fr 34px}.time-modal-body{padding:16px}.time-modal header p{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.mobile-tabbar,.mobile-nav-close,.mobile-nav-scrim{display:none}@media (width<=900px){.app main{padding-bottom:78px}.sidebar{z-index:70;width:min(84vw,320px);max-width:320px;transition:transform .22s;box-shadow:18px 0 60px #0818104d}.mobile-nav-is-open .sidebar{transform:translate(0)}.mobile-nav-close{color:#fff;cursor:pointer;background:#ffffff12;border:1px solid #ffffff21;border-radius:11px;place-items:center;width:44px;height:44px;margin-left:auto}.mobile-nav-is-open .mobile-nav-close{display:grid}.mobile-nav-scrim{z-index:60;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#08160f80;border:0;display:block;position:fixed;inset:0}.topbar{z-index:30;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);min-height:84px;box-shadow:0 1px 0 var(--line);background:#fafcf8f0;padding:14px 16px;position:sticky;top:0}.topbar>div:first-child{min-width:0}.topbar>div:first-child p{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.top-actions{gap:7px}.top-actions .credential-btn{display:none}.top-actions button{min-height:44px}.content{padding:16px 16px 92px}.mobile-tabbar{left:10px;right:10px;bottom:max(10px,env(safe-area-inset-bottom));z-index:50;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fafcf9f2;border:1px solid #cddad0e6;border-radius:18px;grid-template-columns:repeat(5,1fr);height:64px;padding:5px;position:fixed;box-shadow:0 12px 35px #1330212e}.mobile-tabbar button{color:#708078;cursor:pointer;background:0 0;border:0;border-radius:13px;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-width:0;min-height:52px;font-size:8px;font-weight:700;display:flex;position:relative}.mobile-tabbar button.active{color:#1f684c;background:#e9f3eb}.mobile-tabbar button:focus-visible{outline-offset:1px;outline:3px solid #1f694e38}.mobile-tabbar button i{color:#fff;background:#d96450;border:2px solid #f9fbf8;border-radius:99px;place-items:center;min-width:17px;height:17px;padding:0 4px;font-size:7px;font-style:normal;display:grid;position:absolute;top:3px;left:calc(50% + 7px)}.notification-center{min-height:0}.notification-detail{scroll-margin-top:92px}.schedule-wrap{scrollbar-width:thin}.module-row{min-height:72px}.submodule-grid>button{min-height:104px}}@media (width<=620px){.topbar{min-height:76px;padding:11px 12px}.topbar h1{font-size:19px}.topbar>div:first-child p{font-size:8px}.top-actions .sync-btn{width:44px;font-size:0;padding:0!important}.top-actions .sync-btn svg{margin:0}.content{padding:12px 12px 94px}.page-stack{gap:12px}.page-title{gap:10px}.page-title h2{font-size:23px}.page-title p{font-size:9px}.stats-row{gap:8px}.notification-page .page-title{padding-bottom:4px}.notification-heading-actions{align-items:flex-end}.notification-summary b{font-size:30px}.mark-all-read{min-height:44px;padding:0 11px}.notice-category-tabs{scroll-snap-type:x proximity;width:100%}.notice-category-tabs button{scroll-snap-align:start;min-height:40px}.notification-list-panel>header{height:48px}.notification-history{max-height:300px}.notification-history>button{min-height:104px;padding:12px 14px}.notification-detail{padding:18px 14px}.notification-detail h2{font-size:17px}.notification-content{font-size:15px;line-height:1.75}.module-detail{padding-left:0;padding-right:0}.module-course-scope{padding:10px 2px}.submodule-grid>button{min-height:96px}.schedule-wrap{margin:0 -2px}.mobile-tabbar{left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom))}.progress-credit-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.progress-credit-stats .mini-stat{text-align:center;flex-direction:column;justify-content:center;gap:7px;min-width:0;min-height:96px;padding:12px}.progress-credit-stats .stat-icon{border-radius:11px;width:36px;height:36px}.progress-credit-stats .mini-stat p{font-size:11px}.progress-credit-stats .mini-stat strong{margin:3px 4px 0 0;font-size:24px}.progress-credit-stats .mini-stat span{font-size:9px}}@media (width<=900px){.mobile-tabbar{display:grid}.mobile-menu{height:44px;width:44px!important}.sidebar{overflow-y:auto}}@media (width<=620px){.notification-page,.notification-controls,.notification-center,.notification-list-panel,.notification-detail{width:100%;min-width:0}.notice-category-tabs{box-sizing:border-box;max-width:100%}.notification-center{overflow:hidden}.notification-detail{overflow-wrap:anywhere}}.my-profile-card{align-items:center;gap:15px;min-height:104px;padding:20px;display:flex}.my-profile-card>span{color:#24684d;background:#dcefe3;border-radius:18px;flex:none;place-items:center;width:58px;height:58px;font-size:20px;font-weight:800;display:grid}.my-profile-card b,.my-profile-card small{display:block}.my-profile-card b{font-size:17px}.my-profile-card small{color:#748078;margin-top:5px;font-size:11px}.my-menu{padding:4px 16px}.my-menu button{color:#34473c;text-align:left;background:0 0;border:0;border-bottom:1px solid #e6ebe4;grid-template-columns:44px minmax(0,1fr) 24px;align-items:center;gap:12px;width:100%;min-height:72px;padding:8px 0;display:grid}.my-menu button:last-child{border-bottom:0}.my-menu button>span{color:#28664e;background:#edf4ee;border-radius:12px;place-items:center;width:42px;height:42px;display:grid}.my-menu b,.my-menu small{display:block}.my-menu b{font-size:13px}.my-menu small{color:#7a867e;margin-top:4px;font-size:10px}.native-login-helper{max-width:520px}.native-login-body{text-align:center;color:#315040;padding:32px 26px 28px}.native-login-body h3{margin:12px 0 7px}.native-login-body p{color:#6d7b72;max-width:440px;margin:0 auto;font-size:13px;line-height:1.75}.native-login-body .save-credential{border-radius:11px;justify-content:center;align-items:center;gap:7px;width:100%;min-height:48px;margin-top:24px;display:flex}@media (width<=900px){.app,.app *{font-family:system-ui,-apple-system,Segoe UI,Microsoft YaHei UI,PingFang SC,sans-serif!important}.topbar{min-height:64px;padding:max(9px,env(safe-area-inset-top)) 12px 9px;gap:8px}.topbar>div:first-child{grid-template-columns:44px minmax(0,1fr);align-items:center;column-gap:10px;display:grid}.topbar>div:first-child p{display:none}.topbar>div:first-child h1{text-overflow:ellipsis;white-space:nowrap;grid-column:2;min-width:0;font-size:19px;line-height:1.2;overflow:hidden}.mobile-menu{grid-area:1/1}.top-actions .sync-btn{justify-content:center;width:44px;height:44px;font-size:0;padding:0!important}.mobile-tabbar{grid-template-columns:repeat(4,1fr);height:68px;padding:5px}.mobile-tabbar button{min-height:56px;font-size:10px}.content{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.compact-page-tools{min-height:0;margin:0}.compact-page-tools>.mobile-redundant{display:none}.compact-page-tools>.hero-number{border:1px solid var(--line);background:var(--paper);border-radius:12px;margin-left:auto;padding:9px 12px;font-size:24px}.compact-page-tools>.schedule-title-actions,.compact-page-tools>.notification-heading-actions{width:100%}.notice-search{border-radius:13px;flex:0 0 52px;width:100%;max-width:none;height:52px;min-height:52px;padding:0 15px}.notice-search input{font-size:16px}.notice-category-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:100%;padding:6px;display:grid;overflow:visible;max-width:none!important}.notice-category-tabs button{justify-content:center;width:100%;height:42px;font-size:11px}.notice-category-tabs button:first-child{grid-column:1/-1}}@media (width<=620px){.content{padding:10px 10px calc(94px + env(safe-area-inset-bottom))}.schedule-title-actions{grid-template-columns:minmax(0,1fr) auto;gap:8px;width:100%;display:grid}.schedule-title-actions label{grid-column:1/-1;width:100%}.schedule-title-actions select{width:100%;min-width:0;height:46px;font-size:14px}.schedule-title-actions>b{align-self:center}.notification-heading-actions{align-items:center}.notification-summary b{font-size:26px}.notification-controls{gap:10px}.notice-category-tabs button{min-height:44px}.my-profile-card{min-height:92px;padding:16px}.my-menu{padding:3px 14px}.my-menu button{min-height:70px}.modal-backdrop{padding:10px}.credential-modal{max-height:calc(100dvh - 20px)}}.schedule-grid{grid-template-rows:46px repeat(var(--period-count,15),42px)}.period.break-period{background:repeating-linear-gradient(135deg,var(--primary-faint) 0 7px,var(--surface) 7px 14px);color:var(--primary)}.period.break-period span{text-align:center;max-width:48px;font-weight:800;line-height:1.2}.course-detail-dialog{border:1px solid color-mix(in srgb,var(--primary) 18%,var(--line));background:var(--surface);border-radius:21px;width:min(480px,100%);padding:25px;position:relative;box-shadow:0 30px 90px #07142247}.course-detail-dialog .notice-dialog-close{position:absolute;top:12px;right:12px}.course-detail-dialog h2{margin:8px 48px 20px 0;font-size:22px;line-height:1.35}.course-detail-dialog dl{grid-template-columns:1fr 1fr;gap:9px;margin:0;display:grid}.course-detail-dialog dl div{background:var(--primary-faint);border-radius:12px;padding:12px}.course-detail-dialog dt{color:var(--muted);font-size:8px}.course-detail-dialog dd{color:var(--ink);margin:5px 0 0;font-size:11px;font-weight:750;line-height:1.5}.progress-summary-card{background:linear-gradient(135deg,var(--surface),var(--primary-faint));grid-template-columns:minmax(0,1fr) minmax(220px,45%);align-items:center;gap:24px;min-height:108px;padding:20px 22px;display:grid}.progress-summary-card>div:first-child{grid-template-columns:auto 1fr;align-items:end;column-gap:12px;display:grid}.progress-summary-card span{color:var(--muted);grid-column:1/-1;font-size:10px;font-weight:750}.progress-summary-card strong{font-variant-numeric:tabular-nums;color:var(--primary);font-size:34px;line-height:1}.progress-summary-card small{color:var(--muted);font-size:10px}.progress-summary-track{background:color-mix(in srgb,var(--primary) 10%,#fff);border-radius:99px;height:10px;overflow:hidden}.progress-summary-track i{border-radius:inherit;background:linear-gradient(90deg,var(--primary),color-mix(in srgb,var(--primary) 45%,#fff));height:100%;display:block}.progress-course-dialog{border:1px solid color-mix(in srgb,var(--primary) 18%,var(--line));background:var(--surface);border-radius:22px;width:min(880px,100%);max-height:min(86dvh,820px);padding:25px;position:relative;overflow:auto;box-shadow:0 30px 90px #07142247}.progress-course-dialog>.notice-dialog-close{z-index:2;float:right;position:sticky;top:0}.progress-course-dialog>header{padding:5px 55px 18px 3px}.progress-course-dialog h2{margin:5px 0;font-size:22px}.progress-course-dialog header p{color:var(--muted);margin:0;font-size:10px}.dialog-course-list{clear:both}.overview-feed{grid-template-columns:minmax(0,1.55fr) minmax(300px,.85fr);gap:14px;display:grid}.overview-schedule-card{grid-row:span 2;padding:20px}.overview-schedule-head{align-items:center}.overview-schedule-head>div>small{color:var(--muted);margin-top:3px;font-size:9px;display:block}.overview-schedule-head .app-select{min-width:170px}.overview-course-list{gap:10px;margin-top:14px;display:grid}.overview-course-list>section{border:1px solid var(--line);border-radius:13px;grid-template-columns:74px minmax(0,1fr);display:grid;overflow:hidden}.overview-course-list>section>header{background:var(--primary-faint);text-align:center;padding:12px 10px}.overview-course-list>section>header b,.overview-course-list>section>header span{display:block}.overview-course-list>section>header b{color:var(--primary-strong);font-size:11px}.overview-course-list>section>header span{color:var(--muted);margin-top:4px;font-size:8px}.overview-course-list>section>div{display:grid}.overview-course-list>section>div>button{border:0;border-bottom:1px solid var(--line);background:var(--surface);min-height:58px;color:var(--ink);text-align:left;grid-template-columns:4px minmax(0,1fr) 18px;align-items:center;gap:11px;padding:9px 12px;display:grid}.overview-course-list>section>div>button:last-child{border-bottom:0}.overview-course-list button>i{background:var(--primary);border-radius:99px;width:4px;height:34px}.overview-course-list button>i.amber{background:#c88d29}.overview-course-list button>i.rose{background:#bd6758}.overview-course-list button>i.indigo{background:#5968b5}.overview-course-list button>i.sky{background:#4f8bb8}.overview-course-list b,.overview-course-list small{display:block}.overview-course-list b{font-size:11px}.overview-course-list small{color:var(--muted);margin-top:4px;font-size:8px}.overview-course-list svg{color:var(--muted)}.overview-full-schedule{border:1px solid color-mix(in srgb,var(--primary) 25%,var(--line));background:var(--primary-soft);width:100%;min-height:44px;color:var(--primary-strong);border-radius:11px;justify-content:center;align-items:center;gap:6px;margin-top:12px;font-size:10px;font-weight:800;display:flex}.overview-notices{padding:18px}.overview-secondary{grid-column:2;margin:0}.overview-feed>.grade-panel{grid-column:1/-1}.period-count-stepper{align-items:center;gap:5px;display:flex!important}.period-count-stepper button{width:36px;height:36px!important;padding:0!important;font-size:18px!important}.period-count-stepper b{text-align:center;font-variant-numeric:tabular-nums;min-width:54px;color:var(--primary)!important}.period-settings article{border:1px solid var(--line);background:var(--surface);border-radius:11px;min-width:0;padding:10px}.period-settings article.is-break{background:var(--primary-faint);border-style:dashed}.period-identity{justify-content:space-between;align-items:center;gap:7px;margin-bottom:8px;display:flex}.period-identity>b{font-size:10px}.period-kind-toggle{background:var(--primary-faint);min-height:30px;color:var(--primary);border:0;border-radius:8px;padding:0 8px;font-size:8px;font-weight:750}.is-break .period-kind-toggle{background:var(--primary-soft)}.time-field-row{grid-template-columns:1fr auto 1fr;align-items:center;gap:6px;display:grid}.time-field{border:1px solid var(--line);background:var(--surface);min-width:0;min-height:38px;color:var(--ink);font-variant-numeric:tabular-nums;border-radius:9px;padding:0 8px;font-size:11px;font-weight:750}.time-field-row>span{color:var(--muted);font-size:9px}.break-label-input{border:1px solid var(--line);background:var(--surface);width:100%;height:38px;color:var(--ink);border-radius:9px;padding:0 9px;font-size:10px}.override-settings .app-select{min-width:0}.override-settings .app-select-trigger{min-height:38px;padding:0 8px}.override-settings .app-select-trigger>span{display:none}.time-picker-backdrop{z-index:190}.time-picker-sheet{width:min(500px,100%)}.time-picker-value{color:var(--primary);justify-content:center;align-items:center;gap:8px;padding:16px;display:flex}.time-picker-value b{font-variant-numeric:tabular-nums;font-size:34px}.time-picker-value span{font-size:28px}.time-picker-columns{grid-template-columns:2fr 1fr;gap:12px;padding:0 16px 14px;display:grid}.time-picker-columns>section>span{color:var(--muted);margin-bottom:7px;font-size:9px;font-weight:750;display:block}.time-picker-columns>section>div{grid-template-columns:repeat(4,1fr);gap:5px;max-height:210px;padding:2px;display:grid;overflow:auto}.time-picker-columns>section:last-child>div{grid-template-columns:repeat(3,1fr)}.time-picker-columns button{border:1px solid var(--line);background:var(--surface);min-height:42px;color:var(--ink);border-radius:9px;font-size:11px}.time-picker-columns button.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-strong);font-weight:800}.time-picker-sheet>footer{border-top:1px solid var(--line);justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.time-picker-sheet>footer button{border:1px solid var(--line);background:var(--surface);min-width:86px;min-height:42px;color:var(--ink);border-radius:10px;font-weight:750}.time-picker-sheet>footer button:last-child{border-color:var(--primary);background:var(--primary);color:#fff}@media (width<=900px){.mobile-menu{border-radius:14px!important}.overview-feed{grid-template-columns:1fr}.overview-schedule-card,.overview-notices,.overview-secondary,.overview-feed>.grade-panel{grid-area:auto/1}.overview-secondary{grid-template-columns:1fr 1fr}.modal-backdrop{z-index:160}.time-modal{max-height:calc(100dvh - 22px)}body:has(.time-modal) .mobile-tabbar{display:none!important}}@media (width<=620px){.topbar{padding-top:max(13px,env(safe-area-inset-top))}.overview-stats{gap:8px;margin:5px 0 12px;grid-template-columns:repeat(2,minmax(0,1fr))!important}.overview-stats .mini-stat{border-radius:14px;grid-template-columns:34px minmax(0,1fr);gap:8px;min-width:0;min-height:104px;padding:12px;display:grid}.overview-stats .stat-icon{border-radius:10px;width:34px;height:34px}.overview-stats .stat-icon svg{width:17px}.overview-stats .mini-stat>div:nth-child(2){min-width:0}.overview-stats .mini-stat p{white-space:nowrap;text-overflow:ellipsis;font-size:9px;overflow:hidden}.overview-stats .mini-stat strong{margin:6px 0 3px;font-size:22px;display:block}.overview-stats .mini-stat span{white-space:nowrap;text-overflow:ellipsis;font-size:8px;display:block;overflow:hidden}.overview-stats .stat-chevron{display:none}.overview-schedule-card{padding:14px}.overview-schedule-head{align-items:flex-start}.overview-schedule-head .app-select{width:132px;min-width:132px}.overview-course-list>section{grid-template-columns:58px minmax(0,1fr)}.overview-course-list>section>header{padding:11px 6px}.overview-course-list>section>div>button{padding:9px}.overview-notices{padding:14px}.overview-secondary{grid-template-columns:1fr;margin-top:0}.progress-summary-card{grid-template-columns:1fr;gap:13px;min-height:96px;padding:17px}.progress-summary-card>div:first-child{grid-template-columns:auto 1fr}.progress-summary-card strong{font-size:31px}.progress-summary-track{height:8px}.progress-course-dialog{border-radius:19px;max-height:calc(100dvh - 20px);padding:16px}.progress-course-dialog>header{padding-right:48px}.progress-course-dialog h2{font-size:19px}.course-detail-dialog{border-radius:19px;padding:20px}.course-detail-dialog dl{grid-template-columns:1fr}.course-detail-dialog h2{font-size:19px}.schedule-grid,.schedule-grid.five-days,.schedule-grid.seven-days{grid-template-rows:42px repeat(var(--period-count,15),48px)}.schedule-grid:after{background-size:auto!important}.schedule-grid.five-days:after{background:repeating-linear-gradient(90deg,#0000 0 calc(20% - 1px),#e2e8e0 calc(20% - 1px) 20%),repeating-linear-gradient(#0000 0 47px,#e2e8e0 47px 48px)}.schedule-grid.seven-days:after{background:repeating-linear-gradient(90deg,#0000 0 calc(14.2857% - 1px),#e2e8e0 calc(14.2857% - 1px) 14.2857%),repeating-linear-gradient(#0000 0 47px,#e2e8e0 47px 48px);inset:42px 0 0 36px}.course{margin:3px 2px;padding:5px 4px}.course strong{font-size:8.5px}.course span{font-size:6.5px}.course span:first-of-type{display:flex}.course span:nth-of-type(2){display:none}.modal-backdrop{background:#08121f80;place-items:end center;padding:0}.time-modal{width:100%;max-height:calc(100dvh - max(10px,env(safe-area-inset-top)));border-bottom:0;border-radius:22px 22px 0 0}.time-modal>header{min-height:74px;padding:15px 16px}.time-modal-body{padding:14px 12px 20px}.time-modal>footer{padding:12px 14px max(12px,env(safe-area-inset-bottom));background:var(--surface);position:sticky;bottom:0;box-shadow:0 -8px 24px #09182614}.period-settings{grid-template-columns:1fr}.period-settings article{padding:11px}.settings-section-title{align-items:flex-end;gap:10px}.settings-section-title>div:first-child{min-width:0}.override-settings>div{grid-template-columns:minmax(0,1fr) 118px 1fr 10px 1fr 38px}.override-settings .app-select{grid-column:auto}.time-picker-backdrop{padding:0}.time-picker-sheet{border-radius:22px 22px 0 0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.auth-page{min-height:100dvh;padding:max(22px,env(safe-area-inset-top)) 18px max(22px,env(safe-area-inset-bottom));color:#18243a;background:radial-gradient(circle at 8% 5%,#5084ca2e,#0000 34%),linear-gradient(145deg,#edf4fb,#f8fafc 48%,#eef3f9);place-items:center;display:grid}.auth-shell{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffffeb;border:1px solid #afc1d8cc;border-radius:26px;width:min(440px,100%);padding:30px;box-shadow:0 24px 80px #1d467e26}.auth-brand{align-items:center;gap:12px;display:flex}.auth-brand>span{color:#fff;background:#224ea0;border-radius:15px;place-items:center;width:48px;height:48px;display:grid}.auth-brand b{font-size:23px}.auth-intro>span{color:#224ea0;letter-spacing:1.6px;font-size:9px;font-weight:800}.auth-intro h1{margin:8px 0 9px;font-size:27px;line-height:1.28}.wechat-login,.primary-login{border:0;border-radius:13px;justify-content:center;align-items:center;gap:9px;width:100%;min-height:50px;font-size:14px;font-weight:800;display:flex}.wechat-login{color:#fff;background:#07c160}.wechat-login svg:last-child{margin-left:auto}.wechat-login{padding:0 17px}.wechat-login:disabled,.primary-login:disabled{opacity:.55}.phone-login>label,.admin-test form label{color:#46556a;margin-top:4px;font-size:11px;font-weight:700}.auth-input{color:#718095;background:#f9fbfd;border:1px solid #d9e0e9;border-radius:12px;align-items:center;gap:9px;height:48px;padding:0 13px;display:flex}.auth-input input{color:#1f2d42;background:0 0;border:0;outline:0;width:100%;font-size:15px}.auth-code-row>button{color:#224e91;background:#edf3fa;border:1px solid #cbd8e7;border-radius:12px;font-size:12px;font-weight:700}.primary-login{color:#fff;background:#224ea0;margin-top:7px}.auth-message{color:#9b5528;background:#fff3e9;border-radius:10px;margin:13px 0 0;padding:10px 12px;font-size:11px;line-height:1.5}.admin-test>button{color:#536175;background:0 0;border:0;align-items:center;gap:8px;width:100%;min-height:48px;padding:0;font-size:12px;font-weight:700;display:flex}.admin-test>button small{color:#8995a5;margin-left:auto}.admin-test form{background:#f6f8fb;border-radius:14px;gap:7px;padding:14px;display:grid}.admin-test form>p{color:#9b5e32;margin:0 0 4px;font-size:10px}.admin-test form>input{background:#fff;border:1px solid #d8e0ea;border-radius:10px;height:44px;padding:0 11px;font-size:14px}.demo-credential{color:#52647b;background:#eaf1fa;border-radius:9px;gap:3px;margin:6px 0;padding:9px 10px;font-size:10px;display:grid}.demo-credential b{color:#193f77}.admin-login-button{color:#fff;background:#1e385f;border:0;border-radius:10px;justify-content:center;align-items:center;gap:7px;min-height:45px;font-size:12px;font-weight:800;display:flex}.auth-shell>footer{color:#8893a1;align-items:flex-start;gap:6px;margin-top:17px;font-size:9px;line-height:1.55;display:flex}[data-theme=sues]{--ink:#17243a;--muted:#65758a;--line:#dbe3ed;--paper:#fbfcfe;--green:#224ea0;color:#17243a;background:#f3f6fa}[data-theme=sues] body{background:#f3f6fa}[data-theme=sues] .sidebar{background:#153e76}[data-theme=sues] .brand-mark{color:#174a8a;background:#dce9fb}[data-theme=sues] .nav-item.active{color:#153f78;background:#e4efff}[data-theme=sues] .semester-card i{background:#7eace7}[data-theme=sues] .sync-btn{background:#224ea0;border-color:#194887;box-shadow:0 8px 18px #224ea02e}[data-theme=sues] .next-class .course-symbol span{color:#18477f;background:#dce9fb}[data-theme=sues] .semester-gpa,[data-theme=sues] .score-cell,[data-theme=sues] .hero-number{color:#224ea0}[data-theme=sues] .mark-all-read{color:#174b8c;background:#e8f1fc;border-color:#b8cdeb}[data-theme=sues] .mobile-tabbar button.active{color:#174f92;background:#e6effc}[data-theme=sues] .my-menu button>span{color:#225596;background:#e9f1fb}[data-theme=sues] .progress-track i{background:linear-gradient(90deg,#224ea0,#6ea0dc)}.mini-stat.clickable{width:100%;color:inherit;text-align:left;position:relative}.mini-stat.clickable:hover{border-color:#bdcbdc;box-shadow:0 10px 28px #1c324614}.stat-chevron{color:#8a98a9;flex:none;margin-left:auto}.theme-picker{padding:17px}.theme-picker header b,.theme-picker header small{display:block}.theme-picker header b{font-size:13px}.theme-picker header small{color:#7a867e;margin-top:4px;font-size:10px}.theme-picker>div{grid-template-columns:1fr 1fr;gap:9px;margin-top:13px;display:grid}.theme-picker>div>button{border:1px solid var(--line);background:var(--paper);min-height:66px;color:var(--ink);text-align:left;border-radius:12px;grid-template-columns:32px 1fr 20px;align-items:center;gap:9px;padding:9px;display:grid}.theme-picker span b,.theme-picker span small{display:block}.theme-picker span b{font-size:11px}.theme-picker span small{color:var(--muted);margin-top:3px;font-size:9px}.theme-swatch{border-radius:9px;width:30px;height:30px}.theme-swatch.sues{background:linear-gradient(135deg,#224ea0 0 55%,#0a559b 55%)}.theme-swatch.qinghe{background:linear-gradient(135deg,#1e684d 0 55%,#d9ef9f 55%)}.logout-button{color:#a04d41;background:#fff8f6;border:1px solid #e1c8c3;border-radius:12px;min-height:48px;font-size:12px;font-weight:700}@media (width<=900px){.gesture-integrated main{padding-bottom:calc(62px + env(safe-area-inset-bottom))}.gesture-integrated .content{padding-bottom:calc(76px + env(safe-area-inset-bottom))}.gesture-integrated .mobile-tabbar{background:#fafcfef7;border-width:1px 0 0;border-radius:20px 20px 0 0;width:100%;height:calc(62px + env(safe-area-inset-bottom))!important;padding:4px 8px max(4px,env(safe-area-inset-bottom))!important;bottom:0!important;left:0!important;right:0!important}.gesture-integrated .mobile-tabbar button{min-height:50px}.theme-picker>div{grid-template-columns:1fr}}@media (width<=480px){.auth-page{padding-left:10px;padding-right:10px}.auth-shell{border-radius:22px;padding:23px 18px}.auth-intro{margin:24px 0 19px}.auth-intro h1{font-size:24px}.auth-code-row{grid-template-columns:minmax(0,1fr) 104px}}.auth-page{color:#14261e;background:radial-gradient(circle at 8% 5%,#1e684d24,#0000 34%),linear-gradient(145deg,#edf5ef,#fafcf9 48%,#eef4ef)}.auth-shell{border-color:#b2c9bbd1;box-shadow:0 24px 80px #1e684d21}.auth-brand>span{background:#1e684d}.auth-brand small,.auth-intro p{color:#687a70}.auth-intro>span{color:#1e684d}.auth-code-row>button{color:#1e684d;background:#edf6f0;border-color:#c9ddd1}.primary-login{background:#1e684d}.admin-login-button{background:#183f30}.admin-test form{background:#f4f8f5}.auth-message{color:#8b542c;background:#fff5e9}:root,[data-theme=qinghe]{--primary:#1e684d;--primary-strong:#164b39;--primary-soft:#e6f1e9;--primary-faint:#f3f7f3;--sidebar-tone:#16261f;--surface:#fbfcf9;--canvas:#f3f5f0;--primary-rgb:30,104,77}[data-theme=sues]{--primary:#224ea0;--primary-strong:#173f78;--primary-soft:#e6eefb;--primary-faint:#f2f6fc;--sidebar-tone:#153e76;--surface:#fbfcfe;--canvas:#f3f6fa;--primary-rgb:34,78,160}body{background:var(--canvas)}.app{color:var(--ink);background:var(--canvas)}.panel,.schedule-wrap,.module-courses,.notification-detail{background:var(--surface)}.sidebar{background:var(--sidebar-tone)}.brand-mark,.nav-item.active{background:var(--primary-soft);color:var(--primary-strong)}.semester-card i,.progress-track i{background:linear-gradient(90deg,var(--primary),color-mix(in srgb,var(--primary) 38%,#fff))}.topbar{background:color-mix(in srgb,var(--surface) 94%,transparent)}.sync-btn{border-color:var(--primary-strong);background:var(--primary);box-shadow:0 8px 18px rgba(var(--primary-rgb),.18)}.sync-btn:hover{background:var(--primary-strong)}.pulse-dot{background:var(--primary);box-shadow:0 0 0 4px rgba(var(--primary-rgb),.13)}.hero-number,.semester-gpa,.score-cell,.notification-summary b,.module-row>span strong,.submodule-grid b,.module-course-scope>span,.notice-type{color:var(--primary)}.mark-all-read,.schedule-title-actions>b,.status-pass,.source-status,.my-menu button>span{border-color:color-mix(in srgb,var(--primary) 24%,#fff);background:var(--primary-soft);color:var(--primary-strong)}.today,.submodule-grid>button.active,.notice-category-tabs button.active,.exam-status-tabs button.active,.mobile-tabbar button.active{background:var(--primary-soft)!important;color:var(--primary-strong)!important;border-color:color-mix(in srgb,var(--primary) 30%,#fff)!important}.today b{background:var(--primary)!important;color:#fff!important}.today-button,.weekend-toggle.active{color:var(--primary-strong);border-color:color-mix(in srgb,var(--primary) 35%,#fff);background:var(--primary-soft)}.theme-picker>div>button.active{border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.12)}.next-class{background:var(--primary-strong);border-color:var(--primary-strong)}.next-class .course-symbol span{background:var(--primary-soft);color:var(--primary-strong)}.app-select{min-width:220px}.app-select-trigger{border:1px solid var(--line);background:var(--surface);width:100%;min-height:44px;color:var(--ink);text-align:left;border-radius:11px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:0 12px;display:grid}.app-select-trigger>span{color:var(--muted);font-size:9px;font-weight:700}.app-select-trigger>b{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.app-select-trigger>svg{color:var(--primary)}.page-tools-row{justify-content:flex-end;align-items:center;gap:12px;min-height:56px;display:flex}.page-tools-row>.schedule-title-actions,.page-tools-row>.notification-heading-actions{width:100%}.page-tools-row.metric-only{min-height:48px}.page-tools-row.metric-only .hero-number{margin-left:auto}.selection-backdrop,.notice-dialog-backdrop{z-index:120;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0a121b75;justify-content:center;align-items:flex-end;padding:18px;display:flex;position:fixed;inset:0}.selection-sheet{border:1px solid color-mix(in srgb,var(--primary) 14%,var(--line));background:var(--surface);border-radius:22px;width:min(520px,100%);max-height:min(76dvh,680px);animation:.2s ease-out sheet-in;overflow:hidden;box-shadow:0 30px 80px #0816243d}.selection-sheet>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:72px;padding:14px 18px;display:flex}.selection-sheet h2,.selection-sheet small{margin:0;display:block}.selection-sheet h2{margin-top:3px;font-size:17px}.selection-sheet small{color:var(--muted);font-size:9px}.selection-sheet header button,.notice-dialog-close{background:var(--primary-faint);width:42px;height:42px;color:var(--primary-strong);border:0;border-radius:50%;place-items:center;display:grid}.selection-options{max-height:calc(76dvh - 72px);padding:8px;overflow:auto}.selection-options>button{width:100%;min-height:58px;color:var(--ink);text-align:left;background:0 0;border:1px solid #0000;border-radius:13px;justify-content:space-between;align-items:center;gap:12px;padding:10px 13px;display:flex}.selection-options>button+button{margin-top:3px}.selection-options>button.active{border-color:color-mix(in srgb,var(--primary) 22%,#fff);background:var(--primary-soft);color:var(--primary-strong)}.selection-options b,.selection-options small{display:block}.selection-options b{font-size:13px}.selection-options small{color:var(--muted);margin-top:3px;font-size:9px}@keyframes sheet-in{0%{opacity:.6;transform:translateY(22px)}to{opacity:1;transform:none}}.notification-center{min-height:0;display:block}.notification-list-panel{border:0}.notification-history{max-height:none}.notice-dialog-backdrop{padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));align-items:center}.notice-dialog{border:1px solid color-mix(in srgb,var(--primary) 15%,var(--line));background:var(--surface);border-radius:22px;width:min(860px,100%);max-height:min(86dvh,840px);animation:.18s ease-out dialog-in;position:relative;overflow:auto;box-shadow:0 32px 100px #05121f47}.notice-dialog-close{z-index:2;float:right;margin:14px 14px -56px 0;position:sticky;top:14px}.notice-dialog .notification-detail{padding:30px 34px}.notice-dialog .notification-detail>header{padding-right:52px}@keyframes dialog-in{0%{opacity:.5;transform:translateY(12px)scale(.985)}to{opacity:1;transform:none}}.overall-gpa-card{background:linear-gradient(135deg,var(--surface),var(--primary-faint));grid-template-columns:1fr auto;align-items:center;min-height:94px;padding:18px 22px;display:grid}.overall-gpa-card>span{font-size:14px;font-weight:800}.overall-gpa-card>strong{font-variant-numeric:tabular-nums;color:var(--primary);grid-area:1/2/3;font-size:38px;line-height:1}.overall-gpa-card>small{color:var(--muted);font-size:9px}.academic-year-section{gap:10px;display:grid}.academic-year-section>header{align-items:center;gap:12px;padding:3px 2px;display:flex}.academic-year-section>header span{color:var(--primary-strong);font-size:13px;font-weight:850}.academic-year-section>header i{background:var(--line);flex:1;height:1px}.semester-grade-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.semester-grade-card{padding:18px;overflow:hidden}.semester-grade-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding-bottom:13px;display:flex}.semester-grade-head small{color:var(--muted);text-transform:uppercase;font-size:8px}.semester-grade-head h2{margin:3px 0 0;font-size:19px}.semester-grade-head>b{background:var(--primary-soft);width:92px;min-height:58px;color:var(--primary);font-variant-numeric:tabular-nums;text-align:center;border-radius:13px;grid-template-columns:1fr;place-content:center;padding:8px 12px;font-size:22px;line-height:1;display:grid}.semester-grade-head>b span{letter-spacing:1px;margin-bottom:5px;font-size:8px}.grade-compact-list{display:grid}.grade-compact-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:13px;min-width:0;padding:13px 2px;display:grid}.grade-compact-row:last-child{border-bottom:0}.grade-compact-row>div>b,.grade-compact-row>div>small{display:block}.grade-compact-row>div>b{font-size:11px}.grade-compact-row>div>small{color:var(--muted);margin-top:4px;font-size:8px}.grade-compact-row dl{grid-template-columns:repeat(2,46px);margin:0;display:grid}.grade-compact-row dl div{text-align:center}.grade-compact-row dt{color:var(--muted);font-size:7px}.grade-compact-row dd{font-variant-numeric:tabular-nums;margin:3px 0 0;font-size:12px;font-weight:800}@media (width<=900px){.top-actions .sync-btn{line-height:0;place-items:center!important;display:grid!important}.top-actions .sync-btn svg{display:block;margin:0!important}.top-actions .sync-btn span{display:none}.semester-grade-grid{grid-template-columns:1fr}}@media (width<=620px){.app-select{width:100%;min-width:0}.schedule-title-actions .app-select{grid-column:1/-1}.selection-backdrop{align-items:flex-end;padding:0}.selection-sheet{width:100%;padding-bottom:max(8px,env(safe-area-inset-bottom));border-radius:22px 22px 0 0}.schedule-panel{padding:10px 8px}.schedule-wrap{width:100%;margin:0;overflow:hidden}.schedule-grid,.schedule-grid.five-days,.schedule-grid.seven-days{grid-template-rows:42px repeat(12,44px);width:100%;min-width:0}.schedule-grid.five-days{grid-template-columns:40px repeat(5,minmax(0,1fr))}.schedule-grid.seven-days{grid-template-columns:36px repeat(7,minmax(0,1fr))}.schedule-grid:after{inset:42px 0 0 40px}.schedule-grid.seven-days:after{inset-left:36px}.corner{font-size:8px}.day-head{flex-direction:column;gap:0;min-width:0;padding:3px 0}.day-head span{font-size:8px}.day-head b{font-size:14px}.day-head small{font-size:7px}.day-head.today b{width:22px;height:22px}.period b{font-size:12px}.period span{font-size:6px}.course{min-width:0;box-shadow:none;border-radius:7px;margin:2px;padding:4px 3px;overflow:hidden}.course strong{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:8px;line-height:1.25;display:-webkit-box;overflow:hidden}.course span{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:6px;line-height:1.25;overflow:hidden}.course span svg{flex:none;width:8px;height:8px}.course span:nth-of-type(n+2){display:none}.schedule-grid.seven-days .course strong{font-size:7px}.schedule-grid.seven-days .course span,.schedule-details-panel .data-row.header{display:none}.schedule-details-panel .data-table{overflow:visible}.schedule-details-panel .data-row{grid-template-columns:1fr auto;gap:7px;min-width:0;padding:13px 3px;display:grid}.schedule-details-panel .data-row>span{padding:0;font-size:9px}.schedule-details-panel .data-row>span:first-child{grid-column:1/-1}.schedule-details-panel .data-row>span:nth-child(4),.schedule-details-panel .data-row>span:nth-child(5){color:var(--muted);grid-column:1/-1}.module-panel{padding:12px}.module-row{grid-template-columns:minmax(0,1fr) auto 20px;gap:8px;padding:12px 2px}.module-row>.progress-track{grid-area:2/1/auto/-1;height:5px}.module-row>span{grid-area:1/2}.module-row>.module-chevron{grid-area:1/3}.module-detail{min-width:0}.submodule-grid{grid-template-columns:1fr}.module-courses{background:0 0;border:0;overflow:visible}.module-course-row.header{display:none}.module-course-row{border:1px solid var(--line);background:var(--surface);border-radius:12px;grid-template-columns:minmax(0,1fr) auto auto;gap:7px 10px;margin-top:8px;padding:12px;display:grid;min-width:0!important}.module-course-row>span{font-size:9px;padding:0!important}.module-course-row>span:first-child{border-bottom:1px solid var(--line);grid-column:1/-1;padding-bottom:7px!important}.module-course-row>span:nth-child(2):before{content:"性质 ";color:var(--muted)}.module-course-row>span:nth-child(3):after{content:" 学分";color:var(--muted)}.module-course-row>span:nth-child(4):before{content:"成绩 ";color:var(--muted)}.module-course-row>span:nth-child(5):before{content:"绩点 ";color:var(--muted)}.module-course-row .result-cell{grid-area:2/3/4;align-self:center;min-width:0}.notice-dialog-backdrop{padding:10px}.notice-dialog{border-radius:19px;max-height:calc(100dvh - 20px)}.notice-dialog .notification-detail{padding:24px 16px}.notice-dialog-close{margin:9px 9px -51px 0;top:9px}.notification-history{max-height:none}.overall-gpa-card{min-height:82px;padding:15px 17px}.overall-gpa-card>strong{font-size:32px}.semester-grade-card{padding:14px}.semester-grade-head h2{font-size:17px}.semester-grade-head>b{width:82px;min-height:54px;font-size:20px}.grade-compact-row{grid-template-columns:minmax(0,1fr) auto;gap:10px}.grade-compact-row dl{grid-template-columns:repeat(2,42px)}.grade-compact-row>em{grid-column:2;justify-self:center}.grade-compact-row>div>b{font-size:12px}.grade-compact-row>div>small{font-size:9px}.schedule-grid,.schedule-grid.five-days,.schedule-grid.seven-days{grid-template-rows:42px repeat(var(--period-count,15),48px)}.schedule-grid.five-days:after{background:repeating-linear-gradient(90deg,#0000 0 calc(20% - 1px),#e2e8e0 calc(20% - 1px) 20%),repeating-linear-gradient(#0000 0 47px,#e2e8e0 47px 48px)}.schedule-grid.seven-days:after{background:repeating-linear-gradient(90deg,#0000 0 calc(14.2857% - 1px),#e2e8e0 calc(14.2857% - 1px) 14.2857%),repeating-linear-gradient(#0000 0 47px,#e2e8e0 47px 48px);inset:42px 0 0 36px}}.overview-schedule-controls{grid-template-columns:repeat(2,minmax(150px,1fr));gap:8px;display:grid}.overview-schedule-controls .app-select{min-width:0}.overview-course-list>section.selected-day{border-color:color-mix(in srgb,var(--primary) 38%,var(--line));box-shadow:0 7px 22px rgba(var(--primary-rgb),.08)}.selected-day-empty{color:var(--muted);align-self:center;margin:0;padding:15px;font-size:10px}.week-jump{width:132px}.week-jump .app-select{min-width:0}.week-jump .app-select-trigger{min-height:40px}.period span i{font-style:normal;line-height:1.25;display:block}.course strong>i,.course-room b>i{font-style:normal;display:block}.course-room b{min-width:0;font-weight:600}.notice-source-link{text-decoration:none}.notice-source-link:hover{background:var(--primary-soft);color:var(--primary-strong)}.override-settings>.override-rule{border:1px solid var(--line);background:var(--surface);border-radius:12px;gap:9px;padding:10px;display:grid}.override-rule-top{grid-template-columns:minmax(0,1fr) 126px 40px;align-items:stretch;gap:8px;display:grid}.override-building{width:100%;height:42px!important;padding:0 11px!important}.period-range-field{border:1px solid color-mix(in srgb,var(--primary) 25%,var(--line));background:var(--primary-faint);min-width:0;height:42px;color:var(--primary-strong);border-radius:9px;justify-content:center;align-items:center;gap:5px;font-size:10px;font-weight:800;display:flex}.override-delete{color:#9c4d41!important;background:#fff0ed!important;border:0!important;border-radius:9px!important;height:42px!important}.override-time-row{grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;display:grid}.override-time-row>span{color:var(--muted);font-size:9px}.period-range-sheet{width:min(560px,100%)}.period-range-columns{grid-template-columns:1fr 1fr;gap:10px;padding:14px;display:grid}.period-range-columns>section{gap:5px;max-height:330px;padding:4px;display:grid;overflow:auto}.period-range-columns>section>b{z-index:1;background:var(--surface);padding:8px 4px;font-size:10px;position:sticky;top:-4px}.period-range-columns button{border:1px solid var(--line);background:var(--surface);min-height:43px;color:var(--ink);border-radius:10px;font-size:11px}.period-range-columns button.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-strong);font-weight:800}.period-range-sheet>footer{border-top:1px solid var(--line);justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.period-range-sheet>footer button{border:1px solid var(--line);background:var(--surface);min-width:86px;min-height:42px;color:var(--ink);border-radius:10px;font-weight:750}.period-range-sheet>footer button:last-child{border-color:var(--primary);background:var(--primary);color:#fff}.time-picker-columns{grid-template-columns:1fr 1fr}.time-wheel-column>span{color:var(--muted);margin-bottom:7px;font-size:9px;font-weight:750;display:block}.time-wheel{scroll-snap-type:y mandatory;scrollbar-width:none;height:220px;position:relative;overflow-y:auto;-webkit-mask-image:linear-gradient(#0000,#000 23% 77%,#0000);mask-image:linear-gradient(#0000,#000 23% 77%,#0000);padding:0 5px!important;display:block!important}.time-wheel::-webkit-scrollbar{display:none}.time-wheel>i{height:84px;display:block}.time-wheel>button{scroll-snap-align:center;font-variant-numeric:tabular-nums;width:100%;height:52px;margin:2px 0;font-size:15px!important}.time-wheel>button.active{box-shadow:0 6px 18px rgba(var(--primary-rgb),.12);transform:scale(1.04)}.exam-card.ended{cursor:pointer;transition:opacity .18s,background .18s,transform .14s}.exam-card.ended:hover,.exam-card.ended.expanded{opacity:1;background:var(--primary-faint)}.exam-result-reveal{background:var(--primary-soft);min-height:62px;color:var(--primary-strong);border-radius:12px;grid-column:2/-1;align-items:center;gap:12px;padding:11px 14px;animation:.18s ease-out dialog-in;display:flex}.exam-result-reveal span{align-items:baseline;gap:10px;display:flex}.exam-result-reveal small,.exam-result-reveal b,.exam-result-reveal i{display:block}.exam-result-reveal small{font-size:9px}.exam-result-reveal b{font-size:24px}.exam-result-reveal i{font-size:9px;font-style:normal}.exam-result-reveal.pending{color:#765c2d;background:#f6f1e7}.exam-result-reveal.pending span{display:block}.exam-result-reveal.pending b{font-size:11px}.exam-result-reveal.pending small{margin-top:4px}:is(button,.exam-card[role=button],.theme-picker button,.submodule-grid>button){touch-action:manipulation;transition:transform .14s,box-shadow .18s,background-color .18s,filter .18s}:is(button,.exam-card[role=button],.submodule-grid>button):active:not(:disabled){filter:saturate(.92);transform:translateY(1px)scale(.975)}:is(button,.exam-card[role=button],.submodule-grid>button):focus-visible{outline:3px solid rgba(var(--primary-rgb),.2);outline-offset:2px}@media (width<=900px){.sidebar{padding-top:max(58px,calc(env(safe-area-inset-top) + 30px))}.week-toolbar{grid-template-columns:auto minmax(0,1fr) 132px auto}.week-toolbar .week-jump{grid-column:auto;width:132px}.week-toolbar .weekend-toggle{grid-column:auto;margin-top:0}}@media (width<=620px){.overview-stats .mini-stat{flex-direction:column;justify-content:center;align-items:center;gap:4px;text-align:center!important;min-height:88px!important;padding:9px!important;display:flex!important}.overview-stats .stat-icon{width:30px;height:30px}.overview-stats .mini-stat>div:nth-child(2){width:100%}.overview-stats .mini-stat p{font-size:8px}.overview-stats .mini-stat strong{margin:2px 0;font-size:19px}.overview-stats .mini-stat span{font-size:7px}.overview-schedule-head{grid-template-columns:1fr;gap:10px;display:grid}.overview-schedule-controls{grid-template-columns:1fr 1fr;width:100%}.overview-schedule-head .app-select{width:100%;min-width:0}.overview-schedule-controls .app-select-trigger{padding:0 8px}.overview-course-list>section{grid-template-columns:58px minmax(0,1fr)}.week-toolbar{grid-template-columns:1fr auto;gap:8px}.week-toolbar>span{grid-area:1/2}.week-toolbar .week-jump{grid-area:2/1/auto/-1;width:100%}.week-toolbar .weekend-toggle{grid-area:3/1/auto/-1;justify-self:stretch;margin:0}.week-jump .app-select{width:100%}.schedule-grid,.schedule-grid.five-days,.schedule-grid.seven-days{grid-template-rows:42px repeat(var(--period-count,15),60px)}.schedule-grid.five-days:after{background:repeating-linear-gradient(90deg,#0000 0 calc(20% - 1px),#e2e8e0 calc(20% - 1px) 20%),repeating-linear-gradient(#0000 0 59px,#e2e8e0 59px 60px)}.schedule-grid.seven-days:after{background:repeating-linear-gradient(90deg,#0000 0 calc(14.2857% - 1px),#e2e8e0 calc(14.2857% - 1px) 14.2857%),repeating-linear-gradient(#0000 0 59px,#e2e8e0 59px 60px)}.period span{white-space:normal}.period span i{font-size:5.5px}.period span i+i{margin-top:2px}.course{padding:5px 3px}.course strong{-webkit-line-clamp:unset;font-size:7.5px;line-height:1.2;display:block}.course strong>i{white-space:normal}.course .course-room{white-space:normal;align-items:flex-start;font-size:5.5px;line-height:1.15;display:flex!important}.course-room b>i{white-space:normal}.course span:nth-of-type(n+2){display:none}.schedule-grid.seven-days .course strong{font-size:6.5px}.schedule-grid.seven-days .course .course-room{display:none!important}.override-rule-top{grid-template-columns:minmax(0,1fr) 112px 40px}.override-time-row .time-field{height:42px}.period-range-columns{padding:10px}.period-range-columns>section{max-height:48dvh}.notification-summary{white-space:nowrap;gap:5px;align-items:baseline!important;display:flex!important}.notification-summary b{font-size:27px!important}.notification-summary span{font-size:10px}.notification-summary i{color:var(--muted);font-size:9px;font-style:normal}.notification-summary small{font-size:8px}.notification-heading-actions{align-items:center!important}.profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.profile-grid>div{min-height:94px;padding:13px}.profile-grid b{overflow-wrap:anywhere;margin-top:5px;font-size:12px}.exam-result-reveal{grid-column:1/-1}.exam-result-reveal span{flex-wrap:wrap}}.week-toolbar{grid-template-columns:auto minmax(0,1fr) auto;align-items:center}.week-display-button{min-width:176px;min-height:44px;color:var(--ink);text-align:center;background:0 0;border:1px solid #0000;border-radius:13px;justify-self:center;place-items:center;padding:4px 12px;display:grid}.week-display-button:hover{border-color:color-mix(in srgb,var(--primary) 18%,transparent);background:var(--primary-faint)}.week-display-button b{color:var(--primary-strong);justify-content:center;align-items:center;gap:4px;font-size:22px;line-height:1.1;display:flex}.week-display-button b svg{color:var(--primary);transition:transform .18s}.week-display-button:active b svg{transform:translateY(2px)}.week-display-button small{color:var(--muted);white-space:nowrap;margin-top:3px;font-size:9px}.week-selection-sheet .selection-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.week-selection-sheet .selection-options>button{text-align:center;justify-content:center}.week-selection-sheet .selection-options>button+button{margin-top:0}.progress-dialog-backdrop{overscroll-behavior:none;overflow:hidden}.progress-course-dialog{overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch}.app-toast{z-index:240;border:1px solid color-mix(in srgb,var(--primary) 22%,var(--line));background:var(--sidebar-tone);color:#fff;border-radius:15px;align-items:center;gap:10px;max-width:min(420px,100vw - 32px);min-height:48px;padding:12px 16px;font-size:11px;font-weight:750;animation:.18s ease-out dialog-in;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 18px 50px #081c1447}.app-toast.success{background:var(--primary-strong)}.app-toast.warning{background:#745d2d}.app-toast.error{background:#8c4239}.app-toast svg{flex:none}@media (width<=900px){.week-toolbar{grid-template-columns:auto minmax(0,1fr) auto}.app-toast{right:16px;bottom:calc(76px + env(safe-area-inset-bottom))}}@media (width<=620px){.week-toolbar{grid-template-columns:auto minmax(0,1fr);gap:8px}.week-navigation{grid-area:1/1}.week-display-button{text-align:right;grid-area:1/2;justify-self:end;place-items:end;min-width:0;padding-inline:6px}.week-display-button b{justify-content:flex-end;font-size:20px}.week-display-button small{font-size:7px}.week-toolbar .weekend-toggle{grid-area:2/1/auto/-1;justify-self:stretch;margin:0}.week-selection-sheet .selection-options{grid-template-columns:repeat(3,minmax(0,1fr))}.app-toast{left:16px;right:16px;bottom:calc(76px + env(safe-area-inset-bottom));text-align:center;justify-content:center}}.period-range-backdrop{z-index:210;overscroll-behavior:none;contain:strict;background:#0a181294;-webkit-backdrop-filter:none!important}.period-range-backdrop .period-range-sheet{backface-visibility:hidden;will-change:auto;transform:translateZ(0);animation:none!important}.overview-schedule-head>div:first-child h2{margin-top:5px}.overview-schedule-controls{min-width:min(100%,380px)}.overview-schedule-controls .app-select-trigger{border-radius:13px;min-height:52px;padding:0 14px}.overview-schedule-controls .app-select-trigger>span{font-size:10px}.overview-schedule-controls .app-select-trigger>b{font-size:14px;line-height:1.25}.overview-course-list.single-day>section{grid-template-columns:82px minmax(0,1fr)}.overview-course-list.single-day>section>header b{font-size:13px}.overview-course-list.single-day>section>header span{font-size:9px;line-height:1.4}@media (width<=620px){.overview-schedule-head{gap:12px}.overview-schedule-controls{min-width:0}.overview-schedule-controls .app-select-trigger{min-height:56px;padding:0 11px}.overview-schedule-controls .app-select-trigger>span{font-size:10px}.overview-schedule-controls .app-select-trigger>b{font-size:13px}.overview-course-list.single-day>section{grid-template-columns:68px minmax(0,1fr)}.period-range-backdrop{contain:layout paint style;align-items:flex-end;padding:0}.period-range-backdrop .period-range-sheet{padding-bottom:max(8px,env(safe-area-inset-bottom));border-radius:22px 22px 0 0}.progress-dialog-backdrop{padding:max(68px,calc(env(safe-area-inset-top) + 18px)) 12px max(72px,calc(env(safe-area-inset-bottom) + 58px));align-items:flex-start}.progress-course-dialog{width:100%;max-height:calc(100dvh - max(140px,calc(env(safe-area-inset-top) + env(safe-area-inset-bottom) + 96px)));border-radius:22px;padding:17px 15px 20px}.progress-course-dialog>.notice-dialog-close{margin-top:0;top:0}}.overview-schedule-controls{grid-template-columns:minmax(112px,.8fr) minmax(0,1.2fr)}.overview-schedule-controls .app-select-trigger{text-align:left;grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) 20px;align-content:center;gap:3px 8px}.overview-schedule-controls .app-select-trigger>span{grid-area:1/1;line-height:1.15}.overview-schedule-controls .app-select-trigger>b{text-overflow:clip;white-space:nowrap;grid-area:2/1;font-size:14px;line-height:1.2;overflow:visible}.overview-schedule-controls .app-select-trigger>svg{grid-area:1/2/3;align-self:center}@media (width<=620px){.overview-schedule-controls{grid-template-columns:minmax(106px,.78fr) minmax(0,1.22fr);gap:9px}.overview-schedule-controls .app-select-trigger{min-height:64px;padding:8px 10px}.overview-schedule-controls .app-select-trigger>b{font-size:13px}}.time-picker-backdrop{z-index:220;overscroll-behavior:none;contain:strict;background:#0a181294;-webkit-backdrop-filter:none!important}.time-picker-backdrop .time-picker-sheet{backface-visibility:hidden;will-change:auto;transform:translateZ(0);animation:none!important}@media (width<=620px){.time-picker-backdrop{contain:layout paint style;align-items:flex-end;padding:0}.time-picker-backdrop .time-picker-sheet{padding-bottom:max(8px,env(safe-area-inset-bottom));border-radius:22px 22px 0 0}}.auth-page{min-height:100dvh;padding:max(28px,env(safe-area-inset-top)) 18px max(24px,env(safe-area-inset-bottom));background:var(--canvas,#f3f5f0);color:var(--ink,#14261e);place-items:center;display:grid;overflow:auto}.auth-shell{border:1px solid color-mix(in srgb,var(--primary,#1e684d) 14%,#dce3dc);background:var(--surface,#fbfcf9);-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:24px;width:min(390px,100%);padding:28px;box-shadow:0 18px 55px #122e2217}.auth-brand{justify-content:flex-start;align-items:center;gap:12px;display:flex}.auth-brand>span{background:var(--primary-soft,#e6f1e9);width:46px;height:46px;color:var(--primary-strong,#164b39);border-radius:14px;place-items:center;display:grid}.auth-brand b,.auth-brand small{display:block}.auth-brand b{letter-spacing:.02em;font-size:21px;line-height:1.1}.auth-brand small{color:var(--muted,#687a70);margin-top:5px;font-size:11px}.auth-intro{margin:30px 0 22px}.auth-intro h1{letter-spacing:-.02em;margin:0;font-size:29px;line-height:1.18}.auth-intro p{color:var(--muted,#687a70);margin:8px 0 0;font-size:13px;line-height:1.5}.wechat-login,.primary-login{cursor:pointer;border:0;border-radius:14px;grid-template-columns:24px 1fr 24px;align-items:center;gap:8px;width:100%;min-height:52px;padding:0 16px;font-size:14px;font-weight:800;transition:transform .16s,box-shadow .16s,filter .16s;display:grid}.wechat-login{color:#fff;background:#08b85b;box-shadow:0 8px 22px #08b85b29}.primary-login{background:var(--primary,#1e684d);color:#fff;box-shadow:0 8px 22px rgba(var(--primary-rgb,30,104,77),.14);margin-top:4px}.wechat-login svg:last-child,.primary-login svg:last-child{justify-self:end;margin:0}.wechat-login:active,.primary-login:active,.auth-code-row>button:active,.admin-test>button:active,.admin-login-button:active{transform:scale(.985)}.wechat-login:disabled,.primary-login:disabled,.auth-code-row>button:disabled,.admin-login-button:disabled{opacity:.5;cursor:default;box-shadow:none;transform:none}.wechat-login:focus-visible,.primary-login:focus-visible,.auth-code-row>button:focus-visible,.admin-test>button:focus-visible,.admin-test input:focus-visible,.admin-login-button:focus-visible{outline:3px solid rgba(var(--primary-rgb,30,104,77),.2);outline-offset:2px}.auth-divider{color:#87938c;align-items:center;gap:12px;margin:19px 0;font-size:10px;display:flex}.auth-divider i{background:var(--line,#dce3dc);flex:1;height:1px}.phone-login{gap:10px;display:grid}.auth-sr-only{clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.auth-input{border:1px solid var(--line,#d8e1da);color:#738078;background:#fff;border-radius:13px;align-items:center;gap:10px;height:52px;padding:0 14px;transition:border-color .16s,box-shadow .16s;display:flex}.auth-input:focus-within{border-color:color-mix(in srgb,var(--primary,#1e684d) 62%,#fff);box-shadow:0 0 0 3px rgba(var(--primary-rgb,30,104,77),.1)}.auth-input input{width:100%;min-width:0;color:var(--ink,#14261e);font:inherit;background:0 0;border:0;outline:0;font-size:15px}.auth-input input::placeholder,.admin-test input::placeholder{color:#9aa49e}.auth-code-row{grid-template-columns:minmax(0,1fr) 108px;gap:9px;display:grid}.auth-code-row>button{border:1px solid color-mix(in srgb,var(--primary,#1e684d) 20%,#d8e1da);background:var(--primary-faint,#f3f7f3);color:var(--primary-strong,#164b39);cursor:pointer;border-radius:13px;font-size:12px;font-weight:750;transition:transform .16s,background .16s}.auth-message{color:#80502c;background:#fff8ef;border:1px solid #f0dcc7;border-radius:11px;margin:12px 0 0;padding:10px 12px;font-size:11px;line-height:1.5}.admin-test{border-top:1px solid var(--line,#dce3dc);margin-top:15px}.admin-test>button{width:100%;min-height:46px;color:var(--muted,#687a70);cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:0;font-size:11px;font-weight:700;transition:transform .16s,color .16s;display:flex}.admin-test>button small{color:#919b95;margin-left:auto;font-size:10px}.admin-test.open>button{color:var(--primary-strong,#164b39)}.admin-test form{border:1px solid var(--line,#dce3dc);background:var(--primary-faint,#f3f7f3);border-radius:14px;gap:9px;padding:12px;display:grid}.admin-test form>input{border:1px solid var(--line,#d8e1da);height:46px;color:var(--ink,#14261e);font:inherit;background:#fff;border-radius:11px;outline:0;padding:0 12px;font-size:14px}.admin-test form>input:focus{border-color:color-mix(in srgb,var(--primary,#1e684d) 58%,#fff);box-shadow:0 0 0 3px rgba(var(--primary-rgb,30,104,77),.1)}.admin-login-button{background:var(--primary-strong,#164b39);color:#fff;cursor:pointer;border:0;border-radius:11px;justify-content:center;align-items:center;gap:7px;min-height:46px;font-size:12px;font-weight:800;transition:transform .16s,filter .16s;display:flex}.auth-shell>footer{color:#87938c;text-align:center;justify-content:center;align-items:center;gap:6px;margin-top:14px;font-size:9px;line-height:1.4;display:flex}.strict-access-page{place-items:center}.strict-access-page .auth-card{border:1px solid color-mix(in srgb,var(--primary,#1e684d) 16%,#dce3dc);background:var(--surface,#fbfcf9);text-align:center;border-radius:24px;width:min(390px,100%);padding:34px 28px;box-shadow:0 18px 55px #122e2217}.strict-access-page .auth-brand-mark{background:var(--primary-soft,#e6f1e9);width:58px;height:58px;color:var(--primary-strong,#164b39);border-radius:18px;place-items:center;margin:0 auto 20px;display:grid}.strict-access-page p{color:var(--primary,#1e684d);letter-spacing:.12em;margin:0;font-size:11px;font-weight:800}.strict-access-page h1{margin:9px 0 10px;font-size:26px;line-height:1.25}.strict-access-page small{color:var(--muted,#687a70);font-size:12px;line-height:1.7;display:block}.strict-access-progress{background:var(--primary-faint,#f3f7f3);color:var(--primary-strong,#164b39);border-radius:13px;justify-content:center;align-items:center;gap:9px;margin-top:24px;padding:13px 16px;font-size:12px;font-weight:750;display:flex}@media (width<=480px){.auth-page{padding:max(34px,env(safe-area-inset-top)) 12px max(20px,env(safe-area-inset-bottom));place-items:start center}.auth-shell{border-radius:21px;padding:24px 20px}.auth-intro{margin:27px 0 20px}.auth-intro h1{font-size:27px}.auth-code-row{grid-template-columns:minmax(0,1fr) 102px}.strict-access-page{place-items:center}.strict-access-page .auth-card{border-radius:21px;padding:30px 22px}}.academic-link-card{grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px 18px;display:grid}.academic-link-icon{background:var(--primary-faint,#edf5ef);width:44px;height:44px;color:var(--primary,#1e684d);border-radius:13px;place-items:center;display:grid}.academic-link-card>div b,.academic-link-card>div small,.academic-link-card>div em{display:block}.academic-link-card>div b{font-size:13px}.academic-link-card>div small{color:var(--muted);margin-top:4px;font-size:10px;line-height:1.55}.academic-link-card>div em{color:var(--primary,#1e684d);margin-top:5px;font-size:10px;font-style:normal}.academic-link-card>button{border:1px solid color-mix(in srgb,var(--primary,#1e684d) 28%,var(--line));background:var(--primary-faint,#edf5ef);min-height:38px;color:var(--primary-strong,#164b39);border-radius:11px;align-items:center;gap:6px;padding:0 13px;font-size:11px;font-weight:750;display:flex}.academic-link-card.linked{border-color:color-mix(in srgb,var(--primary,#1e684d) 32%,var(--line))}.academic-link-card.linked>button{color:var(--muted);background:#fff}.admin-login-page{background:radial-gradient(circle at 20% 10%,#e9f3ec 0,#0000 34%),#f4f6f2;place-items:center;min-height:100vh;padding:24px;display:grid}.admin-login-card{background:#ffffffeb;border:1px solid #dce4dc;border-radius:24px;width:min(400px,100%);padding:32px;box-shadow:0 24px 70px #183a2b1a}.admin-login-mark{color:#1e684d;background:#dfeee4;border-radius:16px;place-items:center;width:52px;height:52px;display:grid}.admin-login-card>p{color:#1e684d;letter-spacing:1.2px;margin:22px 0 4px;font-size:11px;font-weight:800}.admin-login-card h1{margin:0;font-size:28px}.admin-login-card>small{color:#7a877f;margin-top:7px;display:block}.admin-login-card form{gap:14px;margin-top:28px;display:grid}.admin-login-card label span{color:#526159;margin:0 0 7px;font-size:11px;font-weight:700;display:block}.admin-login-card input{background:#fff;border:1px solid #d9e1da;border-radius:12px;outline:0;width:100%;height:48px;padding:0 13px}.admin-login-card input:focus{border-color:#5b8e77;box-shadow:0 0 0 3px #e3efe8}.admin-login-card form>button{color:#fff;background:#1e684d;border:0;border-radius:12px;justify-content:center;align-items:center;gap:8px;height:48px;font-weight:800;display:flex}.admin-login-card>a{color:#718078;text-align:center;margin-top:18px;font-size:11px;text-decoration:none;display:block}.admin-form-error,.admin-alert{color:#98483d;background:#fff3f0;border:1px solid #efd5cf;border-radius:10px;margin:0;padding:10px 12px;font-size:11px}.admin-console{color:#17231c;background:#f3f5f1;grid-template-columns:220px minmax(0,1fr);min-height:100vh;display:grid}.admin-sidebar{color:#eef4f0;background:#172a21;flex-direction:column;height:100vh;padding:24px 16px;display:flex;position:sticky;top:0}.admin-sidebar>div{align-items:center;gap:10px;padding:0 8px 25px;display:flex}.admin-sidebar>div>span{color:#1c6149;background:#e3f0e7;border-radius:12px;place-items:center;width:39px;height:39px;display:grid}.admin-sidebar>div b,.admin-sidebar>div small{display:block}.admin-sidebar>div b{font-size:16px}.admin-sidebar>div small{color:#91a39a;margin-top:2px;font-size:10px}.admin-sidebar nav button,.admin-sidebar>button{color:#acbcb3;text-align:left;background:0 0;border:0;border-radius:11px;align-items:center;gap:10px;width:100%;height:44px;padding:0 12px;display:flex}.admin-sidebar nav button.active{color:#194d3b;background:#e3f0e7;font-weight:800}.admin-sidebar>button{margin-top:auto}.admin-console>main{grid-column:2;min-width:0}.admin-console>main>header{z-index:5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fafbf8e6;border-bottom:1px solid #dce3dc;justify-content:space-between;align-items:center;height:86px;padding:0 30px;display:flex;position:sticky;top:0}.admin-console>main>header p{color:#527162;margin:0 0 3px;font-size:10px;font-weight:800}.admin-console>main>header h1{margin:0;font-size:23px}.admin-console>main>header>section{align-items:center;gap:10px;display:flex}.admin-console>main>header>section span{color:#53645a;background:#fff;border:1px solid #dae2db;border-radius:99px;align-items:center;gap:6px;height:36px;padding:0 12px;font-size:11px;display:flex}.admin-console>main>header>section button{color:#315c49;background:#fff;border:1px solid #dae2db;border-radius:11px;place-items:center;width:36px;height:36px;display:grid}.admin-content{max-width:1440px;margin:auto;padding:24px 30px 42px}.admin-stats{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.admin-stats article{background:#fff;border:1px solid #dce3dc;border-radius:15px;align-items:center;gap:12px;min-height:88px;padding:15px;display:flex;box-shadow:0 5px 20px #19352809}.admin-stats article>span{color:#2b6a50;background:#e8f2eb;border-radius:12px;place-items:center;width:42px;height:42px;display:grid}.admin-stats small,.admin-stats b{display:block}.admin-stats small{color:#7c8780;font-size:10px}.admin-stats b{margin-top:3px;font-size:21px}.admin-user-panel{background:#fff;border:1px solid #dce3dc;border-radius:17px;margin-top:14px;overflow:hidden}.admin-user-panel>header{justify-content:space-between;align-items:center;gap:18px;padding:18px 20px;display:flex}.admin-user-panel h2{margin:0;font-size:16px}.admin-user-panel header small{color:#849087;margin-top:4px;font-size:9px;display:block}.admin-user-panel header label{color:#738078;border:1px solid #dce3dc;border-radius:11px;align-items:center;gap:8px;width:330px;height:40px;padding:0 12px;display:flex}.admin-user-panel header input{background:0 0;border:0;outline:0;width:100%;font-size:11px}.admin-alert{margin:0 20px 14px}.admin-table-wrap{border-top:1px solid #e3e8e3;min-height:240px;position:relative;overflow-x:auto}.admin-table-wrap table{border-collapse:collapse;text-align:left;width:100%;min-width:940px}.admin-table-wrap th{color:#78857d;background:#f4f7f3;padding:10px 14px;font-size:9px}.admin-table-wrap td{color:#4d5d53;border-top:1px solid #e8ece8;padding:13px 14px;font-size:10px}.admin-table-wrap tbody tr{cursor:pointer;transition:background .15s}.admin-table-wrap tbody tr:hover{background:#f4f8f4}.admin-table-wrap td b,.admin-table-wrap td small{display:block}.admin-table-wrap td b{color:#26372e;font-size:11px}.admin-table-wrap td small{color:#8a958e;margin-top:3px;font-size:8px}.admin-table-wrap td:first-child small{text-overflow:ellipsis;max-width:120px;overflow:hidden}.admin-status{color:#287050;background:#e8f4ec;border-radius:99px;padding:4px 8px;font-size:9px;font-weight:700}.admin-status.disabled{color:#9a4b3f;background:#fae9e5}.muted{color:#98a099}.admin-empty,.admin-loading{color:#879188;justify-content:center;align-items:center;gap:8px;height:210px;font-size:11px;display:flex}.admin-loading{background:#ffffffd1;position:absolute;inset:0}.admin-user-panel>footer{border-top:1px solid #e4e9e4;justify-content:space-between;align-items:center;padding:12px 18px;display:flex}.admin-user-panel>footer small{color:#7b8780}.admin-user-panel>footer div{align-items:center;gap:8px;display:flex}.admin-user-panel>footer button{color:#3e594b;background:#fff;border:1px solid #dbe3dc;border-radius:9px;place-items:center;width:32px;height:32px;display:grid}.admin-user-panel>footer span{color:#6d7972;font-size:10px}.admin-drawer-scrim{z-index:30;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#11231a47;border:0;position:fixed;inset:0}.admin-user-drawer{z-index:31;background:#fbfcfa;width:min(440px,94vw);padding:24px;position:fixed;inset:0 0 0 auto;overflow-y:auto;box-shadow:-18px 0 55px #142b2029}.admin-user-drawer>header{justify-content:space-between;align-items:center;display:flex}.admin-user-drawer>header>div{align-items:center;gap:12px;display:flex}.admin-user-drawer>header>div>span{color:#1d654b;background:#deeee4;border-radius:14px;place-items:center;width:46px;height:46px;font-weight:800;display:grid}.admin-user-drawer header small{color:#7d8b82;font-size:9px}.admin-user-drawer h2{margin:3px 0 0;font-size:20px}.admin-user-drawer>header>button{color:#52635a;background:#fff;border:1px solid #dce4dd;border-radius:12px;place-items:center;width:40px;height:40px;display:grid}.admin-account-meta{background:#fff;border:1px solid #dfe6df;border-radius:15px;margin-top:24px;padding:6px 16px}.admin-account-meta p{border-bottom:1px solid #e9ede9;justify-content:space-between;align-items:center;gap:18px;margin:0;padding:12px 0;font-size:10px;display:flex}.admin-account-meta p:last-child{border:0}.admin-account-meta span{color:#829087}.admin-account-meta b{text-align:right}.admin-account-meta .success{color:#25704e}.admin-account-meta .danger{color:#a0483c}.admin-academic-detail{background:#fff;border:1px solid #dfe6df;border-radius:15px;margin-top:18px;padding:18px}.admin-academic-detail>div{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.admin-academic-detail h3{margin:0;font-size:14px}.admin-academic-detail>div small{color:#879189;text-align:right;font-size:8px}.admin-academic-detail dl{background:#e5eae5;border:1px solid #e5eae5;border-radius:11px;grid-template-columns:1fr 1fr;gap:1px;margin:16px 0 0;display:grid;overflow:hidden}.admin-academic-detail dl div{background:#f8faf7;padding:11px}.admin-academic-detail dt{color:#849088;font-size:9px}.admin-academic-detail dd{color:#25372e;margin:4px 0 0;font-size:11px;font-weight:700}.admin-academic-detail>p{color:#879189;margin:16px 0 0;font-size:11px}.admin-user-drawer>footer{margin-top:18px}.admin-user-drawer>footer button{border-radius:12px;justify-content:center;align-items:center;gap:8px;width:100%;height:44px;font-weight:750;display:flex}.admin-user-drawer .disable{color:#984b3e;background:#fff3f0;border:1px solid #eccfc9}.admin-user-drawer .enable{color:#216b4b;background:#eaf5ee;border:1px solid #cce3d5}@media (width<=900px){.admin-console{grid-template-columns:1fr}.admin-sidebar{flex-direction:row;align-items:center;width:100%;height:auto;padding:14px 18px;position:relative}.admin-sidebar>div{padding:0}.admin-sidebar nav{margin-left:auto}.admin-sidebar nav button{width:auto}.admin-sidebar>button{width:auto;margin:0 0 0 8px}.admin-console>main{grid-column:1}.admin-stats{grid-template-columns:1fr 1fr}.admin-user-panel>header{flex-direction:column;align-items:stretch}.admin-user-panel header label{width:100%}}@media (width<=560px){.academic-link-card{grid-template-columns:42px minmax(0,1fr)}.academic-link-card>button{grid-column:1/-1;justify-content:center}.admin-login-page{padding:14px}.admin-login-card{padding:25px 20px}.admin-sidebar>div section,.admin-sidebar nav button svg+*{display:none}.admin-console>main>header{height:74px;padding:0 16px}.admin-content{padding:16px}.admin-stats{gap:9px}.admin-stats article{min-height:76px;padding:11px}.admin-stats article>span{width:36px;height:36px}.admin-stats b{font-size:18px}.admin-user-panel>header{padding:16px}.admin-user-panel>footer{position:sticky;left:0}.admin-user-drawer{padding:max(20px,env(safe-area-inset-top)) 18px max(20px,env(safe-area-inset-bottom))}.admin-academic-detail dl{grid-template-columns:1fr 1fr}}.test-access-box{border:1px solid var(--line,#dce3dc);background:var(--primary-faint,#f3f7f3);border-radius:14px;padding:12px}.test-access-box .test-access-tabs{background:#e5ece7;border-radius:10px;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:10px;padding:3px;display:grid}.test-access-tabs button{color:#6f7d75;background:0 0;border:0;border-radius:8px;height:34px;font-size:10px;font-weight:750}.test-access-tabs button.active{color:var(--primary-strong,#164b39);background:#fff;box-shadow:0 2px 8px #1c372a14}.test-access-box form{background:0 0;border:0;padding:0}.admin-console>main>header>section .admin-create-account{color:#fff;background:#1e684d;border-color:#1e684d;align-items:center;gap:7px;width:auto;padding:0 13px;font-size:10px;font-weight:750;display:flex}.admin-status.expired{color:#8d5a1f;background:#fff0dc}.admin-drawer-actions{grid-template-columns:1fr 1fr;gap:9px;display:grid}.admin-user-drawer>footer.admin-drawer-actions button{height:44px}.admin-user-drawer .reset-password{color:#365b49;background:#f3f7f4;border:1px solid #d2ded6}.admin-modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#11231a57;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.admin-account-modal{background:#fbfcfa;border:1px solid #dce5dd;border-radius:21px;width:min(430px,100%);max-height:calc(100dvh - 48px);overflow-y:auto;box-shadow:0 28px 80px #0f261a33}.admin-account-modal>header{border-bottom:1px solid #e1e7e2;justify-content:space-between;align-items:center;padding:20px 22px;display:flex}.admin-account-modal>header>div{align-items:center;gap:11px;display:flex}.admin-account-modal>header>div>span{color:#20664c;background:#e4f0e8;border-radius:12px;place-items:center;width:42px;height:42px;display:grid}.admin-account-modal header small{color:#75847b;letter-spacing:1px;font-size:8px;font-weight:800}.admin-account-modal h2{margin:3px 0 0;font-size:18px}.admin-account-modal>header>button{color:#53645a;background:#fff;border:1px solid #dce4dd;border-radius:11px;place-items:center;width:38px;height:38px;display:grid}.admin-account-modal form{gap:8px;padding:20px 22px 22px;display:grid}.admin-account-modal form>label,.admin-account-modal legend{color:#44584d;margin-top:5px;font-size:10px;font-weight:750}.admin-account-modal form>input{color:#1d3026;height:45px;font:inherit;background:#fff;border:1px solid #d6e0d8;border-radius:11px;outline:0;padding:0 12px;font-size:13px}.admin-account-modal form>input:focus{border-color:#548a72;box-shadow:0 0 0 3px #e5f0e9}.admin-account-modal fieldset{border:0;margin:6px 0 0;padding:0}.admin-account-modal fieldset>div{grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px;display:grid}.admin-account-modal fieldset button{color:#66756c;background:#fff;border:1px solid #d5dfd7;border-radius:10px;height:38px;font-size:10px}.admin-account-modal fieldset button.active{color:#1d6349;background:#e7f2eb;border-color:#438068;font-weight:800}.admin-account-modal form>footer{grid-template-columns:1fr 1.45fr;gap:8px;margin-top:11px;display:grid}.admin-account-modal form>footer button{color:#59685f;background:#fff;border:1px solid #d5dfd7;border-radius:11px;height:44px;font-weight:750}.admin-account-modal form>footer .primary{color:#fff;background:#1e684d;border-color:#1e684d;justify-content:center;align-items:center;gap:7px;display:flex}@media (width<=560px){.admin-console>main>header>section>span{display:none}.admin-console>main>header>section .admin-create-account{justify-content:center;width:38px;padding:0}.admin-create-account span{display:none}.admin-modal-backdrop{align-items:end;padding:10px}.admin-account-modal{border-radius:21px;max-height:calc(100dvh - 20px)}.admin-account-modal fieldset>div{grid-template-columns:1fr 1fr}.admin-drawer-actions{grid-template-columns:1fr}}.overview-brand-title{align-items:center;gap:12px;min-width:0;display:flex}.overview-brand-mark{background:var(--primary-soft);width:48px;height:48px;color:var(--primary-strong);border-radius:15px;flex:none;place-items:center;display:grid}.overview-brand-title>div{min-width:0}.overview-brand-title h1{letter-spacing:.01em;font-family:inherit;font-size:24px;font-weight:850}.overview-brand-title p{color:var(--muted);letter-spacing:0;text-transform:none;margin-top:4px;font-size:10px;font-weight:550}.my-semester-card{background:linear-gradient(135deg,var(--surface),var(--primary-faint));grid-template-columns:44px minmax(0,1fr);align-items:center;gap:12px 13px;min-height:112px;padding:17px 19px;display:grid}.my-semester-card>span{background:var(--primary-soft);width:44px;height:44px;color:var(--primary-strong);border-radius:13px;place-items:center;display:grid}.my-semester-card>div small,.my-semester-card>div b,.my-semester-card>div em{display:block}.my-semester-card>div small{color:var(--muted);font-size:9px;font-weight:750}.my-semester-card>div b{margin-top:4px;font-size:13px;line-height:1.4}.my-semester-card>div em{color:var(--muted);margin-top:3px;font-size:9px;font-style:normal}.my-semester-card>i{background:color-mix(in srgb,var(--primary) 10%,#fff);border-radius:99px;grid-column:1/-1;height:6px;overflow:hidden}.my-semester-card>i>span{border-radius:inherit;background:linear-gradient(90deg,var(--primary),color-mix(in srgb,var(--primary) 38%,#fff));height:100%;display:block}.my-menu-section>h2{color:var(--muted);letter-spacing:.08em;margin:2px 4px 8px;font-size:10px;font-weight:800}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=620px){.overview-stats .mini-stat p,.overview-stats .mini-stat span,.overview-course-list small,.overview-course-list>section>header span,.week-display-button small,.overview-brand-title p,.my-semester-card>div small,.my-semester-card>div em,.my-menu-section>h2,.auth-shell>footer{line-height:1.35;font-size:10px!important}}@media (width<=900px){.sidebar,.mobile-menu,.mobile-nav-close,.mobile-nav-scrim{display:none!important}.topbar>div:first-child:not(.overview-brand-title){min-width:0;display:block}.topbar>div:first-child:not(.overview-brand-title) h1{grid-column:auto}.overview-brand-title{grid-template-columns:none!important;column-gap:10px!important;display:flex!important}.overview-brand-title h1{grid-column:auto!important;font-size:21px!important}.overview-brand-title p{text-overflow:ellipsis;white-space:nowrap;max-width:230px;overflow:hidden;grid-column:auto!important;font-size:9px!important;display:block!important}}@media (width<=620px){.overview-brand-mark{border-radius:14px;width:44px;height:44px}.overview-brand-title{gap:10px}.overview-brand-title h1{font-size:20px!important}.overview-brand-title p{max-width:190px;font-size:8px!important}.my-semester-card{min-height:104px;padding:15px 16px}.my-menu-section>h2{margin-left:3px}}[data-color-scheme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#edf5ef;--muted:#a8b7ad;--line:#34453b;--paper:#17221c;--surface:#17221c;--canvas:#0f1713;--green:#72cca0;--primary:#72cca0;--primary-strong:#a4e4c3;--primary-soft:#244636;--primary-faint:#1b2d24;--sidebar-tone:#0b1510;--primary-rgb:114,204,160;--surface-raised:#1d2b23;--surface-subtle:#131e18;--surface-sunken:#0d1611;--text-secondary:#c4d1c9;--text-tertiary:#9cad9f;--control-bg:#1b2821;--disabled-bg:#222f27;background:var(--canvas);color:var(--ink)}[data-color-scheme=dark][data-theme=sues]{--green:#82adff;--primary:#82adff;--primary-strong:#b9d0ff;--primary-soft:#233a60;--primary-faint:#19283f;--sidebar-tone:#0d1728;--primary-rgb:130,173,255}[data-color-scheme=dark] body,[data-color-scheme=dark] .app{background:var(--canvas);color:var(--ink)}[data-color-scheme=dark] .topbar{background:color-mix(in srgb,var(--surface) 92%,transparent)}[data-color-scheme=dark] :is(.panel,.schedule-wrap,.schedule-grid,.module-courses,.notification-detail,.selection-sheet,.notice-dialog,.credential-modal,.my-menu,.theme-picker,.app-select-trigger){background:var(--surface);color:var(--ink);border-color:var(--line)}[data-color-scheme=dark] :is(.search,.portal-btn,.credential-btn,.page-title>b,.weekend-toggle,.today-button,.schedule-title-actions>b,.notification-heading-actions button,.mark-all-read){color:var(--ink);border-color:var(--line);background:#1a2720}[data-color-scheme=dark] :is(input,textarea,select){color:var(--ink)}[data-color-scheme=dark] :is(.search input,.auth-input input,.admin-test form>input,.credential-slot input){color:var(--ink);background:0 0}[data-color-scheme=dark] :is(.corner,.day-head,.period,.module-course-row.header,.data-row.header,.notification-history>header){color:var(--muted);border-color:var(--line);background:#1b2821}[data-color-scheme=dark] :is(.day-head b,.period b,.empty-state b,.module-course-row b,.module-course-scope b,.course-list-item b,.data-row b){color:var(--ink)}[data-color-scheme=dark] .schedule-grid:after,[data-color-scheme=dark] .schedule-grid.five-days:after,[data-color-scheme=dark] .schedule-grid.seven-days:after{opacity:.48}[data-color-scheme=dark] .course{color:#f3f7f4;box-shadow:none}[data-color-scheme=dark] .course.indigo{background:#303858;border-left-color:#8291e2}[data-color-scheme=dark] .course.mint{background:#234536;border-left-color:#72c69d}[data-color-scheme=dark] .course.amber{background:#4c3b20;border-left-color:#e2ad55}[data-color-scheme=dark] .course.rose{background:#4b302e;border-left-color:#de8b7c}[data-color-scheme=dark] .course.sky{background:#233f4a;border-left-color:#70bad0}[data-color-scheme=dark] :is(.mini-stat,.overall-gpa-card,.my-semester-card){box-shadow:0 8px 30px #0000002e}[data-color-scheme=dark] :is(.source-status,.source-health>span,.exam-row>span,.page-title>b,.submodule-grid>button,.submodule-grid article,.module-course-scope>span){background:var(--primary-faint);color:var(--ink);border-color:var(--line)}[data-color-scheme=dark] :is(.grade-list>div,.exam-row,.course-list-item,.module-item,.module-list,.compact-list,.data-row,.notification-list-item){border-color:var(--line)}[data-color-scheme=dark] :is(.module-row:hover,.notification-list-item:hover,.mini-stat.clickable:hover){background:#1b2a22}[data-color-scheme=dark] :is(.module-courses,.schedule-wrap){background:#111a15}[data-color-scheme=dark] :is(.module-course-row,.module-course-row>span,.data-row>span,.notification-detail p,.notification-detail li){color:#c8d4cc}[data-color-scheme=dark] .mobile-tabbar{border-color:var(--line);background:#141f19f5;box-shadow:0 12px 35px #00000061}[data-color-scheme=dark] .mobile-tabbar button{color:#a8b7ad}[data-color-scheme=dark] .mobile-tabbar button i{border-color:#142019}[data-color-scheme=dark] :is(.modal-backdrop,.selection-backdrop,.notice-dialog-backdrop){background:#020805b3}[data-color-scheme=dark] :is(.selection-options>button,.period-range-columns button,.period-range-sheet>footer button){color:var(--ink);border-color:var(--line);background:var(--surface)}[data-color-scheme=dark] .exam-result-reveal.pending{color:#f1d69a;background:#45391f}[data-color-scheme=dark] .override-delete{color:#f0a89d!important;background:#402522!important}[data-color-scheme=dark] .logout-button{color:#f0a89d;background:#34211f;border-color:#68413b}[data-color-scheme=dark] .academic-link-card.linked>button{color:var(--muted);background:#1b2821}[data-color-scheme=dark] :is(.page-title p,.mini-stat p,.mini-stat span,.sync-strip,.sync-strip small,.eyebrow,.panel-empty,.empty-state,.selected-day-empty){color:var(--text-tertiary)}[data-color-scheme=dark] :is(.page-title h2,.panel h2,.mini-stat strong,.hero-number,.semester-gpa,.score-cell){color:var(--ink)}[data-color-scheme=dark] :is(.stats-row .mini-stat,.overview-schedule-card,.overview-notice-card,.overview-progress-card,.overview-exam-card,.overview-grade-card){background:var(--surface);border-color:var(--line)}[data-color-scheme=dark] :is(.stat-icon,.overview-brand-mark,.my-profile-card>span,.my-menu button>span){box-shadow:inset 0 0 0 1px #ffffff0f}[data-color-scheme=dark] .mini-stat.blue .stat-icon{color:#aeb9ff;background:#2b3252}[data-color-scheme=dark] .mini-stat.green .stat-icon{color:#91d6b3;background:#203d31}[data-color-scheme=dark] .mini-stat.amber .stat-icon{color:#efc978;background:#43361f}[data-color-scheme=dark] .mini-stat.rose .stat-icon{color:#efaaa2;background:#442b29}[data-color-scheme=dark] :is(.schedule-title-actions label,.schedule-title-actions>button){background:var(--control-bg);color:var(--ink);border-color:var(--line)}[data-color-scheme=dark] :is(.schedule-title-actions label span,.schedule-title-actions select){color:var(--text-secondary)}[data-color-scheme=dark] .week-toolbar{background:var(--surface-subtle);border-color:var(--line)}[data-color-scheme=dark] .week-toolbar button{background:var(--control-bg);color:var(--text-secondary);border-color:var(--line)}[data-color-scheme=dark] .week-toolbar button:hover{background:var(--primary-faint);color:var(--ink)}[data-color-scheme=dark] .week-toolbar button:disabled{background:var(--disabled-bg);color:#718178;opacity:.72}[data-color-scheme=dark] .week-toolbar .week-display-button{background:0 0;border-color:#0000}[data-color-scheme=dark] .week-toolbar .week-display-button:hover{background:var(--primary-faint);border-color:color-mix(in srgb,var(--primary) 28%,var(--line))}[data-color-scheme=dark] .week-display-button b{color:var(--primary)}[data-color-scheme=dark] .week-display-button small{color:var(--text-tertiary)}[data-color-scheme=dark] .week-toolbar .weekend-toggle{background:var(--control-bg);color:var(--text-secondary)}[data-color-scheme=dark] .week-toolbar .weekend-toggle.active{background:var(--primary-soft);color:var(--primary-strong);border-color:color-mix(in srgb,var(--primary) 38%,var(--line))}[data-color-scheme=dark] :is(.schedule-details-panel .data-row,.course-list-item){color:var(--text-secondary)}[data-color-scheme=dark] :is(.schedule-details-panel .data-row small,.course-list-item span,.course-list-item small){color:var(--text-tertiary)}[data-color-scheme=dark] .exam-controls{background:var(--surface-subtle);border-color:var(--line)}[data-color-scheme=dark] .exam-controls>label{background:var(--control-bg);border-color:var(--line)}[data-color-scheme=dark] :is(.exam-controls>label span,.exam-controls select),[data-color-scheme=dark] .exam-status-tabs button{color:var(--text-secondary)}[data-color-scheme=dark] .exam-status-tabs button small{background:var(--disabled-bg);color:var(--text-secondary)}[data-color-scheme=dark] .exam-status-tabs button.active{background:var(--primary-soft);color:var(--primary-strong);border-color:color-mix(in srgb,var(--primary) 38%,var(--line));box-shadow:none}[data-color-scheme=dark] .exam-card{border-color:var(--line)}[data-color-scheme=dark] .exam-card.ended{opacity:1}[data-color-scheme=dark] .exam-card.ended:hover,[data-color-scheme=dark] .exam-card.ended.expanded{background:var(--surface-raised)}[data-color-scheme=dark] .exam-card h3{color:var(--ink)}[data-color-scheme=dark] :is(.exam-card p,.exam-date small,.exam-location small){color:var(--text-tertiary)}[data-color-scheme=dark] .exam-date{background:var(--surface-raised);color:var(--text-secondary);box-shadow:inset 0 0 0 1px var(--line)}[data-color-scheme=dark] .exam-location,[data-color-scheme=dark] .exam-location b{color:var(--text-secondary)}[data-color-scheme=dark] .status-ended{background:var(--disabled-bg);color:var(--text-secondary)}[data-color-scheme=dark] .status-upcoming{color:#f0cf87;background:#49391c}[data-color-scheme=dark] .status-ongoing{color:#9ee0bd;background:#1d4936}[data-color-scheme=dark] .exam-card.ongoing{background:var(--primary-faint)}[data-color-scheme=dark] :is(.profile-grid>div,.submodule-grid>button,.submodule-grid article,.module-course-row){background:var(--surface-raised);border-color:var(--line)}[data-color-scheme=dark] :is(.profile-grid b,.submodule-grid span,.module-row b,.module-course-row b,.grade-compact-row>div>b){color:var(--ink)}[data-color-scheme=dark] :is(.profile-grid span,.submodule-grid>button>small,.submodule-grid article>small,.module-row small,.module-row>span,.module-course-row small,.grade-compact-row>div>small,.grade-compact-row dt){color:var(--text-tertiary)}[data-color-scheme=dark] :is(.profile-grid,.profile-grid>div,.module-list,.module-item,.module-course-row,.grade-compact-row,.semester-grade-head){border-color:var(--line)}[data-color-scheme=dark] .progress-track{background:var(--disabled-bg)}[data-color-scheme=dark] :is(.status-muted,.program-result.neutral){background:var(--disabled-bg);color:var(--text-secondary);border-color:var(--line)}[data-color-scheme=dark] :is(.status-pass,.program-result.passed){color:#9de0bc;background:#1c4533;border-color:#35634e}[data-color-scheme=dark] :is(.status-fail,.program-result.failed){color:#f0aaa0;background:#482824;border-color:#70403a}[data-color-scheme=dark] :is(.notice-search,.notification-controls select,.notice-category-tabs){background:var(--control-bg);color:var(--ink);border-color:var(--line)}[data-color-scheme=dark] .notice-search input{color:var(--ink)}[data-color-scheme=dark] .notice-category-tabs button{color:var(--text-secondary)}[data-color-scheme=dark] .notice-category-tabs button small{background:var(--disabled-bg);color:var(--text-secondary)}[data-color-scheme=dark] .notice-category-tabs button.active{background:var(--primary-soft);color:var(--primary-strong);box-shadow:none}[data-color-scheme=dark] .notification-list-panel{background:var(--surface-subtle);border-color:var(--line)}[data-color-scheme=dark] :is(.notification-list-panel>header,.notification-history>button,.notification-detail>header,.notification-attachments){border-color:var(--line)}[data-color-scheme=dark] .notification-history>button{color:var(--text-secondary)}[data-color-scheme=dark] .notification-history>button:hover{background:var(--surface-raised)}[data-color-scheme=dark] .notification-history>button.active{background:var(--primary-faint)}[data-color-scheme=dark] :is(.notification-history p,.notification-history time,.notification-detail header p,.attachment-grid small,.asset-preview figcaption){color:var(--text-tertiary)}[data-color-scheme=dark] :is(.notification-content,.notification-content h1,.notification-content h2,.notification-content h3,.notification-content td,.notification-content th){color:var(--text-secondary);border-color:var(--line)}[data-color-scheme=dark] :is(.notice-source,.attachment-grid>button,.asset-preview,.pdf-preview){background:var(--surface-raised);color:var(--text-secondary);border-color:var(--line)}[data-color-scheme=dark] .attachment-grid b{color:var(--ink)}[data-color-scheme=dark] .grade-notification-card{color:#f1dfb5;background:linear-gradient(135deg,#392f1d,#2b2619);border-color:#66542e}[data-color-scheme=dark] :is(.grade-notification-card p,.grade-notification-card>div>span,.grade-notification-card dt,.grade-notification-card>strong small){color:#c5b991}[data-color-scheme=dark] .grade-notification-card>strong,[data-color-scheme=dark] .grade-notification-card dl{color:#f1cf77;border-color:#66542e}[data-color-scheme=dark] :is(.time-modal,.credential-modal){background:var(--surface);color:var(--ink);border-color:var(--line)}[data-color-scheme=dark] :is(.time-modal>header,.time-modal>footer,.credential-modal>header,.credential-modal>footer){background:var(--surface-subtle);border-color:var(--line)}[data-color-scheme=dark] :is(.time-modal header p,.settings-section-title span,.credential-modal header p,.slot-head p,.credential-modal>footer){color:var(--text-tertiary)}[data-color-scheme=dark] :is(.period-settings label,.override-settings>div,.credential-slot){background:var(--surface-raised);border-color:var(--line)}[data-color-scheme=dark] :is(.period-settings input,.override-settings input,.override-settings select,.credential-slot input){background:var(--surface-sunken);color:var(--ink);border-color:var(--line)}[data-color-scheme=dark] :is(.time-modal>footer button,.settings-section-title button,.clear-credential){background:var(--control-bg);color:var(--text-secondary);border-color:var(--line)}[data-color-scheme=dark] :is(.slot-head h3,.credential-slot label>span),[data-color-scheme=dark] :is(.password-input button,.credential-modal header>button,.time-modal header>button){color:var(--text-secondary)}[data-color-scheme=dark] .my-profile-card>span{background:var(--primary-soft);color:var(--primary-strong)}[data-color-scheme=dark] .my-profile-card b{color:var(--ink)}[data-color-scheme=dark] .my-profile-card small{color:var(--text-tertiary)}[data-color-scheme=dark] .my-menu button{color:var(--ink);border-color:var(--line)}[data-color-scheme=dark] .my-menu button>span{background:var(--primary-faint);color:var(--primary)}[data-color-scheme=dark] .my-menu b{color:var(--text-secondary)}[data-color-scheme=dark] .my-menu small,[data-color-scheme=dark] .my-menu button>svg{color:var(--text-tertiary)}[data-color-scheme=dark] .my-semester-card>i{background:var(--disabled-bg)}[data-color-scheme=dark] .my-semester-card>div b{color:var(--ink)}[data-color-scheme=dark] :is(.my-semester-card>div small,.my-semester-card>div em,.my-menu-section>h2),[data-color-scheme=dark] .theme-picker header small{color:var(--text-tertiary)}[data-color-scheme=dark] .theme-picker>div>button{background:var(--surface-raised);border-color:var(--line)}[data-color-scheme=dark] .theme-picker>div>button.active{background:var(--primary-faint)}[data-color-scheme=dark] :is(.today,.submodule-grid>button.active,.notice-category-tabs button.active,.exam-status-tabs button.active,.mobile-tabbar button.active){border-color:color-mix(in srgb,var(--primary) 44%,var(--line))!important}.notification-detail>header h2{color:var(--ink);line-height:1.42}.notification-detail>header>svg{color:var(--primary)}.notification-content{width:100%;max-width:none;color:var(--ink);overflow:hidden}.notification-content img{background:var(--surface-raised);max-width:100%;color:var(--muted);text-align:center;margin:14px auto;font-size:11px;display:block}.notification-content img.notice-image-loading{opacity:.55;min-height:86px}.notification-content img.notice-image-error{border:1px dashed var(--line);object-fit:contain;min-height:72px;padding:20px}.notification-content .notice-responsive-table{border-collapse:collapse;overscroll-behavior-inline:contain;scrollbar-width:thin;max-width:100%;margin:18px 0;display:block;overflow-x:auto;width:100%!important}.notification-content .notice-responsive-table :is(td,th){background:var(--surface);word-break:break-word;min-width:110px;border:1px solid var(--line)!important;color:var(--text-secondary)!important;white-space:normal!important;padding:9px 10px!important}.notification-content .notice-responsive-table .notice-table-header-row :is(td,th){background:var(--primary-faint);font-weight:800;color:var(--ink)!important}.notification-content .notice-table-caption-row :is(td,th){background:var(--surface-raised);min-width:100%;font-weight:750;color:var(--ink)!important}.overview-notices .panel-head h2,.overview-notices .notice-list b{color:var(--ink)}.overview-notices .notice-list small{color:var(--text-secondary)}.overview-notices .notice-list>button{color:var(--ink);grid-template-columns:20px minmax(0,1fr) 18px}.overview-notices .notice-list>button>svg:first-child{color:var(--primary)}.overview-notices .notice-list>button>svg:last-child{color:var(--muted)}.grade-list>button{border:0;border-bottom:1px solid var(--line);width:100%;min-height:68px;color:var(--ink);text-align:left;background:0 0;grid-template-columns:minmax(0,1fr) auto 18px;align-items:center;gap:12px;padding:12px 14px;display:grid}.grade-list>button:last-child{border-bottom:0}.grade-list>button span b,.grade-list>button span small{display:block}.grade-list>button span small{color:var(--muted);margin-top:4px;font-size:9px}.grade-list>button>strong{color:var(--primary-strong);font-size:20px}.grade-list>button>svg{color:var(--muted)}.grade-detail-dialog{border:1px solid color-mix(in srgb,var(--primary) 20%,var(--line));background:var(--surface);width:min(440px,100%);color:var(--ink);border-radius:22px;padding:26px;position:relative;box-shadow:0 28px 90px #04120b4d}.grade-detail-dialog>.notice-dialog-close{margin:0;position:absolute;top:12px;right:12px}.grade-detail-dialog header{padding-right:50px}.grade-detail-dialog h2{margin:6px 0 4px;font-size:22px}.grade-detail-dialog header p{color:var(--muted);margin:0;font-size:10px}.grade-detail-score{background:var(--primary-faint);height:138px;color:var(--primary-strong);border-radius:18px;flex-direction:column;justify-content:center;align-items:center;margin:22px 0 14px;display:flex}.grade-detail-score strong{font-size:54px;line-height:1}.grade-detail-score span{margin-top:8px;font-size:9px;font-weight:750}.grade-detail-dialog dl{grid-template-columns:1fr 1fr;gap:8px;margin:0;display:grid}.grade-detail-dialog dl div{border:1px solid var(--line);background:var(--surface-raised);border-radius:12px;padding:12px}.grade-detail-dialog dt{color:var(--muted);font-size:8px}.grade-detail-dialog dd{margin:4px 0 0;font-size:12px;font-weight:800}.my-page{max-width:860px}.my-hero-card{padding:0;overflow:hidden}.my-hero-card .my-profile-card{background:0 0;min-height:96px;padding:17px 19px}.my-semester-summary{border-top:1px solid var(--line);background:var(--primary-faint);grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px 12px;min-height:72px;padding:12px 19px;display:grid}.my-semester-summary>svg{color:var(--primary)}.my-semester-summary small,.my-semester-summary b{display:block}.my-semester-summary small{color:var(--muted);font-size:9px}.my-semester-summary b{margin-top:3px;font-size:12px}.my-semester-summary>i{background:var(--disabled-bg);border-radius:99px;grid-column:1/-1;height:5px;overflow:hidden}.my-semester-summary>i>span{border-radius:inherit;background:var(--primary);height:100%;display:block}.my-action-grid{grid-template-columns:1fr 1fr;gap:9px;display:grid}.my-action-grid>button{min-height:92px;color:var(--ink);text-align:left;grid-template-columns:40px minmax(0,1fr) 18px;align-items:center;gap:10px;padding:14px;display:grid}.my-action-grid>button>span,.my-utility-list>button>span{background:var(--primary-faint);width:40px;height:40px;color:var(--primary);border-radius:12px;place-items:center;display:grid}.my-action-grid b,.my-action-grid small,.my-utility-list b,.my-utility-list small{display:block}.my-action-grid b,.my-utility-list b{font-size:12px}.my-action-grid small,.my-utility-list small{color:var(--muted);margin-top:4px;font-size:9px;line-height:1.4}.my-action-grid>button>svg,.my-utility-list>button>svg{color:var(--muted)}.my-utility-list{padding:4px 15px}.my-utility-list>button{border:0;border-bottom:1px solid var(--line);width:100%;min-height:64px;color:var(--ink);text-align:left;background:0 0;grid-template-columns:40px minmax(0,1fr) 18px;align-items:center;gap:11px;padding:7px 0;display:grid}.my-utility-list>button:last-child{border-bottom:0}.academic-link-card.compact{min-height:78px;padding:12px 14px}.academic-link-card.compact>button{min-width:58px;padding:0 10px}.appearance-settings-body{max-height:calc(76dvh - 72px);padding:12px;overflow:auto}.appearance-settings-body .theme-picker{box-shadow:none;background:0 0;border:0}.appearance-settings-body .theme-picker+.theme-picker{border-top:1px solid var(--line);border-radius:0;margin-top:8px}.appearance-settings-body .appearance-picker>div{grid-template-columns:repeat(3,minmax(0,1fr))}[data-color-scheme=dark] .notification-detail>header h2,[data-color-scheme=dark] .overview-notices .panel-head h2,[data-color-scheme=dark] .overview-notices .notice-list b{color:var(--ink)}[data-color-scheme=dark] .overview-notices .notice-list small{color:var(--text-secondary)}[data-color-scheme=dark] :is(.grade-detail-dialog,.my-hero-card,.my-action-grid>button,.my-utility-list){background:var(--surface);border-color:var(--line)}[data-color-scheme=dark] .grade-detail-dialog dl div{background:var(--surface-raised);border-color:var(--line)}@media (width<=620px){.notification-content .notice-responsive-table:not(.notice-table-scroll-only){display:block;overflow:visible;background:0 0!important;border:0!important}.notification-content .notice-responsive-table:not(.notice-table-scroll-only) :is(tbody,thead){width:100%;display:block}.notification-content .notice-responsive-table:not(.notice-table-scroll-only) tr{border:1px solid var(--line);background:var(--surface-raised);border-radius:13px;width:100%;margin:10px 0;padding:6px 12px;display:block}.notification-content .notice-responsive-table:not(.notice-table-scroll-only) .notice-table-header-row{display:none}.notification-content .notice-responsive-table:not(.notice-table-scroll-only) .notice-table-caption-row{background:var(--primary-faint);padding:12px}.notification-content .notice-responsive-table:not(.notice-table-scroll-only) .notice-table-caption-row :is(td,th){text-align:left;background:0 0;display:block;border:0!important;padding:0!important}.notification-content .notice-responsive-table:not(.notice-table-scroll-only) tr:not(.notice-table-caption-row)>:is(td,th){grid-template-columns:minmax(82px,34%) minmax(0,1fr);gap:10px;display:grid;border:0!important;border-bottom:1px solid var(--line)!important;text-align:left!important;white-space:normal!important;background:0 0!important;width:100%!important;min-width:0!important;padding:8px 0!important}.notification-content .notice-responsive-table:not(.notice-table-scroll-only) tr:not(.notice-table-caption-row)>:is(td,th):last-child{border-bottom:0!important}.notification-content .notice-responsive-table:not(.notice-table-scroll-only) tr:not(.notice-table-caption-row)>:is(td,th):before{content:attr(data-label);color:var(--muted);font-size:10px;font-weight:750}.my-action-grid{gap:7px}.my-action-grid>button{grid-template-columns:36px minmax(0,1fr);min-height:86px;padding:12px}.my-action-grid>button>span{width:36px;height:36px}.my-action-grid>button>svg{display:none}.my-action-grid small{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.appearance-settings-body .appearance-picker>div{grid-template-columns:1fr}.grade-detail-dialog{padding:22px 17px}.grade-detail-score{height:124px}.grade-detail-score strong{font-size:48px}}[data-color-scheme=dark] .auth-page{background:radial-gradient(circle at 8% 5%,rgba(var(--primary-rgb),.13),transparent 34%),linear-gradient(145deg,#0d1511,#111b16 48%,#0c1410);color:var(--ink)}[data-color-scheme=dark] .auth-shell{border-color:var(--line);background:#17221cf0;box-shadow:0 24px 80px #00000057}[data-color-scheme=dark] :is(.auth-brand small,.auth-intro p,.auth-shell>footer,.admin-test>button,.admin-test>button small){color:var(--muted)}[data-color-scheme=dark] .auth-input{border-color:var(--line);color:var(--muted);background:#111c16}[data-color-scheme=dark] .auth-code-row>button{border-color:var(--line);background:var(--primary-faint);color:var(--primary-strong)}[data-color-scheme=dark] .admin-test{border-color:var(--line)}[data-color-scheme=dark] .admin-test form{border-color:var(--line);background:#131f19}[data-color-scheme=dark] .admin-test form>input{border-color:var(--line);color:var(--ink);background:#0f1914}[data-color-scheme=dark] .auth-message{color:#f2c99c;background:#382b1c;border-color:#654526}[data-color-scheme=dark] .strict-access-page .auth-card{border-color:var(--line);background:var(--surface);box-shadow:0 18px 55px #0000004d}.appearance-picker>div{grid-template-columns:repeat(3,minmax(0,1fr))}.appearance-icon{background:var(--primary-faint);width:30px;height:30px;color:var(--primary);border-radius:9px;place-items:center;display:grid}[data-color-scheme=dark] .theme-swatch{box-shadow:inset 0 0 0 1px #ffffff29}@media (width<=900px){.appearance-picker>div{grid-template-columns:1fr}}.grade-detail-dialog dd.passed{color:#4ea77a}.grade-detail-dialog dd.failed{color:#d36b5e}*{-webkit-tap-highlight-color:transparent}.overview-notices .notice-list>button,.notification-history>button{transition:background-color .18s,border-color .18s,box-shadow .18s;filter:none!important;transform:none!important}.overview-notices .notice-list b{white-space:normal;overflow-wrap:anywhere;line-height:1.55;display:block}.notification-history>button{padding-right:16px}.notification-history b{white-space:normal;overflow-wrap:anywhere;margin-right:0;line-height:1.55}.notification-history p{margin-right:0}.notification-detail h2{overflow-wrap:anywhere;word-break:break-word;max-width:100%}.notice-dialog .notification-detail>header,.notice-dialog .notification-detail>header>div{min-width:0}.notice-mention-badge{background:var(--primary-faint);color:var(--primary-strong);border-radius:99px;align-items:center;gap:2px;padding:4px 7px;font-size:8px;font-weight:800;display:flex;position:absolute;top:12px;right:13px}.notification-history>button.unread .notice-mention-badge{right:28px}.overview-mention-badge{background:var(--primary-faint);color:var(--primary-strong);white-space:nowrap;border-radius:99px;align-items:center;gap:2px;padding:4px 6px;font-size:8px;font-style:normal;font-weight:800;display:flex}.notification-mention{color:inherit;-webkit-box-decoration-break:clone;box-decoration-break:clone;background:#efb54447;border-radius:4px;padding:1px 3px}.notification-mention.mention-pulse{animation:.85s ease-out mention-pulse}.mention-jump-button{z-index:145;right:max(22px,env(safe-area-inset-right));bottom:max(22px,env(safe-area-inset-bottom));border:1px solid color-mix(in srgb,var(--primary) 42%,var(--line));background:var(--primary-strong);color:#fff;text-align:left;border-radius:15px;grid-template-columns:22px auto 17px;align-items:center;gap:7px;min-height:48px;padding:7px 11px;display:grid;position:fixed;box-shadow:0 12px 34px #00000047}.mention-jump-button b,.mention-jump-button small{display:block}.mention-jump-button b{font-size:10px}.mention-jump-button small{color:#ffffffb8;margin-top:1px;font-size:8px}@keyframes mention-pulse{0%{box-shadow:0 0 #efb544ad}70%{box-shadow:0 0 0 12px #0000}to{box-shadow:none}}.notification-content img,.asset-preview[role=button]{cursor:zoom-in}.asset-preview[role=button]:focus-visible{outline:3px solid rgba(var(--primary-rgb),.24);outline-offset:2px}.image-viewer{z-index:220;color:#f3f7f4;overscroll-behavior:none;background:#020704fa;grid-template-rows:auto minmax(0,1fr) auto;display:grid;position:fixed;inset:0}.image-viewer>header,.image-viewer>footer{z-index:2;min-height:64px;padding:10px max(14px,env(safe-area-inset-right)) 10px max(14px,env(safe-area-inset-left));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0a120de0;justify-content:space-between;align-items:center;gap:12px;display:flex;position:relative}.image-viewer>header{padding-top:max(10px,env(safe-area-inset-top));border-bottom:1px solid #ffffff1a}.image-viewer>footer{padding-bottom:max(10px,env(safe-area-inset-bottom));border-top:1px solid #ffffff1a}.image-viewer>header>span{align-items:center;gap:7px;font-size:11px;font-weight:800;display:flex}.image-viewer button{color:#fff;background:#ffffff14;border:1px solid #ffffff21;border-radius:13px;place-items:center;width:44px;height:44px;display:grid}.image-viewer button:disabled{opacity:.35}.image-viewer-stage{touch-action:none;-webkit-user-select:none;user-select:none;place-items:center;min-width:0;min-height:0;display:grid;overflow:hidden}.image-viewer-stage img{object-fit:contain;transform-origin:50%;will-change:transform;max-width:100%;max-height:100%;transition:transform 80ms linear}.image-viewer>footer>span{color:#b8c5bc;font-size:9px}.image-viewer>footer>div{gap:7px;display:flex}.notification-content .notice-table-caption-row :is(td,th){overflow-wrap:anywhere;word-break:break-word;max-width:100%;line-height:1.6;white-space:normal!important;width:100%!important}.notification-content>p{overflow-wrap:anywhere;max-width:100%;line-height:1.75}@media (width<=620px){.notification-content{font-size:16px}.notification-content :is(p,div,span){max-width:100%}.notification-content>p{text-align:left!important}.notification-content .notice-responsive-table:not(.notice-table-scroll-only) tr{padding:8px 12px;overflow:hidden}.notification-content .notice-responsive-table:not(.notice-table-scroll-only) tr:not(.notice-table-caption-row)>:is(td,th){align-items:start;line-height:1.55}.notification-content .notice-responsive-table:not(.notice-table-scroll-only) tr:not(.notice-table-caption-row)>:is(td,th)[colspan]{display:block}.notification-content .notice-responsive-table:not(.notice-table-scroll-only) tr:not(.notice-table-caption-row)>:is(td,th)[colspan]:before{display:none}.notice-dialog .notification-detail{padding-top:20px}.notice-dialog .notification-detail h2{font-size:20px;line-height:1.48}.mention-jump-button{right:18px;bottom:max(18px,env(safe-area-inset-bottom))}}@media (hover:none){.overview-notices .notice-list>button:hover,.notification-history>button:hover{background:0 0}.overview-notices .notice-list>button:active,.notification-history>button:active{background:var(--primary-faint);box-shadow:inset 3px 0 var(--primary)}}[data-color-scheme=dark] .overview-notices .notice-list>button:active,[data-color-scheme=dark] .notification-history>button:active{color:var(--ink);background:#1c2c23}[data-color-scheme=dark] .notification-mention{color:#ffe1a1;background:#e0a63d40}@media (prefers-reduced-motion:reduce){.notification-mention.mention-pulse{animation:none}.image-viewer-stage img{transition:none}}.overview-course-list>section>div>button{grid-template-columns:4px minmax(0,1fr) auto 18px}.overview-course-list>section>div>button>em{background:var(--primary-faint);color:var(--primary-strong);white-space:nowrap;border-radius:99px;padding:3px 6px;font-size:8px;font-style:normal;font-weight:800}.overview-course-list>section>div>button.overview-agenda-exam>i{background:color-mix(in srgb,#c88d29 16%,var(--surface));color:#b67c20;border-radius:9px;place-items:center;width:30px;height:30px;display:grid}.overview-course-list>section>div>button.overview-agenda-exam>i svg{color:inherit}.overview-agenda-actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;display:grid}.overview-agenda-actions>button{border:1px solid color-mix(in srgb,var(--primary) 25%,var(--line));background:var(--primary-soft);min-height:44px;color:var(--primary-strong);border-radius:11px;justify-content:center;align-items:center;gap:5px;font-size:10px;font-weight:800;display:flex}.overview-agenda-actions>button+button{background:var(--surface)}.course-list-item:is(button){width:100%;color:var(--ink);text-align:left;background:0 0;border-width:0 0 1px}.course-list-item:is(button):active{background:var(--primary-faint)}.course-detail-dialog>header p{color:var(--muted);margin:5px 50px 18px 0;font-size:10px}.course-detail-dialog>header h2{margin-bottom:0}.exam-detail-dialog .eyebrow{color:#b67c20}.account-settings-sheet{width:min(440px,100%)}.account-settings-body{grid-template-columns:46px minmax(0,1fr);gap:12px;padding:20px;display:grid}.account-link-status{background:var(--primary-faint);width:46px;height:46px;color:var(--primary);border-radius:14px;place-items:center;display:grid}.account-settings-body b,.account-settings-body small,.account-settings-body em{display:block}.account-settings-body b{font-size:13px}.account-settings-body small{color:var(--muted);margin-top:5px;font-size:10px;line-height:1.55}.account-settings-body em{color:var(--primary);margin-top:6px;font-size:9px;font-style:normal}.account-settings-body>button{border:1px solid var(--line);border-radius:12px;grid-column:1/-1;justify-content:center;align-items:center;gap:7px;min-height:45px;font-size:11px;font-weight:800;display:flex}.account-settings-body .link-action{background:var(--primary-strong);color:#fff}.account-settings-body .unlink-action{color:#bf6158;border-color:color-mix(in srgb,#bf6158 40%,var(--line));background:0 0}.overview-notices .notice-list>button{grid-template-columns:20px minmax(0,1fr) auto}.overview-mention-badge{writing-mode:horizontal-tb;text-orientation:mixed;justify-content:center;min-width:46px;padding:4px 7px}.notification-content :is(p,li,div){overflow-wrap:anywhere;word-break:break-word;max-width:100%}.notification-content p{margin:0 0 .9em;line-height:1.75}.notification-content :is(p,li){text-align:left!important;text-indent:0!important;letter-spacing:normal!important}.notification-content .notice-responsive-table:not(.notice-table-scroll-only) :is(td,th):before{overflow-wrap:anywhere;flex:0 0 min(34%,130px);max-width:130px}.notification-content .notice-responsive-table:not(.notice-table-scroll-only) tr:not(.notice-table-caption-row)>:is(td,th)[colspan]:before{display:block}[data-color-scheme=dark] .auth-brand>span{color:#a8e2c3;background:#203b2e;box-shadow:inset 0 0 0 1px #a8e2c31f}[data-color-scheme=dark] .auth-intro h1,[data-color-scheme=dark] .auth-brand b{color:#edf5f0}[data-color-scheme=dark] .auth-input{color:#9cafa3;background:#0d1812;border-color:#34473c}[data-color-scheme=dark] .auth-input input{color:#edf5f0}[data-color-scheme=dark] .auth-input input::placeholder{color:#718379}[data-color-scheme=dark] .auth-divider{color:#788b80}[data-color-scheme=dark] .auth-divider i{background:#304238}[data-color-scheme=dark] .wechat-login{color:#f5fff9;background:#15934c;box-shadow:0 8px 22px #0000002e}[data-color-scheme=dark] .primary-login{color:#08140e;background:#5fae85;box-shadow:0 8px 22px #0000002e}[data-color-scheme=dark] .auth-code-row>button{color:#a9ddc0;background:#1a2b22;border-color:#385044}[data-color-scheme=dark] .test-access-box{background:#101b15;border-color:#304238}[data-color-scheme=dark] .test-access-box .test-access-tabs{background:#0b1510}[data-color-scheme=dark] .test-access-tabs button{color:#82958a}[data-color-scheme=dark] .test-access-tabs button.active{color:#b6e4ca;box-shadow:none;background:#20382c}[data-color-scheme=dark] .admin-login-button{color:#f4fff8;background:#477e64}@media (width<=620px){.overview-course-list>section>div>button{grid-template-columns:4px minmax(0,1fr) auto 16px}.overview-course-list>section>div>button>em{padding:3px 5px}.notification-content{line-height:1.7}.notification-content :is(p,li){margin-left:0!important;margin-right:0!important}.notification-content .notice-responsive-table:not(.notice-table-scroll-only) tr{gap:2px;margin-bottom:10px;padding:7px 10px}.notification-content .notice-responsive-table:not(.notice-table-scroll-only) tr:not(.notice-table-caption-row)>:is(td,th){min-height:37px;padding:7px 3px}}html.overlay-open,html.overlay-open body{overscroll-behavior:none;overflow:hidden!important}html:has(.modal-backdrop,.selection-backdrop,.notice-dialog-backdrop,.image-viewer){overscroll-behavior:none;overflow:hidden!important}body:has(.modal-backdrop,.selection-backdrop,.notice-dialog-backdrop,.image-viewer){overscroll-behavior:none;overflow:hidden!important}:is(.modal-backdrop,.selection-backdrop,.notice-dialog-backdrop){overscroll-behavior:contain;touch-action:pan-x pan-y}:is(.modal-backdrop,.selection-backdrop,.notice-dialog-backdrop)>:is(section,article,div){overscroll-behavior:contain;touch-action:pan-y;min-width:0}:is(.selection-sheet,.notice-dialog,.course-detail-dialog,.grade-detail-dialog,.progress-course-dialog,.credential-modal,.time-modal){scrollbar-gutter:stable;overscroll-behavior:contain}.notification-content .notice-responsive-table{touch-action:pan-x pan-y}.course-detail-dialog{max-height:calc(100dvh - max(22px,env(safe-area-inset-top)) - max(22px,env(safe-area-inset-bottom)));overflow:hidden auto}.course-detail-dialog :is(header,dl,dl>div,dd){min-width:0;max-width:100%}.course-detail-dialog dd{overflow-wrap:anywhere;word-break:break-word}.overview-course-list>section>div>button.overview-agenda-exam{grid-template-columns:minmax(0,1fr) auto 18px}.overview-agenda-exam>i{display:none!important}.overview-agenda-exam>span{min-width:0}.overview-agenda-exam>span b,.overview-agenda-exam>span small{overflow-wrap:anywhere}@media (width<=620px){.course-detail-dialog{width:min(460px,100vw - 20px);padding:19px 16px}.course-detail-dialog dl{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.course-detail-dialog dl>div{padding:11px}.course-detail-dialog dl>div:first-child,.course-detail-dialog dl>div:last-child:nth-child(odd){grid-column:1/-1}.course-detail-dialog dt{font-size:9px}.course-detail-dialog dd{font-size:12px}.overview-course-list>section>div>button.overview-agenda-exam{grid-template-columns:minmax(0,1fr) auto 16px}}.manual-entry-trigger{border:1px solid var(--line);background:var(--surface);min-height:48px;color:var(--primary-strong);border-radius:14px;justify-content:center;align-items:center;gap:7px;padding:0 16px;font-weight:800;display:flex}.manual-entry-sheet{max-height:min(88dvh,760px)}.manual-entry-tabs{background:var(--primary-faint);border-radius:13px;grid-template-columns:1fr 1fr;gap:5px;margin:14px 18px 0;padding:4px;display:grid}.manual-entry-tabs button{min-height:42px;color:var(--muted);background:0 0;border:0;border-radius:10px;justify-content:center;align-items:center;gap:7px;font-weight:800;display:flex}.manual-entry-tabs button.active{background:var(--surface);color:var(--primary-strong);box-shadow:0 4px 14px #0f302214}.manual-entry-sheet form{grid-template-columns:1fr 1fr;gap:12px;padding:16px 18px 18px;display:grid;overflow-y:auto}.manual-entry-sheet label{min-width:0}.manual-entry-sheet label.wide,.manual-entry-error,.manual-entry-sheet form>footer{grid-column:1/-1}.manual-entry-sheet label>span{color:var(--muted);margin:0 0 6px;font-size:9px;font-weight:800;display:block}.manual-entry-sheet :is(input,select){border:1px solid var(--line);background:var(--control-bg,var(--surface));width:100%;height:46px;color:var(--ink);font:inherit;border-radius:12px;outline:0;padding:0 12px;font-size:12px}.manual-entry-sheet :is(input,select):focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.12)}.manual-entry-error{color:#a34135;background:#fff1ed;border-radius:11px;align-items:center;gap:7px;margin:0;padding:10px 12px;font-size:10px;display:flex}.manual-entry-sheet form>footer{grid-template-columns:1fr 1.4fr;gap:8px;margin-top:4px;display:grid}.manual-entry-sheet form>footer button{border:1px solid var(--line);background:var(--surface);height:46px;color:var(--ink);border-radius:12px;font-weight:800}.manual-entry-sheet form>footer button.primary{border-color:var(--primary-strong);background:var(--primary-strong);color:#fff;justify-content:center;align-items:center;gap:7px;display:flex}[data-color-scheme=dark] .manual-entry-tabs{background:#111c16}[data-color-scheme=dark] .manual-entry-tabs button.active,[data-color-scheme=dark] .manual-entry-sheet :is(input,select),[data-color-scheme=dark] .manual-entry-sheet form>footer button{background:var(--control-bg);border-color:var(--line)}[data-color-scheme=dark] .manual-entry-error{color:#f0aaa0;background:#351d19}@media (width<=560px){.manual-entry-sheet{border-radius:22px 22px 16px 16px;max-height:calc(100dvh - 18px)}.manual-entry-sheet form{grid-template-columns:1fr}.manual-entry-sheet label.wide,.manual-entry-error,.manual-entry-sheet form>footer{grid-column:1}.exam-controls>.manual-entry-trigger{width:100%}}.admin-unlink-review{background:#fff9eb;border:1px solid #ead6a8;border-radius:13px;margin-top:14px;padding:14px}.admin-unlink-review>b,.admin-unlink-review>small{display:block}.admin-unlink-review>b{color:#76571d;font-size:11px}.admin-unlink-review>small{color:#887557;margin-top:5px;font-size:9px;line-height:1.55}.admin-unlink-review>div{grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;display:grid}.admin-unlink-review button{color:#6f6250;background:#fff;border:1px solid #dfd4bd;border-radius:10px;min-height:40px;font-weight:750}.admin-unlink-review button.approve{color:#fff;background:#24684f;border-color:#24684f}[data-color-scheme=dark] .admin-unlink-review{background:#2a2418;border-color:#5d4a27}[data-color-scheme=dark] .admin-unlink-review>b{color:#f0d18b}[data-color-scheme=dark] .admin-unlink-review>small{color:#c1ae88}.manual-entry-sheet{width:min(540px,100%);max-height:calc(100dvh - max(18px,env(safe-area-inset-top)) - max(18px,env(safe-area-inset-bottom)));grid-template-rows:auto auto minmax(0,1fr);display:grid;overflow:hidden}.manual-entry-sheet form{overscroll-behavior:contain;min-height:0;padding-bottom:max(16px,env(safe-area-inset-bottom));grid-template-columns:1fr;overflow-y:auto}.manual-entry-sheet label.wide,.manual-entry-error,.manual-entry-sheet form>footer,.manual-entry-sheet .wide{grid-column:1}.manual-paired-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;min-width:0;display:grid}.manual-weekday-field{border:0;min-width:0;margin:0;padding:0}.manual-weekday-field legend{color:var(--muted);margin:0 0 7px;font-size:9px;font-weight:800}.manual-weekday-field>div{border:1px solid var(--line);background:var(--primary-faint);border-radius:14px;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;padding:5px;display:grid}.manual-weekday-field button{min-width:0;min-height:52px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:10px;padding:5px 1px}.manual-weekday-field button span,.manual-weekday-field button small{display:block}.manual-weekday-field button span{font-size:12px;font-weight:850}.manual-weekday-field button small{margin-top:2px;font-size:6px}.manual-weekday-field button.active{border-color:color-mix(in srgb,var(--primary) 28%,var(--line));background:var(--surface);color:var(--primary-strong);box-shadow:0 5px 14px rgba(var(--primary-rgb),.12)}.manual-value-button{border:1px solid var(--line);background:var(--control-bg,var(--surface));width:100%;height:46px;color:var(--ink);text-align:left;border-radius:12px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;padding:0 11px;display:grid}.manual-value-button svg:first-child{color:var(--primary)}.manual-value-button svg:last-child{color:var(--muted)}.manual-value-button b{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.manual-entry-sheet form>footer{bottom:calc(-1 * max(16px,env(safe-area-inset-bottom)));z-index:2;margin:2px -18px calc(-1 * max(16px,env(safe-area-inset-bottom)));padding:12px 18px max(16px,env(safe-area-inset-bottom));background:linear-gradient(180deg,transparent 0,var(--surface) 28%);position:sticky}.date-picker-sheet{width:min(430px,100%);overflow:hidden}.date-picker-navigation{grid-template-columns:44px 1fr 44px;align-items:center;gap:8px;padding:12px 16px;display:grid}.date-picker-navigation button{border:1px solid var(--line);background:var(--primary-faint);min-height:42px;color:var(--primary-strong);border-radius:11px;font-weight:800}.date-picker-weekdays,.date-picker-days{grid-template-columns:repeat(7,1fr);gap:4px;padding:0 16px;display:grid}.date-picker-weekdays span{color:var(--muted);text-align:center;padding:7px 0;font-size:8px;font-weight:800}.date-picker-days{padding-bottom:14px}.date-picker-days :is(button,i){aspect-ratio:1;min-width:0}.date-picker-days button{color:var(--ink);background:0 0;border:1px solid #0000;border-radius:12px;place-items:center;display:grid}.date-picker-days button b{font-size:11px}.date-picker-days button.today{border-color:color-mix(in srgb,var(--primary) 32%,var(--line));color:var(--primary)}.date-picker-days button.active{border-color:var(--primary);background:var(--primary);color:#fff;box-shadow:0 6px 16px rgba(var(--primary-rgb),.22)}.date-picker-sheet>footer{border-top:1px solid var(--line);background:var(--primary-faint);justify-content:space-between;align-items:center;gap:12px;padding:13px 18px;display:flex}.date-picker-sheet>footer span{color:var(--muted);font-size:8px}.date-picker-sheet>footer b{font-size:10px}[data-color-scheme=dark] .manual-weekday-field>div,[data-color-scheme=dark] .date-picker-navigation button,[data-color-scheme=dark] .date-picker-sheet>footer{background:#111c16}[data-color-scheme=dark] .manual-weekday-field button.active,[data-color-scheme=dark] .manual-value-button{background:var(--control-bg);border-color:var(--line)}@media (width<=560px){.manual-entry-backdrop{align-items:flex-end;padding:8px}.manual-entry-sheet{border-radius:22px;width:100%;max-height:calc(100dvh - 16px)}.manual-entry-tabs{margin-top:10px}.manual-entry-sheet form{gap:10px;padding-top:12px}.manual-paired-fields{grid-template-columns:1fr 1fr}.manual-date-type{grid-template-columns:1.35fr .65fr}.manual-weekday-field button{min-height:50px}.date-picker-backdrop,.time-picker-backdrop{align-items:flex-end;padding:8px}.date-picker-sheet,.time-picker-sheet{border-radius:22px;width:100%}}.manual-rules-section{gap:10px;display:grid}.manual-rules-section>header{justify-content:space-between;align-items:center;gap:12px;display:flex}.manual-rules-section>header b,.manual-rules-section>header small{display:block}.manual-rules-section>header b{font-size:11px}.manual-rules-section>header small{color:var(--muted);margin-top:3px;font-size:8px;line-height:1.45}.manual-rules-section>header>button{border:1px solid color-mix(in srgb,var(--primary) 30%,var(--line));background:var(--primary-soft);min-height:40px;color:var(--primary-strong);white-space:nowrap;border-radius:11px;align-items:center;gap:6px;padding:0 12px;font-size:9px;font-weight:850;display:flex}.manual-rules-section>div{gap:10px;display:grid}.manual-course-rule{border:1px solid color-mix(in srgb,var(--primary) 15%,var(--line));background:var(--primary-faint);border-radius:15px;overflow:hidden}.manual-course-rule>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;min-height:54px;padding:9px 11px;display:flex}.manual-course-rule>header>div{align-items:center;gap:9px;min-width:0;display:flex}.manual-course-rule>header>div>span{background:var(--primary);color:#fff;border-radius:10px;flex:none;place-items:center;width:31px;height:31px;font-size:10px;font-weight:900;display:grid}.manual-course-rule>header b,.manual-course-rule>header small{display:block}.manual-course-rule>header b{font-size:10px}.manual-course-rule>header small{color:var(--muted);margin-top:2px;font-size:7px}.manual-course-rule>header>button{border:1px solid color-mix(in srgb,#bf6158 28%,var(--line));color:#b45750;background:0 0;border-radius:10px;place-items:center;width:38px;height:38px;display:grid}.manual-course-rule-body{gap:10px;padding:11px;display:grid}.manual-course-rule-body>label>span,.manual-course-rule-body .manual-paired-fields label>span{color:var(--muted);margin:0 0 6px;font-size:8px;font-weight:800;display:block}.manual-course-rule .manual-weekday-field>div{background:var(--surface)}.manual-course-rule .manual-weekday-field button{min-height:45px}.manual-course-rule .manual-weekday-field button.active{background:var(--primary-soft)}[data-color-scheme=dark] .manual-course-rule{border-color:var(--line);background:#111c16}[data-color-scheme=dark] .manual-course-rule .manual-weekday-field>div{background:#0e1813}[data-color-scheme=dark] .manual-course-rule .manual-weekday-field button.active{background:#20372b}@media (width<=560px){.manual-rules-section>header{align-items:flex-end}.manual-rules-section>header>div{max-width:68%}.manual-rules-section>header>button{min-height:42px}.manual-course-rule-body{padding:10px}.manual-course-rule .manual-weekday-field button{min-height:44px}.manual-course-rule .manual-weekday-field button small{display:none}}:root{--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--overlay-gap:12px;--on-primary:#fff}:is(.modal-backdrop,.selection-backdrop,.notice-dialog-backdrop,.admin-modal-backdrop){box-sizing:border-box;padding:calc(var(--safe-top) + var(--overlay-gap)) calc(var(--safe-right) + var(--overlay-gap)) calc(var(--safe-bottom) + var(--overlay-gap)) calc(var(--safe-left) + var(--overlay-gap))}:is(.modal-backdrop,.selection-backdrop,.notice-dialog-backdrop,.admin-modal-backdrop)>:is(.credential-modal,.time-modal,.selection-sheet,.notice-dialog,.course-detail-dialog,.grade-detail-dialog,.progress-course-dialog,.admin-account-modal){max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 24px)}.notice-dialog,.course-detail-dialog,.grade-detail-dialog,.progress-course-dialog,.credential-modal,.time-modal,.appearance-settings-body{overscroll-behavior:contain}.selection-sheet>header>button,.notice-dialog-close{flex:none;place-items:center;width:42px;height:42px;display:grid}.manual-entry-backdrop{align-items:flex-end}.manual-entry-sheet{width:min(540px,100%);max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 24px)}.date-picker-backdrop,.time-picker-backdrop,.period-range-backdrop{align-items:flex-end}.image-viewer>header{padding-top:calc(var(--safe-top) + 10px)}.image-viewer>footer{padding-bottom:calc(var(--safe-bottom) + 10px)}.manual-rules-section>header{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;display:grid}.manual-rules-section>header>div{min-width:0;max-width:none}.manual-rules-section>header>button{flex:none;justify-content:center;justify-self:end;width:auto;min-width:max-content;height:42px;min-height:42px;padding:0 13px}.theme-color-picker>.theme-preset-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.theme-swatch.custom{background:radial-gradient(circle at 32% 25%,#fff 0 8%,color-mix(in srgb,var(--swatch-color,#3867c8) 50%,#fff) 18%,var(--swatch-color,#3867c8) 52%,color-mix(in srgb,var(--swatch-color,#3867c8) 72%,#000) 100%);position:relative;overflow:hidden}.custom-theme-panel{border:1px solid var(--line);background:linear-gradient(145deg,var(--surface),var(--primary-faint));box-shadow:inset 0 1px color-mix(in srgb,var(--surface) 80%,transparent);border-radius:16px;gap:12px;margin-top:13px;padding:14px;display:grid}.custom-theme-panel.active{border-color:color-mix(in srgb,var(--primary) 42%,var(--line));box-shadow:0 0 0 3px rgba(var(--primary-rgb),.1)}.custom-theme-control{grid-template-columns:58px minmax(0,1fr) 104px;align-items:center;gap:11px;display:grid}.custom-theme-control>div>b,.custom-theme-control>div>small{display:block}.custom-theme-control>div>b{font-size:11px}.custom-theme-control>div>small{color:var(--muted);margin-top:3px;font-size:8px;line-height:1.45}.theme-color-orb{width:54px;height:54px;box-shadow:0 8px 22px rgba(var(--primary-rgb),.2);cursor:pointer;background:conic-gradient(from 35deg,#ef5b5b,#efbd4d,#58b978,#4fbcc9,#4f7bd9,#9a62d0,#ef5b8d,#ef5b5b);border-radius:50%;place-items:center;display:grid;position:relative}.theme-color-orb:after{content:"";border-radius:inherit;background:radial-gradient(circle at 32% 24%,#fff 0 7%,color-mix(in srgb,var(--theme-orb) 42%,#fff) 16%,var(--theme-orb) 55%,color-mix(in srgb,var(--theme-orb) 70%,#000) 100%);position:absolute;inset:4px}.theme-color-orb>input{z-index:3;opacity:0;cursor:pointer;border:0;border-radius:50%;width:100%;height:100%;padding:0;position:absolute;inset:0}.theme-color-orb>span{z-index:2;color:var(--on-primary);filter:drop-shadow(0 1px 2px #00000052);pointer-events:none;place-items:center;display:grid;position:relative}.theme-hex-field{border:1px solid var(--line);background:var(--control-bg,var(--surface));height:42px;color:var(--muted);border-radius:11px;grid-template-columns:auto minmax(0,1fr);align-items:center;padding:0 9px;display:grid}.theme-hex-field>span{font-size:11px;font-weight:800}.theme-hex-field>input{width:100%;min-width:0;color:var(--ink);font:inherit;text-transform:uppercase;background:0 0;border:0;outline:0;font-size:11px;font-weight:800}.theme-palette-preview{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;display:grid}.theme-palette-preview>span{border:1px solid color-mix(in srgb,currentColor 12%,transparent);border-radius:10px;align-items:flex-end;min-height:44px;padding:6px;display:flex;box-shadow:0 4px 12px #0714220f}.theme-palette-preview i{font-size:7px;font-style:normal;font-weight:800}.apply-custom-theme{border:1px solid var(--primary);background:var(--primary);min-height:44px;color:var(--on-primary);border-radius:11px;justify-content:center;align-items:center;gap:7px;font-size:10px;font-weight:850;display:flex}[data-theme=sues] .sidebar{background:var(--sidebar-tone)}[data-theme=sues] :is(.brand-mark,.nav-item.active){background:var(--primary-soft);color:var(--primary-strong)}[data-theme=sues] .semester-card i,[data-theme=sues] .progress-track i{background:linear-gradient(90deg,var(--primary),color-mix(in srgb,var(--primary) 40%,#fff))}[data-theme=sues] .topbar{background:color-mix(in srgb,var(--surface) 94%,transparent)}[data-theme=sues] .sync-btn{border-color:var(--primary-strong);background:var(--primary);box-shadow:0 8px 22px rgba(var(--primary-rgb),.2)}[data-theme=sues] .sync-btn:hover{background:var(--primary-strong)}[data-theme=sues] .pulse-dot{background:var(--primary);box-shadow:0 0 0 4px rgba(var(--primary-rgb),.13)}[data-theme=sues] .next-class{background:var(--primary-strong);border-color:var(--primary-strong)}[data-theme=sues] .next-class .course-symbol span,[data-theme=sues] :is(.mark-all-read,.mobile-tabbar button.active,.my-menu button>span){background:var(--primary-soft);color:var(--primary-strong);border-color:color-mix(in srgb,var(--primary) 28%,var(--line))}[data-theme=sues] :is(.semester-gpa,.score-cell,.hero-number){color:var(--primary)}.schedule-wrap{border-color:var(--line);background:var(--surface)}.corner,.day-head,.period{border-color:var(--line)}.corner{background:var(--surface-subtle);color:var(--muted)}.day-head{background:var(--surface-raised);color:var(--text-secondary)}.day-head b{color:var(--ink)}.day-head small{color:var(--muted)}.period{background:var(--surface);color:var(--muted)}.period b{color:var(--ink)}.week-toolbar{border-color:var(--line);background:var(--surface-subtle)}.week-toolbar button{border-color:var(--line);background:var(--surface);color:var(--primary-strong)}.week-toolbar button:hover{background:var(--primary-faint)}.week-toolbar>span b{color:var(--primary-strong)}.week-toolbar>span small{color:var(--muted)}.schedule-title-actions label,.schedule-title-actions>button{border-color:var(--line);background:var(--surface);color:var(--primary-strong)}.schedule-title-actions label span{color:var(--muted)}.schedule-title-actions select,.exam-controls select,.notification-controls select{color:var(--ink)}.mobile-tabbar{border-color:color-mix(in srgb,var(--primary) 18%,var(--line));background:color-mix(in srgb,var(--surface) 95%,transparent);box-shadow:0 12px 35px rgba(var(--primary-rgb),.14)}.mobile-tabbar button{color:var(--muted)}.sync-btn,.today b,.date-picker-days button.active,.manual-course-rule>header>div>span,.time-picker-sheet>footer button:last-child{color:var(--on-primary)!important}.manual-entry-sheet form>footer button.primary,.account-settings-body .link-action,.apply-custom-theme{color:var(--on-primary)}[data-color-scheme=dark] :is(.search,.portal-btn,.credential-btn,.page-title>b,.weekend-toggle,.today-button,.schedule-title-actions>b,.notification-heading-actions button,.mark-all-read,.manual-entry-tabs,.manual-weekday-field>div,.date-picker-navigation button,.date-picker-sheet>footer){background:var(--control-bg);color:var(--text-secondary);border-color:var(--line)}[data-color-scheme=dark] :is(.corner,.day-head,.period,.module-course-row.header,.data-row.header,.notification-history>header){background:var(--control-bg)}[data-color-scheme=dark] :is(.module-courses,.schedule-wrap,.manual-course-rule .manual-weekday-field>div){background:var(--surface-sunken)}[data-color-scheme=dark] .auth-page{background:radial-gradient(circle at 8% 5%,rgba(var(--primary-rgb),.13),transparent 34%),linear-gradient(145deg,var(--canvas),var(--surface) 48%,var(--surface-sunken))}[data-color-scheme=dark] .auth-shell{background:color-mix(in srgb,var(--surface) 96%,transparent);border-color:var(--line)}[data-color-scheme=dark] :is(.auth-input,.admin-test form,.test-access-box,.manual-course-rule){background:var(--surface-subtle);border-color:var(--line)}[data-color-scheme=dark] :is(.auth-code-row>button,.test-access-tabs button.active,.manual-course-rule .manual-weekday-field button.active){background:var(--primary-soft);border-color:var(--line);color:var(--primary-strong)}[data-color-scheme=dark] :is(.primary-login,.admin-login-button){background:var(--primary);color:var(--on-primary)}@media (width<=620px){:is(.modal-backdrop,.selection-backdrop,.notice-dialog-backdrop,.admin-modal-backdrop){padding:calc(var(--safe-top) + 10px) calc(var(--safe-right) + 10px) calc(var(--safe-bottom) + 10px) calc(var(--safe-left) + 10px)}:is(.modal-backdrop,.selection-backdrop,.notice-dialog-backdrop,.admin-modal-backdrop)>:is(.credential-modal,.time-modal,.selection-sheet,.notice-dialog,.course-detail-dialog,.grade-detail-dialog,.progress-course-dialog,.admin-account-modal){max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 20px)}.manual-entry-backdrop,.date-picker-backdrop,.time-picker-backdrop,.period-range-backdrop{padding:calc(var(--safe-top) + 8px) calc(var(--safe-right) + 8px) calc(var(--safe-bottom) + 8px) calc(var(--safe-left) + 8px)}.manual-entry-sheet{max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 16px);border-radius:22px}.time-modal{border-bottom:1px solid var(--line);border-radius:22px}.theme-color-picker>.theme-preset-grid{grid-template-columns:1fr}.custom-theme-control{grid-template-columns:54px minmax(0,1fr)}.theme-hex-field{grid-column:1/-1}}@media (width<=360px){.manual-rules-section>header{grid-template-columns:1fr}.manual-rules-section>header>button{justify-self:start}.manual-weekday-field>div{grid-template-columns:repeat(4,minmax(44px,1fr))}.theme-palette-preview{grid-template-columns:repeat(3,minmax(0,1fr))}}
