@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff) format("woff")}:root{font-family:IBM Plex Sans,system-ui,sans-serif;font-synthesis:none;color-scheme:light;--bg: #f5f7f8;--surface: #fff;--surface-2: #eef3f4;--text: #202e34;--muted: #5e7079;--line: #e0e7ea;--accent: #087f78;--accent-hover: #066960;--tint: #e7f3f1;--danger: #ab3c39;--shadow: 0 18px 60px #152e3520;--radius: 14px;--sidebar: 242px;--unread: #778891;--review: #a06a1b;--read: #087f78;--skip: #796692;background:var(--bg);color:var(--text)}:root[data-theme=dark]{color-scheme:dark;--bg: #131e23;--surface: #1b292f;--surface-2: #22343b;--text: #e6edef;--muted: #a8bbc3;--line: #34464e;--accent: #63c5b8;--accent-hover: #85dacd;--tint: #203d3b;--danger: #ef9a94;--shadow: 0 18px 60px #0006;--unread: #a8b6bd;--review: #e3b765;--read: #63c5b8;--skip: #b9a6d3}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}a{color:inherit;text-decoration:none}button:disabled{opacity:.5;cursor:not-allowed}button{border:0;background:none}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:500;text-wrap:balance}h1{font-size:clamp(2.4rem,4vw,3.7rem);line-height:1.07;letter-spacing:-.055em}h1 span{color:var(--accent)}h2{font-size:1.2rem;letter-spacing:-.025em}h3{font-size:1.1rem}p{line-height:1.6}input,select,textarea{background:var(--surface);border:1px solid var(--line);border-radius:9px;color:var(--text);padding:11px 12px;min-width:0;width:100%}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}input[type=checkbox]{width:17px;height:17px;accent-color:var(--accent);flex-shrink:0}input[type=date]{min-height:43px}select{cursor:pointer}textarea{resize:vertical}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}::selection{background:var(--tint)}.muted{color:var(--muted)}.small,small{font-size:.82rem}.eyebrow{display:block;font-size:.73rem;letter-spacing:.11em;text-transform:uppercase;font-weight:500;color:var(--muted);margin-bottom:16px}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--accent);color:#fff;font-weight:500;font-size:.9rem;min-height:44px;padding:11px 18px;border-radius:9px;border:1px solid transparent;transition:background .18s,transform .18s;white-space:nowrap}.button:hover{background:var(--accent-hover)}.button:active{transform:translateY(1px)}[data-theme=dark] .button:not(.secondary):not(.danger){color:#122927}.button.secondary{background:var(--surface);color:var(--text);border-color:var(--line)}.button.secondary:hover{background:var(--surface-2)}.button.danger{background:var(--danger);color:#fff}.button.full{width:100%}.small-button{min-height:38px;padding:8px 12px;font-size:.82rem}.icon-button{display:inline-flex;align-items:center;justify-content:center;border-radius:8px;width:38px;height:38px;flex-shrink:0;transition:background .15s}.icon-button:hover{background:var(--surface-2)}.text-button{display:inline-flex;align-items:center;gap:7px;color:var(--accent);font-size:.86rem;font-weight:500;padding:4px 0}.text-button:hover{text-decoration:underline}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.field{display:flex;flex-direction:column;gap:8px;font-size:.85rem;font-weight:500;margin-bottom:18px}.field input,.field select,.field textarea{font-weight:400}.checkbox-line{display:flex;gap:9px;align-items:center;font-size:.86rem;margin:12px 0}.checkbox-group{display:flex;gap:20px;flex-wrap:wrap}.checkbox-group label{display:flex;gap:8px;align-items:center;font-size:.9rem}fieldset{border:0;padding:0;margin:8px 0 22px}legend{font-size:.85rem;font-weight:500;margin-bottom:10px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.inline-error{background:color-mix(in srgb,var(--danger) 8%,var(--surface));color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 30%,transparent);border-radius:10px;padding:12px 14px;font-size:.87rem;line-height:1.5;margin-bottom:18px}.inline-error p{margin-top:8px}.inline-error summary{margin-top:10px;cursor:pointer}.inline-error ul{padding-left:20px}.sr-only{position:absolute;width:1px;height:1px;clip:rect(0,0,0,0);overflow:hidden}.skip-link{position:fixed;top:8px;left:8px;z-index:100;padding:12px;background:var(--surface);transform:translateY(-200%)}.skip-link:focus{transform:none}.brand{display:flex;align-items:center;gap:9px;font-size:1.48rem;letter-spacing:-.06em;font-weight:600;white-space:nowrap}.brand-dot{color:var(--accent);margin-left:-8px}.brand-mark{display:inline-flex;justify-content:center;align-items:center;width:37px;height:37px;border-radius:11px;background:var(--accent);color:#fff;font-size:30px;font-weight:500;line-height:1;letter-spacing:-.04em;padding-bottom:5px;flex-shrink:0}[data-theme=dark] .brand-mark{color:#142b28}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:var(--surface);border-right:1px solid var(--line);padding:33px 23px 22px;display:flex;flex-direction:column;z-index:20}.sidebar-caption{color:var(--muted);font-size:.72rem;margin:12px 0 43px 47px}.sidebar nav{display:flex;flex-direction:column;gap:7px}.nav-item{display:flex;align-items:center;gap:13px;padding:13px 14px;border-radius:10px;color:var(--muted);font-size:.9rem;transition:background .15s,color .15s}.nav-item:hover{background:var(--surface-2);color:var(--text)}.nav-item.active{background:var(--tint);color:var(--accent);font-weight:500}.nav-item small{margin-left:auto;font-size:.72rem;opacity:.8}.admin-nav{margin-top:20px;padding-top:15px}.sidebar-bottom{margin-top:auto;padding-top:45px}.sidebar-progress{border-top:1px solid var(--line);padding:22px 4px}.sidebar-progress>span{display:flex;justify-content:space-between;font-size:.76rem;color:var(--muted);margin-bottom:9px}.sidebar-progress>span strong{color:var(--text)}.sidebar-progress .progress-line>span{display:none}.user-card{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:13px 0 0;border-top:1px solid var(--line)}.avatar{width:35px;height:35px;border-radius:10px;background:var(--surface-2);color:var(--accent);display:inline-flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600;flex-shrink:0}.user-card strong{display:block;font-size:.86rem}.user-card small{display:block;color:var(--muted);font-size:.7rem;margin-top:3px}.user-card>svg{margin-left:auto;color:var(--muted)}.main-shell{margin-left:var(--sidebar)}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(24px,4vw,60px);border-bottom:1px solid var(--line);font-size:.78rem;color:var(--muted)}.topbar strong{font-weight:400;color:var(--text)}.breadcrumb{margin:0 12px;color:var(--line)}.topbar-tools{display:flex;align-items:center;gap:18px}.save-state{display:flex;align-items:center;gap:6px;font-size:.7rem}.save-state>span{width:5px;height:5px;border-radius:50%;background:var(--accent)}.save-state.pending>span{background:var(--review)}main#main{max-width:1510px;margin:0 auto;padding:42px clamp(24px,4vw,60px) 26px;outline:0}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:25px;margin-bottom:35px}.page-heading p:not(.eyebrow){color:var(--muted);font-size:.93rem;margin-top:16px;max-width:58ch}.page-heading>.button{margin-bottom:5px;flex-shrink:0}.overview{display:grid;grid-template-columns:1.07fr 1fr;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden;margin-bottom:37px}.overview-primary{display:flex;align-items:center;justify-content:space-between;padding:25px 30px;gap:18px}.overview-primary .eyebrow{margin-bottom:5px}.large-number{font-size:3.65rem;letter-spacing:-.06em;line-height:1.15;font-variant-numeric:tabular-nums}.large-number>span{font-size:1.25rem;letter-spacing:-.02em;color:var(--muted);margin-left:6px}.overview-primary p{font-size:.76rem;color:var(--muted);margin-top:7px}.progress-circle{width:105px;height:105px;flex-shrink:0;border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative;background:conic-gradient(var(--accent) var(--progress),var(--surface-2) 0)}.progress-circle:before{content:"";position:absolute;inset:7px;border-radius:50%;background:var(--surface)}.progress-circle>span:not(.sr-only){position:relative;font-size:1.6rem;letter-spacing:-.06em;font-weight:500;font-variant-numeric:tabular-nums}.progress-circle small{font-size:.8rem;color:var(--muted);margin-left:2px}.status-summary{display:grid;grid-template-columns:1fr 1fr;border-left:1px solid var(--line);gap:0;padding:17px}.summary-item{display:grid;grid-template-columns:20px 1fr 16px;gap:3px 10px;align-items:center;text-align:left;padding:12px 15px;border-radius:9px}.summary-item:hover{background:var(--surface-2)}.summary-item .status-marker{grid-row:1/3}.summary-item strong{font-size:1.6rem;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-.04em}.summary-item>span:not(.status-marker){font-size:.73rem;color:var(--muted);grid-column:2}.summary-item svg{grid-column:3;grid-row:1/3;color:var(--muted)}.status-marker{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:1.5px solid var(--unread);border-radius:50%;color:var(--unread);flex-shrink:0}.status-marker.a_reviser{border-color:var(--review);box-shadow:inset 0 0 0 4px var(--surface);background:var(--review)}.status-marker.deja_lu{background:var(--read);border-color:var(--read);color:var(--surface)}.status-marker.impasse{border-color:var(--skip);background:color-mix(in srgb,var(--skip) 16%,var(--surface))}.today-grid{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:32px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 17px}.count-label{font-size:.73rem;color:var(--muted)}.empty{background:var(--surface);border:1px dashed var(--line);border-radius:var(--radius);padding:44px 24px;text-align:center;display:flex;align-items:center;flex-direction:column;gap:12px}.empty>svg{color:var(--accent);margin-bottom:4px}.empty h3{font-size:1.2rem}.empty p{font-size:.87rem;color:var(--muted);max-width:48ch}.empty .button{margin-top:7px}.specialty-heading{margin-top:32px}.specialty-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.specialty-tile{display:flex;align-items:center;gap:13px;text-align:left;padding:17px 15px;background:var(--surface);border:1px solid var(--line);border-radius:10px;transition:border-color .15s}.specialty-tile:hover{border-color:var(--accent)}.specialty-index{color:var(--muted);font-size:.69rem;align-self:flex-start;padding-top:4px;font-variant-numeric:tabular-nums}.specialty-tile>div{min-width:0;flex:1}.specialty-tile strong{display:block;font-size:.89rem;font-weight:500;overflow-wrap:anywhere}.specialty-tile>div>span{display:block;font-size:.72rem;color:var(--muted);margin:5px 0 10px}.specialty-tile>svg{color:var(--muted);flex-shrink:0}.progress-line{display:flex;align-items:center;gap:9px;font-size:.66rem;color:var(--muted);font-variant-numeric:tabular-nums}.progress-track{flex:1;height:4px;background:var(--surface-2);border-radius:3px;overflow:hidden}.progress-track>span{display:block;height:100%;background:var(--accent);border-radius:3px;transition:width .2s}.progress-line>span{white-space:nowrap}.upcoming-panel{border-left:1px solid var(--line);padding-left:27px}.upcoming-panel>.muted{font-size:.83rem}.upcoming-day{display:flex;align-items:center;width:100%;text-align:left;gap:12px;padding:16px 0;border-bottom:1px solid var(--line)}.upcoming-day>span:nth-child(2){flex:1}.upcoming-day strong{display:block;font-weight:500;font-size:.84rem;text-transform:capitalize}.upcoming-day small{display:block;color:var(--muted);font-size:.72rem;margin-top:4px}.date-square{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;width:45px;height:51px;border-radius:9px;background:var(--surface);border:1px solid var(--line);flex-shrink:0}.date-square strong{font-size:1.25rem;font-weight:500;line-height:1.2}.date-square small{font-size:.65rem;text-transform:uppercase;color:var(--muted)}.quiet-note{margin-top:27px;padding:23px 20px;background:var(--tint);border-radius:var(--radius)}.quiet-note>svg{color:var(--accent);margin-bottom:17px}.quiet-note h3{margin-bottom:10px}.quiet-note p{font-size:.8rem;color:var(--muted)}.quiet-note .text-button{font-size:.76rem;margin-top:18px}.overdue-note{display:flex;align-items:center;gap:8px;color:var(--review);background:color-mix(in srgb,var(--review) 7%,var(--surface));font-size:.8rem;padding:12px 15px;border-radius:9px;width:100%;text-align:left;margin-bottom:15px}.overdue-note>svg:last-child{margin-left:auto}.catalog-toolbar{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:21px 24px 0;margin-bottom:27px}.search-field{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding-bottom:17px;color:var(--muted)}.search-field input{border:0;background:transparent;padding:8px 0;font-size:1rem}.search-field input:focus-visible{outline-offset:1px}.filters{display:flex;align-items:center;gap:10px;padding:19px 0 14px;flex-wrap:wrap;color:var(--muted)}.filters select{width:auto;font-size:.8rem;padding:9px 12px;max-width:260px}.filter-button{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);padding:8px 12px;border-radius:8px;font-size:.8rem}.filter-button.on{background:var(--tint);color:var(--accent);border-color:var(--accent)}.status-tabs{display:flex;gap:22px;overflow-x:auto;scrollbar-width:thin}.status-tabs button{padding:13px 0 14px;font-size:.84rem;border-bottom:2px solid transparent;color:var(--muted);white-space:nowrap}.status-tabs button.active{color:var(--accent);border-color:var(--accent);font-weight:500}.course-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.course-row{display:flex;align-items:center;gap:18px;padding:18px 21px;border-bottom:1px solid var(--line)}.course-row:last-child{border-bottom:0}.course-row:hover{background:color-mix(in srgb,var(--surface-2) 40%,var(--surface))}.course-main{display:flex;align-items:center;gap:15px;flex:1;min-width:0;text-align:left;padding:0}.course-main>span:last-child{min-width:0}.course-title{display:block;font-weight:500;font-size:.9rem;line-height:1.45;overflow-wrap:anywhere}.course-meta{display:block;font-size:.72rem;color:var(--muted);margin-top:5px;line-height:1.5}.important-label{display:inline-block;background:color-mix(in srgb,var(--review) 10%,var(--surface));color:var(--review);font-size:.65rem;margin-left:8px;padding:1px 5px;border-radius:4px;font-weight:400}.row-controls{display:flex;align-items:center;gap:9px;flex-shrink:0}.status-select{font-size:.73rem;padding:7px 25px 7px 10px;width:118px;border-color:transparent;background:var(--surface-2);min-height:34px;font-weight:500}.status-select.jamais_lu{color:var(--muted)}.status-select.a_reviser{color:var(--review);background:color-mix(in srgb,var(--review) 9%,var(--surface))}.status-select.deja_lu{color:var(--read);background:var(--tint)}.status-select.impasse{color:var(--skip);background:color-mix(in srgb,var(--skip) 10%,var(--surface))}.favorite{color:var(--muted)}.favorite.selected{color:var(--review)}.page-footer{display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--line);padding-top:23px;margin-top:45px;color:var(--muted);font-size:.67rem}.mobile-nav{display:none}.overlay{position:fixed;inset:0;background:#071b2860;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:60;animation:fade-in .18s ease}.dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(620px,calc(100vw - 32px));max-height:calc(100dvh - 40px);background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);z-index:61;overflow-y:auto;animation:fade-in .18s ease}.dialog-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:25px 28px;border-bottom:1px solid var(--line)}.dialog-header h2{font-size:1.4rem;line-height:1.3;overflow-wrap:anywhere}.dialog-header p{font-size:.82rem;color:var(--muted);margin-top:9px}.dialog-body,.detail-body{padding:26px 28px}.drawer{inset:0 0 0 auto;transform:none;max-height:100dvh;width:460px;border-radius:0;animation:drawer-in .2s ease}.detail-metadata{display:grid;grid-template-columns:1fr 1.1fr;gap:10px;font-size:.83rem;margin-bottom:27px;padding-bottom:20px;border-bottom:1px solid var(--line)}.detail-metadata>span{color:var(--muted)}.detail-metadata>strong{font-weight:500}.detail-body .field .status-select{width:100%;font-size:.9rem;min-height:44px}.detail-body>.button.secondary{margin-bottom:22px}.source-note{background:var(--surface-2);padding:18px;border-radius:10px;margin:25px 0 16px}.source-note .eyebrow{font-size:.65rem;margin-bottom:9px}.source-note p{font-size:.83rem;margin-bottom:8px;overflow-wrap:anywhere}.source-note small{color:var(--muted);font-size:.68rem}.detail-body>.small{margin-bottom:24px}.confirm{padding:27px;max-width:440px}.confirm h2{font-size:1.3rem;margin-bottom:12px}.confirm p{color:var(--muted);font-size:.9rem}.confirm .actions{justify-content:flex-end;margin-top:23px}.toast{position:fixed;bottom:25px;left:calc(var(--sidebar) + (100vw - var(--sidebar)) / 2);transform:translate(-50%);z-index:80;display:flex;align-items:center;gap:10px;padding:10px 10px 10px 18px;background:var(--text);color:var(--surface);border-radius:12px;box-shadow:var(--shadow);font-size:.85rem;max-width:min(600px,calc(100vw - 32px));min-width:220px}.toast>.icon-button:hover{background:#ffffff20}.toast>svg{flex-shrink:0}.planner-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:23px;font-size:.85rem}.schedule-list{display:flex;flex-direction:column;gap:21px}.schedule-day{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.schedule-day.today{border-color:var(--accent)}.schedule-day-header{display:flex;align-items:center;gap:15px;padding:20px 22px;background:color-mix(in srgb,var(--surface-2) 40%,var(--surface));border-bottom:1px solid var(--line)}.schedule-day-header h2{font-size:1.05rem;text-transform:capitalize;margin-bottom:6px}.day-badge{margin-left:auto;color:var(--accent);background:var(--tint);padding:6px 9px;border-radius:6px;font-size:.7rem;white-space:nowrap}.day-badge.overdue{color:var(--review);background:color-mix(in srgb,var(--review) 8%,var(--surface))}.schedule-course{display:flex;align-items:center;gap:12px;padding:17px 20px;border-bottom:1px solid var(--line)}.schedule-course:last-child{border-bottom:0}.drag-handle{color:var(--muted);cursor:grab;flex-shrink:0}.schedule-controls{display:flex;align-items:center;gap:9px}.schedule-controls input{width:135px;padding:6px;font-size:.75rem;min-height:34px}.order-controls{display:flex;gap:0}.order-controls .icon-button{width:28px;height:30px}.weekday-picker{display:flex;gap:8px;flex-wrap:wrap}.weekday-picker button{border:1px solid var(--line);border-radius:8px;width:calc((100% - 48px) / 7);min-width:44px;padding:10px 0;font-size:.8rem}.weekday-picker button.on{background:var(--tint);border-color:var(--accent);color:var(--accent)}.course-selection{font-size:.82rem;margin:22px 0}.course-selection summary{cursor:pointer;color:var(--accent)}.course-selection>div{max-height:230px;overflow-y:auto;margin-top:12px;padding:10px;background:var(--surface-2);border-radius:8px}.course-selection label{display:flex;align-items:flex-start;gap:10px;padding:8px 0;line-height:1.5}.course-selection input{margin-top:2px}.preview-days{max-height:380px;overflow:auto;margin:0 0 25px}.preview-day{padding:13px 0;border-bottom:1px solid var(--line);font-size:.85rem}.preview-day>strong{text-transform:capitalize}.preview-day>span{float:right;color:var(--muted);font-size:.75rem}.preview-day ul{font-size:.78rem;color:var(--muted);padding-left:20px;line-height:1.65;margin-bottom:0}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.settings-section{background:var(--surface);padding:27px;border:1px solid var(--line);border-radius:var(--radius)}.settings-section h2{margin-bottom:23px}.settings-section>.muted{font-size:.87rem;margin-bottom:19px}.account-line{display:flex;align-items:center;gap:12px;margin-bottom:22px}.account-line strong{font-size:.95rem;font-weight:500}.password-form{border-top:1px solid var(--line);padding-top:22px;margin-bottom:20px}.reset-section>.button{display:flex;margin:12px 0;white-space:normal;text-align:left}.admin-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:23px 0}.admin-toolbar input[type=search]{max-width:450px}.admin-toolbar .checkbox-line{white-space:nowrap}.admin-list{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}.admin-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px 20px;border-bottom:1px solid var(--line)}.admin-row:last-child{border-bottom:0}.admin-row>div:first-child{min-width:0}.admin-row strong{font-size:.86rem;font-weight:500;line-height:1.4;display:block;overflow-wrap:anywhere}.admin-row small{font-size:.71rem;color:var(--muted);display:block;margin-top:5px}.admin-row.archived{background:var(--surface-2)}.auth-page{min-height:100dvh;display:grid;grid-template-columns:1fr 1fr;padding:18px;gap:18px;max-width:1700px;margin:0 auto}.auth-story{background:var(--tint);border-radius:20px;padding:35px clamp(30px,5vw,80px) 30px;display:flex;flex-direction:column;justify-content:space-between;min-height:calc(100dvh - 36px)}.auth-story>.brand{margin-bottom:50px}.auth-story h1{font-size:clamp(3rem,5vw,5.5rem);line-height:1.02;letter-spacing:-.06em}.auth-story p{max-width:35ch;font-size:1rem;color:var(--muted);margin:26px 0 34px}.auth-facts{display:flex;gap:24px;border-top:1px solid color-mix(in srgb,var(--accent) 20%,transparent);padding-top:23px}.auth-facts span{font-size:.72rem;color:var(--muted)}.auth-facts strong{display:block;color:var(--text);font-size:1.5rem;font-weight:500;margin-bottom:2px}.auth-story>small{font-size:.7rem;color:var(--muted);margin-top:50px}.auth-form-wrap{display:flex;align-items:center;justify-content:center;padding:30px}.auth-form-inner{max-width:380px;width:100%}.auth-form-inner h2{font-size:2rem;line-height:1.2;letter-spacing:-.045em}.auth-form-inner>.muted{font-size:.9rem;margin:17px 0 35px}.auth-form-inner form .button{margin-top:8px}.auth-toggle{font-size:.8rem;margin-top:25px;text-align:center;color:var(--muted)}.auth-toggle .text-button{margin-left:5px}.loading-screen{min-height:100dvh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;padding:25px}.loading-screen>p{color:var(--muted);font-size:.9rem}.skeleton{background:var(--surface-2);border-radius:6px;width:180px;height:5px;animation:pulse 1.5s infinite}@keyframes pulse{50%{opacity:.4}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes drawer-in{0%{transform:translate(20px);opacity:0}to{transform:translate(0);opacity:1}}@media(min-width:1600px){:root{--sidebar: 260px}.today-grid{grid-template-columns:minmax(0,1fr) 300px}.course-row{padding:20px 24px}}@media(max-width:1200px){:root{--sidebar: 210px}.sidebar{padding:30px 16px 20px}.brand{font-size:1.3rem}.sidebar-caption{margin-left:43px}.today-grid{grid-template-columns:minmax(0,1fr) 235px;gap:23px}.upcoming-panel{padding-left:20px}.overview-primary{padding:24px}.schedule-course{flex-wrap:wrap}.schedule-controls{margin-left:30px;width:calc(100% - 30px);justify-content:flex-end}.schedule-course .course-main{flex-basis:80%}.page-heading{align-items:flex-start}.page-heading>.button{margin-top:30px}.specialty-tile{padding:15px 12px;gap:10px}.progress-circle{width:90px;height:90px}}@media(max-width:960px){:root{--sidebar: 190px}.sidebar{padding:25px 12px 18px}.nav-item{gap:10px;padding:12px 10px;font-size:.82rem}.topbar{height:67px;padding:0 25px}main#main{padding:32px 25px 24px}.page-heading{flex-wrap:wrap;gap:15px}.page-heading>.button{margin-top:0}.today-grid{grid-template-columns:minmax(0,1fr)}.upcoming-panel{border-left:0;padding-left:0;display:grid;grid-template-columns:1fr 1fr;gap:10px 20px;margin-top:12px}.upcoming-panel>.section-heading{grid-column:1/-1}.quiet-note{margin-top:0}.overview{grid-template-columns:1fr 1fr}.overview-primary{padding:20px}.large-number{font-size:3rem}.progress-circle{width:75px;height:75px}.status-summary{padding:10px}.summary-item{padding:10px;grid-template-columns:15px 1fr;gap:3px 8px}.summary-item svg{display:none}.summary-item strong{font-size:1.35rem}.summary-item .status-marker{width:14px;height:14px}.summary-item>span:not(.status-marker){font-size:.68rem}.course-row{gap:12px;padding:16px}.course-main{gap:10px}.row-controls{gap:4px}.status-select{width:108px;font-size:.69rem}.settings-grid{grid-template-columns:1fr}.page-footer{font-size:.63rem}.auth-facts{gap:20px}.admin-toolbar{flex-wrap:wrap}}@media(max-width:700px){:root{--sidebar: 0px}.sidebar{display:none}.main-shell{margin-left:0}.topbar{height:62px;padding:0 20px}.topbar>span{font-size:.74rem}.topbar-tools{gap:9px}.save-state{font-size:.64rem}.breadcrumb{margin:0 7px}main#main{padding:28px 20px calc(94px + env(safe-area-inset-bottom))}.page-heading{margin-bottom:26px;gap:16px}.page-heading .eyebrow{font-size:.65rem;margin-bottom:13px}.page-heading h1{font-size:2.55rem;letter-spacing:-.055em}.page-heading p:not(.eyebrow){font-size:.84rem;margin-top:12px}.page-heading>.button{min-height:40px;font-size:.8rem;padding:10px 13px}.overview{grid-template-columns:1fr;margin-bottom:27px}.overview-primary{padding:23px}.large-number{font-size:3.3rem}.progress-circle{width:88px;height:88px}.status-summary{border-left:0;border-top:1px solid var(--line);padding:10px;grid-template-columns:repeat(4,1fr)}.summary-item{display:flex;flex-direction:column;gap:5px;text-align:center;padding:10px 2px}.summary-item .status-marker{width:13px;height:13px}.summary-item strong{font-size:1.2rem}.summary-item>span:not(.status-marker){font-size:.62rem;white-space:nowrap}.today-grid{gap:20px}.section-heading h2{font-size:1.08rem}.section-heading .text-button{font-size:.74rem}.count-label{font-size:.66rem}.empty{padding:34px 20px}.empty h3{font-size:1.1rem}.empty p,.empty .button{font-size:.8rem}.specialty-grid{gap:9px}.specialty-tile{padding:14px 12px;gap:8px}.specialty-index{display:none}.specialty-tile strong{font-size:.8rem}.specialty-tile>svg{width:16px}.specialty-tile>div>span{font-size:.65rem}.upcoming-panel{grid-template-columns:1fr}.quiet-note{margin-top:12px}.catalog-toolbar{padding:16px 14px 0;margin-bottom:20px}.search-field{padding-bottom:12px}.search-field input{font-size:.87rem}.filters{padding:14px 0 10px;gap:8px}.filters>svg{display:none}.filters select{max-width:none;flex:1;width:calc(50% - 5px);font-size:.72rem;padding:9px 7px}.filter-button{font-size:.74rem;padding:7px 10px}.status-tabs{gap:19px}.status-tabs button{font-size:.76rem;padding:12px 0}.course-row{display:block;padding:15px}.course-main{gap:11px}.course-title{font-size:.87rem}.course-meta{font-size:.68rem;line-height:1.5;margin-top:5px}.row-controls{justify-content:flex-end;gap:10px;margin-top:11px;padding-left:29px}.status-select{width:118px;font-size:.73rem}.course-row .favorite{height:32px;width:32px}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-top:1px solid var(--line);z-index:30;padding:8px 8px calc(9px + env(safe-area-inset-bottom));justify-content:space-around;min-height:67px}.mobile-nav a{display:flex;align-items:center;flex-direction:column;gap:4px;color:var(--muted);font-size:.62rem;padding:4px 12px;min-width:62px}.mobile-nav a.active{color:var(--accent)}.page-footer{flex-direction:column;gap:7px;margin-top:30px;padding-top:17px}.dialog{max-height:calc(100dvh - 24px);width:calc(100vw - 24px);border-radius:14px}.dialog-header{padding:20px}.dialog-header h2{font-size:1.23rem}.dialog-header p{font-size:.76rem}.dialog-body,.detail-body{padding:21px}.drawer{width:100%;top:auto;bottom:0;max-height:92dvh;border-radius:18px 18px 0 0;animation:fade-in .2s}.detail-body>.small{font-size:.75rem}.toast{left:50%;bottom:calc(80px + env(safe-area-inset-bottom));font-size:.8rem;max-width:calc(100vw - 28px)}.planner-toolbar{align-items:flex-start;flex-direction:column;gap:12px;font-size:.78rem}.planner-toolbar .actions{align-self:flex-end}.schedule-day-header{padding:15px;gap:11px}.schedule-day-header h2{font-size:.92rem}.schedule-day-header .small{font-size:.68rem}.day-badge{font-size:.6rem;padding:5px 6px}.schedule-course{padding:15px 13px;gap:8px}.schedule-course>.drag-handle{display:none}.schedule-course .course-main{flex-basis:100%}.schedule-controls{margin:6px 0 0;width:100%;flex-wrap:wrap;justify-content:space-between;gap:6px}.schedule-controls .status-select{width:104px;font-size:.68rem}.schedule-controls input{width:121px;font-size:.7rem}.order-controls .icon-button{width:25px}.weekday-picker{gap:6px}.weekday-picker button{width:calc((100% - 36px) / 7);min-width:35px;font-size:.73rem}.form-grid{gap:0 12px}.form-grid .field{font-size:.76rem}.form-grid input,.form-grid select{padding:10px 7px;font-size:.82rem}.settings-section{padding:22px}.admin-row{padding:15px}.admin-row .actions{gap:1px;flex-wrap:nowrap}.admin-row strong{font-size:.8rem}.admin-row small{font-size:.65rem}.admin-toolbar input[type=search]{max-width:none}.auth-page{grid-template-columns:1fr;padding:0;gap:0}.auth-story{min-height:0;padding:24px;background:var(--tint);border-radius:0}.auth-story>.brand{margin:0 0 26px}.auth-story>div>.eyebrow{display:none}.auth-story h1{font-size:2.4rem;line-height:1.05}.auth-story h1 br:nth-child(2){display:none}.auth-story p{font-size:.82rem;margin:16px 0 0;max-width:44ch}.auth-facts,.auth-story>small{display:none}.auth-form-wrap{padding:30px 24px 40px}.auth-form-inner h2{font-size:1.55rem}.auth-form-inner .eyebrow{font-size:.63rem;margin-bottom:12px}.auth-form-inner>.muted{font-size:.8rem;margin:13px 0 24px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}@media(max-width:700px){.filters{display:grid;grid-template-columns:1fr 1fr}.filters select{width:100%;max-width:100%}.filter-button{justify-content:center}}
