@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-latin-wght-normal-DHIcAJRg.woff2)format("woff2")}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-standard-normal-Bf69Tn_J.woff2)format("woff2")}:root{color:#18313d;font-synthesis:none;--ink:#18313d;--muted:#73828b;--teal:#147d70;--border:#e3e9ea;--navy:#112b36;background:#f3f6f6;font-family:DM Sans Variable,sans-serif;font-weight:400}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline-offset:3px;outline:3px solid #219b8c}button:disabled:not(.chosen){opacity:.5}button,a,input{touch-action:manipulation}button{border:0}a{color:inherit;text-decoration:none}input{min-width:0}svg{flex-shrink:0}h1,h2,h3,p{margin:0}.site-header{border-bottom:1px solid var(--border);background:#fff;height:78px}.header-inner{align-items:center;gap:24px;max-width:1500px;height:100%;margin:auto;padding:0 48px;display:flex}.brand{letter-spacing:-1.2px;align-items:center;gap:10px;font-family:Manrope Variable,sans-serif;font-size:27px;font-weight:800;display:flex}.brand-icon{background:var(--navy);color:#83e3cb;border-radius:11px;place-items:center;width:38px;height:38px;display:grid}.brand-dot{color:#19927d}.header-divider{background:#dce4e5;width:1px;height:23px}.header-context{color:#6d7a82;font-size:14px}.header-right{align-items:center;gap:17px;margin-left:auto;display:flex}.academic-period{color:#455d68;align-items:center;gap:8px;font-size:14px;font-weight:550;display:flex}.icon-button{color:#72828b;background:0 0;border-radius:8px;place-items:center;width:34px;height:34px;display:grid}.icon-button:hover{color:var(--ink);background:#edf2f2}.page-wrap{max-width:1500px;margin:0 auto;padding:38px 48px 0}.page-heading{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:30px;display:flex}.eyebrow{letter-spacing:1.6px;color:#7b8a91;margin-bottom:8px;font-size:12px;font-weight:700}h1{letter-spacing:-1.15px;font-family:Manrope Variable,sans-serif;font-size:32px;font-weight:750;line-height:1.3}.heading-dot{color:#188775}.page-heading p{color:#79858e;margin-top:9px;font-size:15px;line-height:1.5}.source-note{text-align:right;color:#4d6470;padding-bottom:2px;font-size:13px;line-height:1.7}.source-note small{color:#87939a;font-size:12px;display:block}.workspace{grid-template-columns:326px minmax(0,1fr);align-items:stretch;gap:24px;display:grid}.subjects-panel{border:1px solid var(--border);background:#fff;border-radius:14px;overflow:hidden}.panel-top{justify-content:space-between;align-items:center;padding:23px 20px 19px;display:flex}.panel-title{align-items:center;gap:10px;display:flex}.panel-title svg{color:#5c737e}.panel-title h2{letter-spacing:-.35px;font-family:Manrope Variable,sans-serif;font-size:16px;font-weight:750}.step-label{color:#a8b5bb;letter-spacing:1px;font-size:12px}.subject-controls{padding:0 18px}.search-field{color:#8b9aa1;background:#f7f9f9;border:1px solid #e5ebec;border-radius:8px;align-items:center;gap:9px;height:44px;padding:0 12px;display:flex}.search-field:focus-within{border-color:#5caa9b;box-shadow:0 0 0 3px #147d7010}.search-field input{width:100%;color:var(--ink);background:0 0;border:0;outline:0;font-size:13px}.search-field input::placeholder{color:#8b989e}.search-field button{color:#87969b;background:0 0;place-items:center;padding:0;display:grid}.year-label{letter-spacing:1.15px;color:#8b989e;margin:24px 0 9px;font-size:11px;font-weight:700}.level-tabs{background:#f1f5f5;border-radius:8px;gap:5px;padding:4px;display:flex}.level-tabs button{white-space:nowrap;color:#7a898f;background:0 0;border-radius:6px;flex:1;padding:8px 3px;font-size:14px;font-weight:650}.level-tabs button span{font-size:12px;font-weight:450}.level-tabs button.active{background:var(--navy);color:#fff;box-shadow:0 2px 4px #112b361a}.level-tabs button:hover:not(.active){color:var(--ink);background:#e6eded}.list-caption{color:#84939b;justify-content:space-between;align-items:center;margin:22px 2px 12px;font-size:12px;display:flex}.list-caption svg{color:#9cabb1}.subject-list{padding:0 12px 10px}.subject-card{background:#fff;border:1px solid #0000;border-radius:9px;margin:3px 0 7px;overflow:hidden}.subject-card.is-picked{background:#f4faf8;border-color:#e0eee7}.subject-card.is-open{background:#fff;border-color:#cbded9}.subject-toggle{text-align:left;background:0 0;border-radius:8px;align-items:center;gap:11px;width:100%;padding:13px 10px;display:flex}.subject-toggle:hover{background:#f4f7f7}.subject-symbol{color:#93a2a8;background:#f1f5f5;border-radius:8px;flex-shrink:0;place-items:center;width:32px;height:32px;display:grid}.is-picked .subject-symbol{background:var(--subject-bg);color:var(--subject-color)}.subject-card-info{flex:1;min-width:0}.subject-card-info strong{font-size:14px;font-weight:550;line-height:1.4;display:block}.subject-card-info>span{color:#97a2a7;margin-top:4px;font-size:12px;display:block}.is-picked .subject-card-info>span{color:#578874}.subject-chevron{color:#acb8bd;transition:transform .15s}.is-open .subject-chevron{transform:rotate(180deg)}.group-browser{border-top:1px solid #edf1f0;padding:0 10px 12px}.group-search{color:#83939b;border:1px solid #e4ebeb;border-radius:6px;align-items:center;gap:7px;margin:12px 0 8px;padding:9px;display:flex}.group-search input{background:0 0;border:0;outline:0;width:100%;font-size:13px}.available-filter{color:#6b8088;cursor:pointer;align-items:center;gap:7px;margin:12px 0;font-size:12px;display:flex}.available-filter input{accent-color:var(--teal);width:15px;height:15px;margin:0}.group-list{scrollbar-width:thin;scrollbar-color:#ccdcd8 transparent;max-height:465px;padding-right:3px;overflow:auto}.group-option{border:1px solid #e2e9e8;border-radius:8px;margin-bottom:10px;padding:12px}.group-active{background:#f4fbf8;border-color:#97c9b8}.group-option-top{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.group-option-top strong{font-size:14px;font-weight:650}.group-status{color:#2e8165;align-items:center;gap:3px;font-size:11px;display:flex}.available-status{color:#899b91}.conflict-status{color:#bd584a}.teacher-name{color:#71848b;align-items:flex-start;gap:6px;margin-bottom:12px;font-size:12px;line-height:1.45;display:flex}.teacher-name svg{color:#8c9ba1;margin-top:2px}.group-sessions{flex-direction:column;gap:6px;display:flex}.group-sessions>div{color:#5b727d;align-items:center;gap:7px;font-size:12px;display:flex}.day-chip{color:#6e858e;text-align:center;background:#eff3f3;border-radius:4px;min-width:33px;padding:3px 6px;font-size:11px;display:inline-block}.room-chip{color:#8a9aa1;margin-left:auto;font-size:11px}.conflict-explanation{color:#b65d4f;margin-top:10px;font-size:12px;line-height:1.5}.group-actions{justify-content:space-between;align-items:center;gap:5px;margin-top:13px;display:flex}.preview-button{color:#718790;text-underline-offset:3px;background:0 0;padding:6px 0;font-size:11px;-webkit-text-decoration:underline #c9d5d9;text-decoration:underline #c9d5d9}.preview-button:hover{color:#0d7767}.choose-button{background:var(--navy);color:#fff;border-radius:5px;justify-content:center;align-items:center;gap:5px;min-height:32px;padding:7px 10px;font-size:12px;font-weight:600;display:flex}.choose-button.chosen{color:#267655;background:#e1f2e9}.group-conflict .choose-button{color:#7b8c93;background:#e9eeee}.sidebar-note{border-top:1px solid var(--border);color:#8a999f;background:#fafcfc;align-items:flex-start;gap:7px;padding:17px 20px;font-size:12px;line-height:1.55;display:flex}.sidebar-note svg{margin-top:1px}.search-empty{text-align:center;color:#789098;flex-direction:column;align-items:center;gap:10px;padding:35px 14px;display:flex}.search-empty strong{color:#445e6a;font-size:14px}.search-empty p,.group-empty{color:#87979e;font-size:13px;line-height:1.6}.group-empty{text-align:center;padding:16px 7px}.schedule-panel{border:1px solid var(--border);background:#fff;border-radius:14px;min-width:0;overflow:hidden;box-shadow:0 3px 15px #213e4a03}.schedule-toolbar{justify-content:space-between;align-items:center;gap:15px;padding:22px 23px 17px;display:flex}.schedule-title .panel-title{gap:8px}.schedule-title .panel-title h2{font-size:18px}.schedule-subtitle{color:#92a0a7;margin-top:6px;font-size:12px;display:block}.schedule-subtitle span{color:#b1bdc2;margin:0 6px}.view-toggle{background:#f2f5f5;border-radius:8px;gap:3px;padding:4px;display:flex}.view-toggle button{color:#87969d;background:0 0;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:12px;display:flex}.view-toggle button.active{color:#3e5967;background:#fff;box-shadow:0 1px 4px #26455012}.view-toggle button:hover:not(.active){color:var(--ink)}.schedule-status-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:0 23px 16px;display:flex}.valid-schedule{color:#439274;align-items:center;gap:6px;font-size:12px;display:flex}.clear-button{color:#97a4ac;background:0 0;align-items:center;gap:5px;padding:4px 0;font-size:12px;display:flex}.clear-button:hover:not(:disabled){color:#a85850}.example-banner{color:#7e919d;background:#f8fafb;border-bottom:1px solid #e8edef;justify-content:space-between;align-items:center;gap:10px;padding:11px 22px;font-size:12px;display:flex}.example-banner>span{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.example-detail{color:#9ba8af}.example-banner button{white-space:nowrap;color:#486b79;text-underline-offset:3px;background:0 0;font-size:12px;font-weight:550;-webkit-text-decoration:underline #b9cbd2;text-decoration:underline #b9cbd2}.preview-banner{color:#237c64;background:#e7f5f1;border-bottom:1px solid #c7e8dd;justify-content:space-between;align-items:center;gap:10px;padding:9px 16px;font-size:12px;display:flex}.preview-banner>span{align-items:center;gap:7px;display:flex}.calendar-shell{margin:0 17px 0 7px;position:relative}.calendar-head{grid-template-columns:54px repeat(6,minmax(0,1fr));align-items:center;height:68px;display:grid}.timezone-label{color:#a6b1b7;text-align:center;letter-spacing:.5px;font-size:9px;font-weight:650}.calendar-day{text-align:center;line-height:1.5}.calendar-day>span{color:#637a86;font-size:13px;font-weight:650}.calendar-day small{color:#b0bcc2;font-size:10px;display:block}.timeline{height:var(--timeline-height);grid-template-columns:54px repeat(6,minmax(0,1fr));margin-bottom:17px;display:grid;position:relative}.time-column{position:relative}.time-label{color:#98a7af;z-index:2;font-variant-numeric:tabular-nums;background:#fff;padding:2px 0;font-size:10px;position:absolute;right:11px;transform:translateY(-50%)}.day-column{background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--row-height) - 1px),#e9eeef calc(var(--row-height) - 1px),#e9eeef var(--row-height));border-top:1px solid #e4ebee;border-bottom:1px solid #e4ebee;border-left:1px solid #e9eeef;position:relative}.day-column:last-child{border-right:1px solid #e9eeef}.day-column:nth-child(odd){background-color:#fdfefe}.calendar-event{text-align:left;border-left:3px solid var(--subject-border);background:var(--subject-bg);color:var(--subject-color);border-radius:5px;flex-direction:column;padding:7px 7px 5px;transition:box-shadow .15s,filter .15s;display:flex;position:absolute;left:4px;right:4px;overflow:hidden}.calendar-event:hover{filter:saturate(1.12);z-index:3;box-shadow:0 3px 10px #15343c20}.calendar-event:focus-visible{z-index:4}.event-name{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:3px;font-size:12px;font-weight:650;line-height:1.3;display:-webkit-box;overflow:hidden}.event-time{white-space:nowrap;opacity:.88;font-variant-numeric:tabular-nums;font-size:10px;font-weight:450;line-height:1.4}.event-meta{opacity:.8;justify-content:space-between;align-items:center;margin-top:auto;font-size:10px;line-height:1.3;display:flex}.event-preview{border:1px dashed var(--subject-color);border-left:3px solid var(--subject-color);opacity:.9;z-index:5;box-shadow:0 2px 12px #19483f1a}.calendar-empty{text-align:center;pointer-events:none;position:absolute;top:210px;left:70px;right:10px}.empty-icon{color:#4a9986;background:#eaf4f1;border-radius:18px;place-items:center;width:63px;height:63px;margin:0 auto 17px;display:grid}.calendar-empty h3{letter-spacing:-.45px;color:#3c626b;font-family:Manrope Variable,sans-serif;font-size:19px}.calendar-empty p{color:#91a2a9;max-width:300px;margin:8px auto;font-size:14px;line-height:1.6}.calendar-empty button{pointer-events:auto;margin:15px auto 0}.schedule-bottom{border-top:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:15px;padding:17px 22px 20px;display:flex}.block-duration{white-space:nowrap;color:#a3afb5;align-items:center;gap:4px;padding-top:1px;font-size:10px;display:flex}.selection-summary{background:var(--navy);color:#fff;border-radius:13px;justify-content:space-between;align-items:center;gap:24px;margin-top:24px;padding:23px 30px;display:flex}.summary-intro{align-items:center;gap:14px;display:flex}.summary-icon{color:#91d9c9;border:1px solid #ffffff20;border-radius:11px;place-items:center;width:42px;height:42px;display:grid}.summary-intro strong{font-size:14px;font-weight:550;line-height:1.5;display:block}.summary-intro>div>span{color:#8faab5;margin-top:3px;font-size:12px;display:block}.summary-stats{gap:48px;display:flex}.summary-stats>div{min-width:65px}.summary-stats strong{letter-spacing:-.8px;color:#c4f3e6;font-family:Manrope Variable,sans-serif;font-size:26px;font-weight:650;line-height:1.25;display:block}.summary-stats span{color:#8da8b3;margin-top:3px;font-size:11px;display:block}.page-footer{color:#97a6af;justify-content:space-between;gap:15px;padding:21px 2px 24px;font-size:11px;display:flex}.agenda-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;padding:24px;display:grid}.agenda-day{border:1px solid #e5eded;border-radius:10px;min-width:0;overflow:hidden}.agenda-day-head{background:#f9fbfb;border-bottom:1px solid #e7eeee;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;display:flex}.agenda-day-head h3{font-size:14px;font-weight:650}.agenda-day-head>span{color:#90a0a7;font-size:11px}.agenda-entry{text-align:left;background:#fff;border-bottom:1px solid #eff3f3;align-items:flex-start;gap:12px;width:100%;padding:17px 13px;display:flex}.agenda-entry:last-child{border-bottom:0}.agenda-entry:hover{background:#f8fbfa}.agenda-time{font-variant-numeric:tabular-nums;min-width:41px;padding-top:1px;font-size:13px;font-weight:600;line-height:1.5}.agenda-time small{color:#a0aeb4;font-size:11px;font-weight:400;display:block}.agenda-entry-content{border-left:3px solid var(--subject-border);min-width:0;padding-left:12px}.agenda-entry-content strong{color:var(--subject-color);font-size:14px;font-weight:550;line-height:1.5;display:block}.agenda-entry-content>span{color:#78909b;margin-top:4px;font-size:12px;line-height:1.5;display:block}.agenda-entry-content>small{color:#9aabb1;margin-top:5px;font-size:11px;line-height:1.5;display:block}.meta-divider{color:#aebec4;margin:0 4px}.free-day{color:#a6b5ba;justify-content:center;align-items:center;gap:9px;padding:33px 15px;font-size:13px;display:flex}.mobile-navigation,.mobile-schedule-view,.mobile-only,.mobile-day-picker{display:none}.toast{color:#fff;z-index:40;opacity:0;pointer-events:none;background:#173b43;border-radius:10px;align-items:center;gap:9px;max-width:calc(100vw - 32px);padding:13px 18px;font-size:13px;line-height:1.5;transition:opacity .2s,transform .2s;display:flex;position:fixed;bottom:27px;left:50%;transform:translate(-50%,15px);box-shadow:0 5px 20px #173b4330}.toast-visible{opacity:1;pointer-events:auto;transform:translate(-50%)}.toast svg{color:#9ce0c9}.details-dialog{width:calc(100% - 32px);max-width:480px;color:var(--ink);border:1px solid #dfe8e7;border-radius:17px;max-height:calc(100dvh - 50px);padding:0;box-shadow:0 20px 70px #0e2c3630}.details-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#102c3b65}.dialog-content{padding:25px 28px 28px}.dialog-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;display:flex}.dialog-eyebrow{letter-spacing:1px;color:#8c9da3;font-size:11px;font-weight:600;line-height:1.5}.dialog-eyebrow span{margin:0 7px}.dialog-subject-icon{background:var(--subject-bg);width:55px;height:55px;color:var(--subject-color);border-radius:13px;place-items:center;margin-bottom:18px;display:grid}.dialog-content h2{letter-spacing:-.8px;font-family:Manrope Variable,sans-serif;font-size:24px;font-weight:750;line-height:1.35}.dialog-description{color:#8a9da5;margin-top:8px;margin-bottom:24px;font-size:14px}.detail-sessions{gap:12px;display:grid}.detail-session{border:1px solid #e1eae8;border-radius:10px;flex-direction:column;gap:9px;padding:16px;font-size:14px;line-height:1.5;display:flex}.detail-session strong{color:var(--subject-color);font-size:15px;font-weight:650}.detail-session span{color:#718992;align-items:flex-start;gap:9px;display:flex}.detail-session svg{color:#9ab2b6;margin-top:2px}.dialog-actions{border-top:1px solid #edf2f1;justify-content:space-between;align-items:center;gap:10px;margin-top:25px;padding-top:19px;display:flex}.dialog-selected{color:#6a9686;align-items:center;gap:5px;font-size:13px;display:flex}.remove-button{color:#b56855;background:#fbefeb;border-radius:6px;align-items:center;gap:6px;min-height:38px;padding:9px 12px;font-size:13px;display:flex}.primary-button{background:var(--navy);color:#fff;border-radius:7px;justify-content:center;align-items:center;gap:7px;padding:11px 16px;font-size:14px;font-weight:550;display:flex}@media (width>=1600px){.workspace{grid-template-columns:350px minmax(0,1fr)}.event-name{font-size:14px}.event-time,.event-meta{font-size:11px}}@media (width<=1200px){.header-inner{padding:0 30px}.page-wrap{padding:30px 30px 0}.workspace{grid-template-columns:300px minmax(0,1fr);gap:18px}.page-heading h1{font-size:29px}.calendar-shell{margin-left:0;margin-right:10px}.calendar-head,.timeline{grid-template-columns:46px repeat(6,minmax(0,1fr))}.calendar-event{padding:6px 5px 4px;left:3px;right:3px}.event-name{font-size:11px}.event-time,.event-meta{font-size:9px}.schedule-bottom{flex-direction:column}.summary-stats{gap:30px}}@media (width<=980px) and (width>=761px){.header-inner{padding:0 20px}.header-context{display:none}.page-wrap{padding:28px 20px 0}.workspace{grid-template-columns:280px minmax(0,1fr);gap:14px}.calendar-event{padding:5px 3px}.event-name{font-size:10px;line-height:1.3}.event-time{font-size:8px}.event-meta{font-size:9px}.calendar-day>span{font-size:11px}.schedule-toolbar{padding:18px 15px}.view-toggle button{padding:7px 8px}.schedule-status-row{padding:0 15px 14px}.example-detail{display:none}.agenda-grid{grid-template-columns:1fr;padding:16px}.summary-intro>div>span{max-width:190px}.summary-stats{gap:22px}}@media (width<=760px){body{background:#f5f8f8;padding-bottom:78px}.site-header{height:65px}.header-inner{gap:12px;padding:0 20px}.brand{gap:8px;font-size:24px}.brand-icon{border-radius:9px;width:33px;height:33px}.brand-icon svg{width:20px}.header-context,.header-divider{display:none}.header-right{gap:10px}.academic-period{gap:5px;font-size:12px}.academic-period svg{width:15px}.page-wrap{padding:27px 18px 0}.page-heading{margin-bottom:25px;display:block}.eyebrow{letter-spacing:1.4px;margin-bottom:8px;font-size:10px}.page-heading h1{letter-spacing:-1px;font-size:26px;line-height:1.3}.page-heading p{margin-top:7px;font-size:14px}.source-note{display:none}.workspace{display:block}.subjects-panel,.schedule-panel{display:none}.mobile-visible{display:block}.subjects-panel{border-radius:13px}.panel-top{padding:21px 20px 18px}.panel-title h2{font-size:17px}.step-label{font-size:12px}.subject-controls{padding:0 18px}.search-field{height:47px}.search-field input{font-size:14px}.year-label{margin-top:21px;font-size:11px}.level-tabs button{padding:10px 4px;font-size:16px}.level-tabs button span{font-size:13px}.list-caption{margin-top:19px;font-size:12px}.subject-list{padding:0 12px 12px}.subject-toggle{padding:15px 11px}.subject-card-info strong{font-size:15px}.subject-card-info>span{font-size:12px}.subject-symbol{width:35px;height:35px}.group-browser{padding:0 12px 12px}.group-search{height:42px}.group-search input{font-size:14px}.available-filter{margin:16px 0;font-size:13px}.group-list{max-height:560px}.group-option{padding:15px}.group-option-top strong{font-size:16px}.group-status{font-size:12px}.teacher-name{font-size:13px;line-height:1.55}.group-sessions>div{gap:9px;font-size:13px}.day-chip{min-width:37px;font-size:12px}.room-chip{font-size:12px}.group-actions{margin-top:17px}.preview-button{min-height:40px;font-size:12px}.choose-button{min-height:40px;padding:8px 13px;font-size:14px}.conflict-explanation{font-size:13px}.sidebar-note{font-size:12px;line-height:1.6}.schedule-toolbar{padding:20px 18px 15px}.schedule-title .panel-title h2{font-size:18px}.schedule-subtitle{font-size:12px}.view-toggle{display:none}.schedule-status-row{padding:0 18px 16px}.valid-schedule{font-size:12px}.clear-button{min-height:26px;font-size:12px}.example-banner{gap:12px;padding:12px 16px;font-size:11px}.example-detail{display:none}.example-banner button{padding:3px 0;font-size:11px}.preview-banner{padding:10px 14px;font-size:12px;line-height:1.5}.preview-banner>span{align-items:flex-start}.preview-banner svg{margin-top:1px}.desktop-schedule-view{display:none}.mobile-schedule-view{display:block}.mobile-day-picker{gap:4px;margin-left:0;padding:15px 10px 3px;display:flex}.mobile-day-picker button{color:#93a4ab;background:0 0;border-radius:8px;flex-direction:column;flex:1;align-items:center;gap:7px;min-height:57px;padding:10px 3px;font-size:12px;display:flex}.mobile-day-picker button.active{color:#287e65;background:#e7f4ee;font-weight:600}.day-marker{color:#a0b1b7;font-size:11px;font-weight:400}.mobile-day-picker button.active .day-marker{color:#52a086}.calendar-shell{margin:0 15px 0 6px}.calendar-head,.timeline{grid-template-columns:53px minmax(0,1fr)}.calendar-head{height:54px}.calendar-day{text-align:left;padding-left:16px;display:none}.calendar-day.mobile-current{display:block}.calendar-day>span{font-size:14px}.calendar-day small{font-size:11px}.timezone-label{font-size:10px}.day-column{border-right:1px solid #e9eeef;display:none}.day-column.mobile-current{display:block}.time-label{font-size:11px;right:11px}.calendar-event{border-radius:6px;padding:9px 11px;left:7px;right:7px}.event-name{-webkit-line-clamp:1;margin-bottom:3px;font-size:14px;line-height:1.35}.event-time{font-size:12px;line-height:1.45}.event-meta{margin-top:auto;font-size:12px;line-height:1.3}.calendar-empty{top:260px;left:60px;right:5px}.calendar-empty h3{font-size:18px}.calendar-empty p{font-size:13px}.mobile-only{display:flex}.agenda-grid{padding:15px;display:block}.agenda-day{border-radius:9px;margin-bottom:15px}.agenda-day:last-child{margin-bottom:0}.agenda-day-head{padding:13px 15px}.agenda-day-head h3{font-size:15px}.agenda-day-head>span{font-size:12px}.agenda-entry{gap:12px;padding:17px 14px}.agenda-time{min-width:43px;font-size:14px}.agenda-time small{font-size:12px}.agenda-entry-content{padding-left:12px}.agenda-entry-content strong{font-size:15px;line-height:1.45}.agenda-entry-content>span{margin-top:5px;font-size:12px}.agenda-entry-content>small{font-size:12px;line-height:1.5}.free-day{padding:25px 14px;font-size:13px}.schedule-bottom{gap:14px;padding:16px 18px}.block-duration{font-size:11px}.selection-summary{border-radius:12px;margin-top:20px;padding:20px;display:block}.summary-icon{border-radius:9px;width:37px;height:37px}.summary-intro{gap:11px}.summary-intro strong{font-size:14px}.summary-intro>div>span{font-size:11px;line-height:1.5}.summary-stats{border-top:1px solid #ffffff12;justify-content:space-between;gap:0;margin-top:21px;padding-top:19px}.summary-stats>div{min-width:0}.summary-stats strong{font-size:27px}.summary-stats span{font-size:11px}.page-footer{padding:20px 2px 17px;font-size:10px;line-height:1.6;display:block}.page-footer>span{margin-bottom:4px;display:block}.mobile-navigation{min-height:71px;padding:8px 15px max(8px,env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:20;background:#ffffffed;border-top:1px solid #dfe9e7;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -5px 20px #24474c05}.mobile-navigation>button{color:#98a8ae;background:0 0;border-radius:9px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:5px;padding:7px 5px;font-size:11px;font-weight:450;display:flex;position:relative}.mobile-navigation>button.active{color:#1c826c;background:#ecf7f1}.mobile-navigation small{color:#658578;background:#eff4f2;border:2px solid #fff;border-radius:9px;place-items:center;min-width:17px;height:17px;font-size:9px;display:grid;position:absolute;top:3px;left:calc(50% + 9px)}.toast{width:calc(100% - 36px);padding:13px 15px;font-size:13px;bottom:86px}.dialog-content{padding:21px 22px 23px}.dialog-content h2{font-size:23px}.details-dialog{max-height:calc(100dvh - 30px)}.detail-session{font-size:13px}.dialog-actions{gap:10px}.dialog-selected{font-size:12px}.remove-button{min-height:42px;font-size:12px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.search-field input,.preview-button,.choose-button,.view-toggle button,.clear-button{font-size:14px}.teacher-name,.group-sessions>div{font-size:13px}.choose-button{min-height:38px}.calendar-day>span{font-size:14px}.event-name{flex-shrink:0;margin-bottom:3px;font-size:14px;line-height:1.2}.event-time,.event-meta{flex-shrink:0;font-size:11px;line-height:1.3}.calendar-event{padding:7px 7px 5px}@media (width<=1200px) and (width>=761px){.calendar-event{padding:7px 5px 5px}.event-name{font-size:14px}.event-time,.event-meta{font-size:11px}.calendar-day>span{font-size:13px}}@media (width<=760px){.preview-button,.choose-button{font-size:14px}.event-name{font-size:14px;line-height:1.35}.event-time,.event-meta{font-size:12px}.calendar-event{padding:9px 11px}.view-toggle button{font-size:14px}}.preview-has-conflict{color:#a95f49;background:#fff2eb;border-color:#efcfc3}.preview-conflicts{margin-top:3px;font-size:12px;font-weight:500;line-height:1.6;display:block}.selected-overlap{border-left-color:#d59877;right:50%}.preview-overlap{color:#a85942;background:#fff0e7;border-color:#bd6b52;left:50%}.preview-overlap .event-name,.selected-overlap .event-name{font-size:12px;line-height:1.25}.preview-overlap .event-time,.selected-overlap .event-time{white-space:normal;font-size:10px}.preview-overlap .event-meta,.selected-overlap .event-meta{font-size:10px}.schedule-actions{align-items:center;gap:16px;display:flex}.example-button{color:#456f78;background:0 0;align-items:center;gap:6px;padding:6px 0;font-size:13px;font-weight:550;display:flex}.example-button:hover{color:#177d68}.level-tabs button{min-width:0}.level-tabs button:first-child{font-size:13px}.conflict-list{gap:8px;margin-top:8px;display:grid}.conflict-row{flex-direction:column;gap:2px;font-size:12px;line-height:1.5;display:flex}.conflict-row strong{font-size:12px;font-weight:600}.conflict-explanation>strong{font-weight:550}.preview-banner{align-items:flex-start;gap:14px;padding:14px 18px}.preview-copy{flex:1;min-width:0}.preview-title{align-items:flex-start;gap:7px;font-size:13px;font-weight:550;line-height:1.6;display:flex}.preview-title svg{margin-top:2px}.preview-banner .conflict-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-left:23px}.preview-note{opacity:.85;margin:8px 0 0 23px;font-size:12px;line-height:1.5}.preview-actions{flex-shrink:0;align-items:flex-start;gap:8px;display:flex}.preview-actions .choose-button{font-size:13px}.preview-actions .icon-button{width:30px;height:30px}.detail-edit-button{color:#477e69;background:#eaf5ee;border-radius:6px;align-items:center;gap:6px;padding:10px 9px;font-size:13px;display:flex}.detail-conflicts{color:#a85f49;background:#fff2eb;border:1px solid #f2d8ca;border-radius:8px;gap:8px;margin-top:16px;padding:13px;font-size:13px;line-height:1.5;display:flex}.detail-conflicts>svg{margin-top:2px}.detail-conflicts>div>strong{font-weight:550}.undo-button{color:#bdeedd;white-space:nowrap;background:0 0;border-left:1px solid #ffffff25;margin-left:6px;padding:6px 0 6px 12px;font-size:13px;font-weight:600}.undo-button:hover{color:#fff}.catalog-error{color:#9a5945;background:#fff;border:1px solid #efdfd6;border-radius:16px;gap:18px;max-width:550px;margin:15vh auto;padding:28px;line-height:1.6;display:grid}.catalog-error h1{letter-spacing:-.6px;font-size:24px}.catalog-error p{color:#7f8b8d;font-size:15px}@media (width<=760px){.schedule-actions{gap:12px}.schedule-status-row{flex-wrap:wrap}.example-button{font-size:12px}.level-tabs button{padding:10px 2px;font-size:14px}.level-tabs button span,.level-tabs button:first-child{font-size:12px}.preview-banner{padding:14px;display:block}.preview-actions{justify-content:flex-end;margin-top:10px}.preview-banner .conflict-list{grid-template-columns:1fr;gap:8px}.detail-edit-button{min-height:42px;font-size:13px}.toast{flex-wrap:wrap;align-items:flex-start}.toast .undo-button{min-height:34px;margin-left:auto}.catalog-error{margin:50px 18px}}.export-toolbar{border-bottom:1px solid var(--border);background:#f9fcfb;border-radius:14px 14px 0 0;justify-content:space-between;align-items:center;gap:16px;padding:17px 22px;display:flex}.save-preference{color:#416c65;flex-direction:column;gap:5px;max-width:300px;font-size:12px;display:flex}.save-preference label{cursor:pointer;align-items:center;gap:7px;display:flex}.save-preference input{accent-color:#16806a;width:15px;height:15px}.save-preference>span{color:#72898a;padding-left:22px;font-size:11px;line-height:1.45}.export-buttons{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.export-buttons a{text-decoration:none}.secondary-action{color:#32665e;background:#fff;border:1px solid #dbe8e3;border-radius:7px;justify-content:center;align-items:center;gap:7px;min-height:40px;padding:10px 13px;font-size:12px;font-weight:600;text-decoration:none;display:inline-flex}.secondary-action:hover{background:#eef6f2}.secondary-action:disabled{opacity:.45;cursor:not-allowed}.export-toolbar .primary-button{min-height:40px;padding:10px 13px;font-size:12px}.export-dialog{width:min(580px,100vw - 32px)}.field-label{color:#264d52;margin:21px 0 8px;font-size:13px;font-weight:600;display:block}.export-input{box-sizing:border-box;color:#21444b;width:100%;font:inherit;background:#fbfdfc;border:1px solid #cddfd8;border-radius:8px;padding:12px 14px;font-size:14px}.export-input:focus{outline-offset:2px;outline:2px solid #78bca8}.export-note{color:#748b8a!important;margin:10px 0 18px!important;font-size:12px!important;line-height:1.6!important}.export-generate{width:100%;margin-top:8px}.export-error{color:#974a34;background:#fff0e8;border-radius:7px;padding:12px;font-size:13px;line-height:1.6}.copy-action{margin-top:11px}.share-input{font-size:12px}.backup-actions{border-top:1px solid #e0eae6;margin-top:22px;padding-top:18px}.backup-actions h3,.import-review h3{margin:0 0 8px;font-size:15px}.backup-actions p,.import-review p,.pdf-ready p{color:#72898a;font-size:12px;line-height:1.6}.pdf-ready{background:#edf7f2;border-radius:9px;margin-top:18px;padding:17px}.pdf-ready>span{color:#28735e;align-items:center;gap:8px;margin-bottom:14px;font-weight:600;display:flex}.pdf-ready p{margin-bottom:0}.import-review{margin-top:18px}.import-review ul{max-height:230px;padding:0;list-style:none;overflow:auto}.import-review li{border-bottom:1px solid #e4ede8;padding:10px 0;font-size:12px;line-height:1.5}.import-review small{color:#718b85;margin-top:4px;display:block}.import-review>.secondary-action{margin-left:9px}@media (width<=1000px){.export-toolbar{flex-wrap:wrap}.save-preference{max-width:none}}@media (width<=760px){.export-toolbar{gap:13px;padding:16px 18px}.export-toolbar>.export-buttons{width:100%}.export-toolbar>.export-buttons>button{flex:1;min-height:43px}.export-dialog .dialog-content{padding:22px}.export-dialog .export-buttons>*{flex:1}.save-preference{font-size:12px}.export-dialog h2{font-size:26px}}.workspace[hidden]{display:none!important}.pwa-status{color:#527c72;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:-8px 0 22px;font-size:12px;display:flex}.pwa-status>span{align-items:center;gap:7px;display:flex}.pwa-status button{color:#376b5e;background:#fff;border:1px solid #dbe8e3;border-radius:7px;align-items:center;gap:6px;padding:9px 12px;font-size:12px;display:inline-flex}.pwa-help,.pwa-update{background:#fff;border:1px solid #d9e8e0;border-radius:10px;width:100%;padding:17px 20px;line-height:1.7;position:relative}.pwa-help p{max-width:800px;margin:7px 28px 0 0}.pwa-help>button{border:none;position:absolute;top:10px;right:12px}.pwa-update{background:#edf7f1;justify-content:space-between;align-items:center;gap:15px;display:flex}.pwa-update p{margin:4px 0 0}.pwa-update button{flex-shrink:0}.migration-review{color:#214a4a;background:#fff;border:1px solid #d9e8e0;border-radius:12px;margin-bottom:25px;padding:24px}.migration-review h2{margin:0 0 12px;font-size:23px}.migration-review p{font-size:13px;line-height:1.6}.migration-row{border-bottom:1px solid #e3ece7;padding:15px 0}.migration-row label{flex-wrap:wrap;align-items:center;gap:9px;font-size:13px;display:flex}.migration-row input{accent-color:#198367}.migration-row label>span{color:#768d86;margin-left:auto;font-size:12px}.migration-row details{margin:10px 0 0 24px;font-size:12px}.migration-row summary{cursor:pointer;color:#36755f}.migration-row details p{font-size:12px}.migration-review .export-buttons{margin-top:18px}@media (width<=760px){.pwa-status{margin-bottom:16px;font-size:11px}.pwa-status>span{line-height:1.5}.pwa-update{display:block}.pwa-update button{margin-top:12px}.migration-review{padding:19px}.migration-row label>span{width:100%;margin-left:24px}}@media (width>=761px){.subjects-panel{flex-direction:column;display:flex}.subjects-panel .sidebar-note{margin-top:auto}}.page-wrap{padding-bottom:24px}.pwa-status[hidden]{display:none}.header-install button{color:#376b5e;white-space:nowrap;background:#fff;border:1px solid #dbe8e3;border-radius:7px;align-items:center;gap:6px;padding:9px 12px;font-size:12px;display:inline-flex}@media (width<=760px){.header-install button{padding:8px;font-size:11px}.header-right{gap:8px}}.schedule-subtitle{flex-wrap:wrap;gap:12px;display:flex}.schedule-subtitle>span{margin:0}.agenda-class-meta{flex-wrap:wrap;gap:12px;display:flex}.calendar-shell{--row-height:86px}.timeline{height:calc(var(--row-count) * var(--row-height))}.day-short,.event-compact-name,.event-compact-time{display:none}@media (width<=760px){.page-wrap{padding-left:12px;padding-right:12px}.calendar-shell{--row-height:72px;margin:0 4px 0 2px}.calendar-head,.timeline{grid-template-columns:36px repeat(6,minmax(0,1fr))}.calendar-head{height:44px}.calendar-day{text-align:center;padding:0;display:block}.calendar-day .day-full{display:none}.calendar-day .day-short{color:#304e5b;font-size:12px;font-weight:750;display:block}.timezone-label{color:#627a86;letter-spacing:0;font-size:8px}.day-column{border-right:0;display:block}.day-column:last-child{border-right:1px solid #e9eeef}.time-label{color:#526e7b;font-size:10px;font-weight:550;right:4px}.calendar-event{text-align:center;border-left-width:2px;border-radius:4px;justify-content:center;align-items:center;gap:4px;padding:7px 2px 5px;left:2px;right:2px}.calendar-event .event-name,.calendar-event .event-time,.calendar-event .event-meta{display:none}.event-compact-name{white-space:pre-line;overflow-wrap:anywhere;font-size:10px;font-weight:750;line-height:1.25;display:block}.event-compact-time{font-variant-numeric:tabular-nums;opacity:.85;font-size:9px;font-weight:550;line-height:1.2;display:block}.calendar-empty{background:#ffffffed;border-radius:10px;padding:18px 8px;top:165px;left:42px;right:7px}.calendar-empty h3{font-size:16px}.calendar-empty p{font-size:12px}}.subjects-toggle{color:#376b5e;background:#eff6f3;border-radius:7px;align-items:center;gap:6px;margin-bottom:12px;padding:8px 10px;font-size:12px;display:inline-flex}@media (width>=761px){.workspace.sidebar-collapsed{grid-template-columns:minmax(0,1fr)}.sidebar-collapsed>.subjects-panel,.workspace:not(.sidebar-collapsed) .subjects-toggle{display:none}}@media (width<=760px){.schedule-panel{display:block}.subjects-panel{display:none}.subjects-panel.mobile-visible{z-index:20;border-radius:18px 18px 8px 8px;height:52dvh;display:block;position:fixed;bottom:78px;left:8px;right:8px;overflow-y:auto;box-shadow:0 -10px 35px #173f4926}.subjects-panel .panel-top{z-index:2;border-bottom:1px solid var(--border);background:#fff;padding:16px 18px;position:sticky;top:0}.subjects-panel .subject-controls{padding-top:14px}.subjects-toggle{margin-bottom:10px}.subjects-panel:before{content:"";background:#c8d8d5;border-radius:3px;width:36px;height:4px;margin:9px auto 0;display:block}.sidebar-close{min-width:38px;min-height:38px}.subjects-panel,.subjects-panel.mobile-visible{z-index:30;visibility:hidden;border-radius:0 18px 18px 0;width:min(84vw,340px);height:100dvh;transition:transform .22s,visibility .22s;display:block;position:fixed;inset:0 auto 0 0;overflow-y:auto;transform:translate(-105%);box-shadow:8px 0 32px #173f4926}.subjects-panel.mobile-visible{visibility:visible;transform:translate(0)}.subjects-panel:before{display:none}.subjects-panel .panel-top{padding-top:24px}.subjects-panel .subject-list{padding-bottom:32px}.drawer-backdrop{z-index:29;background:#16343d24;border:0;display:block;position:fixed;inset:0}}@media (width>=761px){.drawer-backdrop{display:none}}
