:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#273e35;--muted:#7c897e;--accent:#287a73;--paper:#f4f3ef}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,sans-serif;font-size:15px}button,input{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline-offset:3px;outline:3px solid #4b978f}a{color:#287a73}button{color:inherit;background:0 0;border:0}img{display:block}.app-shell{max-width:1020px;margin:0 auto;padding:28px 26px 52px}.week-canvas{width:100%}.eyebrow{letter-spacing:2px;color:#6e887a;font-size:11px;font-weight:650}.week-header{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.week-header h1{letter-spacing:-2px;margin:10px 0 5px;font-size:38px}.week-header p{color:var(--muted);margin:0;font-size:13px}.week-navigation{align-items:center;gap:6px;display:flex}.week-navigation button{border-radius:12px;min-width:44px;min-height:44px;font-size:28px}.week-navigation .return-week{font-size:13px}.child-filters{flex-wrap:wrap;gap:8px;margin:20px 0 24px;display:flex}.child-filters button{color:#748275;border:1px solid #0000;border-radius:14px;align-items:center;gap:8px;min-height:44px;padding:5px 12px;font-size:13px;display:flex}.child-filters button.selected{color:#29695f;background:#e6eee5;border-color:#9bbbad}.child-filters img{border-radius:9px;width:30px;height:30px}.timeline-scale{height:22px;margin-bottom:4px;margin-left:42px;position:relative}.timeline-scale span{color:#8c998d;font-size:10px;position:absolute;transform:translate(-50%)}.day-row{gap:12px;margin-bottom:8px;display:flex}.date-col{flex-direction:column;flex-shrink:0;align-self:flex-start;align-items:center;gap:5px;width:30px;min-height:58px;padding:4px 0;display:flex}.today .date-col strong{color:#fff;background:#287a73;border-radius:10px;padding:4px 5px}.day-track{flex:1;min-width:0;position:relative}.daylight-band{border-radius:13px;width:100%;height:58px;box-shadow:inset 0 0 0 1px #dfded580}.weather-point{color:#486153;white-space:nowrap;background:#ffffffd4;border-radius:8px;align-items:center;gap:3px;padding:2px 6px;font-size:11px;display:flex;position:absolute;top:12px;transform:translate(-50%)}.weather-point img{width:23px;height:23px}.daily-summary{background:#ffffffd4;border-radius:8px;align-items:center;gap:5px;padding:2px 7px;font-size:12px;display:flex;position:absolute;top:13px;left:10px}.daily-summary img{width:23px;height:23px}.daily-summary span{color:#879485;font-size:10px}.now-marker{z-index:3;background:#b5624f;width:2px;height:60px;position:absolute;top:0}.duration-marker{z-index:4;background:#397e77;border-radius:4px;height:5px;position:absolute}.duration-marker.changed{background:#b3874e}.duration-marker.makeup{background:#568a78}.duration-marker.cancelled,.duration-marker.ghost{background:#a4aba3}.connector{z-index:0;border-left:1px dashed #aba;position:absolute}.course-card{cursor:pointer;background:#fff;border:1px solid #dce6dc;border-radius:13px;min-height:126px;padding:9px 8px 5px;position:absolute;overflow:hidden;box-shadow:0 3px 8px #24452410}.course-title{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:650;line-height:19px;overflow:hidden}.course-time{color:#798778;margin-top:3px;font-size:10px;line-height:14px}.course-status{color:#9c722f;font-size:10px;line-height:13px}.course-card.changed{border-color:#bb975e}.course-card.makeup{border-color:#7ea695}.course-card.cancelled{color:#7b8575;background:#edeee9;border-style:dashed}.course-card.cancelled .course-title{text-decoration:line-through}.course-card.cancelled .course-status{color:#74806d}.course-card.ghost{opacity:.76;border-style:dashed}.children-row{align-items:center;height:44px;display:flex;overflow:hidden}.avatar-button{border-radius:9px;justify-content:center;align-items:center;width:44px;min-width:44px;height:44px;padding:0;display:inline-flex}.avatar-button img{border-radius:8px;width:26px;height:26px}.avatar-button.tiny{width:32px;min-width:32px}.transport-row{color:#7b8778;align-items:center;gap:0;height:44px;font-size:10px;display:flex}.mini-weather{white-space:nowrap;align-items:center;margin-left:auto;font-size:10px;display:flex}.mini-weather img{width:20px;height:20px}.more-children{color:#748573;font-size:10px}.conflict-dot{color:#925b28;background:#f1dfc8;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;margin-left:5px;font-size:11px;display:inline-flex}.week-footer{color:#87917c;margin:24px 0 0 42px;font-size:12px;line-height:1.9}.week-footer a{text-underline-offset:3px;text-decoration:underline}.muted{color:var(--muted);line-height:1.8}.warning{color:#a16b36}.demo-notice{color:#857756;background:#ebe8dc;border-radius:12px;margin-bottom:25px;padding:10px 14px;font-size:12px;line-height:1.5}.modal-scrim{z-index:50;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#21332976;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.detail-dialog{background:#fffdfa;border-radius:25px;width:440px;max-width:100%;max-height:85vh;padding:28px;position:relative;overflow:auto;box-shadow:0 20px 90px #10291850}.dialog-close{min-width:44px;min-height:44px;font-size:27px;position:absolute;top:9px;right:12px}.detail-dialog h2{margin:13px 0;font-size:26px}.profile-portrait{border-radius:23px;width:94px;height:94px;margin:15px auto}.detail-time{color:#4f6a59;font-weight:550}.detail-people{align-items:center;gap:10px;margin:18px 0;display:flex}.detail-people>span{color:#7e8c7d;flex-direction:column;align-items:center;font-size:11px;display:flex}.detail-transport{flex-wrap:wrap;align-items:center;gap:7px;font-size:12px;display:flex}.weather-detail{align-items:center;display:flex}.weather-detail img{width:45px;height:45px;margin-right:12px}.landing{max-width:880px;margin:auto;padding:70px 28px}.landing h1{letter-spacing:-2px;margin:24px 0;font-size:clamp(34px,6vw,58px);line-height:1.3}.landing p{max-width:520px;line-height:1.8}.landing-actions{flex-wrap:wrap;gap:14px;margin:35px 0;display:flex}.primary-link,.secondary-link{color:#fff;background:#287a73;border:0;border-radius:13px;justify-content:center;align-items:center;min-height:48px;padding:15px 22px;font-size:14px;text-decoration:none;display:inline-flex}.secondary-link{color:#397367;background:#e7eee6}.sample-bands{gap:15px;max-width:600px;margin-top:42px;display:grid}.sample-bands i{background:linear-gradient(90deg,#38455f,#eed9b8 8%,#fffdf6 17% 66%,#dcab89 75%,#2b3953 90%);border-radius:11px;height:38px}.sample-bands i:nth-child(2n){opacity:.7}.login-panel{background:#fff;border:1px solid #e2e8df;border-radius:24px;max-width:440px;margin:70px auto;padding:30px}.login-panel h1{font-size:26px}.login-panel form{flex-direction:column;gap:15px;margin:25px 0;display:flex}.login-panel label{color:#6d826f;font-size:12px}.login-panel input{background:#f7f8f4;border:1px solid #dbe5d8;border-radius:12px;width:100%;padding:14px}.web-toolbar{color:#839080;justify-content:space-between;align-items:center;margin-bottom:18px;font-size:12px;display:flex}.web-toolbar button{min-width:55px;min-height:44px}.error-banner{color:#91572e;background:#f6e4d5;border:1px solid #e8c6b4;border-radius:12px;margin:20px 0;padding:15px 20px;font-size:13px;line-height:1.7}@media (max-width:600px){.app-shell{padding:23px 18px 40px}.week-header h1{font-size:33px}.week-header{margin-bottom:14px}.week-navigation{gap:0}.child-filters{margin-bottom:18px}.detail-dialog{padding:24px}.week-footer{margin-top:16px}.landing{padding-top:42px}}.timeline-scale span:last-child{transform:translate(-100%)}.timeline-scale span:first-child{transform:translate(0)}.editor-holder{z-index:3;width:44px;height:44px;position:absolute;top:0;right:0}.editor-holder .avatar-button{width:44px;height:44px}.editor-holder .avatar-button img{width:18px;height:18px}.festival-label{color:#927144;margin-top:5px;font-size:10px;line-height:1.3;display:block}.rest-badge{color:#617c70;font-size:10px;display:block}.calendar-detail{white-space:pre-line;line-height:1.8}.calendar-settings{background:#fff;border:1px solid #e4e8e2;border-radius:20px;max-width:650px;margin:20px auto;padding:20px}.calendar-settings p{line-height:1.7}.calendar-settings form{flex-direction:column;gap:16px;display:flex}.calendar-settings label:not(.checkbox-label){flex-direction:column;gap:8px;display:flex}.calendar-settings input:not([type=checkbox]),.calendar-settings select{background:#f7f8f5;border:1px solid #dce3dc;border-radius:10px;width:100%;min-height:44px;padding:10px}.calendar-settings .checkbox-label{align-items:center;gap:10px;min-height:44px;line-height:1.5;display:flex}.calendar-settings input[type=checkbox]{flex-shrink:0;width:20px;height:20px}.calendar-settings button{color:#28675f;background:#eaf1eb;border:0;border-radius:10px;min-height:44px;padding:10px 16px}.calendar-settings button:disabled{opacity:.45}.calendar-actions{flex-wrap:wrap;gap:10px;display:flex}.subscription-row{border-top:1px solid #e5e8e2;padding:18px 0}.issued-calendar{background:#eef7f0;border-radius:14px;margin:20px 0;padding:16px}.issued-calendar input{margin:12px 0}body{color:#242d38;--muted:#7a8491;background:radial-gradient(at 100% 0,#d8e2ef 0,#0000 48%),radial-gradient(at 0 45%,#e8e2db80 0,#0000 55%),linear-gradient(160deg,#f7f8fa,#edf0f4)}.app-shell{max-width:860px}.eyebrow{color:#718091}.week-header h1{letter-spacing:-1.5px}.week-navigation{-webkit-backdrop-filter:blur(10px);background:linear-gradient(150deg,#ffffffed 0,#ffffff72 48%,#e7edf4a6 100%);border:1px solid #fffffff2;border-radius:28px;box-shadow:inset 0 1px #fff,inset 0 -1px 1px #7e95ad30,0 5px 16px #31465e12}.week-navigation button{color:#4b6076}.child-filters button{color:#697788;background:#ffffff24;border:1px solid #0000;border-radius:24px}.child-filters button.selected{color:#304f70;background:linear-gradient(150deg,#ffffffed 0,#ffffff72 48%,#e7edf4a6 100%);border-color:#fff;box-shadow:inset 0 1px #fff,0 3px 12px #31465e12}.child-filters img{border-radius:50%}.range-note{color:#576676;margin:16px 0;font-size:12px;line-height:18px}.scroll-hint{color:#768494;white-space:nowrap;font-size:10px}.timeline-scale{height:22px;margin-left:52px}.timeline-scale span{color:#7a8491;font-size:10px}.week-board{overflow-x:auto}.day-row{box-shadow:none;background:0 0;border:0;gap:8px;margin-bottom:2px}.week-board .date-col{z-index:5;background:#f0f2f5;border-radius:0;gap:3px;width:44px;min-height:54px;padding-top:9px;position:sticky;left:0}.date-col strong{color:#28313d;font-size:24px;font-weight:500}.date-col span{color:#7a8491;font-size:10px}.today .date-col strong{text-align:center;background:#3f668b;border-radius:50%;width:32px;height:32px;padding:0;line-height:32px}.festival-label{text-align:center;color:#826c50;font-size:10px}.day-content{flex:1;min-width:0}.day-track{box-sizing:border-box;box-shadow:none;background:0 0;border:0;border-bottom:1px solid #68788d1a;border-radius:0;position:relative;overflow:hidden}.grid-line{pointer-events:none;background:#68788d0b;width:1px;position:absolute;top:0;bottom:0}.now-line{z-index:1;background:#c17768;width:1px;position:absolute;top:0;bottom:0}.course-interval{box-sizing:border-box;background:#d9e5f0b3;border:0;border-left:2px solid #6689aa;border-radius:0 5px 5px 0;position:absolute}.course-interval.changed{background:#eee3d0a6;border-left-color:#ad8851}.course-interval.makeup{background:#dce9e2b3;border-left-color:#659079}.course-interval.cancelled,.course-interval.ghost{background:#e4e7eb70;border-left:2px dashed #9ba5b1}.course-inline{box-sizing:border-box;color:#283e54;z-index:2;padding:5px 5px 3px 6px;position:absolute;overflow:hidden}.course-marks{align-items:center;gap:3px;min-height:16px;margin-top:2px;display:flex}.homework-icon{font-size:12px;line-height:16px}.change-badge{color:#78592b;background:#dfc99b4d;border-radius:3px;padding:0 3px;font-size:10px;line-height:15px}.change-badge.cancelled,.change-badge.ghost{color:#626d7b;background:#cdd3db50}.change-badge.makeup{color:#38654c;background:#c2dacc60}.course-inline{cursor:pointer}.course-inline .course-title{word-break:break-all;-webkit-line-clamp:2;white-space:normal;-webkit-box-orient:vertical;margin:0;font-size:13px;font-weight:600;line-height:17px;display:-webkit-box;overflow:hidden}.course-inline.cancelled .course-title{color:#78818b;text-decoration:line-through}.course-inline.ghost .course-title{color:#78818b}.no-course{color:#8a929c;font-size:11px;position:absolute;top:20px;left:6px}.weather-list{flex-wrap:wrap;gap:10px;display:flex}.weather-summary{color:#647087;align-items:center;margin-top:4px;font-size:11px;display:flex}.weather-summary img{width:20px;height:20px}.week-footer{margin-left:0}.weather-source-note{color:#7a8491;font-size:11px}.weather-source-note a{color:inherit}@media (max-width:600px){.app-shell{padding:24px 12px 40px}.week-header h1{font-size:34px}.child-filters{margin:16px 0}.demo-notice{margin-bottom:18px}}@media (prefers-reduced-transparency:reduce),(prefers-contrast:more){.week-navigation,.child-filters button.selected{-webkit-backdrop-filter:none;background:#fff;border-color:#8a9bad}.course-interval{background:#d9e5f0}.day-track{border-bottom-color:#8a9bad}}.week-summary{justify-content:space-between;gap:8px;margin:20px 0 4px;display:flex}.week-summary>span{color:#697788;align-items:baseline;gap:4px;font-size:11px;display:flex}.week-summary strong{color:#30465d;font-size:24px;font-weight:600}.summary-caption{color:#7a8491;margin:0 0 16px;font-size:10px}.zoom-controls{align-items:center;gap:4px;margin:0 0 4px;display:flex}.zoom-controls button{white-space:nowrap;color:#697788;border:1px solid #0000;border-radius:20px;flex:1;min-width:0;min-height:44px;padding:0 14px;font-size:12px}.zoom-controls button[aria-pressed=true]{color:#304f70;background:#ffffffbd;box-shadow:inset 0 1px #fff,0 2px 8px #31465e10}.zoom-caption{color:#7a8491;margin:0 0 14px;font-size:10px;line-height:16px}.overview .course-inline{padding:4px 1px 2px 3px}.overview .course-inline .course-title{font-size:10px;line-height:14px}.overview .course-marks{flex-wrap:wrap;gap:1px}.overview .homework-icon{font-size:10px}.overview .change-badge{padding:0 1px;font-size:9px}.weather-source-note{margin-top:18px}.overview .course-inline .course-title{-webkit-line-clamp:1}.overview .course-marks{min-height:12px;margin-top:0}.overview .date-col strong{font-size:19px}.overview .date-col{min-height:36px;padding-top:3px}.view-controls{gap:4px;margin:12px 0 18px;display:flex}.view-controls button{white-space:nowrap;color:#718091;border:1px solid #0000;border-radius:24px;flex:1;min-width:0;min-height:44px;padding:0 18px;font-size:13px}.view-controls button[aria-pressed=true]{color:#304f70;background:#fffc;border-color:#fff;box-shadow:0 3px 12px #31465e0e}.agenda-board{overflow:visible}.agenda-board .day-row{margin-bottom:8px}.agenda-board .date-col{background:0 0;padding-top:12px;position:static}.agenda-board .day-track{padding:2px 0 10px;overflow:visible}.agenda-board .course-inline{align-items:center;gap:8px;min-height:48px;padding:9px 0;display:flex;position:relative}.agenda-time{font-variant-numeric:tabular-nums;color:#718091;letter-spacing:-.3px;flex-shrink:0;width:72px;font-size:11px}.agenda-main{flex:1;min-width:0}.agenda-board .course-title{word-break:break-word;font-size:14px;line-height:20px;display:block;overflow:visible}.agenda-board .course-marks{flex-shrink:0;gap:4px;margin:0}.agenda-move{color:#7a8491;margin-top:3px;font-size:10px;display:block}.agenda-board .no-course{padding:15px 0;font-size:12px;position:static}.agenda-board .weather-list{margin-bottom:8px}.homework-alert{text-align:left;color:#79592c;background:#fff5e4c9;border:1px solid #ead9b7;border-radius:16px;flex-direction:column;gap:7px;width:100%;margin:14px 0 18px;padding:14px 16px;font-size:13px;display:flex}.homework-alert strong{width:100%}.homework-alert strong span{float:right;font-weight:400}.homework-alert small{color:#8c785b}.reminder-row{color:#8b642b;border-bottom:1px solid #ead9b7;padding:14px 0}.homework-alert>span,.homework-alert>small{white-space:nowrap;text-overflow:ellipsis;width:100%;line-height:20px;display:block;overflow:hidden}.homework-alert>strong{white-space:nowrap;line-height:20px}.week-summary>span{white-space:nowrap}
