:root{--background:#fff;--foreground:#202429;--card:#fff;--card-foreground:#202429;--popover:#fff;--popover-foreground:#202429;--primary:#2745b8;--primary-foreground:#fff;--secondary:#f0f0f1;--secondary-foreground:#202429;--muted:#f4f4f5;--muted-foreground:#595f68;--accent:#eef0fb;--accent-foreground:#2745b8;--border:#d5d7dc;--input:#858b96;--ring:#2745b8;--control-border:#858b96;--radius:.125rem;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--layer-sticky:10;--layer-popover:50;--layer-backdrop:70;--layer-modal:80;--layer-toast:90}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#191b20;--foreground:#f2f2f0;--card:#202329;--card-foreground:#f2f2f0;--popover:#252931;--popover-foreground:#f2f2f0;--primary:#bac8ff;--primary-foreground:#1b2140;--secondary:#2c3039;--secondary-foreground:#f1f1ef;--muted:#24272e;--muted-foreground:#b9bdc5;--accent:#303b60;--accent-foreground:#c6d1ff;--border:#454a55;--input:#8a929f;--control-border:#8a929f;--ring:#bac8ff}*{box-sizing:border-box}html{scroll-padding-top:1rem}body{font-family:var(--font-body),"Segoe UI",sans-serif;color:var(--foreground);background:var(--background);margin:0;font-size:1rem;line-height:1.5}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--ring);outline-offset:3px}input:focus-visible,textarea:focus-visible{outline-offset:-2px}h1,h2,h3,p{margin:0}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}a{color:inherit}.skip-link{z-index:var(--layer-toast);background:var(--primary);color:var(--primary-foreground);padding:.75rem 1rem;position:fixed;top:.5rem;left:.5rem;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.topbar{border-bottom:1px solid var(--border);align-items:center;gap:1.5rem;height:88px;padding:0 2rem;display:flex}.brand{letter-spacing:-.035em;flex-shrink:0;align-items:center;gap:.75rem;font-size:2rem;font-weight:800;line-height:1;text-decoration:none;display:inline-flex}.brand-mark{background:var(--primary);width:40px;height:40px;color:var(--primary-foreground);border-radius:.125rem;place-items:center;display:grid}.brand-dot{color:var(--primary)}.brand-description{color:var(--muted-foreground);font-size:.875rem}.header-actions{align-items:center;gap:.75rem;margin-left:auto;display:flex}.global-search{border:1px solid var(--control-border);background:var(--background);min-width:264px;min-height:44px;color:var(--foreground);border-radius:.125rem;align-items:center;gap:.75rem;padding:.5rem 1rem;font-size:.875rem;display:flex}.global-search kbd{font:500 .75rem var(--font-body),sans-serif;color:var(--muted-foreground);margin-left:auto}.icon-button,.favorite-toggle{background:var(--background);width:44px;min-width:44px;height:44px;color:var(--foreground);border-radius:.125rem;justify-content:center;align-items:center;display:inline-flex}.icon-button{border:1px solid var(--control-border)}.icon-button:hover,.tool-button:hover,.quiet-button:hover,.global-search:hover{background:var(--accent)}.workspace{max-width:1920px;margin:auto}.schedule-main{min-width:0;padding:2rem 2rem 1rem}.page-heading{justify-content:space-between;align-items:flex-start;gap:1.5rem;margin-bottom:1.5rem;display:flex}h1{letter-spacing:-.04em;font-size:3rem;font-weight:800;line-height:1.1}.university-description{color:var(--muted-foreground);max-width:65ch;margin-top:.75rem;font-size:.875rem;line-height:1.6}.semester-badge{color:var(--muted-foreground);white-space:nowrap;align-items:center;gap:.5rem;padding-top:.5rem;font-size:.875rem;display:flex}.semester-badge>span{color:var(--foreground);font-variant-numeric:tabular-nums}.selection-bar{border-top:1px solid var(--foreground);border-bottom:1px solid var(--border);align-items:center;gap:1.5rem;padding:1rem 0;display:flex}.university-picker{flex-direction:column;gap:.25rem;min-width:184px;display:flex}.university-picker>span,.field-label{color:var(--muted-foreground);font-size:.875rem;font-weight:500}.university-picker select{width:100%;min-height:44px;color:var(--foreground);background:var(--background);border:1px solid var(--control-border);cursor:pointer;border-radius:.125rem;padding:.5rem 2rem .5rem .75rem;font-size:1rem;font-weight:650}.group-picker{flex-direction:column;gap:.25rem;min-width:0;display:flex}.group-line{align-items:center;gap:.5rem;display:flex}.group-selector{border:1px solid var(--control-border);background:var(--background);text-align:left;border-radius:.125rem;align-items:center;gap:.75rem;min-width:0;min-height:44px;padding:.5rem .75rem;font-size:1rem;font-weight:750;display:flex}.group-selector>span{overflow-wrap:anywhere}.group-selector>svg{flex-shrink:0}.group-selector:hover{background:var(--accent)}.favorite-toggle{color:var(--muted-foreground)}.favorite-toggle:hover,.is-favorite{color:#956111;background:#fff4d9}[data-theme=dark] .favorite-toggle:hover,[data-theme=dark] .is-favorite{color:#ffda86;background:#44371c}.schedule-tools{align-items:center;gap:.5rem;display:flex}.tool-button{white-space:nowrap;border-radius:.125rem;justify-content:center;align-items:center;gap:.5rem;min-height:44px;padding:.5rem .75rem;font-size:.875rem;font-weight:650;display:flex}.tool-button[data-state=open]{background:var(--accent);color:var(--accent-foreground)}.favorites-count{background:var(--accent);min-width:24px;height:24px;color:var(--accent-foreground);border-radius:.125rem;place-items:center;padding:0 .25rem;font-size:.75rem;display:grid}.calendar-popover,.favorites-popover{z-index:var(--layer-popover);border:1px solid var(--control-border);width:352px;max-width:calc(100vw - 24px);box-shadow:none;background:var(--popover);color:var(--popover-foreground);border-radius:.125rem;padding:1rem}.popover-title{margin-bottom:.75rem;font-size:1rem;font-weight:750}.mini-calendar{--cell-size:40px;background:0 0;width:100%;padding:0}.mini-calendar [data-slot=button]{font-size:.875rem}.calendar-week{background:var(--accent)}.calendar-week button{border-radius:.125rem}.calendar-week:first-child{border-radius:.125rem 0 0 .25rem}.calendar-week:last-child{border-radius:0 .25rem .25rem 0}.favorite-group{text-align:left;border-radius:.125rem;align-items:center;gap:.75rem;width:100%;min-height:44px;padding:.75rem;font-size:.875rem;display:flex}.favorite-group>span{overflow-wrap:anywhere;flex:1}.favorite-group.selected,.favorite-group:hover{background:var(--accent);color:var(--accent-foreground)}.favorite-add{min-height:44px;color:var(--primary);align-items:center;gap:.5rem;margin-top:.75rem;font-size:.875rem;display:flex}.sidebar-hint{color:var(--muted-foreground);font-size:.875rem;line-height:1.6}.next-strip{width:100%;min-height:48px;color:var(--foreground);border-bottom:1px solid var(--border);text-align:left;align-items:center;gap:1rem;padding:.75rem 0;font-size:.875rem;display:flex}.next-strip-label{color:var(--primary);white-space:nowrap;align-items:center;gap:.5rem;font-size:.875rem;font-weight:650;display:flex}.next-strip>strong{white-space:nowrap;font-variant-numeric:tabular-nums}.next-strip-subject{overflow-wrap:anywhere;flex:1}.next-strip>svg:last-child{flex-shrink:0;margin-left:auto}.next-strip:not(.quiet):hover{background:var(--muted)}.next-strip.quiet,.next-strip.quiet .next-strip-label{color:var(--muted-foreground)}.week-toolbar{justify-content:space-between;align-items:center;gap:1.5rem;padding:1.5rem 0 1rem;display:flex}.week-title{align-items:center;gap:.75rem;min-width:0;display:flex}.week-title h2{letter-spacing:-.035em;font-size:2rem;font-weight:800;line-height:1.2}.year-label{letter-spacing:0;color:var(--muted-foreground);margin-left:.75rem;font-size:.875rem;font-weight:500;display:inline-block}.week-count{color:var(--muted-foreground);white-space:nowrap;font-size:.875rem}.week-navigation{align-items:center;gap:1rem;display:flex}.week-controls{align-items:center;gap:.25rem;display:flex}.quiet-button{border:1px solid var(--control-border);background:var(--background);border-radius:.125rem;justify-content:center;align-items:center;gap:.5rem;min-height:44px;padding:.5rem 1rem;font-size:.875rem;font-weight:650;display:inline-flex}.today-button{border-color:#0000}.view-switch{background:var(--muted);border-radius:.125rem;gap:.25rem;height:44px;padding:.25rem}.view-switch button{min-height:36px;color:var(--muted-foreground);box-shadow:none;border-radius:.125rem;gap:.5rem;padding:.5rem .75rem;font-size:.875rem;font-weight:650;display:flex}.view-switch button[aria-selected=true]{background:var(--foreground);color:var(--background);box-shadow:none}.view-switch svg{width:16px;height:16px}.schedule-options{justify-content:space-between;align-items:center;gap:1rem;min-height:44px;margin-bottom:1rem;display:flex}.legend{color:var(--muted-foreground);flex-wrap:wrap;gap:1rem;font-size:.875rem;display:flex}.legend>span{align-items:center;gap:.5rem;display:flex}.legend>span:before{content:"";background:var(--lesson-accent);border-radius:2px;width:8px;height:8px}.lecture{--lesson-accent:#275cc8;--lesson-bg:#eff4ff;--lesson-text:#284b93;--lesson-border:#9bb4e9}.practice{--lesson-accent:#147557;--lesson-bg:#edf7f2;--lesson-text:#205e49;--lesson-border:#95c8b5}.lab{--lesson-accent:#84509b;--lesson-bg:#f7f0fb;--lesson-text:#704083;--lesson-border:#c5a4d5}.exam{--lesson-accent:#966018;--lesson-bg:#fff6e6;--lesson-text:#805019;--lesson-border:#d9b678}[data-theme=dark] .lecture{--lesson-accent:#93b5ff;--lesson-bg:#1d3156;--lesson-text:#c1d4ff;--lesson-border:#5b7bb8}[data-theme=dark] .practice{--lesson-accent:#7fd3b3;--lesson-bg:#1a3830;--lesson-text:#acdcca;--lesson-border:#568d79}[data-theme=dark] .lab{--lesson-accent:#d1a5ed;--lesson-bg:#362344;--lesson-text:#e0c3f1;--lesson-border:#966eb0}[data-theme=dark] .exam{--lesson-accent:#edc785;--lesson-bg:#3b301d;--lesson-text:#efd4a2;--lesson-border:#a68b5b}.source-controls{align-items:center;gap:.75rem;display:flex}.subgroup-select{border-color:var(--control-border);width:auto;max-width:260px;min-height:44px;box-shadow:none;border-radius:.125rem;font-size:.875rem}.refresh-button{min-height:44px;color:var(--muted-foreground);white-space:nowrap;border-radius:.125rem;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.875rem;font-weight:600;display:flex}.refresh-button:hover:not(:disabled){background:var(--accent);color:var(--accent-foreground)}.schedule-scroll{border:1px solid var(--border);border-radius:.125rem;overflow-x:auto}.week-grid{min-width:988px;display:grid}.grid-row{display:contents}.time-header,.day-header{border-bottom:1px solid var(--border);min-height:112px;padding:1rem}.time-header{color:var(--muted-foreground);flex-direction:column;justify-content:center;align-items:center;gap:.5rem;font-size:.75rem;display:flex}.day-header{border-left:1px solid var(--border);background:var(--background);position:relative}.day-header>span{color:var(--muted-foreground);font-size:.8125rem;font-weight:600;display:block}.day-header>strong{font-variant-numeric:tabular-nums;letter-spacing:-.04em;margin-top:.5rem;font-size:2.75rem;font-weight:800;line-height:1.1;display:block}.day-header.today{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary)}.day-header.today>span{color:var(--primary-foreground)}.day-header>small{font-size:.75rem;font-weight:600;position:absolute;bottom:1rem;right:1rem}.time-cell,.grid-cell{border-bottom:1px solid var(--border);min-height:136px}.grid-row:last-child>.time-cell,.grid-row:last-child>.grid-cell{border-bottom:0}.time-cell{font-variant-numeric:tabular-nums;color:var(--muted-foreground);background:var(--background);flex-direction:column;align-items:center;gap:.25rem;padding:1rem .5rem;font-size:.75rem;display:flex}.time-cell>strong{color:var(--foreground);font-size:.875rem;font-weight:750}.time-cell>small{margin-top:.5rem;font-size:.75rem}.grid-cell{border-left:1px solid var(--border);flex-direction:column;gap:.5rem;padding:.5rem;display:flex}.lesson-card{text-align:left;width:100%;height:100%;min-height:120px;color:var(--foreground);background:var(--lesson-bg);border:1px solid #0000;border-radius:.125rem;flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.lesson-card:hover{border-color:var(--lesson-accent)}.card-top{color:var(--lesson-text);justify-content:space-between;align-items:center;gap:.5rem;display:flex}.lesson-type{font-size:.75rem;font-weight:750}.lesson-subject{letter-spacing:-.01em;overflow-wrap:anywhere;font-size:.875rem;font-weight:750;line-height:1.5;display:block}.card-clock{color:var(--lesson-text);font-variant-numeric:tabular-nums;font-size:.75rem;font-weight:650}.lesson-meta{color:var(--lesson-text);flex-direction:column;gap:.25rem;margin-top:auto;display:flex}.lesson-meta>span{overflow-wrap:anywhere;align-items:flex-start;gap:.25rem;font-size:.75rem;line-height:1.55;display:flex}.lesson-meta svg{flex-shrink:0;margin-top:2px}.variants-link{text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}.subgroup-label{font-weight:650}.agenda{border-top:1px solid var(--foreground)}.agenda-day{border-bottom:1px solid var(--border);grid-template-columns:200px minmax(0,1fr);gap:2rem;padding:1.5rem 0;display:grid}.agenda-date{align-items:flex-start;gap:1rem;padding-top:.75rem;display:flex}.agenda-date>strong{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:3rem;font-weight:800;line-height:1}.agenda-date h3{font-size:.875rem;font-weight:750}.agenda-date span{color:var(--muted-foreground);font-size:.875rem}.agenda-today .agenda-date>strong{color:var(--primary)}.agenda-lessons{flex-direction:column;gap:.75rem;min-width:0;display:flex}.agenda-row{align-items:stretch;gap:1rem;display:flex}.agenda-time{font-variant-numeric:tabular-nums;flex-direction:column;gap:.25rem;min-width:56px;padding-top:.75rem;font-size:.875rem;display:flex}.agenda-time>span{color:var(--muted-foreground);font-size:.75rem}.agenda-row .lesson-card{min-height:0;padding:1rem}.agenda-row .lesson-meta{flex-flow:wrap;gap:.5rem 1rem}.no-lessons{color:var(--muted-foreground);padding-top:.75rem;font-size:.875rem}.schedule-footer{color:var(--muted-foreground);justify-content:space-between;gap:1.5rem;padding:1.5rem 0;font-size:.75rem;line-height:1.8;display:flex}.schedule-footer>div{flex-direction:column;gap:.25rem;display:flex}.schedule-footer>a{text-underline-offset:4px;white-space:nowrap;align-self:flex-start;align-items:center;gap:.5rem;min-height:44px;font-size:.875rem;text-decoration:underline;display:flex}.initial-state{text-align:center;border:1px solid var(--border);border-radius:.125rem;flex-direction:column;justify-content:center;align-items:center;gap:1rem;min-height:320px;padding:2rem;display:flex}.initial-state>svg,.empty-week>svg{color:var(--primary);flex-shrink:0}.initial-state h2{font-size:1.5rem}.initial-state p{color:var(--muted-foreground);max-width:50ch;font-size:1rem}.empty-week{background:var(--muted);border-radius:.125rem;align-items:center;gap:1rem;margin-bottom:1rem;padding:1.5rem;display:flex}.empty-week strong{font-size:1rem}.empty-week p{color:var(--muted-foreground);margin-top:.5rem;font-size:.875rem}.empty-week button{flex-shrink:0;margin-left:auto}.status-banner{color:#775018;background:#fff3dc;border:1px solid #c7a66b;border-radius:.125rem;align-items:center;gap:.75rem;margin-bottom:1rem;padding:1rem;font-size:.875rem;display:flex}.status-banner>svg{flex-shrink:0}[data-theme=dark] .status-banner{color:#efd4a2;background:#3b301d;border-color:#a68b5b}.primary-button{background:var(--primary);min-height:44px;color:var(--primary-foreground);border-radius:.125rem;padding:.75rem 1rem;font-size:.875rem;font-weight:750}.primary-button:hover{filter:brightness(.94)}.schedule-loading{grid-template-columns:repeat(6,minmax(0,1fr));gap:.75rem;display:grid}.schedule-skeleton{border-radius:.125rem;height:144px}[data-slot=dialog-overlay]{z-index:var(--layer-backdrop)}.search-dialog,.lesson-dialog{z-index:var(--layer-modal);border:1px solid var(--control-border);width:100%;max-width:min(640px,100vw - 32px);max-height:calc(100dvh - 32px);box-shadow:none;background:var(--popover);border-radius:.125rem;flex-direction:column;gap:1rem;padding:2rem;display:flex;overflow:hidden}.search-dialog>[data-slot=dialog-title],.lesson-dialog>[data-slot=dialog-title]{letter-spacing:-.025em;flex-shrink:0;padding-right:2rem;font-size:1.5rem;font-weight:800;line-height:1.35}.search-dialog>[data-slot=dialog-description],.lesson-dialog>[data-slot=dialog-description]{color:var(--muted-foreground);flex-shrink:0;font-size:.875rem;line-height:1.6}.dialog-close{width:44px;height:44px;color:var(--muted-foreground);border-radius:.125rem;place-items:center;display:grid;position:absolute;top:1rem;right:1rem}.dialog-close:hover{background:var(--accent)}.group-search-command{border:1px solid var(--control-border);border-radius:.125rem;height:auto;min-height:0}.group-search-command [data-slot=command-input-wrapper]{background:var(--muted);flex-shrink:0;height:52px;padding:0 1rem}.group-search-command [data-slot=command-input-wrapper]:focus-within{box-shadow:inset 0 0 0 2px var(--ring)}.group-search-command input:focus-visible{box-shadow:none;outline:none}.group-search-command [data-slot=command-input]{height:52px;font-size:1rem}.group-search-command input::placeholder{color:var(--muted-foreground);opacity:1}.group-search-command .group-results{overscroll-behavior:contain;scrollbar-gutter:stable;min-height:0;max-height:min(380px,50dvh);padding:.25rem;overflow-y:auto}.group-results [data-slot=command-item]{cursor:pointer;gap:.75rem;min-height:48px;padding:.75rem;font-size:.875rem}.group-current{color:var(--muted-foreground);margin-left:auto;font-size:.75rem}.recent-groups{flex-wrap:wrap;flex-shrink:0;gap:.5rem;display:flex}.recent-groups>span{color:var(--muted-foreground);flex-basis:100%;font-size:.875rem}.lesson-details{min-height:0;padding-right:.25rem;overflow-y:auto}.lesson-detail-item{border-top:1px solid var(--border);padding:1.5rem 0}.detail-subject{margin-bottom:.75rem;font-size:1rem;font-weight:750;line-height:1.5}.detail-type{color:var(--lesson-text);background:var(--lesson-bg);border-radius:.125rem;padding:.25rem .5rem;font-size:.75rem;font-weight:700;display:inline-block}.lesson-detail-item p{align-items:center;gap:.75rem;margin-top:.75rem;font-size:.875rem;line-height:1.6;display:flex}.lesson-detail-item p>svg{color:var(--muted-foreground);flex-shrink:0}.note-label{align-items:center;gap:.5rem;margin:1.5rem 0 .5rem;font-size:.875rem;font-weight:650;display:flex}.lesson-detail-item textarea{resize:vertical;width:100%;min-height:96px;color:var(--foreground);background:var(--background);border:1px solid var(--control-border);border-radius:.125rem;padding:.75rem 1rem;font-size:1rem;line-height:1.6}.lesson-detail-item textarea::placeholder{color:var(--muted-foreground);opacity:1}.lesson-detail-item small{color:var(--muted-foreground);overflow-wrap:anywhere;margin-top:.75rem;font-size:.75rem;display:block}.note-footer{flex-shrink:0;justify-content:space-between;align-items:center;gap:1rem;display:flex}.note-footer>span{color:var(--muted-foreground);font-size:.75rem}.toast{z-index:var(--layer-toast);background:var(--foreground);max-width:calc(100vw - 32px);color:var(--background);border-radius:.125rem;align-items:center;gap:.75rem;padding:1rem 1.5rem;font-size:.875rem;display:flex;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%)}.spinning{animation:1.5s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (min-width:1600px){.schedule-main{padding:2rem 3rem 1rem}.topbar{padding:0 3rem}.lesson-subject{font-size:1rem}.lesson-meta>span{font-size:.875rem}.grid-cell{padding:.75rem}.day-header>strong{font-size:3rem}}@media (max-width:1100px){.topbar{padding:0 1.5rem}.schedule-main{padding:1.5rem}.brand-description{display:none}.selection-bar{gap:1rem}.university-picker{min-width:160px}.schedule-tools{gap:0}.tool-button{padding:.5rem}.week-toolbar{flex-wrap:wrap}.week-navigation{margin-left:auto}.week-title h2{font-size:1.75rem}.agenda-day{grid-template-columns:170px minmax(0,1fr);gap:1.5rem}.group-selector{font-size:.875rem}}@media (max-width:800px){.topbar{gap:.5rem;height:64px;padding:0 1rem}.brand{font-size:1.75rem}.brand-mark{display:none}.header-actions{gap:.25rem}.global-search{justify-content:center;width:44px;min-width:44px;padding:.5rem}.global-search .search-label,.global-search kbd{display:none}.schedule-main{padding:1.5rem 1rem 1rem}.page-heading{gap:1rem;margin-bottom:1rem}h1{font-size:1.75rem}.university-description,.semester-badge{display:none}.selection-bar{grid-template-columns:minmax(0,1fr) minmax(0,1.55fr);gap:.5rem 1rem;padding:.75rem 0;display:grid}.university-picker{min-width:0}.university-picker select{padding-left:.5rem;font-size:.875rem}.group-line{gap:.25rem}.group-selector{flex:1;gap:.5rem;padding:.5rem;font-size:.875rem}.group-selector>svg:first-child{display:none}.favorite-toggle{width:44px;min-width:44px}.schedule-tools{gap:.25rem;margin:0;padding:0}.tool-button{width:44px;min-width:44px;height:44px;padding:.5rem}.tool-button>span{display:none}.next-strip{flex-wrap:wrap;align-items:flex-start;gap:.5rem;padding:.75rem 0}.next-strip>strong{margin-left:auto}.next-strip-subject{flex-basis:calc(100% - 32px)}.next-strip.quiet{flex-wrap:nowrap;font-size:.8125rem}.next-strip.quiet>.next-strip-label{font-size:.8125rem}.week-toolbar{gap:1rem;padding:1.5rem 0 .75rem}.week-title{flex-wrap:wrap;gap:.5rem}.week-title h2{font-size:1.5rem}.year-label{margin-left:.5rem;font-size:.875rem}.week-count{font-size:.8125rem}.week-navigation{justify-content:space-between;gap:.5rem;width:100%;margin:0}.week-controls{gap:0}.today-button{padding:.5rem}.view-switch button{gap:.25rem;padding:.5rem;font-size:.8125rem}.view-switch svg{width:14px;height:14px}.schedule-options{flex-wrap:wrap;align-items:flex-start;gap:.75rem;margin-bottom:.75rem}.legend{display:none}.source-controls{justify-content:space-between;gap:.5rem;width:100%}.refresh-button{margin-left:auto;padding:.5rem}.subgroup-select{max-width:calc(100% - 110px);font-size:.8125rem}.schedule-footer{flex-direction:column;gap:.5rem;padding:1.5rem 0}.schedule-footer>a{align-self:flex-start}.agenda-day{padding:1.5rem 0;display:block}.agenda-date{align-items:center;gap:.75rem;margin-bottom:1rem;padding:0}.agenda-date>strong{font-size:2.5rem}.agenda-date h3{font-size:1rem}.agenda-date span{font-size:.8125rem}.agenda-row{gap:.75rem}.agenda-time{min-width:48px;font-size:.875rem}.agenda-row .lesson-card{padding:.75rem}.agenda-row .lesson-subject{font-size:1rem}.agenda-row .lesson-meta{flex-direction:column;gap:.25rem}.agenda-row .lesson-meta>span{font-size:.8125rem}.agenda-lessons{gap:.75rem}.no-lessons{padding:0}.initial-state{min-height:280px;padding:1.5rem}.empty-week{flex-wrap:wrap;align-items:flex-start;padding:1rem}.empty-week>div{flex:1;min-width:200px}.empty-week button{margin-left:0}.schedule-loading{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-skeleton{height:136px}.search-dialog,.lesson-dialog{max-width:calc(100vw - 24px);padding:1.5rem}.search-dialog>[data-slot=dialog-title],.lesson-dialog>[data-slot=dialog-title]{font-size:1.25rem}.group-current{display:none}.group-results [data-slot=command-item]{font-size:.875rem}.group-search-command .group-results{max-height:45dvh}.note-footer{gap:.5rem}.note-footer>span{max-width:160px}.toast{padding:.75rem 1rem;bottom:1rem}.calendar-popover,.favorites-popover{max-width:calc(100vw - 24px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.brand,.page-heading h1,.week-title h2,.day-header>strong,.agenda-date>strong{font-family:var(--font-display),"Arial Narrow",sans-serif;letter-spacing:-.02em;font-weight:750}.brand{letter-spacing:.005em;text-transform:none;font-size:2.5rem}.brand-logo{width:200px;height:auto;display:block}.brand-mark,.brand-dot{display:none}.brand-description{border-left:1px solid var(--border);padding-left:1rem;font-size:.875rem}.page-heading h1{text-transform:uppercase;letter-spacing:.005em;font-size:3rem;font-weight:650}.week-title h2{letter-spacing:0;font-size:2.25rem;font-weight:650}.year-label{font-family:var(--font-body),sans-serif}.topbar{border-bottom:2px solid var(--foreground);height:80px}.selection-bar{border-top:0;padding-top:0}.university-picker select,.group-selector{border:0;border-bottom:1px solid var(--control-border);background:0 0;border-radius:0;padding-left:0}.group-selector{min-width:200px}.global-search{border-color:var(--border);background:var(--muted)}.view-switch{border-bottom:1px solid var(--control-border);background:0 0;border-radius:0;padding:0}.view-switch button{border-radius:0;min-height:44px;padding:.5rem .75rem}.view-switch button[aria-selected=true]{background:var(--primary);color:var(--primary-foreground)}.schedule-scroll{border-color:var(--control-border);border-radius:0}.day-header{min-height:116px}.day-header>strong{font-size:3.25rem;font-weight:650}.day-header>span{font-family:var(--font-display),sans-serif;font-size:1rem;font-weight:500}.grid-cell{background:var(--background);padding:.75rem}.today-column{background:var(--accent)}.lesson-card{background:0 0;border:0;border-radius:0;min-height:124px;padding:.25rem 0}.lesson-card:hover{background:var(--muted);outline:1px solid var(--control-border);outline-offset:4px}.lesson-subject{font-size:1rem;font-weight:700;line-height:1.35}.lesson-type{border:1px solid var(--lesson-accent);color:var(--lesson-text);padding:.25rem .5rem;font-size:.75rem;font-weight:700;line-height:1.2}.lesson-meta{color:var(--muted-foreground);gap:.25rem}.lesson-meta>span{font-size:.8125rem}.card-top{margin-bottom:.25rem}.agenda-day{grid-template-columns:184px minmax(0,1fr)}.agenda-date>strong{font-size:3.5rem;font-weight:650}.agenda-row{padding:.25rem 0}.agenda-row .lesson-card{border-bottom:1px solid var(--border);min-height:0;padding:.5rem 0 .75rem}.agenda-row .lesson-subject{font-size:1.125rem}.agenda-row .lesson-type{font-size:.75rem}.agenda-row .lesson-meta>span{font-size:.875rem}.search-dialog>[data-slot=dialog-title],.lesson-dialog>[data-slot=dialog-title]{font-family:var(--font-display),sans-serif;letter-spacing:0;font-size:1.75rem;font-weight:650}.group-results [data-slot=command-item]{content-visibility:auto;contain-intrinsic-size:auto 48px;font-size:1rem}.search-dialog{transition:none!important;animation:none!important}.calendar-popover{padding:.75rem}.mini-calendar{--cell-size:44px}.calendar-popover,.favorites-popover{max-height:min(480px,var(--radix-popover-content-available-height,calc(100dvh - 96px)));overscroll-behavior:contain;overflow-y:auto}.view-switch button{transition:none}@media (max-width:800px){.week-navigation{flex-wrap:wrap}.view-switch button{padding:.5rem .25rem;font-size:.875rem}}@media (min-width:1600px){.day-header>strong{font-size:3.5rem}.lesson-subject{font-size:1.0625rem}}@media (max-width:800px){.topbar{height:64px}.brand,.page-heading h1{font-size:2rem}.page-heading{margin-bottom:1rem}.schedule-main{padding-top:1rem}.group-selector{min-width:0}.week-title h2{font-size:1.75rem}.week-toolbar{padding-top:1rem}.next-strip{font-size:.875rem}.agenda-day{padding:1.25rem 0;display:block}.agenda-date>strong{font-size:3rem}.agenda-date h3{font-family:var(--font-display),sans-serif;font-size:1.125rem;font-weight:500}.agenda-date{gap:.75rem;margin-bottom:.75rem}.agenda-row .lesson-card{padding:.5rem 0 .75rem}.agenda-row .lesson-subject{font-size:1.0625rem}.agenda-row .lesson-meta>span{font-size:.875rem}.agenda-row{gap:1rem}.search-dialog>[data-slot=dialog-title],.lesson-dialog>[data-slot=dialog-title]{font-size:1.5rem}}:root{--change-warning:#805019;--change-added:#205e49;--change-teacher:#704083;--change-cancelled:#991b1b;--change-cancelled-bg:#fff5f5}:root[data-theme=dark]{--change-warning:#efd4a2;--change-added:#acdcca;--change-teacher:#e0c3f1;--change-cancelled:#fca5a5;--change-cancelled-bg:#231114}.selection-bar{flex-wrap:wrap}.card-top{flex-wrap:wrap;align-items:flex-start}.card-top-badges{flex-wrap:wrap;align-items:center;gap:.25rem;display:flex}.lesson-card-open{width:100%;min-height:44px;color:inherit;text-align:left;background:0 0;border:0;flex-direction:column;flex:1;align-items:stretch;gap:.5rem;padding:0;display:flex}.lesson-card:focus-within{outline:2px solid var(--ring);outline-offset:4px}.lesson-meta>button.clickable-meta{min-height:44px;color:inherit;text-align:left;font-size:inherit;overflow-wrap:anywhere;align-items:center;gap:.25rem;padding:.5rem 0;line-height:1.5;display:flex}.lesson-meta>button.clickable-meta:hover{color:var(--primary)}.lesson-meta>button.clickable-meta svg{flex-shrink:0}.change-pill{color:var(--primary);overflow-wrap:anywhere;border:1px solid;border-radius:.125rem;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.75rem;font-weight:700;line-height:1.35;display:inline-flex}.change-pill svg{flex-shrink:0}.change-pill-room{color:var(--change-warning)}.change-pill-teacher{color:var(--change-teacher)}.change-pill-added{color:var(--change-added)}.change-pill-cancelled{color:var(--change-cancelled)}.cancelled-card{text-align:left;border:1px dashed var(--change-cancelled);background:var(--change-cancelled-bg);width:100%;min-height:124px;color:var(--foreground);border-radius:.125rem;flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.cancelled-card:hover{outline:1px solid var(--change-cancelled);outline-offset:3px}.cancelled-card h3,.cancelled-card .lesson-subject{overflow-wrap:anywhere;font-size:1rem;font-weight:700;line-height:1.35;text-decoration:line-through}.cancelled-card .lesson-type{color:var(--muted-foreground);border-color:var(--control-border)}.cancelled-card .card-clock{color:var(--muted-foreground)}.changes-badge-btn,.calendar-export-btn,.back-to-group-btn{border:1px solid var(--control-border);background:var(--background);min-height:44px;color:var(--foreground);border-radius:.125rem;justify-content:center;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.875rem;font-weight:700;display:inline-flex}.changes-badge-btn{color:var(--change-warning);border-color:currentColor}.changes-badge-btn:hover,.calendar-export-btn:hover,.back-to-group-btn:hover{background:var(--muted)}.changes-badge-btn svg,.calendar-export-btn svg,.back-to-group-btn svg{flex-shrink:0}.cancelled-banner{border:1px solid var(--change-cancelled);background:var(--change-cancelled-bg);color:var(--change-cancelled);border-radius:.125rem;padding:1rem;font-size:.875rem}.cancelled-banner-title{align-items:center;gap:.5rem;font-weight:700;display:flex}.cancelled-banner p{margin-top:.5rem}.cancelled-banner small{margin-top:.5rem;font-size:.75rem;display:block}.lesson-changes-box{flex-direction:column;gap:.5rem;margin:.75rem 0;display:flex}.lesson-change-alert{color:var(--change-warning);background:var(--muted);border-left:2px solid;align-items:flex-start;gap:.5rem;padding:.75rem;font-size:.875rem;line-height:1.5;display:flex}.lesson-change-alert svg{flex-shrink:0;margin-top:.25rem}.changes-list{overscroll-behavior:contain;flex-direction:column;gap:1rem;min-height:0;padding-right:.25rem;display:flex;overflow-y:auto}.change-item{border-top:1px solid var(--border);flex-direction:column;gap:.5rem;padding:1rem 0;display:flex}.change-item-header,.change-item-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.change-item-date{font-variant-numeric:tabular-nums;font-size:.875rem}.change-item-message{overflow-wrap:anywhere;font-size:1rem;line-height:1.5}.change-item-footer small{color:var(--muted-foreground);font-size:.75rem}.change-jump-btn{font-size:.875rem}.target-mode-banner{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;display:flex}.target-mode-info{overflow-wrap:anywhere;align-items:center;gap:.75rem;min-width:0;font-size:1rem;font-weight:700;display:flex}.target-mode-info svg{color:var(--primary);flex-shrink:0}.clickable-meta{cursor:pointer;text-underline-offset:3px}.clickable-meta:hover{color:var(--primary);text-decoration:underline}.meta-link{text-align:left;min-height:44px;font-size:inherit;color:inherit;align-items:flex-start;gap:.25rem;padding:.5rem 0;display:inline-flex}.meta-link svg{flex-shrink:0}.current-lesson-highlight{outline:2px solid var(--primary);outline-offset:4px;background:var(--accent);scroll-margin-block:2rem}.hero-wrap{min-width:0}.hero-widget-container{border-bottom:1px solid var(--border)}.hero-widget-card{flex-direction:column;gap:.75rem;padding:.75rem 0 1rem;display:flex}.hero-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.hero-status-tag{flex-wrap:wrap;align-items:center;gap:.5rem;min-width:0;font-size:.875rem;display:flex}.hero-status-title{font-weight:700}.hero-status-tag>svg{color:var(--primary);flex-shrink:0}.live-dot{background:var(--change-added);border-radius:50%;flex-shrink:0;width:8px;height:8px}.hero-countdown{color:var(--primary);font-variant-numeric:tabular-nums;font-size:.875rem}.hero-actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.hero-focus-btn,.hero-collapse-btn{min-height:44px;color:var(--primary);border-radius:.125rem;justify-content:center;align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}.hero-focus-btn{padding:.5rem .75rem}.hero-collapse-btn{width:44px;color:var(--muted-foreground)}.hero-focus-btn:hover,.hero-collapse-btn:hover{background:var(--muted)}.hero-body,.hero-lesson-info,.hero-break-info,.hero-before-info{flex-direction:column;gap:.5rem;min-width:0;display:flex}.hero-subject,.hero-next-title{font-family:var(--font-display),"Arial Narrow",sans-serif;overflow-wrap:anywhere;font-size:1.5rem;font-weight:600;line-height:1.25}.hero-meta-row{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;font-size:.875rem;display:flex}.hero-type-pill{border:1px solid var(--lesson-accent);color:var(--lesson-text);padding:.25rem .5rem;font-size:.75rem;font-weight:700}.hero-meta-item{min-width:0;color:var(--muted-foreground);overflow-wrap:anywhere;align-items:center;gap:.25rem;display:inline-flex}.hero-meta-item svg{flex-shrink:0}.hero-time-badge,.hero-next-time{font-variant-numeric:tabular-nums;font-size:.875rem;font-weight:700}.hero-progress-track{background:var(--muted);height:4px;margin:.5rem 0;overflow:hidden}.hero-progress-fill{background:var(--primary);height:100%}.hero-next-teaser{color:var(--muted-foreground);flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.875rem;line-height:1.5;display:flex}.hero-next-teaser strong,.hero-next-time{color:var(--foreground);overflow-wrap:anywhere}.hero-next-arrow{color:var(--primary);flex-shrink:0}.hero-break-banner{flex-direction:column;gap:.25rem;display:flex}.hero-break-lead,.hero-before-lead,.hero-free-desc,.hero-collapsed-summary{color:var(--muted-foreground);overflow-wrap:anywhere;font-size:.875rem;line-height:1.5}.hero-collapsed-summary strong{color:var(--foreground)}.hero-free-info{flex-direction:column;gap:.5rem;display:flex}.search-tabs{border-bottom:1px solid var(--control-border);flex-shrink:0;grid-template-columns:repeat(4,minmax(0,1fr));gap:.25rem;display:grid}.search-tab-btn{min-height:44px;color:var(--muted-foreground);padding:.5rem .25rem;font-size:.875rem;font-weight:700}.search-tab-btn:hover{color:var(--foreground);background:var(--muted)}.search-tab-btn.active{color:var(--primary-foreground);background:var(--primary)}.search-input-wrapper{flex-shrink:0;align-items:center;min-width:0;display:flex;position:relative}.search-input-wrapper [data-slot=command-input-wrapper]{width:100%;min-width:0;padding-right:2.5rem}.search-spinner{color:var(--muted-foreground);pointer-events:none;position:absolute;right:1rem}.search-item-label{overflow-wrap:anywhere;min-width:0;font-size:1rem;font-weight:700}.search-item-badges{flex-shrink:0;align-items:center;gap:.5rem;margin-left:auto;display:flex}.entity-pill{border:1px solid var(--border);color:var(--muted-foreground);border-radius:.125rem;padding:.25rem .5rem;font-size:.75rem;line-height:1.35;display:inline-flex}.item-icon-group,.item-icon-teacher,.item-icon-auditorium{color:var(--muted-foreground);flex-shrink:0}.search-dialog>.sidebar-hint{overflow-wrap:anywhere;flex-shrink:0}.search-pagination{border-top:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .75rem;display:flex}.search-result-count{color:var(--muted-foreground);font-size:.8125rem}.search-load-more{border:1px solid var(--control-border);background:var(--background);min-height:44px;color:var(--foreground);border-radius:.125rem;padding:.5rem .75rem;font-size:.875rem;font-weight:700}.search-load-more:hover{background:var(--muted)}.calendar-export-dialog{z-index:var(--layer-modal);border:1px solid var(--control-border);width:100%;max-width:min(560px,100vw - 32px);max-height:calc(100dvh - 32px);box-shadow:none;background:var(--popover);color:var(--popover-foreground);overscroll-behavior:contain;border-radius:.125rem;flex-direction:column;gap:1.5rem;padding:2rem;display:flex;overflow-y:auto}.calendar-export-dialog>*{flex-shrink:0}.cal-dialog-header{align-items:flex-start;gap:1rem;padding-right:2rem;display:flex}.cal-dialog-header>div:last-child{min-width:0}.cal-dialog-header [data-slot=dialog-title]{font-family:var(--font-display),"Arial Narrow",sans-serif;font-size:1.75rem;font-weight:650;line-height:1.2}.cal-dialog-header [data-slot=dialog-description]{color:var(--muted-foreground);overflow-wrap:anywhere;margin-top:.5rem;font-size:.875rem;line-height:1.5}.cal-icon-wrapper{width:44px;height:44px;color:var(--primary);flex-shrink:0;place-items:center;display:grid}.cal-methods{flex-direction:column;gap:1.5rem;display:flex}.cal-method-card{border-top:1px solid var(--border);flex-direction:column;align-items:flex-start;gap:.75rem;padding-top:1rem;display:flex}.method-badge{color:var(--change-added);border:1px solid;padding:.25rem .5rem;font-size:.75rem;font-weight:700;display:inline-flex}.cal-method-card h4{margin:0;font-size:1rem;font-weight:700;line-height:1.5}.cal-method-card p{color:var(--muted-foreground);font-size:.875rem;line-height:1.5}.cal-action-buttons{flex-direction:column;gap:.5rem;width:100%;display:flex}.cal-btn-primary,.cal-btn-secondary,.cal-btn-outline,.cal-btn-download{border:1px solid var(--control-border);width:100%;min-height:44px;color:var(--foreground);background:var(--background);text-align:center;border-radius:.125rem;justify-content:center;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.875rem;font-weight:700;text-decoration:none;display:inline-flex}.cal-btn-primary{color:var(--primary-foreground);background:var(--primary);border-color:var(--primary)}.cal-btn-primary:hover{filter:brightness(.94)}.cal-btn-secondary:hover,.cal-btn-outline:hover,.cal-btn-download:hover{background:var(--muted)}.cal-btn-outline{background:0 0;border-style:dashed}.cal-btn-primary svg,.cal-btn-secondary svg,.cal-btn-outline svg,.cal-btn-download svg{flex-shrink:0}.copied-check{color:var(--change-added)}.cal-guide-section{border-top:1px solid var(--border);flex-direction:column;gap:.75rem;padding-top:.5rem;display:flex}.cal-guide-toggle{text-align:left;min-height:44px;color:var(--muted-foreground);align-items:center;gap:.5rem;font-size:.875rem;display:flex}.cal-guide-toggle svg{flex-shrink:0}.cal-guide-toggle:hover{color:var(--primary)}.cal-guide-content{background:var(--muted);flex-direction:column;gap:1rem;padding:1rem;font-size:.875rem;line-height:1.6;display:flex}.guide-item strong{margin-bottom:.25rem;display:block}.guide-item span{color:var(--muted-foreground)}@media (max-width:1100px){.week-title{flex-wrap:wrap}}@media (max-width:800px){.hero-header{align-items:flex-start;gap:.5rem}.hero-status-tag{gap:.25rem .5rem;padding-top:.5rem}.hero-countdown{flex-basis:100%}.hero-actions{gap:0}.hero-focus-btn{padding:.5rem;font-size:.8125rem}.hero-subject,.hero-next-title{font-size:1.25rem}.hero-meta-row{gap:.5rem .75rem}.target-mode-banner{align-items:flex-start;gap:.75rem}.target-mode-info,.back-to-group-btn{font-size:.875rem}.cancelled-card{min-height:0;padding:.75rem}.search-item-badges{display:none}.calendar-export-dialog{gap:1rem;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:1.5rem}.cal-dialog-header{gap:.5rem}.cal-icon-wrapper{display:none}.cal-dialog-header [data-slot=dialog-title]{font-size:1.5rem}}@media (max-height:540px){.search-dialog{overscroll-behavior:contain;overflow-y:auto}.search-dialog .group-search-command{flex-shrink:0}.search-dialog .group-results{max-height:40dvh}}@media (max-width:480px){.search-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:800px){.brand{min-height:44px}.brand-logo{width:126px}}@media (max-width:380px){.brand-logo{width:112px}}@media (max-width:340px){.topbar{gap:.25rem;padding:0 .75rem}.header-actions,.schedule-tools{gap:0}.brand-logo{width:96px}}[data-slot=dialog-overlay]{transition:none!important;animation:none!important}@media (max-width:800px){.source-controls{flex-wrap:wrap}.source-controls .calendar-export-btn,.source-controls .refresh-button{flex-shrink:0}.source-controls .subgroup-select{min-width:0;max-width:100%}}
.app-navigation{border-bottom:1px solid var(--border);background:var(--background);align-items:stretch;gap:2rem;max-width:1920px;margin:0 auto;padding:0 2rem;display:flex}.app-nav-link{min-height:56px;color:var(--muted-foreground);background:0 0;border:0;border-bottom:3px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.5rem .25rem;font-size:1rem;font-weight:700;text-decoration:none;display:inline-flex}.app-nav-link svg{flex-shrink:0;width:20px;height:20px}.app-nav-link:hover{color:var(--foreground);background:var(--muted)}.app-nav-link[aria-current=page],.app-nav-link[aria-selected=true],.app-nav-link[aria-pressed=true],.app-nav-link[data-active=true]{color:var(--primary);border-bottom-color:var(--primary)}.learning-context{min-width:0;max-width:1920px;margin:0 auto;padding:1.5rem 2rem 0}.learning-context .selection-bar{margin:0}.workspace-section-heading{justify-content:space-between;align-items:flex-start;gap:1.5rem;margin-bottom:2rem;display:flex}.workspace-section-heading h1,.study-intro h1{font-family:var(--font-display),"Arial Narrow",sans-serif;letter-spacing:-.02em;font-size:3rem;font-weight:700;line-height:1.1}.workspace-section-heading p,.study-intro>p{max-width:62ch;color:var(--muted-foreground);margin-top:.75rem;font-size:1rem;line-height:1.6}.overview-section{min-width:0;max-width:1920px;margin:0 auto;padding:2rem}.overview-mode{border-bottom:1px solid var(--control-border);flex-shrink:0;align-items:stretch;display:inline-flex}.overview-mode button{min-height:44px;color:var(--muted-foreground);background:0 0;border:0;padding:.5rem 1rem;font-size:.875rem;font-weight:700}.overview-mode button[aria-pressed=true]{background:var(--primary);color:var(--primary-foreground)}.overview-mode button:hover:not([aria-pressed=true]){background:var(--muted);color:var(--foreground)}.overview-notice{border-left:2px solid var(--change-warning,var(--primary));color:var(--muted-foreground);margin:0 0 1.5rem;padding:.75rem 1rem;font-size:.875rem;line-height:1.6}.overview-layout{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:3rem;display:grid}.overview-agenda{min-width:0}.overview-day{border-bottom:1px solid var(--border);margin-bottom:1.5rem;padding-bottom:1.5rem}.overview-day-heading{border-bottom:1px solid var(--foreground);justify-content:space-between;align-items:center;gap:1rem;padding:.5rem 0 1rem;display:flex}.overview-date{align-items:center;gap:1rem;min-width:0;display:flex}.overview-date>strong{font-family:var(--font-display),"Arial Narrow",sans-serif;font-variant-numeric:tabular-nums;flex-shrink:0;font-size:3rem;font-weight:650;line-height:1}.overview-date h2{font-family:var(--font-display),"Arial Narrow",sans-serif;font-size:1.25rem;font-weight:600;line-height:1.3}.overview-date span{color:var(--muted-foreground);margin-top:.25rem;font-size:.875rem;display:block}.overview-day-link{min-height:44px;color:var(--primary);background:0 0;flex-shrink:0;justify-content:center;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.875rem;font-weight:700;display:inline-flex}.overview-day-link:hover{background:var(--muted)}.overview-day-link svg{flex-shrink:0}.overview-periods,.overview-variants{margin:0;padding:0;list-style:none}.overview-period{border-bottom:1px solid var(--border);grid-template-columns:72px minmax(0,1fr);gap:1.5rem;padding:1.25rem 0;display:grid}.overview-period:last-child{border-bottom:0}.overview-time{font-variant-numeric:tabular-nums;flex-direction:column;align-items:flex-start;gap:.25rem;padding-top:.5rem;font-size:.875rem;display:flex}.overview-time strong{font-size:1rem;font-weight:700}.overview-time>span{color:var(--muted-foreground)}.overview-time small{color:var(--primary);margin-top:.25rem;font-size:.75rem;font-weight:700}.overview-period-current{border-left:2px solid var(--primary);padding-left:1rem}.overview-courses{flex-direction:column;gap:1.25rem;min-width:0;display:flex}.overview-course{min-width:0}.overview-course-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.overview-subject{min-width:0;min-height:44px;color:var(--foreground);font-family:var(--font-display),"Arial Narrow",sans-serif;text-align:left;overflow-wrap:anywhere;background:0 0;align-items:center;gap:.5rem;padding:.25rem 0;font-size:1.5rem;font-weight:600;line-height:1.3;display:inline-flex}.overview-subject svg{width:16px;height:16px;color:var(--primary);flex-shrink:0}.overview-subject:hover{color:var(--primary);text-underline-offset:4px;text-decoration:underline}.overview-lesson-type{border:1px solid var(--lesson-accent);color:var(--lesson-text);flex-shrink:0;padding:.25rem .5rem;font-size:.75rem;font-weight:700;line-height:1.35;display:inline-flex}.overview-variants{flex-direction:column;gap:.75rem;margin-top:.5rem;display:flex}.overview-variants>li{color:var(--muted-foreground);flex-wrap:wrap;align-items:flex-start;gap:.25rem 1rem;padding-top:.5rem;font-size:.875rem;line-height:1.5;display:flex}.overview-variants>li+li{border-top:1px solid var(--border)}.overview-variants>li>span{overflow-wrap:anywhere;align-items:flex-start;gap:.25rem;min-width:0;display:inline-flex}.overview-variants svg{flex-shrink:0;margin-top:.2rem}.overview-subgroup{font-weight:700}.overview-day-empty{color:var(--muted-foreground);padding:1.5rem 0 .25rem;font-size:1rem}.overview-empty{flex-direction:column;align-items:flex-start;gap:1rem;min-height:220px;padding:2rem 0;display:flex}.overview-empty>svg{color:var(--muted-foreground)}.overview-empty h2{max-width:40ch;font-family:var(--font-display),"Arial Narrow",sans-serif;font-size:1.75rem;font-weight:650;line-height:1.3}.overview-empty p{max-width:58ch;color:var(--muted-foreground);font-size:1rem;line-height:1.6}.overview-source{color:var(--muted-foreground);overflow-wrap:anywhere;margin-top:1rem;font-size:.8125rem;line-height:1.6}.overview-deadlines{border-left:1px solid var(--border);padding:1rem 0 1rem 1.5rem}.overview-deadlines h2{font-family:var(--font-display),"Arial Narrow",sans-serif;font-size:1.5rem;font-weight:600;line-height:1.25}.overview-deadlines p{color:var(--muted-foreground);margin-top:.75rem;font-size:.875rem;line-height:1.6}.study-section{min-width:0;max-width:1920px;margin:0 auto;padding:2rem}.study-intro{margin-bottom:1.5rem}.study-toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:flex-end;gap:1rem 1.5rem;padding:1rem 0 1.5rem;display:flex}.study-semester,.study-search{flex-direction:column;gap:.5rem;min-width:0;display:flex}.study-semester>span,.study-search>span:first-child,.study-local-form label>span{color:var(--muted-foreground);font-size:.875rem}.study-semester select{border:1px solid var(--control-border);background:var(--background);min-width:208px;max-width:100%;min-height:44px;color:var(--foreground);border-radius:2px;padding:.5rem 2rem .5rem .75rem;font-size:1rem}.study-search{flex:1;max-width:400px}.study-search-field{border:1px solid var(--control-border);background:var(--background);min-height:44px;color:var(--muted-foreground);border-radius:2px;align-items:center;gap:.5rem;padding:0 .75rem;display:flex}.study-search-field:focus-within{outline:2px solid var(--ring);outline-offset:3px}.study-search-field svg{flex-shrink:0}.study-search-field input{width:100%;min-width:0;min-height:44px;color:var(--foreground);background:0 0;border:0;padding:.5rem 0;font-size:1rem}.study-search-field input:focus-visible{outline:none}.study-search-field input::placeholder{color:var(--muted-foreground);opacity:1}.study-source-note,.study-local-note{color:var(--muted-foreground);overflow-wrap:anywhere;font-size:.875rem;line-height:1.6}.study-source-note{margin-top:1rem}.study-subjects{border-top:1px solid var(--foreground);grid-template-columns:repeat(2,minmax(0,1fr));column-gap:2rem;margin:1.5rem 0 0;padding:0;list-style:none;display:grid}.study-subjects>li{border-bottom:1px solid var(--border);min-width:0}.study-subject{width:100%;min-height:112px;color:var(--foreground);text-align:left;background:0 0;align-items:center;gap:1rem;padding:1.25rem .5rem;display:flex}.study-subject:hover{background:var(--muted)}.study-subject>svg{color:var(--primary);flex-shrink:0}.study-subject>svg:last-child{margin-left:auto}.study-subject-text{flex-direction:column;flex:1;gap:.5rem;min-width:0;display:flex}.study-subject-name{font-family:var(--font-display),"Arial Narrow",sans-serif;overflow-wrap:anywhere;font-size:1.5rem;font-weight:600;line-height:1.3}.study-subject-meta{color:var(--muted-foreground);overflow-wrap:anywhere;font-size:.875rem;line-height:1.5}.study-breadcrumb{min-height:44px;color:var(--primary);background:0 0;align-items:center;gap:.5rem;margin-bottom:1.5rem;padding:.5rem 0;font-size:1rem;display:inline-flex}.study-breadcrumb:hover{text-underline-offset:4px;text-decoration:underline}.study-subject-heading{justify-content:space-between;align-items:flex-start;gap:1.5rem;margin-bottom:1.5rem;display:flex}.study-subject-heading>div{min-width:0}.study-subject-heading h1{font-family:var(--font-display),"Arial Narrow",sans-serif;overflow-wrap:anywhere;margin:.5rem 0 .75rem;font-size:2.5rem;font-weight:650;line-height:1.2}.study-subject-heading>.quiet-button{flex-shrink:0}.study-context,.study-teachers{color:var(--muted-foreground);overflow-wrap:anywhere;font-size:.875rem;line-height:1.6}.study-tabs{border-bottom:1px solid var(--control-border);align-items:stretch;gap:1rem;display:flex}.study-tabs button{min-height:48px;color:var(--muted-foreground);background:0 0;border:0;border-bottom:3px solid #0000;padding:.75rem 1rem;font-size:1rem;font-weight:700}.study-tabs button[aria-pressed=true]{color:var(--primary);border-bottom-color:var(--primary)}.study-tabs button:hover{background:var(--muted);color:var(--foreground)}.study-empty{flex-direction:column;align-items:flex-start;gap:1rem;max-width:68ch;padding:2rem 0;display:flex}.study-empty>svg{color:var(--muted-foreground)}.study-empty h3{font-family:var(--font-display),"Arial Narrow",sans-serif;font-size:1.75rem;font-weight:600;line-height:1.3}.study-empty p{color:var(--muted-foreground);font-size:1rem;line-height:1.6}.study-subject-content{min-width:0}.study-session{max-width:880px;margin-top:2rem}.study-session h3{font-family:var(--font-display),"Arial Narrow",sans-serif;font-size:1.5rem;font-weight:600}.study-session-dates{border-top:1px solid var(--border);margin:1rem 0 0;padding:0;list-style:none}.study-session-dates>li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;display:flex}.study-session-dates>li>div{flex-direction:column;gap:.25rem;min-width:0;display:flex}.study-session-dates strong{overflow-wrap:anywhere;font-size:1rem;font-weight:700}.study-session-dates span{color:var(--muted-foreground);font-size:.875rem}.study-session-dates .quiet-button{flex-shrink:0}.study-add-subject{flex-wrap:wrap;align-items:center;gap:1rem;margin-top:1.5rem;display:flex}.study-add-subject .study-local-note{max-width:54ch}.study-local-form{border:1px solid var(--control-border);background:var(--background);border-radius:2px;flex-direction:column;gap:1rem;max-width:640px;margin:1.5rem 0;padding:1.5rem;display:flex}.study-local-form label{flex-direction:column;gap:.5rem;min-width:0;display:flex}.study-local-form input{border:1px solid var(--control-border);background:var(--background);width:100%;min-width:0;min-height:44px;color:var(--foreground);border-radius:2px;padding:.5rem .75rem;font-size:1rem}.study-local-form [role=alert]{color:var(--change-cancelled,var(--foreground));font-size:.875rem}.study-form-actions{flex-wrap:wrap;gap:.75rem;display:flex}.study-form-actions>button{min-height:44px}@media (min-width:1600px){.app-navigation,.learning-context{padding-inline:3rem}.overview-section,.study-section{padding:2rem 3rem}.overview-layout{grid-template-columns:minmax(0,1fr) 320px}}@media (max-width:1100px){.app-navigation{padding-inline:1.5rem}.learning-context{padding:1.5rem 1.5rem 0}.overview-section,.study-section{padding:1.5rem}.overview-layout{grid-template-columns:minmax(0,1fr);gap:1.5rem}.overview-deadlines{border-left:0;border-top:1px solid var(--border);max-width:64ch;padding:1.5rem 0 0}.study-subjects{column-gap:1.5rem}.study-subject-heading{flex-wrap:wrap}}@media (max-width:800px){.course-app{padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))}.app-navigation{z-index:var(--layer-sticky,10);min-height:68px;padding:.25rem .5rem calc(.25rem + env(safe-area-inset-bottom,0px));border-top:1px solid var(--control-border);border-bottom:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0;display:grid;position:fixed;bottom:0;left:0;right:0}.app-nav-link{border-top:2px solid #0000;border-bottom:0;flex-direction:column;gap:.25rem;min-width:0;min-height:60px;padding:.5rem .25rem;font-size:.875rem;line-height:1.3}.app-nav-link[aria-current=page],.app-nav-link[aria-selected=true],.app-nav-link[aria-pressed=true],.app-nav-link[data-active=true]{border-top-color:var(--primary);background:var(--accent)}.learning-context{padding:1rem 1rem 0}.overview-section,.study-section{padding:1.5rem 1rem}.workspace-section-heading{flex-direction:column;gap:1rem;margin-bottom:1.5rem}.workspace-section-heading h1,.study-intro h1{font-size:2rem}.workspace-section-heading p,.study-intro>p{margin-top:.5rem;font-size:.875rem}.overview-mode{max-width:100%}.overview-mode button{padding:.5rem .75rem}.overview-day-heading{flex-wrap:wrap;gap:.5rem}.overview-date{gap:.75rem}.overview-date>strong{font-size:2.5rem}.overview-date h2{font-size:1.125rem}.overview-day-link{margin-left:auto;padding:.5rem .25rem}.overview-period{grid-template-columns:56px minmax(0,1fr);gap:1rem;padding:1rem 0}.overview-period-current{padding-left:.5rem}.overview-time strong{font-size:.875rem}.overview-time>span{font-size:.8125rem}.overview-course-heading{flex-direction:column;align-items:flex-start;gap:.5rem}.overview-subject{font-size:1.25rem}.overview-variants>li{flex-direction:column;gap:.5rem}.overview-variants>li>span{font-size:.875rem}.overview-empty{min-height:0;padding:1.5rem 0}.overview-empty h2{font-size:1.5rem}.overview-empty p{font-size:.875rem}.overview-deadlines h2{font-size:1.25rem}.study-toolbar{align-items:stretch;gap:1rem}.study-semester,.study-search{flex:100%;max-width:none}.study-semester select{width:100%;min-width:0}.study-subjects{grid-template-columns:minmax(0,1fr);gap:0;margin-top:1rem}.study-subject{gap:.75rem;min-height:96px;padding:1rem .25rem}.study-subject-name{font-size:1.25rem}.study-subject-meta{font-size:.8125rem}.study-subject-heading{gap:1rem}.study-subject-heading h1{font-size:2rem}.study-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:0;display:grid}.study-tabs button{min-width:0;padding:.75rem .25rem;font-size:.875rem}.study-empty{gap:.75rem;padding:1.5rem 0}.study-empty h3{font-size:1.5rem}.study-empty p{font-size:.875rem}.study-session-dates>li{flex-wrap:wrap;gap:.75rem}.study-local-form{padding:1rem}.study-add-subject{align-items:flex-start}.course-app .toast{bottom:calc(84px + env(safe-area-inset-bottom,0px))}}
.pwa-install-button{border:1px solid var(--control-border);background:var(--background);min-width:44px;min-height:44px;color:var(--foreground);border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.875rem;font-weight:700;display:inline-flex}.pwa-install-button:hover{background:var(--accent)}.pwa-install-symbol{flex-shrink:0;justify-content:center;align-items:center;width:20px;height:24px;display:inline-flex;position:relative}.pwa-install-symbol>svg:last-child{background:var(--background);color:var(--primary);stroke-width:2.5px;position:absolute;bottom:0;right:-4px}.pwa-install-button:hover .pwa-install-symbol>svg:last-child{background:var(--accent)}.pwa-install-announcement{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pwa-install-dialog{z-index:var(--layer-modal);border:1px solid var(--control-border);background:var(--popover);width:100%;max-width:min(480px,100vw - 32px);max-height:calc(100dvh - 32px);color:var(--popover-foreground);box-shadow:none;overscroll-behavior:contain;border-radius:2px;flex-direction:column;gap:1rem;padding:2rem;display:flex;overflow-y:auto}.pwa-install-dialog>[data-slot=dialog-title]{font-family:var(--font-display),"Arial Narrow",sans-serif;padding-right:2rem;font-size:1.75rem;font-weight:650;line-height:1.25}.pwa-install-dialog>[data-slot=dialog-description],.pwa-install-note{color:var(--muted-foreground);font-size:.875rem;line-height:1.6}.pwa-install-steps{flex-direction:column;gap:1rem;margin:0;padding:0 0 0 1.5rem;font-size:1rem;line-height:1.6;display:flex}.pwa-install-steps li{overflow-wrap:anywhere;padding-left:.25rem}.pwa-install-steps li::marker{color:var(--primary);font-weight:700}.pwa-install-warning{border-left:2px solid var(--primary);background:var(--muted);overflow-wrap:anywhere;padding:1rem;font-size:.875rem;line-height:1.6}.pwa-install-warning p{margin-top:.5rem}.pwa-install-done{align-self:flex-start}.pwa-install-close{width:44px;height:44px;color:var(--muted-foreground);background:0 0;border:0;border-radius:2px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:.75rem;right:.75rem}.pwa-install-close:hover{background:var(--muted);color:var(--foreground)}@media (max-width:800px){.pwa-install-button{width:44px;padding:.5rem}.pwa-install-label{display:none}.pwa-install-dialog{max-width:calc(100vw - 24px);padding:1.5rem}.pwa-install-dialog>[data-slot=dialog-title]{font-size:1.5rem}.pwa-install-steps{font-size:.875rem}}@media (prefers-reduced-motion:reduce){.pwa-install-dialog{transition:none;animation:none}}
@media (max-width:1350px){.topbar .brand-description{display:none}}@media (min-width:801px) and (max-width:1100px){.topbar{gap:1rem}.topbar .brand-logo{width:160px}.topbar .header-actions{gap:.5rem;min-width:0}.topbar .global-search{gap:.5rem;width:200px;min-width:0;padding:.5rem .75rem}.topbar .global-search kbd{display:none}.topbar .pwa-install-button{width:44px;min-width:44px;padding:.5rem}.topbar .pwa-install-label{display:none}}@media (max-width:800px){.topbar{grid-template-rows:44px 44px;grid-template-columns:repeat(6,minmax(0,1fr));align-items:center;gap:.25rem 0;height:auto;min-height:102px;padding:.25rem 1rem;display:grid}.topbar .header-actions,.topbar .schedule-tools{display:contents}.topbar .brand{grid-area:1/1/auto/5;justify-self:start;min-width:0;min-height:44px}.topbar .pwa-install-button{grid-area:1/5;justify-self:end;width:44px;min-width:44px;height:44px;padding:.5rem}.topbar .pwa-install-label{display:none}.topbar .theme-button{grid-area:1/6;justify-self:end;width:44px;min-width:44px;height:44px}.topbar .global-search{grid-area:2/1/auto/3}.topbar .schedule-tools>.tool-button:first-of-type{grid-area:2/3/auto/5}.topbar .schedule-tools>.tool-button:last-of-type{grid-area:2/5/auto/7}.topbar .global-search,.topbar .tool-button{background:0 0;border:0;border-radius:2px;justify-content:center;align-items:center;gap:.25rem;width:100%;min-width:0;height:44px;min-height:44px;padding:.25rem;font-size:.8125rem;line-height:1.15;display:flex}.topbar .global-search:hover,.topbar .tool-button:hover,.topbar .tool-button[data-state=open]{background:var(--accent)}.topbar .global-search>.search-label{white-space:normal;text-align:left;overflow-wrap:anywhere;min-width:0;max-width:88px;display:block}.topbar .global-search>kbd{display:none}.topbar .tool-button>span:not(.favorites-count){min-width:0;display:inline}.topbar .tool-button>.favorites-count{display:none}.topbar .global-search>svg,.topbar .tool-button>svg{flex-shrink:0;width:16px;height:16px}}@media (max-width:340px){.topbar{padding-inline:.75rem}.topbar .global-search,.topbar .tool-button{padding:.25rem .125rem;font-size:.75rem}}
