@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap";:root{color-scheme:dark;--color-paper: oklch(17% .018 268);--color-paper-raised: oklch(20.5% .018 268);--color-paper-soft: oklch(24% .02 268);--color-ink: oklch(93% .009 78);--color-ink-secondary: oklch(82% .012 258);--color-muted: oklch(67% .015 258);--color-rule: oklch(31% .018 268);--color-rule-strong: oklch(39% .02 268);--color-accent: oklch(79% .13 78);--color-accent-ink: oklch(23% .035 75);--color-accent-soft: oklch(27% .045 78);--color-success: oklch(75% .11 155);--color-success-soft: oklch(25% .035 155);--color-warning: oklch(80% .12 75);--color-warning-soft: oklch(26% .04 75);--color-error: oklch(75% .13 25);--color-error-soft: oklch(26% .045 25);--color-focus: oklch(79% .13 78);--font-display: "Manrope", sans-serif;--font-body: "DM Sans", sans-serif;--space-2xs: .25rem;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4.5rem;--radius-control: .6rem;--ease-out: cubic-bezier(.16, 1, .3, 1);--duration-quick: .16s;--z-dropdown: 100}*{box-sizing:border-box}html,body{width:100%;min-width:320px;min-height:100%;overflow-x:clip}body{margin:0;color:var(--color-ink);background:var(--color-paper);font-family:var(--font-body);font-size:14px;line-height:1.6;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}button,input,select{color:inherit;font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}#root{min-height:100vh}.app-shell{width:min(1160px,calc(100% - 72px));margin-inline:auto}.app-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg);min-height:76px;border-bottom:1px solid var(--color-rule)}.wordmark{display:inline-flex;align-items:baseline;gap:9px;flex:0 0 auto;text-decoration:none}.wordmark-symbol{color:var(--color-ink);font-family:var(--font-display);font-size:31px;font-weight:800;line-height:1;letter-spacing:-.11em}.wordmark-symbol span,.footer-wordmark span{color:var(--color-accent)}.wordmark-name{color:var(--color-ink-secondary);font-family:var(--font-display);font-size:13px;font-weight:600;letter-spacing:-.035em}.header-right{display:flex;align-items:center;justify-content:end;gap:17px;min-width:0}.connection-state,.footer-status{display:inline-flex;align-items:center;gap:8px;color:var(--color-muted);font-size:11px;white-space:nowrap}.connection-dot,.status-dot{display:inline-block;width:6px;height:6px;flex:0 0 auto;border-radius:50%;background:var(--color-success)}.connection-state.is-warning .connection-dot{background:var(--color-warning)}.refresh-button{display:grid;place-items:center;width:42px;height:42px;flex:0 0 auto;padding:0;border:1px solid var(--color-rule-strong);border-radius:50%;color:var(--color-ink-secondary);background:transparent;font-size:21px;line-height:1;transition:background-color var(--duration-quick) var(--ease-out),color var(--duration-quick) var(--ease-out)}.refresh-button:hover:not(:disabled){color:var(--color-accent);background:var(--color-paper-soft)}.refresh-button:active:not(:disabled){transform:translateY(1px)}.welcome{display:grid;grid-template-columns:minmax(0,1fr) minmax(205px,270px);align-items:end;gap:var(--space-2xl);padding-block:54px 38px}.welcome>div{min-width:0}.welcome-kicker{margin:0 0 18px;color:var(--color-accent);font-size:11px;font-weight:600;letter-spacing:.035em}.welcome-kicker span{padding-inline:7px;color:var(--color-muted)}.welcome h1{max-width:730px;margin:0;color:var(--color-ink);font-family:var(--font-display);font-size:clamp(2.4rem,5.1vw,4.5rem);font-weight:600;letter-spacing:-.075em;line-height:1.035;overflow-wrap:anywhere}.welcome-copy{max-width:480px;margin:17px 0 0;color:var(--color-muted);font-size:14px;line-height:1.75}.welcome-note{max-width:270px;margin:0 0 6px;padding-left:15px;border-left:2px solid var(--color-accent);color:var(--color-ink-secondary);font-size:12px;line-height:1.7}.notice{display:grid;gap:6px;margin-bottom:var(--space-lg);padding:13px 15px;border:1px solid var(--color-rule-strong);border-radius:var(--radius-control);font-size:12px;line-height:1.65}.notice>span{overflow-wrap:anywhere}.notice-warning{border-color:var(--color-warning);color:var(--color-ink);background:var(--color-warning-soft)}.notice-error{border-color:var(--color-error);color:var(--color-error);background:var(--color-error-soft)}.text-button{width:fit-content;min-height:38px;margin-top:3px;padding:7px 0;border:0;border-bottom:1px solid currentColor;border-radius:0;color:var(--color-accent);background:transparent;font-size:12px;font-weight:600;text-align:left}.text-button:hover{color:var(--color-ink)}.workspace-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(230px,.75fr);gap:clamp(30px,5.5vw,78px);align-items:start;padding-top:6px}.task-section,.course-section{min-width:0}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:15px}.section-heading h2,.course-heading h2{margin:0;color:var(--color-ink);font-family:var(--font-display);font-size:clamp(1.55rem,2.3vw,2rem);font-weight:600;letter-spacing:-.055em;line-height:1.2;overflow-wrap:anywhere}.section-subtitle{margin:6px 0 0;color:var(--color-muted);font-size:11px;line-height:1.6}.result-count,.course-total{flex:0 0 auto;color:var(--color-muted);font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}.task-tabs{display:flex;gap:23px;margin-top:23px;border-bottom:1px solid var(--color-rule)}.task-tab{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 0 2px;border:0;border-bottom:2px solid transparent;color:var(--color-muted);background:transparent;font-size:12px;white-space:nowrap}.task-tab span{color:var(--color-muted);font-size:10px;font-variant-numeric:tabular-nums}.task-tab:hover,.task-tab.is-current{color:var(--color-ink)}.task-tab.is-current{border-bottom-color:var(--color-accent)}.task-tab.is-current span{color:var(--color-accent)}.filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(140px,.48fr) minmax(100px,.34fr);gap:8px;padding-block:16px 14px}.search-field,.select-field{display:flex;align-items:center;min-width:0;min-height:42px;border:1px solid var(--color-rule);border-radius:var(--radius-control);background:var(--color-paper-raised)}.search-field{gap:9px;padding:0 11px}.search-symbol{color:var(--color-muted);font-size:19px;line-height:1}.search-field input{width:100%;min-width:0;padding:0;border:0;outline:0;color:var(--color-ink);background:transparent;font-size:11px}.search-field input::placeholder{color:var(--color-muted);opacity:.9}.search-field input:focus-visible{outline:0}.search-field:focus-within,.select-field:focus-within{border-color:var(--color-focus)}.clear-search{display:grid;place-items:center;width:28px;height:28px;flex:0 0 auto;padding:0;border:0;border-radius:50%;color:var(--color-muted);background:var(--color-paper-soft);font-size:18px;line-height:1}.select-field select{width:100%;min-width:0;min-height:40px;padding:0 23px 0 10px;border:0;outline:0;color:var(--color-ink-secondary);background:transparent;font-size:11px;text-overflow:ellipsis}.select-field select option{color:var(--color-ink);background:var(--color-paper-raised)}.task-list{padding-top:2px}.task-row{display:grid;grid-template-columns:62px minmax(0,1fr) minmax(115px,145px);gap:16px;align-items:start;padding:20px 0 21px;border-bottom:1px solid var(--color-rule)}.task-date{display:grid;align-content:start;gap:3px;padding-top:2px;text-decoration:none}.task-date span{color:var(--color-muted);font-size:10px;text-transform:uppercase}.task-date strong{color:var(--color-ink-secondary);font-family:var(--font-display);font-size:13px;font-weight:600;letter-spacing:-.025em;white-space:nowrap}.task-main{min-width:0}.task-meta{display:flex;flex-wrap:wrap;align-items:center;gap:7px;color:var(--color-muted);font-size:10px;line-height:1.5}.task-course{color:var(--color-accent);font-weight:600}.meta-divider{color:var(--color-rule-strong)}.task-main h3{margin:5px 0 0;color:var(--color-ink);font-family:var(--font-display);font-size:16px;font-weight:600;letter-spacing:-.035em;line-height:1.42;overflow-wrap:anywhere}.task-description{margin:8px 0 0;color:var(--color-ink-secondary);font-size:11px;line-height:1.72;overflow-wrap:anywhere}.markdown-content>:first-child{margin-top:0}.markdown-content>:last-child{margin-bottom:0}.markdown-content p{margin:.45em 0;white-space:pre-wrap}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4{margin:.85em 0 .4em;color:var(--color-ink);font-family:var(--font-display);font-size:1.05em;font-weight:650;letter-spacing:-.025em;line-height:1.35}.markdown-content strong{color:var(--color-ink);font-weight:700}.markdown-content em{color:var(--color-ink-secondary)}.markdown-content ul,.markdown-content ol{margin:.45em 0;padding-inline-start:1.5em}.markdown-content li{margin-block:.25em;padding-inline-start:.15em}.markdown-content li::marker{color:var(--color-accent)}.markdown-content a{color:var(--color-accent);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}.markdown-content blockquote{margin:.7em 0;padding-left:.9em;border-left:2px solid var(--color-rule-strong);color:var(--color-muted)}.markdown-content pre{max-width:100%;overflow-x:auto;padding:.75em .9em;border-radius:.5rem;color:var(--color-ink-secondary);background:var(--color-paper-raised);font-size:.95em}.markdown-content code{padding:.08em .25em;border-radius:.25rem;background:var(--color-paper-soft);font-size:.94em}.markdown-content pre code{padding:0;background:transparent}.markdown-content hr{border:0;border-top:1px solid var(--color-rule);margin-block:.9em}.task-links{display:flex;flex-wrap:wrap;align-items:center;gap:3px 14px;margin-top:6px}.task-links a{display:inline-flex;align-items:center;min-height:34px;color:var(--color-ink-secondary);font-size:10px;font-weight:600;text-decoration:underline;text-decoration-color:var(--color-rule-strong);text-underline-offset:4px;white-space:nowrap}.task-links a span{margin-left:3px;color:var(--color-accent)}.task-links a:hover{color:var(--color-ink);text-decoration:underline;text-decoration-color:var(--color-accent);text-underline-offset:4px}.task-timing{display:grid;justify-items:end;gap:7px;padding-top:1px;text-align:right}.deadline-status{display:inline-flex;align-items:center;gap:6px;max-width:100%;color:var(--color-success);font-size:10px;font-weight:600;line-height:1.45;text-align:right}.deadline-status .status-dot{width:5px;height:5px;background:var(--color-success)}.deadline-status.is-overdue{color:var(--color-error)}.deadline-status.is-overdue .status-dot{background:var(--color-error)}.task-time{color:var(--color-muted);font-size:9px;line-height:1.6;text-align:right}.task-row-overdue .task-main h3{color:var(--color-ink-secondary)}.list-footnote{margin:12px 0 0;color:var(--color-muted);font-size:10px;line-height:1.6}.empty-state{display:grid;justify-items:start;gap:7px;padding:30px 0 34px;border-bottom:1px solid var(--color-rule)}.empty-state strong{color:var(--color-ink);font-family:var(--font-display);font-size:16px;font-weight:600;letter-spacing:-.025em}.empty-state>span:not(.loading-mark):not(.empty-mark){color:var(--color-muted);font-size:11px;line-height:1.65}.loading-mark{width:18px;height:18px;margin-bottom:5px;border:2px solid var(--color-rule);border-top-color:var(--color-accent);border-radius:50%;animation:loading-turn .8s linear infinite}@keyframes loading-turn{to{transform:rotate(360deg)}}.empty-mark{color:var(--color-accent);font-family:var(--font-display);font-size:23px;line-height:1}.course-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:13px}.course-heading h2{font-size:clamp(1.4rem,2vw,1.75rem)}.course-total{font-family:var(--font-display);font-size:19px}.course-list{border-top:1px solid var(--color-rule)}.course-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:60px;padding:10px 0;border:0;border-bottom:1px solid var(--color-rule);text-align:left;background:transparent;transition:color var(--duration-quick) var(--ease-out)}.course-row-copy{display:grid;gap:4px;min-width:0}.course-row-copy strong{color:var(--color-ink-secondary);font-size:11px;font-weight:500;line-height:1.5;overflow-wrap:anywhere}.course-row-copy small{color:var(--color-muted);font-size:10px;line-height:1.45}.course-count{display:grid;place-items:center;min-width:25px;height:25px;flex:0 0 auto;color:var(--color-muted);font-size:11px;font-variant-numeric:tabular-nums}.course-row:hover .course-row-copy strong,.course-row.is-selected .course-row-copy strong,.course-row.is-selected .course-count{color:var(--color-accent)}.clear-course-filter{margin-top:12px}.aside-message{padding:14px 0;border-top:1px solid var(--color-rule);color:var(--color-muted);font-size:11px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%)}.app-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:52px;padding:16px 0 22px;border-top:1px solid var(--color-rule);color:var(--color-muted);font-size:10px}.footer-wordmark{color:var(--color-ink-secondary);font-family:var(--font-display);font-size:12px;font-weight:700;letter-spacing:-.04em}.footer-status{font-size:10px}@media(hover:hover)and (pointer:fine){.course-row:hover{padding-left:5px}}@media(max-width:980px){.app-shell{width:min(100% - 48px,800px)}.welcome{grid-template-columns:minmax(0,1fr) minmax(180px,230px);gap:var(--space-xl)}.workspace-grid{grid-template-columns:minmax(0,1.45fr) minmax(205px,.8fr);gap:30px}.filters{grid-template-columns:minmax(0,1fr) minmax(125px,.65fr)}.select-field:last-child{grid-column:2}.task-row{grid-template-columns:55px minmax(0,1fr);gap:12px}.task-timing{grid-column:2;display:flex;align-items:baseline;justify-content:space-between;gap:10px;text-align:left}.task-time,.deadline-status{text-align:left}}@media(max-width:700px){.app-shell{width:calc(100% - 36px)}.app-header{min-height:68px}.header-right{gap:10px}.connection-state{max-width:132px;overflow:hidden;font-size:10px;text-overflow:ellipsis}.welcome{grid-template-columns:minmax(0,1fr);gap:19px;padding-block:38px 28px}.welcome h1{font-size:clamp(2.45rem,8.5vw,3.7rem)}.wide-break{display:none}.welcome-copy{max-width:420px;margin-top:13px;font-size:13px}.welcome-note{max-width:none;margin:0;padding-left:11px;font-size:11px}.workspace-grid{grid-template-columns:minmax(0,1fr);gap:42px;padding-top:5px}.course-section{padding-top:28px;border-top:1px solid var(--color-rule)}.filters{grid-template-columns:minmax(0,1fr) minmax(115px,.7fr)}.task-row{grid-template-columns:54px minmax(0,1fr);gap:11px;padding-block:17px 18px}.task-date{grid-row:1 / span 3}.task-main h3{font-size:15px}.task-timing{grid-column:2;flex-wrap:wrap;gap:6px 12px}.task-time{font-size:9px}.app-footer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 14px;margin-top:38px}.app-footer>span:nth-child(2){grid-column:1;grid-row:2}.footer-status{grid-column:2;grid-row:1 / span 2;align-self:center}}@media(max-width:420px){.app-shell{width:calc(100% - 28px)}.wordmark{gap:7px}.wordmark-name{font-size:12px}.connection-state{max-width:98px;gap:5px;font-size:9px}.refresh-button{width:38px;height:38px}.welcome{padding-top:32px}.welcome h1{font-size:clamp(2.25rem,9.2vw,2.75rem);letter-spacing:-.075em}.task-tabs{gap:20px}.filters{grid-template-columns:minmax(0,1fr);gap:7px}.select-field:last-child{grid-column:auto}.task-row{grid-template-columns:45px minmax(0,1fr);gap:9px}.task-date strong{font-size:12px}.task-main h3{font-size:14px}.task-timing{align-items:flex-start;flex-direction:column}.app-footer{grid-template-columns:minmax(0,1fr);gap:7px}.app-footer>span:nth-child(2),.footer-status{grid-column:1;grid-row:auto}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.open-admin-button,.quiet-button,.primary-action,.danger-action,.markdown-tool{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 13px;border:1px solid var(--color-rule-strong);border-radius:var(--radius-control);color:var(--color-ink-secondary);background:transparent;font-size:12px;font-weight:600;text-decoration:none;white-space:nowrap;transition:color var(--duration-quick) var(--ease-out),background-color var(--duration-quick) var(--ease-out),border-color var(--duration-quick) var(--ease-out)}.open-admin-button{min-height:40px;padding-inline:14px;border-color:var(--color-accent);color:var(--color-accent-ink);background:var(--color-accent)}.open-admin-button span{color:var(--color-accent-ink)}.open-admin-button:hover{border-color:#f6c16b;color:var(--color-accent-ink);background:#f6c16b}.quiet-button:hover:not(:disabled){border-color:var(--color-ink-secondary);color:var(--color-ink);background:var(--color-paper-raised)}.primary-action{border-color:var(--color-accent);color:var(--color-accent-ink);background:var(--color-accent)}.primary-action:hover:not(:disabled){border-color:var(--color-accent);background:#f6c16b}.primary-action:active:not(:disabled),.danger-action:active:not(:disabled){transform:translateY(1px)}.danger-action{border-color:var(--color-error);color:var(--color-ink);background:var(--color-error-soft)}.danger-action:hover:not(:disabled){background:#4a2321}.danger-text-button{min-height:42px;padding:0 5px;border:0;border-bottom:1px solid transparent;color:var(--color-error);background:transparent;font-size:12px;font-weight:600;white-space:nowrap}.danger-text-button:hover{border-bottom-color:currentColor}.header-right{flex-wrap:nowrap}.task-tab,.course-row{cursor:pointer}.task-tab:focus-visible,.course-row:focus-visible,.open-admin-button:focus-visible,.quiet-button:focus-visible,.primary-action:focus-visible,.danger-action:focus-visible,.danger-text-button:focus-visible,.markdown-tool:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}@media(hover:hover)and (pointer:fine){.task-tab:hover{color:var(--color-ink)}.task-links a:hover{text-decoration-thickness:2px}}.course-row{border-radius:0}.course-row.is-selected{padding-left:9px;border-left:2px solid var(--color-accent);background:var(--color-paper-raised)}.admin-shell{padding-bottom:24px}.admin-header-actions{display:flex;align-items:center;justify-content:end;gap:10px;min-width:0}.admin-email{max-width:240px;overflow:hidden;color:var(--color-muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.admin-workspace{padding-top:38px}.admin-welcome{display:flex;align-items:end;justify-content:space-between;gap:24px;padding-bottom:28px;border-bottom:1px solid var(--color-rule)}.admin-welcome h1,.auth-section h1{margin:0;color:var(--color-ink);font-family:var(--font-display);font-size:clamp(2rem,4vw,3.1rem);font-weight:600;letter-spacing:-.065em;line-height:1.08}.admin-eyebrow{margin:0 0 9px;color:var(--color-accent);font-size:10px;font-weight:700;letter-spacing:.08em}.admin-section-description{max-width:64ch;margin:8px 0 0;color:var(--color-muted);font-size:12px;line-height:1.7}.add-task-button{flex:0 0 auto}.admin-inline-note{margin:22px 0;padding:12px 0;border-bottom:1px solid var(--color-rule);color:var(--color-muted);font-size:12px;line-height:1.65}.admin-section-heading{display:flex;align-items:end;justify-content:space-between;gap:18px}.admin-section-heading h2{margin:0;color:var(--color-ink);font-family:var(--font-display);font-size:clamp(1.4rem,2.3vw,1.85rem);font-weight:600;letter-spacing:-.05em}.admin-form-section{margin:27px 0 34px;padding:26px 0 30px;border-top:1px solid var(--color-rule-strong);border-bottom:1px solid var(--color-rule-strong)}.admin-form{display:grid;gap:21px;margin-top:24px}.form-two-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.form-field{display:grid;align-content:start;gap:7px;min-width:0}.form-field>label,.form-label-row>label,.form-fieldset legend{color:var(--color-ink-secondary);font-size:12px;font-weight:600}.form-field>label span,.form-fieldset legend span{margin-left:5px;color:var(--color-accent);font-size:10px;font-weight:500}.form-label-row{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:8px}.optional-label{color:var(--color-muted)!important;font-size:10px!important;font-weight:400!important}.form-field input:not([type=file]):not([type=checkbox]),.form-field select,.form-field textarea{width:100%;min-width:0;min-height:44px;padding:10px 12px;border:1px solid var(--color-rule-strong);border-radius:var(--radius-control);color:var(--color-ink);background:var(--color-paper-raised);font-size:12px;line-height:1.5;outline:2px solid transparent;outline-offset:1px}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--color-rule-strong);outline:2px solid var(--color-focus)}.form-field input[aria-invalid=true],.form-field select[aria-invalid=true],.form-field textarea[aria-invalid=true]{border-color:var(--color-error)}.form-field input[aria-invalid=true]:focus,.form-field select[aria-invalid=true]:focus,.form-field textarea[aria-invalid=true]:focus{outline-color:var(--color-error)}.form-field input::placeholder,.form-field textarea::placeholder{color:var(--color-muted);opacity:.95}.form-field textarea{min-height:160px;resize:vertical;font-family:var(--font-body)}.form-field input[type=file]{width:100%;min-height:44px;padding:8px;border:1px solid var(--color-rule-strong);border-radius:var(--radius-control);color:var(--color-muted);background:var(--color-paper-raised);font-size:11px}.form-field input[type=file]::file-selector-button{min-height:28px;margin-right:10px;padding:0 9px;border:1px solid var(--color-rule-strong);border-radius:4px;color:var(--color-ink-secondary);background:var(--color-paper-soft);cursor:pointer}.field-hint{min-height:1lh;margin:0;color:var(--color-muted);font-size:10px;line-height:1.55;overflow-wrap:anywhere}.field-error{color:var(--color-error)!important}.form-fieldset{min-width:0;margin:0;padding:0;border:0}.form-fieldset legend{margin-bottom:10px;padding:0}.markdown-editor{overflow:hidden;border:1px solid var(--color-rule-strong);border-radius:var(--radius-control);background:var(--color-paper-raised)}.markdown-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:5px;padding:7px 9px;border-bottom:1px solid var(--color-rule)}.markdown-tool{min-width:34px;min-height:34px;padding-inline:8px;border-color:transparent;border-radius:4px;color:var(--color-ink-secondary);background:transparent;font-family:var(--font-display);font-size:13px}.markdown-tool:hover{border-color:var(--color-rule);background:var(--color-paper-soft)}.markdown-tool:nth-child(2){font-style:italic}.toolbar-divider{width:1px;height:19px;margin-inline:4px;background:var(--color-rule-strong)}.markdown-editor textarea{display:block;border:0!important;border-radius:0!important;outline:0!important;background:transparent!important;box-shadow:none!important}.markdown-editor textarea:focus-visible{outline:2px solid var(--color-focus)!important;outline-offset:-3px!important}.markdown-preview{margin-top:12px;padding:12px 0 0;border-top:1px solid var(--color-rule)}.markdown-preview summary{width:fit-content;min-height:35px;color:var(--color-accent);font-size:11px;font-weight:600;cursor:pointer}.markdown-preview>.markdown-content{padding:7px 0 2px;color:var(--color-ink-secondary);font-size:12px;line-height:1.7}.markdown-preview .markdown-content pre{white-space:pre}.current-file{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:4px;padding:11px 0;border-bottom:1px solid var(--color-rule);font-size:11px}.current-file a{color:var(--color-accent);text-underline-offset:3px}.remove-file-control{display:inline-flex;align-items:center;gap:8px;min-height:36px;color:var(--color-muted)!important;font-size:11px!important;font-weight:400!important}.remove-file-control input{accent-color:var(--color-accent);width:16px;height:16px}.form-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding-top:4px}.form-error-summary{margin-top:19px;padding:13px 15px;border:1px solid var(--color-error);border-radius:var(--radius-control);color:var(--color-error);background:var(--color-error-soft);font-size:12px;line-height:1.65}.form-error-summary p{margin:4px 0 0}.form-error-summary ul{margin:8px 0 0;padding-left:20px}.form-error-summary li{margin-block:3px}.form-success-note{margin:17px 0 0;color:var(--color-success);font-size:12px;line-height:1.65}.admin-task-list-section{padding-top:8px}.admin-search{display:flex;align-items:center;gap:8px;width:min(280px,45%);min-height:42px;padding:0 11px;border:1px solid var(--color-rule);border-radius:var(--radius-control);color:var(--color-muted);background:var(--color-paper-raised)}.admin-search>span{font-size:19px}.admin-search input{width:100%;min-width:0;padding:0;border:0;outline:0;color:var(--color-ink);background:transparent;font-size:11px}.admin-search input:focus-visible{outline:0}.admin-search:focus-within{border-color:var(--color-focus);outline:2px solid var(--color-focus);outline-offset:1px}.managed-task-list{margin-top:18px;border-top:1px solid var(--color-rule)}.managed-task-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 0;border-bottom:1px solid var(--color-rule)}.managed-task-copy{min-width:0}.managed-task-course{color:var(--color-accent);font-size:10px;font-weight:600}.managed-task-course span{color:var(--color-muted)}.managed-task-copy h3{margin:4px 0 3px;color:var(--color-ink);font-family:var(--font-display);font-size:15px;font-weight:600;letter-spacing:-.025em;overflow-wrap:anywhere}.managed-task-copy p{margin:0;color:var(--color-muted);font-size:10px}.managed-task-actions{display:flex;align-items:center;flex:0 0 auto;gap:6px}.delete-confirmation{display:flex;align-items:start;justify-content:space-between;flex-wrap:wrap;gap:18px;margin-top:20px;padding:18px 0;border-top:1px solid var(--color-error);border-bottom:1px solid var(--color-error);color:var(--color-ink)}.delete-confirmation h2{margin:0;font-family:var(--font-display);font-size:18px;letter-spacing:-.04em}.delete-confirmation p{max-width:65ch;margin:5px 0 0;color:var(--color-muted);font-size:12px;line-height:1.65}.auth-section{width:min(520px,100%);margin:64px auto 0;padding-bottom:40px}.auth-section>p:not(.admin-eyebrow):not(.admin-section-description):not(.auth-footnote){color:var(--color-muted);font-size:12px;line-height:1.7}.auth-tabs{display:flex;gap:23px;margin-top:26px;border-bottom:1px solid var(--color-rule)}.auth-tab{min-height:44px;padding:0 0 4px;border:0;border-bottom:2px solid transparent;color:var(--color-muted);background:transparent;font-size:12px;cursor:pointer}.auth-tab.is-current{border-bottom-color:var(--color-accent);color:var(--color-ink)}.auth-form{margin-top:20px;gap:17px}.auth-form .primary-action{width:fit-content;min-width:150px;margin-top:3px}.auth-footnote{margin-top:22px;padding-top:13px;border-top:1px solid var(--color-rule);color:var(--color-muted);font-size:10px;line-height:1.65}@media(max-width:700px){.admin-workspace{padding-top:26px}.admin-welcome{align-items:start;flex-direction:column;gap:15px}.admin-section-heading{align-items:start;flex-direction:column}.admin-search{width:100%}.admin-form-section{padding-block:22px}.auth-section{margin-top:36px}}@media(max-width:480px){.open-admin-button{min-height:38px;padding-inline:9px;font-size:11px}.connection-state{display:none}.header-right{gap:7px}.form-two-columns{grid-template-columns:minmax(0,1fr);gap:17px}.admin-header-actions{gap:6px}.admin-email{display:none}.managed-task-row{align-items:start;flex-direction:column;gap:9px}.managed-task-actions{width:100%}.auth-section{margin-top:28px}}@media(prefers-reduced-motion:reduce){.open-admin-button,.quiet-button,.primary-action,.danger-action,.refresh-button{transition:none}}.course-row:hover .course-row-copy strong,.course-row:focus-visible .course-row-copy strong{text-decoration:underline;text-decoration-color:var(--color-accent);text-underline-offset:3px}.markdown-preview{display:grid;gap:8px;margin-top:12px;padding-top:11px;border-top:1px solid var(--color-rule)}.markdown-preview summary{display:none}.preview-toggle{width:fit-content;min-height:38px;padding:4px 0;border:0;border-bottom:1px solid var(--color-rule-strong);color:var(--color-accent);background:transparent;font-size:11px;font-weight:600;cursor:pointer}.preview-toggle:hover{border-bottom-color:var(--color-accent);color:var(--color-ink)}.markdown-preview-content{padding:7px 0 2px;color:var(--color-ink-secondary);font-size:12px;line-height:1.7}.markdown-preview-content pre{white-space:pre}.tiptap-editor-shell{width:100%;min-width:0;overflow:hidden;border:1px solid var(--color-rule-strong);border-radius:var(--radius-control);background:var(--color-paper-raised)}.tiptap-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:4px;padding:8px;border-bottom:1px solid var(--color-rule);background:var(--color-paper)}.tiptap-tool{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:35px;min-height:35px;padding:0 9px;border:1px solid transparent;border-radius:5px;color:var(--color-ink-secondary);background:transparent;font-size:11px;font-weight:500;white-space:nowrap;cursor:pointer;transition:background-color var(--duration-quick) var(--ease-out),color var(--duration-quick) var(--ease-out),border-color var(--duration-quick) var(--ease-out)}.tiptap-tool:hover{border-color:var(--color-rule);color:var(--color-ink);background:var(--color-paper-soft)}.tiptap-tool:disabled{cursor:not-allowed;opacity:.35}.tiptap-editor-shell .tiptap .tableWrapper{width:100%;max-width:100%;margin-block:9px;overflow-x:auto}.tiptap-editor-shell .tiptap .tableWrapper table{width:100%;min-width:320px;table-layout:auto}.tiptap-tool.is-active{border-color:color-mix(in oklch,var(--color-accent) 55%,var(--color-rule));color:var(--color-accent);background:var(--color-accent-soft)}.tiptap-tool.is-danger{border-color:color-mix(in oklch,var(--color-error) 55%,var(--color-rule));color:var(--color-error)}.tiptap-tool.is-danger:hover{border-color:var(--color-error);background:var(--color-error-soft)}.tiptap-tool:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.tool-underline{text-decoration:underline;text-underline-offset:2px}.tiptap-toolbar-divider{width:1px;height:21px;margin-inline:4px;background:var(--color-rule-strong)}.tiptap-toolbar-spacer{flex:1}.tiptap-toolbar-loading{padding:8px;color:var(--color-muted);font-size:11px}.tiptap-editor-shell .tiptap{min-height:250px;padding:13px 15px;outline:none;color:var(--color-ink);font-size:13px;line-height:1.75;overflow-wrap:anywhere}.tiptap-editor-shell .tiptap>:first-child{margin-top:0}.tiptap-editor-shell .tiptap>:last-child{margin-bottom:0}.tiptap-editor-shell .tiptap p{margin:.55em 0}.tiptap-editor-shell .tiptap h1,.tiptap-editor-shell .tiptap h2,.tiptap-editor-shell .tiptap h3{margin:1em 0 .4em;color:var(--color-ink);font-family:var(--font-display);font-weight:650;letter-spacing:-.035em;line-height:1.35}.tiptap-editor-shell .tiptap h1{font-size:1.45rem}.tiptap-editor-shell .tiptap h2{font-size:1.25rem}.tiptap-editor-shell .tiptap h3{font-size:1.1rem}.tiptap-editor-shell .tiptap strong{font-weight:750}.tiptap-editor-shell .tiptap ul,.tiptap-editor-shell .tiptap ol{padding-inline-start:1.65em}.tiptap-editor-shell .tiptap li{padding-inline-start:.15em}.tiptap-editor-shell .tiptap li::marker{color:var(--color-accent)}.tiptap-editor-shell .tiptap blockquote{margin:.8em 0;padding-left:.9em;border-left:2px solid var(--color-accent);color:var(--color-muted)}.tiptap-editor-shell .tiptap a{color:var(--color-accent);text-decoration:underline;text-underline-offset:3px}.tiptap-editor-shell .tiptap hr{margin:1em 0;border:0;border-top:1px solid var(--color-rule-strong)}.tiptap-editor-shell .tiptap code{padding:.1em .3em;border-radius:4px;background:var(--color-paper-soft);font-family:ui-monospace,Cascadia Code,SFMono-Regular,monospace;font-size:.92em}.tiptap-editor-shell .tiptap pre{overflow-x:auto;padding:10px 12px;border:1px solid var(--color-rule);border-radius:6px;background:var(--color-paper)}.tiptap-editor-shell .tiptap pre code{padding:0;background:transparent}.tiptap-editor-shell .tiptap table{width:100%;border-collapse:collapse;table-layout:fixed;overflow:hidden}.tiptap-editor-shell .tiptap th,.tiptap-editor-shell .tiptap td{min-width:70px;padding:7px 9px;border:1px solid var(--color-rule-strong);text-align:left;vertical-align:top}.tiptap-editor-shell .tiptap th{color:var(--color-ink);background:var(--color-paper)}.tiptap-editor-shell .tiptap .selectedCell{background:var(--color-accent-soft)}.tiptap-editor-shell .tiptap p.is-editor-empty:first-child:before{float:left;height:0;color:var(--color-muted);content:attr(data-placeholder);pointer-events:none}.tiptap-editor-shell .tiptap:focus{outline:none}.tiptap-link-error{padding:0 12px}.task-editor-page{width:min(900px,100%);margin:0 auto}.back-to-list{display:inline-flex;align-items:center;gap:9px;min-height:42px;padding:0 2px;border:0;color:var(--color-ink-secondary);background:transparent;font-size:12px;font-weight:600;cursor:pointer}.back-to-list span{color:var(--color-accent);font-size:19px}.back-to-list:hover{color:var(--color-accent)}.task-editor-page .admin-form-section{margin-top:14px}.managed-task-row{align-items:center;gap:22px}.managed-task-copy{flex:1}.managed-task-actions{gap:8px}.edit-task-button,.delete-task-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:112px;min-height:44px;padding:0 12px;border:1px solid var(--color-rule-strong);border-radius:var(--radius-control);background:transparent;font-size:12px;font-weight:600;white-space:nowrap;cursor:pointer;transition:border-color var(--duration-quick) var(--ease-out),color var(--duration-quick) var(--ease-out),background-color var(--duration-quick) var(--ease-out)}.edit-task-button{border-color:var(--color-accent);color:var(--color-accent)}.edit-task-button:hover{color:var(--color-accent-ink);background:var(--color-accent)}.edit-task-button span{font-size:15px}.delete-task-button{border-color:#a85550a6;color:var(--color-error)}.delete-task-button:hover{border-color:var(--color-error);background:var(--color-error-soft)}.edit-task-button:focus-visible,.delete-task-button:focus-visible,.back-to-list:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.delete-dialog-backdrop{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;padding:22px;background:#040509c7;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.delete-dialog{width:min(460px,100%);padding:26px;border:1px solid var(--color-rule-strong);border-top:3px solid var(--color-error);border-radius:12px;background:var(--color-paper-raised);box-shadow:0 24px 80px #0000006b}.delete-dialog h2{margin:0;color:var(--color-ink);font-family:var(--font-display);font-size:24px;font-weight:650;letter-spacing:-.055em}.delete-dialog>p:not(.admin-eyebrow):not(.delete-dialog-error){margin:9px 0 0;color:var(--color-muted);font-size:13px;line-height:1.7;overflow-wrap:anywhere}.delete-dialog>p strong{color:var(--color-ink)}.delete-dialog-error{margin:14px 0 0;color:var(--color-error);font-size:12px;line-height:1.6}.delete-dialog-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:23px}.delete-dialog .danger-action{min-height:44px;color:var(--color-ink);background:var(--color-error-soft)}.delete-dialog .danger-action:hover:not(:disabled){background:#53211f}.admin-task-list-section{scroll-margin-top:18px}.admin-search:focus-within{box-shadow:0 0 0 2px color-mix(in oklch,var(--color-focus) 55%,transparent)}@media(max-width:700px){.managed-task-row{align-items:stretch;flex-direction:column;gap:12px}.managed-task-actions{width:100%}.edit-task-button,.delete-task-button{flex:1;min-width:0}.delete-dialog{padding:21px}}@media(prefers-reduced-motion:reduce){.edit-task-button,.delete-task-button{transition:none}}.task-list-intro{display:flex;align-items:end;justify-content:space-between;gap:18px}.task-list-intro h2{margin:0;color:var(--color-ink);font-family:var(--font-display);font-size:clamp(1.4rem,2.3vw,1.85rem);font-weight:600;letter-spacing:-.05em}.task-search-panel{display:grid;gap:12px;margin:19px 0 8px;padding:15px;border:1px solid var(--color-rule);border-radius:10px;background:var(--color-paper-raised)}.task-search-input{display:flex;align-items:center;gap:11px;width:100%;min-width:0;min-height:54px;padding:0 13px;border:1px solid var(--color-rule-strong);border-radius:7px;color:var(--color-muted);background:var(--color-paper);transition:border-color var(--duration-quick) var(--ease-out),box-shadow var(--duration-quick) var(--ease-out)}.task-search-input:focus-within{border-color:var(--color-focus);box-shadow:0 0 0 3px color-mix(in oklch,var(--color-focus) 18%,transparent)}.task-search-icon{flex:0 0 auto;font-size:23px;line-height:1}.task-search-input input{flex:1;width:100%;min-width:0;min-height:48px;padding:0;border:0;outline:0;color:var(--color-ink);background:transparent;font-size:13px}.task-search-input input:focus-visible{outline:0}.task-search-input input::placeholder{color:var(--color-muted);opacity:1}.task-search-clear{min-height:34px;padding:0 9px;border:1px solid var(--color-rule);border-radius:5px;color:var(--color-ink-secondary);background:var(--color-paper-raised);font-size:10px;white-space:nowrap;cursor:pointer}.task-search-clear:hover{border-color:var(--color-rule-strong);color:var(--color-ink)}.search-shortcut{display:grid;place-items:center;width:24px;height:25px;flex:0 0 auto;border:1px solid var(--color-rule-strong);border-radius:5px;color:var(--color-muted);background:var(--color-paper-raised);font-family:ui-monospace,monospace;font-size:12px}.task-filter-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(130px,.75fr) minmax(145px,.8fr) minmax(200px,1.2fr);gap:10px}.task-filter-field{display:grid;align-content:start;gap:5px;min-width:0}.task-filter-field>span{color:var(--color-muted);font-size:10px;font-weight:500}.task-filter-field select{width:100%;min-width:0;min-height:40px;padding:0 9px;border:1px solid var(--color-rule);border-radius:6px;color:var(--color-ink-secondary);background:var(--color-paper);font-size:11px;text-overflow:ellipsis}.task-filter-field select:focus-visible{border-color:var(--color-focus);outline:2px solid var(--color-focus);outline-offset:1px}.reset-task-filters{justify-self:start;min-height:32px;padding:0;border:0;border-bottom:1px solid transparent;color:var(--color-accent);background:transparent;font-size:11px;font-weight:600;cursor:pointer}.reset-task-filters:hover{border-bottom-color:currentColor}.task-search-empty{display:grid;justify-items:start;gap:7px;padding:30px 0;border-bottom:1px solid var(--color-rule)}.task-search-empty strong{color:var(--color-ink);font-family:var(--font-display);font-size:17px;letter-spacing:-.03em}.task-search-empty p{max-width:56ch;margin:0 0 5px;color:var(--color-muted);font-size:12px;line-height:1.65}.task-pagination{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:17px 0;border-bottom:1px solid var(--color-rule);color:var(--color-muted);font-size:11px}.task-pagination>span strong{color:var(--color-ink-secondary);font-weight:600}.pagination-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.pagination-actions .quiet-button{min-height:38px;padding-inline:10px;font-size:11px}.pagination-page{min-width:92px;color:var(--color-muted);text-align:center;font-size:10px}@media(max-width:1020px){.task-filter-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.task-list-intro{align-items:start}.task-search-panel{margin-top:14px;padding:10px}.task-search-input{min-height:50px;gap:8px;padding-inline:10px}.task-search-input input{font-size:12px}.task-filter-row{grid-template-columns:minmax(0,1fr)}.task-filter-field select{min-height:44px}.task-pagination{align-items:start;flex-direction:column}.pagination-actions{width:100%;justify-content:space-between}.pagination-page{min-width:fit-content}}@media(max-width:420px){.task-search-clear{font-size:9px;padding-inline:6px}.search-shortcut{display:none}.pagination-actions{gap:5px}.pagination-actions .quiet-button{padding-inline:7px}}.tiptap-editor-shell .tiptap table{width:100%;min-width:0;table-layout:auto;border-collapse:collapse}.tiptap-editor-shell .tiptap table p{min-height:1.5em;margin:0}.tiptap-editor-shell .tiptap table th,.tiptap-editor-shell .tiptap table td{width:auto!important;min-width:70px;height:auto;padding:7px 9px;border:1px solid var(--color-rule-strong);vertical-align:top}.tiptap-editor-shell .tiptap table .selectedCell:after{background:color-mix(in oklch,var(--color-accent) 16%,transparent)}.course-task-groups{margin-top:18px;border-top:1px solid var(--color-rule-strong)}.course-group-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:42px;color:var(--color-muted);font-size:10px}.course-group-tools>span>span{padding-inline:4px;color:var(--color-rule-strong)}.course-group-tools>div{display:flex;align-items:center;gap:12px}.group-tool-button{min-height:34px;padding:0;border:0;border-bottom:1px solid transparent;color:var(--color-muted);background:transparent;font-size:10px;cursor:pointer}.group-tool-button:hover{border-bottom-color:var(--color-accent);color:var(--color-accent)}.course-task-group{border-bottom:1px solid var(--color-rule)}.course-group-toggle{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:62px;padding:10px 7px;border:0;border-radius:5px;color:var(--color-ink-secondary);background:transparent;text-align:left;cursor:pointer;transition:background-color var(--duration-quick) var(--ease-out),color var(--duration-quick) var(--ease-out)}.course-group-toggle:hover{color:var(--color-ink);background:var(--color-paper-raised)}.course-group-toggle:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.course-group-chevron{display:grid;place-items:center;width:22px;height:22px;color:var(--color-muted);font-family:var(--font-display);font-size:22px;line-height:1;transform:rotate(0);transition:transform var(--duration-quick) var(--ease-out),color var(--duration-quick) var(--ease-out)}.course-task-group.is-expanded .course-group-chevron{color:var(--color-accent);transform:rotate(90deg)}.course-group-name{min-width:0;overflow-wrap:anywhere;color:inherit;font-size:13px;font-weight:600;line-height:1.5}.course-task-group.is-expanded .course-group-name{color:var(--color-ink)}.course-group-count{color:var(--color-muted);font-size:11px;white-space:nowrap}.course-task-group.is-expanded .course-group-count{color:var(--color-accent)}.course-group-tasks{padding:0 0 7px 32px}.course-group-tasks .managed-task-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 10px 15px 13px;border-bottom:0;border-top:1px solid var(--color-rule)}.course-group-tasks .managed-task-row:hover{background:color-mix(in oklch,var(--color-paper-raised) 62%,transparent)}.course-group-tasks .managed-task-copy h3{font-size:14px}.course-group-tasks .managed-task-course{font-size:10px}.course-group-tasks .managed-task-copy p{margin-top:4px}.course-group-tasks .managed-task-actions{gap:7px}.course-group-tasks .edit-task-button,.course-group-tasks .delete-task-button{min-width:102px;min-height:40px;font-size:11px}.task-search-empty{margin-top:10px}@media(max-width:700px){.course-group-toggle{grid-template-columns:20px minmax(0,1fr);gap:8px;min-height:58px;padding-inline:3px}.course-group-count{grid-column:2;justify-self:start;margin-top:-6px;padding-bottom:4px}.course-group-tasks{padding-left:0}.course-group-tasks .managed-task-row{align-items:stretch;padding-inline:10px 2px}.course-group-tasks .managed-task-actions{width:100%}.course-group-tasks .edit-task-button,.course-group-tasks .delete-task-button{flex:1;min-width:0}.course-group-tools{align-items:flex-start;flex-direction:column;justify-content:center;gap:0;padding-block:8px}.course-group-tools>div{gap:14px}}@media(prefers-reduced-motion:reduce){.course-group-chevron{transition:none}}.open-calendar-button,.calendar-nav-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:0 12px;border:1px solid var(--color-rule-strong);border-radius:var(--radius-control);color:var(--color-ink-secondary);background:transparent;font-size:12px;font-weight:600;white-space:nowrap;cursor:pointer;transition:color var(--duration-quick) var(--ease-out),border-color var(--duration-quick) var(--ease-out),background-color var(--duration-quick) var(--ease-out)}.open-calendar-button:hover,.calendar-nav-button:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-soft)}.open-calendar-button span{color:var(--color-accent)}.calendar-header-actions{display:flex;align-items:center;justify-content:end;gap:9px}.calendar-header-actions .open-admin-button{min-height:40px}.calendar-header-actions .refresh-button{margin-left:1px}.open-calendar-button:focus-visible,.calendar-nav-button:focus-visible,.calendar-arrow-button:focus-visible,.calendar-today-link:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.calendar-page{padding-bottom:4px}.calendar-welcome{display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,290px);align-items:end;gap:34px;padding-block:48px 35px}.calendar-welcome h1{max-width:750px;margin:0;color:var(--color-ink);font-family:var(--font-display);font-size:clamp(2.25rem,4.5vw,3.8rem);font-weight:600;letter-spacing:-.075em;line-height:1.04}.calendar-welcome .welcome-copy{max-width:550px;margin-top:14px;font-size:13px}.calendar-summary-note{display:grid;grid-template-columns:auto 1fr;align-items:baseline;column-gap:10px;row-gap:3px;padding:0 0 2px 15px;border-left:2px solid var(--color-accent);color:var(--color-muted);font-size:11px}.calendar-summary-note strong{color:var(--color-ink);font-family:var(--font-display);font-size:20px;font-weight:600;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.calendar-summary-divider{display:block;grid-column:1 / -1;height:1px;margin-block:5px;background:var(--color-rule)}.calendar-workspace{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.78fr);align-items:start;gap:clamp(22px,3.5vw,42px);padding-top:4px}.calendar-main,.calendar-day-panel{min-width:0}.calendar-toolbar{display:flex;align-items:end;justify-content:space-between;gap:16px;padding-bottom:17px;border-bottom:1px solid var(--color-rule)}.calendar-section-kicker{margin:0 0 6px;color:var(--color-accent);font-size:10px;font-weight:650;letter-spacing:.07em;text-transform:uppercase}.calendar-toolbar h2,.selected-day-heading h2{margin:0;color:var(--color-ink);font-family:var(--font-display);font-size:clamp(1.4rem,2.2vw,1.8rem);font-weight:600;letter-spacing:-.055em;line-height:1.2}.calendar-toolbar-actions{display:flex;align-items:center;gap:7px;flex:0 0 auto}.calendar-today-button{min-height:36px;padding-inline:10px;font-size:11px}.calendar-arrow-button{display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid var(--color-rule-strong);border-radius:50%;color:var(--color-ink-secondary);background:transparent;font-family:var(--font-display);font-size:24px;line-height:1;cursor:pointer;transition:color var(--duration-quick) var(--ease-out),border-color var(--duration-quick) var(--ease-out),background-color var(--duration-quick) var(--ease-out)}.calendar-arrow-button:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-soft)}.planner-calendar{padding-top:15px}.planner-calendar .fc{color:var(--color-ink-secondary);font-family:var(--font-body);font-size:11px;--fc-border-color: var(--color-rule);--fc-page-bg-color: transparent;--fc-neutral-bg-color: var(--color-paper-raised);--fc-neutral-text-color: var(--color-muted);--fc-today-bg-color: color-mix(in oklch, var(--color-accent) 8%, transparent);--fc-event-bg-color: transparent;--fc-event-border-color: transparent;--fc-event-text-color: var(--color-ink-secondary)}.planner-calendar .fc .fc-scrollgrid,.planner-calendar .fc .fc-scrollgrid-section>*,.planner-calendar .fc th,.planner-calendar .fc td{border-color:var(--color-rule)}.planner-calendar .fc .fc-col-header-cell{border-left-color:transparent;border-right-color:transparent;background:transparent}.planner-calendar .fc .fc-col-header-cell-cushion{display:block;padding:9px 2px;color:var(--color-muted);font-size:10px;font-weight:600;text-decoration:none}.planner-calendar .fc .fc-daygrid-day-frame{min-height:102px;padding:5px;transition:background-color var(--duration-quick) var(--ease-out)}.planner-calendar .fc .fc-daygrid-day-frame:hover{background:var(--color-paper-raised)}.planner-calendar .fc .fc-daygrid-day-top{display:block;min-height:25px;padding-bottom:3px}.calendar-day-top{display:flex;align-items:center;justify-content:space-between;gap:4px;min-height:24px;padding-inline:2px}.calendar-day-number{display:inline-grid;place-items:center;min-width:23px;height:23px;color:var(--color-ink-secondary);font-size:11px;font-weight:500;font-variant-numeric:tabular-nums}.planner-calendar .fc .fc-day-today .calendar-day-number{border-radius:50%;color:var(--color-accent-ink);background:var(--color-accent);font-weight:700}.calendar-day-count{display:inline-grid;place-items:center;min-width:19px;height:19px;padding-inline:4px;border-radius:6px;color:var(--color-accent);background:var(--color-accent-soft);font-size:9px;font-weight:700;font-variant-numeric:tabular-nums}.planner-calendar .fc .fc-day-other .calendar-day-number{color:var(--color-muted);opacity:.52}.planner-calendar .fc .fc-daygrid-day-events{margin:1px 0 0}.planner-calendar .fc .fc-daygrid-event{margin:3px 0;border:0;border-radius:3px;background:color-mix(in oklch,var(--color-accent) 8%,transparent);cursor:pointer}.planner-calendar .fc .fc-daygrid-event:hover{background:color-mix(in oklch,var(--color-accent) 16%,transparent)}.planner-calendar .fc .fc-daygrid-event .fc-event-main{padding:2px 4px;color:var(--color-ink-secondary)}.calendar-event-content{display:flex;align-items:center;gap:5px;min-width:0;font-size:9px;font-weight:500;line-height:1.45}.calendar-event-content>span:last-child{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-event-dot{width:5px;height:5px;flex:0 0 auto;border-radius:50%;background:var(--color-accent)}.planner-calendar .fc .fc-daygrid-more-link{display:inline-block;margin:3px 4px;color:var(--color-accent);font-size:9px;font-weight:650;text-decoration:none}.planner-calendar .fc .fc-daygrid-more-link:hover{text-decoration:underline}.planner-calendar .fc .fc-popover{border:1px solid var(--color-rule-strong);border-radius:8px;background:var(--color-paper-raised);box-shadow:0 18px 40px #00000059}.planner-calendar .fc .fc-popover-header{color:var(--color-ink);background:var(--color-paper-soft)}.planner-calendar .fc .fc-popover-body{padding:5px}.planner-calendar .fc .fc-daygrid-day-frame:focus-within{outline:1px solid var(--color-focus);outline-offset:-1px}.calendar-help{margin:11px 0 0;color:var(--color-muted);font-size:10px;line-height:1.65}.calendar-day-panel{border-top:1px solid var(--color-rule-strong);padding-top:16px}.selected-day-heading{padding-bottom:17px;border-bottom:1px solid var(--color-rule)}.selected-day-heading h2{max-width:100%;font-size:clamp(1.25rem,1.9vw,1.55rem);overflow-wrap:anywhere}.selected-day-heading>p:last-child{margin:7px 0 0;color:var(--color-muted);font-size:11px}.calendar-day-tasks{display:grid}.calendar-task{display:grid;grid-template-columns:47px minmax(0,1fr);gap:12px;padding:17px 0;border-bottom:1px solid var(--color-rule)}.calendar-task-time{display:grid;align-content:start;gap:3px;padding-top:1px}.calendar-task-time strong{color:var(--color-ink);font-family:var(--font-display);font-size:12px;font-weight:650;font-variant-numeric:tabular-nums}.calendar-task-time>span{color:var(--color-muted);font-size:9px}.calendar-task-copy{min-width:0}.calendar-task-meta{display:flex;flex-wrap:wrap;gap:5px;color:var(--color-accent);font-size:9px;font-weight:600;line-height:1.5}.calendar-task-copy h3{margin:5px 0 0;color:var(--color-ink);font-family:var(--font-display);font-size:13px;font-weight:600;letter-spacing:-.025em;line-height:1.45;overflow-wrap:anywhere}.calendar-task.is-overdue .calendar-task-copy h3{color:var(--color-ink-secondary)}.calendar-overdue-label{display:inline-block;margin-top:5px;color:var(--color-error);font-size:10px}.calendar-task-links{display:flex;flex-wrap:wrap;gap:3px 11px;margin-top:7px}.calendar-task-links a{display:inline-flex;align-items:center;min-height:30px;color:var(--color-ink-secondary);font-size:10px;font-weight:600;text-decoration:underline;text-decoration-color:var(--color-rule-strong);text-underline-offset:3px}.calendar-day-empty{display:grid;justify-items:start;gap:9px;padding:25px 0;color:var(--color-muted);font-size:11px;line-height:1.65}.calendar-day-empty strong{color:var(--color-ink-secondary);font-family:var(--font-display);font-size:14px;font-weight:600}.calendar-day-empty>span:not(.loading-mark):not(.calendar-empty-mark){max-width:30ch}.calendar-empty-mark{color:var(--color-accent);font-size:19px}.calendar-today-link{display:inline-flex;align-items:center;gap:8px;min-height:42px;margin-top:9px;padding:0;border:0;border-bottom:1px solid transparent;color:var(--color-accent);background:transparent;font-size:11px;font-weight:600;cursor:pointer}.calendar-today-link:hover{border-bottom-color:var(--color-accent)}.calendar-loading{display:flex;align-items:center;gap:12px;min-height:280px;color:var(--color-muted);font-size:12px}.calendar-loading strong{color:var(--color-ink-secondary);font-weight:500}@media(max-width:1020px){.calendar-workspace{grid-template-columns:minmax(0,1fr);gap:33px}.calendar-day-panel{padding-top:23px}.calendar-day-tasks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:22px}}@media(max-width:700px){.calendar-header-actions{gap:6px}.calendar-header-actions .calendar-nav-button,.calendar-header-actions .open-admin-button{min-height:36px;padding-inline:9px;font-size:11px}.calendar-header-actions .refresh-button{width:36px;height:36px}.calendar-welcome{grid-template-columns:minmax(0,1fr);gap:20px;padding-block:36px 28px}.calendar-welcome h1{font-size:clamp(2.2rem,8vw,3.5rem)}.calendar-wide-break{display:none}.calendar-summary-note{max-width:300px;grid-template-columns:auto 1fr auto 1fr;align-items:center;column-gap:8px;padding:0;border-left:0}.calendar-summary-note strong{font-size:17px}.calendar-summary-divider{grid-column:auto;width:1px;height:24px;margin:0 3px}.calendar-toolbar{align-items:start;gap:10px}.calendar-toolbar h2{font-size:1.3rem}.calendar-toolbar-actions{gap:5px}.calendar-today-button{min-height:34px;padding-inline:8px}.calendar-arrow-button{width:34px;height:34px}.planner-calendar .fc .fc-daygrid-day-frame{min-height:76px;padding:3px}.planner-calendar .fc .fc-col-header-cell-cushion{padding:7px 0;font-size:9px}.calendar-day-number{min-width:20px;height:20px;font-size:10px}.calendar-day-count{min-width:16px;height:16px;padding-inline:3px;font-size:8px}.planner-calendar .fc .fc-daygrid-event{margin:2px 0}.planner-calendar .fc .fc-daygrid-event .fc-event-main{padding:2px}.calendar-event-content{gap:3px;font-size:8px}.calendar-event-dot{width:4px;height:4px}.planner-calendar .fc .fc-daygrid-more-link{margin:2px;font-size:8px}.calendar-day-tasks{grid-template-columns:minmax(0,1fr)}}@media(max-width:420px){.calendar-header-actions .calendar-nav-button,.calendar-header-actions .open-admin-button{font-size:10px;padding-inline:7px}.calendar-header-actions{gap:4px}.calendar-welcome h1{font-size:clamp(2rem,8.8vw,2.5rem)}.calendar-toolbar{flex-direction:column;align-items:stretch}.calendar-toolbar-actions{justify-content:end}.planner-calendar .fc .fc-daygrid-day-frame{min-height:65px}.planner-calendar .fc .fc-daygrid-day-events{margin-top:0}.calendar-day-top{gap:1px;padding-inline:0}.calendar-day-number{min-width:18px}}.calendar-page .calendar-page-heading{padding:26px 0 18px}.calendar-page-heading h1{margin:0;color:var(--color-ink);font-family:var(--font-display);font-size:clamp(1.8rem,3vw,2.25rem);font-weight:700;letter-spacing:-.055em;line-height:1.2}.calendar-page-heading p{margin:7px 0 0;color:var(--color-muted);font-size:12px}.calendar-filter{margin:0 0 16px;border:1px solid var(--color-rule);border-radius:9px;background:var(--color-paper-raised)}.calendar-filter>summary{display:flex;align-items:center;min-height:43px;padding:0 13px;color:var(--color-ink-secondary);font-size:12px;font-weight:600;cursor:pointer;list-style:none}.calendar-filter>summary::-webkit-details-marker{display:none}.calendar-filter>summary:after{content:"›";margin-left:auto;color:var(--color-muted);font-size:19px;transform:rotate(90deg);transition:transform var(--duration-quick) var(--ease-out)}.calendar-filter[open]>summary{border-bottom:1px solid var(--color-rule)}.calendar-filter[open]>summary:after{transform:rotate(-90deg)}.calendar-filter-content{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:18px;padding:15px}.calendar-filter-fieldset{min-width:0;margin:0;padding:0;border:0}.calendar-filter-fieldset legend{margin-bottom:9px;color:var(--color-ink-secondary);font-size:11px;font-weight:650}.calendar-filter-options{display:flex;flex-wrap:wrap;gap:8px 15px}.calendar-course-filter-options{gap:8px 16px}.calendar-filter-option{display:inline-flex;align-items:center;gap:7px;max-width:100%;min-height:28px;color:var(--color-ink-secondary);font-size:11px;line-height:1.45;cursor:pointer}.calendar-filter-option input{width:15px;height:15px;flex:0 0 auto;margin:0;accent-color:var(--color-accent);cursor:pointer}.calendar-filter-option span{overflow-wrap:anywhere}.calendar-filter-reset{justify-self:start;min-height:32px;padding:0;border:0;border-bottom:1px solid transparent;color:var(--color-accent);background:transparent;font-size:11px;font-weight:650;cursor:pointer}.calendar-filter-reset:hover{border-bottom-color:currentColor}.calendar-empty-result{display:flex;align-items:center;flex-wrap:wrap;gap:13px;padding:22px 0;color:var(--color-muted);font-size:12px}.calendar-empty-result strong{color:var(--color-ink-secondary);font-weight:600}.calendar-surface{width:100%;min-width:0;overflow:hidden;padding:8px;border:1px solid rgba(150,150,150,.22);border-radius:12px;background:var(--color-paper-raised)}.calendar-native-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;padding:4px 3px 13px;border-bottom:1px solid rgba(150,150,150,.18)}.calendar-native-toolbar h2{margin:0;color:var(--color-ink);font-family:var(--font-display);font-size:18px;font-weight:700;letter-spacing:-.035em;text-align:center;text-transform:capitalize}.calendar-native-nav,.calendar-view-switch{display:flex;align-items:center;gap:6px}.calendar-view-switch{justify-self:end;gap:0;padding:3px;border:1px solid rgba(150,150,150,.24);border-radius:9px;background:var(--color-paper)}.calendar-nav-arrow,.calendar-today-button,.calendar-view-switch button{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:0 12px;border:1px solid rgba(150,150,150,.22);border-radius:7px;color:var(--color-ink-secondary);background:var(--color-paper);font-size:12px;font-weight:600;white-space:nowrap;cursor:pointer;transition:color var(--duration-quick) var(--ease-out),background-color var(--duration-quick) var(--ease-out),border-color var(--duration-quick) var(--ease-out)}.calendar-nav-arrow{width:35px;padding:0;font-family:var(--font-display);font-size:22px;line-height:1}.calendar-today-button{margin-left:2px}.calendar-nav-arrow:hover,.calendar-today-button:hover,.calendar-view-switch button:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-soft)}.calendar-view-switch button{min-width:78px;min-height:32px;padding:0 12px;border:0;background:transparent}.calendar-view-switch button.is-active{color:#fff;background:var(--color-accent);box-shadow:0 2px 8px #0000002e}.calendar-nav-arrow:focus-visible,.calendar-today-button:focus-visible,.calendar-view-switch button:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.calendar-surface .fc{padding:0;border:0;border-radius:0;color:var(--color-ink-secondary);font-family:var(--font-body);font-size:11px;--fc-border-color: rgba(150, 150, 150, .22);--fc-page-bg-color: transparent;--fc-neutral-bg-color: var(--color-paper-soft);--fc-neutral-text-color: var(--color-muted);--fc-today-bg-color: color-mix(in oklch, var(--color-accent) 9%, transparent);--fc-event-bg-color: transparent;--fc-event-border-color: transparent;--fc-event-text-color: white}.calendar-surface .fc .fc-scrollgrid{border:1px solid rgba(150,150,150,.2)!important;border-radius:2px;overflow:hidden}.calendar-surface .fc .fc-scrollgrid,.calendar-surface .fc .fc-scrollgrid-section>*,.calendar-surface .fc .fc-theme-standard th,.calendar-surface .fc .fc-theme-standard td{border-color:#96969638!important}.calendar-surface .fc .fc-col-header-cell{border-top:0!important;background:var(--color-paper-soft)}.calendar-surface .fc .fc-col-header-cell-cushion{display:block;padding:9px 0!important;color:var(--color-ink-secondary)!important;font-size:11px;font-weight:650;text-decoration:none}.calendar-surface .fc .fc-daygrid-day{border:1px solid rgba(150,150,150,.22)!important}.calendar-surface .fc .fc-daygrid-day-frame{min-height:78px;padding:4px;transition:background-color var(--duration-quick) var(--ease-out)}.calendar-surface .fc .fc-daygrid-day-frame:hover{background:color-mix(in oklch,var(--color-paper-soft) 64%,transparent)}.calendar-surface .fc .fc-daygrid-day-number{padding:5px 6px 3px;color:var(--color-ink-secondary)!important;font-size:11px;font-weight:650;text-decoration:none}.calendar-surface .fc .fc-day-today .fc-daygrid-day-number{color:var(--color-accent)!important}.calendar-surface .fc .fc-day-other .fc-daygrid-day-number{color:var(--color-muted)!important;opacity:.55}.calendar-surface .fc .fc-daygrid-day-events{margin:2px 0 0}.calendar-surface .fc .fc-daygrid-event{margin:3px 1px;border:0!important;border-radius:5px!important;padding:3px 5px!important;font-size:10px!important;font-weight:700!important;line-height:1.35;cursor:pointer}.calendar-surface .fc .calendar-summary-event .fc-event-main{color:#fff!important}.calendar-surface .fc .fc-daygrid .calendar-task-event,.calendar-surface .fc .fc-daygrid .fc-event.calendar-task-event,.calendar-surface .fc .fc-list .calendar-summary-event,.calendar-surface .fc .fc-list .fc-event.calendar-summary-event{display:none!important}.calendar-surface .fc .fc-list{border:1px solid rgba(150,150,150,.2)!important;border-radius:9px;overflow:hidden}.calendar-surface .fc .fc-list-day-cushion{padding:11px 14px!important;color:var(--color-ink)!important;background:var(--color-paper-soft)!important;font-weight:750!important;border-bottom:1px solid rgba(150,150,150,.16)!important}.calendar-surface .fc .fc-list-day-text,.calendar-surface .fc .fc-list-day-side-text{color:var(--color-ink)!important;font-weight:700!important;text-decoration:none!important;text-transform:capitalize}.calendar-surface .fc .fc-list-table,.calendar-surface .fc .fc-list-table td{border-color:#9696962b!important}.calendar-surface .fc .fc-list-event:hover td{background:#7f7f7f14!important}.calendar-surface .fc .fc-list-event-dot{border-width:6px!important;margin:0 10px!important}.calendar-surface .fc .fc-list-event-time{width:82px;padding:10px 4px 10px 10px!important;color:var(--color-ink-secondary)!important;opacity:.85;font-weight:650!important;white-space:nowrap;vertical-align:middle!important}.calendar-surface .fc .fc-list-event-title{padding:11px 14px 11px 4px!important;color:var(--color-ink)!important;font-weight:650!important;line-height:1.45;vertical-align:middle!important}.calendar-surface .fc .fc-list-event-title a{color:var(--color-ink)!important;text-decoration:none!important}.calendar-surface .fc .fc-list-empty{border:0!important;background:transparent!important}.calendar-surface .fc .fc-list-empty-cushion{color:var(--color-muted)!important}.calendar-help{margin:10px 3px 2px;color:var(--color-muted);font-size:10px;line-height:1.55}.calendar-selection-hint{margin:15px 0;padding:13px 14px;border:1px solid rgba(150,150,150,.18);border-radius:8px;color:var(--color-muted);background:var(--color-paper-raised);font-size:12px}.calendar-selected-day{margin-top:22px}.calendar-selected-day-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:10px}.calendar-selected-day-heading h2{margin:0;color:var(--color-ink);font-family:var(--font-display);font-size:clamp(1.3rem,2.2vw,1.7rem);font-weight:700;letter-spacing:-.04em;text-transform:capitalize}.calendar-selected-day-heading p:last-child{margin:6px 0 0;color:var(--color-muted);font-size:11px}.calendar-no-tasks{padding:12px 14px;border:1px solid var(--color-rule);border-radius:8px;color:var(--color-muted);font-size:12px}.calendar-selected-task-list{display:grid;gap:10px}.calendar-task-card{padding:15px 16px;border:1px solid rgba(150,150,150,.2);border-radius:10px;background:var(--color-paper-raised)}.calendar-task-card-heading{display:flex;align-items:start;justify-content:space-between;gap:14px}.calendar-task-card-heading>div{min-width:0}.calendar-task-card-heading time{flex:0 0 auto;color:var(--color-muted);font-size:10px;white-space:nowrap}.calendar-task-meta{display:flex;flex-wrap:wrap;gap:5px;margin:0;color:var(--color-accent);font-size:10px;font-weight:650}.calendar-task-meta>span:last-child{color:var(--color-muted);font-weight:400}.calendar-task-card h3{margin:5px 0 0;color:var(--color-ink);font-family:var(--font-display);font-size:15px;font-weight:700;letter-spacing:-.025em;line-height:1.4;overflow-wrap:anywhere}.calendar-task-card.is-overdue h3{color:var(--color-ink-secondary)}.calendar-overdue-label{margin:7px 0 0;color:var(--color-error);font-size:10px}.calendar-task-instructions{margin:9px 0 0;color:var(--color-ink-secondary);font-size:11px;line-height:1.7}.calendar-task-links{display:flex;flex-wrap:wrap;gap:4px 13px;margin-top:8px}.calendar-task-links a{display:inline-flex;align-items:center;min-height:32px;color:var(--color-ink-secondary);font-size:10px;font-weight:650;text-decoration:underline;text-decoration-color:var(--color-rule-strong);text-underline-offset:3px}.calendar-task-links a span{color:var(--color-accent)}.calendar-task-links a:hover{color:var(--color-accent);text-decoration-color:var(--color-accent)}.calendar-loading{display:flex;align-items:center;gap:12px;min-height:240px;color:var(--color-muted)}.calendar-loading .loading-mark{margin:0}@media(max-width:760px){.calendar-filter-content{grid-template-columns:minmax(0,1fr)}.calendar-native-toolbar{grid-template-columns:1fr auto;gap:10px}.calendar-native-toolbar h2{grid-column:1 / -1;grid-row:1;text-align:left}.calendar-native-nav{grid-column:1;grid-row:2}.calendar-view-switch{grid-column:2;grid-row:2}.calendar-view-switch button{min-width:58px;padding-inline:9px}.calendar-surface .fc .fc-daygrid-day-frame{min-height:65px;padding:3px}.calendar-surface .fc .fc-daygrid-event{padding:3px 4px!important;font-size:9px!important}.calendar-surface .fc .fc-col-header-cell-cushion{padding:8px 2px!important;font-size:10px}}@media(max-width:480px){.calendar-page .calendar-page-heading{padding-top:20px}.calendar-page-heading h1{font-size:1.7rem}.calendar-surface{padding:5px}.calendar-native-toolbar{padding-inline:1px}.calendar-native-toolbar h2{font-size:16px}.calendar-nav-arrow{width:31px}.calendar-today-button{padding-inline:9px;font-size:11px}.calendar-view-switch button{min-width:51px;padding-inline:6px;font-size:11px}.calendar-surface .fc .fc-daygrid-day-frame{min-height:55px;padding:2px}.calendar-surface .fc .fc-daygrid-day-number{padding:4px 3px 2px;font-size:10px}.calendar-surface .fc .fc-daygrid-event{margin:2px 0;padding:3px 2px!important;font-size:8px!important}.calendar-task-card-heading{flex-direction:column;gap:6px}.calendar-task-card-heading time{font-size:10px}}@media(prefers-reduced-motion:reduce){.calendar-nav-arrow,.calendar-today-button,.calendar-view-switch button,.calendar-filter>summary:after{transition:none}}.calendar-surface .fc-daygrid-event.calendar-task-event,.calendar-surface .fc-daygrid .fc-event.calendar-task-event,.calendar-surface .fc-list-event.calendar-summary-event,.calendar-surface .fc-list .fc-event.calendar-summary-event{display:none!important}.calendar-surface .fc-daygrid-day,.calendar-surface .fc-daygrid-day-frame{outline-offset:-1px}.calendar-surface .fc-daygrid-day{border:1px solid rgba(150,150,150,.24)!important}.calendar-surface .fc-daygrid-event.calendar-summary-event{display:block}.calendar-surface .fc-daygrid-event.calendar-summary-event .fc-event-main{color:#fff!important;font-size:10px;font-weight:750}.calendar-surface{border:1px solid rgba(148,163,184,.25)!important;border-radius:13px!important;background:linear-gradient(145deg,rgba(255,255,255,.035),transparent 42%),var(--color-paper-raised)!important;box-shadow:0 14px 34px #0000002e,inset 0 1px #ffffff09}.calendar-surface .calendar-date-cell{min-height:72px;margin:2px;overflow:hidden;border:1px solid rgba(148,163,184,.24)!important;border-radius:6px;background-color:#ffffff03;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease}.calendar-surface .calendar-date-cell:hover{border-color:#ef44448c!important;background-color:#ef44440e;box-shadow:inset 0 0 0 1px #ef444414}.calendar-surface .calendar-weekday-cell{color:var(--color-ink-secondary);background:#94a3b813;font-weight:700;letter-spacing:.015em}.calendar-surface .calendar-summary-event{display:block!important;min-height:23px;margin:4px 3px 2px!important;padding:0!important;overflow:hidden;border:1px solid #fb5656!important;border-radius:5px!important;background:#ef4444!important;color:#fff!important;box-shadow:0 2px 5px #ef444440;font-size:10px!important;font-weight:750!important;line-height:1.35}.calendar-surface .calendar-summary-event,.calendar-surface .calendar-summary-event *,.calendar-surface .calendar-summary-event-inner{background-color:#ef4444!important;color:#fff!important}.calendar-surface .calendar-summary-event{--fc-event-color: #ef4444;--fc-event-contrast-color: #ffffff}.calendar-surface .calendar-summary-event:hover{background:#dc2626!important;border-color:#f77!important;box-shadow:0 3px 9px #ef44445c}.calendar-surface .calendar-summary-event-inner{display:flex;align-items:center;min-height:22px;padding:3px 6px;color:#fff!important;font-size:10px;font-weight:750;white-space:nowrap}.calendar-surface [data-date]{outline-offset:-2px}.calendar-surface .calendar-date-cell:focus-within{outline:2px solid var(--color-focus);outline-offset:-2px}.calendar-surface .calendar-today-cell{border-color:#f59e0bb3!important;background-color:#f59e0b12;box-shadow:inset 0 0 0 1px #f59e0b21}.calendar-surface .calendar-count-number{color:var(--color-ink);font-weight:700}.calendar-surface .calendar-task-event{--fc-event-color: #ef4444;--fc-event-contrast-color: #ffffff}@media(max-width:760px){.calendar-surface .calendar-date-cell{min-height:58px;margin:1px}.calendar-surface .calendar-summary-event{min-height:20px;margin:3px 1px 1px!important;font-size:9px!important}.calendar-surface .calendar-summary-event-inner{min-height:19px;padding-inline:3px;font-size:9px}}.tiptap-editor-shell{border:1px solid rgba(148,163,184,.34);border-radius:12px;background:var(--color-paper-raised);box-shadow:0 10px 26px #00000021,inset 0 1px #ffffff09}.tiptap-editor-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;padding:13px 15px;border-bottom:1px solid rgba(148,163,184,.22);background:linear-gradient(110deg,rgba(255,255,255,.035),transparent 68%),var(--color-paper-raised)}.tiptap-editor-identity{display:flex;align-items:center;gap:10px;min-width:0}.tiptap-document-mark{display:grid;place-items:center;width:34px;height:38px;flex:0 0 auto;border:1px solid color-mix(in oklch,var(--color-accent) 46%,var(--color-rule));border-radius:6px;color:var(--color-accent);background:var(--color-accent-soft);font-family:Georgia,serif;font-size:24px;line-height:1}.tiptap-editor-identity>div{display:grid;gap:2px;min-width:0}.tiptap-editor-title{color:var(--color-ink);font-size:12px;font-weight:700}.tiptap-editor-subtitle{color:var(--color-muted);font-size:10px;line-height:1.45}.tiptap-view-switch{display:inline-flex;align-items:center;gap:3px;flex:0 0 auto;padding:3px;border:1px solid rgba(148,163,184,.29);border-radius:8px;background:var(--color-paper)}.tiptap-view-switch button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:84px;min-height:36px;padding:0 11px;border:1px solid transparent;border-radius:6px;color:var(--color-muted);background:transparent;font-size:11px;font-weight:650;cursor:pointer;transition:color var(--duration-quick) var(--ease-out),background-color var(--duration-quick) var(--ease-out),border-color var(--duration-quick) var(--ease-out)}.tiptap-view-switch button:hover{color:var(--color-ink);background:var(--color-paper-soft)}.tiptap-view-switch button.is-active{border-color:#94a3b840;color:var(--color-ink);background:var(--color-paper-soft);box-shadow:0 1px 3px #0000002e}.tiptap-view-switch button:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.tiptap-editor-shell>.tiptap-toolbar-loading{min-height:280px;display:grid;place-items:center}.tiptap-toolbar{display:flex;align-items:center;flex-wrap:nowrap;gap:8px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;scrollbar-color:var(--color-rule-strong) transparent;padding:8px 10px;border-bottom:1px solid rgba(148,163,184,.23);background:var(--color-paper)}.tiptap-toolbar::-webkit-scrollbar{height:4px}.tiptap-toolbar::-webkit-scrollbar-thumb{border-radius:99px;background:var(--color-rule-strong)}.tiptap-tool-group{display:inline-flex;align-items:center;flex:0 0 auto;gap:3px}.tiptap-tool{min-width:38px;min-height:38px;padding-inline:10px;border-color:#94a3b821;border-radius:6px;background:#ffffff05;font-size:11px}.tiptap-tool:hover{border-color:#94a3b866;background:var(--color-paper-soft)}.tiptap-tool.is-active{border-color:color-mix(in oklch,var(--color-accent) 65%,var(--color-rule));background:var(--color-accent-soft);box-shadow:inset 0 0 0 1px #ffffff06}.tiptap-tool:disabled{opacity:.3}.tiptap-format-select{width:126px;min-height:38px;padding:0 25px 0 10px;border:1px solid rgba(148,163,184,.27);border-radius:6px;color:var(--color-ink-secondary);background-color:var(--color-paper-raised);font-size:11px;cursor:pointer}.tiptap-format-select:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.tiptap-toolbar-divider{height:24px;margin-inline:1px;background:#94a3b84d}.tiptap-toolbar-spacer{min-width:4px}.tiptap-tool code{padding:1px 3px;border-radius:3px;background:var(--color-paper-soft);font-family:ui-monospace,Cascadia Code,monospace;font-size:10px}.tiptap-link-panel{display:grid;gap:10px;padding:14px;border-bottom:1px solid rgba(148,163,184,.2);background:color-mix(in oklch,var(--color-paper-soft) 65%,var(--color-paper))}.tiptap-link-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tiptap-link-fields label{display:grid;gap:5px;color:var(--color-ink-secondary);font-size:10px;font-weight:650}.tiptap-link-fields input{width:100%;min-width:0;min-height:42px;padding:9px 11px;border:1px solid var(--color-rule-strong);border-radius:6px;color:var(--color-ink);background:var(--color-paper-raised);font:inherit;font-size:12px}.tiptap-link-fields input:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}.tiptap-link-fields input[aria-invalid=true]{border-color:var(--color-error)}.tiptap-link-actions{display:flex;align-items:center;justify-content:end;gap:8px}.tiptap-primary-action,.tiptap-secondary-action{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 13px;border:1px solid var(--color-rule-strong);border-radius:6px;font-size:11px;font-weight:650;cursor:pointer}.tiptap-primary-action{border-color:var(--color-accent);color:var(--color-accent-ink);background:var(--color-accent)}.tiptap-primary-action:hover{filter:brightness(1.06)}.tiptap-secondary-action{color:var(--color-ink-secondary);background:var(--color-paper-raised)}.tiptap-secondary-action:hover{color:var(--color-ink);background:var(--color-paper-soft)}.tiptap-link-note,.tiptap-link-error-message{margin:0;font-size:10px;line-height:1.55}.tiptap-link-note{color:var(--color-muted)}.tiptap-link-error-message{color:var(--color-error)}.tiptap-status-note{margin:0;padding:9px 13px;border-bottom:1px solid rgba(148,163,184,.17);color:var(--color-muted);background:#ffffff05;font-size:10px;line-height:1.55}.tiptap-workspace,.tiptap-preview-workspace{padding:clamp(10px,2.5vw,20px);background:radial-gradient(ellipse at 50% 0%,rgba(148,163,184,.075),transparent 58%),var(--color-paper)}.tiptap-page,.tiptap-preview-page{width:min(100%,860px);min-width:0;min-height:350px;margin-inline:auto;padding:clamp(20px,4.2vw,42px);border:1px solid rgba(148,163,184,.29);border-radius:7px;background:linear-gradient(155deg,rgba(255,255,255,.022),transparent 48%),var(--color-paper-raised);box-shadow:0 7px 19px #0000002b,inset 0 1px #ffffff08}.tiptap-editor-shell .tiptap-page .tiptap{min-height:285px;padding:0;color:var(--color-ink);font-family:var(--font-body);font-size:15px;line-height:1.8;caret-color:var(--color-accent);overflow-wrap:anywhere}.tiptap-editor-shell .tiptap-page .tiptap p{margin:.55em 0}.tiptap-editor-shell .tiptap-page .tiptap h1{font-size:1.75rem}.tiptap-editor-shell .tiptap-page .tiptap h2{font-size:1.42rem}.tiptap-editor-shell .tiptap-page .tiptap h3{font-size:1.15rem}.tiptap-editor-shell .tiptap-page .tiptap th,.tiptap-editor-shell .tiptap-page .tiptap td{padding:8px 10px}.tiptap-editor-shell .tiptap-page .tiptap .column-resize-handle{position:absolute;top:0;right:-2px;bottom:-1px;width:4px;background:var(--color-accent);pointer-events:none}.tiptap-preview-page{padding-top:clamp(16px,3vw,28px)}.tiptap-preview-label{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 14px;margin-bottom:24px;padding-bottom:12px;border-bottom:1px solid rgba(148,163,184,.21);color:var(--color-muted);font-size:9px;line-height:1.5}.tiptap-preview-label span:first-child{color:var(--color-accent);font-weight:750;letter-spacing:.075em}.tiptap-preview-content{color:var(--color-ink-secondary);font-size:14px;line-height:1.85;overflow-wrap:anywhere}.tiptap-preview-content h1,.tiptap-preview-content h2,.tiptap-preview-content h3,.tiptap-preview-content h4{margin:.95em 0 .4em;color:var(--color-ink);font-family:var(--font-display);font-weight:700;line-height:1.32;letter-spacing:-.035em}.tiptap-preview-content h1{font-size:1.7rem}.tiptap-preview-content h2{font-size:1.4rem}.tiptap-preview-content h3{font-size:1.15rem}.tiptap-preview-content table{display:block;width:100%;max-width:100%;overflow-x:auto;border-collapse:collapse;font-size:.9em}.tiptap-preview-content th,.tiptap-preview-content td{min-width:92px;padding:8px 10px;border:1px solid var(--color-rule-strong);text-align:left;vertical-align:top}.tiptap-preview-content th{color:var(--color-ink);background:var(--color-paper-soft);font-weight:700}.tiptap-preview-content tr:nth-child(2n) td{background:#94a3b809}.tiptap-preview-content input[type=checkbox]{accent-color:var(--color-accent)}.tiptap-preview-empty{margin:0;color:var(--color-muted);font-size:13px;line-height:1.7}.tiptap-editor-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 14px;border-top:1px solid rgba(148,163,184,.22);color:var(--color-muted);background:var(--color-paper-raised);font-size:10px}.tiptap-editor-footer>span:first-child{display:inline-flex;align-items:center;gap:7px}.tiptap-footer-dot{width:6px;height:6px;flex:0 0 auto;border-radius:50%;background:var(--color-success)}.tiptap-editor-help{padding:0 12px 10px}@media(max-width:640px){.tiptap-editor-header{align-items:stretch;flex-direction:column;gap:12px;padding:12px}.tiptap-view-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.tiptap-view-switch button{width:100%;min-height:42px}.tiptap-toolbar{gap:7px;padding:8px}.tiptap-tool-group{gap:4px}.tiptap-tool{min-width:42px;min-height:42px;padding-inline:10px}.tiptap-format-select{min-height:42px}.tiptap-toolbar-divider{height:27px}.tiptap-workspace,.tiptap-preview-workspace{padding:8px}.tiptap-page,.tiptap-preview-page{min-height:330px;padding:20px 16px;border-radius:5px}.tiptap-editor-shell .tiptap-page .tiptap{min-height:280px;font-size:16px;line-height:1.8}.tiptap-link-fields{grid-template-columns:minmax(0,1fr);gap:10px}.tiptap-link-fields input{min-height:44px;font-size:16px}.tiptap-primary-action,.tiptap-secondary-action{min-height:42px}.tiptap-preview-content{font-size:14px}}@media(max-width:380px){.tiptap-editor-subtitle{max-width:220px}.tiptap-tool{padding-inline:9px}.tiptap-page,.tiptap-preview-page{padding-inline:13px}.tiptap-preview-label{flex-direction:column;align-items:start}}@media(prefers-reduced-motion:reduce){.tiptap-view-switch button,.tiptap-tool{transition:none}}.calendar-surface .calendar-summary-event.is-overdue,.calendar-surface .calendar-summary-event.is-overdue *,.calendar-surface .calendar-summary-event.is-overdue .calendar-summary-event-inner{background:#6b7280!important;background-color:#6b7280!important;border-color:#9ca3af!important;color:#fff!important;box-shadow:0 2px 5px #6b72802e}.calendar-surface .calendar-summary-event.is-overdue:hover{background:#4b5563!important;border-color:#9ca3af!important;box-shadow:0 3px 8px #6b728047}.open-archive-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:0 12px;border:1px solid color-mix(in oklch,var(--color-accent) 35%,var(--color-rule-strong));border-radius:7px;color:var(--color-ink);background:var(--color-accent-soft);font-size:11px;font-weight:650;cursor:pointer;transition:background-color var(--duration-quick) var(--ease-out),border-color var(--duration-quick) var(--ease-out)}.open-archive-button:hover{border-color:var(--color-accent);background:color-mix(in oklch,var(--color-accent-soft) 70%,var(--color-paper-raised))}.open-archive-button:focus-visible,.archive-page button:focus-visible,.archive-page a:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.archive-heading{padding:36px 0 24px;border-bottom:1px solid var(--color-rule)}.archive-heading h1{margin:8px 0 7px;color:var(--color-ink);font-family:var(--font-display);font-size:clamp(32px,5vw,48px);font-weight:750;line-height:1.12;letter-spacing:-.055em}.archive-heading>p:last-of-type{max-width:560px;margin:0;color:var(--color-muted);font-size:13px;line-height:1.7}.archive-summary{display:flex;align-items:baseline;flex-wrap:wrap;gap:5px 8px;margin-top:20px;color:var(--color-muted);font-size:11px}.archive-summary strong{color:var(--color-ink);font-size:16px;font-variant-numeric:tabular-nums}.archive-summary-divider{width:1px;height:15px;margin:0 7px;background:var(--color-rule-strong);align-self:center}.archive-tools{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin:20px 0 12px}.archive-search{display:flex;align-items:center;gap:9px;flex:1 1 280px;min-width:0;min-height:44px;padding:0 11px;border:1px solid var(--color-rule-strong);border-radius:7px;color:var(--color-muted);background:var(--color-paper-raised)}.archive-search:focus-within{border-color:var(--color-focus);box-shadow:0 0 0 2px color-mix(in oklch,var(--color-focus) 18%,transparent)}.archive-search>span{font-size:22px;line-height:1}.archive-search input{flex:1;width:100%;min-width:0;min-height:40px;padding:0;border:0;outline:0;color:var(--color-ink);background:transparent;font:inherit;font-size:12px}.archive-search input::placeholder{color:var(--color-muted)}.archive-search button{width:28px;height:28px;border:0;border-radius:5px;color:var(--color-muted);background:transparent;font-size:18px;cursor:pointer}.archive-search button:hover{color:var(--color-ink);background:var(--color-paper-soft)}.archive-filter-toggle,.archive-expand-toggle{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 12px;border:1px solid var(--color-rule-strong);border-radius:7px;color:var(--color-ink-secondary);background:var(--color-paper-raised);font-size:11px;font-weight:600;cursor:pointer}.archive-filter-toggle:hover,.archive-expand-toggle:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-ink);background:var(--color-paper-soft)}.archive-filter-toggle.is-active{border-color:color-mix(in oklch,var(--color-accent) 55%,var(--color-rule-strong));color:var(--color-ink);background:var(--color-accent-soft)}.archive-filter-count{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:5px;color:var(--color-accent-ink);background:var(--color-accent);font-size:10px}.archive-expand-toggle:disabled{opacity:.45;cursor:not-allowed}.archive-course-filter{margin:0 0 16px;padding:14px;border:1px solid var(--color-rule-strong);border-radius:8px;background:var(--color-paper-raised)}.archive-course-filter legend{padding:0 5px;color:var(--color-ink-secondary);font-size:11px;font-weight:700}.archive-course-options{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.archive-course-option{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:5px 9px;border:1px solid var(--color-rule);border-radius:6px;color:var(--color-ink-secondary);background:var(--color-paper);font-size:11px;cursor:pointer}.archive-course-option:has(input:checked){border-color:color-mix(in oklch,var(--color-accent) 45%,var(--color-rule));color:var(--color-ink);background:var(--color-accent-soft)}.archive-course-option input{width:15px;height:15px;margin:0;accent-color:var(--color-accent)}.archive-groups{display:grid;gap:10px;margin:14px 0 28px}.archive-course-group{overflow:hidden;border:1px solid var(--color-rule-strong);border-radius:9px;background:var(--color-paper-raised);box-shadow:0 3px 12px #0000000f}.archive-course-group.is-expanded{border-color:color-mix(in oklch,var(--color-accent) 28%,var(--color-rule-strong))}.archive-course-heading{display:flex;align-items:center;gap:12px;width:100%;min-height:72px;padding:12px 15px;border:0;color:var(--color-ink);background:transparent;text-align:left;cursor:pointer}.archive-course-heading:hover{background:var(--color-paper-soft)}.archive-course-icon{display:grid;place-items:center;width:38px;height:38px;flex:0 0 auto;border:1px solid color-mix(in oklch,var(--color-accent) 32%,var(--color-rule));border-radius:7px;color:var(--color-accent);background:var(--color-accent-soft);font-size:19px}.archive-course-title{display:grid;gap:4px;flex:1;min-width:0}.archive-course-title strong{overflow-wrap:anywhere;font-size:13px;font-weight:700}.archive-course-title small{color:var(--color-muted);font-size:10px}.archive-folder-count{flex:0 0 auto;padding:5px 8px;border:1px solid var(--color-rule);border-radius:5px;color:var(--color-muted);background:var(--color-paper);font-size:10px;white-space:nowrap}.archive-chevron{display:grid;place-items:center;width:27px;height:27px;flex:0 0 auto;border:1px solid var(--color-rule);border-radius:6px;color:var(--color-ink-secondary);background:var(--color-paper);font-size:16px}.archive-folder-list{padding:0 14px 12px;border-top:1px solid var(--color-rule)}.archive-folder-row{display:flex;align-items:center;gap:11px;min-width:0;padding:13px 2px;border-bottom:1px solid var(--color-rule)}.archive-folder-row:last-child{border-bottom:0}.archive-folder-icon{display:grid;place-items:center;width:32px;height:32px;flex:0 0 auto;border:1px solid var(--color-rule);border-radius:6px;color:var(--color-muted);background:var(--color-paper);font-size:15px}.archive-folder-copy{display:grid;gap:4px;flex:1;min-width:0}.archive-folder-copy strong{overflow-wrap:anywhere;color:var(--color-ink);font-size:12px;font-weight:650;line-height:1.5}.archive-folder-copy span{overflow:hidden;color:var(--color-muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.archive-open-link{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;flex:0 0 auto;padding:0 10px;border:1px solid color-mix(in oklch,var(--color-accent) 40%,var(--color-rule));border-radius:6px;color:var(--color-accent);background:var(--color-accent-soft);font-size:10px;font-weight:700;text-decoration:none}.archive-open-link:hover{border-color:var(--color-accent);background:color-mix(in oklch,var(--color-accent-soft) 65%,var(--color-paper-raised))}.archive-invalid-link{color:var(--color-error);font-size:10px}.archive-empty{display:flex;align-items:center;flex-direction:column;gap:8px;margin:18px 0 30px;padding:40px 18px;border:1px dashed var(--color-rule-strong);border-radius:9px;color:var(--color-muted);background:var(--color-paper-raised);text-align:center}.archive-empty strong{color:var(--color-ink);font-size:13px}.archive-empty>span:not(.loading-mark):not(.empty-mark){max-width:430px;font-size:11px;line-height:1.7}.archive-empty .empty-mark{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--color-rule);border-radius:8px;color:var(--color-muted);background:var(--color-paper);font-size:22px}.archive-empty .text-button{margin-top:4px}@media(max-width:640px){.open-archive-button{min-height:40px;padding-inline:9px;font-size:10px}.archive-heading{padding:25px 0 18px}.archive-tools{align-items:stretch}.archive-search{flex-basis:100%}.archive-filter-toggle,.archive-expand-toggle{flex:1;min-height:42px}.archive-course-heading{gap:9px;padding:11px}.archive-course-icon{width:34px;height:34px}.archive-course-title strong{font-size:12px}.archive-folder-list{padding-inline:10px}.archive-folder-row{gap:8px;flex-wrap:wrap}.archive-folder-copy{flex-basis:calc(100% - 45px)}.archive-open-link{margin-left:40px}.archive-folder-count{font-size:9px;padding-inline:6px}}@media(max-width:390px){.archive-folder-count{display:none}.archive-course-heading{gap:8px}.archive-course-title strong{font-size:11px}}.app-navigation-header{gap:clamp(10px,1.7vw,24px)}.app-primary-nav{display:flex;align-items:center;justify-content:center;flex:1 1 auto;gap:3px;min-width:0}.app-nav-item{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 12px;border:1px solid transparent;border-radius:8px;color:var(--color-ink-secondary);background:transparent;font-size:12px;font-weight:600;white-space:nowrap;transition:color var(--duration-quick) var(--ease-out),border-color var(--duration-quick) var(--ease-out),background-color var(--duration-quick) var(--ease-out)}.app-nav-item:hover{color:var(--color-ink);background:var(--color-paper-raised)}.app-nav-item.is-current{border-color:color-mix(in oklch,var(--color-accent) 35%,var(--color-rule));color:var(--color-accent);background:var(--color-accent-soft)}.app-navigation-actions{display:flex;align-items:center;justify-content:end;flex:0 0 auto;gap:9px;min-width:0}.app-nav-connection{max-width:142px;overflow:hidden;text-overflow:ellipsis}.app-more-menu{position:relative;flex:0 0 auto}.app-more-menu>summary{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:0 11px;border:1px solid var(--color-rule-strong);border-radius:8px;color:var(--color-ink-secondary);background:transparent;font-size:12px;font-weight:600;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.app-more-menu>summary::-webkit-details-marker{display:none}.app-more-menu>summary:hover,.app-more-menu[open]>summary{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-soft)}.app-nav-icon{display:block;width:19px;height:19px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.app-more-menu>summary .app-nav-icon{width:16px;height:16px}.app-more-popover{position:absolute;z-index:var(--z-dropdown);top:calc(100% + 8px);right:0;display:grid;gap:3px;width:max-content;min-width:194px;max-width:min(280px,calc(100vw - 28px));padding:6px;border:1px solid var(--color-rule-strong);border-radius:11px;background:var(--color-paper-raised);box-shadow:0 16px 40px #00000047}.app-more-popover>button{display:flex;align-items:center;gap:10px;width:100%;min-height:42px;padding:0 10px;border:1px solid transparent;border-radius:7px;color:var(--color-ink-secondary);background:transparent;font-size:12px;text-align:left;white-space:nowrap}.app-more-popover>button:hover:not(:disabled),.app-more-popover>button.is-current{border-color:var(--color-rule);color:var(--color-accent);background:var(--color-accent-soft)}.app-more-item-icon{display:inline-grid;place-items:center;width:18px;flex:0 0 auto;color:var(--color-muted);font-size:15px}.app-more-email{max-width:264px;margin:2px 4px 5px;padding:6px 5px 10px;overflow-wrap:anywhere;border-bottom:1px solid var(--color-rule);color:var(--color-muted);font-size:10px;line-height:1.5}.app-more-popover>.app-more-refresh{margin-top:3px;border-top-color:var(--color-rule);border-radius:0 0 7px 7px;padding-top:3px}.app-bottom-nav{display:none}.app-navigation-header button:focus-visible,.app-navigation-header summary:focus-visible,.app-bottom-nav button:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}@media(max-width:700px){.app-navigation-header{min-height:64px;gap:8px}.app-primary-nav{display:none}.app-navigation-actions{gap:7px}.app-nav-connection,.app-navigation-header .app-nav-refresh{display:none}.app-more-menu>summary{min-height:39px;padding-inline:9px}.app-more-popover{top:calc(100% + 7px);min-width:190px}.app-bottom-nav{position:fixed;z-index:200;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:5px;padding:7px 10px calc(7px + env(safe-area-inset-bottom));border-top:1px solid var(--color-rule-strong);background:var(--color-paper);box-shadow:0 -8px 24px #0000001f}.app-bottom-nav-item{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;min-width:0;min-height:50px;padding:5px 3px;border:1px solid transparent;border-radius:9px;color:var(--color-muted);background:transparent;font-size:10px;font-weight:600;line-height:1.2;white-space:nowrap}.app-bottom-nav-item .app-nav-icon{width:20px;height:20px}.app-bottom-nav-item.is-current{border-color:color-mix(in oklch,var(--color-accent) 25%,transparent);color:var(--color-accent);background:var(--color-accent-soft)}.app-shell:has(.app-bottom-nav){padding-bottom:calc(88px + env(safe-area-inset-bottom))}}@media(max-width:360px){.app-navigation-header .wordmark{gap:6px}.app-navigation-header .wordmark-name{font-size:11px}.app-more-menu>summary{gap:5px;padding-inline:7px;font-size:11px}.app-bottom-nav{padding-right:6px;padding-left:6px}}.app-navigation-header{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);column-gap:clamp(12px,1.7vw,24px)}.app-navigation-header>.wordmark{grid-column:1;justify-self:start;min-width:0}.app-primary-nav{grid-column:2;justify-self:center;flex:initial}.app-navigation-actions{grid-column:3;justify-self:end}@media(max-width:700px){.app-navigation-header{display:flex}.app-navigation-header>.wordmark{flex:0 1 auto}.app-navigation-actions{margin-left:auto}}.course-manager{min-width:0;padding-top:12px}.course-manager-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;padding-bottom:23px;border-bottom:1px solid var(--color-rule)}.course-manager-heading h1{margin:0;font-family:var(--font-display);font-size:clamp(1.9rem,4vw,3rem);font-weight:650;line-height:1.1;letter-spacing:-.065em}.course-manager-heading .admin-section-description{max-width:620px}.course-manager-stat{display:grid;justify-items:end;gap:1px;flex:0 0 auto;color:var(--color-muted);font-size:10px;white-space:nowrap}.course-manager-stat strong{color:var(--color-ink);font-family:var(--font-display);font-size:27px;font-weight:650;line-height:1.2;font-variant-numeric:tabular-nums}.course-create-disclosure{margin-top:20px;border:1px solid var(--color-rule-strong);border-radius:9px;background:var(--color-paper-raised)}.course-create-disclosure>summary{display:flex;align-items:center;gap:10px;min-height:50px;padding:0 15px;color:var(--color-ink-secondary);font-size:12px;font-weight:650;cursor:pointer;list-style:none}.course-create-disclosure>summary::-webkit-details-marker{display:none}.course-create-disclosure>summary>span:first-child{display:grid;place-items:center;width:25px;height:25px;border:1px solid color-mix(in oklch,var(--color-accent) 42%,var(--color-rule));border-radius:6px;color:var(--color-accent);font-size:17px;line-height:1}.course-create-disclosure[open]>summary{border-bottom:1px solid var(--color-rule);color:var(--color-accent)}.course-create-form{display:grid;gap:14px;padding:17px}.course-form-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(100px,.65fr) minmax(150px,1fr);gap:12px;align-items:start}.course-manager .admin-field{display:grid;align-content:start;gap:7px;min-width:0}.course-manager .admin-field>span{color:var(--color-ink-secondary);font-size:11px;font-weight:650}.course-manager .admin-field b{color:var(--color-accent)}.course-manager .admin-field input:not([type=checkbox]),.course-manager .admin-field select,.course-manager .admin-field textarea{width:100%;min-width:0;min-height:43px;padding:9px 11px;border:1px solid var(--color-rule-strong);border-radius:7px;color:var(--color-ink);background:var(--color-paper);font:inherit;font-size:12px;line-height:1.45}.course-manager .admin-field input:focus,.course-manager .admin-field select:focus,.course-manager .admin-field textarea:focus{border-color:var(--color-focus);outline:2px solid color-mix(in oklch,var(--color-focus) 24%,transparent);outline-offset:1px}.course-manager .admin-field input:disabled{opacity:.8;color:var(--color-muted);cursor:not-allowed}.course-form-note{margin:0;color:var(--color-muted);font-size:10px;line-height:1.65}.course-manager-tools{display:grid;grid-template-columns:minmax(0,1fr) minmax(145px,.24fr);gap:10px;margin-top:22px}.course-manager-tools .task-search-input{min-width:0}.course-status-select{display:flex;align-items:center;gap:9px;min-height:44px;padding:0 11px;border:1px solid var(--color-rule-strong);border-radius:8px;background:var(--color-paper-raised)}.course-status-select>span{color:var(--color-muted);font-size:10px}.course-status-select select{width:100%;min-width:0;border:0;outline:none;color:var(--color-ink-secondary);background:transparent;font-size:11px}.course-manager-count{margin:11px 0 10px;color:var(--color-muted);font-size:10px;font-variant-numeric:tabular-nums}.course-manager-list{border-top:1px solid var(--color-rule)}.course-semester-group{border-bottom:1px solid var(--color-rule)}.course-semester-group>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:51px;color:var(--color-ink);font-family:var(--font-display);font-size:13px;font-weight:700;cursor:pointer;list-style:none}.course-semester-group>summary::-webkit-details-marker{display:none}.course-semester-count{color:var(--color-muted);font-family:var(--font-body);font-size:10px;font-weight:500}.course-semester-items{padding-bottom:7px}.course-edit-row{border-top:1px solid color-mix(in oklch,var(--color-rule) 75%,transparent)}.course-edit-row>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:57px;padding:8px 10px;border-radius:7px;cursor:pointer;list-style:none;transition:background-color var(--duration-quick) var(--ease-out)}.course-edit-row>summary::-webkit-details-marker{display:none}.course-edit-row>summary:hover,.course-edit-row[open]>summary{background:var(--color-paper-raised)}.course-edit-summary-copy{display:grid;gap:3px;min-width:0}.course-edit-summary-copy strong{color:var(--color-ink-secondary);font-size:12px;font-weight:600;line-height:1.5;overflow-wrap:anywhere}.course-edit-summary-copy small{color:var(--color-muted);font-size:10px}.course-edit-row.is-inactive .course-edit-summary-copy strong{color:var(--color-muted)}.course-edit-row.is-inactive .course-edit-summary-copy small{color:var(--color-warning)}.course-edit-chevron{color:var(--color-muted);font-size:20px;transition:transform var(--duration-quick) var(--ease-out)}.course-edit-row[open] .course-edit-chevron{transform:rotate(90deg);color:var(--color-accent)}.course-edit-form{display:grid;gap:13px;padding:12px 10px 17px}.course-edit-form>.form-field{max-width:440px}.course-edit-grid{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(180px,1.2fr)}.course-active-control{display:flex;align-items:center;align-self:end;gap:9px;min-height:43px;padding:7px 10px;border:1px solid var(--color-rule-strong);border-radius:7px;background:var(--color-paper);cursor:pointer}.course-active-control input{width:17px;height:17px;flex:0 0 auto;accent-color:var(--color-accent)}.course-active-control>span{display:grid;gap:1px}.course-active-control strong{color:var(--color-ink-secondary);font-size:11px}.course-active-control small{color:var(--color-muted);font-size:9px;line-height:1.45}.course-edit-actions{display:flex;flex-wrap:wrap;gap:9px}.course-manager-empty{display:grid;justify-items:start;gap:7px;padding:26px 0;color:var(--color-muted);font-size:11px}.course-manager-empty strong{color:var(--color-ink);font-size:13px}.course-manager-empty>span{line-height:1.7}.admin-section-switch{display:inline-flex;gap:4px;flex-wrap:wrap;margin:0 0 20px;padding:4px;border:1px solid var(--color-rule);border-radius:10px;background:var(--color-paper-raised)}.admin-section-switch button{min-height:38px;padding:0 14px;border:1px solid transparent;border-radius:7px;color:var(--color-muted);background:transparent;font-size:11px;font-weight:650;white-space:nowrap}.admin-section-switch button:hover{color:var(--color-ink)}.admin-section-switch button.is-current{border-color:var(--color-rule-strong);color:var(--color-accent);background:var(--color-paper-soft)}.course-manager button:focus-visible,.course-manager summary:focus-visible,.course-manager input:focus-visible,.course-manager select:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}@media(max-width:760px){.course-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.course-manager .course-name-field{grid-column:1 / -1}.course-manager-heading{align-items:start}.course-manager-tools{grid-template-columns:minmax(0,1fr)}.course-status-select{width:100%}.course-edit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.course-active-control{align-self:stretch}}@media(max-width:420px){.course-manager-heading{gap:10px}.course-manager-heading h1{font-size:1.8rem}.course-manager-heading .admin-section-description{font-size:11px}.course-create-form{padding:12px}.course-form-grid,.course-edit-grid{grid-template-columns:minmax(0,1fr)}.course-manager .course-name-field{grid-column:auto}.admin-section-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.admin-section-switch button{padding-inline:7px;font-size:10px}}.module-manager{min-width:0;padding-top:12px}.module-manager-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;padding-bottom:23px;border-bottom:1px solid var(--color-rule)}.module-manager-heading h1{margin:0;color:var(--color-ink);font-family:var(--font-display);font-size:clamp(1.9rem,4vw,3rem);font-weight:650;line-height:1.1;letter-spacing:-.065em}.module-manager-heading .admin-section-description{max-width:620px}.module-manager-stat{display:grid;justify-items:end;gap:1px;flex:0 0 auto;color:var(--color-muted);font-size:10px;white-space:nowrap}.module-manager-stat strong{color:var(--color-ink);font-family:var(--font-display);font-size:27px;font-weight:650;line-height:1.2;font-variant-numeric:tabular-nums}.module-manager .admin-field{display:grid;align-content:start;gap:7px;min-width:0}.module-manager .admin-field>span{color:var(--color-ink-secondary);font-size:11px;font-weight:650}.module-manager .admin-field b{color:var(--color-accent)}.module-manager .admin-field input:not([type=checkbox]),.module-manager .admin-field select,.module-manager .admin-field textarea{width:100%;min-width:0;min-height:43px;padding:9px 11px;border:1px solid var(--color-rule-strong);border-radius:7px;color:var(--color-ink);background:var(--color-paper);font:inherit;font-size:12px;line-height:1.5}.module-manager .admin-field textarea{min-height:78px;resize:vertical}.module-manager .admin-field input:focus,.module-manager .admin-field select:focus,.module-manager .admin-field textarea:focus{border-color:var(--color-focus);outline:2px solid color-mix(in oklch,var(--color-focus) 24%,transparent);outline-offset:1px}.module-create-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.4fr);gap:12px}.module-no-courses{margin:0;padding:16px;color:var(--color-warning);font-size:11px;line-height:1.7}.module-manager-tools{display:grid;grid-template-columns:minmax(0,1fr) minmax(140px,.24fr) minmax(190px,.36fr);gap:10px;margin-top:22px}.module-manager-tools>*{min-width:0}.module-course-filter select{overflow:hidden;text-overflow:ellipsis}.module-course-group>summary{gap:12px}.module-manager-rows{padding-bottom:7px}.module-edit-row>summary{padding-inline:10px}.module-edit-row .course-edit-summary-copy{flex:1 1 auto}.module-edit-row .course-edit-summary-copy small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.module-edit-form{display:grid;gap:13px;padding:12px 10px 17px}.module-edit-form>.form-field{max-width:780px}.module-edit-form .course-active-control{max-width:390px}.module-edit-form .course-edit-actions{align-items:center}.module-preview-link{min-height:42px}.module-manager .course-edit-row.is-inactive .course-edit-summary-copy small{color:var(--color-warning)}.module-manager button:focus-visible,.module-manager summary:focus-visible,.module-manager input:focus-visible,.module-manager select:focus-visible,.module-manager textarea:focus-visible,.module-manager a:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}@media(max-width:760px){.module-manager-tools{grid-template-columns:minmax(0,1fr) minmax(0,.75fr)}.module-manager-tools .task-search-input{grid-column:1 / -1}.module-create-grid{grid-template-columns:minmax(0,1fr)}}@media(max-width:420px){.module-manager-heading{gap:10px}.module-manager-heading h1{font-size:1.8rem}.module-manager-heading .admin-section-description{font-size:11px}.module-manager-tools{grid-template-columns:minmax(0,1fr)}.module-manager-tools .task-search-input{grid-column:auto}.module-manager .course-edit-actions{align-items:stretch;flex-direction:column}.module-manager .course-edit-actions>*{justify-content:center}.module-edit-row .course-edit-summary-copy small{max-width:230px}}@media(min-width:701px)and (max-width:820px){.app-primary-nav{gap:0}.app-nav-item{padding-inline:7px;font-size:11px}.app-nav-connection{display:none}.app-navigation-actions{gap:7px}.app-more-menu>summary{padding-inline:8px}}.recent-overdue{margin:0 0 26px;padding:15px 18px 11px;border:1px solid color-mix(in oklch,var(--color-warning) 30%,var(--color-rule));border-radius:12px;background:color-mix(in oklch,var(--color-warning-soft) 68%,transparent)}.recent-overdue-heading{display:flex;align-items:start;gap:11px}.recent-overdue-mark{display:grid;place-items:center;flex:0 0 auto;width:25px;height:25px;margin-top:1px;border:1px solid color-mix(in oklch,var(--color-warning) 45%,transparent);border-radius:50%;color:var(--color-warning);font-size:13px;font-weight:800}.recent-overdue-heading h2{margin:0;color:var(--color-warning);font-family:var(--font-display);font-size:13px;font-weight:750}.recent-overdue-heading p{margin:3px 0 0;color:var(--color-ink-secondary);font-size:11px;line-height:1.7}.recent-overdue-list{margin-top:10px}.recent-overdue-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 0;border-top:1px solid color-mix(in oklch,var(--color-warning) 17%,var(--color-rule))}.recent-overdue-copy{display:grid;gap:2px;min-width:0}.recent-overdue-copy strong{color:var(--color-ink);font-size:12px;font-weight:650;overflow-wrap:anywhere}.recent-overdue-copy span{color:var(--color-muted);font-size:10px;line-height:1.5}.recent-overdue-links{display:flex;flex:0 0 auto;align-items:center;justify-content:end;flex-wrap:wrap;gap:10px}.recent-overdue-links a{color:var(--color-ink-secondary);font-size:10px;text-decoration-color:var(--color-rule-strong);text-underline-offset:3px}.recent-overdue-links a:hover{color:var(--color-warning)}.recent-overdue-more{margin:5px 0 0;padding-top:9px;border-top:1px solid color-mix(in oklch,var(--color-warning) 17%,var(--color-rule));color:var(--color-muted);font-size:10px}.admin-users-section{min-width:0;padding-top:12px}.admin-users-section .admin-section-heading{display:flex;align-items:end;justify-content:space-between;gap:22px;padding-bottom:22px;border-bottom:1px solid var(--color-rule)}.admin-users-section .admin-section-heading h1{margin:0;color:var(--color-ink);font-family:var(--font-display);font-size:clamp(1.8rem,3vw,2.4rem);font-weight:650;letter-spacing:-.055em}.admin-users-count{color:var(--color-muted);font-size:11px;white-space:nowrap}.admin-users-add-form{display:grid;grid-template-columns:minmax(190px,.85fr) minmax(0,1.3fr);gap:22px;align-items:end;padding:21px 0;border-bottom:1px solid var(--color-rule)}.admin-users-add-copy label{display:block;margin-bottom:4px;color:var(--color-ink);font-size:12px;font-weight:650}.admin-users-add-copy p{margin:0;color:var(--color-muted);font-size:10px;line-height:1.75}.admin-users-add-controls{display:flex;align-items:center;gap:8px}.admin-users-add-controls input{width:100%;min-width:0;min-height:42px;padding:0 12px;border:1px solid var(--color-rule-strong);border-radius:var(--radius-control);background:var(--color-paper-raised);font-size:12px}.admin-users-add-controls .primary-action{flex:0 0 auto;white-space:nowrap}.admin-users-feedback{margin:12px 0 0;padding:10px 12px;border-radius:8px;font-size:11px;line-height:1.6;overflow-wrap:anywhere}.admin-users-feedback.is-error{border:1px solid color-mix(in oklch,var(--color-error) 35%,transparent);color:var(--color-error);background:var(--color-error-soft)}.admin-users-feedback.is-success{border:1px solid color-mix(in oklch,var(--color-success) 35%,transparent);color:var(--color-success);background:var(--color-success-soft)}.admin-users-list-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:24px}.admin-users-list-heading h2{margin:0;color:var(--color-ink);font-family:var(--font-display);font-size:14px;font-weight:650}.admin-users-list{margin:8px 0 0;padding:0;list-style:none}.admin-users-row{display:flex;align-items:center;gap:12px;min-height:66px;padding:10px 0;border-bottom:1px solid var(--color-rule)}.admin-users-avatar{display:grid;place-items:center;width:34px;height:34px;flex:0 0 auto;border:1px solid var(--color-rule-strong);border-radius:50%;color:var(--color-accent);background:var(--color-paper-raised);font-size:12px;font-weight:750}.admin-users-email{display:grid;flex:1 1 auto;min-width:0;gap:2px}.admin-users-email strong{color:var(--color-ink);font-size:12px;font-weight:600;overflow-wrap:anywhere}.admin-users-email small{color:var(--color-muted);font-size:10px}.admin-users-protected{color:var(--color-muted);font-size:10px;white-space:nowrap}.admin-users-remove{min-height:34px;padding:0 10px;border:1px solid color-mix(in oklch,var(--color-error) 38%,var(--color-rule));border-radius:7px;color:var(--color-error);background:transparent;font-size:10px;white-space:nowrap}.admin-users-remove:hover{background:var(--color-error-soft)}.admin-users-confirm{display:flex;align-items:center;justify-content:end;flex-wrap:wrap;gap:8px;color:var(--color-warning);font-size:10px}.admin-users-confirm-delete{min-height:33px;padding-inline:9px;border:1px solid var(--color-error);border-radius:7px;color:var(--color-error);background:var(--color-error-soft);font-size:10px;font-weight:650}.admin-users-empty{display:flex;align-items:center;gap:10px;padding:25px 0;color:var(--color-muted);font-size:12px}.admin-users-empty .loading-mark{flex:0 0 auto}.admin-users-security-note{margin:20px 0 0;color:var(--color-muted);font-size:10px;line-height:1.7}.admin-users-section input:focus-visible,.admin-users-section button:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}@media(max-width:700px){.recent-overdue{padding:13px 13px 8px}.recent-overdue-item{align-items:start;flex-direction:column;gap:8px}.recent-overdue-links{justify-content:start}.admin-users-add-form{grid-template-columns:minmax(0,1fr);gap:12px}.admin-users-add-controls{align-items:stretch;flex-direction:column}.admin-users-add-controls .primary-action{width:100%;justify-content:center}.admin-users-row{align-items:start;gap:9px}.admin-users-avatar{width:30px;height:30px}.admin-users-confirm{justify-content:start}}@media(max-width:420px){.admin-section-switch:has(button:nth-child(4)){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.admin-section-switch:has(button:nth-child(4)) button{padding-inline:7px;font-size:10px}.admin-users-remove{padding-inline:7px}.admin-users-protected{font-size:9px;white-space:normal;text-align:right}}.dashboard-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0 0 24px;padding-block:12px;border-top:1px solid var(--color-rule);border-bottom:1px solid var(--color-rule)}.dashboard-metric{display:flex;align-items:baseline;gap:11px;min-width:0;padding:2px 18px;border-right:1px solid var(--color-rule)}.dashboard-metric:first-child{padding-left:0}.dashboard-metric:last-child{padding-right:0;border-right:0}.dashboard-metric strong{color:var(--color-ink);font-family:var(--font-display);font-size:23px;font-weight:650;line-height:1.2;letter-spacing:-.055em;font-variant-numeric:tabular-nums}.dashboard-metric span{color:var(--color-muted);font-size:10px;line-height:1.5}@media(max-width:600px){.dashboard-metrics{margin-bottom:19px}.dashboard-metric{align-items:start;flex-direction:column;gap:2px;padding-inline:10px}.dashboard-metric strong{font-size:21px}.dashboard-metric span{font-size:9px}}@media(max-width:360px){.dashboard-metric{padding-inline:7px}.dashboard-metric strong{font-size:19px}.dashboard-metric span{font-size:8px}}:root{--motion-spring: cubic-bezier(.22, 1.35, .36, 1);--motion-smooth: cubic-bezier(.2, .8, .2, 1);--motion-duration: .42s;--motion-long: .76s}body{position:relative;isolation:isolate}body:before,body:after{position:fixed;z-index:-1;display:block;width:clamp(250px,37vw,590px);aspect-ratio:1;border-radius:42% 58% 64% 36%/44% 40% 60% 56%;content:"";pointer-events:none;opacity:.16;filter:blur(2px);will-change:transform,border-radius}body:before{top:-23vh;left:-15vw;background:radial-gradient(ellipse at 34% 36%,color-mix(in oklch,var(--color-accent) 68%,transparent),transparent 63%),radial-gradient(ellipse at 65% 70%,color-mix(in oklch,#7c83ff 45%,transparent),transparent 68%);animation:ambient-morph-a 31s ease-in-out infinite alternate}body:after{right:-17vw;bottom:-27vh;width:clamp(230px,32vw,500px);background:radial-gradient(ellipse at 42% 45%,color-mix(in oklch,#8176ff 55%,transparent),transparent 66%),radial-gradient(ellipse at 72% 65%,color-mix(in oklch,var(--color-accent) 44%,transparent),transparent 70%);animation:ambient-morph-b 37s ease-in-out infinite alternate}@keyframes ambient-morph-a{0%{transform:translateZ(0) rotate(-10deg) scale(.92);border-radius:42% 58% 64% 36%/44% 40% 60% 56%}38%{transform:translate3d(9vw,8vh,0) rotate(24deg) scale(1.08);border-radius:61% 39% 43% 57%/50% 62% 38% 50%}72%{transform:translate3d(15vw,3vh,0) rotate(58deg) scale(.98);border-radius:36% 64% 55% 45%/61% 39% 58% 42%}to{transform:translate3d(5vw,13vh,0) rotate(78deg) scale(1.04);border-radius:55% 45% 32% 68%/39% 57% 43% 61%}}@keyframes ambient-morph-b{0%{transform:translateZ(0) rotate(0) scale(1);border-radius:62% 38% 39% 61%/44% 58% 42% 56%}40%{transform:translate3d(-8vw,-9vh,0) rotate(-34deg) scale(1.1);border-radius:43% 57% 64% 36%/58% 37% 63% 42%}76%{transform:translate3d(-12vw,-4vh,0) rotate(-58deg) scale(.94);border-radius:34% 66% 47% 53%/43% 61% 39% 57%}to{transform:translate3d(-4vw,-11vh,0) rotate(-80deg) scale(1.06);border-radius:57% 43% 56% 44%/62% 39% 61% 38%}}@keyframes surface-enter{0%{opacity:0;transform:translate3d(0,13px,0) scale(.992);filter:blur(3px)}68%{opacity:1;transform:translate3d(0,-2px,0) scale(1.002);filter:blur(0)}to{opacity:1;transform:translateZ(0) scale(1);filter:blur(0)}}@keyframes soft-pop{0%{transform:scale(.88);border-radius:50%}64%{transform:scale(1.035);border-radius:13px}to{transform:scale(1);border-radius:9px}}@keyframes icon-turn{0%{transform:rotate(-30deg) scale(.78)}70%{transform:rotate(9deg) scale(1.12)}to{transform:rotate(0) scale(1)}}.app-navigation-header{animation:surface-enter .68s var(--motion-smooth) both}.app-shell>.welcome,.app-shell>.dashboard-metrics,.app-shell>.recent-overdue,.app-shell>.workspace-grid,.app-shell>.calendar-page-heading,.app-shell>.calendar-filter,.app-shell>.calendar-surface,.app-shell>.archive-heading,.app-shell>.archive-tools,.app-shell>.admin-workspace,.app-shell>.auth-section{animation:surface-enter .7s var(--motion-smooth) both}.app-shell>.welcome{animation-delay:65ms}.app-shell>.dashboard-metrics{animation-delay:115ms}.app-shell>.recent-overdue{animation-delay:.15s}.app-shell>.workspace-grid{animation-delay:.19s}.app-shell>.calendar-page-heading,.app-shell>.archive-heading{animation-delay:80ms}.app-shell>.calendar-filter,.app-shell>.archive-tools{animation-delay:135ms}.app-shell>.calendar-surface,.app-shell>.admin-workspace,.app-shell>.auth-section{animation-delay:185ms}button,a,summary,[role=button]{-webkit-tap-highlight-color:transparent}button:not(:disabled),a,summary{transition:color var(--motion-duration) var(--motion-smooth),background-color var(--motion-duration) var(--motion-smooth),border-color var(--motion-duration) var(--motion-smooth),border-radius var(--motion-duration) var(--motion-spring),box-shadow var(--motion-duration) var(--motion-smooth),transform var(--motion-duration) var(--motion-spring),opacity var(--motion-duration) var(--motion-smooth)}@media(hover:hover)and (pointer:fine){.app-nav-item:hover,.app-more-menu>summary:hover,.app-bottom-nav-item:hover,.task-tab:hover,.calendar-view-switch button:hover,.admin-section-switch button:hover,.calendar-nav-arrow:hover,.calendar-today-button:hover,.archive-filter-toggle:hover,.archive-expand-toggle:hover{border-radius:12px;transform:translateY(-2px)}.primary-action:hover:not(:disabled),.open-admin-button:hover:not(:disabled),.quiet-button:hover:not(:disabled),.danger-action:hover:not(:disabled),.refresh-button:hover:not(:disabled),.edit-task-button:hover:not(:disabled),.delete-task-button:hover:not(:disabled),.group-tool-button:hover:not(:disabled),.text-button:hover{transform:translateY(-2px);box-shadow:0 7px 18px color-mix(in oklch,var(--color-accent) 12%,transparent)}.task-row,.calendar-task-card,.managed-task-row,.recent-overdue-item,.admin-users-row,.archive-folder-row,.course-task-group{transition:background-color var(--motion-duration) var(--motion-smooth),border-color var(--motion-duration) var(--motion-smooth),transform var(--motion-duration) var(--motion-spring)}.task-row:hover,.calendar-task-card:hover,.managed-task-row:hover,.recent-overdue-item:hover,.admin-users-row:hover,.archive-folder-row:hover{transform:translate(3px)}.task-row:hover{background:color-mix(in oklch,var(--color-paper-raised) 34%,transparent)}.calendar-task-card:hover{border-color:var(--color-rule-strong)}}button:not(:disabled):active,a:active,summary:active{transform:translateY(1px) scale(.975);transition-duration:90ms}button:disabled{transform:none!important;box-shadow:none!important}.app-nav-item.is-current,.app-bottom-nav-item.is-current,.admin-section-switch button.is-current,.calendar-view-switch button.is-active{animation:soft-pop .47s var(--motion-spring) both}.app-nav-item.is-current .app-nav-icon,.app-bottom-nav-item.is-current .app-nav-icon{animation:icon-turn .46s var(--motion-spring) both}.app-nav-item.is-current{box-shadow:inset 0 0 0 1px color-mix(in oklch,var(--color-accent) 10%,transparent),0 5px 18px color-mix(in oklch,var(--color-accent) 7%,transparent)}.app-bottom-nav-item.is-current{box-shadow:0 4px 15px color-mix(in oklch,var(--color-accent) 8%,transparent)}.admin-section-switch button,.calendar-view-switch button{transition:color var(--motion-duration) var(--motion-smooth),background-color var(--motion-duration) var(--motion-smooth),border-color var(--motion-duration) var(--motion-smooth),border-radius var(--motion-duration) var(--motion-spring),transform var(--motion-duration) var(--motion-spring),box-shadow var(--motion-duration) var(--motion-smooth)}.admin-section-switch button.is-current,.calendar-view-switch button.is-active{box-shadow:inset 0 0 0 1px color-mix(in oklch,var(--color-accent) 12%,transparent)}.task-tab{position:relative;border-bottom-color:transparent}.task-tab:after{position:absolute;right:0;bottom:-1px;left:0;height:2px;border-radius:999px;background:var(--color-accent);content:"";transform:scaleX(0);transform-origin:center;transition:transform .46s var(--motion-spring),opacity .22s ease;opacity:0}.task-tab.is-current{border-bottom-color:transparent}.task-tab.is-current:after{transform:scaleX(1);opacity:1}.app-more-popover{transform-origin:top right;animation:surface-enter .28s var(--motion-smooth) both}.course-edit-row[open]>.course-edit-form,.module-edit-row[open]>.module-edit-form,.course-semester-group[open]>.course-semester-items{animation:surface-enter .36s var(--motion-smooth) both}.delete-dialog-backdrop{animation:fade-only .18s ease-out both}.delete-dialog{animation:surface-enter .36s var(--motion-spring) both}@keyframes fade-only{0%{opacity:0}to{opacity:1}}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:3px}@media(max-width:700px){body:before,body:after{width:72vw;opacity:.105;filter:blur(1px)}.app-shell>.welcome,.app-shell>.workspace-grid,.app-shell>.calendar-surface,.app-shell>.admin-workspace{animation-duration:.52s}}@media(prefers-reduced-motion:reduce){body:before,body:after{animation:none!important}.app-shell>*,.app-navigation-header,.app-nav-item.is-current,.app-bottom-nav-item.is-current,.admin-section-switch button.is-current,.calendar-view-switch button.is-active,.app-nav-item.is-current .app-nav-icon,.app-bottom-nav-item.is-current .app-nav-icon,.app-more-popover,.course-edit-row[open]>.course-edit-form,.module-edit-row[open]>.module-edit-form,.course-semester-group[open]>.course-semester-items,.delete-dialog-backdrop,.delete-dialog{animation:none!important}}.app-navigation-header{position:relative;z-index:300}.app-more-menu{position:relative;z-index:1}.app-more-menu[open]{z-index:2}.app-more-popover{z-index:400;pointer-events:auto}.app-more-popover>button{position:relative;z-index:1;pointer-events:auto}.task-links a,.recent-overdue-links a,.calendar-task-links a{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:35px;padding:0 10px;border:1px solid color-mix(in oklch,var(--color-accent) 27%,var(--color-rule-strong));border-radius:9px;color:var(--color-ink-secondary);background:color-mix(in oklch,var(--color-accent-soft) 58%,var(--color-paper-raised));font-size:10px;font-weight:650;line-height:1.2;text-decoration:none;text-underline-offset:3px;white-space:nowrap;cursor:pointer;box-shadow:inset 0 1px color-mix(in oklch,white 4%,transparent);transition:color .22s var(--motion-smooth, var(--ease-out)),background-color .26s var(--motion-smooth, var(--ease-out)),border-color .26s var(--motion-smooth, var(--ease-out)),border-radius .32s var(--motion-spring, var(--ease-out)),box-shadow .26s var(--motion-smooth, var(--ease-out)),transform .32s var(--motion-spring, var(--ease-out))}.task-links a span,.recent-overdue-links a span,.calendar-task-links a span{margin-left:0;color:var(--color-accent);font-size:11px;transition:transform .26s var(--motion-spring, var(--ease-out)),color .22s var(--motion-smooth, var(--ease-out))}.task-links a:visited,.recent-overdue-links a:visited,.calendar-task-links a:visited{color:var(--color-ink-secondary)}.task-links a:focus-visible,.recent-overdue-links a:focus-visible,.calendar-task-links a:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.task-links a:active,.recent-overdue-links a:active,.calendar-task-links a:active{transform:translateY(1px) scale(.97);box-shadow:inset 0 2px 6px color-mix(in oklch,black 16%,transparent)}@media(hover:hover)and (pointer:fine){.task-links a:hover,.recent-overdue-links a:hover,.calendar-task-links a:hover{border-color:var(--color-accent);border-radius:12px;color:var(--color-accent);background:color-mix(in oklch,var(--color-accent-soft) 82%,var(--color-paper-raised));text-decoration:none;transform:translateY(-2px);box-shadow:0 7px 18px color-mix(in oklch,var(--color-accent) 12%,transparent)}.task-links a:hover span,.recent-overdue-links a:hover span,.calendar-task-links a:hover span{color:var(--color-accent);transform:translate(2px,-1px)}}@media(max-width:700px){.task-links{gap:6px}.task-links a,.recent-overdue-links a,.calendar-task-links a{min-height:38px;padding-inline:11px;border-radius:10px}.recent-overdue-links{gap:7px}.calendar-task-links{gap:6px}}@media(prefers-reduced-motion:reduce){.task-links a,.recent-overdue-links a,.calendar-task-links a,.task-links a span,.recent-overdue-links a span,.calendar-task-links a span{transition:none!important}}
