:root{color-scheme:light;--bg:#f6ebde;--surface:#fffaf2;--surface-2:#f5e8d8;--border:#ecdcc9;--border-strong:#dfc8af;--text:#2f2118;--muted:#84684f;--faint:#c3a68b;--accent:#4f46e5;--accent-hover:#4338ca;--accent-soft:#f0eafc;--accent-text:#ffffff;--warn:#b45309;--warn-soft:#fff3df;--ok:#15803d;--ok-soft:#e4f6ea;--danger:#be123c;--danger-soft:#ffe8ed;--shadow-sm:0 1px 2px rgba(90,55,25,0.08);--shadow-lg:0 12px 40px rgba(90,55,25,0.18);--logo-plate:transparent;--radius:10px;--topbar-height:64px}*{box-sizing:border-box}body,html{margin:0;height:100%}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0;padding:0;text-align:inherit}button:disabled{cursor:not-allowed}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3,p{margin:0}.muted{color:var(--muted)}.small{font-size:12px}.app{display:flex;flex-direction:column;height:100vh}.topbar{background:var(--surface);border-bottom:1px solid var(--border);gap:24px;min-height:var(--topbar-height);padding:10px 20px}.brand,.topbar{align-items:center;display:flex}.brand{background:var(--logo-plate);border-radius:10px;padding:2px 6px}.brand-logo{display:block;height:50px;width:auto}.toolbar{align-items:center;flex:1 1;gap:10px;min-width:0}.nav-arrows,.toolbar{display:flex}.period{font-size:20px;font-weight:600;letter-spacing:-.01em;margin-left:6px;white-space:nowrap}.topbar-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}@media (min-width:761px){.topbar{align-items:flex-start;padding-bottom:6px;padding-top:6px}.toolbar,.topbar-actions{margin-top:calc(50px * .765 + 2px - 17px)}}.layout{display:grid;flex:1 1;grid-template-columns:var(--sidebar-width,290px) minmax(0,1fr);min-height:0;position:relative}.sidebar-resizer{bottom:12px;cursor:col-resize;left:var(--sidebar-width,290px);position:absolute;top:12px;touch-action:none;width:20px;z-index:5}.sidebar-resizer:after{background:var(--border-strong);border-radius:999px;content:"";height:44px;left:8px;opacity:0;position:absolute;top:50%;transform:translateY(-50%);transition:opacity .15s,background .15s,height .2s var(--ease-out-soft,ease-out);width:4px}.sidebar-resizer.is-dragging:after,.sidebar-resizer:focus-visible:after,.sidebar-resizer:hover:after{opacity:1}.sidebar-resizer.is-dragging:after{background:var(--accent);height:72px}.sidebar-resizer:focus-visible{outline:none}body.is-resizing-sidebar,body.is-resizing-sidebar *{cursor:col-resize!important;-webkit-user-select:none;-moz-user-select:none;user-select:none}.main{display:flex;flex-direction:column;min-height:0;overflow:auto;padding:16px 20px 20px}.button{align-items:center;background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;color:var(--text);display:inline-flex;font-weight:500;gap:6px;height:34px;justify-content:center;padding:0 12px;text-decoration:none;transition:background .12s,border-color .12s;white-space:nowrap}.button:hover:not(:disabled){background:var(--surface-2)}.button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.button.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.button.is-disabled,.button:disabled{opacity:.45}.button.is-disabled{pointer-events:none}.button.danger-ghost{color:var(--danger)}.button.danger-ghost:hover:not(:disabled){background:var(--danger-soft)}.button.small{font-size:13px;height:28px;padding:0 10px}.button.block{width:100%}.count{background:var(--warn);border-radius:999px;color:var(--surface);font-size:11px;font-weight:700;line-height:18px;min-width:18px;padding:0 5px;text-align:center}.icon-button{align-items:center;border-radius:8px;color:var(--muted);display:inline-flex;font-size:22px;height:34px;justify-content:center;line-height:1;width:34px}.icon-button:hover{background:var(--surface-2);color:var(--text)}.link-button{color:var(--accent);font-weight:600;margin-left:8px}.link-button:hover{text-decoration:underline}.segmented{background:var(--surface-2);border-radius:8px;display:inline-flex}.segmented button{align-items:center;border-radius:6px;color:var(--muted);display:inline-flex;font-weight:500;height:28px;justify-content:center;padding:0 10px}.segmented button:hover:not([aria-pressed=true]){color:var(--text)}.segmented button[aria-pressed=true]{background:var(--surface);box-shadow:var(--shadow-sm);color:var(--text)}.toolbar-icon{fill:none;height:18px;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8;width:18px}.button.icon-only{padding:0;width:34px}.has-tip{position:relative}.has-tip:after{background:#3b2a1e;border-radius:6px;color:#fff;content:attr(data-tip);font-size:12px;font-weight:500;left:50%;opacity:0;padding:5px 9px;pointer-events:none;position:absolute;top:calc(100% + 8px);transform:translate(-50%,-2px);transition:opacity .12s,transform .12s;white-space:nowrap;z-index:40}.has-tip:focus-visible:after,.has-tip:hover:after{opacity:1;transform:translate(-50%);transition-delay:.25s}.topbar-actions>.has-tip:last-of-type:after{left:auto;right:0;transform:translateY(-2px)}.topbar-actions>.has-tip:last-of-type:hover:after{transform:none}.login-page{align-items:center;background:radial-gradient(circle at 20% 0,color-mix(in srgb,var(--accent) 10%,transparent),transparent 45%),radial-gradient(circle at 90% 100%,color-mix(in srgb,#f3b23c 14%,transparent),transparent 40%),var(--bg);gap:16px;justify-content:center;min-height:100vh;padding:24px 16px}.login-card,.login-page{display:flex;flex-direction:column}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow-lg);gap:22px;max-width:420px;padding:32px 32px 28px;width:100%}.login-logo{align-self:center;background:var(--logo-plate);border-radius:14px;height:100px;padding:4px 12px;width:auto}.login-form{display:flex;flex-direction:column;gap:16px}.login-heading{text-align:center}.login-heading h1{font-size:22px;font-weight:700;letter-spacing:-.01em;margin-bottom:6px}.login-heading p{color:var(--muted);font-size:14px}.login-heading strong{color:var(--text)}.login-field{display:flex;flex-direction:column;gap:6px}.login-label{color:var(--muted);font-size:12px;font-weight:600}.email-group{align-items:stretch;background:var(--surface);border:1px solid var(--border-strong);border-radius:10px;display:flex;overflow:hidden;transition:border-color .12s,box-shadow .12s}.email-group:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.email-group.invalid{border-color:var(--danger)}.email-group input{background:transparent;border:0;flex:1 1;font-size:16px;min-width:0;outline:none;padding:11px 4px 11px 14px;text-align:right}.email-group input::placeholder{color:var(--faint)}.email-domain{align-items:center;background:var(--surface-2);border-left:1px solid var(--border);color:var(--muted);display:flex;font-size:16px;padding:0 14px 0 10px;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.code-boxes{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(6,minmax(0,1fr));position:relative}.code-boxes-input{background:transparent;border:0;caret-color:transparent;color:transparent;cursor:text;font-size:16px;inset:0;opacity:0;position:absolute;width:100%;z-index:1}.code-box{align-items:center;aspect-ratio:5/6;background:rgba(255,255,255,.6);border:1px solid var(--border-strong);border-radius:12px;display:flex;font-size:26px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600;justify-content:center;max-height:64px;position:relative;transition:border-color .12s,box-shadow .12s,transform .16s var(--ease-settle,ease-out)}.code-box.filled{animation:code-pop .18s var(--ease-settle,ease-out);background:var(--surface)}.code-boxes-input:focus~.code-box.current{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.code-boxes-input:focus~.code-box.current:not(.filled):after{animation:code-caret 1s steps(1) infinite;background:var(--accent);border-radius:1px;content:"";height:28px;width:2px}.code-boxes.invalid .code-box{border-color:var(--danger)}@keyframes code-pop{50%{transform:scale(1.08)}}@keyframes code-caret{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.code-box.filled,.code-boxes-input:focus~.code-box.current:not(.filled):after{animation:none}}.login-input{background:var(--surface);border:1px solid var(--border-strong);border-radius:10px;font-size:16px;padding:11px 14px;transition:border-color .12s,box-shadow .12s;width:100%}.login-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.login-input.invalid{border-color:var(--danger)}.login-hint{color:var(--muted);font-size:12px}.login-alt{font-size:13px;margin-top:-4px;text-align:center}.login-alt .link-button{margin-left:0}.login-error{color:var(--danger);font-size:13px;margin-top:-6px}.login-submit{font-size:15px;height:44px;width:100%}.login-junk-note{color:var(--muted);font-size:13px;text-align:center}.login-junk-note strong{color:var(--text)}.login-signup{border-top:1px solid var(--border);color:var(--muted);font-size:13px;padding-top:14px;text-align:center}.login-signup .link-button{font-weight:600;margin-left:0}.login-links{display:flex;font-size:13px;justify-content:space-between}.login-links-end{justify-content:flex-end}.login-links .link-button{margin-left:0}.login-links .link-button:disabled{color:var(--faint);cursor:default;text-decoration:none}.login-footnote{color:var(--muted);font-size:12px}.login-footnote a{color:inherit}.legal-page{background:var(--bg);display:flex;justify-content:center;min-height:100vh;padding:40px 16px}.legal-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:12px;height:-moz-fit-content;height:fit-content;line-height:1.6;max-width:720px;padding:32px;width:100%}.legal-logo{height:60px;width:auto}.legal-card h1{font-size:26px}.legal-card h2{font-size:17px;margin-top:12px}.legal-card ul{display:flex;flex-direction:column;gap:6px;margin:0;padding-left:20px}.legal-card a{color:var(--accent)}.account{align-items:center;display:flex;gap:8px;position:relative}.account-button{border-radius:999px;display:inline-flex;padding:3px;transition:box-shadow .15s}.account-button:hover,.account-button[aria-expanded=true]{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}.account-button:focus-visible{box-shadow:0 0 0 3px var(--accent);outline:none}.avatar{align-items:center;border-radius:999px;color:#fff;display:inline-flex;flex-shrink:0;font-size:15px;font-weight:600;height:32px;justify-content:center;line-height:1;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:32px}.account-who .avatar.large{color:#fff;font-size:20px;height:44px;width:44px}.account-options{min-width:280px}.account-options button[role=menuitem]{align-items:flex-start;flex-direction:row;gap:12px}.account-options .menu-text{color:inherit;display:flex;flex-direction:column;font-size:inherit;gap:2px;min-width:0}.account-options .menu-text span{color:var(--muted);font-size:12px}.menu-icon{color:var(--muted);fill:none;flex:none;height:20px;margin-top:0;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6;transition:color .12s,transform .16s var(--ease-out-soft,ease-out);width:20px}.account-options button:focus-visible .menu-icon,.account-options button:hover .menu-icon{color:var(--accent);transform:scale(1.08)}@media (prefers-reduced-motion:reduce){.account-options button:focus-visible .menu-icon,.account-options button:hover .menu-icon{transform:none}}.account-who{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:12px;margin-bottom:4px;padding:10px 12px 12px}.account-who .account-email{color:var(--text);font-size:13px;font-weight:500;min-width:0;overflow-wrap:anywhere}.month-stage{display:flex;flex:1 1;flex-direction:column;min-height:0;position:relative}.month-hint{align-items:center;background:var(--accent-soft);border:1px solid rgba(255,255,255,.8);border-radius:999px;box-shadow:var(--shadow-lg);color:var(--text);display:flex;flex-wrap:wrap;gap:4px 8px;justify-content:center;left:50%;max-width:calc(100% - 24px);padding:8px 16px;position:absolute;top:46px;transform:translateX(-50%);z-index:8}.month{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);display:flex;flex:1 1;flex-direction:column;min-height:560px;overflow:hidden}.month-weekdays{background:color-mix(in srgb,var(--surface-2) 55%,var(--surface));border-bottom:1px solid var(--border);display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.month-weekdays div{color:var(--muted);font-size:12px;font-weight:600;letter-spacing:.04em;padding:8px 10px;text-transform:uppercase}.month-grid{display:grid;flex:1 1;grid-template-columns:repeat(7,minmax(0,1fr))}.month.is-dragging,.month.is-dragging *,.time-view.is-dragging,.time-view.is-dragging *{cursor:-webkit-grabbing!important;cursor:grabbing!important;-webkit-user-select:none;-moz-user-select:none;user-select:none}.time-view{--time-columns:56px repeat(var(--day-count),minmax(0,1fr));background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);display:flex;flex:1 1;flex-direction:column;min-height:560px;overflow:hidden}.time-all-day,.time-body,.time-head{display:grid;grid-template-columns:var(--time-columns)}.time-all-day,.time-head{overflow:hidden;scrollbar-gutter:stable}.time-head{background:color-mix(in srgb,var(--surface-2) 55%,var(--surface))}.time-day-head{align-items:center;border-left:1px solid var(--border);display:flex;flex-direction:column;gap:2px;padding:8px 4px 6px;position:relative}.time-day-head .day-note-mark{color:var(--accent);height:auto;margin:0;position:absolute;right:6px;top:8px}.time-day-head span{color:var(--muted);font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.time-day-head strong{align-items:center;border-radius:999px;display:inline-flex;font-size:20px;font-weight:500;height:38px;justify-content:center;min-width:38px;transition:background-color .12s}.time-day-head:hover strong{background:var(--surface-2)}.time-day-head.today span{color:var(--accent)}.time-day-head.today strong{background:var(--accent);color:var(--accent-text);font-weight:700}.time-view.single-day .time-day-head{align-items:flex-start;cursor:default;padding-left:12px}.time-all-day{border-bottom:1px solid var(--border-strong);border-top:1px solid var(--border)}.time-gutter-cell{color:var(--muted);font-size:11px;padding:8px 8px 0 0;text-align:right}.time-all-day-cell{border-left:1px solid var(--border);display:flex;flex-direction:column;gap:3px;min-height:34px;min-width:0;padding:4px}.time-all-day-cell.today,.time-column.today{background-color:color-mix(in srgb,#fff1dc 70%,var(--surface))}.time-scroll{flex:1 1;min-height:0;overflow-y:auto;scrollbar-gutter:stable}.time-body,.time-gutter{position:relative}.time-gutter span{color:var(--muted);font-size:11px;position:absolute;right:8px;transform:translateY(-50%);white-space:nowrap}.time-column{background-image:linear-gradient(var(--border) 1px,transparent 1px);background-size:100% 48px;border-left:1px solid var(--border);cursor:pointer;min-width:0;position:relative}.time-event{align-items:stretch;background:color-mix(in srgb,var(--course) 18%,var(--surface));border-left:3px solid var(--course);border-radius:6px;display:flex;flex-direction:column;font-size:12px;gap:1px;line-height:1.25;overflow:hidden;padding:3px 6px;position:absolute;text-align:left;transition:background .12s;z-index:1}.time-event:hover{background:color-mix(in srgb,var(--course) 28%,var(--surface));z-index:3}.time-event.compact{align-items:baseline;flex-direction:row;gap:6px;padding-bottom:0;padding-top:1px}.time-event-title{align-items:center;display:flex;font-weight:600;gap:4px;min-width:0}.time-event-title>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.time-event-time{color:var(--muted);flex-shrink:0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.time-event.unconfirmed{background:var(--surface);border:1px dashed color-mix(in srgb,var(--course) 65%,transparent);border-left:3px dashed var(--course);color:var(--muted)}.time-event.is-done{opacity:.75}.time-event.is-done .time-event-title>span:last-child{color:var(--muted);text-decoration:line-through}.time-event.fading{pointer-events:none}.time-event.fading.working{animation:removing-pulse 1s ease-in-out infinite}.time-event.fading.leaving{animation:chip-leave .3s ease-in forwards}.time-event.due-nudge{position:absolute}.now-line{height:2px;left:0;pointer-events:none;right:0;transform:translateY(-1px);z-index:4}.now-line,.now-line:before{background:var(--danger);position:absolute}.now-line:before{border-radius:999px;content:"";height:10px;left:-5px;top:-4px;width:10px}.time-all-day.slide-next,.time-body.slide-next,.time-head.slide-next{animation:month-from-right .2s ease-out}.time-all-day.slide-prev,.time-body.slide-prev,.time-head.slide-prev{animation:month-from-left .2s ease-out}@media (prefers-reduced-motion:reduce){.time-all-day,.time-body,.time-head{animation:none!important}}.week-scroll{flex:1 1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:none}.week-scroll::-webkit-scrollbar{display:none}.week-scroll.is-dragging,.week-scroll.is-dragging *{cursor:-webkit-grabbing!important;cursor:grabbing!important;-webkit-user-select:none;-moz-user-select:none;user-select:none}.week-canvas{position:relative}.week-row{display:flex}.week-row.week-head{background:color-mix(in srgb,var(--surface-2) 55%,var(--surface));height:64px;top:0}.week-row.week-all-day,.week-row.week-head{position:-webkit-sticky;position:sticky;z-index:6}.week-row.week-all-day{background:var(--surface);border-bottom:1px solid var(--border-strong);border-top:1px solid var(--border);top:64px}.week-row .week-corner{background:inherit;flex-shrink:0;left:0;position:-webkit-sticky;position:sticky;width:56px;z-index:7}.week-row.week-body .week-corner{background:var(--surface);height:100%}.week-area{flex-shrink:0;height:100%;position:relative}.week-area>.time-all-day-cell,.week-area>.time-column,.week-area>.time-day-head{bottom:0;position:absolute;top:0}.week-area>.time-all-day-cell{min-height:0}.quick-repeat{align-items:center;display:flex;flex-wrap:wrap;gap:6px 12px;min-height:32px}.quick-repeat-toggle{align-items:center;color:var(--text);cursor:pointer;display:inline-flex;gap:8px}.quick-repeat-toggle input{accent-color:var(--accent);height:15px;margin:0;width:15px}.weekday-picker{display:inline-flex;gap:4px}.weekday{align-items:center;background:var(--surface-2);border-radius:999px;color:var(--muted);display:inline-flex;font-size:12px;font-weight:600;height:28px;justify-content:center;transition:background .12s,color .12s,transform .12s var(--ease-out-soft,ease-out);width:28px}.weekday:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.weekday.chosen{background:var(--accent);color:var(--accent-text)}.weekday:active:not(:disabled){transform:scale(.9)}.weekday:disabled{cursor:default}.weekday.chosen:disabled{opacity:1}.quick-date-range{align-items:center;display:flex;flex-wrap:wrap;gap:2px}.quick-date small{color:var(--muted);display:block;font-size:11px;font-weight:500;line-height:1.2}.field-grid .field-wide{grid-column:1/-1}.repeat-section{align-items:center;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:8px 12px;justify-content:space-between;padding-top:12px}.repeat-label{align-items:center;color:var(--text);display:inline-flex;font-weight:500;gap:8px}.repeat-label .quick-icon{height:18px;margin-top:0;width:18px}.repeat-section .repeat-label{flex:1 1 auto;min-width:0}.repeat-text{align-items:baseline;display:inline-flex;flex-wrap:wrap;gap:0 8px}.repeat-detail{font-weight:400;white-space:nowrap}.repeat-detail,.repeat-hint{color:var(--muted);font-size:13px}.period-picker{position:relative}.period-button{align-items:center;border-radius:10px;display:inline-flex;font:inherit;gap:8px;padding:2px 8px;margin-left:-8px;transition:background .12s}.period-button:hover,.period-button[aria-expanded=true]{background:rgba(255,255,255,.55)}.period-button .create-caret{color:var(--muted);font-size:12px}.period-options{animation:menu-in .19s var(--ease-out-soft,ease-out);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);background:var(--glass-fill-strong,var(--surface));border:1px solid var(--glass-border,var(--border));border-radius:18px;box-shadow:var(--glass-edge,none),var(--glass-shadow-float,var(--shadow-lg));left:0;padding:10px;position:absolute;top:calc(100% + 8px);transform-origin:top left;width:260px;z-index:30}.period-year{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.period-year strong{font-size:15px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.period-months{display:grid;grid-gap:4px;gap:4px;grid-template-columns:repeat(3,minmax(0,1fr))}.period-month{border-radius:10px;font-size:13px;font-weight:500;padding:9px 0;transition:background .12s,transform .12s}.period-month:focus-visible,.period-month:hover{background:rgba(255,255,255,.75);outline:none}.period-month.is-today{color:var(--accent);font-weight:700}.period-month[aria-current=true]{background:var(--accent);color:var(--accent-text);font-weight:700}.period-month:active{transform:scale(.96)}.view-menu{position:relative}.view-menu-button{gap:8px}.view-options{background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 28px rgba(90,55,25,.14);display:flex;flex-direction:column;left:0;min-width:180px;padding:6px;position:absolute;top:calc(100% + 6px);z-index:30}.view-options button{align-items:center;border-radius:7px;display:flex;justify-content:space-between;padding:9px 12px}.view-options button:focus-visible,.view-options button:hover{background:var(--surface-2);outline:none}.view-options button[aria-checked=true]{background:var(--accent-soft);color:var(--accent);font-weight:600}.view-options kbd{color:var(--muted);font-family:inherit;font-size:12px;font-weight:500}.month-scroll{flex:1 1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}.month-scroll::-webkit-scrollbar{display:none}.month-weeks{position:relative}.month-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));left:0;position:absolute;right:0}.month-week .day-cell{min-height:0;overflow:hidden}.month-grid.slide-next{animation:month-from-right .2s ease-out}.month-grid.slide-prev{animation:month-from-left .2s ease-out}.month-grid.slide-next.vertical{animation:month-from-below .22s ease-out}.month-grid.slide-prev.vertical{animation:month-from-above .22s ease-out}@keyframes month-from-below{0%{opacity:.4;transform:translateY(36px)}}@keyframes month-from-above{0%{opacity:.4;transform:translateY(-36px)}}@keyframes month-from-right{0%{opacity:.4;transform:translateX(28px)}}@keyframes month-from-left{0%{opacity:.4;transform:translateX(-28px)}}@media (prefers-reduced-motion:reduce){.month-grid.slide-next,.month-grid.slide-next.vertical,.month-grid.slide-prev,.month-grid.slide-prev.vertical{animation:none}}.day-cell{border-bottom:1px solid var(--border);border-right:1px solid var(--border);display:flex;flex-direction:column;gap:3px;min-height:96px;min-width:0;padding:6px;cursor:pointer;transition:background-color .12s ease}.day-cell.odd-month{background:color-mix(in srgb,var(--surface-2) 45%,var(--surface))}.day-cell:hover{background:color-mix(in srgb,var(--accent) 5%,var(--surface))}.day-cell .day-add,.day-cell .day-events button,.day-cell .day-number{cursor:pointer}.day-cell:nth-child(7n){border-right:0}.day-number{align-items:center;align-self:flex-start;border-radius:999px;color:var(--text);display:inline-flex;font-size:13px;font-weight:500;height:26px;justify-content:center;min-width:26px;padding:0 6px}.day-number:hover{background:var(--surface-2)}.day-head{align-items:flex-start;display:flex;justify-content:space-between}.day-note-mark{align-items:center;color:var(--accent);display:inline-flex;height:26px;margin-left:1px;margin-right:auto}.day-note-mark svg,.note-icon{fill:none;height:13px;stroke:currentColor;stroke-linecap:round;stroke-width:1.8;width:13px}.day-add{align-items:center;border-radius:999px;color:var(--muted);display:inline-flex;flex-shrink:0;height:22px;justify-content:center;margin-top:2px;opacity:.35;transition:opacity .12s,background .12s,color .12s,transform .16s var(--ease-out-soft,ease-out);width:22px}.day-add svg{fill:none;height:14px;stroke:currentColor;stroke-linecap:round;stroke-width:1.8;width:14px}.day-add:focus-visible,.day-cell:hover .day-add{opacity:1}.day-add:hover{background:var(--accent-soft);color:var(--accent);transform:scale(1.1)}.day-add:active{transform:scale(.9)}@media (hover:none){.day-add{opacity:.7}}@media (prefers-reduced-motion:reduce){.day-add:active,.day-add:hover{transform:none}}.day-cell.today .day-number{background:var(--accent);color:var(--accent-text);font-weight:700}.day-events{flex-direction:column;gap:3px}.chip,.day-events{display:flex;min-width:0}.chip{align-items:baseline;background:color-mix(in srgb,var(--course) 15%,var(--surface));border-left:3px solid var(--course);border-radius:5px;font-size:12px;gap:5px;line-height:1.3;padding:3px 6px;transition:background .12s}.event-meta{display:none}.chip-main{align-items:baseline;display:flex;flex:0 1 auto;gap:5px;max-width:100%;min-width:0}@media (min-width:1081px){.chip{align-content:flex-start;column-gap:5px;flex-wrap:wrap;height:calc(1.3em + 6px);overflow:hidden;row-gap:0}.event-meta{display:contents}.event-course,.event-weight{color:var(--muted);flex-shrink:0;font-size:11px;font-weight:500;white-space:nowrap}.event-course:before,.event-weight:before{content:"·";margin-right:4px}.time-event-time{align-content:flex-start;column-gap:4px;display:flex;flex-wrap:wrap;height:1.25em;min-width:0;overflow:hidden}.time-event-label{flex:0 1 auto;max-width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis}.event-meta.stacked{display:flex;flex-direction:column;gap:1px;min-width:0}.event-meta.stacked>span{display:block;overflow:hidden;text-overflow:ellipsis}.event-meta.stacked>span:before{content:none}}.chip:hover{background:color-mix(in srgb,var(--course) 26%,var(--surface))}.chip.unconfirmed{background:transparent;border:1px dashed color-mix(in srgb,var(--course) 65%,transparent);border-left:3px dashed var(--course);color:var(--muted)}.missing-marker{align-items:center;align-self:center;background:var(--warn);border-radius:999px;color:#fff;display:inline-flex;flex-shrink:0;font-size:10px;font-weight:800;height:14px;justify-content:center;line-height:1;width:14px}.upcoming-text strong .missing-marker{margin-left:6px;vertical-align:1px}.badge.missing{align-items:center;background:var(--warn-soft);color:var(--warn);display:inline-flex;gap:5px}.missing-hint{align-items:flex-start;background:var(--warn-soft);display:flex;gap:8px}.missing-hint .missing-marker{margin-top:2px}.chip-time{color:var(--muted);flex-shrink:0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chip-title{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.more-link{color:var(--muted);font-size:12px;font-weight:600;padding:1px 6px}.more-link:hover{color:var(--text)}.check-mark{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:3}.with-done-check{align-items:center;display:flex;gap:8px}.with-done-check>:last-child{flex:1 1;min-width:0}.done-check{align-items:center;border:1.5px solid;border-radius:999px;color:color-mix(in srgb,var(--muted) 45%,transparent);display:inline-flex;flex-shrink:0;height:20px;justify-content:center;transition:color .16s;width:20px}.done-check .check-mark{height:13px;width:13px}.done-check:hover{color:color-mix(in srgb,var(--ok) 60%,transparent)}.done-check.is-done{animation:done-pop .3s cubic-bezier(.3,1.6,.5,1);color:var(--ok)}.done-check.is-done .check-mark path,.done-toggle.is-done .check-mark path{animation:done-draw .26s ease-out 60ms both;stroke-dasharray:20}.chip.is-done .chip-title,.event-row.is-done .event-row-main strong,.upcoming-item.is-done strong{color:var(--muted);text-decoration:line-through;-webkit-text-decoration-color:color-mix(in srgb,var(--muted) 70%,transparent);text-decoration-color:color-mix(in srgb,var(--muted) 70%,transparent)}.event-row.is-done,.upcoming-item.is-done{opacity:.7}.chip.is-done{opacity:.75}.chip-done{align-self:center;background:var(--ok);border-radius:999px;color:#fff;flex-shrink:0;height:14px;padding:2px;stroke-width:3.5;width:14px}.done-toggle{align-items:center;align-self:flex-start;border:1px solid var(--border-strong);border-radius:999px;color:var(--text);display:inline-flex;font-weight:600;gap:8px;padding:6px 14px 6px 8px;transition:background-color .16s,border-color .16s}.done-toggle:hover{background:var(--ok-soft);border-color:var(--ok)}.done-circle{align-items:center;border:2px solid var(--border-strong);border-radius:999px;color:transparent;display:inline-flex;height:22px;justify-content:center;width:22px}.done-circle .check-mark{height:15px;width:15px}.done-toggle.is-done{background:var(--ok-soft);border-color:color-mix(in srgb,var(--ok) 45%,transparent);color:var(--ok)}.drawer-subtitle .done-toggle{font-size:12px;gap:5px;padding:2px 10px 2px 3px}.drawer-subtitle .done-circle{border-width:1.5px;height:16px;width:16px}.drawer-subtitle .done-circle .check-mark{height:11px;width:11px}.done-toggle.is-done .done-circle{animation:done-pop .3s cubic-bezier(.3,1.6,.5,1);background:var(--ok);border-color:var(--ok);color:#fff}@keyframes done-pop{50%{transform:scale(1.18)}}@keyframes done-draw{0%{stroke-dashoffset:20}to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){.done-check.is-done,.done-check.is-done .check-mark path,.done-toggle.is-done .check-mark path,.done-toggle.is-done .done-circle{animation:none}}.agenda{margin:0 auto;max-width:820px;width:100%}.agenda-month+.agenda-month{margin-top:28px}.agenda-month h2{background:var(--bg);font-size:15px;font-weight:700;padding:6px 0 10px;position:-webkit-sticky;position:sticky;top:-16px;z-index:1}.agenda-day{display:grid;grid-gap:16px;gap:16px;grid-template-columns:52px minmax(0,1fr);padding:6px 0}.agenda-day.past{opacity:.55}.agenda-date{align-items:center;display:flex;flex-direction:column;padding-top:6px}.agenda-date span{color:var(--muted);font-size:11px;font-weight:600;text-transform:uppercase}.agenda-date strong{font-size:22px;font-weight:600;line-height:1.1}.agenda-date.is-today strong,.today-marker{color:var(--accent)}.today-marker{align-items:center;display:flex;font-size:12px;font-weight:700;gap:10px;margin:8px 0;scroll-margin-top:40px}.today-marker:after,.today-marker:before{background:var(--accent);content:"";flex:1 1;height:2px;opacity:.5}.today-marker:before{flex:0 0 52px}.event-rows{display:flex;flex-direction:column;gap:6px}.event-row{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:grid;grid-gap:12px;gap:12px;grid-template-columns:4px minmax(0,1fr) auto;padding:10px 14px 10px 10px;transition:border-color .12s,box-shadow .12s;width:100%}.event-row:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.event-row-bar{align-self:stretch;background:var(--course);border-radius:4px}.event-row-main{display:flex;flex-direction:column;min-width:0}.event-row-main strong{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-row-main span,.event-row-side{color:var(--muted);font-size:13px}.event-row-side{align-items:flex-end;display:flex;flex-direction:column;gap:4px;white-space:nowrap}.badge{border-radius:999px;font-size:11px;font-weight:600;padding:2px 8px}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.danger{background:var(--danger-soft);color:var(--danger)}.badge.ok{background:var(--ok-soft);color:var(--ok)}.course-pill{background:color-mix(in srgb,var(--course) 16%,var(--surface));border-radius:999px;color:color-mix(in srgb,var(--course) 70%,var(--text));font-size:12px;font-weight:700;padding:2px 9px}.course-dot{background:var(--course);border-radius:999px;flex-shrink:0;height:10px;width:10px}.quick-layer{inset:0;position:fixed;z-index:25}.quick-box{animation:quick-in .14s ease-out;background:var(--surface);border:1px solid var(--border);border-radius:18px;box-shadow:0 18px 50px rgba(90,55,25,.22);max-height:calc(100vh - 24px);max-width:calc(100vw - 24px);overflow:auto;padding:22px 22px 18px;position:fixed;width:470px}@keyframes quick-in{0%{opacity:0;transform:scale(.97)}}.quick-close{position:absolute;right:12px;top:12px}.quick-title{background:transparent;border:0;border-bottom:1px solid var(--border-strong);color:var(--text);font-size:22px;margin:8px 0 14px 34px;padding:4px 0 6px;width:calc(100% - 34px)}.quick-title:focus{border-bottom:2px solid var(--accent);outline:none;padding-bottom:5px}.quick-pills{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px 34px}.quick-pill{align-items:center;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--text);cursor:pointer;display:inline-flex;font-size:13px;font-weight:500;gap:6px;padding:6px 10px}.quick-pill:hover{background:var(--surface-2)}.quick-pill.selected{background:var(--accent-soft);color:var(--accent);font-weight:600}.quick-dot{background:var(--course);border-radius:999px;height:8px;width:8px}.quick-row{align-items:flex-start;display:flex;gap:14px;padding:6px 0}.quick-icon{fill:none;flex:none;height:20px;margin-top:7px;stroke:var(--muted);stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7;width:20px}.quick-when{align-items:center;display:flex;flex-wrap:wrap;gap:4px;min-width:0}.quick-plain,.quick-when input,.quick-when select{background:transparent;border:1px solid transparent;border-radius:6px;color:var(--text);font-size:14px;min-height:34px;padding:5px 8px}.quick-plain{flex:1 1;min-width:0;resize:vertical}.quick-plain:hover,.quick-when input:hover,.quick-when select:hover{background:var(--surface-2)}.quick-plain:focus,.quick-when input:focus,.quick-when select:focus{background:var(--surface-2);border-color:var(--accent);outline:none}.quick-when input:disabled{opacity:.45}.quick-time-block{display:flex;flex-direction:column;gap:4px;min-width:0}.quick-date{align-self:flex-start;border-radius:6px;color:var(--text);cursor:pointer;font-size:15px;font-weight:500;padding:6px 8px;position:relative}.quick-date:focus-within,.quick-date:hover{background:var(--surface-2)}.quick-date input{cursor:pointer;inset:0;opacity:0;position:absolute;width:100%}.quick-times{align-items:center;display:flex;flex-wrap:wrap;gap:6px;padding-left:2px}.quick-times select{background:var(--surface-2);border:1px solid transparent;border-radius:6px;color:var(--text);font-size:14px;min-height:32px;padding:4px 6px}.quick-times select:focus{border-color:var(--accent);outline:none}.quick-all-day-label{color:var(--muted);font-size:14px;padding:0 6px}.quick-all-day{font-size:12px;margin-left:4px}.quick-weight{width:140px}.quick-dash{color:var(--muted)}.quick-error{margin:8px 0 0 34px}.quick-footer{display:flex;justify-content:flex-end;margin-top:12px}.quick-save{border-radius:999px;height:38px;padding:0 22px}.day-cell.drafting{background:color-mix(in srgb,var(--accent) 7%,var(--surface))}.draft-chip{--course:var(--accent);background:var(--accent);color:var(--accent-text);cursor:default;font-weight:500}.updates-callout strong{align-items:center;display:flex;gap:8px}.update-list{gap:12px;list-style:none;margin:0;padding:0}.update-card,.update-list{display:flex;flex-direction:column}.update-card{border:1px solid var(--border);border-left:4px solid var(--course);border-radius:10px;gap:8px;padding:12px 14px}.update-head{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.course-tag{background:color-mix(in srgb,var(--course) 15%,var(--surface));border-radius:6px;color:color-mix(in srgb,var(--course) 80%,black);font-size:12px;font-weight:700;padding:2px 7px}.update-fields{display:flex;flex-direction:column;gap:4px;margin:0}.update-fields div{display:flex;gap:8px}.update-fields dt{color:var(--muted);flex:0 0 56px;font-size:13px}.update-fields dd{margin:0}.update-old{color:var(--muted);text-decoration:line-through}.update-change,.update-quote{font-size:13px}.update-quote{border-left:3px solid var(--border-strong);color:var(--muted);font-style:italic;margin:0;padding:2px 0 2px 10px}.update-source{color:var(--muted);font-size:12px}.update-actions{display:flex;gap:6px}.create-menu{position:relative}.create-button{gap:8px;padding:0 12px 0 10px}.create-plus{font-size:18px;font-weight:400;line-height:1}.create-caret{font-size:13px;opacity:.85}.create-options{background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 28px rgba(90,55,25,.14);display:flex;flex-direction:column;min-width:300px;padding:6px;position:absolute;right:0;top:calc(100% + 6px);z-index:30}.create-options button{background:none;border:0;border-radius:7px;color:var(--text);cursor:pointer;display:flex;flex-direction:column;gap:2px;padding:9px 12px;text-align:left}.create-options button:focus-visible,.create-options button:hover{background:var(--surface-2);outline:none}.create-options strong{font-size:14px;font-weight:600}.create-options span{color:var(--muted);font-size:12px}.create-menu.large{align-self:flex-start}.create-menu.large .create-button{border-radius:16px;box-shadow:0 1px 2px rgba(90,55,25,.18),0 6px 18px color-mix(in srgb,var(--accent) 32%,transparent);font-size:16px;font-weight:600;gap:10px;height:54px;padding:0 22px 0 18px;transition:box-shadow .15s,transform .15s,background .12s}.create-menu.large .create-button:hover{box-shadow:0 2px 4px rgba(90,55,25,.2),0 10px 26px color-mix(in srgb,var(--accent) 40%,transparent);transform:translateY(-1px)}.create-menu.large .create-plus{font-size:28px;font-weight:300;margin-top:-2px}.create-menu.large .create-options{left:0;min-width:0;right:auto;width:254px}.create-menu.compact{display:none}.sidebar{background:var(--surface);border-right:1px solid var(--border);order:-1;display:flex;flex-direction:column;gap:24px;overflow:auto;overflow-wrap:break-word;padding:18px}.side-section h2{color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.side-section-toggle{align-items:center;border-radius:6px;display:flex;gap:8px;margin:-4px -6px 6px;padding:4px 6px;width:calc(100% + 12px)}.side-section-toggle:hover{background:var(--surface-2)}.side-section-toggle[aria-expanded=false]{margin-bottom:-4px}.section-count{background:var(--surface-2);border-radius:999px;color:var(--muted);font-size:11px;font-weight:700;line-height:18px;min-width:18px;padding:0 6px;text-align:center}.chevron{color:var(--muted);flex-shrink:0;margin-left:auto;transform:rotate(-90deg);transition:transform .15s}.chevron.open{transform:rotate(0deg)}.review-callout{background:var(--warn-soft);border:1px solid color-mix(in srgb,var(--warn) 30%,transparent);border-radius:var(--radius);display:flex;flex-direction:column;gap:2px;padding:12px 14px}.review-callout strong{color:var(--warn)}.review-callout span{color:var(--muted);font-size:13px}.review-callout .count{color:var(--surface);font-size:11px}.review-callout:hover{border-color:var(--warn)}.tba-panel{--tba:#8f633c;background:linear-gradient(180deg,var(--surface-2),color-mix(in srgb,var(--surface-2) 40%,var(--surface)));border:1px solid var(--border-strong);border-left:4px solid var(--tba);border-radius:var(--radius);display:flex;flex-direction:column;gap:12px;padding:14px}.tba-header{align-items:flex-start;display:flex;gap:10px;width:100%}.tba-heading{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0}.tba-title-row{align-items:center;display:flex;gap:8px}.tba-header h2{font-size:15px;font-weight:700}.tba-header .section-count{background:var(--tba);color:#fff}.tba-header .chevron{margin-top:3px}.tba-description{color:var(--muted);font-size:12px}.tba-badge{background:var(--tba);border-radius:6px;color:#fff;flex-shrink:0;font-size:11px;font-weight:800;letter-spacing:.05em;padding:3px 6px}.tba-list{list-style:none;margin:0;padding:0}.tba-item,.tba-list{display:flex;flex-direction:column;gap:8px}.tba-item{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--course);border-radius:8px;padding:10px}.tba-main{display:flex;flex-direction:column;gap:3px}.tba-main:hover strong{text-decoration:underline}.tba-title{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.tba-note{color:var(--muted);font-size:12px;font-style:italic}.tba-add{align-self:flex-start}.tba-form{display:flex;flex-direction:column;gap:8px}.tba-form-actions{display:flex;gap:6px}.section-callout{background:color-mix(in srgb,var(--course) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--course) 35%,transparent);border-radius:var(--radius);display:flex;flex-direction:column;gap:2px;padding:12px 14px}.section-callout:hover{border-color:var(--course)}.section-callout span{color:var(--muted);font-size:13px}.section-link{color:var(--accent);font-size:12px;font-weight:600}.section-link:hover{text-decoration:underline}.section-options{gap:8px}.section-option,.section-options{display:flex;flex-direction:column}.section-option{border:1px solid var(--border-strong);border-radius:var(--radius);gap:2px;padding:12px 14px;transition:border-color .12s,background .12s}.section-option span{color:var(--muted);font-size:13px}.section-option.selected,.section-option:hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent)}.section-option .scheme-items{font-size:12px;margin-top:4px}.inline-hint{background:var(--accent-soft);border-radius:8px;font-size:13px;padding:8px 10px}.course-list,.tip-list,.upcoming-list,.uploaded ul{display:flex;flex-direction:column;list-style:none;margin:0;padding:0}.upcoming-list{gap:4px}.upcoming-item{align-items:center;border-radius:8px;display:flex;gap:10px;padding:6px;width:100%}.upcoming-item:hover{background:var(--surface-2)}.date-badge{align-items:center;background:color-mix(in srgb,var(--course) 14%,var(--surface));border-radius:8px;display:flex;flex-direction:column;flex-shrink:0;justify-content:center;line-height:1.1;padding:4px 0;width:40px}.date-badge span{color:color-mix(in srgb,var(--course) 75%,var(--text));font-size:10px;font-weight:700;text-transform:uppercase}.date-badge strong{font-size:16px}.upcoming-text{display:flex;flex-direction:column;min-width:0}.upcoming-text strong{font-weight:600;line-height:1.3}.upcoming-text>span{color:var(--muted);font-size:12px}.upcoming-text .upcoming-today{font-weight:700}.import-list{display:flex;flex-direction:column;gap:6px;list-style:none;margin:0;padding:0}.import-row{align-items:flex-start;border-radius:8px;display:flex;gap:10px;padding:6px 8px;width:100%}button.import-row:hover{background:var(--surface-2)}.import-item.reading .import-row{background:color-mix(in srgb,var(--accent-soft) 70%,transparent)}.import-icon{align-items:center;border-radius:999px;color:#fff;display:inline-flex;flex-shrink:0;font-size:11px;font-weight:800;height:20px;justify-content:center;margin-top:1px;width:20px}.import-icon.reading{color:var(--accent)}.import-icon.added,.import-icon.updated{background:var(--ok)}.import-icon.choice{background:var(--warn)}.import-icon.skipped{background:var(--faint)}.import-icon.failed{background:var(--danger)}.import-text{display:flex;flex:1 1;flex-direction:column;gap:1px;line-height:1.3;min-width:0}.import-text strong{font-size:13px}.import-text small{color:var(--muted);font-size:12px}.import-item.failed .import-text small{color:var(--danger)}.import-clear{font-size:12px;margin-top:6px}.course-list{gap:8px}.course-list li{align-items:center;display:flex;gap:10px}.course-list li>span:last-child{display:flex;flex-direction:column;line-height:1.25}.course-list li{flex-wrap:wrap}.course-info{display:flex;flex:1 1;flex-direction:column;line-height:1.25;min-width:0}.course-toggle{accent-color:var(--muted);cursor:pointer;flex-shrink:0;height:14px;margin:0;width:14px}.course-list li.is-hidden .course-dot-button,.course-list li.is-hidden .course-info{opacity:.5}.course-dot-button{align-items:center;border-radius:999px;display:inline-flex;height:22px;justify-content:center;width:22px}.course-dot-button:hover,.course-dot-button[aria-expanded=true]{background:var(--surface-2)}.course-dot-button:hover .course-dot,.course-dot-button[aria-expanded=true] .course-dot{box-shadow:0 0 0 3px color-mix(in srgb,var(--course) 30%,transparent)}.color-picker{align-items:center;background:var(--surface-2);border-radius:8px;display:flex;flex-basis:100%;gap:8px;justify-content:space-between;padding:8px}.color-swatches{display:flex;flex-wrap:wrap;gap:6px}.color-swatch{border:2px solid transparent;border-radius:999px;cursor:pointer;height:20px;outline-offset:1px;width:20px}.color-swatch.selected{border-color:var(--text)}.color-swatch.custom{align-items:center;border:1px dashed var(--border-strong);color:var(--muted);display:inline-flex;font-size:13px;justify-content:center;overflow:hidden;position:relative}.color-swatch.custom.selected{border:2px solid var(--text)}.color-swatch.custom input{cursor:pointer;inset:0;opacity:0;position:absolute}.color-picker .link-button{margin-left:0}.term-filter{align-items:center;display:flex;gap:8px;margin-bottom:10px}.term-filter span{color:var(--muted);font-size:12px;font-weight:600}.term-filter select{background:var(--surface);border:1px solid var(--border-strong);border-radius:6px;flex:1 1;font-size:13px;padding:4px 6px}.course-remove{font-size:18px;height:26px;opacity:0;width:26px}.course-list li:hover .course-remove,.course-remove:focus-visible,.course-remove[aria-expanded=true]{opacity:1}@media (hover:none){.course-remove{opacity:1}}.course-remove-confirm{background:var(--danger-soft);border-radius:8px;display:flex;flex-basis:100%;flex-direction:column;font-size:13px;gap:8px;padding:8px 10px}.course-list li.is-removing{pointer-events:none}.course-list li.is-removing.working>:not(.course-remove-confirm){animation:removing-pulse 1s ease-in-out infinite}.course-list li.is-removing.leaving{animation:course-leave .34s ease-in forwards;overflow:hidden}@keyframes removing-pulse{50%{opacity:.4}}@keyframes course-leave{0%{max-height:240px;opacity:1;transform:none}45%{opacity:0;transform:translateX(-24px)}to{margin-bottom:0;margin-top:0;max-height:0;opacity:0;padding-bottom:0;padding-top:0;transform:translateX(-24px)}}.chip.fading{pointer-events:none}.chip.fading.working{animation:removing-pulse 1s ease-in-out infinite}.chip.fading.leaving{animation:chip-leave .3s ease-in forwards}@keyframes chip-leave{to{opacity:0;transform:scale(.92)}}.button-spinner{animation:spin .7s linear infinite;border-radius:999px;border:2px solid;border-right:2px solid transparent;display:inline-block;height:12px;width:12px}@keyframes spin{to{transform:rotate(1turn)}}.course-remove-actions{display:flex;gap:6px}.course-list small{color:var(--muted);font-size:12px}.tip-list{gap:8px}.tip-list li{background:var(--surface-2);border-radius:8px;font-size:13px;padding:8px 10px}.drawer-layer{align-items:center;animation:fade-in .14s ease-out;background:rgba(70,40,15,.28);display:flex;inset:0;justify-content:center;padding:24px 16px;position:fixed;z-index:20}.drawer{animation:quick-in .16s ease-out;background:var(--surface);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;max-height:min(760px,100%);max-width:100%;overflow:hidden;width:540px}.drawer-header{align-items:flex-start;border-bottom:1px solid var(--border);display:flex;gap:12px;justify-content:space-between;padding:20px 22px 14px}.drawer-header h2{font-size:18px;font-weight:650;letter-spacing:-.01em}.drawer-subtitle{align-items:center;color:var(--muted);display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.drawer-body{flex:1 1;overflow:auto;padding:18px 22px 22px}.day-window .drawer-body{display:flex;overflow:hidden;padding:0}.day-window .time-head{display:none}.day-window .time-view{animation:none;border:0;border-radius:0;box-shadow:none;height:min(560px,62vh);min-height:0}.drawer.day-note,.drawer.day-window.sized{max-height:calc(100vh - 48px);max-width:100%;position:relative}.day-window.sized .time-view{flex:1 1;height:auto}.drawer-pair{align-items:stretch;display:flex;gap:14px;max-height:100%;max-width:100%}.day-note{width:360px}.drawer-pair>.drawer{min-width:0}.resize-handle{position:absolute;touch-action:none;z-index:3}.resize-handle.left,.resize-handle.right{bottom:0;cursor:ew-resize;top:16px;width:12px}.resize-handle.left{left:0}.resize-handle.right{right:0}.resize-handle.top{cursor:ns-resize;top:0;height:12px;left:16px;right:16px}.resize-handle.corner-left,.resize-handle.corner-right{top:0;height:18px;width:18px}.resize-handle.corner-left{cursor:nwse-resize;left:0}.resize-handle.corner-right{cursor:nesw-resize;right:0}.resize-handle:after{background:var(--border-strong);border-radius:999px;content:"";opacity:.6;position:absolute;transition:opacity .15s,background .15s,border-color .15s,height .2s var(--ease-out-soft,ease-out),width .2s var(--ease-out-soft,ease-out)}.resize-handle.left:after,.resize-handle.right:after{height:44px;top:50%;transform:translateY(-50%);width:4px}.resize-handle.left:after{left:4px}.resize-handle.right:after{right:4px}.resize-handle.top:after{height:4px;left:50%;top:4px;transform:translateX(-50%);width:44px}.resize-handle.corner-left:after,.resize-handle.corner-right:after{background:none;border-radius:0;border-top:2px solid var(--border-strong);height:8px;top:5px;width:8px}.resize-handle.corner-left:after{border-left:2px solid var(--border-strong);border-top-left-radius:4px;left:5px}.resize-handle.corner-right:after{border-right:2px solid var(--border-strong);border-top-right-radius:4px;right:5px}.resize-handle.is-dragging:after,.resize-handle:focus-visible:after,.resize-handle:hover:after{opacity:1}.resize-handle:not([class*=corner]):focus-visible:after,.resize-handle:not([class*=corner]):hover:after{background:var(--muted)}.resize-handle[class*=corner]:hover:after{border-color:var(--muted)}.resize-handle.left.is-dragging:after,.resize-handle.right.is-dragging:after{background:var(--accent);height:72px}.resize-handle.top.is-dragging:after{background:var(--accent);width:72px}.resize-handle[class*=corner].is-dragging:after{border-color:var(--accent)}.resize-handle:focus-visible{outline:none}body.is-resizing,body.is-resizing *{-webkit-user-select:none;-moz-user-select:none;user-select:none}body.is-resizing-columns,body.is-resizing-columns *{cursor:ew-resize!important}body.is-resizing-rows,body.is-resizing-rows *{cursor:ns-resize!important}body.is-resizing-left-corner,body.is-resizing-left-corner *{cursor:nwse-resize!important}body.is-resizing-right-corner,body.is-resizing-right-corner *{cursor:nesw-resize!important}.day-note-head{flex:1 1;min-width:0}.day-note-title{background:transparent;border:1px solid transparent;border-radius:6px;color:var(--text);font:inherit;margin:-2px -6px;padding:1px 6px;width:calc(100% + 12px)}.day-note-title::placeholder{color:var(--text)}.day-note-title:hover{border-color:var(--border)}.day-note-title:focus{background:var(--surface);border-color:var(--accent);outline:none}.day-note-title:focus::placeholder{color:var(--muted)}.day-note .drawer-body{display:flex;padding:14px 18px 18px}.day-note-tools{align-items:center;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:2px;padding:6px 12px}.day-note-tool{align-items:center;border-radius:6px;color:var(--text);display:inline-flex;font-size:14px;height:28px;justify-content:center;min-width:28px;padding:0 6px;transition:background .12s,color .12s}.day-note-tool:hover{background:var(--surface-2)}.day-note-tool[aria-pressed=true]{background:var(--accent-soft);color:var(--accent)}.day-note-tool.size-2{font-size:11px}.day-note-tool.size-5{font-size:17px;font-weight:600}.day-note-tool sub{font-size:9px}.day-note-divider{background:var(--border);height:18px;margin:0 4px;width:1px}.day-note-text{color:var(--text);flex:1 1;line-height:1.5;min-height:200px;outline:none;overflow-wrap:break-word;width:100%}.day-note-text:empty:before{color:var(--muted);content:attr(data-placeholder);pointer-events:none}.day-note-text ol,.day-note-text ul{margin:4px 0;padding-left:22px}.day-note-text ul{list-style:disc}.day-note-text ol{list-style:decimal}.day-note-text font[size="2"]{font-size:.85em}.day-note-text font[size="3"]{font-size:1em}.day-note-text font[size="5"]{font-size:1.3em}@media (max-width:920px){.drawer-pair{flex-direction:column;overflow:auto;width:100%}.drawer-pair>.drawer{flex-shrink:0;max-height:none;max-width:none;width:100%}.drawer-pair .day-window .time-view{height:52vh}.day-note-text{min-height:140px}}.drawer-footer{border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:8px;padding:14px 22px}@keyframes fade-in{0%{opacity:0}}.form{gap:14px}.field,.form{display:flex;flex-direction:column}.field{gap:5px}.field>span{color:var(--muted);font-size:12px;font-weight:600}.field input,.field select,.field textarea{background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;min-height:36px;padding:7px 10px;width:100%}.field textarea{resize:vertical}.time-field{position:relative}.time-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);left:0;list-style:none;margin:0;max-height:232px;min-width:100%;overflow-y:auto;padding:4px;position:absolute;top:calc(100% + 4px);z-index:30}.time-menu button{align-items:baseline;border-radius:6px;display:flex;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;gap:12px;justify-content:space-between;padding:6px 10px;white-space:nowrap;width:100%}.time-menu button.is-active,.time-menu button:hover{background:var(--surface-2)}.time-menu button.is-selected{background:var(--accent-soft);color:var(--accent);font-weight:600}.time-menu small{color:var(--muted);font-size:12px;font-weight:400}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.field-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.inline-warning{background:var(--warn-soft);border-radius:8px;color:var(--warn);font-size:13px;padding:8px 10px}.source{border-top:1px solid var(--border);padding-top:14px}.source-heading{color:var(--muted);display:flex;font-size:12px;font-weight:600;justify-content:space-between;margin-bottom:6px}.source blockquote{background:var(--surface-2);border-left:3px solid var(--border-strong);border-radius:0 8px 8px 0;color:var(--muted);font-size:13px;margin:0;padding:8px 12px;white-space:pre-wrap}.catalog-search{gap:10px}.catalog-match,.catalog-search{display:flex;flex-direction:column}.catalog-match{background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 25%,transparent);border-radius:12px;gap:8px;padding:14px}.catalog-match .catalog-results li{background:var(--surface)}.catalog-match-anyway{align-self:flex-start;font-size:13px;margin-left:0;text-align:left}.catalog-results{display:flex;flex-direction:column;gap:6px;list-style:none;margin:0;padding:0}.catalog-results li{align-items:center;border:1px solid var(--border);border-radius:8px;display:flex;gap:10px;justify-content:space-between;padding:8px 10px}.catalog-results li.catalog-result{align-items:stretch;flex-direction:column}.catalog-row{align-items:center;display:flex;gap:10px;justify-content:space-between}.catalog-added{align-items:center;display:inline-flex;flex-shrink:0;gap:8px}.catalog-missing{border-top:1px solid var(--border);display:flex;flex-direction:column;gap:8px;margin-top:8px;padding-top:10px}.catalog-missing ul{display:flex;flex-direction:column;gap:4px;list-style:none;margin:0;padding:0}.catalog-results .catalog-missing li{border:0;padding:0}.catalog-missing label{align-items:flex-start;border-radius:6px;cursor:pointer;display:flex;gap:8px;padding:4px 6px}.catalog-missing label:hover{background:var(--surface-2)}.catalog-missing label input{margin-top:3px}.catalog-missing label>span{display:flex;flex-direction:column}.catalog-missing-actions{display:flex;gap:6px}.catalog-text{display:flex;flex-direction:column;min-width:0}.catalog-text span{color:var(--muted);font-size:12px}.extension-hint{background:var(--surface-2);border-radius:var(--radius);display:flex;flex-direction:column;gap:6px;margin-top:18px;padding:14px 16px}.extension-hint ol{display:flex;flex-direction:column;gap:4px;margin:0;padding-left:20px}.or-divider{align-items:center;color:var(--muted);display:flex;font-size:12px;gap:10px;margin:22px 0 16px}.or-divider:after,.or-divider:before{background:var(--border);content:"";flex:1 1;height:1px}.dropzone{align-items:center;border:2px dashed var(--border-strong);border-radius:var(--radius);color:var(--muted);cursor:pointer;display:flex;flex-direction:column;gap:2px;padding:28px 16px;position:relative;text-align:center;transition:border-color .12s,background .12s}.dropzone input{height:1px;opacity:0;position:absolute;width:1px}.dropzone strong{color:var(--text)}.dropzone.dragging,.dropzone:hover{background:var(--accent-soft);border-color:var(--accent)}.dropzone.has-file{border-style:solid;border-color:var(--accent)}.dropzone-icon{color:var(--accent);font-size:26px;margin-bottom:4px}.uploaded{margin-top:28px}.uploaded h3{color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.05em;margin-bottom:10px;text-transform:uppercase}.uploaded li{align-items:center;border-top:1px solid var(--border);display:flex;gap:10px;padding:10px 0}.uploaded-text{display:flex;flex-direction:column;min-width:0}.uploaded-text strong{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.uploaded-text span{color:var(--muted);font-size:12px}.review-list{gap:10px}.review-card,.review-list{display:flex;flex-direction:column}.review-card{border:1px solid var(--border);border-left:4px solid var(--course);border-radius:var(--radius);gap:4px;overflow:hidden;padding:12px 14px;position:relative;transition:background-color .22s,border-color .22s}.review-card.is-confirmed{background:var(--ok-soft);border-color:color-mix(in srgb,var(--ok) 35%,transparent);border-left-color:var(--ok)}.review-card.is-ignored{background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 25%,transparent);border-left-color:var(--danger)}.review-card.is-confirmed .review-actions,.review-card.is-ignored .review-actions{opacity:.45;pointer-events:none;transition:opacity .2s}.all-done-check,.confirm-check{align-items:center;background:var(--ok);border-radius:999px;color:#fff;display:none;justify-content:center}.confirm-check{height:32px;position:absolute;right:12px;top:12px;width:32px}.review-card.is-confirmed .confirm-check{animation:check-pop .38s cubic-bezier(.3,1.6,.5,1) both;display:flex}.all-done-check svg,.confirm-check svg{fill:none;height:60%;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:3;width:60%}.all-done-check path,.confirm-check path{animation:check-draw .26s ease-out .14s both;stroke-dasharray:22}.review-card.is-leaving{animation:card-leave .3s ease-in forwards}.all-done-check{animation:check-pop .48s cubic-bezier(.3,1.6,.5,1) both;display:flex;height:56px;margin-bottom:4px;width:56px}.empty-state.all-done p,.empty-state.all-done strong{animation:rise-in .36s ease-out .16s both}.due-nudge{animation:nudge-wiggle .9s var(--nudge-delay,0s) cubic-bezier(.36,.07,.19,.97) both,nudge-ring 1.1s var(--nudge-delay,0s) ease-out both;position:relative;z-index:2}.event-row.due-nudge,.upcoming-item.due-nudge{animation-name:nudge-shake,nudge-ring}.upcoming-item.due-nudge .date-badge{animation:nudge-wiggle .9s var(--nudge-delay,0s) cubic-bezier(.36,.07,.19,.97) both}@keyframes nudge-wiggle{0%,to{transform:none}15%{transform:scale(1.14) rotate(-5deg)}30%{transform:scale(1.14) rotate(5deg)}45%{transform:scale(1.1) rotate(-3deg)}60%{transform:scale(1.06) rotate(2deg)}78%{transform:scale(1.02) rotate(0)}}@keyframes nudge-shake{0%,to{transform:none}15%{transform:scale(1.02) translateX(-4px)}30%{transform:scale(1.02) translateX(4px)}45%{transform:scale(1.015) translateX(-3px)}60%{transform:scale(1.01) translateX(2px)}78%{transform:translateX(0)}}@keyframes nudge-ring{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--course) 0%,transparent)}15%{box-shadow:0 0 0 0 color-mix(in srgb,var(--course) 55%,transparent)}to{box-shadow:0 0 0 10px color-mix(in srgb,var(--course) 0%,transparent)}}.chip.just-confirmed{animation:chip-pop .52s cubic-bezier(.3,1.6,.5,1)}@keyframes check-pop{0%{opacity:0;transform:scale(.3)}}@keyframes check-draw{0%{stroke-dashoffset:22}to{stroke-dashoffset:0}}@keyframes card-leave{0%{max-height:var(--card-height,400px)}40%{opacity:.6;transform:translateX(16px)}to{border-width:0;margin-bottom:-10px;max-height:0;opacity:0;padding-bottom:0;padding-top:0;transform:translateX(40px)}}@keyframes rise-in{0%{opacity:0;transform:translateY(6px)}}@keyframes chip-pop{0%{transform:scale(1)}35%{box-shadow:0 0 0 4px color-mix(in srgb,var(--course) 25%,transparent);transform:scale(1.08)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.all-done-check,.all-done-check path,.chip.just-confirmed,.confirm-check,.confirm-check path,.due-nudge,.empty-state.all-done p,.empty-state.all-done strong,.review-card.is-leaving,.upcoming-item.due-nudge .date-badge{animation:none}}.review-top{align-items:center;display:flex;gap:6px}.review-title{font-size:15px;font-weight:600}.review-date{font-size:13px}.review-date.missing{color:var(--warn);font-weight:600}.review-source{-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--muted);display:-webkit-box;font-size:12px;overflow:hidden}.review-actions{display:flex;gap:6px;margin-top:6px}.empty-state{align-items:center;color:var(--muted);display:flex;flex-direction:column;gap:8px;padding:80px 20px;text-align:center}.empty-state strong{color:var(--text);font-size:16px}.empty-state.compact{padding:40px 10px}.empty-state .button{margin-top:8px}.toasts{bottom:20px;display:flex;flex-direction:column;gap:8px;left:50%;max-width:calc(100% - 32px);position:fixed;transform:translateX(-50%);width:480px;z-index:30}.toast{align-items:center;animation:fade-in .16s ease-out;background:var(--text);border-radius:var(--radius);box-shadow:var(--shadow-lg);color:var(--bg);display:flex;gap:12px;justify-content:space-between;padding:6px 6px 6px 16px}.toast .icon-button{color:inherit;opacity:.7}.toast .icon-button:hover{background:transparent;opacity:1}.toast.error{background:var(--danger);color:#fff}@media (max-width:1080px){.layout{grid-template-columns:minmax(0,1fr);overflow:auto}.sidebar-resizer{display:none}.main{overflow:visible}.create-menu.compact{display:block}.create-menu.large{display:none}.sidebar{border-right:0;border-top:1px solid var(--border);order:0;overflow:visible}}@media (max-width:760px){.topbar{flex-wrap:wrap;gap:10px;padding:10px 16px}.toolbar{order:3;flex-basis:100%}.topbar-actions{flex:1 1}.main{padding:12px 16px}.month{min-height:0}.day-cell{min-height:72px;padding:4px}.time-view{--time-columns:40px repeat(var(--day-count),minmax(0,1fr));min-height:480px}.time-day-head strong{font-size:15px;height:30px;min-width:30px}.time-gutter span,.time-gutter-cell{font-size:10px}.chip{font-size:11px;padding:2px 4px}.chip-time{display:none}.field-grid{grid-template-columns:minmax(0,1fr)}}:root{--glass-fill:rgba(255,250,242,0.52);--glass-fill-strong:rgba(255,250,242,0.94);--glass-control:rgba(255,255,255,0.5);--glass-control-hover:rgba(255,255,255,0.75);--glass-border:rgba(255,255,255,0.7);--glass-blur:blur(24px) saturate(170%);--glass-edge:inset 0 1px 0 rgba(255,255,255,0.95),inset 0 -1px 0 rgba(255,255,255,0.3),inset 0 0 0 1px rgba(255,255,255,0.25);--glass-shadow:0 10px 34px rgba(90,55,25,0.12),0 1px 3px rgba(90,55,25,0.08);--glass-shadow-float:0 24px 60px rgba(90,55,25,0.22),0 2px 8px rgba(90,55,25,0.1)}body{background:radial-gradient(at 8% 12%,#e8dac6 0,transparent 42%),radial-gradient(at 88% 6%,#dfd8cd 0,transparent 38%),radial-gradient(at 62% 92%,#eadfcd 0,transparent 46%),radial-gradient(at 14% 88%,#d9d3c8 0,transparent 40%),radial-gradient(at 96% 62%,#e6dccd 0,transparent 36%),var(--bg);background-attachment:fixed}.sidebar,.topbar{-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);background:var(--glass-fill);border:1px solid var(--glass-border);box-shadow:var(--glass-edge),var(--glass-shadow)}.topbar{margin:10px 12px 0;position:relative;z-index:10}.sidebar,.topbar{border-radius:22px}.sidebar{margin:12px 0 12px 12px}@media (max-width:1080px){.sidebar{margin:0 12px 12px}}.month,.time-view{border-color:rgba(255,255,255,.8);border-radius:20px;box-shadow:var(--glass-shadow)}.button,.segmented,.view-menu-button{background:var(--glass-control);border:1px solid var(--glass-border);border-radius:999px;box-shadow:var(--glass-edge),0 1px 2px rgba(90,55,25,.08)}.button:hover:not(:disabled){background:var(--glass-control-hover)}.button.primary,.create-menu.large .create-button,.create-menu.large .create-button:hover{-webkit-backdrop-filter:blur(12px) saturate(140%);backdrop-filter:blur(12px) saturate(140%);background:color-mix(in srgb,var(--accent) 92%,transparent);border-color:rgba(255,255,255,.35);box-shadow:none;transform:none}.button.primary:hover:not(:disabled),.create-menu.large .create-button:hover{background:color-mix(in srgb,var(--accent-hover) 94%,transparent)}.button.danger-ghost{background:transparent;border-color:transparent;box-shadow:none}.segmented{padding:3px}.segmented button{border-radius:999px}.segmented button[aria-pressed=true]{background:rgba(255,255,255,.9);box-shadow:inset 0 1px 0 #fff,0 2px 8px rgba(90,55,25,.14)}.icon-button{border-radius:999px}.icon-button:hover{background:var(--glass-control-hover);box-shadow:var(--glass-edge)}.create-options,.drawer,.quick-box,.time-menu,.view-options{-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);background:var(--glass-fill-strong);border:1px solid var(--glass-border);box-shadow:var(--glass-edge),var(--glass-shadow-float)}.create-options,.time-menu,.view-options{border-radius:18px}.create-options button,.time-menu button,.view-options button{border-radius:11px}.create-options button:focus-visible,.create-options button:hover,.time-menu button.is-active,.time-menu button:hover,.view-options button:focus-visible,.view-options button:hover{background:rgba(255,255,255,.7)}.drawer,.quick-box{border-radius:26px}.drawer-footer,.drawer-header{border-color:rgba(223,200,175,.55)}.drawer-layer{-webkit-backdrop-filter:blur(6px) saturate(120%);backdrop-filter:blur(6px) saturate(120%);background:rgba(70,40,15,.18)}.field input,.field select,.field textarea{background:rgba(255,255,255,.6);border-color:rgba(223,200,175,.8);border-radius:12px}.field input:focus,.field select:focus,.field textarea:focus{background:rgba(255,255,255,.85)}.agenda-month h2{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:transparent;-webkit-mask-image:linear-gradient(#000 calc(100% - 10px),transparent);mask-image:linear-gradient(#000 calc(100% - 10px),transparent)}.review-callout{background:color-mix(in srgb,var(--warn-soft) 70%,transparent);border-color:rgba(255,255,255,.7);border-radius:16px;box-shadow:var(--glass-edge)}.import-item.reading .import-row{background:rgba(255,255,255,.55);box-shadow:var(--glass-edge)}.has-tip:after{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:rgba(47,33,24,.78);border-radius:10px}@supports not (((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))) or (-webkit-backdrop-filter:blur(1px))){:root{--glass-fill:rgba(255,250,242,0.92);--glass-fill-strong:rgba(255,250,242,0.98)}}@media (prefers-reduced-transparency:reduce){:root{--glass-fill:var(--surface);--glass-fill-strong:var(--surface);--glass-control:var(--surface);--glass-control-hover:var(--surface-2)}}:root{--ease-out-soft:cubic-bezier(0.22,1,0.36,1);--ease-settle:cubic-bezier(0.34,1.32,0.64,1)}.create-options,.time-menu,.view-options{animation:menu-in .19s var(--ease-out-soft);transform-origin:top right}.time-menu,.view-options{transform-origin:top left}@keyframes menu-in{0%{opacity:0;transform:translateY(-6px) scale(.96)}}.drawer-layer{animation:fade-in .2s ease-out}.drawer{animation:window-in .28s var(--ease-settle)}.quick-box{animation:window-in .24s var(--ease-settle)}.drawer-layer.closing{animation:fade-out .17s ease-in forwards;pointer-events:none}.drawer-layer.closing .drawer{animation:window-out .17s ease-in forwards}@keyframes window-in{0%{opacity:0;transform:translateY(14px) scale(.97)}}@keyframes window-out{to{opacity:0;transform:translateY(10px) scale(.97)}}@keyframes fade-out{to{opacity:0}}.side-section-reveal{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .26s var(--ease-out-soft),opacity .2s ease}.side-section-reveal.open{grid-template-rows:1fr;opacity:1}.side-section-reveal>.side-section-body{min-height:0;overflow:hidden}@supports (overflow-clip-margin:1px){.side-section-reveal>.side-section-body{overflow:clip;overflow-clip-margin:14px}}.chevron{transition:transform .26s var(--ease-out-soft)}.color-picker,.course-remove-confirm,.tba-form{animation:unfold .22s var(--ease-out-soft)}@keyframes unfold{0%{opacity:0;transform:translateY(-4px)}}.agenda,.month,.time-view{animation:view-in .26s var(--ease-out-soft)}@keyframes view-in{0%{opacity:0;transform:translateY(8px)}}.button,.icon-button,.link-button,.segmented button{transition:background .12s,border-color .12s,color .12s,box-shadow .15s,transform .12s var(--ease-out-soft)}.button:active:not(:disabled),.icon-button:active,.segmented button:active{transform:scale(.96)}@media (prefers-reduced-motion:reduce){.agenda,.color-picker,.course-remove-confirm,.create-options,.drawer,.drawer-layer,.drawer-layer.closing,.drawer-layer.closing .drawer,.month,.quick-box,.tba-form,.time-menu,.time-view,.view-options{animation:none}.chevron,.side-section-reveal{transition:none}.button:active:not(:disabled),.icon-button:active,.segmented button:active{transform:none}}.button.danger-ghost{isolation:isolate;overflow:hidden;position:relative}.button.danger-ghost:before{background:var(--danger-soft);border-radius:inherit;content:"";inset:0;opacity:0;position:absolute;transform:scale(.4);transition:opacity .16s ease-out,transform .26s cubic-bezier(.3,1.4,.5,1);z-index:-1}.button.danger-ghost:hover:not(:disabled){background:transparent}.button.danger-ghost:focus-visible:before,.button.danger-ghost:hover:not(:disabled):before{opacity:1;transform:scale(1)}.button.danger-ghost:active:not(:disabled){box-shadow:0 0 0 4px color-mix(in srgb,var(--danger) 18%,transparent);transform:scale(.92)}.course-remove{transition:opacity .12s,color .16s,background .12s,transform .26s cubic-bezier(.3,1.4,.5,1)}.course-remove:hover,.course-remove[aria-expanded=true]{color:var(--danger);transform:rotate(90deg)}.course-remove:active{transform:rotate(90deg) scale(.85)}@media (prefers-reduced-motion:reduce){.button.danger-ghost:before,.course-remove{transition:opacity .12s,color .12s}.button.danger-ghost:active:not(:disabled),.button.danger-ghost:before,.course-remove:active,.course-remove:hover,.course-remove[aria-expanded=true]{transform:none}}.tour-layer{animation:fade-in .26s ease-out;inset:0;position:fixed;z-index:60}.tour-layer.leaving{animation:fade-out .3s ease-in forwards}.tour-spotlight{border-radius:18px;box-shadow:0 0 0 3px rgba(255,255,255,.95),0 0 0 9999px rgba(47,33,24,.45);pointer-events:none;position:fixed;transition:top .46s var(--ease-out-soft),left .46s var(--ease-out-soft),width .46s var(--ease-out-soft),height .46s var(--ease-out-soft),border-radius .46s var(--ease-out-soft)}.tour-spotlight:not(.empty){animation:spotlight-glow 2.2s ease-in-out infinite}.tour-spotlight.empty{border-radius:999px;box-shadow:0 0 0 9999px rgba(47,33,24,.45)}@keyframes spotlight-glow{50%{box-shadow:0 0 0 5px rgba(255,255,255,.8),0 0 0 9999px rgba(47,33,24,.45)}}.tour-card{align-items:flex-end;display:flex;gap:4px;max-width:calc(100vw - 32px);position:fixed;transition:top .46s var(--ease-out-soft),left .46s var(--ease-out-soft);width:400px}.tour-goose{flex-shrink:0;transform-origin:50% 100%}.tour-goose img{display:block;filter:drop-shadow(0 6px 10px rgba(47,33,24,.25));height:103px;width:72px}.tour-goose.arriving{animation:goose-waddle-in .9s var(--ease-out-soft) both}.tour-goose.arriving img{animation:goose-waddle .3s ease-in-out 3}.tour-goose.hopping{animation:goose-hop .52s var(--ease-settle) both}.tour-goose img{animation:goose-sway 2.6s ease-in-out .9s infinite}.tour-goose.cheering{animation:goose-cheer .9s var(--ease-settle) both}@keyframes goose-waddle-in{0%{opacity:0;transform:translateX(-160px)}}@keyframes goose-waddle{0%,to{transform:rotate(0)}25%{transform:rotate(-7deg) translateY(-3px)}75%{transform:rotate(7deg) translateY(-3px)}}@keyframes goose-hop{0%{transform:translateY(0)}35%{transform:translateY(-16px) rotate(-4deg)}60%{transform:translateY(0) scale(1.04,.95)}to{transform:none}}@keyframes goose-sway{0%,to{transform:rotate(0)}50%{transform:rotate(-3deg)}}@keyframes goose-cheer{0%{transform:none}20%{transform:translateY(-20px) rotate(-8deg) scale(1.06)}40%{transform:translateY(0) rotate(6deg)}60%{transform:translateY(-10px) rotate(-5deg)}to{transform:none}}.tour-bubble{animation:menu-in .26s var(--ease-out-soft);background:var(--glass-fill-strong,var(--surface));border:1px solid var(--glass-border,var(--border));border-radius:20px;box-shadow:var(--glass-edge,none),var(--glass-shadow-float,var(--shadow-lg));display:flex;flex:1 1;flex-direction:column;gap:6px;margin-bottom:30px;min-width:240px;padding:16px 18px 14px;position:relative}.tour-bubble:before{background:inherit;border-bottom:1px solid var(--glass-border,var(--border));border-left:1px solid var(--glass-border,var(--border));bottom:18px;content:"";height:14px;left:-8px;position:absolute;transform:rotate(45deg);width:14px}.tour-bubble strong{font-size:16px;letter-spacing:-.01em}.tour-bubble p{color:var(--muted);font-size:13.5px;line-height:1.5}.tour-footer{align-items:center;display:flex;gap:10px;justify-content:space-between;margin-top:6px}.tour-dots{display:flex;gap:5px}.tour-dots span{background:var(--border-strong);border-radius:999px;height:6px;transition:width .26s var(--ease-out-soft),background .2s;width:6px}.tour-dots span.is-done{background:var(--faint)}.tour-dots span.is-current{background:var(--accent);width:16px}.tour-actions{align-items:center;display:flex;gap:8px}.tour-skip{color:var(--muted);font-size:13px}.tour-feathers{inset:0;overflow:hidden;pointer-events:none;position:fixed}.tour-feathers svg{animation:feather-fall 2.6s ease-in both;fill:#f7efe4;height:34px;position:absolute;stroke:#c9b296;stroke-width:1.2;top:-40px;width:17px}@keyframes feather-fall{0%{opacity:0;transform:translate(0) rotate(-20deg)}15%{opacity:1}50%{transform:translate(var(--drift),45vh) rotate(25deg)}to{opacity:0;transform:translateY(95vh) rotate(-15deg)}}@media (prefers-reduced-motion:reduce){.tour-bubble,.tour-goose,.tour-goose img,.tour-layer,.tour-layer.leaving,.tour-spotlight:not(.empty){animation:none!important}.tour-card,.tour-spotlight{transition:none}.tour-feathers{display:none}}.settings-panel{width:500px}.settings-group{display:flex;flex-direction:column;gap:4px}.settings-group+.settings-group{border-top:1px solid var(--border);padding-top:14px}.settings-group h3{color:var(--muted);font-size:12px;font-weight:600;letter-spacing:.04em;margin:0 0 4px;text-transform:uppercase}.settings-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:space-between;padding:8px 0}.settings-label{display:flex;flex:1 1 200px;flex-direction:column;gap:2px;min-width:0}.settings-label strong{font-weight:600}.settings-label small{color:var(--muted);font-size:13px}.settings-row select{background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;min-height:34px;padding:5px 10px}.quick-pills{max-height:72px;overflow-y:auto;overscroll-behavior:contain}.quick-box{max-height:calc(100dvh - 24px)}.drawer{max-height:min(760px,calc(100dvh - 48px))}@media (max-height:860px){.quick-box{padding:16px 18px 14px;width:440px}.quick-title{font-size:19px;margin:4px 0 10px 34px}.quick-pills{margin-bottom:8px}.quick-pill{padding:4px 9px}.quick-row{padding:3px 0}.quick-footer{margin-top:6px}.quick-save{height:34px}.drawer-layer{padding:12px 16px}.drawer-header{padding:14px 20px 10px}.drawer-body{padding:12px 20px 16px}.drawer-footer{padding:10px 20px}.field-grid,.form{gap:10px}.field input,.field select,.field textarea{min-height:32px;padding:5px 10px}}textarea.quick-plain{field-sizing:content;max-height:120px}