:root{--bg:#f4f4f6;--surface:#fff;--text:#1c1c1f;--muted:#6b6b73;--border:#e2e2e7;--accent:#3b6fd8;--accent-text:#fff;--danger:#c93434;--now:#e5484d;--ok:#1f9d6b;--warn:#d9822b;--c-wyk:#4f7fd1;--c-cwi:#ee9a35;--c-lab:#82ad35;--c-pro:#d9b61c;--c-sem:#16a2a8;--c-lek:#9b6ad6;--c-wf:#e05a5a;--c-inne:#7a7a85;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.4}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#121215;--surface:#1c1c21;--text:#ececef;--muted:#9a9aa3;--border:#2e2e35;--accent:#6d97f0;--accent-text:#0e1320;--danger:#f06a6a;--now:#ff6b70;--ok:#3cc48f;--warn:#f0a050;--c-wyk:#7ea6ee;--c-cwi:#f5b25e;--c-lab:#a6cf55;--c-pro:#ebd046;--c-sem:#3cc6d4;--c-lek:#b690ef;--c-wf:#f07a7a;--c-inne:#9a9aa3}:root[data-text-size=small]{font-size:14px}:root[data-text-size=large]{font-size:18px}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}a{color:var(--accent)}.app{max-width:1100px;margin:0 auto;padding:12px 16px 48px}.muted{color:var(--muted)}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:8px 0;display:flex}.brand{margin:0;font-size:1.35rem}.tabs{background:var(--surface);border:1px solid var(--border);border-radius:10px;gap:4px;padding:3px;display:flex;position:relative}.tab{z-index:1;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px;padding:7px 14px;font-weight:600;position:relative}.tab.is-active{color:var(--accent-text)}.tab-indicator{background:var(--accent);width:0;box-shadow:0 2px 8px color-mix(in srgb, var(--accent) 35%, transparent);border-radius:7px;position:absolute;top:3px;bottom:3px;left:0}.sync{color:var(--muted);margin:4px 0 12px;font-size:.85rem}.sync.is-error{color:var(--danger)}.button{background:var(--accent);color:var(--accent-text);font:inherit;cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;padding:9px 16px;font-weight:600;display:inline-flex}.button.secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.button.danger{color:var(--danger);border-color:var(--danger);background:0 0}.button:disabled,.button.is-disabled{opacity:.55;cursor:default}.button-row{flex-wrap:wrap;gap:8px;display:flex}.link-button{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.link-button:disabled{opacity:.55;cursor:default}.icon-button{border:1px solid var(--border);background:var(--surface);width:40px;height:40px;color:var(--text);cursor:pointer;border-radius:10px;font-size:1.4rem;line-height:1}.panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:16px;padding:16px}.panel>:last-child{margin-bottom:0}.field-label{margin-bottom:6px;font-weight:600;display:block}.input-row{gap:8px;display:flex}.input-row input{border:1px solid var(--border);background:var(--bg);min-width:0;color:var(--text);font:inherit;border-radius:8px;flex:1;padding:9px 12px}@media (width<=520px){.input-row{flex-direction:column}}.steps{margin:12px 0 16px;padding-left:1.3rem}.steps li{margin-bottom:6px}.inline-icon{vertical-align:-.15em;fill:none;stroke:currentColor;stroke-width:2px;width:1.05em;height:1.05em}.hint{color:var(--muted);font-size:.85rem}.divider{color:var(--muted);align-items:center;gap:12px;margin:16px 0;font-size:.85rem;display:flex}.divider:before,.divider:after{content:"";border-top:1px solid var(--border);flex:1}.error{color:var(--danger);margin:12px 0 0;font-weight:600}.facts{grid-template-columns:max-content 1fr;gap:6px 16px;margin:0 0 16px;display:grid}.facts dt{color:var(--muted)}.facts dd{margin:0}.day-title{align-items:center;gap:8px;margin:16px 0 10px;font-size:1.1rem;display:flex}.day-title.secondary{margin-top:24px}.today-pill{background:var(--accent);color:var(--accent-text);border-radius:999px;padding:2px 8px;font-size:.75rem;font-weight:700}.empty-state{border:1px dashed var(--border);color:var(--muted);text-align:center;border-radius:12px;padding:20px 16px}.timeline{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.gap-note{color:var(--muted);border-left:2px dotted var(--border);margin-left:22px;padding:2px 0 2px 14px;font-size:.8rem}.card{background:color-mix(in srgb, var(--c) 9%, var(--surface));border:1px solid color-mix(in srgb, var(--c) 25%, var(--border));border-left:4px solid var(--c);border-radius:10px}.card>summary{cursor:pointer;gap:14px;padding:10px 12px;list-style:none;display:flex}.card>summary::-webkit-details-marker{display:none}.card-time{font-variant-numeric:tabular-nums;flex-direction:column;min-width:3rem;font-weight:700;display:flex}.card-time-end{color:var(--muted);font-size:.85rem;font-weight:400}.card-main{min-width:0}.card-title{font-weight:600}.card-meta{color:var(--muted);flex-wrap:wrap;gap:4px 10px;margin-top:3px;font-size:.85rem;display:flex}.type-badge{color:color-mix(in srgb, var(--c) 70%, var(--text));font-weight:700}.card-hint{color:color-mix(in srgb, var(--c) 70%, var(--text));margin-top:6px;font-size:.85rem;font-weight:700}.card-details{color:var(--muted);flex-direction:column;gap:4px;padding:0 12px 12px calc(26px + 3rem);font-size:.85rem;display:flex}.card.is-now{box-shadow:0 0 0 2px var(--c)}.card.is-past{opacity:.55}.card.is-cancelled .card-title{text-decoration:line-through}.type-wyk{--c:var(--c-wyk)}.type-cwi{--c:var(--c-cwi)}.type-lab{--c:var(--c-lab)}.type-pro{--c:var(--c-pro)}.type-sem{--c:var(--c-sem)}.type-lek{--c:var(--c-lek)}.type-wf{--c:var(--c-wf)}.type-inne{--c:var(--c-inne)}.week-nav{justify-content:space-between;align-items:center;gap:12px;margin:8px 0 12px;display:flex}.week-label{flex-direction:column;align-items:center;font-size:.85rem;display:flex}.week-label strong{font-size:1.05rem}.week-day+.week-day{margin-top:8px}.week-grid{gap:6px;display:grid}.grid-day-head{text-align:center;border-radius:8px;padding:6px 0;font-weight:600}.grid-day-head.is-today{background:var(--accent);color:var(--accent-text)}.grid-hours{position:relative}.grid-hours span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.75rem;position:absolute;right:6px;transform:translateY(-50%)}.grid-col{background-color:var(--surface);background-image:linear-gradient(to bottom, var(--border) 1px, transparent 1px);border-radius:8px;position:relative}.grid-col.is-today{outline:2px solid color-mix(in srgb, var(--accent) 40%, transparent)}.grid-event{border:1px solid color-mix(in srgb, var(--c) 60%, var(--surface));border-left:3px solid var(--c);background:color-mix(in srgb, var(--c) 22%, var(--surface));border-radius:6px;padding:3px 6px;font-size:.78rem;line-height:1.25;position:absolute;overflow:hidden}.grid-event.is-past{opacity:.55}.grid-event.is-cancelled .grid-event-title{text-decoration:line-through}.grid-event-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-weight:600;display:-webkit-box;overflow:hidden}.grid-event-meta{color:var(--muted)}.grid-event.is-short .grid-event-title{-webkit-line-clamp:1}.grid-event.is-short .grid-event-meta{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.now-line{background:var(--now);z-index:1;height:2px;position:absolute;left:-3px;right:0}.now-line:before{content:"";background:var(--now);border-radius:50%;width:8px;height:8px;position:absolute;top:-3px;left:-3px}.card-chevron{fill:none;width:18px;height:18px;stroke:var(--muted);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;opacity:.6;flex-shrink:0;margin:2px 0 0 auto}.card[open] .card-chevron{opacity:1;transform:rotate(90deg)}.refresh-icon{margin-right:3px}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)}}@keyframes slide-from-right{0%{opacity:0;transform:translate(28px)}}@keyframes slide-from-left{0%{opacity:0;transform:translate(-28px)}}@keyframes pop-in{0%{opacity:0;transform:scale(.94)}}@keyframes now-glow{50%{box-shadow:0 0 0 4px color-mix(in srgb, var(--c) 35%, transparent)}}@keyframes pulse-ring{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(2.6)}}@keyframes spin{to{transform:rotate(360deg)}}.tab-indicator[data-ready]{transition:transform .32s cubic-bezier(.3,1.3,.5,1),width .32s cubic-bezier(.3,1.3,.5,1)}.tab{transition:color .2s}.view-enter{animation:.26s ease-out both rise-in}.week-body.slide-next{animation:.26s ease-out both slide-from-right}.week-body.slide-prev{animation:.26s ease-out both slide-from-left}.timeline>li{animation:.3s ease-out both rise-in;animation-delay:calc(min(var(--i,0), 10) * 40ms)}.grid-event{animation:.26s ease-out both pop-in;animation-delay:calc(min(var(--i,0), 8) * 40ms);transition:filter .15s}.card.is-now{animation:2.6s ease-in-out infinite now-glow}.now-line:after{content:"";background:var(--now);border-radius:50%;width:8px;height:8px;animation:2s ease-out infinite pulse-ring;position:absolute;top:-3px;left:-3px}.card-chevron{transition:transform .2s,opacity .2s}.card[open] .card-details{animation:.22s ease-out both rise-in}@supports (interpolate-size:allow-keywords){:root{interpolate-size:allow-keywords}.card::details-content{height:0;transition:height .22s ease, content-visibility .22s allow-discrete;overflow:clip}.card[open]::details-content{height:auto}}.button,.icon-button,.tab{transition:transform .12s,background-color .15s,color .2s}@media (hover:hover) and (pointer:fine){.button:active:not(:disabled),.icon-button:active,.tab:active{transform:scale(.96)}}.is-spinning{animation:.9s linear infinite spin}@media (hover:hover){.card{transition:transform .16s,box-shadow .16s}.card:hover{transform:translateY(-1px);box-shadow:0 6px 16px #0000001a}.grid-event:hover{filter:brightness(1.08)}.tab:not(.is-active):hover{color:var(--text)}.icon-button:hover{border-color:var(--accent)}}:root[data-motion=off] *,:root[data-motion=off] :before,:root[data-motion=off] :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}@media (prefers-reduced-motion:reduce){:root[data-motion=system] *,:root[data-motion=system] :before,:root[data-motion=system] :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}.panel-title{margin:0 0 12px;font-size:1.05rem}.panel>.hint:first-of-type{margin-top:0}.login-form{flex-direction:column;max-width:360px;display:flex}.login-form .field-label{margin-top:10px}.login-form .button-row{align-items:center;gap:16px;margin-top:16px}.text-input{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);font:inherit;border-radius:8px;padding:9px 12px;transition:border-color .15s,box-shadow .15s}.text-input:focus,.input-row input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent);outline:none}.success{color:var(--ok);margin:12px 0 0;font-weight:600}.sync-badge{color:var(--muted);align-items:center;gap:8px;font-size:.9rem;display:flex}.sync-badge.is-error{color:var(--danger)}.sync-dot{background:var(--ok);width:8px;height:8px;box-shadow:0 0 0 3px color-mix(in srgb, var(--ok) 25%, transparent);border-radius:50%;flex-shrink:0}.sync-badge.is-error .sync-dot{background:var(--danger);box-shadow:0 0 0 3px color-mix(in srgb, var(--danger) 25%, transparent)}.loading-line{align-items:center;gap:10px;margin:0;display:flex}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin}.password-field{position:relative}.password-field .text-input{padding-right:46px}.password-toggle{width:38px;height:38px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;transition:color .15s;display:grid;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.password-toggle:hover,.password-toggle[aria-pressed=true]{color:var(--text)}.password-toggle:active{transform:translateY(-50%)scale(.9)}.eye-icon{width:22px;height:22px}.eye-cutout{fill:var(--bg)}.eye-slash-gap{stroke:var(--bg);stroke-width:4.5px;stroke-linecap:round}.eye-slash{stroke:currentColor;stroke-width:2px;stroke-linecap:round}.label-note{color:var(--muted);font-weight:400}.auth-switch{border-top:1px solid var(--border);color:var(--muted);margin:16px 0 0;padding-top:14px;font-size:.9rem}:root{--k-kolokwium:#e5484d;--k-egzamin:#8a56d6;--k-projekt:#0f9aa8;--k-inne:#7a7a85}:root[data-theme=dark]{--k-kolokwium:#ff6b70;--k-egzamin:#b08af0;--k-projekt:#3cc6d4;--k-inne:#9a9aa3}.kind-kolokwium{--k:var(--k-kolokwium)}.kind-egzamin{--k:var(--k-egzamin)}.kind-projekt{--k:var(--k-projekt)}.kind-inne{--k:var(--k-inne)}.small{font-size:.85rem}.section-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-head .day-title,.section-head .panel-title{margin-bottom:10px}.panel>.section-head{margin-bottom:12px}.panel>.section-head .panel-title{margin-bottom:0}.section-head:has(>.section-title){margin:20px 0 10px}.section-head>.section-title{margin:0}.section-title{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:20px 0 10px;font-size:.8rem}.button.small{padding:6px 12px;font-size:.85rem}.tab.is-icon{place-items:center;padding:7px 10px;display:grid}.tab-icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}@media (width<=420px){.tab{padding:7px 10px}}.upcoming{margin-bottom:16px}.upcoming .section-title{margin-top:4px}.deadline-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.deadline-item{--k:var(--k-inne);background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--k);animation:.28s ease-out both rise-in;animation-delay:calc(min(var(--i,0), 8) * 35ms);border-radius:10px;align-items:center;gap:10px;padding:8px 12px;display:flex}.deadline-item.kind-kolokwium{--k:var(--k-kolokwium)}.deadline-item.kind-egzamin{--k:var(--k-egzamin)}.deadline-item.kind-projekt{--k:var(--k-projekt)}.deadline-check{border:2px solid var(--border);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;place-items:center;width:24px;height:24px;transition:background-color .15s,border-color .15s;display:grid}.deadline-check svg{fill:none;stroke:#fff;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;opacity:0;width:14px;height:14px;transition:opacity .15s,transform .2s cubic-bezier(.3,1.5,.5,1);transform:scale(.5)}.deadline-check[aria-pressed=true]{background:var(--ok);border-color:var(--ok)}.deadline-check[aria-pressed=true] svg{opacity:1;transform:scale(1)}.deadline-main{min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;gap:2px;padding:0;display:flex}.deadline-top{align-items:baseline;gap:8px;min-width:0;display:flex}.deadline-kind{text-transform:uppercase;letter-spacing:.03em;color:var(--k);flex-shrink:0;font-size:.72rem;font-weight:700}.deadline-title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.deadline-main{overflow:hidden}.deadline-meta{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;display:block;overflow:hidden}.deadline-countdown{color:var(--muted);flex-shrink:0;font-size:.8rem;font-weight:700}.deadline-item.urgency-urgent .deadline-countdown{color:var(--k-kolokwium)}.deadline-item.urgency-soon .deadline-countdown{color:var(--warn)}.deadline-item.urgency-urgent:not(.is-done){background:color-mix(in srgb, var(--k) 8%, var(--surface))}.deadline-item.is-done{opacity:.6}.deadline-item.is-done .deadline-title{text-decoration:line-through}.dialog{border:1px solid var(--border);background:var(--surface);width:min(480px,100vw - 24px);max-height:calc(100dvh - 24px);color:var(--text);border-radius:16px;padding:0;box-shadow:0 20px 60px #0000004d}.dialog[open]{animation:.22s cubic-bezier(.2,1.2,.4,1) both dialog-in}.dialog::backdrop{background:#00000073;animation:.2s both fade-in}@keyframes dialog-in{0%{opacity:0;transform:translateY(16px)scale(.97)}}@keyframes fade-in{0%{opacity:0}}.dialog-body{padding:16px 18px 18px}.dialog-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.dialog-header h2{margin:0;font-size:1.15rem}.dialog-close{background:var(--bg);width:32px;height:32px;color:var(--muted);cursor:pointer;border:0;border-radius:50%;flex-shrink:0;place-items:center;padding:0;transition:color .15s,background-color .15s;display:grid}.dialog-close svg{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;width:16px;height:16px}.dialog-close:hover{color:var(--text);background:var(--border)}.alias-list.is-disabled{opacity:.5}.form-grid{flex-direction:column;gap:12px;display:flex}.field{flex-direction:column;min-width:0;display:flex}.field .field-label{margin-bottom:4px}.field-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:10px;display:grid}select.text-input{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 18px) 55%,calc(100% - 13px) 55%;background-repeat:no-repeat;background-size:5px 5px;padding-right:32px}input[type=date].text-input,input[type=time].text-input{min-width:0;min-height:40px}@supports (-webkit-touch-callout:none){input[type=date].text-input,input[type=time].text-input{appearance:none;width:100%;display:block}input[type=date]::-webkit-date-and-time-value{text-align:left}input[type=time]::-webkit-date-and-time-value{text-align:left}}.segmented{flex-wrap:wrap;gap:6px;display:flex}.segment{border:1px solid var(--border);background:var(--bg);min-width:0;color:var(--muted);font:inherit;cursor:pointer;border-radius:8px;flex:1;padding:7px 10px;font-size:.85rem;font-weight:600;transition:background-color .15s,color .15s,border-color .15s}@media (width<=420px){.segmented{grid-template-columns:1fr 1fr;display:grid}}.segment.is-active{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.check-field{cursor:pointer;align-items:center;gap:8px;display:flex}.check-field input{width:18px;height:18px;accent-color:var(--accent)}.dialog-actions{align-items:center;gap:8px;margin-top:4px;display:flex}.spacer{flex:1}.note-field{flex-direction:column;gap:4px;display:flex}.note-input{resize:vertical;min-height:2.6em;line-height:1.4}.note-status{min-height:1.1em;color:var(--muted);text-align:right;font-size:.75rem;transition:color .2s}.note-status.is-saved{color:var(--ok)}.course-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.course-list>li{animation:.3s ease-out both rise-in;animation-delay:calc(min(var(--i,0), 10) * 35ms)}.course-row{border:1px solid var(--border);border-left:4px solid var(--c);background:var(--surface);width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:10px;align-items:center;gap:12px;padding:12px 14px;transition:transform .16s,box-shadow .16s;display:flex}.course-row-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.course-row-name{font-weight:600}.course-row-meta{color:var(--muted);font-size:.85rem}.course-row-note{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;font-style:italic;overflow:hidden}.course-row-badge{background:color-mix(in srgb, var(--k-kolokwium) 15%, transparent);color:var(--k-kolokwium);border-radius:999px;flex-shrink:0;padding:3px 8px;font-size:.75rem;font-weight:700}.course-row-chevron{fill:none;width:18px;height:18px;stroke:var(--muted);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}@media (hover:hover){.course-row:hover{transform:translateY(-1px);box-shadow:0 6px 16px #0000001a}}.back-button{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:4px;margin:4px 0 8px -6px;padding:6px 10px 6px 4px;font-weight:600;display:inline-flex}.course-topbar{justify-content:space-between;align-items:center;gap:8px;display:flex}.course-switch{align-items:center;gap:6px;margin:4px 0 8px;display:flex}.course-switch .icon-button{width:36px;height:36px}.course-switch-count{min-width:4.5ch;color:var(--muted);text-align:center;font-variant-numeric:tabular-nums;font-size:.85rem}.back-button svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.course-header{margin-bottom:12px;padding:4px 0 12px}.course-page .course-header,.course-header.opt-header,.course-header.program-header{border-left:4px solid var(--c);padding-left:14px}.course-header h2{margin:0 0 4px;font-size:1.35rem}.course-header p{margin:2px 0}.course-next{color:color-mix(in srgb, var(--c) 70%, var(--text));font-weight:600}.collapsible{margin-top:12px}.collapsible>summary{cursor:pointer;color:var(--muted);padding:6px 0;font-size:.9rem;font-weight:600}.collapsible[open]>summary{margin-bottom:8px}.course-day{color:var(--muted);margin:8px 0 6px;font-size:.85rem;font-weight:700}.card-badges{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.badge{background:color-mix(in srgb, var(--muted) 15%, transparent);color:var(--muted);border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:.72rem;font-weight:700;display:inline-flex}.badge-deadline{background:color-mix(in srgb, var(--k) 16%, transparent);color:var(--k)}.badge-icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:12px;height:12px}.card-details .note-field{margin-top:8px}.card-actions{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.card.is-custom{border-style:dashed dashed dashed solid}button.grid-event{text-align:left;font:inherit;color:inherit;cursor:pointer;flex-direction:column;justify-content:flex-start;align-items:stretch;font-size:.78rem;display:flex}.grid-event-meta{display:block}.grid-event.is-custom{border-style:dashed dashed dashed solid;border-color:var(--c)}.grid-event-flags{gap:3px;display:flex;position:absolute;top:4px;right:4px}.flag{border-radius:50%;width:7px;height:7px}.flag-deadline{background:var(--k-kolokwium);box-shadow:0 0 0 2px var(--surface)}.flag-note{background:var(--muted)}.flag-edited{background:var(--warn)}:root[data-motion=off] .dialog::backdrop{animation:none}.week-actions{justify-content:flex-end;margin:-4px 0 10px;display:flex}.dialog-subtitle{color:var(--muted);margin:-6px 0 0;font-weight:600}.card-original{background:color-mix(in srgb, var(--warn) 12%, transparent);color:var(--text);border-radius:8px;padding:6px 10px;font-size:.8rem}.card.is-cancelled{opacity:.7}.card.is-cancelled .card-hint{color:var(--danger)}.grid-event.is-cancelled{opacity:.5;background:repeating-linear-gradient(-45deg, color-mix(in srgb, var(--c) 10%, var(--surface)), color-mix(in srgb, var(--c) 10%, var(--surface)) 6px, var(--surface) 6px, var(--surface) 12px)}.material-group+.material-group{border-top:1px solid var(--border);margin-top:16px;padding-top:14px}.material-heading{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 8px;font-size:.8rem}.material-list{flex-direction:column;gap:4px;margin:0 0 10px;padding:0;list-style:none;display:flex}.material-item{background:var(--bg);border-radius:8px;align-items:center;gap:10px;padding:6px 4px 6px 10px;animation:.24s ease-out both rise-in;display:flex}.material-icon{fill:none;width:20px;height:20px;stroke:var(--accent);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.material-name{min-width:0;color:var(--text);font:inherit;text-align:left;cursor:pointer;overflow-wrap:anywhere;background:0 0;border:0;flex-direction:column;flex:1;padding:0;font-weight:600;text-decoration:none;display:flex}.material-name:hover{color:var(--accent)}.material-meta{color:var(--muted);font-size:.75rem;font-weight:400}.material-action,.material-delete{width:36px;height:36px;color:var(--muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:8px;flex-shrink:0;place-items:center;margin-left:-6px;font-size:1.2rem;line-height:1;transition:background-color .12s,transform .12s;display:grid}.material-action:active,.material-delete:active{background:var(--border)}@media (hover:hover) and (pointer:fine){.material-action:active,.material-delete:active{transform:scale(.94)}}.material-action svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.material-action:hover{color:var(--accent)}.material-delete:hover{color:var(--danger)}.material-form{flex-direction:column;gap:8px;display:flex}.crash{max-width:720px;margin:16px auto}.crash-details{white-space:pre-wrap;color:var(--muted);font-size:.8rem}.color-list{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:0 0 12px;padding:0;list-style:none;display:grid}.color-row{border:1px solid color-mix(in srgb, var(--c) 40%, var(--border));border-left:4px solid var(--c);background:color-mix(in srgb, var(--c) 14%, var(--surface));border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:6px 6px 6px 12px;display:flex}.color-sample{font-size:.9rem;font-weight:600}.color-input{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;flex-shrink:0;width:36px;height:30px;padding:0}.color-input::-webkit-color-swatch-wrapper{padding:3px}.color-input::-webkit-color-swatch{border:0;border-radius:5px}.material-item.is-broken{opacity:.6}.material-name:disabled{cursor:default}.material-item .button.small{flex-shrink:0;padding:5px 10px;font-size:.8rem}.material-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.upload-progress{color:var(--muted);flex-direction:column;gap:6px;margin:0 0 10px;font-size:.85rem;display:flex}.upload-progress progress{appearance:none;background:var(--border);border:0;border-radius:999px;width:100%;height:6px;overflow:hidden}.upload-progress progress::-webkit-progress-bar{background:var(--border)}.upload-progress progress::-webkit-progress-value{background:var(--accent);transition:width .2s}.upload-progress progress::-moz-progress-bar{background:var(--accent)}.panel.error-panel{margin:0 0 16px}.account-line{color:var(--muted);margin:-4px 0 16px;font-size:.9rem}.compact .app{padding-top:6px}.compact .panel{margin-bottom:10px;padding:12px}.compact .timeline,.compact .deadline-list,.compact .course-list{gap:4px}.compact .card>summary{gap:10px;padding:6px 10px}.compact .card-meta{margin-top:1px}.compact .card-badges{margin-top:3px}.compact .day-title{margin:10px 0 6px}.compact .gap-note{padding-top:0;padding-bottom:0}.compact .course-row{padding:8px 12px}.compact .deadline-item{padding:5px 10px}.compact .week-day+.week-day{margin-top:4px}.setting-row{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:10px 0;display:flex}.panel-title+.hint+.setting-row,.panel-title+.setting-row{border-top:0}label.setting-row{cursor:pointer}.setting-text{flex-direction:column;flex:200px;gap:2px;min-width:0;display:flex}.setting-label{font-weight:600}.setting-hint{color:var(--muted);font-size:.8rem}.setting-choice{flex:0 auto}.setting-choice .segment{flex:0 auto;padding:6px 12px}@media (width<=520px){.segmented.setting-choice{flex-wrap:wrap;flex:100%;display:flex}.setting-choice .segment{flex:auto}}.switch{appearance:none;background:var(--border);cursor:pointer;border-radius:999px;flex-shrink:0;width:44px;height:26px;margin:0;transition:background-color .18s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .2s cubic-bezier(.3,1.3,.5,1);position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000004d}.switch:checked{background:var(--accent)}.switch:checked:after{transform:translate(18px)}.switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.alias-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.alias-row{grid-template-columns:minmax(0,1fr) 140px;align-items:center;gap:12px;display:grid}.alias-name{overflow-wrap:anywhere;font-size:.9rem}.alias-input{padding:6px 10px}.week-number{color:var(--muted);font-size:.8rem;font-weight:600}.day-title .week-number{margin-left:auto}.course-fullname{color:var(--muted);font-size:.85rem}.gate{text-align:center;max-width:520px;margin:24px auto 0}.gate-icon{margin:8px 0 12px;font-size:2.6rem;line-height:1}.gate-title{margin:0 0 12px;font-size:1.3rem}.gate p{margin:0 0 12px}.gate .loading-line{justify-content:center;padding:24px 0}.gate-actions{justify-content:center;margin:16px 0 4px}.gate-footer{border-top:1px solid var(--border);color:var(--muted);padding-top:14px;font-size:.85rem;margin-top:20px!important}.tab-icon-wrap{place-items:center;display:grid;position:relative}.tab-alert{background:var(--danger);width:8px;height:8px;box-shadow:0 0 0 2px var(--surface);border-radius:50%;position:absolute;top:-3px;right:-4px}.count-pill{background:var(--danger);color:#fff;vertical-align:2px;border-radius:999px;place-items:center;min-width:20px;height:20px;margin-left:8px;padding:0 6px;font-size:.75rem;display:inline-grid}.access-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.access-row{background:var(--bg);border-left:3px solid var(--border);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;padding:8px 10px;display:flex}.access-row.is-pending{border-left-color:var(--warn)}.access-row.is-approved{border-left-color:var(--ok)}.access-row.is-rejected{opacity:.65}.access-main{flex-direction:column;min-width:0;display:flex}.access-email{overflow-wrap:anywhere;font-weight:600}.access-meta{color:var(--muted);font-size:.8rem}.access-actions{gap:6px;display:flex}.access-visits{flex-wrap:wrap;align-items:center;gap:2px 8px;display:flex}.visit-days{gap:2px;display:inline-flex}.visit-days i{background:var(--border);border-radius:2px;width:8px;height:8px}.visit-days i.is-on{background:var(--ok)}.access-summary{margin:0 0 8px;font-weight:600}@supports (-webkit-touch-callout:none){input,textarea,select{font-size:max(16px,1em)!important}}.card-title-link{color:inherit;font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;padding:0;font-weight:600;display:inline}.card-title-link:hover{text-underline-offset:3px;text-decoration:underline}.card-title-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.optimizer-entry{border:1px solid color-mix(in srgb, var(--accent) 35%, var(--border));background:color-mix(in srgb, var(--accent) 10%, var(--surface));width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:12px;align-items:center;gap:14px;margin:8px 0 4px;padding:14px 16px;transition:transform .16s,box-shadow .16s;display:flex}@media (hover:hover){.optimizer-entry:hover{transform:translateY(-1px);box-shadow:0 6px 16px #0000001a}}.optimizer-entry-icon{background:var(--accent);border-radius:10px;flex-shrink:0;place-items:center;width:40px;height:40px;display:grid}.optimizer-entry-icon svg{fill:none;width:22px;height:22px;stroke:var(--accent-text);stroke-width:2.2px;stroke-linecap:round}.optimizer-entry-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.optimizer-entry-text span{color:var(--muted);font-size:.85rem}.opt-header{--c:var(--accent)}.opt-progress{appearance:none;background:var(--border);border:0;border-radius:999px;width:100%;height:6px;margin-top:10px;overflow:hidden}.opt-progress::-webkit-progress-bar{background:var(--border)}.opt-progress::-webkit-progress-value{background:var(--accent);transition:width .2s}.opt-progress::-moz-progress-bar{background:var(--accent)}.opt-sync{margin:4px 0 12px}.opt-sync .sync{min-height:1.5em;margin:0}.opt-sync .spinner{width:12px;height:12px}.opt-sync .opt-progress{margin-top:6px}.opt-sync .error{margin:6px 0 0}.opt-stale{color:var(--warn)}.opt-block{border-top:1px solid var(--border);margin-top:14px;padding-top:12px}.inline-time{align-items:center;gap:6px;display:inline-flex}.inline-time .text-input{width:auto;min-height:0;padding:3px 8px}.chip-list{flex-wrap:wrap;gap:6px;margin:8px 0;padding:0;list-style:none;display:flex}.chip{background:color-mix(in srgb, var(--danger) 12%, var(--surface));color:var(--text);border-radius:999px;align-items:center;gap:4px;padding:4px 4px 4px 10px;font-size:.85rem;font-weight:600;display:inline-flex}.chip-remove{width:22px;height:22px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.chip-remove svg{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;width:13px;height:13px}.blocked-form{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr) auto;gap:6px;margin-top:8px;display:grid}.blocked-form .text-input{padding:6px 8px}.pin-list{flex-direction:column;gap:6px;margin:8px 0 0;padding:0;list-style:none;display:flex}.pin-row{background:var(--bg);border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.pin-main{flex-direction:column;min-width:0;display:flex}.pin-name{font-weight:600}.candidate.is-highlight{border-color:var(--ok);box-shadow:0 0 0 1px var(--ok)}.candidate-title{align-items:center;gap:8px;margin:0 0 10px;font-size:1rem;display:flex}.opt-badge{background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--accent)}.metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}@media (width<=600px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}.metric{background:var(--bg);border-radius:8px;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.metric-label{color:var(--muted);font-size:.75rem}.metric-value{flex-wrap:wrap;align-items:baseline;gap:6px;font-weight:700;display:flex}.metric-delta{font-size:.75rem;font-weight:700}.metric-delta.is-better{color:var(--ok)}.metric-delta.is-worse{color:var(--danger)}.change-list{flex-direction:column;gap:6px;margin:12px 0 0;padding:0;list-style:none;display:flex}.change-list li{border-left:3px solid var(--warn);flex-direction:column;padding-left:10px;display:flex}.change-course{font-size:.9rem;font-weight:600}.change-groups{font-size:.85rem}.opt-note{background:color-mix(in srgb, var(--ok) 12%, var(--surface));border-radius:10px;padding:10px 12px;font-size:.9rem}.preview-nav{margin-top:0}.icon-button:disabled{opacity:.4;cursor:default}.optimizer .section-head{margin-bottom:12px}.optimizer .section-head .panel-title,.optimizer .section-head .candidate-title{margin:0}.alpha-badge{background:color-mix(in srgb, var(--warn) 18%, transparent);color:var(--warn);letter-spacing:.04em;text-transform:uppercase;vertical-align:2px;border-radius:999px;margin-left:6px;padding:1px 7px;font-size:.7rem;font-weight:700;display:inline-block}.dialog.dialog-wide{width:min(1100px,100vw - 32px)}.preview-grid{max-height:70vh;padding-right:4px;overflow-y:auto}.grid-event.is-highlight{box-shadow:0 0 0 2px var(--warn);z-index:1}.grid-event.is-readonly{cursor:default}@media (hover:hover){.grid-event.is-readonly:hover{filter:none}}.app{overflow-x:clip}.swipe-page{z-index:2;background:var(--bg);position:relative}.swipe-page.is-swiping{will-change:transform;box-shadow:-10px 0 24px #00000024}.swipe-under{z-index:1;background:var(--bg);pointer-events:none;visibility:hidden;position:fixed;bottom:0;left:0;right:0;overflow:hidden}.swipe-under.is-active{visibility:visible}.swipe-under-inner{max-width:1100px;margin:0 auto;padding:0 16px;transform:translate(-30%)}.swipe-dim{background:#0000001f;position:absolute;inset:0}.swipe-debug{left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));z-index:50;color:#fff;white-space:pre-wrap;pointer-events:none;background:#000c;border-radius:10px;margin:0;padding:8px 10px;font:11px/1.4 ui-monospace,Menlo,monospace;position:fixed}.tabs{touch-action:pan-y}.tabs .tab.is-active{cursor:grab}.tabs.is-dragging .tab.is-active{color:var(--muted)}.tabs.is-dragging .tab.is-under{color:var(--accent-text)}.view-enter-right{animation:.26s ease-out both slide-from-right}.view-enter-left{animation:.26s ease-out both slide-from-left}.own-photos{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px;margin:0 0 10px;padding:0;list-style:none;display:grid}.own-photo{aspect-ratio:1;border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:10px;width:100%;padding:0;display:block;overflow:hidden}.own-photo img{object-fit:cover;width:100%;height:100%;display:block}.own-photo-full{border-radius:8px;max-width:100%;max-height:65dvh;margin:0 auto 12px;display:block}button.link-like{font:inherit;color:var(--accent);text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.wat-stale{border-left:4px solid var(--warn);background:color-mix(in srgb, var(--warn) 10%, var(--surface));border-radius:10px;margin:-4px 0 14px;padding:10px 12px;font-size:.88rem}.wat-stale p{margin:0 0 8px}.wat-stale-actions{flex-wrap:wrap;gap:8px;display:flex}.wat-stale-actions a.button{text-decoration:none}.wat-how{color:var(--muted);margin-top:8px}.wat-how summary{cursor:pointer;font-weight:600}.wat-how ol{margin:6px 0 0;padding-left:1.2rem}.wat-how li+li{margin-top:4px}.reminder-device{background:var(--bg);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;margin:12px 0 4px;padding:10px 12px;display:flex}.reminder-device .muted{margin:0;font-size:.88rem}.reminder-state{color:var(--muted);font-weight:600}.reminder-state.is-on{color:var(--ok)}.reminder-actions{gap:8px;display:flex}.week-actions{flex-wrap:wrap;gap:8px}.export-layout{gap:16px;display:grid}@media (width>=900px){.export-layout{grid-template-columns:minmax(300px,380px) 1fr;align-items:start}.export-result{position:sticky;top:16px}}.export-week{margin:8px 0 0}.export-notes{gap:6px;margin:8px 0 12px;padding:0;list-style:none;display:grid}.check-row{cursor:pointer;align-items:flex-start;gap:8px;font-size:.9rem;display:flex}.check-row input{width:18px;height:18px;accent-color:var(--accent);flex:none;margin:1px 0 0}.export-preview{border:1px solid var(--border);background:var(--surface);border-radius:12px;place-items:center;min-height:200px;padding:12px;display:grid}.export-preview img{border-radius:6px;width:100%;height:auto;display:block;box-shadow:0 2px 12px #0000001f}.export-preview.is-portrait img{max-width:380px}.export-buttons{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-top:12px;display:grid}.export-buttons .button{justify-items:center;gap:2px;padding:10px 12px;display:grid}.export-button-hint{opacity:.75;font-size:.72rem;font-weight:500}.remember-row{margin:4px 0 2px}.remember-row .setting-hint{margin-top:2px;display:block}.account-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;display:flex}.link-button.danger-link{color:var(--danger)}.dialog-form{gap:10px;display:grid}.dialog-form p{margin:0}.plain-list{gap:2px;margin:0;padding-left:20px;display:grid}.help-entry{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;align-items:center;gap:12px;display:flex}.help-entry-icon,.help-fact-icon{background:color-mix(in srgb, var(--accent) 14%, transparent);width:36px;height:36px;color:var(--accent);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.help-entry-icon svg,.help-fact-icon svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.help-entry-text{flex:1;gap:2px;display:grid}.help-entry-text span{color:var(--muted);font-size:.85rem}.help-facts{gap:14px;margin:0;padding:0;list-style:none;display:grid}@media (width>=900px){.help-facts{grid-template-columns:1fr 1fr}}.help-fact{gap:12px;display:flex}.help-fact>span:last-child{gap:3px;font-size:.92rem;display:grid}.help-table{gap:4px;margin:0;display:grid}.help-table dt{margin-top:8px;font-weight:700}.help-table dt:first-child{margin-top:0}.help-table dd{color:var(--muted);margin:0;font-size:.92rem}.help-list{gap:8px;font-size:.92rem}.help-list a{color:var(--accent)}.faq{border-top:1px solid var(--border)}.faq:first-of-type{border-top:0}.faq summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;font-weight:600;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"";border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);flex-shrink:0;width:8px;height:8px;margin-right:4px;transition:transform .2s;transform:rotate(45deg)translateY(-2px)}.faq[open] summary:after{transform:rotate(225deg)translateY(-2px)}.faq-answer{color:var(--muted);padding:0 0 14px;font-size:.92rem;animation:.2s ease-out faq-open}@keyframes faq-open{0%{opacity:0;transform:translateY(-4px)}}.help-footer{text-align:center;margin-top:8px}.extra-search{gap:8px;margin-top:8px;display:grid}.extra-search-row{gap:8px;display:flex}.extra-search-row .text-input{flex:1}.extra-courses{gap:6px;max-height:260px;margin:12px 0;padding:0;list-style:none;display:grid;overflow-y:auto}.extra-courses .setting-hint{display:block}.extra-loading{margin-top:12px}.extra-results{margin-top:14px}.extra-fits{gap:8px;margin:0;padding:0;list-style:none;display:grid}.extra-fit{border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;padding:10px 12px;animation:.24s ease-out both rise-in;display:flex}.extra-fit.is-best{border-color:var(--ok);box-shadow:0 0 0 1px var(--ok)}.extra-fit-main{gap:2px;font-size:.92rem;display:grid}.extra-fit-tags{flex-wrap:wrap;place-content:flex-start flex-end;gap:6px;display:flex}.extra-tag{background:var(--bg);color:var(--muted);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:.78rem;font-weight:600}.extra-tag.is-better{color:var(--ok)}.extra-tag.is-worse{color:var(--danger)}.extra-tag.is-best{background:var(--ok);color:#fff}.welcome{text-align:center;padding:20px 4px 8px}.welcome-icon{border-radius:15px;width:64px;height:64px;box-shadow:0 6px 18px #00000024,0 0 0 1px #0000000d}.welcome-title{letter-spacing:-.02em;margin:14px 0 4px;font-size:1.9rem}.welcome-lead{max-width:420px;color:var(--muted);margin:0 auto}.welcome-features{text-align:left;gap:14px;max-width:460px;margin:22px auto 8px;padding:0;list-style:none;display:grid}.welcome-features li{align-items:flex-start;gap:12px;display:flex}.welcome-features li>span:last-child{gap:2px;font-size:.92rem;display:grid}@media (width>=900px){.welcome-features{grid-template-columns:repeat(3,1fr);max-width:none}}.landing .panel{max-width:560px;margin-left:auto;margin-right:auto}.landing .gate-footer{text-align:center}.auth-loading{min-height:120px}.segmented.auth-mode{flex-wrap:nowrap;margin-bottom:4px}@media (width<=700px){.topbar .tabs{width:100%}.topbar .tab{flex:1;padding-left:6px;padding-right:6px}.topbar .tab.is-icon{flex:none;padding-left:12px;padding-right:12px}}.week-day.is-free .day-title{color:var(--muted);font-size:1rem;font-weight:600}.free-label{margin-left:auto;font-size:.85rem;font-weight:500}.app-version{text-align:center;color:var(--muted);margin:20px 0 8px;font-size:.8rem}@media (width>=900px){.course-columns{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;gap:16px;display:grid}.course-side>.section-head:first-child .section-title{margin-top:0}}.day-title.next-title{margin-bottom:2px}.next-when{color:var(--muted);margin:0 0 12px;font-weight:500}.extra-fit-side{align-content:space-between;justify-items:end;gap:8px;display:grid}.update-banner{left:50%;bottom:calc(16px + env(safe-area-inset-bottom));z-index:40;background:var(--surface);border:1px solid var(--border);white-space:nowrap;border-radius:999px;align-items:center;gap:12px;padding:8px 8px 8px 16px;font-weight:600;animation:.32s cubic-bezier(.2,.8,.2,1) both update-in;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 8px 28px #0000002e}.update-banner .button{border-radius:999px}@keyframes update-in{0%{opacity:0;transform:translate(-50%,16px)}}@media (width<=700px){.extra-fit-side{justify-items:start;width:100%}.extra-fit-tags{justify-content:flex-start}}.help-report .button{margin-top:4px}.help-diagnostics{background:var(--bg);white-space:pre-wrap;word-break:break-word;-webkit-user-select:all;user-select:all;border-radius:8px;margin:10px 0 0;padding:10px;font-size:.75rem}.first-steps .section-head{margin-bottom:8px}.first-steps-count{font-size:.85rem;font-weight:600}.first-step{gap:4px;font-size:.92rem;animation:.26s first-step-in;display:grid}.first-step p{margin:0}.first-step-actions{gap:8px;margin-top:8px;display:flex}@keyframes first-step-in{0%{opacity:0;transform:translate(12px)}}.segmented.deadline-filter{flex-wrap:nowrap;grid-template-columns:repeat(4,1fr);margin:0 0 12px}.segmented.deadline-filter .segment{padding-left:4px;padding-right:4px;font-size:.85rem}.checklist{gap:4px;margin:4px 0 8px;padding:0;list-style:none;display:grid}.checklist li{justify-content:space-between;align-items:center;gap:8px;display:flex}.checklist .is-done{color:var(--muted);text-decoration:line-through}.checklist-add{gap:8px;display:flex}.checklist-add .text-input{flex:1}.deadline-progress{color:var(--ok);margin-top:2px;font-size:.78rem;font-weight:600;display:block}.export-source{background:color-mix(in srgb, var(--warn) 14%, transparent);border-radius:10px;margin:8px 0 0;padding:8px 12px;font-size:.92rem}.candidate-actions{flex-wrap:wrap;gap:6px;display:flex}.usos-link{color:var(--accent);white-space:nowrap;font-size:.8rem;font-weight:600}.view-as-user-bar{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--text);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 12px;margin:4px 0 8px;padding:8px 12px;font-size:.88rem;font-weight:600;animation:.22s ease-out both rise-in;display:flex}.view-as-user{margin-bottom:12px}.feedback-count{background:var(--now);color:#fff;text-align:center;vertical-align:2px;border-radius:999px;min-width:1.4em;margin-left:8px;padding:1px 6px;font-size:.75rem;font-weight:600;display:inline-block}.feedback .form-grid .segmented{grid-template-columns:repeat(2,1fr)}.testers-lead{margin:-4px 0 14px}.testers-alpha{margin-bottom:22px}.feedback-start{justify-content:space-between;align-items:center;gap:12px;display:flex}.feedback-start p{margin:2px 0 0;font-size:.88rem}.feedback-start .button{flex-shrink:0}.feedback-thumbs{flex-wrap:wrap;gap:8px;margin:0 0 8px;padding:0;list-style:none;display:flex}.feedback-thumbs li{background:var(--border);border-radius:10px;width:76px;height:76px;position:relative;overflow:hidden}.feedback-thumbs img,.feedback-thumbs video{object-fit:cover;width:100%;height:100%;display:block}.feedback-thumbs .chip-remove{color:#fff;background:#0000008c;border-radius:999px;position:absolute;top:3px;right:3px}.feedback-thumb-size{color:#fff;background:#0000008c;border-radius:4px;padding:0 4px;font-size:.65rem;position:absolute;bottom:3px;left:4px}.feedback-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.feedback-item{border:1px solid var(--border);border-radius:12px;padding:12px}.feedback-item.is-new{border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.feedback-toggle{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:block}.feedback-meta{flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:.9rem;display:flex}.feedback-meta .muted{overflow-wrap:anywhere;font-size:.8rem}.feedback-status{background:color-mix(in srgb, var(--muted) 15%, transparent);color:var(--muted);border-radius:999px;margin-left:auto;padding:1px 8px;font-size:.72rem;font-weight:600}.feedback-status.is-new{background:color-mix(in srgb, var(--accent) 15%, transparent);color:var(--accent)}.feedback-status.is-done{background:color-mix(in srgb, var(--ok) 15%, transparent);color:var(--ok)}.feedback-excerpt{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:6px 0 0;font-size:.85rem;display:-webkit-box;overflow:hidden}.feedback-body{gap:6px;margin:8px 0 0;display:grid}.feedback-body div{grid-template-columns:4.2em 1fr;gap:8px;display:grid}.feedback-body dt{color:var(--muted);padding-top:1px;font-size:.8rem}.feedback-body dd{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.feedback-details{gap:10px;animation:.2s ease-out rise-in;display:grid}.feedback-attachments{gap:8px;display:grid}.feedback-attachment{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:.85rem;display:flex}.feedback-media{border-radius:10px;max-width:100%;max-height:60vh;display:block}.feedback-reply{background:color-mix(in srgb, var(--accent) 8%, transparent);border-radius:10px;margin-top:8px;padding:8px 10px}.feedback-reply p{white-space:pre-wrap;margin:2px 0 0}.feedback-actions{flex-wrap:wrap;gap:8px;display:flex}.feedback .panel>.segmented{margin-bottom:10px}.feedback-attachment-open{justify-items:start;gap:6px;display:grid}.tester-tasks .opt-progress{margin:4px 0 8px}.tester-task-list{gap:4px;margin:8px 0 0;padding:0;list-style:none;display:grid}.tester-task-list li{border-top:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:12px;padding:8px 0;display:flex}.tester-task-list li:first-child{border-top:0}.tester-task-list li .check-row>span{gap:2px;display:grid}.tester-task-list li.is-done strong{color:var(--muted);text-decoration:line-through}.tester-task-list .link-button{flex:none;padding-top:2px;font-size:.85rem}.notification-group{margin-bottom:16px}.notification-day{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 6px;font-size:.8rem;font-weight:600}.notification-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.notification{border:1px solid var(--border);background:var(--surface);border-radius:12px;gap:12px;padding:12px;animation:.2s ease-out rise-in;display:flex}.notification.is-new{border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.notification-icon{background:color-mix(in srgb, var(--accent) 12%, transparent);width:32px;height:32px;color:var(--accent);border-radius:9px;flex:none;place-items:center;display:grid}.notification.kind-plan .notification-icon{background:color-mix(in srgb, var(--warn) 15%, transparent);color:var(--warn)}.notification.kind-deadline .notification-icon{background:color-mix(in srgb, var(--now) 12%, transparent);color:var(--now)}.notification-icon svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.notification-text{flex:1;min-width:0}.notification-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.notification-text p{white-space:pre-wrap;overflow-wrap:anywhere;margin:2px 0 0}.notification-lines{margin:4px 0 0;padding-left:18px}.notification-lines li{overflow-wrap:anywhere}.notification-kind{color:var(--muted);margin-top:4px;font-size:.72rem;display:inline-block}.tab-icon.tab-icon-filled{fill:currentColor;stroke:none}.tab-badge{background:var(--danger);color:#fff;text-align:center;min-width:16px;height:16px;box-shadow:0 0 0 2px var(--surface);border-radius:8px;padding:0 4px;font-size:.65rem;font-weight:700;line-height:16px;position:absolute;top:-6px;right:-8px}@media (width<=420px){.topbar .tabs{gap:2px}.topbar .tab.is-icon{padding-left:8px;padding-right:8px}}@media (width<=350px){.topbar .tab{padding-left:4px;padding-right:4px;font-size:.9rem}.topbar .tab.is-icon{padding-left:6px;padding-right:6px}}.staff-list{gap:6px;margin-bottom:12px;display:grid}.staff-person{border:1px solid var(--border);color:inherit;border-radius:10px;gap:2px;padding:8px 10px;text-decoration:none;transition:background-color .15s;display:grid}.staff-person:hover{background:color-mix(in srgb, var(--accent) 6%, transparent)}.staff-name{font-weight:600}.staff-title{color:var(--muted);font-weight:400}.staff-details{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:2px 10px;font-size:.82rem;display:flex}.staff-link{color:var(--accent)}.staff-roles{font-size:.85rem}.course-counts{gap:8px;margin:0 0 12px;padding:0;list-style:none;display:grid}.course-counts li{grid-template-columns:1fr auto;gap:2px 12px;font-size:.9rem;display:grid}.course-counts .opt-progress{grid-column:1/-1;margin:0}.course-info .link-button{margin-top:8px;display:inline-block}.change-request{margin-left:8px;font-size:.85rem}.group-change{gap:12px;display:grid}.group-change-steps{gap:16px;margin:0;padding-left:20px;display:grid}.group-change-people{flex-wrap:wrap;gap:4px 12px;margin:6px 0;display:flex}.mail-box{border:1px solid var(--border);background:var(--surface);border-radius:10px;gap:6px;padding:10px;display:grid}.mail-subject{overflow-wrap:anywhere;font-size:.88rem}.mail-body{white-space:pre-wrap;font:inherit;margin:0;font-size:.88rem;line-height:1.45}.free-windows{gap:12px;display:grid}.friend-chips{flex-wrap:wrap;gap:6px;display:flex}.friend-chips .chip{border:1px solid var(--border);background:var(--surface);cursor:pointer;font:inherit;padding:5px 12px;font-size:.88rem}.friend-chips .chip.is-active{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.free-days{gap:10px;margin:0;padding:0;list-style:none;display:grid}.free-days li{border-bottom:1px solid var(--border);gap:2px;padding-bottom:8px;display:grid}.free-days li:last-child{border-bottom:0}.free-window{font-weight:600}.calendar-note{color:var(--warn);margin:-4px 0 10px;font-size:.9rem;font-weight:600}.day-calendar-note{color:var(--warn);margin:2px 0 0;font-size:.85rem;font-weight:600}.week-day:not(.is-free) .day-calendar-note{margin-bottom:8px}.week-grid.is-compact{--grid-hours:1.4rem;gap:4px 3px}.week-body>.week-grid.is-compact{--page-side:16px;margin-left:calc(-1 * var(--page-side));padding-right:calc(var(--grid-hours) + 3px - var(--page-side))}.week-grid.is-compact .grid-day-head{flex-direction:column;align-items:center;padding:3px 0;line-height:1.15;display:flex}.grid-day-name{text-transform:capitalize;font-size:.7rem;font-weight:600}.grid-day-number{font-size:.95rem;font-weight:700}.week-grid.is-compact .grid-hours span{font-size:.68rem;right:3px}.week-grid.is-compact .grid-col{border-radius:6px}.week-grid.is-compact .grid-event{border:1px solid color-mix(in srgb, var(--c) 70%, var(--surface));text-align:center;border-radius:5px;padding:0 2px;font-size:.7rem;line-height:1.1;container-type:inline-size}.grid-event-body{margin:auto 0;display:block}.week-grid.is-compact .grid-event.is-custom{border-style:dashed;border-color:var(--c)}.week-grid.is-compact .grid-event-flags{top:2px;right:2px}.week-grid.is-compact .flag{width:5px;height:5px}.week-grid.is-compact .grid-col.is-today{background-color:color-mix(in srgb, var(--accent) 8%, var(--surface));outline:none}.week-grid.is-compact .grid-event-title{-webkit-hyphens:auto;hyphens:auto;overflow-wrap:anywhere;-webkit-line-clamp:3;line-height:1.2}.week-grid.is-compact .grid-event>*{flex-shrink:0}.week-grid.is-compact .grid-event-meta{white-space:nowrap;text-overflow:ellipsis;font-size:.62rem;overflow:hidden}.grid-event-time{font-size:.6rem;font-size:clamp(.5rem, calc(96cqi / var(--time-em,6.4)), .6rem);color:var(--muted);display:block;overflow:hidden}.week-grid.is-compact .calendar-label{font-size:.6rem}.grid-day-head .calendar-label{color:var(--warn);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:.7rem;font-weight:600;line-height:1.45;display:block;overflow:hidden}.grid-day-head.is-today .calendar-label{color:var(--accent-text);opacity:.85}.brand-row{align-items:center;gap:12px;display:flex}@media (width<=700px){.brand-row{justify-content:space-between;width:100%}}.lang-toggle{gap:6px;display:flex}.lang-key{min-width:46px;height:38px;color:var(--muted);font:inherit;letter-spacing:.02em;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:0 8px;font-size:1.15rem;font-weight:600;line-height:1;transition:background-color .15s,color .15s}.lang-key.is-active{background:var(--accent);color:var(--accent-text);box-shadow:0 1px 0 color-mix(in srgb, var(--text) 25%, transparent)}.brand-actions{align-items:center;gap:6px;display:flex}.share-app{width:40px;height:38px;color:var(--accent);cursor:pointer;background:0 0;border:none;border-radius:8px;place-items:center;display:grid}.share-app svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.share-app.is-copied{color:var(--ok)}.lang-key:active{box-shadow:none;transform:translateY(1px)}.check-row.is-disabled{opacity:.55;cursor:default}.extra-include{margin-bottom:12px}.extra-included-list{gap:6px;margin:0 0 8px;padding:0;list-style:none;display:grid}.extra-included-list li{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.extra-included-list .link-button{flex:none}.change-list.is-extra li{border-left-color:var(--accent)}.opt-note.is-warn{background:color-mix(in srgb, var(--warn) 14%, var(--surface))}.week-actions{flex-wrap:nowrap}.week-actions .label-short{display:none}@media (width<=600px){.week-actions .button{white-space:nowrap;flex:1 1 0;min-width:0;padding-inline:8px}.week-actions .label-long{display:none}.week-actions .label-short{display:inline}}.card-restore{font-size:inherit;margin-left:8px}.program-header{--c:var(--accent)}.program-steps{gap:3px;margin:4px 0 6px;display:flex}.program-step{flex:var(--hours,1) 1 0;min-width:18px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:4px;padding:4px 0;display:flex}.program-step-bar{background:var(--border);border-radius:4px;width:100%;height:8px;overflow:hidden}.program-step-bar>span{background:var(--accent);height:100%;transition:width .3s;display:block}.program-step-number{font-size:.75rem}.program-step.is-now .program-step-number{color:var(--accent);font-weight:700}.program-position{margin:2px 0 6px}.program-source{color:var(--muted);margin:0 0 14px;font-size:.82rem}.program-source>summary{cursor:pointer;list-style:none}.program-source>summary::-webkit-details-marker{display:none}.program-source-more{color:var(--accent);text-decoration:underline}.program-source p{margin:6px 0 0}.program-semester,.program-course{scroll-margin-top:90px}.program-semester{margin-bottom:10px}.program-semester.is-current{border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.program-semester>summary,.program-course>summary{cursor:pointer;list-style:none}.program-semester>summary::-webkit-details-marker{display:none}.program-course>summary::-webkit-details-marker{display:none}.program-semester>summary{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:2px 8px;display:grid}.program-semester>summary:before{content:"";border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);width:7px;height:7px;margin:0 4px 0 2px;transition:transform .16s;transform:rotate(-45deg)}.program-semester[open]>summary:before{transform:rotate(45deg)}.program-semester-head{align-items:center;gap:8px;min-width:0;display:flex}.program-semester-title{font-weight:700}.program-semester.is-past .program-semester-title{color:var(--muted)}.program-semester-load{color:var(--muted);grid-column:2;font-size:.8rem}.program-now,.program-in-plan{background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--accent)}.program-ects{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:.85rem}.program-courses{margin:10px 0 0;padding:0;list-style:none}.program-courses>li+li{border-top:1px solid var(--border)}.program-course{border-radius:8px}.program-course>summary{grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:10px 0;display:grid}.program-course-name{font-weight:600}.program-course-ects{color:var(--muted);white-space:nowrap;font-size:.85rem}.program-course-meta{color:var(--muted);flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:2px 8px;font-size:.8rem;display:flex}.program-course-body{padding:0 0 14px}.program-about{margin:2px 0 0}.program-field h4{color:var(--muted);margin:12px 0 2px;font-size:.78rem}.program-field p{white-space:pre-line;overflow-wrap:anywhere;margin:0;font-size:.9rem}.program-topics{margin:0;padding-left:18px;font-size:.9rem}.program-topics li{margin:2px 0}@media (width>=760px){.program-topics{columns:2;column-gap:32px}.program-topics li{break-inside:avoid}}.program-links{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.program-link{border:1px solid color-mix(in srgb, var(--accent) 40%, var(--border));color:var(--accent);font:inherit;text-align:left;cursor:pointer;background:0 0;border-radius:999px;padding:3px 10px;font-size:.82rem}.program-link span{color:var(--muted)}.program-literature{margin-top:12px}.program-literature>summary{cursor:pointer;color:var(--muted);font-size:.78rem;font-weight:700}.program-literature p{color:var(--muted);white-space:pre-line;overflow-wrap:anywhere;margin:6px 0 0;font-size:.85rem}.program-course-links{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.program-course-links a.button{text-decoration:none}.program-electives{margin-top:6px}.is-flash{animation:1.6s program-flash}@keyframes program-flash{0%,30%{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 45%, transparent)}to{box-shadow:0 0 0 3px #0000}}@media (prefers-reduced-motion:reduce){.is-flash{animation:none}}.assessment-rows{margin:0;padding:0;list-style:none}.assessment-rows>li{flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:7px 0;display:flex}.assessment-rows>li+li{border-top:1px solid var(--border)}.assessment-form{text-align:center;background:color-mix(in srgb, var(--c) 14%, transparent);min-width:92px;color:color-mix(in srgb, var(--c) 72%, var(--text));border-radius:6px;flex-shrink:0;padding:1px 8px;font-size:.78rem;font-weight:700}.assessment-text{flex:160px}.assessment-add{align-items:baseline;gap:10px;margin-left:auto;font-size:.85rem;display:flex}.assessment-grading{margin:10px 0 0;font-size:.85rem}.assessment-source{color:var(--muted);margin:10px 0 0;font-size:.8rem}.course-row-assessment{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.assessment-notes h4{color:var(--muted);margin:12px 0 4px;font-size:.78rem}.assessment-notes ul{margin:0;padding-left:18px;font-size:.85rem}.assessment-notes li{margin:3px 0}.assessment-panel>summary{cursor:pointer;align-items:center;gap:10px;list-style:none;display:flex}.assessment-panel>summary::-webkit-details-marker{display:none}.assessment-panel-head{flex:1;gap:2px;min-width:0;display:grid}.assessment-panel-head .panel-title{margin:0}.assessment-panel-summary{color:var(--muted);font-size:.85rem}.assessment-panel-chevron{fill:none;width:20px;height:20px;stroke:var(--muted);stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;transition:transform .18s}.assessment-panel[open] .assessment-panel-chevron{transform:rotate(180deg)}.assessment-panel[open]>summary{margin-bottom:10px}.assessment-panel .score{border-top:1px solid var(--border);margin-top:14px;padding-top:12px}.score-title{margin:0;font-size:.95rem}.course-note{margin-top:16px}.score .section-head{margin-bottom:4px}.score>.muted{margin:8px 0 10px;font-size:.9rem}.score-part{padding:10px 0}.score-part+.score-part{border-top:1px solid var(--border)}.score-part-head{flex-wrap:wrap;align-items:baseline;gap:4px 10px;display:flex}.score-part-sum{font-variant-numeric:tabular-nums;font-weight:700}.score-status{font-size:.82rem}.score-status.is-ok{color:var(--ok)}.score-status.is-bad{color:var(--danger)}.score-items{flex-wrap:wrap;gap:8px 12px;margin-top:8px;display:flex}.score-item{color:var(--muted);align-items:center;gap:6px;font-size:.85rem;display:flex}.score-item-label{text-align:right;min-width:.9em}.score-items-each{color:var(--muted);align-self:center;font-size:.8rem}.score-input.text-input{text-align:center;font-variant-numeric:tabular-nums;width:3.6em;padding:6px 8px;font-size:1rem}.score-input.is-invalid{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger)}.score-summary{border-top:1px solid var(--border);margin-top:6px;padding-top:12px}.score-bar{margin:0 6px 6px}.score-bar-track{background:color-mix(in srgb, var(--muted) 18%, transparent);border-radius:5px;height:10px;position:relative}.score-bar-potential,.score-bar-fill{border-radius:5px;transition:width .25s;position:absolute;inset:0 auto 0 0}.score-bar-potential{background:color-mix(in srgb, var(--accent) 22%, transparent)}.score-bar-fill{background:var(--accent)}.score-bar-tick{background:var(--muted);border-radius:1px;width:2px;margin-left:-1px;position:absolute;top:-3px;bottom:-3px}.score-bar-tick.is-reached{background:var(--text)}.score-bar-labels{height:1.3em;color:var(--muted);margin-top:3px;font-size:.75rem;position:relative}.score-bar-labels>span{white-space:nowrap;position:absolute;transform:translate(-50%)}.score-bar-labels>.is-reached{color:var(--text);font-weight:700}.score-total{margin:4px 0 0}.score-lines{margin:4px 0 0;padding:0;font-size:.9rem;list-style:none}.score-lines li{margin:2px 0}.score-lines .is-ok{color:var(--ok);font-weight:600}.score-lines .is-bad{color:var(--danger);font-weight:600}.scoring-rows{margin:0;padding:0;list-style:none}.scoring-rows li{grid-template-columns:minmax(0,1fr) 5.5em auto;align-items:center;gap:8px;margin-bottom:6px;display:grid}.scoring-add{align-self:flex-start}.scoring-scale{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;display:grid}.scoring-scale label{color:var(--muted);flex-direction:column;align-items:center;gap:2px;font-size:.8rem;font-weight:700;display:flex}.scoring-scale .text-input{text-align:center;padding:7px 4px}.scoring-hint{margin:6px 0 0;font-size:.8rem}.class-dates{gap:8px}.segmented.class-dates-modes{flex-wrap:nowrap;display:flex}.class-dates-modes .segment{padding:7px 6px;font-size:.8rem}.class-dates-count .text-input{max-width:7rem}.class-dates-parity{flex-wrap:wrap;gap:6px 18px;display:flex}.class-dates-list{border:1px solid var(--border);border-radius:8px;max-height:220px;margin:0;padding:4px 10px;list-style:none;overflow-y:auto}.class-dates-list li{padding:5px 0}.class-dates-add{align-items:center;gap:8px;display:flex}.class-dates-add .text-input{flex:1;min-width:0}.class-dates-chips{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.class-dates-chips li{background:color-mix(in srgb, var(--accent) 12%, var(--surface));border-radius:999px;align-items:center;gap:4px;padding:3px 4px 3px 10px;font-size:.85rem;display:flex}.course-remove{color:var(--danger);margin:14px 0 8px;font-size:.9rem;display:block}.hide-course-lead,.hide-course-note{margin:0}.hide-course-note{font-size:.85rem}.hide-course-options{flex-direction:column;gap:10px;display:flex}.hidden-classes{margin-top:14px}.hidden-classes ul{margin:6px 0 0;padding:0;list-style:none}.hidden-classes li{justify-content:space-between;align-items:baseline;gap:12px;padding:6px 0;display:flex}.hidden-classes li+li{border-top:1px solid var(--border)}.program-average{margin:0 0 6px;font-size:.9rem}.program-grade{color:var(--text);font-weight:700}.program-semester-average{color:var(--text);font-weight:600}.grade-picker{gap:6px;margin-top:4px;display:flex}.grade-option{border:1px solid var(--border);background:var(--bg);min-width:0;max-width:56px;color:var(--text);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;border-radius:8px;flex:1;padding:7px 0;font-weight:600;transition:background-color .15s,border-color .15s}.grade-option.is-active{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}:root{--search-bar-h:52px}.search-reveal{visibility:hidden;opacity:0;flex-direction:column;justify-content:flex-end;height:0;display:flex;overflow:hidden}.search-reveal.is-open{height:var(--search-bar-h);visibility:visible;opacity:1}.search-reveal.is-dropping{animation:.24s cubic-bezier(.2,.8,.2,1) search-open}.search-reveal.is-closing{animation:.2s forwards search-collapse}@keyframes search-open{0%{opacity:0;height:0}}@keyframes search-collapse{to{opacity:0;height:0}}.search-bar{height:var(--search-bar-h);flex-shrink:0;align-items:center;gap:12px;padding:2px 0 10px;display:flex}.search-field{background:color-mix(in srgb, var(--muted) 16%, var(--surface));border-radius:10px;flex:1;align-items:center;gap:8px;padding:0 12px;display:flex}.search-field svg{fill:none;width:18px;height:18px;stroke:var(--muted);stroke-width:2.2px;stroke-linecap:round;flex-shrink:0}.search-field input{min-width:0;height:40px;color:var(--text);font:inherit;appearance:none;background:0 0;border:none;outline:none;flex:1;font-size:1rem}.search-field input::-webkit-search-decoration{-webkit-appearance:none;display:none}.search-field input::-webkit-search-results-decoration{-webkit-appearance:none;display:none}.search-field input::-webkit-search-cancel-button{-webkit-appearance:none;display:none}.search-clear{width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;place-items:center;margin-right:-6px;padding:0;display:grid}.search-clear svg{width:18px;height:18px}.search-clear circle{fill:currentColor;stroke:none}.search-clear path{fill:none;stroke:var(--surface);stroke-width:2.2px;stroke-linecap:round}.search-cancel{font-size:1rem;text-decoration:none}.search-results{padding:0 0 16px}.search-hint{color:var(--muted);margin:18px 4px;font-size:.9rem}.search-group-title{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:16px 4px 6px;font-size:.78rem}.search-group ul{background:var(--surface);border-radius:12px;margin:0;padding:0;list-style:none;overflow:hidden}.search-group li+li{border-top:1px solid var(--border)}.search-hit{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;gap:2px;padding:10px 14px;display:flex}.search-hit.is-active{background:color-mix(in srgb, var(--accent) 10%, var(--surface))}.search-hit-title{font-weight:600}.search-hit-title mark{color:var(--accent);background:0 0}.search-hit-detail,.search-hit-snippet{color:var(--muted);overflow-wrap:anywhere;font-size:.82rem}.search-hit-snippet{font-style:italic}.search-more{margin:6px 4px 0;font-size:.85rem}
