.ac-tab{display:flex;flex-direction:column;gap:4px}.ac-lead{margin:2px 0 12px;max-width:70ch}.ac-section{margin-top:8px}.ac-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.ac-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin:0 0 10px}.ac-list>.ac-card{margin:0}.ac-card.ac-ask{border-color:var(--dot-peach)}.ac-strong{margin:0 0 6px;font-weight:600;line-height:1.45}.ac-kicker{display:block;font-size:var(--t-13);font-weight:500;color:var(--ink-2);margin-bottom:4px}.ac-h3{margin:0;font-size:var(--t-16);font-weight:600}.ac-flag{margin:0 0 8px;padding:6px 10px;border-radius:var(--r-sm);background:var(--peach);color:var(--ink-peach);font-weight:500;font-size:var(--t-14)}.ac-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px}.ac-empty{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:28px 20px;text-align:center;align-items:center}.ac-quote{margin:8px 0;padding:8px 12px;border-left:3px solid var(--border);background:var(--chip);border-radius:0 var(--r-sm) var(--r-sm) 0;color:var(--ink);font-size:var(--t-14);line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.ac-quote:before{content:"“"}.ac-quote:after{content:"”"}.ac-quote-gone{margin:6px 0;font-style:italic}.ac-source{display:block;font-size:var(--t-13);color:var(--ink-2);margin-top:2px}.ac-ai{display:inline-block;margin-left:8px;padding:0 6px;border-radius:var(--r-xs);background:var(--lavender);color:var(--ink-lavender);font-size:var(--t-12);font-weight:500}.ac-value{display:block;margin-top:2px;font-size:var(--t-15)}.ac-more summary{cursor:pointer;font-size:var(--t-13);color:var(--ink-2);margin-top:4px}.ac-pill{display:inline-block;padding:1px 6px;border-radius:var(--r-xs);font-size:var(--t-12);font-weight:500;white-space:nowrap}.ac-verified,.ac-confirmed{background:var(--mint);color:var(--ink-mint)}.ac-unknown{background:var(--peach);color:var(--ink-peach)}.ac-rows{list-style:none;margin:10px 0 0;padding:0}.ac-row{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--line)}.ac-row:first-child{border-top:0}.ac-row .check{flex:none;margin-top:2px}.ac-row-body{flex:1;min-width:0}.ac-row-body summary{cursor:pointer;list-style:none}.ac-row-body summary::-webkit-details-marker{display:none}.ac-row-body summary:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:var(--r-xs)}.ac-row-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.ac-row-unknown .ac-row-body{padding-left:0}.ac-sides{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin-top:8px}.ac-side{border:1px solid var(--border);border-radius:var(--r-sm);padding:10px 12px;display:flex;flex-direction:column;gap:4px}.ac-side .ghost-button{align-self:flex-start;margin-top:4px}.ac-penalty{margin-top:8px;border-collapse:collapse;font-size:var(--t-14)}.ac-penalty caption{text-align:left;margin-bottom:4px}.ac-penalty th,.ac-penalty td{text-align:left;padding:4px 16px 4px 0;border-top:1px solid var(--line);font-weight:500}.ac-ask-form{display:flex;gap:8px}.ac-ask-form .field{flex:1;margin:0}.ac-answer{margin-top:12px;display:flex;flex-direction:column;gap:8px}.ac-versions{margin:8px 0 0;padding:0;list-style:none}.ac-versions li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line)}.ac-versions li:first-child{border-top:0}.ac-add{width:min(720px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow:auto}.ac-add-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.ac-paste{min-height:120px;width:100%}.ac-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin:8px 0 10px}.ac-form .field{width:100%;margin:0}.ac-preview{list-style:none;margin:8px 0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:40vh;overflow:auto}.ac-preview li{border-top:1px solid var(--line);padding-top:6px}.ac-ai-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0}.ac-reading{display:flex;flex-direction:column;align-items:center;gap:10px;padding:24px 0}.ac-progress{width:220px;height:6px;border-radius:var(--r-full);background:color-mix(in srgb,var(--accent-strong) 16%,transparent);overflow:hidden}.ac-progress span{display:block;width:40%;height:100%;background:var(--accent-strong);border-radius:var(--r-full);animation:ac-slide 1.2s ease-in-out infinite}@keyframes ac-slide{0%{transform:translate(-100%)}to{transform:translate(260%)}}@media (prefers-reduced-motion: reduce){.ac-progress span{animation:none;width:100%;opacity:.4}}.ac-follow{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin:0 0 16px}@media (max-width: 640px){.ac-ask-form{flex-direction:column}.ac-versions li{flex-direction:column;align-items:flex-start}}.event-window{width:600px;max-height:calc(100vh - 32px);overflow-y:auto}.event-window label{display:block;min-width:0}.event-window .field{width:100%}.event-notes{resize:vertical;min-height:72px;font:inherit}.event-error{margin:6px 0 0;font-size:var(--t-13);font-weight:500;color:var(--danger)}.event-hint{margin:-6px 0 0}.event-more{align-self:flex-start;padding:2px 0}.event-outside{border-radius:var(--r-md);padding:12px 14px;background:var(--chip);color:var(--ink);border:1px solid var(--border)}.event-outside p{margin:0;font-weight:500;line-height:1.4}.event-outside p+p{margin-top:6px;font-weight:400}.event-outside a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}.event-scope{border-top:1px solid var(--line);padding-top:14px;margin-top:4px}.event-scope p{margin:0 0 12px;font-weight:500}.event-scope-buttons{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.block.marker{flex-direction:row;align-items:center;gap:6px;padding-top:0;padding-bottom:0;border-left:3px solid currentColor}.block.marker b,.block.marker span{white-space:nowrap}.block.marker span{order:-1;flex-shrink:0;font-weight:500;opacity:.85}.block.marker b{min-width:0}.month-event{font-size:var(--t-12);font-weight:500;border-radius:var(--r-xs);padding:2px 6px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);background:var(--card);border:1px solid var(--border)}.month-event b{font-weight:600;margin-right:4px}@media (max-width: 700px){.event-window{width:100%}.month-event{display:none}}.custom-dates{display:flex;flex-direction:column;gap:10px}.custom-dates .small{margin:0}.custom-month{border:1px solid var(--border);border-radius:var(--r-md);padding:12px;background:var(--card)}.custom-month-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.custom-month-head .round-button{width:32px;height:32px;border-radius:var(--r-full);border:1px solid var(--border);background:var(--card)}.custom-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}.custom-weekday{font-size:var(--t-12);color:var(--ink-2);padding:2px 0}.custom-day{min-height:var(--control);border:1px solid transparent;border-radius:var(--r-sm);background:var(--chip);color:var(--ink);font-size:var(--t-14);font-variant-numeric:tabular-nums}.custom-day:hover{border-color:var(--ink-3)}.custom-day.on{background:var(--accent-strong);color:var(--on-accent-strong);font-weight:500}.custom-day.fixed{cursor:default;box-shadow:inset 0 0 0 2px var(--accent-strong)}.custom-day:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.custom-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.custom-list li{display:inline-flex;align-items:center;gap:4px;padding:2px 4px 2px 8px;border-radius:var(--r-xs);background:var(--chip);font-size:var(--t-13);min-height:28px}.custom-list .panel-button{width:24px;height:24px}:root{--usage-normal: #3478F6;--usage-warning: #F0B232;--usage-critical: #E5484D}.usage-head{display:flex;align-items:baseline;gap:8px}.usage-plan{font-weight:400;color:var(--ink-3)}.usage-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(120px,240px) minmax(92px,auto);align-items:center;gap:16px 24px;padding:var(--row-y) 0;border-bottom:1px solid var(--line)}.usage-row .set-text{min-width:0}.usage-amount{font-size:var(--t-14);color:var(--ink-2);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.usage-bar{--tone: var(--usage-normal);position:relative;height:5px;border-radius:var(--r-full);overflow:hidden;background:color-mix(in srgb,var(--tone) 18%,transparent)}.usage-bar.warning{--tone: var(--usage-warning)}.usage-bar.critical{--tone: var(--usage-critical)}.usage-bar>span{position:absolute;inset:0 auto 0 0;border-radius:inherit;background:var(--tone);min-width:0}.usage-heads-up{--tone: var(--usage-warning);display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin:0 0 8px;padding:12px 16px;border-radius:var(--r-md);border:1px solid color-mix(in srgb,var(--tone) 45%,transparent);background:color-mix(in srgb,var(--tone) 12%,transparent)}.usage-heads-up.critical{--tone: var(--usage-critical)}.usage-heads-up p{margin:0;font-size:var(--t-14);line-height:1.45}@media (max-width: 560px){.usage-row{grid-template-columns:1fr auto;gap:8px 12px}.usage-row .usage-bar{grid-column:1 / -1;grid-row:2}}@font-face{font-family:Inter;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/inter.woff2) format("woff2")}:root{--sans: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--head: var(--sans);--bg: #F6F5F2;--ink: #2B2F2E;--ink-2: #5F625F;--ink-3: #66635E;--inverse: #ffffff;--card: #ffffff;--border: #E6E3DC;--side: rgba(43, 47, 46, .035);--sidebar: var(--bg);--chip: #F0EEE9;--line: var(--border);--lavender: #F1EEFB;--mint: #E6F2EB;--peach: #FBEEE1;--sky: #E8F0F9;--study: #E2F3F0;--dark-card: #2B2F2E;--series-1: #E07B34;--series-2: #3F8F8B;--tag-bg: var(--ink);--tag-ink: var(--inverse);--dot-lavender: #6F5CC4;--dot-mint: #2F7A55;--dot-peach: #C9772C;--dot-sky: #3B6FA8;--dot-study: #2E8C82;--badge-lavender: #6650C2;--badge-mint: #2B6E4C;--badge-peach: #A55A1C;--badge-sky: #2F64A0;--badge-plain: #5F625F;--ink-lavender: #4B3A9E;--ink-mint: #2E5A37;--ink-peach: #8A4A12;--ink-sky: #2D4E73;--ink-study: #1F5F58;--r-xs: 6px;--r-sm: 8px;--r-md: 12px;--r-full: 999px;--radius: var(--r-md);--t-12: 12px;--t-13: 13px;--t-14: 14px;--t-15: 15px;--t-16: 16px;--t-18: 18px;--t-22: 22px;--t-28: 28px;--t-hero: 40px;--t-display: 56px;--control: 36px;--control-lg: 40px;--hairline: 1px solid var(--line);--row-y: 14px;--shadow: 0 12px 32px rgba(20, 20, 22, .12), 0 2px 6px rgba(20, 20, 22, .06);--shadow-sm: 0 1px 2px rgba(20, 20, 22, .08);--scrim: rgba(20, 20, 22, .28);color-scheme:light}:root[data-scheme=dark]{--bg: #111318;--ink: #ECEEF3;--ink-2: #A9AFBD;--ink-3: #959CAC;--inverse: #111318;--card: #1A1D24;--border: rgba(255, 255, 255, .09);--side: rgba(255, 255, 255, .03);--sidebar: var(--bg);--chip: rgba(255, 255, 255, .06);--shadow: 0 12px 32px rgba(0, 0, 0, .5), 0 2px 6px rgba(0, 0, 0, .3);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--scrim: rgba(0, 0, 0, .5);--lavender: #24213A;--mint: #18291F;--peach: #31241A;--sky: #1A2434;--study: #142A28;--dark-card: #232733;--series-1: #F4A261;--series-2: #5FB8B2;--dot-lavender: #A797F0;--dot-mint: #5DBB8C;--dot-peach: #E59A55;--dot-sky: #79A7DE;--dot-study: #5FC3B8;--badge-lavender: #5A47B5;--badge-mint: #23603F;--badge-peach: #94501A;--badge-sky: #2A5A93;--badge-plain: #4A5163;--ink-lavender: #D3CAFF;--ink-mint: #ADDDC0;--ink-peach: #F2C79A;--ink-sky: #BCD4F2;--ink-study: #A6E3DB;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:var(--t-15);font-optical-sizing:auto;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}[tabindex="-1"]:focus{outline:none}h1,h2{margin:0}h1,h2,h3,h4,b,strong,th{font-weight:600}.small{font-size:var(--t-14);color:var(--ink-2)}.brand{display:inline-flex;align-items:center;gap:10px;font-family:var(--head);font-weight:600;font-size:var(--t-22)}.brand img{border-radius:var(--r-sm)}.wordmark{display:block;height:46px;width:auto;margin:-10px 0;border-radius:0}.brand img.wordmark,.court-brand img.wordmark{border-radius:0}.text-link{background:none;border:0;padding:6px 2px;color:var(--ink-2);font-size:var(--t-15);font-weight:500}.text-link:hover{color:var(--ink)}.primary{display:inline-flex;justify-content:center;align-items:center;gap:8px;width:100%;min-height:var(--control-lg);border:0;border-radius:var(--r-sm);padding:0 24px;background:var(--ink);color:var(--inverse);font-size:var(--t-15);font-weight:500;text-decoration:none}.primary:hover{opacity:.9}.secondary{display:inline-flex;justify-content:center;align-items:center;width:100%;min-height:var(--control-lg);margin-top:8px;border:1px solid var(--border);border-radius:var(--r-sm);padding:0 24px;background:var(--card);color:var(--ink);font-size:var(--t-15);font-weight:500}.secondary:hover{background:var(--hover)}.signin-pill{min-height:var(--control);border:0;border-radius:var(--r-sm);padding:0 16px;background:var(--ink);color:var(--inverse);font-size:var(--t-14);font-weight:500}.welcome{min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}.welcome-top{display:flex;align-items:center;justify-content:space-between;padding:18px 44px}.welcome-account{display:flex;align-items:center;gap:6px}.welcome-account .text-link{padding:8px 12px;color:var(--ink);font-size:var(--t-14);font-weight:500}.welcome-account .text-link:hover{color:var(--ink-2)}.spacer-80{width:80px}.welcome-body{flex:1;display:flex;align-items:center;justify-content:center;gap:90px;padding:24px 44px 64px}.welcome-copy{width:470px;max-width:100%}.welcome-copy h1{font-family:var(--head);font-size:var(--t-display);font-weight:600;letter-spacing:-.035em;line-height:1.04}.lead{font-size:var(--t-18);line-height:1.45;color:var(--ink-2);margin:16px 0 32px}.note{text-align:center;color:var(--ink-2);font-size:var(--t-15);margin:16px 0 0}.try-sample{margin-top:18px;text-align:center}.try-sample .text-link{color:var(--ink);font-size:var(--t-15);font-weight:500}.try-sample .text-link:hover{text-decoration:underline;text-underline-offset:3px}.try-sample .note{margin:2px 0 0;font-size:var(--t-14)}.collage{position:relative;width:540px;height:440px;flex-shrink:0}.wcard{position:absolute;width:340px;padding:20px;border-radius:var(--r-md);box-shadow:var(--shadow);opacity:0;animation:drop .6s cubic-bezier(.2,.9,.3,1.2) forwards}.wcard-1{--r: -6deg;background:var(--accent);color:var(--on-accent);left:0;top:10px}.wcard-1 .small{color:var(--on-accent);opacity:.78}.wcard-2{--r: 4deg;background:var(--glow);color:var(--ink);border:2px dashed var(--accent);left:190px;top:140px;z-index:2;animation-delay:.4s}.wcard-3{--r: -3deg;background:var(--card);color:var(--ink);border:1px solid var(--border);left:30px;top:290px;animation-delay:.8s}.wcard-title{font-family:var(--head);font-size:var(--t-22);font-weight:600;letter-spacing:-.3px;margin:2px 0}.tag{display:inline-block;margin-bottom:8px;padding:4px 8px;border-radius:var(--r-xs);background:var(--tag-bg);color:var(--tag-ink);font-size:var(--t-13);font-weight:500}@keyframes drop{0%{opacity:0;transform:translateY(18px) rotate(var(--r)) scale(.96)}to{opacity:1;transform:rotate(var(--r))}}@media (prefers-reduced-motion: reduce){.wcard{animation:none;opacity:1;transform:rotate(var(--r))}}.soon{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px 16px 64px;text-align:center;max-width:480px;margin:0 auto}.soon h1{font-family:var(--head);font-size:var(--t-hero);font-weight:600;letter-spacing:-.035em}.soon .lead{margin:0 0 16px}.shell{min-height:100vh;display:flex;flex-direction:column}.frame{flex:1;display:flex}.tabs{width:240px;flex-shrink:0;background:var(--side);padding:24px 16px;display:flex;flex-direction:column;gap:4px}.tabs-brand{margin:0 10px 22px}.tab{display:flex;align-items:center;gap:10px;border:0;background:none;text-align:left;padding:8px 12px;border-radius:var(--r-sm);font-size:var(--t-15);color:var(--ink-2)}.tab:hover{background:var(--hover)}.tab.on{background:var(--press);color:var(--ink)}.content{flex:1;min-width:0;padding:30px 44px 60px;max-width:900px}.caption{color:var(--ink-2);font-size:var(--t-16)}.title{font-family:var(--head);font-size:var(--t-hero);font-weight:600;letter-spacing:-.035em;line-height:1.1;margin:2px 0 16px}.title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.title-actions{display:flex;gap:8px}.round-button{width:var(--control);height:var(--control);border-radius:var(--r-full);border:0;background:var(--chip);font-size:var(--t-18)}.section{font-family:var(--head);font-size:var(--t-16);font-weight:600;margin:32px 0 8px}.count{color:var(--ink-3);font-weight:400;margin-left:4px}.strip{display:flex;gap:10px;margin-bottom:20px;overflow-x:auto}.strip-day{flex:0 0 auto;width:74px;height:74px;border-radius:var(--r-md);border:0;background:var(--chip);display:flex;flex-direction:column;align-items:center;justify-content:center}.strip-day.on{width:110px;background:var(--press);color:var(--ink)}.strip-num{font-size:var(--t-18);font-weight:600}.strip-name{font-size:var(--t-12);opacity:.65}.attention{width:100%;border:0;text-align:left;background:var(--card);border-radius:var(--r-md);padding:16px 20px;display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.attention-title{font-size:var(--t-16);font-weight:600;margin-bottom:4px}.round{flex-shrink:0;width:var(--control);height:var(--control);border-radius:var(--r-full);background:var(--ink);color:var(--inverse);display:flex;align-items:center;justify-content:center}.agenda{display:flex;flex-direction:column;gap:12px}.row{display:flex;gap:16px;align-items:stretch}.row-time{width:70px;flex-shrink:0;color:var(--ink-3);font-size:var(--t-14);padding-top:16px}.item{flex:1;min-width:0;border-radius:var(--r-md);padding:16px 20px;display:flex;align-items:center;gap:12px}.item-text{flex:1;min-width:0}.item-title{font-size:var(--t-16);font-weight:600}.item.done .item-title,.work.done .work-title{text-decoration:line-through;opacity:.55}.tint-lavender{background:var(--lavender)}.tint-mint{background:var(--mint)}.tint-peach{background:var(--peach)}.tint-sky{background:var(--sky)}.tint-study{background:var(--study)}.tint-plain{background:var(--card)}.check{flex-shrink:0;width:24px;height:24px;border-radius:var(--r-full);border:1.5px solid var(--ink-3);background:transparent;color:transparent;display:flex;align-items:center;justify-content:center;padding:0}.check.on{background:var(--accent-strong);border-color:var(--accent-strong);color:var(--on-accent-strong)}.dot{display:inline-block;width:8px;height:8px;border-radius:var(--r-full);flex-shrink:0;background:var(--ink-3)}.dot-lavender{background:var(--dot-lavender)}.dot-mint{background:var(--dot-mint)}.dot-peach{background:var(--dot-peach)}.dot-sky{background:var(--dot-sky)}.month{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;background:var(--card);border-radius:var(--r-md);padding:12px}.month-head{text-align:center;font-size:var(--t-12);font-weight:500;color:var(--ink-3);padding:4px 0 8px}.month-cell{border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:4px;padding:4px 0;border-radius:var(--r-sm)}.month-cell.blank{min-height:50px}.month-cell:hover:not(.blank){background:var(--hover)}.month-num{width:36px;height:36px;border-radius:var(--r-full);display:flex;align-items:center;justify-content:center;font-size:var(--t-15);font-weight:500}.month-cell.today .month-num{box-shadow:inset 0 0 0 1.5px var(--ink);font-weight:600}.month-cell.on .month-num{background:var(--accent-strong);color:var(--on-accent-strong);box-shadow:none}.dots{display:flex;gap:3px;height:5px}.dots .dot{width:5px;height:5px}.course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.course{border-radius:var(--r-md);padding:20px;min-height:190px;display:flex;flex-direction:column;gap:4px}.course-code{font-size:var(--t-14);font-weight:500;color:var(--ink-2)}.course-name{font-size:var(--t-22);font-weight:600;letter-spacing:-.3px}.course-foot{margin-top:auto;display:flex;justify-content:space-between;align-items:flex-end;padding-top:18px}.course-grade{font-size:var(--t-28);font-weight:600;letter-spacing:-.5px}.work-list{display:flex;flex-direction:column;gap:8px}.work{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;display:flex;align-items:center;gap:14px}.work-text{flex:1;min-width:0}.work-title{font-size:var(--t-15);font-weight:500}.weight{font-weight:500;color:var(--ink-2);font-variant-numeric:tabular-nums}.empty{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:28px 20px;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}.empty-pose{width:170px;height:170px;object-fit:contain}.empty-title{font-family:var(--head);font-size:var(--t-18);font-weight:600}.tabs-footer{margin-top:auto;padding:16px 10px 0;border-top:1px solid var(--line)}.account{display:flex;flex-direction:column;gap:2px;min-width:0}.account-email{font-size:var(--t-14);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account .text-link{align-self:flex-start;padding-left:0;font-size:var(--t-14)}.text-link.danger{color:var(--danger)}.text-link.danger:hover{text-decoration:underline;text-underline-offset:3px}.text-link:disabled{opacity:.45;cursor:default}.primary:disabled{opacity:.5;cursor:default}.signin{flex:1;width:100%;max-width:440px;margin:0 auto;padding:40px 16px 64px}.signin h1{font-family:var(--head);font-size:var(--t-hero);font-weight:600;letter-spacing:-.035em}.signin-mascot{display:block;width:96px;height:96px;object-fit:contain;margin:0 0 6px -6px}.signin .lead{margin:12px 0 24px;font-size:var(--t-16)}.field-label{display:block;font-size:var(--t-14);font-weight:500;margin-bottom:8px}.field{width:100%;min-height:var(--control);font:inherit;font-size:var(--t-15);color:var(--ink);background:var(--card);border:1px solid var(--border);border-radius:var(--r-sm);padding:7px 12px;margin-bottom:16px}input.field:not(.code),select.field{height:var(--control);padding-top:0;padding-bottom:0}.signin input.field:not(.code){height:var(--control-lg)}.field:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 1px var(--focus)}.field.code{height:auto;font-size:var(--t-28);letter-spacing:10px;text-align:center;font-variant-numeric:tabular-nums;padding:8px 12px}.error{color:var(--danger);font-size:var(--t-14);margin:-4px 0 16px}.signin-links{display:flex;justify-content:space-between;gap:12px;margin-top:14px;flex-wrap:wrap}.apple-button{display:flex;justify-content:center;align-items:center;gap:10px;width:100%;min-height:var(--control-lg);border:0;border-radius:var(--r-sm);padding:0 24px;background:#000;color:#fff;font-size:var(--t-15);font-weight:500}.apple-button:hover{opacity:.88}.apple-button:disabled{opacity:.6}:root[data-scheme=dark] .apple-button{background:#fff;color:#000}.or-line{display:flex;align-items:center;gap:12px;margin:20px 0 16px;color:var(--ink-2);font-size:var(--t-14)}.or-line:before,.or-line:after{content:"";flex:1;height:1px;background:var(--border)}.welcome-back{position:fixed;inset:0;z-index:48;border:0;padding:24px 16px;cursor:pointer;background:var(--bg);color:var(--ink);display:flex;align-items:center;justify-content:center;gap:70px;animation:fade-in .25s ease-out}.welcome-back .collage{text-align:left}.welcome-back-text{text-align:left;width:440px;max-width:100%}.welcome-back-text h1{font-family:var(--head);font-size:var(--t-display);font-weight:600;letter-spacing:-.035em;line-height:1.06}.welcome-back-text .lead{margin:14px 0 0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.content.wide{max-width:1200px}.pill-button{min-height:var(--control);border:0;border-radius:var(--r-sm);padding:0 14px;background:var(--ink);color:var(--inverse);font-size:var(--t-14);font-weight:500}.notes{display:flex;gap:28px;align-items:flex-start}.notes-list{flex:1;min-width:0}.note-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.note-card{text-align:left;border:1px solid var(--border);background:var(--card);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:6px;min-height:140px}.note-card.on{border-color:var(--accent-strong);box-shadow:inset 0 0 0 1px var(--accent-strong)}.note-card-top{display:flex;align-items:center;gap:6px}.note-card-title{font-family:var(--head);font-size:var(--t-16);font-weight:600}.note-card-body{font-size:var(--t-14);color:var(--ink-2);white-space:pre-line;overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}.note-editor{width:460px;flex-shrink:0;position:sticky;top:70px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px 22px;display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 100px);overflow:auto}.note-editor-bar{display:flex;justify-content:space-between}.note-course{align-self:flex-start;min-height:32px;font:inherit;font-size:var(--t-14);color:var(--ink);background:var(--card);border:1px solid var(--border);border-radius:var(--r-sm);padding:4px 8px}.note-title{font-family:var(--head);font-size:var(--t-22);font-weight:600;letter-spacing:-.2px;border:0;background:none;color:var(--ink);padding:4px 0}.note-title:focus,.note-body:focus{outline:none}.note-body{font:inherit;font-size:var(--t-15);line-height:1.55;min-height:360px;resize:vertical;border:0;background:none;color:var(--ink);padding:0}.pages{display:flex;flex-direction:column;gap:12px}.page{margin:0;border-radius:var(--r-md);overflow:hidden;background:#fff;box-shadow:0 0 0 1px var(--line)}.page img{display:block;width:100%;height:auto}.page-missing{padding:40px 16px;text-align:center}.manage-link{align-self:flex-start;padding-left:0;font-size:var(--t-14)}.small-pill{align-self:flex-start;margin:6px 0 4px;padding:0 12px;font-size:var(--t-14)}.footer-narrow{display:none}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.pro-backdrop{position:fixed;inset:0;z-index:50;background:var(--scrim);display:flex;align-items:flex-start;justify-content:center;overflow:auto;padding:40px 16px}.pro-sheet{position:relative;width:560px;max-width:100%;border:1px solid var(--border);border-radius:var(--r-md);padding:28px 28px 24px;color:var(--ink);box-shadow:var(--shadow);background:linear-gradient(180deg,var(--glow) 0%,var(--card) 40%),var(--card)}.pro-close{position:absolute;top:18px;right:18px}.pro-sheet h1{font-family:var(--head);font-size:var(--t-28);font-weight:600;letter-spacing:-.02em}.pro-sheet .lead{margin:8px 0 16px;font-size:var(--t-15)}.pro-table{width:100%;border-collapse:collapse;font-size:var(--t-14)}.pro-table th,.pro-table td{padding:8px 4px;border-bottom:1px solid var(--line)}.pro-table thead th{font-size:var(--t-13);color:var(--ink-2);font-weight:500}.pro-table tbody th{text-align:left;font-weight:400}.pro-table td{text-align:center;width:112px;color:var(--ink-2)}.pro-table td.pro-col{color:var(--ink);font-weight:500}.mark{font-weight:600}.mark.off{color:var(--ink-3);font-weight:400}.pro-plans{display:flex;flex-direction:column;gap:8px;margin:20px 0 16px}.pro-plan{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-radius:var(--r-sm);border:1px solid var(--border)}.pro-plan-name{font-weight:500;display:flex;align-items:center;gap:8px}.save{font-size:var(--t-12);font-weight:500;background:var(--accent);color:var(--on-accent);padding:2px 6px;border-radius:var(--r-xs)}.pro-price{font-weight:600;font-size:var(--t-16)}.fine{text-align:center;font-size:var(--t-13);color:var(--ink-2);margin:12px 0 0}.fine a{color:inherit}.upload-tab{margin-top:14px}.empty-action{margin-top:16px}.upload-sheet{width:620px}.drop{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 16px;margin-bottom:16px;border:1.5px dashed var(--border);border-radius:var(--r-md);background:var(--chip)}.drop.on{border-color:var(--accent-strong)}.paste-label{margin-top:4px}.field.paste{min-height:110px;font-size:var(--t-15);resize:vertical}.paste-count{margin:-6px 0 12px;color:var(--ink-2)}.error-row{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 12px;margin:-4px 0 14px}.error-row .error{margin:0}.error-row .text-link{padding:0}.reading{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:20px 0 8px}.reading .lead{margin:0 0 12px}.progress{width:220px;height:6px;border-radius:var(--r-full);background:color-mix(in srgb,var(--accent-strong) 16%,transparent);overflow:hidden}.progress span{display:block;width:35%;height:100%;background:var(--accent-strong);border-radius:var(--r-full);animation:slide 1.4s ease-in-out infinite}@keyframes slide{0%{transform:translate(-100%)}to{transform:translate(300%)}}@media (prefers-reduced-motion: reduce){.progress span{animation:none;width:100%;opacity:.4}}.progress.determinate span{animation:none;transform:none;transition:width .3s linear}.reading .percent{margin:2px 0 0;font-size:var(--t-13);font-weight:500;color:var(--ink-2);font-variant-numeric:tabular-nums}.review-course{display:grid;grid-template-columns:1fr 1.6fr;gap:12px;margin-top:16px}.review-course .field{margin-bottom:8px;font-size:var(--t-15)}.review-note{margin:2px 0 6px}.review-list{display:flex;flex-direction:column;gap:6px}.review-row{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border-radius:var(--r-sm);background:var(--chip);cursor:pointer}.review-row input{margin-top:3px;width:18px;height:18px;accent-color:var(--accent-strong)}.review-text{display:flex;flex-direction:column;gap:2px}.review-title{font-weight:500}.estimate{color:var(--ink-peach)}.undated{margin:0 0 16px;padding-left:20px;color:var(--ink-2)}.upload-sheet .primary{margin-top:16px}.dash{display:flex;flex-direction:column;gap:14px}.dash .section{margin:18px 0 0}.dash-note{margin:-6px 0 4px}.dash .title-row{flex-wrap:wrap;gap:10px}.dash-range{display:flex;flex-wrap:nowrap;max-width:100%;gap:2px;background:var(--chip);padding:3px;border-radius:var(--r-sm)}.dash-range button{white-space:nowrap;min-height:30px;border:0;background:none;padding:0 12px;border-radius:var(--r-xs);font-size:var(--t-14);font-weight:500;color:var(--ink-2)}.dash-range button.on{background:var(--pill-on);color:var(--ink);box-shadow:var(--shadow-sm),0 0 0 1px var(--border)}.dash-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.dash-tile{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;display:flex;flex-direction:column;gap:2px;min-width:0}.dash-label{font-size:var(--t-13);font-weight:500;color:var(--ink-2)}.dash-value{font-size:var(--t-28);font-weight:600;letter-spacing:-.5px;font-variant-numeric:tabular-nums}.dash-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.dash-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;display:flex;flex-direction:column;gap:10px;min-width:0}.dash-card h3{margin:0;font-size:var(--t-16)}.dash-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.dash-legend{display:flex;gap:16px;font-size:var(--t-13);color:var(--ink-2)}.dash-legend i{display:inline-block;width:10px;height:10px;border-radius:var(--r-full);margin-right:6px;vertical-align:-1px}.dash-ranked{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.dash-ranked li{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) 52px;align-items:center;gap:10px;font-size:var(--t-14)}.dash-row-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-row-count{font-variant-numeric:tabular-nums;font-weight:500;text-align:right}.dash-bar{height:8px;border-radius:var(--r-full);background:var(--chip);overflow:hidden}.dash-bar span{display:block;height:100%;border-radius:var(--r-full);background:var(--series-1)}.dash-chart{display:block;width:100%;height:160px;border-bottom:1px solid var(--line)}.dash-axis-row{display:flex;justify-content:space-between;gap:8px}.dash-s1{fill:var(--series-1);background:var(--series-1)}.dash-s2{fill:var(--series-2);background:var(--series-2)}.owner-notes{display:flex;flex-direction:column;gap:12px}.owner-notes .field-label{margin-bottom:0}.owner-note-field{min-height:96px;resize:vertical;font-size:var(--t-15);margin-bottom:0}.owner-note-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.owner-note-body{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:var(--t-15);line-height:1.5}.owner-note-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.owner-note-ask{display:inline-flex;align-items:center;gap:8px;font-size:var(--t-14);font-weight:500}@media (max-width: 1000px){.welcome-body{flex-direction:column;gap:40px}.collage{transform:scale(.8);margin:-40px 0}}@media (max-width: 800px){.welcome-top{padding:16px}.welcome-body{padding:8px 16px 48px}.welcome-copy h1{font-size:var(--t-hero);letter-spacing:-.035em}.welcome-body{justify-content:flex-start;gap:18px}.collage{transform:none;margin:0 auto;zoom:.62}.frame{flex-direction:column}.tabs{position:fixed;z-index:6;left:50%;bottom:16px;transform:translate(-50%);width:auto;flex-direction:row;padding:6px;border-radius:var(--r-md);background:var(--card);gap:2px;border:1px solid var(--border);box-shadow:var(--shadow)}.tabs-brand{display:none}.tab{flex-direction:column;gap:2px;font-size:var(--t-12);padding:8px 12px;border-radius:var(--r-sm);color:var(--ink-2)}.tab:hover{background:var(--hover)}.tab.on{background:var(--press);color:var(--ink)}.content{padding:20px 16px 120px}.title{font-size:var(--t-28);letter-spacing:-.5px}.row-time{display:none}.strip{gap:6px}.strip-day{width:52px;height:64px}.strip-day.on{width:76px}.empty-pose,.tabs-footer{display:none}.footer-narrow{display:block;margin-top:32px;padding:16px;border-radius:var(--r-md);background:var(--card)}.pro-sheet{padding:24px 18px}.review-course{grid-template-columns:1fr}.dash-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-grid{grid-template-columns:1fr}.dash-range button{padding:0 8px;font-size:var(--t-13)}.upload-tab span{display:none}.notes{flex-direction:column}.note-editor{position:fixed;inset:0;z-index:8;width:auto;max-height:none;border-radius:0;padding:16px 16px 120px}.field:not(.code),.settings-search input,.todo-add input{font-size:var(--t-16)}.welcome-back{flex-direction:column;gap:24px}.welcome-back-text h1{font-size:var(--t-hero);letter-spacing:-.035em}}html[data-mascots=off] img[src*="/mascot/"]:not(.keep-mascot),html[data-mascots=off] .crew,html[data-mascots=off] .study-floor{display:none!important}:root{--hover: rgba(43, 47, 46, .05);--press: rgba(43, 47, 46, .08);--accent: #FFC08C;--on-accent: #141416;--accent-strong: #DE6400;--on-accent-strong: #141416;--accent-night: #FFB27A;--focus: var(--accent-strong);--glow: #FFE6CF;--due: #EFEEEA;--due-ink: var(--ink);--due-bar: var(--ink);--butter: #FCE7A8;--sticky-ink: #2d240a;--danger: #B3261E;--on-danger: #FFFFFF;--pill: #EBE9E3;--pill-on: #ffffff;--page-width: 1440px;--gutter: 40px;--today-col: color-mix(in srgb, var(--glow) 45%, var(--card))}:root[data-scheme=dark]{--hover: rgba(255, 255, 255, .06);--press: rgba(255, 255, 255, .1);--accent-strong: #FFB27A;--due: #232836;--due-ink: #ECEEF3;--due-bar: #AFC0E8;--butter: #FCE7A8;--danger: #ff8a80;--on-danger: #141416;--pill: rgba(255, 255, 255, .06);--pill-on: rgba(255, 255, 255, .16);--today-col: color-mix(in srgb, var(--glow) 45%, var(--card))}body.dragging,body.dragging *{cursor:grabbing!important;user-select:none}body.has-modal{overflow:hidden}.app{min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}.court{flex:1;min-width:0;background:var(--bg)}.main{width:100%;max-width:var(--page-width);margin:0 auto;padding:20px var(--gutter) 72px}.avatar{width:28px;height:28px;border-radius:var(--r-full);flex-shrink:0;background:var(--card);color:var(--ink);border:1px solid var(--border);display:inline-flex;align-items:center;justify-content:center;font-weight:500;font-size:var(--t-13)}.menu-line{height:1px;background:var(--line);margin:4px 8px}.hero{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 24px;padding:18px 0 26px}.hero-text{flex:1 1 420px;min-width:0}.hero-kicker{font-weight:400;font-size:var(--t-14);color:var(--ink-3)}.hero-title{margin:6px 0 0;font-family:var(--head);font-size:var(--t-hero);font-weight:600;line-height:1.1;letter-spacing:-.035em;color:var(--ink);overflow-wrap:anywhere}.hero-sub{margin-top:8px;color:var(--ink-2);font-size:var(--t-15)}.hero-side{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap}.hero-mascot{width:104px;height:104px;object-fit:contain;margin:-24px 0 -26px}.panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);min-width:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;min-height:48px}.panel-head.ruled{border-bottom:1px solid var(--line)}.panel-head h2{margin:0;font-family:var(--head);font-size:var(--t-16);font-weight:600}.panel-body{padding:12px 16px 16px}.panel-empty{margin:0;padding:14px 16px}.stat-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:20px}.stat-row.three{grid-template-columns:repeat(3,minmax(0,1fr))}.stat{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;min-width:0}.stat-label{font-size:var(--t-13);color:var(--ink-3)}.stat-value{margin-top:4px;font-weight:600;font-size:var(--t-22);font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stat-foot{margin-top:4px;font-size:var(--t-13);color:var(--ink-3)}.stat-bar{display:block;margin-top:12px;height:6px;border-radius:var(--r-full);background:var(--chip);overflow:hidden}.stat-bar>span{display:block;height:100%;border-radius:var(--r-full);background:var(--accent-strong)}.stat-bar .fill-lavender{background:var(--dot-lavender)}.stat-bar .fill-mint{background:var(--dot-mint)}.stat-bar .fill-peach{background:var(--dot-peach)}.stat-bar .fill-sky{background:var(--dot-sky)}.badge{flex-shrink:0;padding:2px 6px;border-radius:var(--r-xs);color:#fff;font-size:var(--t-12);font-weight:600;background:var(--badge-plain)}.badge-lavender{background:var(--badge-lavender)}.badge-mint{background:var(--badge-mint)}.badge-peach{background:var(--badge-peach)}.badge-sky{background:var(--badge-sky)}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:18px 0 22px;margin-bottom:4px}.page-head .title{margin:0 0 6px}.head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.head-nav,.head-more{display:contents}.lead-small{margin:0;color:var(--ink-2);font-size:var(--t-15);line-height:1.45}.narrow-page>:not(.hero){max-width:860px}.hint{margin-top:14px}.dark-button,.ghost-button,.danger-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--control);padding:0 14px;border-radius:var(--r-sm);font-size:var(--t-14);font-weight:500;text-decoration:none;white-space:nowrap}.dark-button{border:1px solid var(--ink);background:var(--ink);color:var(--inverse)}.dark-button:hover{opacity:.88}.dark-button:disabled{opacity:.4;cursor:default}.small-dark{min-height:var(--control);padding:0 12px;font-size:var(--t-14)}.big-button{min-height:var(--control-lg);padding:0 20px;font-size:var(--t-15)}.ghost-button{border:1px solid var(--border);background:var(--card);color:var(--ink)}.ghost-button:hover{background:color-mix(in srgb,var(--ink) 4%,var(--card))}.ghost-button.on{background:var(--card);color:var(--ink);border-color:var(--accent-strong);box-shadow:inset 0 0 0 1px var(--accent-strong)}.ghost-button.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,var(--border))}.ghost-button.danger:hover{background:color-mix(in srgb,var(--danger) 6%,var(--card))}.ghost-button:disabled{opacity:.45;cursor:default}.danger-button{border:1px solid var(--danger);background:var(--danger);color:var(--on-danger)}.danger-button:hover{opacity:.9}.as-link{text-decoration:none}.small-round{width:32px;height:32px;font-size:var(--t-16)}.round-button{display:inline-flex;align-items:center;justify-content:center;color:var(--ink)}.icon-button{display:inline-flex;align-items:center;justify-content:center;flex:none;width:var(--control);height:var(--control);padding:0;border:0;border-radius:var(--r-sm);background:none;color:var(--ink-2);font-size:var(--t-16)}.icon-button:hover{background:var(--hover);color:var(--ink)}.seg-group{display:inline-flex;background:var(--chip);border-radius:var(--r-sm);padding:3px;gap:2px;flex-wrap:wrap}.seg{border:0;background:none;border-radius:var(--r-xs);padding:0 12px;min-height:30px;font-size:var(--t-14);font-weight:500;color:var(--ink-2);white-space:nowrap}.seg:hover{color:var(--ink)}.seg.on{background:var(--pill-on);color:var(--ink);box-shadow:var(--shadow-sm),0 0 0 1px var(--border)}.text-link.strong{font-weight:500;color:var(--ink);text-decoration:underline;text-decoration-color:var(--border);text-decoration-thickness:1px;text-underline-offset:3px}.text-link.strong:hover{text-decoration-color:currentColor}.card-box{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.box-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.box-head h2{margin:0;font-family:var(--head);font-size:var(--t-16);font-weight:600}.box-head.spaced{margin-top:32px}.side-title{margin:0 0 4px;font-family:var(--head);font-size:var(--t-16);font-weight:600}.bar{width:4px;align-self:stretch;min-height:32px;border-radius:var(--r-full);flex-shrink:0;background:var(--ink-3)}.bar-lavender{background:var(--dot-lavender)}.bar-mint{background:var(--dot-mint)}.bar-peach{background:var(--dot-peach)}.bar-sky{background:var(--dot-sky)}.bar-study{background:var(--study)}.link-like{border:0;background:none;padding:0;text-align:left;font:inherit;font-size:var(--t-15);font-weight:500;color:var(--ink)}.link-like:hover{text-decoration:underline}.tint-due{background:var(--due);color:var(--due-ink)}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field-pair.three{grid-template-columns:1.4fr 1fr 1fr}.field-pair .field,.form-stack .field{margin-bottom:0;font-size:var(--t-15)}.form-stack{display:flex;flex-direction:column;gap:16px}.line-row{display:flex;align-items:center;gap:12px;margin:8px 0 16px;font-weight:500}.small-field{width:240px;max-width:100%;font-size:var(--t-14);margin:0}.empty{gap:8px}.empty .dark-button{margin-top:10px}.modal-backdrop{position:fixed;inset:0;z-index:50;background:var(--scrim);display:flex;align-items:flex-start;justify-content:center;overflow:auto;padding:6vh 16px 24px;animation:fade-in .15s ease-out}.modal{position:relative;width:520px;max-width:100%;background:var(--card);color:var(--ink);border:1px solid var(--border);border-radius:var(--r-md);padding:24px;box-shadow:var(--shadow)}.modal.confirm{width:440px;margin-top:10vh}.modal.confirm p{line-height:1.5;color:var(--ink-2)}.modal-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}.modal-title-wrap{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.modal-title{margin:0;font-family:var(--head);font-size:var(--t-22);font-weight:600;letter-spacing:-.2px}.modal-title.big{font-size:var(--t-28);letter-spacing:-.3px}.modal-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:20px;flex-wrap:wrap}.account-gate-mascot{display:block;margin:-4px 0 6px -6px}.account-gate .modal-title{margin-bottom:6px;text-wrap:balance}.account-gate .modal-actions{flex-direction:column;align-items:stretch;gap:8px;margin-top:20px}.account-gate .modal-actions .text-link{align-self:center;padding:8px 12px}.item-window .field-pair{margin-top:6px}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:60;display:flex;align-items:center;gap:16px;background:var(--dark-card);color:#fff;border-radius:var(--r-md);padding:12px 16px;font-size:var(--t-14);box-shadow:var(--shadow);max-width:calc(100vw - 32px);animation:fade-in .15s ease-out}.toast button{border:0;background:none;color:var(--accent-night);font-weight:600;padding:4px}.today-cols{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start}.today-schedule{flex:3 1 520px}.today-schedule .empty{border:0}.today-side{flex:2 1 300px;min-width:0;display:flex;flex-direction:column;gap:20px}.schedule{display:flex;flex-direction:column;gap:10px;padding:2px 18px 18px}.slot{display:flex;gap:14px;align-items:stretch}.slot-time{width:74px;flex-shrink:0;color:var(--ink-3);padding-top:12px;font-size:var(--t-13);white-space:nowrap;font-variant-numeric:tabular-nums}.slot-card{flex:1;min-width:0;display:flex;align-items:center;gap:12px;border-radius:var(--r-sm);padding:10px 14px;border-left:4px solid var(--dot-plain, var(--ink-3));background:var(--chip)}.slot-card.tint-lavender{border-left-color:var(--dot-lavender);background:var(--lavender)}.slot-card.tint-mint{border-left-color:var(--dot-mint);background:var(--mint)}.slot-card.tint-peach{border-left-color:var(--dot-peach);background:var(--peach)}.slot-card.tint-sky{border-left-color:var(--dot-sky);background:var(--sky)}.slot-card.tint-study{border-left-color:var(--dot-study);background:var(--study)}.slot-card.tint-due{border-left-color:var(--due-bar);background:var(--due);color:var(--due-ink)}.slot-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.slot-text b{font-weight:600}.slot-text span{font-size:var(--t-13);color:var(--ink-2)}.slot-card.done b{text-decoration:line-through;opacity:.55}.due-rows{list-style:none;margin:0;padding:2px 18px 8px}.due-rows li{display:flex;gap:12px;align-items:center;padding:12px 0;min-height:60px;border-bottom:1px solid var(--line)}.due-rows li:last-child{border-bottom:0}.due-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.due-text b{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.due-text span{color:var(--ink-3);font-size:var(--t-13)}.due-when{font-size:var(--t-14);color:var(--ink-2);white-space:nowrap}.tile-number{font-family:var(--head);font-size:var(--t-28);font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.ring{flex-shrink:0}.ring-track{stroke:currentColor;opacity:.12}.ring-fill{stroke:var(--accent-strong)}.ring-text{font-size:var(--t-18);font-weight:600;fill:var(--ink);font-family:inherit}.this-week{flex:3 1 520px}.this-week .empty{border:0}.wk-scroll{overflow-x:auto}.wk-grid{display:grid;min-width:600px;font-size:var(--t-12)}.wk-row{display:contents}.wk-corner,.wk-day,.wk-time,.wk-slot{border-top:1px solid var(--line)}.wk-corner,.wk-day{border-top:0}.wk-day{padding:8px;color:var(--ink-3);border-left:1px solid var(--line)}.wk-day.today{color:var(--ink);font-weight:600;background:var(--today-col)}.wk-time{padding:8px 8px 0 16px;color:var(--ink-3);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:var(--t-12)}.wk-slot{border-left:1px solid var(--line);min-width:0}.wk-cell{height:100%;padding:5px;display:flex;flex-direction:column;gap:4px}.wk-cell.today{background:var(--today-col)}.wk-block{display:block;width:100%;border:1px solid transparent;border-radius:var(--r-xs);padding:4px 8px;text-align:left;font-size:var(--t-12);line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--chip);color:var(--ink)}.wk-block:hover{border-color:currentColor}.wk-block.tint-lavender{background:var(--lavender);color:var(--ink-lavender)}.wk-block.tint-mint{background:var(--mint);color:var(--ink-mint)}.wk-block.tint-peach{background:var(--peach);color:var(--ink-peach)}.wk-block.tint-sky{background:var(--sky);color:var(--ink-sky)}.wk-block.tint-study,.wk-block.study{background:none;border:1px dashed var(--dot-peach);color:var(--ink-peach)}.wk-block.done{text-decoration:line-through;opacity:.6}.grades-cols{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start}.grade-cards{flex:3 1 480px;min-width:0;display:flex;flex-direction:column;gap:12px}.grade-card{display:flex;flex-direction:column;gap:10px;padding:16px 18px;text-align:left;color:var(--ink);width:100%}.grade-card:hover{border-color:var(--ink-3)}.grade-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.grade-card-name{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;min-width:0}.grade-card-title{font-family:var(--head);font-size:var(--t-16);font-weight:600}.grade-card-number{font-family:var(--head);font-size:var(--t-28);font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.grade-card-line{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.grade-card .stat-bar{margin-top:0}.calc{flex:2 1 340px;position:sticky;top:16px;scroll-margin-top:16px}.calc .lead-small{font-size:var(--t-14)}.calc-field{display:flex;flex-direction:column}.calc .field{margin-bottom:0;font-size:var(--t-15);border-width:1px;border-radius:var(--r-sm)}.calc-exact{width:84px;text-align:center}.calc-result{border-radius:var(--r-sm);padding:14px 16px;border:1px solid var(--border)}.calc-result.tint-plain{background:var(--chip)}.calc-headline{font-family:var(--head);font-size:var(--t-22);font-weight:600;margin-bottom:4px}.what-if{width:100%;border-collapse:collapse;font-size:var(--t-14)}.what-if caption{text-align:left;font-weight:600;padding-bottom:4px}.what-if th,.what-if td{padding:8px 0;border-bottom:1px solid var(--line)}.what-if th{text-align:left;font-weight:400;color:var(--ink-2)}.what-if td{text-align:right;font-weight:500;font-variant-numeric:tabular-nums}.what-if tr:last-child th,.what-if tr:last-child td{border-bottom:0}.todo-list{display:flex;flex-direction:column;gap:2px}.todo{display:flex;align-items:center;gap:8px;min-height:40px;padding:4px 8px;border-radius:var(--r-sm)}.todo:hover{background:var(--hover)}.todo-list:not(.compact) .todo{min-height:48px}.box{width:20px;height:20px;flex-shrink:0;border-radius:var(--r-xs);border:1.5px solid var(--ink-3);background:none;color:transparent;display:inline-flex;align-items:center;justify-content:center;padding:0}.box.on{background:var(--accent-strong);border-color:var(--accent-strong);color:var(--on-accent-strong)}.todo-text{flex:1;min-width:0;font-size:var(--t-15);overflow-wrap:anywhere}.todo.done .todo-text{text-decoration:line-through;color:var(--ink-2)}.todo-remove{border:0;background:none;color:var(--ink-2);width:32px;height:32px;border-radius:var(--r-sm);opacity:0;display:inline-flex;align-items:center;justify-content:center}.todo:hover .todo-remove,.todo-remove:focus-visible{opacity:1}.grip{border:0;background:none;color:var(--ink-3);width:24px;height:32px;padding:0;cursor:grab;touch-action:none;display:inline-flex;align-items:center;justify-content:center}.todo-add{display:flex;align-items:center;gap:8px;border-top:1px solid var(--line);margin-top:8px;padding:8px 8px 0;color:var(--ink-2)}.todo-add input{flex:1;border:0;background:none;font:inherit;font-size:var(--t-15);color:var(--ink);min-height:40px;outline:none}.cal-page .title{margin:0}.cal-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}.cal-layout.with-todos{grid-template-columns:minmax(0,1fr) 280px}.week{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 14px 0;min-width:0;overflow:hidden}.week-head,.week-due,.week-body{display:grid}.week-day{display:flex;justify-content:center;align-items:center;gap:4px;padding:8px 0;font-size:var(--t-13);color:var(--ink-2)}.week-day b{color:var(--ink);font-size:var(--t-15);font-weight:600}.week-day.today{background:var(--today-col);color:var(--ink);font-weight:500;border-radius:var(--r-xs) var(--r-xs) 0 0}.week-day.today b{color:var(--ink)}.week-due{border-bottom:1px solid var(--line);padding-bottom:6px;min-height:36px}.due-label{font-size:var(--t-12);color:var(--ink-2);text-align:right;padding:8px 8px 0 0}.due-cell{display:flex;flex-direction:column;gap:4px;padding:2px 4px;border-radius:var(--r-xs);min-width:0}.due-cell.drop{background:var(--chip);outline:2px dashed var(--accent-strong);outline-offset:-2px}.chip-due{border:0;border-radius:var(--r-xs);padding:4px 8px;font-size:var(--t-12);font-weight:500;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:grab;touch-action:none;max-width:100%}.chip-due.done{text-decoration:line-through;opacity:.55}.chip-due.lifted{opacity:.35}.week-scroll{max-height:calc(100vh - 290px);min-height:360px;overflow-y:auto;position:relative}.week-body{position:relative}.hour{font-size:var(--t-12);color:var(--ink-2);text-align:right;padding-right:8px;transform:translateY(-7px);font-variant-numeric:tabular-nums}.col{position:relative;border-left:1px solid var(--line);background-image:linear-gradient(var(--line) 1px,transparent 1px);background-size:100% 56px}.col.today{background-color:var(--today-col)}.now-line{position:absolute;left:0;right:0;height:2px;background:var(--accent-strong);z-index:3}.now-line:before{content:"";position:absolute;left:-4px;top:-3px;width:8px;height:8px;border-radius:var(--r-full);background:var(--accent-strong)}.block{position:absolute;border:1px solid transparent;border-radius:var(--r-xs);padding:6px 8px;text-align:left;overflow:hidden;display:flex;flex-direction:column;gap:2px;font-size:var(--t-12);color:var(--ink);cursor:grab;touch-action:none;z-index:1}.block b{font-size:var(--t-12);line-height:1.25;overflow:hidden;text-overflow:ellipsis}.block span{opacity:.75;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.block.short{padding-top:4px;padding-bottom:4px}.block.short b,.block.tiny b{white-space:nowrap;flex-shrink:0}.block.tiny{padding-top:2px;padding-bottom:2px;justify-content:center}.block.tiny span{display:none}.block.tint-plain{background:var(--chip)}.block.tint-lavender{color:var(--ink-lavender)}.block.tint-mint{color:var(--ink-mint)}.block.tint-peach{color:var(--ink-peach)}.block.tint-sky{color:var(--ink-sky)}.block.tint-study{background:var(--card);border:1px dashed var(--dot-study);color:var(--ink-study)}.block:hover{border-color:currentColor}.block.done b{text-decoration:line-through;opacity:.6}.block.moving{opacity:.3}.drop-spot{position:absolute;left:3px;right:3px;border:2px dashed var(--accent-strong);border-radius:var(--r-sm);background:color-mix(in srgb,var(--accent-strong) 8%,transparent);z-index:2;pointer-events:none}.week-empty{position:absolute;left:56px;right:0;top:80px;display:flex;justify-content:center;pointer-events:none}.week-empty .empty{background:transparent}.ghost{position:fixed;z-index:70;pointer-events:none;min-width:160px;max-width:240px;border-radius:var(--r-sm);padding:8px 12px;display:flex;flex-direction:column;gap:2px;font-size:var(--t-13);transform:rotate(3deg);box-shadow:var(--shadow);color:var(--ink)}.ghost.tint-plain{background:var(--card)}.ghost span{font-size:var(--t-12);font-weight:500}.cal-todos{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 12px;display:flex;flex-direction:column;gap:4px;position:sticky;top:20px}.cal-todos .small{margin:0 8px 8px}.cal-todos h2{margin-left:8px}.cal-todos .todo{background:var(--chip);margin-bottom:4px}.cal-todos-bar{display:flex;align-items:center;gap:4px;min-height:32px}.cal-todos-bar .side-title{flex:1;margin:0 0 0 8px}.cal-todos-bar.movable{cursor:grab;touch-action:none}.panel-button{width:28px;height:28px;border:0;border-radius:var(--r-full);background:var(--card);color:var(--ink-2);display:inline-flex;align-items:center;justify-content:center;padding:0;flex:none}.panel-button:hover{background:var(--hover);color:var(--ink)}.cal-todos.floating{position:fixed;z-index:38;width:280px;max-height:calc(100vh - 32px);overflow-y:auto;background:var(--card);box-shadow:var(--shadow)}.cal-layout.sized{grid-template-columns:minmax(0,var(--cal-w))}.cal-layout.with-todos.sized{grid-template-columns:minmax(0,var(--cal-w)) 280px}.week.resizable{position:relative;padding-bottom:12px}.cal-resize{position:absolute;z-index:4;touch-action:none;display:flex;align-items:center;justify-content:center}.cal-resize:after{content:"";border-radius:var(--r-full);background:var(--ink-2);opacity:0;transition:opacity .15s ease}.cal-resize:hover:after,.cal-resize:focus-visible:after{opacity:.55}.cal-resize:focus-visible{outline:2px solid var(--focus);outline-offset:-2px;border-radius:var(--r-xs)}.cal-resize-x{top:24px;bottom:24px;right:0;width:12px;cursor:ew-resize}.cal-resize-x:after{width:4px;height:44px}.cal-resize-y{left:24px;right:24px;bottom:0;height:12px;cursor:ns-resize}.cal-resize-y:after{width:44px;height:4px}.cal-resize-xy{right:0;bottom:0;width:22px;height:22px;cursor:nwse-resize}.cal-resize-xy:after{width:9px;height:9px;border-radius:0 0 var(--r-xs) 0;background:none;border-right:2px solid var(--ink-2);border-bottom:2px solid var(--ink-2);opacity:.35}body.resizing-x,body.resizing-x *{cursor:ew-resize!important;user-select:none}body.resizing-y,body.resizing-y *{cursor:ns-resize!important;user-select:none}body.resizing-xy,body.resizing-xy *{cursor:nwse-resize!important;user-select:none}.month-big{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:12px}.month-box{border:0;background:var(--bg);border-radius:var(--r-sm);min-height:104px;padding:8px;display:flex;flex-direction:column;gap:4px;align-items:flex-start;text-align:left;min-width:0;color:var(--ink)}.month-box:hover{box-shadow:0 0 0 1px var(--ink-3) inset}.month-box.blank{background:none}.month-box .month-num{width:28px;height:28px;font-size:var(--t-14)}.month-box.today .month-num{background:var(--accent-strong);color:var(--on-accent-strong);border-radius:var(--r-full)}.month-due{font-size:var(--t-12);font-weight:500;border-radius:var(--r-xs);padding:2px 6px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sticky-layer{position:fixed;inset:0;pointer-events:none;z-index:40}.sticky{border-radius:var(--r-xs) var(--r-xs) var(--r-md) var(--r-xs);padding:8px 12px 12px;color:var(--sticky-ink);display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow)}.sticky-butter{background:var(--butter)}.sticky-peach{background:#fde0c6}.sticky-mint{background:#d6ebda}.sticky-sky{background:#d4e5f7}.sticky-lavender{background:#ddd7f8}.sticky.float{position:fixed;width:250px;max-width:calc(100vw - 32px);pointer-events:auto;transform:rotate(-1.5deg)}.sticky.float:focus-within{transform:none}.sticky-bar{display:flex;align-items:center;gap:4px;min-height:28px;cursor:grab;touch-action:none}.sticky-label{flex:1;font-size:var(--t-12);font-weight:500;opacity:.75}.sticky-button{width:28px;height:28px;border:0;border-radius:var(--r-full);background:#3c280014;color:inherit;display:inline-flex;align-items:center;justify-content:center;padding:0}.sticky-button:hover{background:#3c280029}.swatch{width:14px;height:14px;border-radius:var(--r-full);box-shadow:inset 0 0 0 1.5px #3c280059}.sticky textarea{border:0;background:none;resize:none;font:inherit;font-size:var(--t-15);line-height:1.45;color:inherit;min-height:96px;outline:none}.sticky textarea::placeholder{color:#2d240a80}.sticky.pinned{transform:rotate(-.8deg)}.sticky.pinned+.sticky.pinned{transform:rotate(1deg)}.pin-menu{position:absolute;top:44px;right:8px;z-index:2;width:230px;background:var(--card);color:var(--ink);border:1px solid var(--border);border-radius:var(--r-md);padding:4px;box-shadow:var(--shadow);display:flex;flex-direction:column}.pin-menu-title{font-size:var(--t-13);font-weight:500;color:var(--ink-2);padding:8px}.pin-menu button{display:flex;align-items:center;gap:8px;min-height:var(--control);border:0;background:none;padding:0 8px;border-radius:var(--r-sm);text-align:left;font-size:var(--t-14);color:var(--ink)}.pin-menu button:hover:not(:disabled){background:var(--hover)}.pin-menu button:disabled{opacity:.45;cursor:default}.pin-menu .small{margin-left:auto}.sticky-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}.sticky.card{min-height:180px}.sticky-text{margin:0;flex:1;font-size:var(--t-15);line-height:1.45;white-space:pre-line;overflow-wrap:anywhere}.sticky-actions{display:flex;justify-content:space-between}.sticky-actions .text-link{color:inherit;font-weight:500}.course-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.course-card{position:relative;overflow:hidden;border:1px solid var(--border);text-align:left;color:var(--ink);border-radius:var(--radius);padding:20px;min-height:210px;display:flex;flex-direction:column;gap:4px}.course-card:hover{border-color:var(--ink-3)}.course-card>span{position:relative}.burst{position:absolute;right:-40px;top:-40px;width:420px;height:300px;pointer-events:none}.burst.small{width:260px;height:186px;right:-60px;top:-50px;opacity:.8}.burst-lines{fill:none;stroke-width:1.6;stroke-linecap:round;stroke:var(--ink-3)}.line-lavender{stroke:var(--dot-lavender)}.line-mint{stroke:var(--dot-mint)}.line-peach{stroke:var(--dot-peach)}.line-sky{stroke:var(--dot-sky)}.cover-banner{display:block;aspect-ratio:356 / 112;overflow:hidden;background:var(--ink-3)}.cover-banner img{display:block;width:100%;height:100%;object-fit:cover}.course-card.has-cover{padding-top:0}.course-card.has-cover .cover-banner{margin:0 -22px 14px}.course-banner.has-cover{padding-top:0}.course-banner.has-cover .cover-banner{margin:0 -30px 14px}.course-foot{margin-top:auto;display:flex;justify-content:space-between;align-items:flex-end;gap:10px;padding-top:18px}.course-foot>span:first-child{display:flex;flex-direction:column;gap:2px}.next-due{text-align:right;max-width:55%}.course-banner{position:relative;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);padding:24px 28px;min-height:200px;display:flex;flex-direction:column;gap:8px;margin-top:16px}.course-banner>:not(.burst){position:relative}.crumbs{display:flex;gap:8px;align-items:center;font-size:var(--t-14)}.crumbs .text-link{color:inherit;font-weight:500;padding:0}.banner-title{margin:0;font-family:var(--head);font-size:var(--t-hero);font-weight:600;letter-spacing:-.035em;line-height:1.08;max-width:680px}.banner-line{font-size:var(--t-15);opacity:.8}.banner-chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:auto}.as-button{border:0;cursor:pointer}.tint-pick{display:inline-flex;align-items:center;gap:8px}.tint-row{display:inline-flex;gap:8px}.tint-swatch{width:28px;height:28px;border-radius:var(--r-full);border:1px solid rgba(20,20,22,.15);padding:0}.tint-swatch.tint-lavender{background:#ddd7f8}.tint-swatch.tint-mint{background:#d6ebda}.tint-swatch.tint-peach{background:#fde0c6}.tint-swatch.tint-sky{background:#d4e5f7}.tint-swatch.on{outline:2px solid var(--accent-strong);outline-offset:2px}.tabs-line{display:flex;gap:24px;border-bottom:1px solid var(--line);margin:16px 0;overflow-x:auto}.tab-link{border:0;background:none;padding:8px 2px;font-size:var(--t-15);font-weight:500;color:var(--ink-2);border-bottom:2px solid transparent;white-space:nowrap;min-height:40px}.tab-link:hover{color:var(--ink)}.tab-link.on{color:var(--ink);border-bottom-color:var(--ink)}.course-body{display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap}.course-main{flex:999 1 460px;min-width:0}.course-side{flex:1 1 280px;max-width:340px;display:flex;flex-direction:column;gap:12px}.add-pinned{display:flex;align-items:center;justify-content:center;gap:8px;min-height:64px;border:1.5px dashed var(--border);background:none;border-radius:var(--radius);color:var(--ink-2);font-weight:500}.add-pinned:hover{border-color:var(--ink-3);color:var(--ink)}.note-prompt-card{display:flex;gap:12px;align-items:center;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.note-prompt-card img{object-fit:contain}.note-prompt-card p{margin:0 0 8px;font-size:var(--t-14)}.mascot-picker{margin:6px 0 4px}.mascot-stage{position:relative;height:260px;overflow:hidden;touch-action:pan-y;outline:none;border-radius:var(--r-md);background:radial-gradient(60% 70% at 50% 75%,var(--glow),transparent 75%);user-select:none}.mascot-stage:focus-visible{box-shadow:0 0 0 2px var(--focus)}.mascot-slot{position:absolute;left:50%;bottom:10px;width:220px;height:220px;margin-left:-110px;padding:0;border:0;background:none;cursor:pointer;transform-origin:50% 100%;transform:translate(calc(var(--offset) * 54%)) scale(var(--scale, 1));opacity:var(--fade, 1);filter:saturate(var(--sat, 1));touch-action:pan-y}.mascot-stage.settling .mascot-slot{transition:transform .32s cubic-bezier(.2,.8,.2,1),opacity .32s ease,filter .32s ease}.mascot-stage{cursor:grab}.mascot-stage:active{cursor:grabbing}.mascot-slot img{width:100%;height:100%;object-fit:contain;pointer-events:none;-webkit-user-drag:none}.mascot-arrow{position:absolute;top:50%;z-index:4;width:var(--control);height:var(--control);margin-top:-18px;border-radius:var(--r-full);border:1px solid var(--border);background:var(--card);color:var(--ink);font-size:var(--t-22);line-height:1;display:grid;place-items:center;padding:0 0 3px}.mascot-arrow.left{left:8px}.mascot-arrow.right{right:8px}.mascot-caption{text-align:center;margin-top:10px}.mascot-name{font-family:var(--head);font-weight:600;font-size:var(--t-18);color:var(--ink)}.mascot-choose{display:flex;justify-content:center;margin:12px 0 8px;min-height:40px;align-items:center}.mascot-chosen{font-weight:500;font-size:var(--t-14);color:var(--ink-2)}.mascot-picker.off .mascot-stage{opacity:.55}@media (prefers-reduced-motion: reduce){.mascot-slot{transition:none}}@media (max-width: 520px){.mascot-stage{height:220px}.mascot-slot{width:180px;height:180px;margin-left:-90px}}.next-class{margin-top:12px}.note-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.note-tile{border:1px solid var(--border);background:var(--card);border-radius:var(--radius);padding:14px 16px;text-align:left;display:flex;flex-direction:column;gap:6px;min-height:104px;color:var(--ink)}.note-tile:hover{border-color:var(--ink-3)}.note-tile span{font-size:var(--t-13);color:var(--ink-2);overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.grade-hero{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;margin-bottom:14px}.grade-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.grade-table th,.grade-table td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;font-size:var(--t-14)}.grade-table thead th{font-size:var(--t-13);color:var(--ink-2);font-weight:500}.grade-table tbody th{font-weight:500}.breakdown{list-style:none;margin:0;padding:0;background:var(--card);border:1px solid var(--border);border-radius:var(--radius)}.breakdown li{display:flex;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line)}.breakdown li:last-child{border-bottom:0}.facts{margin:0;background:var(--card);border:1px solid var(--border);border-radius:var(--radius)}.facts div{display:grid;grid-template-columns:180px 1fr;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line)}.facts div:last-child{border-bottom:0}.facts dt{color:var(--ink-2);font-size:var(--t-14)}.facts dd{margin:0;overflow-wrap:anywhere}.facts a{color:var(--ink)}.policy{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;margin-bottom:8px}.policy summary{font-weight:500;cursor:pointer}.policy p{margin:8px 0 0;color:var(--ink-2);line-height:1.5}.needs-date{list-style:none;margin:0;padding:0;background:var(--card);border:1px solid var(--border);border-radius:var(--radius)}.needs-date li{padding:12px 16px;border-bottom:1px solid var(--line)}.needs-date li:last-child{border-bottom:0}.needs-date-row{display:flex;align-items:center;gap:12px}.needs-date-mark{flex:none;width:22px;height:22px;border-radius:var(--r-full);background:var(--card);border:1.5px solid var(--ink-3);color:var(--ink);font-weight:600;font-size:var(--t-13);display:grid;place-items:center}.needs-date-text{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.needs-date-text .small{color:var(--ink-2)}.needs-date-row .ghost-button{flex:none}.needs-date-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin:12px 0 2px 34px}.needs-date-form label{display:flex;flex-direction:column}.needs-date-form .field{min-width:150px}.needs-date-buttons{display:flex;align-items:center;gap:8px}@media (max-width: 560px){.needs-date-row{flex-wrap:wrap}.needs-date-row .ghost-button{margin-left:34px}.needs-date-form{margin-left:0}}.link-list{padding-left:20px}.link-list a{color:var(--ink);overflow-wrap:anywhere}.main-notes .notes{align-items:flex-start}.main-notes .note-editor{top:24px}.modal.settings-window{width:1000px;height:min(760px,88vh);padding:0;display:grid;grid-template-columns:256px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);overflow:hidden;overflow:clip;margin-top:-2vh}.settings-bar{grid-column:1 / -1;display:flex;align-items:center;gap:8px;padding:12px 12px 12px 24px;border-bottom:1px solid var(--line)}.settings-bar-title{flex:1;min-width:0;margin:0;font-family:var(--head);font-size:var(--t-18);font-weight:500}.settings-close,.settings-back{width:var(--control);height:var(--control);flex:none;border:0;background:none;border-radius:var(--r-sm);color:var(--ink-2)}.settings-close:hover,.settings-back:hover{background:var(--hover);color:var(--ink)}.settings-back{display:none}.settings-side{border-right:1px solid var(--line);padding:16px 12px;display:flex;flex-direction:column;gap:4px;overflow-y:auto;min-height:0;background:var(--card)}.settings-search{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:var(--r-sm);padding:0 10px;color:var(--ink-2);background:var(--card);margin-bottom:8px}.settings-search:focus-within{border-color:var(--focus);box-shadow:0 0 0 1px var(--focus)}.settings-search input{flex:1;min-width:0;border:0;background:none;font:inherit;font-size:var(--t-14);min-height:34px;color:var(--ink);outline:none}.settings-heading{font-size:var(--t-13);color:var(--ink-2);padding:8px 10px;margin:0}.settings-groups,.settings-cluster{display:flex;flex-direction:column;gap:2px}.settings-divider{height:1px;background:var(--line);margin:8px 12px}.settings-result-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.settings-link{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;padding:8px 10px;border-radius:var(--r-sm);font-size:var(--t-14);text-align:left;color:var(--ink);min-height:var(--control)}.settings-link:hover{background:var(--hover)}.settings-link.on{background:var(--press)}.settings-link:focus-visible{outline-offset:-2px}.settings-link>svg:first-child{flex-shrink:0;color:var(--ink-2)}.settings-link.on>svg:first-child{color:var(--ink)}.settings-link-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.settings-link-sub{display:none;font-size:var(--t-13);font-weight:400;color:var(--ink-2);line-height:1.35}.settings-link-sub.always{display:block}.settings-link-go{display:none;color:var(--ink-3);flex-shrink:0}.settings-content{overflow-y:auto;min-height:0;padding:24px 40px 48px}.settings-head{margin:0}.settings-title{margin:0;font-family:var(--head);font-size:var(--t-22);font-weight:600;letter-spacing:-.2px}.settings-head-sub{margin:4px 0 0;font-size:var(--t-14);color:var(--ink-2)}.set-section{scroll-margin-top:12px}.set-section>.set-section-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:32px 0 8px;scroll-margin-top:12px;font-size:var(--t-16)}.set-section-title:focus{outline:none}.set-section-title:focus-visible{outline:2px solid var(--focus);outline-offset:4px;border-radius:var(--r-xs)}.set-badge{font-weight:500}.set-section>.sr-only:first-child+*{margin-top:32px}.set-row.set-row-stack{display:block}.set-row.set-row-stack .set-text{margin-bottom:8px}.set-row.set-row-stack .theme-group+.theme-group{margin-top:12px}.set-mini-label{font-size:var(--t-13);font-weight:500;color:var(--ink-2);margin:4px 0 8px}.set-row{display:flex;align-items:center;gap:24px;padding:var(--row-y) 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.set-text{flex:1 1 260px;min-width:0;display:flex;flex-direction:column;gap:2px}.set-title{font-size:var(--t-15);font-weight:500;overflow-wrap:anywhere}.set-title.danger{color:var(--danger)}.set-sub{font-size:var(--t-14);color:var(--ink-2);line-height:1.45}.set-control{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.set-label{font-size:var(--t-14);font-weight:600;color:var(--ink);margin:16px 0 8px}.set-note{font-size:var(--t-14);color:var(--ink-2);line-height:1.5;margin:12px 0 0}.set-note.top{margin:0 0 8px}.switch{position:relative;width:36px;height:20px;border-radius:var(--r-full);border:0;background:color-mix(in srgb,var(--ink) 20%,var(--card));padding:0;flex-shrink:0;transition:background-color .15s ease}.switch:after{content:"";position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:var(--r-full);background:#fff;box-shadow:0 1px 2px #0000004d;transition:left .15s ease}.switch.on{background:var(--accent-strong)}.switch.on:after{left:18px}.theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}.theme-choice{border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:8px;padding:8px 4px;border-radius:var(--r-sm);font-size:var(--t-13);color:var(--ink-2)}.theme-choice:hover{background:var(--hover)}.theme-dot{width:48px;height:48px;border-radius:var(--r-full);border:6px solid transparent;box-shadow:inset 0 0 0 1px #1414161f;box-sizing:border-box}.theme-choice.on{color:var(--ink)}.theme-choice.on .theme-dot{outline:2px solid var(--accent-strong);outline-offset:3px}.set-empty{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:32px 0}.set-empty img{object-fit:contain}.plan-card{display:flex;align-items:center;gap:16px;padding:8px 0 16px;border-bottom:1px solid var(--line);flex-wrap:wrap}.plan-card img{object-fit:contain}.plan-name{font-size:var(--t-18);font-weight:600}.plan-sub{color:var(--ink-2);font-size:var(--t-14);margin-top:2px}.plan-action{margin-left:auto}.spark{color:var(--accent-strong)}.store-line{padding:16px 0 8px}.store-head{display:flex;align-items:center;gap:8px;font-size:var(--t-15);font-weight:600}.store-line p{margin:8px 0 12px;line-height:1.5}.invoices{padding-top:8px}.invoice-table{width:100%;border-collapse:collapse;font-size:var(--t-14);font-variant-numeric:tabular-nums}.invoice-table th{text-align:left;font-size:var(--t-13);font-weight:500;color:var(--ink-2);padding:0 10px 8px 0;border-bottom:1px solid var(--line)}.invoice-table td{padding:12px 10px 12px 0;border-bottom:1px solid var(--line);vertical-align:middle}.invoice-table .num{text-align:right;padding-right:22px;white-space:nowrap}.invoice-number{font-weight:500;white-space:nowrap}.invoice-action{text-align:right;padding-right:0}.invoice-action .ghost-button{min-height:var(--control);padding:0 14px;font-size:var(--t-14);white-space:nowrap}.invoice-status{display:inline-block;padding:2px 6px;border-radius:var(--r-xs);font-size:var(--t-12);font-weight:500;background:var(--pill);color:var(--ink);margin:2px 6px 2px 0}.invoice-status.test{background:var(--due);color:var(--due-ink)}.invoices .error{margin:8px 0 0;font-size:var(--t-14)}.invoice-action .invoice-email{display:inline-flex;align-items:flex-start;gap:6px;margin-top:8px;font-size:var(--t-13);font-weight:500;color:var(--ink);background:none;border:0;padding:4px 0;cursor:pointer;max-width:210px;text-align:right;line-height:1.35}.invoice-action .invoice-email svg{flex:none;margin-top:2px}@media (max-width: 600px){.invoice-action .invoice-email{max-width:none;text-align:left}}.invoice-action .invoice-email:disabled{opacity:.55;cursor:default}.invoice-action .invoice-email:hover:not(:disabled){text-decoration:underline;text-underline-offset:3px}.invoice-email-note{display:block;margin-top:4px;font-size:var(--t-13);color:var(--ink-2);max-width:240px;text-align:right}.invoice-table .invoice-date,.invoice-status{white-space:nowrap}@media (max-width: 600px){.invoice-email-note{max-width:none;text-align:left}}.invoice-email-note.problem{color:var(--danger)}.invoice-actions{display:flex;flex-direction:column;align-items:flex-end}@media (max-width: 600px){.invoice-actions{align-items:flex-start}}.store-line .manage-problem{margin:8px 0 0;font-size:var(--t-14)}@media (max-width: 600px){.invoice-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.invoice-table,.invoice-table tbody,.invoice-table tr,.invoice-table td{display:block;width:100%}.invoice-table tr{padding:12px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:4px 12px;grid-template-areas:"number amount" "date state" "action action";align-items:center}.invoice-table td{border:0;padding:0;width:auto}.invoice-table .invoice-number{grid-area:number}.invoice-table .num{grid-area:amount;text-align:right;padding-right:0;font-weight:500}.invoice-table .invoice-date{grid-area:date;color:var(--ink-2);font-size:var(--t-13)}.invoice-table .invoice-state{grid-area:state;text-align:right}.invoice-table .invoice-state .invoice-status{margin:0 0 0 6px}.invoice-action{grid-area:action;text-align:left;margin-top:6px}}.modal.study-setup{width:600px}.crew{display:flex;justify-content:center;align-items:flex-end;gap:28px}.crew img{height:150px;width:auto;object-fit:contain}.crew img.lead{height:176px}.small-crew{gap:6px;margin:4px 0 8px}.small-crew img{height:92px}.choice{margin-top:4px}.choice .set-label{margin:16px 0 8px}.choice-pair{display:flex;gap:32px;flex-wrap:wrap}.pill-row{display:flex;gap:8px;flex-wrap:wrap}.pick{border:1px solid var(--border);background:var(--card);min-height:var(--control);padding:0 14px;border-radius:var(--r-sm);font-weight:500;font-size:var(--t-14);font-variant-numeric:tabular-nums;color:var(--ink)}.pick:hover{background:color-mix(in srgb,var(--ink) 4%,var(--card))}.pick.on{border-color:var(--accent-strong);box-shadow:inset 0 0 0 1px var(--accent-strong)}.task-picks{display:flex;flex-direction:column;gap:8px}.task-pick{display:flex;align-items:center;gap:12px;border:1px solid var(--border);background:var(--card);border-radius:var(--r-sm);padding:8px 12px;text-align:left;min-height:56px;color:var(--ink)}.task-pick>span:last-child{display:flex;flex-direction:column;gap:2px}.task-pick.on{border-color:var(--accent-strong);box-shadow:inset 0 0 0 1px var(--accent-strong)}.study-screen{position:fixed;inset:0;z-index:80;display:flex;flex-direction:column;padding:26px 32px 0;overflow:hidden;background:#141416;color:#f4f1ea;animation:fade-in .25s ease-out}.study-screen.break{background:#d6ebda;color:#141416}.study-screen.done{background:var(--accent);color:var(--on-accent)}.study-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.study-task{font-weight:500;font-size:var(--t-15)}.study-round{font-size:var(--t-15);opacity:.7}.study-top .bar{min-height:10px;width:10px;align-self:center}.spacer{flex:1}.study-end{border:1px solid currentColor;border-color:color-mix(in srgb,currentColor 30%,transparent);background:none;color:inherit;min-height:var(--control);padding:0 14px;border-radius:var(--r-sm);font-weight:500;font-size:var(--t-14)}.study-center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:10px 0 20px;text-align:center}.timer-ring{position:relative;width:min(400px,70vw,46vh);aspect-ratio:1}.timer-ring svg{width:100%;height:100%}.study-screen .ring-track{stroke:currentColor;opacity:.12}.study-screen .ring-fill{stroke:var(--accent-night)}.study-screen.break .ring-fill{stroke:#141416}.timer-text{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.timer-time{font-size:clamp(56px,11vh,112px);font-weight:600;letter-spacing:-.04em;font-variant-numeric:tabular-nums;line-height:1}.timer-sub{font-size:var(--t-15);opacity:.7}.study-line{margin:0;font-size:var(--t-28);font-weight:600;letter-spacing:-.3px}.study-sub{margin:-8px 0 0;opacity:.75}.study-big{font-size:clamp(48px,9vh,96px);font-weight:600;letter-spacing:-.04em}.study-controls{display:flex;gap:12px;align-items:center}.study-round-button{width:64px;height:64px;border-radius:var(--r-full);border:0;background:currentColor;display:inline-flex;align-items:center;justify-content:center}.study-round-button svg{color:#141416}.study-screen.break .study-round-button svg{color:#fff}.study-pill{min-height:var(--control-lg);padding:0 20px;border-radius:var(--r-sm);border:1px solid color-mix(in srgb,currentColor 30%,transparent);background:none;color:inherit;font-weight:500;font-size:var(--t-15)}.study-pill.solid{background:currentColor;border:0}.study-screen .study-pill.solid{color:inherit}.study-screen.break .study-pill.solid,.study-screen.done .study-pill.solid{background:#141416;color:#fff}.study-screen:not(.break):not(.done) .study-pill.solid{background:#f4f1ea;color:#141416}.round-bars{display:flex;gap:8px}.round-bars span{width:36px;height:6px;border-radius:var(--r-full);background:currentColor;opacity:.15}.round-bars span.on{opacity:1}.study-floor{height:22px;margin:0 -32px;background:#ffffff0d}.study-screen.break .study-floor{background:#0000000d}@media (max-width: 1100px){:root{--gutter: 28px}.cal-layout.with-todos{grid-template-columns:minmax(0,1fr)}.cal-todos{position:static}.cal-layout.with-todos.sized{grid-template-columns:minmax(0,var(--cal-w))}.bento{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 960px){.stat-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 800px){:root{--gutter: 16px}.hero{padding:10px 0 18px}.hero-title{font-size:var(--t-28)}.hero-mascot{width:76px;height:76px;margin:-10px 0 -8px}.hero-side{width:100%;justify-content:space-between}.stat-row.three{grid-template-columns:minmax(0,1fr)}.slot-time{display:none}.calc{position:static}.head-actions{width:100%}.cal-page .page-head{margin-bottom:14px;gap:12px}.cal-page .title{font-size:var(--t-28)}.cal-page .head-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.cal-page .seg-group{display:flex;flex-wrap:nowrap}.cal-page .seg-group .seg{flex:1}.cal-page .head-nav{display:flex;gap:6px}.cal-page .head-more{display:flex;gap:8px;grid-column:1 / -1}.cal-page .head-more>*{flex:1}.cal-page .head-more .ghost-button.on{background:var(--card);color:var(--ink);border-color:var(--line)}.week{padding:8px 6px 0}.week-scroll{max-height:70vh}.month-box{min-height:64px;padding:4px}.month-due{display:none}.banner-title{font-size:var(--t-28)}.course-banner{padding:20px}.course-side{max-width:none}.facts div{grid-template-columns:1fr;gap:2px}.modal.settings-window{width:100%;height:92vh;grid-template-columns:minmax(0,1fr);margin-top:0}.settings-side{display:none}.settings-window.show-list .settings-side{display:flex}.settings-window.show-list .settings-content{display:none}.settings-back{display:inline-flex}.settings-window.show-list .settings-back{display:none}.settings-bar{padding:8px 8px 8px 16px}.settings-window:not(.show-list) .settings-bar{padding-left:6px}.settings-content{padding:16px 16px 30px}.settings-side{border-right:0;padding:12px 16px;background:none}.settings-divider{margin:6px 10px}.settings-link{padding:12px 10px}.settings-link-sub,.settings-link-go{display:block}.settings-link.on{background:none}.settings-link.on:hover{background:var(--hover)}.settings-link-text>span:first-child{font-weight:500;font-size:var(--t-15)}.settings-title{font-size:var(--t-22)}.set-row:has(>.set-control>.switch){flex-wrap:nowrap}.set-row:has(>.set-control>.switch) .set-text{flex-basis:0}.crew{gap:6px}.crew img{height:82px}.crew img.lead{height:96px}.study-screen{padding:18px 18px 0}.study-line{font-size:var(--t-22)}.sticky-layer{display:none}.field-pair,.field-pair.three{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){.switch:after{transition:none}.study-screen,.modal-backdrop,.toast{animation:none}}.sync-notice{display:flex;align-items:center;gap:12px 18px;flex-wrap:wrap;padding:12px 16px 12px 18px;width:calc(100% - 2 * var(--gutter));max-width:calc(var(--page-width) - 2 * var(--gutter));margin:8px auto 0;background:var(--dark-card);color:#fff;border-radius:var(--radius);font-size:var(--t-14)}.sync-notice>div{flex:1 1 320px}.sync-notice p{margin:0}.sync-notice p+p{margin-top:6px}.sync-notice button{min-height:32px;border:0;border-radius:var(--r-sm);padding:0 12px;background:#f6f5f2;color:#2b2f2e;font-size:var(--t-14);font-weight:500}.crash{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;padding:24px 16px}.crash.in-page{min-height:60vh}.crash-title{font-size:var(--t-22);font-weight:600;letter-spacing:-.2px}.crash .lead-small{max-width:420px;margin-bottom:8px}.modal.walkthrough{width:560px;margin-top:4vh;padding:18px 26px 24px;background:var(--bg)}.tour{display:flex;flex-direction:column}.tour-top{display:flex;justify-content:flex-end}.tour-picture{position:relative;display:flex;justify-content:center;margin:4px 0 56px;animation:fade-in .2s ease-out}.tour-picture.no-mascot{margin-bottom:8px}.tour-picture.no-mascot .tour-preview{transform:scale(1.04)}.tour-mascot{position:absolute;right:18px;bottom:-58px;width:120px;height:120px}.tour-mascot img{width:100%;height:100%;object-fit:contain}.tour-crew{position:absolute;left:0;right:0;bottom:-54px;display:flex;justify-content:center;align-items:flex-end;gap:6px}.tour-crew img{height:66px}.tour-crew img.lead{height:76px}.tour-preview{width:340px;max-width:100%;min-height:190px;padding:16px;border-radius:var(--r-md);background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px;transition:transform .2s}.tour-preview.center{align-items:center;justify-content:center}.tour-title{margin:0;font-family:var(--head);font-size:var(--t-28);font-weight:600;letter-spacing:-.02em}.tour-text{margin:8px 0 0;font-size:var(--t-15);line-height:1.45;color:var(--ink-2);min-height:46px}.tour-dots{display:flex;justify-content:center;gap:8px;margin:24px 0 16px}.tour-dots span{width:6px;height:6px;border-radius:var(--r-full);background:var(--border);transition:width .2s}.tour-dots span.on{width:18px;background:var(--accent-strong)}.tour-next{height:var(--control-lg);border-radius:var(--r-sm);font-size:var(--t-15);font-weight:500;width:100%;justify-content:center}.tour-month{font-family:var(--head);font-size:var(--t-22);font-weight:600;letter-spacing:-.2px}.tour-days{display:flex;gap:6px;margin-top:4px}.tour-days span{flex:1;display:flex;flex-direction:column;align-items:center;padding:8px 0;border-radius:var(--r-sm);background:var(--chip);font-size:var(--t-12)}.tour-days span b{font-size:var(--t-16)}.tour-days span.on{background:var(--accent);color:var(--on-accent)}.tour-file{display:flex;align-items:center;gap:10px;font-weight:500;font-size:var(--t-14);margin-bottom:4px}.tour-doc{width:30px;height:34px;border-radius:var(--r-xs);background:var(--chip)}.tour-check{margin-left:auto;color:var(--accent-strong);font-size:var(--t-18)}.tour-row{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--r-sm);background:var(--chip);font-size:var(--t-13);font-weight:500}.tour-row span:first-child{flex:1}.tour-weight{padding:2px 6px;border-radius:var(--r-xs);background:var(--accent);color:var(--on-accent);font-size:var(--t-12);font-weight:500}.tour-upnext{padding:16px;border-radius:var(--r-md);background:var(--accent);color:var(--on-accent)}.tour-upnext-time{font-size:var(--t-13);opacity:.75}.tour-upnext-title{font-size:var(--t-22);font-weight:600;letter-spacing:-.3px;margin:6px 0 10px}.tour-upnext-foot{display:flex;align-items:center;gap:10px;font-size:var(--t-12)}.tour-round{width:32px;height:32px;border-radius:var(--r-full);background:var(--ink);color:var(--inverse);display:grid;place-items:center}.tour-week{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:auto repeat(6,22px);gap:4px 6px}.tour-weekday{text-align:center;font-size:var(--t-12);font-weight:500;color:var(--ink-2)}.tour-block{border-radius:var(--r-xs);padding:6px 8px;font-size:var(--t-12);font-weight:500;line-height:1.25}.tour-block.filled{background:var(--accent);color:var(--on-accent)}.tour-block.study{border:1.2px dashed var(--accent);background:var(--glow);color:var(--ink)}.tour-block small{font-weight:400}.tour-ring{position:relative;width:140px;height:140px}.tour-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.tour-ring circle{fill:none;stroke-width:10}.tour-ring .track{stroke:var(--chip)}.tour-ring .done{stroke:var(--accent);stroke-linecap:round}.tour-ring>div{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.tour-ring b{font-size:var(--t-28);font-weight:600;font-variant-numeric:tabular-nums}.tour-note-title{font-weight:600;font-size:var(--t-16)}.tour-note{display:flex;gap:12px}.tour-note>div:first-child{flex:1;display:flex;flex-direction:column;gap:8px}.tour-ink{width:100%;height:26px;fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round}.tour-ink.faint{width:60%;opacity:.7}.tour-line{height:6px;border-radius:var(--r-full);background:var(--line)}.tour-line.short{width:65%}.tour-note-hand{width:110px;height:76px;border-radius:var(--r-sm);background:var(--glow);padding:10px;display:flex;align-items:flex-end}.tour-todos{display:flex;gap:12px;align-items:flex-start}.tour-todos>div:first-child{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0}.tour-todo{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--r-sm);background:var(--chip);font-size:var(--t-12);font-weight:500}.tour-todo.lifted{background:var(--bg);box-shadow:var(--shadow);transform:rotate(-2deg) translate(6px)}.tour-todo.done{color:var(--ink-2);text-decoration:line-through}.tour-box{flex:none;width:16px;height:16px;border-radius:var(--r-xs);border:1.5px solid var(--ink-3);display:grid;place-items:center;font-size:var(--t-12)}.tour-box.on{background:var(--accent-strong);border-color:var(--accent-strong);color:var(--on-accent-strong)}.tour-sticky{flex:none;width:104px;min-height:104px;padding:10px;border-radius:var(--r-xs) var(--r-xs) var(--r-md) var(--r-xs);background:var(--butter);color:var(--sticky-ink);font-size:var(--t-12);line-height:1.35;transform:rotate(2deg);box-shadow:var(--shadow)}@media (max-width: 600px){.modal.walkthrough{margin-top:0;padding:14px 18px 20px}.tour-title{font-size:var(--t-22)}}:root{--sidebar-width: 264px;--rail-width: 60px}.app.with-sidebar{flex-direction:row;align-items:stretch}.app.with-sidebar.is-narrow{flex-direction:column}.app.with-sidebar .court{flex:1;min-width:0}.app.with-sidebar.is-narrow .main{padding-top:6px}#main:focus{outline:none}body.has-drawer{overflow:hidden}.skip-link{position:fixed;left:12px;top:10px;z-index:90;transform:translateY(-200%);border:0;border-radius:var(--r-sm);padding:8px 12px;background:var(--ink);color:var(--inverse);font-weight:500;font-size:var(--t-14)}.skip-link:focus{transform:none}.sidebar{position:sticky;top:0;height:100vh;height:100dvh;width:var(--sidebar-width);flex:none;z-index:30;display:flex;flex-direction:column;background:var(--sidebar);color:var(--ink);border-right:1px solid var(--border);transition:width .18s ease}.sidebar.is-rail{width:var(--rail-width)}.side-top{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:60px;padding:12px 12px 4px}.sidebar.is-rail .side-top{justify-content:center;padding:12px 0 4px}.side-brand{display:inline-flex;align-items:center;border:0;background:none;padding:2px 4px;border-radius:var(--r-sm)}.side-brand:hover{background:var(--hover)}.side-brand .wordmark{border-radius:0}.side-icon-button{display:inline-flex;align-items:center;justify-content:center;flex:none;width:var(--control);height:var(--control);border:0;background:none;border-radius:var(--r-sm);color:var(--ink-2)}.side-icon-button:hover{background:var(--hover);color:var(--ink)}.side-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:4px 8px 8px;scrollbar-width:thin}.side-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.side-row{position:relative;display:flex;align-items:center;gap:10px;width:100%;min-height:var(--control);padding:0 10px;border:0;background:none;border-radius:var(--r-sm);color:var(--ink);font-size:var(--t-14);font-weight:400;text-decoration:none;text-align:left;white-space:nowrap}.side-row>svg{flex:none;color:var(--ink-2)}.side-row:hover{background:var(--hover)}.side-row.on{background:var(--press)}.side-row.on>svg{color:var(--ink)}.side-row:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.side-label{min-width:0;overflow:hidden;text-overflow:ellipsis}.side-count{margin-left:auto;font-size:var(--t-12);font-weight:500;color:var(--ink-2);font-variant-numeric:tabular-nums}.side-line{height:1px;background:var(--line);margin:8px 10px}.side-new{margin:2px 0 8px}.side-new-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:18px;height:18px;color:var(--ink-2)}.side-new:hover .side-new-icon{color:var(--ink)}.sidebar.is-rail .side-scroll{padding:4px 12px 8px}.sidebar.is-rail .side-row{justify-content:center;gap:0;padding:0}.sidebar.is-rail .side-new-icon{margin:0}.sidebar.is-rail .side-line{margin:8px 6px}.sidebar.is-rail .side-label,.sidebar.is-rail .side-count{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.side-foot{display:flex;flex-direction:column;gap:8px;padding:8px}.sidebar.is-rail .side-foot{padding:8px 12px 12px}.side-card{display:flex;flex-direction:column;gap:8px;padding:12px;margin:0 2px 2px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius)}.side-card-text{margin:0;font-size:var(--t-14);font-weight:500;line-height:1.35}.side-card-button{width:100%;min-height:var(--control)}.side-card-foot{margin:0;font-size:var(--t-13);color:var(--ink-2);line-height:1.4}.side-card .link-button{border:0;background:none;padding:0 1px;color:var(--ink);font-size:inherit;font-weight:500;text-decoration:underline;text-decoration-color:var(--border);text-underline-offset:2px}.side-card .link-button:hover{text-decoration-color:currentColor}.side-status{display:flex;align-items:center;gap:8px;padding:0 12px;font-size:var(--t-13);color:var(--ink-2)}.side-status:not(.on){display:none}.side-status-dot{flex:none;width:8px;height:8px;border-radius:var(--r-full);background:var(--ink-3)}.side-status.saving .side-status-dot{animation:side-pulse 1.2s ease-in-out infinite}.side-status.problem .side-status-dot{background:var(--danger)}.side-status-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar.is-rail .side-status{justify-content:center;padding:0;min-height:12px}@keyframes side-pulse{50%{opacity:.35}}.side-account{position:relative}.side-account-button{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:8px;border:0;background:none;border-radius:var(--r-sm);color:var(--ink);text-align:left}.side-account-button:hover,.side-account-button[aria-expanded=true]{background:var(--hover)}.side-account-button:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.side-account-button .avatar{width:28px;height:28px;font-size:var(--t-13)}.side-account-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--t-14)}.side-account-name{font-weight:500}.side-account-plan{color:var(--ink-2)}.side-chevron{flex:none;color:var(--ink-3)}.sidebar.is-rail .side-account-button{justify-content:center;padding:8px 0}.sidebar.is-rail .side-account-text,.sidebar.is-rail .side-chevron{display:none}.side-menu{position:absolute;left:0;right:0;bottom:calc(100% + 8px);z-index:46;min-width:248px;display:flex;flex-direction:column;padding:4px;background:var(--card);color:var(--ink);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow);animation:fade-in .12s ease-out}.side-menu.from-rail{right:auto;width:264px}.side-menu-head{display:flex;flex-direction:column;gap:2px;min-width:0;padding:8px 10px}.side-menu-name{font-size:var(--t-14);font-weight:500}.side-menu-email{font-size:var(--t-13);color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-menu>button,.side-menu>a,.side-menu-lang{display:flex;align-items:center;gap:10px;min-height:var(--control);padding:0 10px;border:0;background:none;border-radius:var(--r-sm);color:var(--ink);font-size:var(--t-14);text-align:left;text-decoration:none}.side-menu>button:hover,.side-menu>a:hover{background:var(--hover)}.side-menu>button:focus-visible,.side-menu>a:focus-visible{background:var(--hover);outline:2px solid var(--focus);outline-offset:-2px}.side-menu>button:focus:not(:focus-visible),.side-menu>a:focus:not(:focus-visible){outline:none}.side-menu svg{flex:none;color:var(--ink-2)}.side-menu-label{flex:1;min-width:0}.side-kbd{font:inherit;font-size:var(--t-12);color:var(--ink-3)}.side-menu .side-menu-out{color:var(--ink-3)}.side-lang-seg{display:inline-flex;gap:2px;padding:2px;border-radius:var(--r-sm);background:var(--chip)}.side-lang-seg button{min-width:36px;min-height:26px;border:0;background:none;border-radius:var(--r-xs);font-size:var(--t-12);font-weight:500;color:var(--ink-2)}.side-lang-seg button:hover{color:var(--ink)}.side-lang-seg button.on{background:var(--pill-on);color:var(--ink);box-shadow:var(--shadow-sm),0 0 0 1px var(--border)}.side-lang-seg button:focus{outline:2px solid var(--focus);outline-offset:1px}.side-lang-seg button:focus:not(:focus-visible){outline:none}.side-mobile-top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:4px;min-height:56px;padding:8px 12px 8px 8px;background:var(--bg);border-bottom:1px solid var(--line)}.side-mobile-end{margin-left:auto;display:flex;align-items:center;gap:8px;min-width:0}.side-mobile-status{min-width:0;max-width:42vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--t-13);color:var(--ink-2)}.sidebar.is-drawer{position:fixed;top:0;bottom:0;left:0;height:auto;width:min(300px,86vw);z-index:45;transform:translate(-102%);visibility:hidden;transition:transform .22s ease,visibility 0s linear .22s}.sidebar.is-drawer.is-open{transform:none;visibility:visible;box-shadow:var(--shadow);transition:transform .22s ease}.side-scrim{position:fixed;inset:0;z-index:44;background:var(--scrim);animation:fade-in .15s ease-out}@media (prefers-reduced-motion: reduce){.sidebar,.sidebar.is-drawer,.sidebar.is-drawer.is-open,.side-new-icon{transition:none}.side-menu,.side-scrim,.side-status.saving .side-status-dot{animation:none}}
