@font-face{font-family:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/XRXV3I6Li01BKofIOOaBXso-D4X5GqEv.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/XRXV3I6Li01BKofIMeaBXso-CY6AOgYE.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/XRXV3I6Li01BKofIOuaBXso-U01xdrZh.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/XRXV3I6Li01BKofIO-aBXso-CXYtwYOx.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/XRXV3I6Li01BKofINeaB-BzFMHfZw.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/XRXV3I6Li01BKofIOOaBXso-D4X5GqEv.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/XRXV3I6Li01BKofIMeaBXso-CY6AOgYE.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/XRXV3I6Li01BKofIOuaBXso-U01xdrZh.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/XRXV3I6Li01BKofIO-aBXso-CXYtwYOx.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/XRXV3I6Li01BKofINeaB-BzFMHfZw.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-weight:800;font-display:swap;src:url(/assets/XRXV3I6Li01BKofIOOaBXso-D4X5GqEv.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-weight:800;font-display:swap;src:url(/assets/XRXV3I6Li01BKofIMeaBXso-CY6AOgYE.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-weight:800;font-display:swap;src:url(/assets/XRXV3I6Li01BKofIOuaBXso-U01xdrZh.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-weight:800;font-display:swap;src:url(/assets/XRXV3I6Li01BKofIO-aBXso-CXYtwYOx.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-weight:800;font-display:swap;src:url(/assets/XRXV3I6Li01BKofINeaB-BzFMHfZw.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color:#332b52;background:#faf7ff;font-family:Nunito,Microsoft YaHei,sans-serif;font-size:15px}*{box-sizing:border-box}body{background:radial-gradient(circle at 6% 3%,#f3e5ff 0,#0000 32%),radial-gradient(circle at 92% 18%,#dff8f2 0,#0000 24%),#faf7ff;min-height:100dvh;margin:0}button,input,select{font:inherit}button{cursor:pointer;border:0}button:active{transform:scale(.96)}button,input,select{transition:all .2s}#app{max-width:760px;margin:auto;padding:22px 15px 100px}.top{justify-content:space-between;align-items:center;margin-bottom:22px;display:flex}.brand{letter-spacing:-1px;font-size:23px;font-weight:800}.brand i{color:#9468e8;font-style:normal}.pill,.small{color:#665a82;background:#fff;border-radius:15px;padding:10px 14px;box-shadow:0 4px 18px #69558d12}.hero{color:#fff;background:linear-gradient(135deg,#9c7aeb,#c39bed);border-radius:26px;padding:22px;animation:.45s both up;position:relative;overflow:hidden;box-shadow:0 14px 35px #a48ad745}.hero:after{content:"✦";opacity:.12;font-size:125px;position:absolute;top:-35px;right:22px;transform:rotate(16deg)}h1{margin:4px 0 8px;font-size:25px}h2{margin:0 0 16px;font-size:19px}.muted{color:#9288a7}.hero .muted{color:#f1eaff}.controls{gap:8px;margin:17px 0;display:flex}.controls select{flex:1;min-width:0}.card{background:#fff;border-radius:24px;margin-top:15px;padding:18px;animation:.4s both up;box-shadow:0 10px 35px #77609912}.weekbar{justify-content:space-between;align-items:center;gap:8px;margin-bottom:15px;display:flex}.weekbar button{color:#7857c8;background:#f5f0ff;border-radius:12px;padding:8px 12px}.grid{grid-template-columns:49px repeat(7,minmax(0,1fr));display:grid;position:relative}.grid>div{text-align:center;min-width:0}.head{color:#8d83a3;padding:6px 0 10px;font-size:11px;font-weight:800}.today{color:#8f63e8}.slot{color:#b0a8be;border-top:1px dashed #eee9f4;min-height:58px;padding-top:5px;font-size:10px}.slot.time{font-size:10px;line-height:1.45}.course{color:#7955c7;z-index:1;word-break:break-all;background:#e9e1ff;border:2px solid #fff;border-radius:11px;padding:6px 4px;font-size:10px;line-height:1.35;overflow:hidden;text-align:left!important}.course:nth-of-type(3n){color:#299c88;background:#def8ef}.course:nth-of-type(4n){color:#c48624;background:#fff0d9}.course strong{display:block}.nav{padding:12px 15px calc(12px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:4;background:#fffe;justify-content:center;gap:16px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 30px #78669412}.nav button{color:#9990aa;background:0 0;border-radius:14px;padding:10px 25px}.nav button.active{color:#805bc9;background:#f1eaff;font-weight:800}input,select{color:#403653;background:#fff;border:1px solid #e9e1f2;border-radius:13px;outline:none;width:100%;padding:12px}input:focus,select:focus{border-color:#a887e7;box-shadow:0 0 0 3px #eadfff}label{color:#716581;margin:14px 0 6px;font-size:13px;display:block}button.primary{color:#fff;background:linear-gradient(135deg,#9870e5,#bd8feb);border-radius:14px;padding:13px 18px;font-weight:800;box-shadow:0 7px 18px #ac87e84a}.wide{width:100%;margin-top:18px}.row{align-items:center;gap:8px;display:flex}.row>*{flex:1}.item{border-bottom:1px solid #f2eef7;justify-content:space-between;align-items:center;padding:14px 2px;display:flex}.item:last-child{border:0}.item small{color:#aaa0b7;margin-top:4px;display:block}.tag{color:#8c65d5;background:#f2eaff;border-radius:10px;padding:5px 9px;font-size:11px}.empty{text-align:center;color:#a79bb7;padding:40px 10px;line-height:2}.empty .spark{font-size:36px}.login h1{font-size:30px}.link{color:#8c64d5;background:0 0;padding:7px}dialog{border:0;border-radius:24px;width:calc(100% - 24px);max-width:480px;padding:0;box-shadow:0 20px 70px #30234540}dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#30244275}#modal-content{max-height:85dvh;padding:22px;overflow:auto}.editor-grid .slot{touch-action:none;cursor:pointer}.editor-grid .slot.selected{background:#ded0ff}.editor-grid .course{cursor:pointer;touch-action:manipulation}#toast{opacity:0;color:#fff;z-index:10;pointer-events:none;white-space:nowrap;background:#413755;border-radius:12px;padding:10px 16px;transition:all .25s;position:fixed;top:20px;left:50%;transform:translate(-50%,-20px)}#toast.show{opacity:1;transform:translate(-50%)}@keyframes up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media (width<=390px){#app{padding-inline:10px}.card{padding:12px}.grid{grid-template-columns:41px repeat(7,minmax(0,1fr))}.course{font-size:9px}}.modal-toast{z-index:20;opacity:0;pointer-events:none;color:#fff;background:#413755;border-radius:12px;width:max-content;max-width:calc(100% - 30px);padding:10px 15px;line-height:1.4;transition:all .2s;position:absolute;top:12px;left:50%;transform:translate(-50%,-10px);box-shadow:0 7px 24px #2e20474a}.modal-toast.show{opacity:1;transform:translate(-50%)}.template-top{z-index:3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#faf7fff2;align-items:center;gap:12px;padding:8px 0 12px;display:flex;position:sticky;top:0}.template-top>div{flex:1}.template-top small{color:#9b90af;margin-top:3px;font-size:11px;display:block}.template-top .primary{padding:10px 15px}.template-title,.panel-heading,.board-title{justify-content:space-between;align-items:center;gap:8px;display:flex}.template-title .muted,.board-title small{font-size:12px}.board-title h2,.panel-heading h2{margin:0}.panel-heading h2{margin-top:8px;font-size:17px}.board-title{margin-bottom:12px}.compact{padding:20px 8px}.compact .spark{font-size:24px}.course-panel{margin-bottom:50px}.panel-actions{margin-top:18px}.panel-actions .danger{color:#d56b87;background:#fff0f3}.editor-grid .slot{background:#fbf9ff;border-left:1px solid #f3eff8}.editor-grid .slot.selected{background:#dbc9ff;box-shadow:inset 0 0 0 2px #a683ec}.editor-grid .course-active{z-index:2;outline:2px solid #9468e8}.account-item{background:#fbf8ff;border-radius:14px;margin:6px -7px;padding:14px 7px}.template-meta .row>div,.course-panel .row>div{min-width:0}.template-board{padding:16px 10px}.actual-actions{justify-content:space-between;gap:8px;margin-bottom:14px;display:flex}.actual-actions .primary{padding:10px 14px}.edit-hint{font-size:12px;line-height:1.6}.actual-panel{background:#faf7ff;border-radius:16px;margin-top:16px;padding:15px}.actual-panel>div>div,.actual-panel .row>div{min-width:0}.course.cancelled{opacity:.52;background:#edeaf0;text-decoration:line-through}.drag-ghost{z-index:1000;pointer-events:none;color:#fff;text-align:center;background:#9b79e8;border-radius:13px;min-width:65px;padding:12px 16px;position:fixed;transform:translate(-50%,-50%)rotate(-2deg);box-shadow:0 12px 25px #8364b98c}.drop-zone-active{box-shadow:0 0 0 3px #e6dbff;color:#4e2a9d!important;background:#cbb4ff!important}.undo-bar{color:#298369;background:#edf9f4;border-radius:12px;justify-content:space-between;align-items:center;margin-top:12px;padding:7px 12px;display:flex}.table-row{border-bottom:1px solid #f0ebf5;padding:13px 0}.table-row small{color:#a097af;margin-top:4px;display:block}.table-actions{justify-content:flex-end;gap:6px;margin-top:7px;display:flex}.danger-text{color:#d26280}.danger-button{background:linear-gradient(135deg,#e57997,#d35d7c)!important}.editor-grid [data-lesson]{touch-action:none;-webkit-user-select:none;user-select:none}.editor-grid .drop-conflict{z-index:3;outline:2px solid #e46c86;background:#ffdbe1!important}.editing-weekbar{z-index:5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffed;border-radius:12px;padding:8px 0;position:sticky;top:0}.editor-grid .drag-origin{opacity:.45;outline:2px dashed #9772e7}.editor-grid .drag-over{box-shadow:inset 0 0 0 2px #9f7de8;background:#e9ddff!important}#app{padding-top:14px}.top{margin-bottom:12px}.brand{font-size:21px}.pill{padding:8px 12px}.home-hero{border-radius:20px;padding:14px 17px}.home-hero:after{font-size:78px;top:-25px;right:16px}.home-hero h1{margin:0 0 5px;font-size:19px;line-height:1.3}.home-hero h1 span{font-size:14px;animation:3s ease-in-out infinite twinkle;display:inline-block}.today-hint{opacity:.92;z-index:1;white-space:nowrap;text-overflow:ellipsis;font-size:12px;position:relative;overflow:hidden}.controls{margin:10px 0;animation:.45s 50ms both up}.controls select{padding:9px 10px}.timetable-card{margin-top:10px;padding:12px}.actual-actions{margin-bottom:8px}.actual-actions:empty{display:none}.actual-actions .small,.actual-actions .primary{padding:7px 11px;font-size:12px}.weekbar{grid-template-columns:auto minmax(0,1fr) auto;gap:5px;margin-bottom:6px;display:grid}.weekbar button{white-space:nowrap;padding:7px 9px;font-size:12px}.weekbar strong{text-align:center;white-space:nowrap;letter-spacing:-.2px;font-size:clamp(11px,3.2vw,14px)}.grid{grid-template-columns:47px repeat(7,minmax(0,1fr))}.head{padding:4px 0 6px}.slot{min-height:48px}.slot.time{color:#756c86;padding:3px 1px;line-height:1.15}.period-number{color:#8064b2;margin-bottom:2px;font-size:11px;font-weight:800;display:block}.period-time{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:9px;display:block}.period-time i{color:#aaa0b7;font-size:8px;font-style:normal}.course{padding:5px 3px}.nav{padding:7px 15px calc(7px + env(safe-area-inset-bottom))}.nav button{padding:8px 23px}.edit-hint{margin:5px 0 8px}.editing-weekbar{padding:6px 0}.dragging-week [data-week-zone]{background:#e9dcff;animation:1.3s ease-in-out infinite week-invite;box-shadow:0 0 0 2px #c8b0f4}.dragging-week [data-week-zone]:after{content:"拖到这里";font-size:9px;line-height:1.3;display:block}.dragging-week .drop-zone-active{animation:none;box-shadow:0 0 0 3px #c4a6fa!important}.week-next{animation:.24s both slide-next}.week-prev{animation:.24s both slide-prev}.course{animation:.3s both course-in}@keyframes twinkle{0%,to{opacity:.7;transform:scale(.9)rotate(-12deg)}50%{opacity:1;transform:scale(1.18)rotate(12deg)}}@keyframes week-invite{0%,to{box-shadow:0 0 0 2px #d8c7f8}50%{box-shadow:0 0 0 4px #e9defb}}@keyframes slide-next{0%{opacity:.45;transform:translate(12px)}to{opacity:1;transform:none}}@keyframes slide-prev{0%{opacity:.45;transform:translate(-12px)}to{opacity:1;transform:none}}@keyframes course-in{0%{opacity:.45}to{opacity:1}}@media (width<=390px){#app{padding-inline:9px}.timetable-card{padding:10px 8px}.grid{grid-template-columns:43px repeat(7,minmax(0,1fr))}.slot{min-height:46px}.weekbar button{padding:7px 6px}.course{font-size:9px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.choice-control{width:100%;min-width:0;position:relative}.controls .choice-control{flex:1}.choice-native{opacity:0;pointer-events:none;overflow:hidden;width:1px!important;height:1px!important;padding:0!important;position:absolute!important}.choice-trigger{text-align:left;color:#403653;background:#fff;border:1px solid #e9e1f2;border-radius:13px;justify-content:space-between;align-items:center;gap:8px;width:100%;min-width:0;min-height:43px;padding:10px 12px;display:flex}.choice-trigger>span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.choice-arrow{color:#9a81c9;font-size:19px;line-height:1}.choice-trigger:focus-visible{outline-offset:1px;outline:3px solid #e1d2fb}.choice-overlay{z-index:100;padding:12px 12px calc(12px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#30244275;justify-content:center;align-items:flex-end;animation:.18s both choice-fade;display:flex;position:fixed;inset:0}.choice-sheet{background:#fff;border-radius:22px;width:min(100%,460px);max-height:min(65dvh,480px);padding:8px;animation:.22s both choice-rise;overflow:auto;box-shadow:0 16px 55px #30234540}.choice-heading{color:#9a8eaa;padding:12px 13px 9px;font-size:13px;font-weight:800}.choice-option{text-align:left;color:#554c68;background:0 0;border-radius:13px;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:13px;display:flex}.choice-option[aria-selected=true]{color:#7953c5;background:#f0eaff;font-weight:800}.choice-option:disabled{opacity:.45}.choice-option:active{background:#f7f2ff;transform:scale(.99)}.actual-actions{justify-content:flex-end}.actual-actions .primary{box-shadow:0 5px 15px #ac87e84a}#dialog-form>.row:last-child{margin-top:18px}#dialog-form>.row>input{min-width:0}#modal-content{max-height:85dvh}.controls .choice-trigger{min-height:40px;padding:8px 10px}@keyframes choice-fade{0%{opacity:0}to{opacity:1}}@keyframes choice-rise{0%{opacity:.7;transform:translateY(16px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.choice-overlay,.choice-sheet{animation:none!important}}.weekbar .week-label{color:#51416f;text-overflow:ellipsis;white-space:nowrap;background:0 0;padding:7px 2px;font-size:clamp(12px,3.5vw,15px);font-weight:800;overflow:hidden}.weekbar .week-label:active{background:#f5f0ff}.day-mark{border:1.5px solid #0000;border-radius:10px;min-width:28px;padding:3px 2px;line-height:1.3;display:inline-block}.head.today .day-mark{background:#f7f2ff;border-color:#a181e7}.head.date-flash .day-mark{animation:1.35s 2 date-glow}.slot.time{flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:3px 1px;display:flex}.period-number{color:#7b5bc5;background:#f2ebff;border-radius:7px;place-items:center;width:19px;height:19px;margin:0;display:grid}.period-time{color:#80778e;font-variant-numeric:tabular-nums;font-size:9px;line-height:1.35}.calendar-heading{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.calendar-heading strong{font-size:19px}.calendar-legend{color:#8f85a0;justify-content:center;gap:18px;margin:8px 0 14px;font-size:12px;display:flex}.calendar-legend span:before{content:"";background:#a27de9;border-radius:50%;width:7px;height:7px;margin-right:5px;display:inline-block}.calendar-legend .empty-dot:before{background:#d3ccdc}.calendar-grid{text-align:center;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.calendar-weekday{color:#aaa0b7;padding:6px 0;font-size:12px}.calendar-day{color:#7f748e;background:#f8f6fb;border-radius:13px;height:43px;font-weight:700;position:relative}.calendar-day.has-class{color:#7654c6;background:#f0e9ff}.calendar-day i{background:#cbc4d5;border-radius:50%;width:5px;height:5px;margin:3px auto 0;display:block}.calendar-day.has-class i{background:#9f79e5}.calendar-day.calendar-today{box-shadow:inset 0 0 0 2px #9d78e4}.calendar-day:disabled{color:#d7d1dd;background:0 0}.calendar-day:disabled i{display:none}.segment-card{background:#faf8fd;border:1px solid #f0eaf8;border-radius:17px;margin-top:13px;padding:13px}.segment-card .row>*{min-width:0}.segment-title{color:#695383;justify-content:space-between;align-items:center;display:flex}.segment-title .link{padding:2px}.mode-switch{background:#eee8f6;border-radius:12px;gap:4px;margin:13px 0 10px;padding:3px;display:flex}.mode-switch button{color:#887e96;background:0 0;border-radius:9px;flex:1;padding:7px}.mode-switch button.active{color:#805bc9;background:#fff;font-weight:800;box-shadow:0 2px 8px #6b578c1c}.segment-preview,.segment-note{color:#9589a3;margin-top:9px;font-size:12px;line-height:1.5}.segment-add{color:#815cca;background:#f1eaff;border-radius:13px;width:100%;margin-top:12px;padding:11px;font-weight:700}.segment-note{margin-bottom:0}@keyframes date-glow{0%,to{background:#f7f2ff;box-shadow:0 0 #b89bf666}50%{background:#e8dbff;box-shadow:0 0 0 5px #b89bf655}}@media (prefers-reduced-motion:reduce){.head.date-flash .day-mark{animation:none!important}}.choice-trigger{text-align:center;color:#624396;background:#faf7ff;border-color:#d8c8f4;justify-content:center;padding:10px 58px;font-weight:700;position:relative;box-shadow:0 3px 12px #9273c51c}.choice-trigger>span:first-child{text-align:center;max-width:100%;display:block}.choice-action{color:#704bbb;background:#e9ddfc;border-radius:8px;padding:4px 7px;font-size:11px;font-weight:800;line-height:1;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.choice-trigger:disabled{opacity:.5;cursor:not-allowed}.controls .choice-trigger{padding:8px 55px}.week-label{font-weight:700}.choice-trigger,.controls .choice-trigger{padding:10px 12px}.weekbar>button[data-week-zone]{box-shadow:none;color:#8065b4;background:0 0;padding:7px 4px;font-weight:700}.weekbar>button[data-week-zone]:hover,.weekbar>button[data-week-zone]:focus-visible{background:#f1eaff;outline:none}.weekbar>button.drop-zone-active{background:#cbb4ff!important;box-shadow:0 0 0 3px #e6dbff!important}.heading-icon{vertical-align:-.12em;color:#9870d8;width:1em;height:1em;margin-left:3px}.choice-trigger{gap:7px}.choice-trigger>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.choice-icon{color:#9270cf;flex:none;width:16px;height:16px}.choice-empty{color:#9b90aa;text-align:center;padding:18px 13px;font-size:14px}.table-row{border-bottom:1px solid #f2eef7;justify-content:space-between;align-items:center;gap:10px;padding:14px 2px;display:flex}.table-row>div:first-child{overflow-wrap:anywhere;min-width:0}.table-row strong{font-weight:600}.table-actions{flex:none;align-items:center;gap:4px;margin:0}.table-actions button{white-space:nowrap}.trash-heading{margin-top:24px}.table-details small{white-space:nowrap;font-variant-numeric:tabular-nums}.table-actions{flex-wrap:nowrap}@media (width<=480px){.table-row{grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;display:grid}.table-details{grid-column:1/-1}.table-actions{grid-column:2;justify-content:flex-end}.table-details small{white-space:normal;overflow-wrap:normal}}.login .home-hero h1{margin:0 0 5px;font-size:19px;line-height:1.3}.login .home-hero .muted,.login .home-hero>div:last-child{font-size:12px}.login{max-width:none;margin:0}.login .hero{margin-bottom:0}.login .card{margin-top:10px}.time-range{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.time-range label{margin:8px 0 6px}.time-trigger{font-variant-numeric:tabular-nums;min-height:48px}.time-add{width:100%;margin-top:10px}.time-sheet{padding:16px}.time-heading{color:#51416f;justify-content:space-between;align-items:center;display:flex}.time-columns{grid-template-columns:1fr 1fr;gap:12px;margin-top:10px;display:grid}.time-caption{text-align:center;color:#9288a7;margin-bottom:7px;font-size:12px}.time-values{overscroll-behavior:contain;background:#faf8fd;border-radius:14px;height:min(38dvh,240px);position:relative;overflow:auto}.time-value{color:#645a76;font-variant-numeric:tabular-nums;background:0 0;width:100%;padding:10px;display:block}.time-value.selected{color:#7953c5;background:#eee6ff;border-radius:11px;font-weight:800}.time-sheet .wide{margin-top:14px}.date-columns{grid-template-columns:1.2fr 1fr 1fr;gap:8px;margin-top:10px;display:grid}.date-trigger{font-variant-numeric:tabular-nums;min-height:43px}.date-clear{margin-top:8px}.date-clear+.primary{margin-top:5px}dialog:has(#calendar-content){inset:auto 12px calc(12px + env(safe-area-inset-bottom));border-radius:22px;width:calc(100% - 24px);max-width:460px;margin:0 auto;position:fixed}dialog:has(#calendar-content) #modal-content{padding:16px}.modal-footer{z-index:5;padding:12px 22px calc(12px + env(safe-area-inset-bottom));background:#fff;margin:18px -22px -22px;position:sticky;bottom:-22px;box-shadow:0 -7px 18px #55436b12}.modal-footer .wide{margin-top:0}.modal-footer .wide+.wide{margin-top:6px}dialog:has(#calendar-content) .modal-footer{margin-bottom:-16px;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;bottom:-16px}#app.refresh-quiet .hero,#app.refresh-quiet .card,#app.refresh-quiet .controls,#app.refresh-quiet .course{animation:none}
