:root{--blue:#1688f5;--ink:#252525;--muted:#9aa4b7;--line:#eeeeee;--bg:#fff}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#fff;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}body{overflow-x:hidden}.app-shell{width:100%;max-width:1080px;min-height:100vh;margin:auto;padding-bottom:84px}.topbar{height:100px;padding:27px 72px 12px;display:grid;grid-template-columns:50px 1fr 50px;align-items:center}.topbar h1{text-align:center;font-size:31px;margin:0;font-weight:650}.icon-button{width:42px;height:42px;border:0;background:transparent;color:#333;display:grid;place-items:center}.icon-button svg{width:30px;height:30px;stroke-width:2}.home-hero{background:var(--blue);color:#fff;padding:43px 70px 105px}.hero-date{font-size:29px;line-height:1.2}.home-hero h2{font-size:48px;line-height:1.15;margin:18px 0 0;font-weight:700}.day-content{margin-top:-40px;background:#fff;border-radius:40px 40px 0 0;padding:52px 70px 32px;min-height:550px}.period-group{margin:0 0 38px}.period-group h3{color:#8993aa;font-size:28px;margin:0 0 26px;font-weight:650}.period-list{display:grid;gap:18px}.course-card{width:100%;border:0;background:#fff;text-align:left;display:grid;grid-template-columns:106px 12px 1fr;gap:18px;align-items:center;padding:2px 0;cursor:pointer}.course-card .course-time{font-size:25px;line-height:1.25;color:#98a5b8;white-space:pre-line}.course-card .course-mark{width:10px;height:72px;border-radius:6px;background:#ccc}.course-card.has-course .course-mark{background:var(--blue)}.course-info strong{font-size:28px;display:block;font-weight:600}.course-info small{display:block;font-size:21px;color:#b7bec8;margin-top:5px}.empty-period{display:grid;grid-template-columns:106px 12px 1fr;gap:18px;color:#c7cbd0;align-items:center}.empty-period .empty-mark{width:10px;height:72px;background:#ccc;border-radius:6px}.empty-period b{font-size:28px;font-weight:500}.empty-period small{font-size:21px}.home-empty{text-align:center;color:#a6afbd;padding:38px 0;font-size:18px}.bottom-nav{position:fixed;z-index:8;bottom:0;left:50%;transform:translateX(-50%);width:min(1080px,100%);height:84px;background:rgba(255,255,255,.98);border-top:1px solid #ececec;display:grid;grid-template-columns:repeat(3,1fr);padding-bottom:env(safe-area-inset-bottom)}.nav-item{border:0;background:none;color:#c8c8c8;display:grid;place-items:center;align-content:center;gap:4px;font-size:13px}.nav-item svg{width:31px;height:31px;stroke-width:1.8}.nav-item.active{color:#222}.floating-add{position:fixed;right:max(7vw,28px);bottom:112px;width:86px;height:86px;border:0;border-radius:50%;background:#fff;color:#333;box-shadow:0 8px 26px #dfe2e7;display:grid;place-items:center;z-index:7}.floating-add svg{width:39px;height:39px}.week-view{min-height:calc(100vh - 100px);background:#fff}.week-heading{display:grid;grid-template-columns:70px 1fr 70px;align-items:center;text-align:center;padding:14px 50px 22px}.large-arrow{border:0;background:transparent;height:58px;color:#333}.large-arrow svg{width:38px;height:38px;stroke-width:1.7}.week-season{font-size:18px;color:#8f98a8}.week-heading h2{font-size:30px;margin:4px 0;font-weight:600}.week-days,.week-grid{display:grid;grid-template-columns:88px repeat(7,minmax(0,1fr))}.week-days{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-left:0}.week-days div{padding:18px 4px;text-align:center;font-size:17px;border-right:1px solid var(--line)}.week-grid-wrap{width:100%;overflow-x:hidden}.week-grid{width:100%;min-width:0}.week-grid>div{min-height:138px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px 7px}.week-grid .period-label{font-size:22px;font-weight:600}.week-grid .period-label small{display:block;color:#8e959f;font-size:16px;font-weight:400;line-height:1.4;margin-top:12px}.grid-course{width:100%;height:100%;min-height:116px;border:2px solid #5b9fff;background:#eff7ff;border-radius:10px;color:#3285ed;padding:9px 6px;text-align:left;cursor:pointer}.grid-course strong{display:block;font-size:17px;line-height:1.25}.grid-course small{display:block;font-size:12px;margin-top:9px;line-height:1.35}.profile-view{padding:20px 70px}.profile-hero{background:#1688f5;color:#fff;border-radius:22px;padding:32px 28px;display:flex;align-items:center;gap:20px}.profile-avatar{width:76px;height:76px;border-radius:22px;background:#fff;color:#1688f5;display:grid;place-items:center;font-size:40px;font-weight:700}.profile-hero p{margin:0 0 8px;opacity:.8;font-size:16px}.profile-hero h2{margin:0;font-size:30px}.profile-section{margin-top:18px;border:1px solid #eee;border-radius:18px;padding:0 22px}.profile-action{width:100%;border:0;border-bottom:1px solid #eee;background:#fff;padding:24px 0;display:grid;grid-template-columns:28px 1fr 22px;align-items:center;gap:12px;text-align:left;font-size:18px;color:#333}.profile-action:last-child{border-bottom:0}.profile-action svg{width:21px;color:#7e8998}.profile-action svg:last-child{justify-self:end}.profile-note{text-align:center;color:#a5afbd;font-size:14px;margin-top:30px}.toast{position:fixed;z-index:20;left:50%;bottom:110px;transform:translateX(-50%);background:#222;color:#fff;padding:10px 16px;border-radius:20px;opacity:0;pointer-events:none;transition:opacity .2s}.toast.show{opacity:1}.modal{position:fixed;inset:0;z-index:30}.modal-backdrop{position:absolute;inset:0;background:rgba(15,25,40,.32)}.course-dialog{position:absolute;left:50%;top:50%;width:min(520px,calc(100% - 36px));background:#fff;border-radius:24px;padding:30px;transform:translate(-50%,calc(-50% + 100vh));transition:transform .32s cubic-bezier(.22,.8,.3,1)}.modal:not([hidden]) .course-dialog{transform:translate(-50%,-50%)}.modal-close{position:absolute;top:18px;right:18px;border:0;background:#f2f4f6;border-radius:50%;width:36px;height:36px}.modal-kicker{color:var(--blue);margin:0 0 8px}.course-dialog h2{font-size:28px;margin:0 0 25px}.course-dialog dl{margin:0;display:grid;gap:15px}.course-dialog dl div{display:grid;grid-template-columns:60px 1fr;gap:18px}.course-dialog dt{color:#99a2af}.course-dialog dd{margin:0}.view[hidden],.modal[hidden]{display:none!important}@media(max-width:600px){.topbar{height:82px;padding:18px 18px 10px}.topbar h1{font-size:26px}.home-hero{padding:35px 70px 88px}.hero-date{font-size:21px}.home-hero h2{font-size:36px;margin-top:14px}.day-content{padding:42px 70px 28px;border-radius:34px 34px 0 0}.period-group{margin-bottom:34px}.period-group h3{font-size:24px;margin-bottom:24px}.course-card,.empty-period{grid-template-columns:104px 10px 1fr;gap:14px}.course-card .course-time{font-size:22px}.course-info strong,.empty-period b{font-size:25px}.course-info small,.empty-period small{font-size:18px}.floating-add{right:24px;bottom:104px;width:64px;height:64px}.floating-add svg{width:30px}.week-heading{padding:12px 20px 18px;grid-template-columns:52px 1fr 52px}.week-heading h2{font-size:25px}.week-days div{font-size:13px;padding:14px 2px}.week-grid{grid-template-columns:58px repeat(7,minmax(75px,1fr));min-width:583px}.week-grid>div{min-height:125px}.profile-view{padding:20px 18px}.profile-hero{padding:26px 20px}.profile-hero h2{font-size:25px}.profile-action{font-size:16px}}
.home-hero{display:grid;grid-template-columns:52px 1fr 52px;align-items:start}.hero-center{min-width:0}.hero-arrow{margin-top:4px;width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.15);color:#fff;display:grid;place-items:center}.hero-arrow:last-child{justify-self:end}.hero-arrow svg{width:30px}.course-time,.empty-time{white-space:pre-line}.empty-period>span:last-child{display:grid;gap:4px}.empty-period small{color:#c7cbd0}.profile-view{min-height:calc(100vh - 184px)}@media(max-width:600px){.home-hero{grid-template-columns:38px 1fr 38px;padding-left:22px;padding-right:22px}.hero-arrow{width:36px;height:36px}.hero-arrow svg{width:25px}.day-content{padding-left:22px;padding-right:22px}.course-card,.empty-period{grid-template-columns:92px 10px 1fr}.course-info strong,.empty-period b{font-size:22px}.course-info small,.empty-period small{font-size:16px}.topbar{padding-left:14px;padding-right:14px}}.picker-modal{position:fixed;inset:0;z-index:40}.picker-backdrop{position:absolute;inset:0;background:rgba(20,28,40,.35)}.picker-dialog{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(480px,calc(100% - 34px));max-height:min(620px,80vh);overflow:auto;background:#fff;border-radius:22px;padding:22px;box-shadow:0 20px 60px rgba(0,0,0,.2)}.picker-dialog header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.picker-dialog h2{margin:0;font-size:22px}.picker-dialog .modal-close{position:static;font-size:25px;line-height:1}.class-search{width:100%;height:42px;margin:0 0 12px;border:1px solid #dce4ee;border-radius:10px;padding:0 12px;font:inherit;color:#293241;outline:none}.class-search:focus{border-color:#1688f5;box-shadow:0 0 0 3px rgba(22,136,245,.12)}.class-list{display:grid;gap:8px}.class-empty{margin:12px 0;color:#9aa4b7;text-align:center;font-size:14px}.class-option{border:0;border-radius:12px;background:#f5f8fb;text-align:left;padding:15px 16px;font-size:16px;color:#293241}.class-option.selected{background:#e8f3ff;color:#1688f5;font-weight:650}@media(max-width:600px){.picker-dialog{padding:18px}.week-grid-wrap{overflow:hidden}.week-grid{min-width:0;grid-template-columns:42px repeat(7,minmax(0,1fr))}.week-grid>div{padding:7px 2px;min-height:122px}.week-days{grid-template-columns:42px repeat(7,minmax(0,1fr))}.week-days div{font-size:11px;line-height:1.35}.week-days small{display:block;font-size:10px}.grid-course{padding:5px 2px;border-width:1px;border-radius:6px}.grid-course strong{font-size:11px;word-break:break-all}.grid-course small{font-size:9px;word-break:break-all;margin-top:4px}.week-grid .period-label{font-size:16px;padding-left:4px}.week-grid .period-label small{font-size:10px;margin-top:8px}} .topbar{display:none}.app-shell{padding-bottom:84px}.week-view{min-height:100vh}.week-grid{display:grid;grid-template-columns:88px repeat(7,minmax(0,1fr));grid-template-rows:repeat(6,130px);position:relative;background:#fff}.week-grid>div{min-height:0;height:100%;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.week-grid .period-label{background:#fff;padding:18px 7px;font-size:20px}.week-grid .period-label small{white-space:pre-line;line-height:1.45}.week-cell{background:#fff}.grid-course{box-sizing:border-box;width:calc(100% - 10px);height:calc(100% - 10px);margin:5px;border-color:var(--course-color);background:color-mix(in srgb,var(--course-color) 12%,white);color:var(--course-color);overflow:hidden}.merged-course{height:calc(100% - 10px)}@supports not (background:color-mix(in srgb,red 10%,white)){.grid-course{background:#eff7ff}}@media(max-width:600px){.week-grid{grid-template-columns:42px repeat(7,minmax(0,1fr));grid-template-rows:repeat(6,122px)}.week-grid .period-label{padding:10px 3px;font-size:14px}.merged-course{height:calc(100% - 8px)}} .floating-add{display:none!important} .week-view{padding-left:5px;padding-right:5px}.week-grid,.week-days{width:calc(100% - 4px);margin-left:2px}.grid-course{height:auto;align-self:stretch;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;line-height:1.25}.grid-course strong,.grid-course small{width:100%;text-align:center;overflow-wrap:anywhere}.merged-course{height:auto!important;align-self:stretch!important} .week-grid .grid-course{align-self:stretch;min-height:0}.week-grid .merged-course{height:auto!important;min-height:0;align-self:stretch!important;margin:5px} .week-grid{isolation:isolate;gap:0}.week-grid>div{position:relative;z-index:1;border:1px solid #e7e7e7!important;background:#fff}.week-grid .grid-course{z-index:3;border:1.5px solid var(--course-color)!important;height:calc(100% - 10px);margin:5px;box-shadow:none}.week-grid .merged-course{height:calc(200% - 10px)!important;z-index:4}.week-days>div{border-right:1px solid #e7e7e7!important;border-bottom:1px solid #e7e7e7!important}.week-days{border-top:1px solid #e7e7e7!important} .week-grid .grid-course{height:auto!important;min-height:0;align-self:stretch;justify-self:stretch}.week-grid .merged-course{height:auto!important;min-height:0;align-self:stretch;justify-self:stretch}.week-grid .week-cell{height:100%;min-height:0;pointer-events:none}.week-grid .grid-course strong,.week-grid .grid-course small{overflow-wrap:anywhere} @keyframes schedule-next{from{opacity:.35;transform:translateX(22px)}to{opacity:1;transform:translateX(0)}}@keyframes schedule-prev{from{opacity:.35;transform:translateX(-22px)}to{opacity:1;transform:translateX(0)}}.view.swipe-next{animation:schedule-next 220ms cubic-bezier(.23,1,.32,1)}.view.swipe-prev{animation:schedule-prev 220ms cubic-bezier(.23,1,.32,1)}.period-group{animation:course-reveal 240ms cubic-bezier(.23,1,.32,1) both}.period-group:nth-child(2){animation-delay:35ms}.period-group:nth-child(3){animation-delay:70ms}@keyframes course-reveal{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.course-card,.grid-course{transition:transform 150ms ease,box-shadow 150ms ease}.course-card:active,.grid-course:active{transform:scale(.98)}.modal-backdrop{animation:backdrop-in 180ms ease-out}.course-dialog{animation:dialog-in 220ms cubic-bezier(.23,1,.32,1)}@keyframes backdrop-in{from{opacity:0}to{opacity:1}}@keyframes dialog-in{from{opacity:0;transform:translate(-50%,calc(-50% + 12px)) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@media (prefers-reduced-motion:reduce){.view.swipe-next,.view.swipe-prev,.period-group,.modal-backdrop,.course-dialog{animation:none}.course-card,.grid-course{transition:none}} .nav-item{transition:color 160ms ease,transform 160ms ease}.nav-item:active{transform:scale(.94)}.nav-item.active svg{animation:nav-icon-in 220ms cubic-bezier(.23,1,.32,1)}@keyframes nav-icon-in{from{opacity:.45;transform:scale(.82)}to{opacity:1;transform:scale(1)}}.large-arrow{transition:transform 150ms ease,background-color 150ms ease;border-radius:50%}.large-arrow:active{transform:scale(.88)}@media (hover:hover) and (pointer:fine){.large-arrow:hover{background:#f2f6fb}.profile-action:hover{background:#f8fafc}.class-option:hover{background:#edf5ff}}.profile-view:not([hidden]) .profile-hero{animation:profile-hero-in 260ms cubic-bezier(.23,1,.32,1)}.profile-view:not([hidden]) .profile-section{animation:profile-list-in 260ms 45ms cubic-bezier(.23,1,.32,1) both}@keyframes profile-hero-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes profile-list-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.picker-modal:not([hidden]) .picker-backdrop{animation:backdrop-in 180ms ease-out}.picker-modal:not([hidden]) .picker-dialog{animation:picker-in 220ms cubic-bezier(.23,1,.32,1)}.class-option{transition:background-color 140ms ease,transform 140ms ease}.class-option:active{transform:scale(.985)}@keyframes picker-in{from{opacity:0;transform:translate(-50%,calc(-50% + 14px)) scale(.97)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.toast{transition:opacity 180ms ease,transform 220ms cubic-bezier(.23,1,.32,1);transform:translate(-50%,8px)}.toast.show{transform:translate(-50%,0)} @media (prefers-reduced-motion:reduce){.nav-item.active svg,.profile-view:not([hidden]) .profile-hero,.profile-view:not([hidden]) .profile-section,.picker-modal:not([hidden]) .picker-backdrop,.picker-modal:not([hidden]) .picker-dialog{animation:none}.nav-item,.large-arrow,.class-option,.toast{transition:none}} .view.is-swiping{transition:none!important}.view.swipe-next{animation-duration:300ms!important}.view.swipe-prev{animation-duration:300ms!important}@media (prefers-reduced-motion:reduce){.view.is-swiping{transition:none!important}.view.swipe-next,.view.swipe-prev{animation:none!important}} html{min-height:100%;background:#fff}body{min-height:100dvh;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.bottom-nav{padding-bottom:max(env(safe-area-inset-bottom),0px);height:calc(84px + env(safe-area-inset-bottom))}@media(max-width:600px){.app-shell{min-height:100dvh}.home-hero{padding-top:calc(35px + env(safe-area-inset-top))}.week-view{padding-top:env(safe-area-inset-top)}} #installPwa svg{color:#1688f5} 
 @media(max-width:600px){.week-view{padding:0 4px 8px}.week-heading{height:58px;min-height:58px;padding:4px 12px!important;margin:0!important}.week-heading h2{font-size:23px!important;line-height:25px!important;margin:0!important}.week-season{font-size:15px!important;line-height:18px!important}.large-arrow{width:34px!important;height:34px!important}.large-arrow svg{width:24px!important;height:24px!important}.week-days{height:38px;min-height:38px;grid-template-columns:42px repeat(7,minmax(0,1fr));font-size:11px!important}.week-days>div{padding:5px 1px!important;line-height:14px!important}.week-days small{font-size:9px!important;line-height:11px!important}.week-grid{grid-template-columns:42px repeat(7,minmax(0,1fr));grid-template-rows:repeat(6,86px)!important}.week-grid>div{min-height:0!important;height:100%;padding:3px 1px!important}.week-grid .period-label{padding:8px 2px!important;font-size:13px!important;line-height:16px!important}.week-grid .period-label small{font-size:9px!important;line-height:12px!important}.week-grid .grid-course{margin:3px!important;width:calc(100% - 6px)!important;font-size:10px!important;line-height:12px!important;border-radius:6px!important}.week-grid .grid-course strong{font-size:11px!important;line-height:14px!important}.week-grid .grid-course small{font-size:9px!important;line-height:11px!important}.week-updated{margin:6px 0 10px!important;font-size:10px!important;line-height:15px!important}} .app-shell{width:100%;min-width:0}.view{width:100%;min-width:0}.home-hero,.day-content,.week-heading,.week-days,.week-grid-wrap,.profile-view{max-width:100%;margin-left:auto;margin-right:auto}.day-content,.profile-view{overflow-wrap:anywhere}.course-info{min-width:0}.course-info strong,.course-info small{overflow-wrap:anywhere}.bottom-nav{left:0;right:0;width:100%;max-width:1080px;margin:auto}@media(min-width:601px) and (max-width:900px){.topbar{padding-left:32px;padding-right:32px}.home-hero{padding-left:32px;padding-right:32px}.day-content{padding-left:32px;padding-right:32px}.week-heading{padding-left:28px;padding-right:28px}.week-grid,.week-days{grid-template-columns:64px repeat(7,minmax(0,1fr))}.week-grid{grid-template-rows:repeat(6,105px)}.week-grid .period-label{padding:12px 4px;font-size:16px}.week-grid .period-label small{font-size:11px}.grid-course strong{font-size:13px}.grid-course small{font-size:11px}}@media(max-width:600px){html,body{width:100%;overflow-x:hidden}.app-shell{padding-bottom:calc(72px + env(safe-area-inset-bottom));min-height:100svh}.view{max-width:100vw;overflow-x:hidden}.home-hero{padding:24px 14px 62px!important;grid-template-columns:38px minmax(0,1fr) 38px}.hero-date{font-size:22px!important}.home-hero h2{font-size:30px!important;margin-top:8px!important}.day-content{margin-top:-24px!important;border-radius:24px 24px 0 0!important;padding:28px 14px 20px!important;min-height:calc(100svh - 130px)!important}.period-group{margin-bottom:24px!important}.period-group h3{font-size:19px!important;margin-bottom:12px!important}.period-list{gap:12px!important}.course-card,.empty-period{grid-template-columns:minmax(65px,25vw) 8px minmax(0,1fr)!important;gap:10px!important}.course-card .course-time{font-size:15px!important}.course-card .course-mark,.empty-period .empty-mark{width:8px;height:52px}.course-info strong,.empty-period b{font-size:17px!important;line-height:22px}.course-info small,.empty-period small{font-size:13px!important;line-height:18px}.profile-view{padding:24px 16px 20px!important;min-height:calc(100svh - 72px)!important}.profile-hero{padding:20px 16px!important}.profile-hero h2{font-size:22px!important}.profile-section{margin-top:16px!important}.profile-action{min-height:52px!important;padding:12px 14px!important}.profile-note{font-size:12px!important}.bottom-nav{height:calc(72px + env(safe-area-inset-bottom))!important}.bottom-nav .nav-item{padding:8px 3px!important;font-size:12px}.picker-dialog{width:calc(100% - 24px)!important;max-height:78svh!important;padding:16px!important;border-radius:16px!important}.course-dialog{width:calc(100% - 24px)!important;max-height:82svh!important;padding:22px 18px!important}.course-dialog h2{font-size:24px!important}.modal-close{width:34px!important;height:34px!important}.week-view{padding-left:4px!important;padding-right:4px!important}.week-heading{padding-left:6px!important;padding-right:6px!important}.week-grid-wrap{width:100%;overflow:hidden}.week-updated{white-space:normal;overflow-wrap:anywhere}}@media(max-width:360px){.home-hero{padding-left:8px!important;padding-right:8px!important}.day-content{padding-left:10px!important;padding-right:10px!important}.course-card,.empty-period{grid-template-columns:58px 7px minmax(0,1fr)!important;gap:7px!important}.course-card .course-time{font-size:13px!important}.course-info strong,.empty-period b{font-size:15px!important}.course-info small,.empty-period small{font-size:11px!important}.week-grid,.week-days{grid-template-columns:36px repeat(7,minmax(0,1fr))!important}.week-grid{grid-template-rows:repeat(6,78px)!important}.week-grid .period-label{font-size:12px!important}.week-grid .period-label small{font-size:8px!important}}@media(min-width:901px){.home-hero,.day-content{padding-left:clamp(32px,7vw,92px);padding-right:clamp(32px,7vw,92px)}.week-heading,.week-days,.week-grid-wrap{max-width:1080px}.profile-view{max-width:760px;margin-left:auto;margin-right:auto}} .bottom-nav{left:0;right:0;width:100%;max-width:none;transform:none;margin:0;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);box-sizing:border-box}.app-shell{padding-bottom:calc(84px + env(safe-area-inset-bottom))}@media(min-width:601px){.bottom-nav{left:50%;right:auto;width:min(1080px,100%);transform:translateX(-50%)}}@media(max-width:600px){.bottom-nav{height:calc(72px + env(safe-area-inset-bottom));min-height:72px;bottom:0}.app-shell{padding-bottom:calc(72px + env(safe-area-inset-bottom))}.home-view,.week-view,.profile-view{padding-bottom:8px}.day-content{min-height:0!important}.week-view{min-height:0!important}.profile-view{min-height:0!important}}@media(min-height:850px) and (max-width:600px){.home-hero{padding-bottom:54px!important}.day-content{padding-bottom:16px!important}.week-grid{grid-template-rows:repeat(6,minmax(78px,9.5vh))!important}.week-updated{margin-bottom:4px!important}} .week-view{display:block!important;height:auto!important;min-height:0!important;max-height:none!important;padding-bottom:8px!important;border:0!important;outline:0!important}.week-grid-wrap{height:auto!important;min-height:0!important;max-height:none!important;flex:none!important;border:0!important;outline:0!important}.week-grid{height:auto!important;min-height:0!important;border:0!important;outline:0!important;grid-template-rows:repeat(6,clamp(72px,calc((100svh - 176px)/6),124px))!important}.week-updated{display:block!important;height:auto!important;min-height:0!important;margin:8px 0 10px!important;padding:0!important;border:0!important;outline:0!important}@media(max-width:600px){.week-view{padding:0 4px 8px!important}.week-heading{height:58px!important;min-height:58px!important}.week-days{height:38px!important;min-height:38px!important}.week-grid{grid-template-rows:repeat(6,clamp(68px,calc((100svh - 166px)/6),108px))!important}.week-updated{margin:8px 0 8px!important}}@media(max-width:360px){.week-grid{grid-template-rows:repeat(6,clamp(64px,calc((100svh - 154px)/6),94px))!important}} .week-view{display:flex!important;flex-direction:column!important;min-height:calc(100svh - 84px)!important;height:calc(100svh - 84px)!important;padding-bottom:8px!important}.week-grid-wrap{flex:1 1 auto!important;min-height:0!important;display:flex!important;flex-direction:column!important}.week-grid{flex:1 1 auto!important;height:auto!important;grid-template-rows:repeat(6,minmax(0,1fr))!important}.week-updated{flex:0 0 auto!important;margin:8px 0 10px!important}@media(max-width:600px){.week-view{min-height:calc(100svh - 72px)!important;height:calc(100svh - 72px)!important;padding-bottom:6px!important}.week-grid-wrap{flex:1 1 auto!important}.week-grid{grid-template-rows:repeat(6,minmax(0,1fr))!important}.week-updated{margin:6px 0 8px!important}}
 .identity-switch{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:#f5f8fb;border-radius:14px;padding:5px;margin:16px 0 8px}
.identity-option{border:0;background:transparent;border-radius:10px;padding:12px 8px;font:inherit;font-size:16px;font-weight:600;color:#7e8998;transition:background-color 140ms ease,color 140ms ease,transform 140ms ease}
.identity-option.active{background:#e8f3ff;color:#1688f5;font-weight:650}
.identity-option:active{transform:scale(.985)}
 .filter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 12px}
.filter-field{display:grid;gap:6px;min-width:0}
.filter-field span{font-size:13px;color:#8f98a8}
.room-select{position:relative;width:100%;min-width:0}
.room-select-native{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;clip-path:inset(50%)!important}
.room-select-trigger{width:100%;height:42px;border:1px solid #dce4ee;border-radius:10px;padding:0 32px 0 10px;font:inherit;font-size:15px;color:#293241;background:#fff;outline:none;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;position:relative;transition:border-color 140ms ease,box-shadow 140ms ease,background-color 140ms ease}
.room-select-trigger::after{content:"";position:absolute;right:12px;top:50%;width:7px;height:7px;border-right:1.8px solid #7e8998;border-bottom:1.8px solid #7e8998;transform:translateY(-68%) rotate(45deg);transition:transform 160ms cubic-bezier(.23,1,.32,1),border-color 140ms ease}
.room-select.is-open .room-select-trigger,.room-select-trigger:focus-visible{border-color:#1688f5;box-shadow:0 0 0 3px rgba(22,136,245,.12)}
.room-select.is-open .room-select-trigger::after{border-color:#1688f5;transform:translateY(-28%) rotate(225deg)}
.room-select-menu{position:absolute;z-index:45;top:calc(100% + 6px);left:0;right:0;max-height:248px;overflow:auto;padding:5px;background:#fff;border:1px solid #dce4ee;border-radius:12px;box-shadow:0 12px 30px rgba(35,60,95,.16);opacity:0;transform:translateY(-4px) scale(.98);transform-origin:top;pointer-events:none;transition:opacity 140ms ease,transform 160ms cubic-bezier(.23,1,.32,1)}
.room-select.is-open .room-select-menu{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
.room-select-option{display:block;width:100%;min-height:38px;border:0;border-radius:8px;padding:8px 10px;background:transparent;color:#293241;font:inherit;font-size:14px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:background-color 140ms ease,color 140ms ease,transform 140ms ease}
.room-select-option.is-selected{background:#e8f3ff;color:#1688f5;font-weight:650}
.room-select-option:hover{background:#f3f8fe}.room-select-option:active{transform:scale(.985)}
.room-count{margin:0 0 10px;color:#9aa4b7;font-size:13px;text-align:center}
.room-item{display:block;cursor:default;overflow-wrap:anywhere}
 @media(max-width:600px){
.identity-option{font-size:15px;padding:11px 6px}
.filter-field span{font-size:12px}
.room-select-trigger{height:40px;padding-left:8px;font-size:13px}.room-select-trigger::after{right:10px}.room-select-menu{max-height:220px}.room-select-option{min-height:36px;padding:7px 8px;font-size:13px}
.room-count{font-size:12px}
}
 @media (prefers-reduced-motion:reduce){
.identity-option,.room-select-trigger,.room-select-trigger::after,.room-select-menu,.room-select-option{transition:none}
}
/* 校历：首页摘要卡 + 校历弹层条目 */
.term-card{width:100%;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;margin:0 0 30px;padding:15px 18px;border:1px solid #e6eefb;border-radius:16px;background:#f7fbff;text-align:left;font:inherit;color:#293241;cursor:pointer}
.term-card[hidden]{display:none}
.term-week{font-weight:650;color:var(--blue);white-space:nowrap}
.term-work{font-size:14px;color:#7e8998;line-height:1.45;overflow-wrap:anywhere}
.term-card i{width:18px;height:18px;color:#b3bfd0}
.term-entry{cursor:default}
.term-entry .term-entry-head{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.term-entry .term-entry-head strong{font-weight:650}
.term-entry .term-entry-head em{font-style:normal;font-size:12px;color:#9aa4b7;white-space:nowrap}
.term-entry .term-entry-date{display:block;margin-top:3px;font-size:12px;color:#9aa4b7}
.term-entry .term-entry-work{display:block;margin-top:6px;font-size:13px;color:#7e8998;line-height:1.5}
.term-entry.is-current{background:#e8f3ff}
.term-entry.is-current .term-entry-head strong{color:var(--blue)}
@media(max-width:600px){
.term-card{padding:13px 14px;margin-bottom:24px}
.term-work{font-size:13px}
}
