:root,[data-theme=light]{--background:0 0% 100%;--foreground:222 47% 11%;--card:0 0% 100%;--card-foreground:222 47% 11%;--muted:210 40% 96%;--muted-foreground:215 16% 47%;--accent:210 40% 96%;--accent-foreground:222 47% 11%;--border-hsl:214 32% 91%;--ring:222 47% 11%;--danger-hsl:0 84% 60%;--success-hsl:142 71% 45%;--brand-hsl:222 47% 11%;--brand:hsl(var(--brand-hsl));--brand-hover:hsl(var(--brand-hsl) / .85);--brand-foreground:hsl(var(--background));--bg-color:hsl(var(--background));--surface:hsl(var(--card));--surface-muted:hsl(var(--muted));--surface-hover:hsl(var(--accent));--text-main:hsl(var(--foreground));--text-muted:hsl(var(--muted-foreground));--border:hsl(var(--border-hsl));--primary:var(--brand);--primary-hover:var(--brand-hover);--danger:hsl(var(--danger-hsl));--success:hsl(var(--success-hsl));--course-meta-control-height:2.125rem;--radius:.5rem;--transition:all .15s ease-in-out}[data-color-scheme=blue]{--brand-hsl:207 90% 45%}[data-color-scheme=blue][data-theme=dark]{--brand-hsl:207 80% 55%}[data-color-scheme=green]{--brand-hsl:152 60% 38%}[data-color-scheme=green][data-theme=dark]{--brand-hsl:152 55% 48%}[data-color-scheme=purple]{--brand-hsl:262 70% 50%}[data-color-scheme=purple][data-theme=dark]{--brand-hsl:262 60% 62%}[data-color-scheme=orange]{--brand-hsl:25 95% 50%}[data-color-scheme=orange][data-theme=dark]{--brand-hsl:25 85% 55%}[data-color-scheme=pink]{--brand-hsl:330 75% 50%}[data-color-scheme=pink][data-theme=dark]{--brand-hsl:330 65% 60%}[data-color-scheme=teal]{--brand-hsl:180 65% 35%}[data-color-scheme=teal][data-theme=dark]{--brand-hsl:180 55% 48%}[data-color-scheme=gold]{--brand-hsl:45 90% 42%}[data-color-scheme=gold][data-theme=dark]{--brand-hsl:45 80% 52%}[data-color-scheme=red]{--brand-hsl:0 72% 48%}[data-color-scheme=red][data-theme=dark]{--brand-hsl:0 65% 58%}[data-color-scheme=indigo]{--brand-hsl:240 60% 52%}[data-color-scheme=indigo][data-theme=dark]{--brand-hsl:240 55% 65%}[data-color-scheme=yellow],[data-color-scheme=yellow][data-theme=dark]{--brand-hsl:60 100% 50%;--brand-foreground:#1a1a1a}[data-theme=dark]{--background:222 47% 8%;--foreground:0 0% 100%;--card:222 40% 12%;--card-foreground:0 0% 100%;--muted:220 20% 18%;--muted-foreground:215 16% 80%;--accent:220 20% 20%;--accent-foreground:0 0% 100%;--border-hsl:220 15% 25%;--ring:0 0% 100%;--danger-hsl:0 70% 55%;--success-hsl:142 60% 45%;--brand-hsl:0 0% 100%;--brand:hsl(var(--brand-hsl));--brand-hover:hsl(var(--brand-hsl) / .85);--brand-foreground:hsl(var(--background));--bg-color:hsl(var(--background));--surface:hsl(var(--card));--surface-muted:hsl(var(--muted));--surface-hover:hsl(var(--accent));--text-main:hsl(var(--foreground));--text-muted:hsl(var(--muted-foreground));--border:hsl(var(--border-hsl));--primary:var(--brand);--primary-hover:var(--brand-hover);--danger:hsl(var(--danger-hsl));--success:hsl(var(--success-hsl))}*,:before,:after{box-sizing:border-box;border-color:var(--border)}html{height:100%}@supports (height:100dvh){html{height:100dvh}}body{background:var(--bg-color);height:100%;color:var(--text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.5;overflow:hidden}#root{flex-direction:column;height:100%;min-height:0;display:flex}h1,h2,h3{letter-spacing:-.02em;margin:0;font-weight:700}p{margin:0}.glass-panel{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;padding:1.5rem;box-shadow:0 1px 2px #0000000d}.program-view{box-sizing:border-box;width:100%;min-width:0;max-width:none;padding:1.5rem 2rem}.program-view-title{margin:0 0 .5rem}.program-view-intro{margin:0 0 1.25rem}.backup-page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.5rem;display:flex}.backup-page-header .program-view-title{margin-bottom:0}.program-view-stack{flex-direction:column;gap:1.25rem;width:100%;min-width:0;display:flex}.program-view-stack>.glass-panel,.program-view-panel{width:100%;min-width:0;max-width:none}.program-view-panel{padding:1.25rem}.program-view-panel-heading{margin:0 0 .75rem;font-size:1.05rem}.program-view-panel-text{margin:0 0 1rem;font-size:.875rem}.phix-license-summary-list{color:var(--foreground);margin:0 0 1rem;padding-left:1.25rem;font-size:.875rem;line-height:1.55}.phix-license-summary-list li+li{margin-top:.45rem}.course-meta-row{flex-wrap:wrap;align-items:flex-end;gap:.75rem 1.25rem;display:flex}.course-class-data-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:1rem 1.5rem;display:grid}.course-class-data-grid .course-meta-field{flex:initial;min-width:0}.course-meta-class-kursstufe-row{height:var(--course-meta-control-height);min-height:var(--course-meta-control-height);max-height:var(--course-meta-control-height);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:.75rem;min-width:0;display:grid}.course-meta-class-kursstufe-row .course-meta-kursstufe-checkbox>span{line-height:1.2}.course-meta-field{flex-direction:column;flex:none;gap:.25rem;display:flex}.course-meta-label{margin:0;line-height:1.25;display:block}.course-meta-label--spacer{visibility:hidden;-webkit-user-select:none;user-select:none;pointer-events:none}.course-meta-input{box-sizing:border-box;font-variant-numeric:tabular-nums}.course-meta-input--year{width:10.5ch;min-width:10.5ch;max-width:100%}.course-meta-input--class{width:6.5ch;min-width:6.5ch;max-width:8ch}.course-meta-field--kursstufe .course-meta-kursstufe-checkbox{margin-top:0}.help-contact-mail-wrap{text-align:center;margin-bottom:0}.help-contact-mail{color:var(--primary);font-weight:600}.help-faq-panel{margin-top:1.25rem}.help-start-tips-panel{margin-bottom:1rem}.help-start-tips{color:var(--text-main);margin:.5rem 0 0;padding-left:1.25rem;font-size:.9375rem;line-height:1.55}.help-start-tips li+li{margin-top:.65rem}.help-faq-panel .program-view-panel-heading{margin-bottom:.85rem}.help-faq-table{border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);overflow:hidden}.help-faq-row{border-bottom:1px solid var(--border)}.help-faq-row:last-child{border-bottom:none}.help-faq-row__toggle{background:var(--surface-muted);width:100%;color:inherit;cursor:pointer;text-align:left;font:inherit;border:none;justify-content:space-between;align-items:center;gap:.75rem;margin:0;padding:.85rem 1rem;display:flex}.help-faq-row__toggle:hover{background:color-mix(in srgb, var(--surface-muted) 70%, var(--primary) 8%)}.help-faq-row__question{font-size:.9rem;font-weight:600;line-height:1.4}.help-faq-row__chevron{opacity:.65;flex-shrink:0;transition:transform .2s}.help-faq-row--open .help-faq-row__chevron{transform:rotate(180deg)}.help-faq-row__answer{background:var(--surface);border-top:1px solid var(--border);padding:.85rem 1rem 1rem}.help-faq-row__answer p{color:var(--text-muted);margin:0;font-size:.875rem;line-height:1.5}.klassenlehrer-geldlisten-section{flex-direction:column;gap:.75rem;margin-top:1.5rem;display:flex}.klassenlehrer-create-buttons{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem .75rem;width:100%;max-width:40rem;margin-top:.75rem;display:grid}.klassenlehrer-create-buttons .tab{text-align:center;justify-content:center;width:100%}@media (width<=520px){.klassenlehrer-create-buttons{grid-template-columns:1fr;max-width:none}}.klassenlehrer-external-form-options.settings-course-check-options{flex-flow:column;align-items:stretch;gap:.5rem;width:100%;margin-top:.5rem}.klassenlehrer-external-form-options .phix-checkbox-option,.klassenlehrer-external-form-options .settings-tests-written-option{box-sizing:border-box;width:100%;max-width:100%;margin-top:0}:is(.klassenlehrer-external-form-options .phix-checkbox-option:has(input:disabled),.klassenlehrer-external-form-options .settings-tests-written-option:has(input:disabled)){opacity:.6;cursor:not-allowed}.klassenlehrer-external-add{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.5rem;display:flex}.klassenlehrer-external-add-label{width:100%;font-size:.875rem;font-weight:600}.klassenlehrer-external-add-input{width:8rem;max-width:100%}.klassenlehrer-external-add-error{width:100%;margin:0}.klassenlehrer-external-row-remove{vertical-align:middle;margin-left:.25rem;padding:0 .35rem;font-size:.75rem;line-height:1}.klassenlehrer-money-tabs{flex-wrap:wrap;gap:.5rem;padding-bottom:.25rem;display:flex;overflow-x:auto}.klassenlehrer-money-tabpanel{margin-top:.25rem}.klassenlehrer-money-tab-btn{text-align:left;flex-direction:column;align-items:flex-start;gap:.15rem;min-width:0;max-width:100%;display:flex}.klassenlehrer-money-tab-title{font-weight:600;line-height:1.25}.klassenlehrer-money-tab-line{font-size:inherit;opacity:.92;font-weight:400;line-height:1.25}.klassenlehrer-money-tab-btn--all-paid.tab.secondary{background:hsl(var(--success-hsl) / .14);border-color:hsl(var(--success-hsl) / .38);color:#346546}.klassenlehrer-money-tab-btn--all-paid.tab.secondary:hover{background:hsl(var(--success-hsl) / .2)}.klassenlehrer-money-tab-btn--all-paid.tab.active{background:hsl(var(--success-hsl) / .24);border-color:hsl(var(--success-hsl) / .48);color:#30553d}.klassenlehrer-money-paid-due-row{flex-wrap:wrap;justify-content:flex-end;align-items:baseline;gap:.35rem .75rem;display:flex}.klassenlehrer-money-due-inline{white-space:nowrap;margin:0}.klassenlehrer-money-panel-actions{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.25rem;display:flex}.klassenlehrer-list-delete-btn{align-items:center;gap:.35rem;margin-left:auto;display:inline-flex}.klassenlehrer-remark-col{vertical-align:top;width:42%;min-width:14rem}.klassenlehrer-remark-cell{vertical-align:top;padding:.35rem .5rem}.klassenlehrer-remark-input{resize:vertical;box-sizing:border-box;field-sizing:content;width:100%;min-height:2.75rem;max-height:10rem;font-size:.875rem;line-height:1.45}.klassenlehrer-money-panel{flex-direction:column;gap:.75rem;display:flex}.klassenlehrer-money-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.klassenlehrer-money-header-main{flex:auto;min-width:0}.klassenlehrer-money-title{margin:0}.klassenlehrer-money-meta{margin:.35rem 0 0;font-size:.875rem}.klassenlehrer-money-header-stats{text-align:right;flex:none}.klassenlehrer-money-paid-count{white-space:nowrap;margin:0}.klassenlehrer-money-paid-sum{color:hsl(var(--muted-foreground));white-space:nowrap;margin:.35rem 0 0;font-size:.875rem}.klassenlehrer-money-table-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;border:1px solid var(--border);border-radius:.5rem;flex:none;max-height:min(24rem,55vh);overflow:auto}.klassenlehrer-money-table-scroll .data-table{table-layout:fixed;width:100%}.klassenlehrer-money-table-scroll thead th{z-index:2;background:hsl(var(--muted));box-shadow:0 1px 0 var(--border);position:sticky;top:0}.klassenlehrer-money-table-scroll th.klassenlehrer-num-col,.klassenlehrer-money-table-scroll td.klassenlehrer-num-col{font-variant-numeric:tabular-nums;white-space:nowrap;box-sizing:border-box;width:2.75rem;min-width:2.75rem;max-width:2.75rem;padding-left:.25rem;padding-right:.25rem}.klassenlehrer-money-table-scroll th.klassenlehrer-name-col,.klassenlehrer-money-table-scroll td.klassenlehrer-name-col{text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box;width:5.5rem;max-width:5.5rem;padding-left:.4rem;padding-right:.4rem;overflow:hidden}.klassenlehrer-money-table-scroll th.klassenlehrer-paid-col,.klassenlehrer-money-table-scroll td.klassenlehrer-paid-col{box-sizing:border-box;width:5.75rem;min-width:5.75rem;max-width:5.75rem;padding-left:.5rem;padding-right:.5rem}.program-view-panel-cta{justify-content:center;width:100%;font-weight:600}.backup-action-btn{align-items:center;gap:.5rem;margin-top:.75rem;display:inline-flex}.backup-action-btn--danger:not(:disabled){border-color:var(--danger,#c62828);color:var(--danger,#c62828)}.backup-restore-warning{margin-bottom:.5rem}.backup-file-label,.backup-confirm-label{flex-direction:column;gap:.35rem;margin-top:1rem;display:flex}.backup-file-label-text,.backup-confirm-label-text{color:var(--text-muted);font-size:.9rem}.backup-confirm-input{max-width:20rem}.backup-selected-file{margin:.35rem 0 0;font-size:.9rem}.backup-feedback{margin:.75rem 0 0;font-size:.95rem}.backup-feedback--error{color:var(--danger,#c62828)}.backup-feedback--ok{color:var(--success,#2e7d32)}.export-item-list{flex-direction:column;gap:.5rem;margin-top:.75rem;display:flex}.export-section__toggle{width:100%;color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;gap:.75rem;margin:0;padding:0;display:flex}.export-section__title{margin:0}.export-section__chevron{opacity:.65;flex-shrink:0;transition:transform .2s}.export-section--open .export-section__chevron{transform:rotate(180deg)}.export-section__body{border-top:1px solid var(--border);margin-top:.85rem;padding-top:.85rem}.export-section__body .export-item-list,.export-section__body>.export-item-row:first-of-type,.export-section__body>.export-format-btn:first-child{margin-top:.75rem}.export-item-btn{text-align:left;justify-content:flex-start;align-items:flex-start;gap:.5rem;width:100%;padding:.65rem .85rem;display:inline-flex}.export-item-btn__text{flex-direction:column;gap:.15rem;min-width:0;display:flex}.export-item-btn__label{font-weight:600}.export-item-btn__sublabel{font-size:.85rem;font-weight:400}.export-item-row{background:#ffffff0a;border:1px solid #ffffff14;border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;padding:.55rem .65rem;display:flex}.export-item-row__meta{flex-direction:column;flex:10rem;gap:.12rem;min-width:0;display:flex}.export-item-row__actions{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.export-course-full-actions{margin-top:.75rem}.export-format-btn{white-space:nowrap;align-items:center;gap:.35rem;display:inline-flex}.backup-subsection{border-top:1px solid var(--border);margin-top:1.15rem;padding-top:1.15rem}.backup-subsection:first-of-type{margin-top:.85rem}.export-section__body>.backup-subsection:first-of-type{border-top:none;margin-top:.85rem;padding-top:0}.backup-subsection__title{color:var(--text-main);margin:0 0 .75rem;font-size:.95rem;font-weight:600}.backup-section-divider{margin:1.25rem 0}.backup-mode-fieldset{border:0;margin:0 0 1rem;padding:0}.backup-mode-fieldset .backup-file-label-text{color:var(--text-muted);margin-bottom:.35rem;font-size:.9rem;font-weight:500;display:block}.backup-export-mode-options{flex-flow:column;align-items:stretch;gap:.5rem;width:100%;margin-top:0}.backup-export-mode-options .phix-radio-option{box-sizing:border-box;width:100%;max-width:100%;margin-top:0}.backup-export-mode-options .phix-radio-option span{white-space:normal;line-height:1.45}.backup-user-select-wrap{margin-top:1rem}.backup-user-select-wrap .program-user-mgmt-input{box-sizing:border-box;width:100%;max-width:100%}.backup-admin-user-actions{margin-top:.75rem}.auto-backup-card{background:var(--bg-card,#ffffff0a);border:1px solid var(--border-color,#ffffff14);border-radius:var(--radius-md,8px);margin-bottom:1rem;padding:1rem}.auto-backup-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.85rem;margin-top:.85rem;display:grid}.auto-backup-field{flex-direction:column;gap:.35rem;display:flex}.auto-backup-field label{color:var(--text-muted);font-size:.85rem;font-weight:500}.auto-backup-field input,.auto-backup-field select{box-sizing:border-box;width:100%}.auto-backup-toggle-row{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.65rem;margin-bottom:.75rem;display:flex}.auto-backup-toggle-row input[type=checkbox]{cursor:pointer;width:1.1rem;height:1.1rem}.auto-backup-toggle-label{color:var(--text-main);font-size:.95rem;font-weight:600}.auto-backup-status-panel{border-left:3px solid var(--accent-color,#3b82f6);background:#00000026;border-radius:4px;flex-direction:column;gap:.5rem;margin-top:.75rem;padding:.75rem 1rem;font-size:.88rem;display:flex}.auto-backup-status-row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.auto-backup-badge{border-radius:4px;align-items:center;gap:.35rem;padding:.15rem .55rem;font-size:.8rem;font-weight:600;display:inline-flex}.auto-backup-badge--success{color:#000;background:#22c55e40;border:1px solid #22c55e66}.auto-backup-badge--error{color:#f87171;background:#ef444433;border:1px solid #ef44444d}.auto-backup-badge--skipped{color:#94a3b8;background:#94a3b833;border:1px solid #94a3b84d}.auto-backup-actions-row{flex-wrap:wrap;gap:.75rem;margin-top:1rem;display:flex}.auto-backup-file-panel{background:var(--bg-card,#0003);border:1px solid var(--border-color,#ffffff14);border-radius:var(--radius-md,6px);margin-top:.85rem;padding:.85rem}.auto-backup-file-panel__header{color:var(--text-main);justify-content:space-between;align-items:center;margin-bottom:.65rem;font-size:.9rem;font-weight:600;display:flex}.auto-backup-file-list{flex-direction:column;gap:.5rem;max-height:280px;display:flex;overflow-y:auto}.auto-backup-file-item{background:#ffffff08;border:1px solid #ffffff0d;border-radius:4px;justify-content:space-between;align-items:center;gap:.75rem;padding:.45rem .65rem;font-size:.85rem;display:flex}.auto-backup-file-item__info{flex-direction:column;min-width:0;display:flex}.auto-backup-file-item__name{color:var(--text-main);word-break:break-all;font-family:monospace;font-size:.85rem;font-weight:600}.auto-backup-file-item__meta{color:var(--text-muted);gap:.65rem;font-size:.75rem;display:flex}.auto-backup-file-item__actions{flex-shrink:0;align-items:center;gap:.35rem;display:flex}.auto-backup-icon-btn{width:28px;height:28px;color:var(--text-main);cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:4px;justify-content:center;align-items:center;padding:0;transition:all .15s;display:inline-flex}.auto-backup-icon-btn:hover:not(:disabled){background:#ffffff26}.auto-backup-icon-btn--danger:hover:not(:disabled){color:#f87171;background:#ef444440;border-color:#ef444466}.app-info-section{min-width:0}.app-info-registration-header{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.app-info-registration-header .program-view-panel-heading{margin:0}.app-info-unregister-btn{flex-shrink:0;margin:0}.app-info-registration-status-block{margin:1.75rem 0 0}.app-info-registration-status{text-align:center;margin:0;font-size:1.35rem;font-weight:600;line-height:1.3}.app-info-registration-thanks{text-align:center;color:var(--text-muted);margin:1rem 0 0;font-size:.95rem;line-height:1.45}.program-view-section-heading{color:var(--text-main);margin:1.5rem 0 .75rem;font-size:1.25rem;font-weight:600}.app-info-version-panel{margin-bottom:.5rem}.app-info-version-brand{justify-content:center;align-items:center;gap:1rem;display:flex}.app-info-version-number{text-align:left;margin:0 0 .5rem;font-size:1.15rem;font-weight:600}.app-info-version-build{text-align:left;margin:0;font-size:.875rem;line-height:1.45}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.program-view-intro--tight{margin-top:-.5rem;margin-bottom:1rem}.legal-content-line{margin:0 0 .35rem;font-size:.9rem;line-height:1.45}.legal-content-line:last-of-type{margin-bottom:0}.legal-content-paragraph{margin:0 0 .75rem;font-size:.875rem;line-height:1.55}.legal-content-paragraph:last-child{margin-bottom:0}.legal-content-section .program-view-panel-heading{margin-bottom:.65rem}.app-info-registration-status--registered{color:#3b9b5e}.app-info-registration-status--unregistered{color:#e11d48}.app-info-registration-desc{margin-bottom:.75rem}.app-info-inline-link{font:inherit;font-size:inherit;line-height:inherit;color:var(--primary);text-underline-offset:2px;cursor:pointer;vertical-align:baseline;background:0 0;border:none;margin:0;padding:0;text-decoration:underline;display:inline}.app-info-inline-link:hover{color:var(--primary-hover)}.app-info-inline-link:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:2px}.support-phix-register-feedback{margin:.65rem 0 0;font-size:.875rem}.support-phix-register-feedback--success{color:#3b9b5e}.support-phix-register-feedback--error{color:hsl(var(--destructive,0 72% 51%))}.app-info-table-wrap{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.app-info-table{border-collapse:collapse;width:100%;font-size:.875rem}.app-info-table th,.app-info-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--border);padding:.5rem .65rem}.app-info-table th{color:var(--text-muted);white-space:nowrap;font-weight:600}.app-info-table tbody tr:last-child td{border-bottom:none}.app-info-table td:nth-child(3){min-width:12rem}.app-info-table__actions-col{white-space:nowrap;vertical-align:top;width:1%}.dependency-license-btn{white-space:nowrap;padding:.25rem .55rem;font-size:.8125rem}.dependency-license-modal-backdrop{z-index:10050;background:hsl(var(--foreground) / .35);box-sizing:border-box;justify-content:center;align-items:center;padding:1.25rem;display:flex;position:fixed;inset:0}.dependency-license-modal-dialog{box-sizing:border-box;flex-direction:column;width:min(42rem,100%);max-height:min(85vh,40rem);padding:1.1rem 1.25rem;display:flex}.dependency-license-modal-header{flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.85rem;display:flex}.dependency-license-modal-body{white-space:pre-wrap;word-break:break-word;min-height:0;color:var(--text-main);background:hsl(var(--muted) / .35);border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);flex:auto;margin:0;padding:.85rem 1rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.75rem;line-height:1.45;overflow:auto}.app-info-code{word-break:break-word;font-size:.8125rem}.app-info-license-list{flex-direction:column;gap:1rem;display:flex}.app-info-license-title{margin:0 0 .35rem;font-size:.95rem}.app-info-license-text{color:var(--text-muted);margin:0;font-size:.875rem;line-height:1.45}.program-user-mgmt{flex-direction:column;gap:1.5rem;width:100%;min-width:0;display:flex}.program-user-mgmt-page-title{margin:0 0 .75rem;font-size:1.05rem}.program-user-mgmt-section{border:1px solid var(--border);background:hsl(var(--background));border-radius:.75rem;width:100%;min-width:0;padding:1rem 1.1rem}.program-user-mgmt-section-title{color:var(--text-main);margin:0 0 .85rem;font-size:.95rem;font-weight:600}.program-user-mgmt-section-alert{margin:0 0 .75rem}.program-user-mgmt-list--wide{gap:0}.program-user-mgmt-list--wide .program-user-mgmt-list-item{border-radius:calc(var(--radius) - 2px);border-bottom:1px solid var(--border);margin:0 -.15rem;padding:.65rem .85rem}.program-user-mgmt-list--wide .program-user-mgmt-list-item:last-child{border-bottom:none}.program-user-mgmt-list--wide .program-user-mgmt-list-item:hover{background:hsl(var(--muted))}.program-user-mgmt-modal-backdrop{z-index:10050;background:#0f172a73;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.program-user-mgmt-modal-dialog{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;width:100%;max-width:min(24rem,100%);max-height:min(90vh,100%);padding:1.25rem 1.35rem;overflow:auto;box-shadow:0 10px 25px -5px #0003,0 8px 10px -6px #0003}.program-user-mgmt-modal-title{margin:0 0 1rem;font-size:1.05rem;font-weight:600;line-height:1.35}.program-user-mgmt-modal-actions{flex-wrap:wrap;align-items:center;gap:.65rem;margin-top:.35rem;display:flex}.program-user-mgmt-token-list{flex-direction:column;gap:.5rem;max-height:260px;padding-right:.25rem;display:flex;overflow-y:auto}.program-user-mgmt-token-card{background:hsl(var(--background) / .6);border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem .75rem;display:flex}.program-user-mgmt-token-info{flex-direction:column;gap:.15rem;display:flex;overflow:hidden}.program-user-mgmt-token-username{color:var(--text-main);font-size:.875rem;font-weight:600}.program-user-mgmt-token-code{color:var(--primary);background:hsl(var(--foreground) / .05);word-break:break-all;border-radius:3px;padding:.1rem .35rem;font-family:monospace;font-size:.8125rem}.program-user-mgmt-form{flex-direction:column;gap:.75rem;display:flex}.program-user-mgmt-label{color:var(--text-main);flex-direction:column;gap:.35rem;font-size:.8125rem;font-weight:500;display:flex}.program-user-mgmt-input{border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);background:hsl(var(--background));color:var(--text-main);padding:.5rem .6rem;font-size:.875rem}.program-user-mgmt-input:focus{box-shadow:0 0 0 2px hsl(var(--background)), 0 0 0 4px hsl(var(--foreground) / .12);outline:none}.program-user-mgmt-form .program-user-mgmt-submit{align-self:flex-end}.program-user-mgmt-submit{border-radius:calc(var(--radius) - 2px);background:var(--primary);color:hsl(var(--background));cursor:pointer;border:none;align-self:flex-start;padding:.45rem .95rem;font-size:.875rem;font-weight:600}.program-user-mgmt-submit:hover{filter:brightness(1.05)}.program-user-mgmt-error{color:var(--danger);margin:0;font-size:.8125rem}.program-user-mgmt-success{color:var(--success);margin:0;font-size:.8125rem}.program-user-mgmt-password-hint,.program-user-mgmt-create-hint{color:var(--text-muted);margin:0;font-size:.8125rem;line-height:1.45}.program-user-mgmt-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.program-user-mgmt-list-item{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.45rem 0;display:flex}.program-user-mgmt-list-item:last-child{border-bottom:none}.program-user-mgmt-name-row{flex-wrap:wrap;align-items:center;gap:.65rem 1rem;min-width:0;display:inline-flex}.program-user-mgmt-admin-check.phix-checkbox-option{border:1px solid var(--border);color:var(--text-main);cursor:pointer;background:0 0;margin:0}.program-user-mgmt-admin-check.phix-checkbox-option:hover{background:hsl(var(--muted))}.program-user-mgmt-name{font-size:.9rem;font-weight:500}.program-user-mgmt-you{color:var(--text-muted);font-size:.8125rem;font-weight:400}.program-user-mgmt-row-actions{--program-user-mgmt-action-h:1.75rem;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.4rem;margin-left:auto;display:inline-flex}.program-user-mgmt-delete-btn{color:var(--danger);border:1px solid hsl(var(--danger-hsl) / .45);border-radius:calc(var(--radius) - 2px);cursor:pointer;background:0 0}.program-user-mgmt-delete-btn:hover:not(:disabled){background:hsl(var(--danger-hsl) / .08)}.program-user-mgmt-delete-btn:disabled{opacity:.45;cursor:not-allowed}.program-user-mgmt-link-btn{color:var(--primary);border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);cursor:pointer;background:0 0}.program-user-mgmt-link-btn:hover{background:hsl(var(--muted))}.program-user-mgmt-link-btn:disabled{opacity:.45;cursor:not-allowed}.settings-course-check-options{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.75rem;display:flex}.settings-course-check-options .phix-checkbox-option,.settings-course-check-options .settings-tests-written-option{margin-top:0}input[type=checkbox]:not(.gfs-gehalten-checkbox),input[type=radio]{accent-color:#2463eb;cursor:pointer;width:1.25rem;min-width:1.25rem;height:1.25rem;min-height:1.25rem;box-shadow:none;vertical-align:middle;border-radius:.3rem;outline:none;flex-shrink:0;margin:0}input[type=radio]{border-radius:50%}input[type=checkbox]:not(.gfs-gehalten-checkbox):focus,input[type=checkbox]:not(.gfs-gehalten-checkbox):focus-visible,input[type=radio]:focus,input[type=radio]:focus-visible{box-shadow:none;outline:none}.switch input[type=checkbox]{accent-color:unset;vertical-align:unset;border-radius:0;width:0!important;min-width:0!important;height:0!important;min-height:0!important}.phix-checkbox-option,.phix-radio-option,.settings-tests-written-option{border-radius:var(--radius);border:1px solid var(--border);background:hsl(var(--muted) / .45);cursor:pointer;width:fit-content;max-width:100%;transition:var(--transition);align-items:center;gap:.65rem;margin-top:.75rem;padding:.45rem .85rem;display:inline-flex}label:has(>input[type=checkbox]):not(:has(>.slider)):not(.gfs-gehalten-label){border-radius:var(--radius);border:1px solid var(--border);background:hsl(var(--muted) / .45);cursor:pointer;width:fit-content;max-width:100%;transition:var(--transition);align-items:center;gap:.65rem;margin-top:.75rem;padding:.45rem .85rem;display:inline-flex}label:has(>input[type=radio]){border-radius:var(--radius);border:1px solid var(--border);background:hsl(var(--muted) / .45);cursor:pointer;width:fit-content;max-width:100%;transition:var(--transition);align-items:center;gap:.65rem;margin-top:.75rem;padding:.45rem .85rem;display:inline-flex}.phix-checkbox-option:hover,.phix-radio-option:hover,.settings-tests-written-option:hover{background:hsl(var(--muted) / .75);border-color:hsl(var(--muted-foreground) / .35)}label:has(>input[type=checkbox]):not(:has(>.slider)):not(.gfs-gehalten-label):hover{background:hsl(var(--muted) / .75);border-color:hsl(var(--muted-foreground) / .35)}label:has(>input[type=radio]):hover{background:hsl(var(--muted) / .75);border-color:hsl(var(--muted-foreground) / .35)}.phix-checkbox-option:has(input:disabled){opacity:.65;cursor:not-allowed}.phix-radio-option:has(input:disabled){opacity:.65;cursor:not-allowed}.settings-tests-written-option:has(input:disabled){opacity:.65;cursor:not-allowed}label:has(>input[type=checkbox]:disabled):not(:has(>.slider)):not(.gfs-gehalten-label){opacity:.65;cursor:not-allowed}label:has(>input[type=radio]:disabled){opacity:.65;cursor:not-allowed}.phix-checkbox-option:not(.phix-checkbox-option--wrap) span,.phix-radio-option:not(.phix-checkbox-option--wrap) span,.settings-tests-written-option span{white-space:nowrap;color:var(--text-main);-webkit-user-select:none;user-select:none;font-size:.9375rem;line-height:1.35}label:has(>input[type=checkbox]):not(:has(>.slider)):not(.gfs-gehalten-label):not(.phix-checkbox-option--wrap)>span{white-space:nowrap;color:var(--text-main);-webkit-user-select:none;user-select:none;font-size:.9375rem;line-height:1.35}label:has(>input[type=radio]):not(.phix-checkbox-option--wrap)>span{white-space:nowrap;color:var(--text-main);-webkit-user-select:none;user-select:none;font-size:.9375rem;line-height:1.35}.phix-checkbox-option--wrap,.phix-radio-option.phix-checkbox-option--wrap,.phix-recovery-card .phix-checkbox-option{box-sizing:border-box;align-items:flex-start;width:100%;min-width:0;max-width:100%;display:flex}.phix-checkbox-option--wrap span,.phix-radio-option.phix-checkbox-option--wrap span,.phix-recovery-card .phix-checkbox-option span{white-space:normal;overflow-wrap:anywhere;word-break:break-word;min-width:0;color:var(--text-main);-webkit-user-select:none;user-select:none;flex:1 1 0;font-size:.9375rem;line-height:1.45}.phix-checkbox-option--wrap input[type=checkbox],.phix-recovery-card .phix-checkbox-option input[type=checkbox]{flex-shrink:0;margin-top:.1rem}.phix-recovery-card .phix-checkbox-option{margin-top:0;margin-bottom:1rem}.grading-key-table__header,.grading-key-table__thead{background-color:hsl(var(--background))}.grading-key-table__thead th,.grading-key-table__chart{background:hsl(var(--background))}.sticky-header{z-index:55;background:hsl(var(--background) / .95);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);margin-bottom:1.25rem;padding:.5rem 1.5rem .65rem;position:sticky;top:0;overflow:visible}.sticky-header-inner{flex-direction:column;align-items:stretch;gap:.5rem;display:flex}.sticky-header-top-row{flex-wrap:nowrap;align-items:center;gap:.75rem 1rem;min-width:0;display:flex}.sticky-header-course-title{text-align:left;flex:0 auto;min-width:0}.course-header-title{text-align:left;--course-header-name-size:1.5rem;--course-header-name-lh:1.25;--course-header-meta-gap:.25rem;--course-header-meta-size:.875rem;--course-header-meta-lh:1.45;flex:0 auto;min-width:0}.course-header-title__brand{align-items:center;gap:.75rem;min-width:0;display:flex}.course-header-title__logo{width:auto;height:calc(( var(--course-header-name-size) * var(--course-header-name-lh) + var(--course-header-meta-gap) + var(--course-header-meta-size) * var(--course-header-meta-lh) ) * .825);aspect-ratio:1;flex-shrink:0}.course-header-title__text{flex-direction:column;justify-content:center;min-width:0;display:flex}.course-header-title__name{color:var(--primary);margin:0;font-size:1.5rem;font-weight:600;line-height:1.25}.course-header-title__meta{color:var(--text-muted);margin:.25rem 0 0;font-size:.875rem;line-height:1.45}.course-header-title--mobile{--course-header-name-size:1.125rem;--course-header-meta-size:.8125rem;--course-header-meta-lh:1.35}.course-header-title--mobile .course-header-title__name{font-size:1.125rem}.course-header-title--mobile .course-header-title__meta{font-size:.8125rem;line-height:1.35}.sticky-header-top-row .sticky-header-tabs.equiphi-tabs{border-bottom:none;flex-wrap:nowrap;flex:auto;justify-content:flex-end;min-width:0;margin-bottom:0;padding-bottom:0;overflow-x:auto}.header-controls-row{background:hsl(var(--muted) / .45);border:1px solid var(--border);box-sizing:border-box;border-radius:.75rem;flex-wrap:wrap;align-items:center;gap:.75rem;width:100%;padding:.5rem .75rem;display:flex;box-shadow:0 1px 2px #0000000a}.header-search-wrap{flex:auto;width:100%;min-width:min(100%,18rem);max-width:none;position:relative}.header-search-lucide{color:hsl(var(--muted-foreground));pointer-events:none;position:absolute;top:50%;left:.65rem;transform:translateY(-50%)}.header-lucide-icon{flex-shrink:0}.header-search-input{background:hsl(var(--background));border-color:var(--border);border-radius:9999px;height:2.5rem;padding-left:2.1rem;font-size:.875rem}input,select,button,textarea{font:inherit}input,select,textarea{border:1px solid var(--border);background:hsl(var(--background));width:100%;color:var(--text-main);transition:var(--transition);border-radius:.375rem;padding:.5rem .75rem}input:focus,select:focus,textarea:focus{border-color:hsl(var(--foreground) / .3);box-shadow:0 0 0 2px hsl(var(--foreground) / .2);outline:none}.course-class-data-grid input:not([type=checkbox]){width:100%;max-width:100%;height:var(--course-meta-control-height);min-height:var(--course-meta-control-height);max-height:var(--course-meta-control-height);box-sizing:border-box;margin:0;padding:0 .75rem;font-size:.875rem;line-height:1.2}.course-class-data-grid .course-meta-class-kursstufe-row .phix-checkbox-option.course-meta-kursstufe-checkbox{box-sizing:border-box;justify-content:flex-start;align-items:center;gap:.5rem;width:100%;min-width:0;max-width:100%;height:100%;min-height:0;margin:0;padding:0 .85rem;display:flex;overflow:hidden}.course-class-data-grid .course-meta-class-kursstufe-row .phix-checkbox-option.course-meta-kursstufe-checkbox>span{white-space:nowrap;font-size:.875rem;line-height:1.2}button{background:var(--primary);color:hsl(var(--background));cursor:pointer;transition:var(--transition);border:1px solid #0000;border-radius:.375rem;padding:.5rem .95rem;font-size:.875rem;font-weight:500}button:hover{background:var(--primary-hover)}button:focus-visible{box-shadow:0 0 0 2px hsl(var(--foreground) / .2);outline:none}button.secondary{background:var(--surface);color:var(--text-main);border-color:var(--border)}button.secondary:hover{background:var(--surface-hover)}button.danger{background:hsl(var(--danger-hsl) / .08);border-color:hsl(var(--danger-hsl) / .35);color:hsl(var(--danger-hsl))}button.danger:hover{background:hsl(var(--danger-hsl) / .15)}button:disabled{opacity:.55;cursor:not-allowed}button.danger:disabled{background:hsl(var(--danger-hsl) / .06);border-color:hsl(var(--danger-hsl) / .22);color:hsl(var(--danger-hsl) / .55)}button.danger:disabled:hover{background:hsl(var(--danger-hsl) / .06)}button.success{color:#117e39;background:#16a2491f;border-color:#16a24973}button.success:hover{background:#16a24933}.program-user-mgmt-list--wide .program-user-mgmt-row-actions button.program-user-mgmt-action-btn,.program-user-mgmt-list--wide .program-user-mgmt-row-actions .program-user-mgmt-admin-check.program-user-mgmt-action-btn.phix-checkbox-option{box-sizing:border-box;border-radius:calc(var(--radius) - 2px);white-space:nowrap;vertical-align:middle;appearance:none;flex-shrink:0;justify-content:center;align-items:center;gap:.35rem;height:1.75rem;min-height:1.75rem;max-height:1.75rem;margin:0;padding:0 .55rem;font-size:.8125rem;font-weight:500;line-height:1;display:inline-flex}.program-user-mgmt-list--wide .program-user-mgmt-row-actions button.program-user-mgmt-link-btn.program-user-mgmt-action-btn{color:var(--primary);border:1px solid var(--border);background:0 0}.program-user-mgmt-list--wide .program-user-mgmt-row-actions button.program-user-mgmt-link-btn.program-user-mgmt-action-btn:hover{background:hsl(var(--muted));color:var(--primary)}.program-user-mgmt-list--wide .program-user-mgmt-row-actions button.program-user-mgmt-delete-btn.program-user-mgmt-action-btn{color:var(--danger);border:1px solid hsl(var(--danger-hsl) / .45);background:0 0}.program-user-mgmt-list--wide .program-user-mgmt-row-actions button.program-user-mgmt-delete-btn.program-user-mgmt-action-btn:hover:not(:disabled){background:hsl(var(--danger-hsl) / .08);color:var(--danger)}.program-user-mgmt-list--wide .program-user-mgmt-row-actions .program-user-mgmt-admin-check.program-user-mgmt-action-btn.phix-checkbox-option{border:1px solid var(--border);cursor:pointer;background:0 0;width:fit-content;max-width:none}.program-user-mgmt-list--wide .program-user-mgmt-row-actions .program-user-mgmt-admin-check.program-user-mgmt-action-btn.phix-checkbox-option:hover{background:hsl(var(--muted));border-color:var(--border)}.program-user-mgmt-list--wide .program-user-mgmt-row-actions .program-user-mgmt-admin-check.program-user-mgmt-action-btn.phix-checkbox-option span{color:var(--text-main);font-size:.8125rem;line-height:1}.program-user-mgmt-list--wide .program-user-mgmt-row-actions .program-user-mgmt-admin-check.program-user-mgmt-action-btn.phix-checkbox-option input[type=checkbox]{width:.8125rem;min-width:.8125rem;height:.8125rem;min-height:.8125rem;margin:0}.course-archived-banner{color:#224f32;background:#16a2491a;border:1px solid #16a24959;border-radius:.5rem;margin:0 0 1rem;padding:.65rem 1rem;font-size:.9rem;font-weight:600}.course-archived-badge{color:#224f32;background:#16a2491f;border:1px solid #16a24959;border-radius:.45rem;align-items:center;padding:.45rem .85rem;font-size:.875rem;font-weight:600;display:inline-flex}.course-archived input:not([data-archived-allow]),.course-archived select,.course-archived textarea,.course-archived .switch input:not([data-archived-allow]),.course-archived button:not(.course-archived-allow):not(.tab):not(.danger){pointer-events:none;opacity:.55;cursor:not-allowed}.course-archived label.switch:not(:has(input[data-archived-allow])){pointer-events:none;opacity:.55;cursor:not-allowed}.course-archived label.switch:not(:has(input[data-archived-allow])) .slider{filter:grayscale(.4)}.course-archived .switch input[data-archived-allow]{pointer-events:auto;opacity:1;cursor:pointer}.course-archived label.switch:has(input[data-archived-allow]){pointer-events:auto;opacity:1;cursor:pointer}.course-archived .gfs-gehalten-label,.course-archived button.tab:disabled,.course-archived button.gfs-auswertung-open-btn:disabled{pointer-events:none;opacity:.55;cursor:not-allowed}.course-archived .course-archived-allow,.course-archived .tab,.course-archived .danger,.course-archived a{pointer-events:auto;opacity:1;cursor:pointer}.course-archived-settings-body{pointer-events:none;opacity:.65}.course-archived-settings-body .danger,.course-archived-settings-body .course-archived-allow{pointer-events:auto;opacity:1}.table-container{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;overflow:visible;box-shadow:0 1px 2px #0000000a}table{border-collapse:separate;border-spacing:0;width:100%;margin-top:0}th,td{text-align:left;border-bottom:1px solid var(--border);padding:.75rem .9rem}tr:last-child td{border-bottom:0}thead{z-index:20;position:sticky;top:0}th{background:hsl(var(--muted) / .7);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.75rem;font-weight:600}tbody tr:hover td{background:hsl(var(--accent) / .5)}table tbody tr.table-row--focus>td{box-shadow:inset 0 0 0 9999px hsl(var(--brand-hsl) / .09)}table tbody tr.table-row--focus>td:first-child{box-shadow:inset 3px 0 0 var(--primary), inset 0 0 0 9999px hsl(var(--brand-hsl) / .09)}[data-theme=dark] table tbody tr.table-row--focus>td{box-shadow:inset 0 0 0 9999px hsl(var(--brand-hsl) / .16)}[data-theme=dark] table tbody tr.table-row--focus>td:first-child{box-shadow:inset 3px 0 0 var(--primary), inset 0 0 0 9999px hsl(var(--brand-hsl) / .16)}table tbody tr.table-row--focus:hover>td{background:0 0}table tbody tr.table-row--focus>td.gfs-gehalten-td--unchecked{box-shadow:inset 0 0 0 9999px hsl(var(--brand-hsl) / .09), inset 0 0 0 1px #edd3b6}table tbody tr.table-row--focus>td.gfs-gehalten-td--checked{box-shadow:inset 0 0 0 9999px hsl(var(--brand-hsl) / .09), inset 0 0 0 1px #b0ddc1}[data-theme=dark] table tbody tr.table-row--focus>td.gfs-gehalten-td--unchecked,[data-theme=dark] table tbody tr.table-row--focus>td.gfs-gehalten-td--checked{box-shadow:inset 0 0 0 9999px hsl(var(--brand-hsl) / .16)}tfoot{z-index:10;position:sticky;bottom:0}tfoot td{border-top:1px solid var(--border);font-weight:700;background:hsl(var(--muted) / .8)!important}.text-center{text-align:center}.text-right{text-align:right}.text-muted{color:var(--text-muted)}.bad-grade{color:var(--danger);font-weight:600}.tabs{border-bottom:1px solid var(--border);gap:.5rem;margin-bottom:2rem;padding-bottom:.5rem;display:flex;overflow-x:auto}.sticky-header .tabs.equiphi-tabs{scrollbar-width:none;-ms-overflow-style:none;border-bottom:none;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.35rem;margin-bottom:0;padding-bottom:0;overflow:auto visible}.sticky-header .tabs.equiphi-tabs::-webkit-scrollbar{display:none}.equiphi-tabs{flex-wrap:wrap;flex:1;justify-content:flex-end;gap:.35rem;min-width:0}.tab{color:var(--text-muted);white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:.375rem;padding:.6rem .9rem;font-size:.875rem;font-weight:500}.tab:hover{background:hsl(var(--accent));color:var(--text-main)}.tab.active{background:var(--primary);color:var(--brand-foreground)}.header-settings-menu-wrap,.header-user-menu-wrap{z-index:2;align-self:center;display:inline-flex;position:relative}.equiphi-user-btn{padding:.6rem .65rem}.header-user-menu-info{color:var(--text-muted);padding:.5rem .65rem;font-size:.8125rem;line-height:1.35}.header-user-menu-info strong{color:var(--text-main);font-weight:600}.app-login-screen{background:hsl(var(--background));flex:auto;justify-content:center;align-items:center;width:100%;min-height:100dvh;padding:1.5rem;display:flex;position:relative;overflow:auto}.app-login-footer{z-index:2;pointer-events:none;justify-content:space-between;align-items:flex-end;gap:1rem;padding:1rem;display:flex;position:fixed;bottom:0;left:0;right:0}.app-login-build-info{color:#000;-webkit-user-select:none;user-select:none;pointer-events:none;margin:0;font-size:.7rem;line-height:1.3}.app-login-recovery-btn{pointer-events:auto;flex-shrink:0;margin-top:0}.phix-recovery-card{flex-direction:column;min-width:0;max-width:28rem;display:flex}.phix-recovery-success{color:hsl(var(--success-hsl))}.phix-recovery-hint{color:var(--text-muted);margin:0 0 1rem;font-size:.875rem;line-height:1.45}.phix-recovery-key-display{letter-spacing:.05em;word-break:break-all;color:var(--text-main);background:var(--surface-muted);border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);margin:0 0 1rem;padding:.75rem;font-family:ui-monospace,Cascadia Code,Source Code Pro,Menlo,monospace;font-size:1.05rem;line-height:1.4}.phix-recovery-actions{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.phix-recovery-actions .app-login-submit{box-sizing:border-box;width:100%}.phix-recovery-continue{width:100%}.modal-overlay{z-index:10000;background:#0f172a73;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0;overflow:auto}.modal-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:32rem;color:var(--text-main);padding:1.75rem 1.5rem;box-shadow:0 1px 2px #0000000d,0 12px 32px #00000014}.modal-card h2{color:var(--primary);margin:0 0 .75rem;font-size:1.25rem;font-weight:600}.modal-card p{color:var(--text-muted);margin:0 0 .75rem;font-size:.875rem;line-height:1.45}.app-login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:22rem;padding:1.75rem 1.5rem;box-shadow:0 1px 2px #0000000d,0 12px 32px #00000014}.app-login-brand{flex-direction:column;align-items:center;gap:.65rem;margin-bottom:.25rem;display:flex}.app-login-brand--solo{margin-bottom:1rem}.app-logo{object-fit:contain;border-radius:.65rem;flex-shrink:0;display:block}.app-login-title{color:var(--primary);text-align:center;margin:0;font-size:1.35rem;font-weight:600}.app-login-subtitle{color:var(--text-muted);margin:.35rem 0 1.25rem;font-size:.875rem}.app-login-subtitle--center{text-align:center}.app-login-card--wizard{max-width:34rem}.app-login-wizard-intro{text-align:left;margin:0 0 .25rem;line-height:1.5}.app-login-wizard-tips{color:var(--text-main);margin:0;padding-left:1.25rem;font-size:.875rem;line-height:1.55}.app-login-wizard-tips li+li{margin-top:.65rem}.app-login-wizard-secondary-btn{box-sizing:border-box;justify-content:center;width:100%}.app-login-form{flex-direction:column;gap:.9rem;display:flex}.app-login-label{color:var(--text-main);flex-direction:column;gap:.35rem;font-size:.8125rem;font-weight:500;display:flex}.app-login-input{border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);background:hsl(var(--background));color:var(--text-main);padding:.55rem .65rem;font-size:.9375rem}.app-login-input:focus{box-shadow:0 0 0 2px hsl(var(--background)), 0 0 0 4px hsl(var(--foreground) / .15);outline:none}.app-login-error{color:var(--danger);margin:0;font-size:.8125rem}.app-login-submit{border-radius:calc(var(--radius) - 2px);background:var(--primary);color:hsl(var(--background));cursor:pointer;border:none;margin-top:.25rem;padding:.55rem 1rem;font-size:.9375rem;font-weight:600}.app-login-submit:hover:not(:disabled){filter:brightness(1.05)}.app-login-submit:disabled{opacity:.7;cursor:not-allowed}.app-login-cancel-btn{box-sizing:border-box;justify-content:center;width:100%;margin-top:.5rem}.app-login-card--relogin .app-login-subtitle{text-align:center}.app-login-relogin-actions{width:100%;display:flex}.app-login-relogin-actions .app-login-submit{box-sizing:border-box;width:100%;margin-top:0}.app-main-empty-state-user{z-index:3;position:absolute;top:1rem;right:1rem}.app-main-empty-state-header-actions{align-items:center;gap:.35rem;display:flex}.header-settings-dropdown{z-index:200;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.25rem;min-width:9.5rem;padding:.35rem;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 1px 2px #0000000f,0 10px 28px #0000001a}.header-settings-dropdown--portal{z-index:10000;position:fixed;top:auto;left:auto}.header-settings-dropdown button{text-align:left;width:100%;color:var(--text-main);border-radius:calc(var(--radius) - 2px);cursor:pointer;background:0 0;border:none;padding:.5rem .65rem;font-size:.875rem;font-weight:500;line-height:1.3;display:block}.header-settings-dropdown button:hover{background:hsl(var(--muted))}.header-settings-dropdown button.header-settings-dropdown-item--danger{color:#b81e1e}.header-settings-dropdown button.header-settings-dropdown-item--danger:hover{background:#b81e1e1a}.header-settings-dropdown button:focus-visible{box-shadow:0 0 0 2px hsl(var(--background)), 0 0 0 4px hsl(var(--foreground) / .18);outline:none}.header-settings-dropdown-divider{border:none;border-top:1px solid var(--border);margin:.15rem .2rem}.header-settings-dropdown button.header-settings-dropdown-item--with-icon,.settings-nav-menu button.header-settings-dropdown-item--with-icon{align-items:center;gap:.45rem;display:flex}.header-settings-dropdown-icon{color:hsl(var(--muted-foreground));flex-shrink:0;display:block}.flex{display:flex}.justify-between{justify-content:space-between}.items-center{align-items:center}.gap-2{gap:.5rem}.gap-4{gap:1rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.w-full{width:100%}.grid-2{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.weighting-ratio-grid{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.35rem 1rem;display:grid}.weighting-ratio-grid__colon{min-width:.75rem;color:var(--text-muted);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-size:1.05rem;font-weight:600;line-height:1;display:flex}.weighting-ratio-grid__sep-slot{width:100%;min-width:0}.weighting-percent-hint{color:var(--text-muted);margin:.65rem 0 0;font-size:.875rem;line-height:1.45}.settings-advanced-weighting{margin-top:1rem}.settings-advanced-weighting__toggle-row{margin:0}.settings-advanced-weighting-panel{grid-template-columns:1fr;gap:.35rem;width:max-content;max-width:100%;margin-top:.5rem;margin-left:1.5rem;display:inline-grid}.settings-advanced-weighting-panel--columns{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:1.25rem 2rem;width:100%;max-width:52rem;display:grid}.settings-advanced-weighting-column{flex-direction:column;gap:.35rem;min-width:0;display:flex}.settings-advanced-weighting-column__title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:0 0 .35rem;font-size:.75rem;font-weight:700}@media (width<=720px){.settings-advanced-weighting-panel--columns{grid-template-columns:1fr;gap:1rem}}.settings-advanced-weighting-panel>.settings-advanced-weighting-option,.settings-advanced-weighting-column>.settings-advanced-weighting-option{box-sizing:border-box;width:100%;margin-top:0}.settings-advanced-weighting-hint{margin:0;font-size:.8125rem}.settings-tests-per-klausur-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.settings-tests-per-klausur-checkbox{margin-top:0}.settings-tests-per-klausur-inline-label{flex-wrap:wrap;align-items:center;gap:.35rem;display:inline-flex}.settings-tests-per-klausur-x{box-sizing:border-box;flex:none;width:3.5rem;min-width:3.5rem;height:1.75rem;min-height:1.75rem;padding:.2rem .35rem}.weighting-ratio-grid input.weighting-ratio-grid__tests-computed,.weighting-ratio-grid input.weighting-ratio-grid__tests-computed:disabled{opacity:.7;background:hsl(var(--muted) / .55);color:hsl(var(--muted-foreground));cursor:not-allowed;border-color:hsl(var(--border))}.oral-extended-mode-switch{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;line-height:0;display:inline-flex}.oral-extended-mode-switch:disabled{opacity:.55;cursor:not-allowed}.oral-extended-mode-switch__track{background:hsl(var(--muted) / .85);border:1px solid var(--border);border-radius:999px;width:2.75rem;height:1.375rem;transition:background .2s;display:block;position:relative}.oral-extended-mode-switch--points .oral-extended-mode-switch__track,.oral-extended-mode-switch--grades .oral-extended-mode-switch__track{background:#2463eb40;border-color:#2463eb73}.oral-extended-mode-switch__thumb{background:hsl(var(--background));border:1px solid hsl(var(--muted-foreground) / .35);border-radius:50%;width:1rem;height:1rem;transition:left .2s,background .2s,border-color .2s;position:absolute;top:50%;left:.15rem;transform:translateY(-50%);box-shadow:0 1px 2px #0000001f}.oral-extended-mode-switch--points .oral-extended-mode-switch__thumb{background:#2463eb;border-color:#1450d2;left:calc(50% - .5rem)}.oral-extended-mode-switch--grades .oral-extended-mode-switch__thumb{background:#2463eb;border-color:#1450d2;left:calc(100% - 1.15rem)}.sidebar-layout{align-items:flex-start;gap:1.5rem;display:flex}.sidebar-layout>.main-content{flex:1;min-width:0}.sidebar-layout>.sidebar{flex-shrink:0;width:250px}@media (width<=1100px){.sidebar-layout{flex-direction:column}.sidebar-layout>.sidebar{width:100%}}.switch{width:2.25rem;height:1.25rem;display:inline-block;position:relative}.switch input{opacity:0;width:0;height:0}.slider{transition:var(--transition);background:#cbd5e1;border-radius:9999px;position:absolute;inset:0}.slider:before{content:"";width:.9rem;height:.9rem;transition:var(--transition);background:#fff;border-radius:9999px;position:absolute;top:.17rem;left:.18rem}input:checked+.slider{background:var(--primary)}input:checked+.slider:before{transform:translate(1rem)}.table-num-switch{justify-content:flex-start;align-items:center;gap:.45rem;display:flex}.table-num-switch__num{font-variant-numeric:tabular-nums;text-align:right;min-width:1.15rem;line-height:1}.switch.switch--table-row{flex-shrink:0;width:2rem;height:1.125rem}.switch.switch--table-row .slider{background:hsl(var(--danger-hsl) / .22);border:1px solid hsl(var(--danger-hsl) / .4)}.switch.switch--table-row .slider:before{width:.72rem;height:.72rem;top:.14rem;left:.18rem;box-shadow:0 1px 2px #0000000f}.switch.switch--table-row input:checked+.slider,.switch.switch--table-row .slider.slider--on{background:hsl(var(--success-hsl) / .38);border-color:hsl(var(--success-hsl) / .55)}.switch.switch--table-row input:checked+.slider:before,.switch.switch--table-row .slider.slider--on:before{transform:translate(.82rem)}.switch.switch--table-row input:focus-visible+.slider{box-shadow:0 0 0 2px hsl(var(--background)), 0 0 0 4px hsl(var(--foreground) / .12)}.app-container{background:var(--bg-color);flex:1;width:100%;height:100%;min-height:0;display:flex}.app-sidebar{background:hsl(var(--muted) / .45);border-right:1px solid var(--border);width:250px;transition:var(--transition);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-direction:column;flex-shrink:0;height:100vh;display:flex;position:sticky;top:0}.app-sidebar.collapsed{width:60px;overflow:hidden}.app-sidebar-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.5rem;min-height:2.75rem;padding:.9rem;display:flex}.app-sidebar.collapsed .app-sidebar-header{box-shadow:none;background:0 0;border:none;justify-content:center;align-items:center;min-height:2.5rem;margin:.35rem .25rem 0;padding:.35rem 0}.app-sidebar.collapsed button.equiphi-sidebar-toggle{box-shadow:none;background:0 0;border-color:#0000;margin-left:0}.app-sidebar.collapsed button.equiphi-sidebar-toggle:hover{background:hsl(var(--muted) / .55);border-color:hsl(var(--border-hsl) / .65)}.app-sidebar.collapsed button.equiphi-sidebar-toggle:focus-visible{border-color:hsl(var(--foreground) / .2);background:hsl(var(--muted) / .35);box-shadow:0 0 0 2px hsl(var(--background)), 0 0 0 4px hsl(var(--foreground) / .18)}.app-sidebar-title{color:hsl(var(--foreground));letter-spacing:-.01em;align-items:center;gap:.45rem;min-width:0;font-size:.8125rem;font-weight:600;display:inline-flex}.sidebar-header-icon{color:hsl(var(--muted-foreground));flex-shrink:0}button.equiphi-sidebar-toggle{border:1px solid var(--border);background:hsl(var(--background));width:2.25rem;min-width:2.25rem;height:2.25rem;color:hsl(var(--foreground));box-shadow:none;border-radius:.375rem;flex-shrink:0;justify-content:center;align-items:center;margin:0 0 0 auto;padding:0;display:inline-flex}button.equiphi-sidebar-toggle:hover{background:hsl(var(--muted))}button.equiphi-sidebar-toggle:focus-visible{box-shadow:0 0 0 2px hsl(var(--background)), 0 0 0 4px hsl(var(--foreground) / .18)}.sidebar-lucide-icon{color:hsl(var(--foreground))}.app-sidebar-nav{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.app-sidebar-nav-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:1;min-height:0;overflow-y:auto}.app-sidebar-lists{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.app-sidebar-lists--archive-open .app-sidebar-nav-scroll{flex:50%;max-height:50%}.app-sidebar-archive{border-top:1px solid var(--border);background:#eaf6ee59;flex-direction:column;flex-shrink:0;min-height:0;display:flex}[data-theme=dark] .app-sidebar-archive{background:#203c2a73}.app-sidebar-archive--open{flex:50%;min-height:0;max-height:50%}.app-sidebar-archive-toggle{color:#224f32;text-align:left;cursor:pointer;width:100%;box-shadow:none;background:0 0;border:none;border-bottom:1px solid #0000;align-items:center;gap:.35rem;margin:0;padding:.5rem .75rem;font-size:.8125rem;font-weight:600;display:flex}[data-theme=dark] .app-sidebar-archive-toggle{color:#aee0c0}.app-sidebar-archive-toggle:hover{background:#16a2491a}.app-sidebar-archive--open .app-sidebar-archive-toggle{border-bottom-color:#16a24933}.app-sidebar-archive-toggle__label{flex:auto}.app-sidebar-archive-toggle__count{opacity:.75;font-variant-numeric:tabular-nums;font-size:.75rem;font-weight:500}.app-sidebar-archive-toggle__chevron{flex-shrink:0;transition:transform .2s}.app-sidebar-archive-toggle__chevron--open{transform:rotate(180deg)}.app-sidebar-archive-list{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:auto;min-height:0;overflow-y:auto}.course-item--archived.active{background:#16a2492e;border-left-color:#16a249}.app-sidebar-year-header{color:var(--muted-foreground);letter-spacing:.02em;-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;padding:.55rem .75rem .2rem;font-size:.75rem;font-weight:600;display:flex}.app-sidebar-year-header-line{background-color:var(--border);opacity:.7;flex:1;height:1px}.app-sidebar-footer{border-top:1px solid var(--border);background:hsl(var(--muted) / .55);flex-direction:column;flex-shrink:0;gap:.45rem;padding:.5rem .65rem .65rem;display:flex}.app-sidebar-course-search-wrap{width:100%;position:relative}.app-sidebar-course-search-icon{color:hsl(var(--muted-foreground));pointer-events:none;position:absolute;top:50%;left:.45rem;transform:translateY(-50%)}.app-sidebar-course-search-input{box-sizing:border-box;background:hsl(var(--background));border:1px solid var(--border);border-radius:.4rem;width:100%;height:2rem;padding:.25rem .45rem .25rem 1.65rem;font-size:.8rem}.app-sidebar-course-search-input:focus{border-color:hsl(var(--foreground) / .25);box-shadow:0 0 0 2px hsl(var(--foreground) / .08);outline:none}.app-sidebar-new-course-btn,.app-sidebar-support-btn{width:100%;margin:0;padding:.45rem .5rem;font-size:.85rem}.app-sidebar-support-btn--active{border-color:hsl(var(--foreground) / .2);background:hsl(var(--accent));color:var(--text-main)}.app-sidebar-thanks{box-sizing:border-box;border:1px solid hsl(var(--foreground) / .12);background:hsl(var(--accent) / .45);text-align:center;border-radius:.5rem;width:100%;margin:0;padding:.45rem .5rem}.app-sidebar-thanks__line{color:var(--text-main);justify-content:center;align-items:center;gap:.35rem;font-size:.85rem;font-weight:600;line-height:1.25;display:inline-flex}.app-sidebar-thanks__heart{color:#e11d48;fill:#e11d48;flex-shrink:0}.support-phix-view{flex-direction:column;gap:1.25rem;width:100%;min-width:0;max-width:none;display:flex}.support-phix-section{box-sizing:border-box;width:100%;min-width:0;max-width:none;padding:1.25rem}.support-overview-view{flex-direction:column;gap:1.25rem;width:100%;min-width:0;max-width:none;display:flex}.support-overview-section{box-sizing:border-box;width:100%;min-width:0;max-width:none;padding:1.5rem}.support-overview-text{color:var(--text-main);margin:0 0 1.25rem;font-size:.95rem;line-height:1.55}.support-overview-cta{justify-content:center;display:flex}.support-overview-btn{align-items:center;gap:.5rem;padding:.65rem 1.5rem;font-size:.95rem;font-weight:600;display:inline-flex}.support-overview-registered{color:var(--success,#16a34a);align-items:center;gap:.4rem;margin:0;font-size:.95rem;font-weight:600;display:inline-flex}.bmc-button{color:#000;cursor:pointer;background:#fd0;border:1px solid #000;border-radius:8px;align-items:center;gap:.5rem;padding:.5rem 1.25rem;font-family:Cookie,cursive;font-size:1.55rem;line-height:1.4;text-decoration:none;transition:opacity .15s;display:inline-flex}.bmc-button:hover{opacity:.85}.bmc-button__icon{flex-shrink:0;width:2rem;height:2rem}.bmc-button__text{white-space:nowrap}.support-phix-label{color:var(--text-muted);margin-bottom:.35rem;font-size:.8rem;display:block}.support-phix-prose{font-size:.875rem;line-height:1.55}.support-phix-prose p{margin:0 0 .85rem}.support-phix-prose p:last-child{margin-bottom:0}.support-phix-license-form{flex-direction:column;gap:0;width:100%;max-width:none;display:flex}.support-phix-license-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.support-phix-license-input{width:100%;min-width:0;height:var(--course-meta-control-height);min-height:var(--course-meta-control-height);box-sizing:border-box;flex:12rem;padding:0 .5rem;font-size:.875rem;line-height:1.2}button.support-phix-register-btn,button.support-phix-register-btn.tab,button.support-phix-register-btn.tab.active{height:var(--course-meta-control-height);min-height:var(--course-meta-control-height);box-sizing:border-box;white-space:nowrap;flex-shrink:0;justify-content:center;align-items:center;padding:0 .85rem;font-size:.875rem;line-height:1.2;display:inline-flex}.support-phix-donate-text{margin:0 0 1.25rem;font-size:.875rem;line-height:1.55}.support-phix-paypal-wrap{justify-content:center;display:flex}a.support-phix-paypal-btn{box-sizing:border-box;color:#003087;cursor:pointer;background:linear-gradient(#ffd96a 0%,#ffc439 55%,#f5ba30 100%);border:1px solid #e8ad2a;border-radius:1.375rem;justify-content:center;align-items:center;gap:.65rem;min-height:2.75rem;padding:.7rem 1.75rem;font-size:1rem;font-weight:700;line-height:1.2;text-decoration:none;transition:background .15s,box-shadow .15s,transform .1s;display:inline-flex;box-shadow:0 1px 2px #00000014,0 2px 6px #0000000f}a.support-phix-paypal-btn:hover{color:#003087;background:linear-gradient(#ffe082 0%,#ffd04d 55%,#f7c43a 100%);transform:translateY(-1px);box-shadow:0 2px 4px #0000001a,0 4px 10px #00000014}a.support-phix-paypal-btn:focus-visible{outline-offset:3px;outline:2px solid #003087}a.support-phix-paypal-btn:active{transform:translateY(0);box-shadow:0 1px 2px #0000001a}.support-phix-paypal-btn__mark{flex-shrink:0;justify-content:center;align-items:center;display:flex}.support-phix-paypal-btn__text{letter-spacing:-.01em;color:#003087;font-size:1rem;font-weight:700}.course-item{border-bottom:1px solid var(--border);transition:var(--transition);border-left:3px solid #0000;align-items:stretch;gap:.35rem;padding:.75rem 1rem;display:flex;overflow:hidden}.course-item-main{cursor:pointer;flex:auto;min-width:0}.course-item-fav{cursor:pointer;color:hsl(var(--muted-foreground));background:0 0;border:none;border-radius:6px;flex:none;justify-content:center;align-self:center;align-items:center;margin:-.2rem 0;padding:.2rem;line-height:0;display:inline-flex}.course-item-fav:hover{background:hsl(var(--brand-hsl) / .12)}.course-item-fav--on{color:#f5d565}.course-item:hover:not(.active){background:hsl(var(--brand-hsl) / .08)}.course-item.active{background:var(--primary);border-left-color:hsl(var(--brand-hsl) / .95);box-shadow:0 2px 10px hsl(var(--brand-hsl) / .22)}.course-item.active .course-item-title{color:var(--brand-foreground);font-weight:700}.course-item.active .course-item-meta{color:#dbdbdb}[data-color-scheme=yellow] .course-item.active .course-item-meta{color:#000}.course-item.active .course-item-fav{color:hsl(var(--brand-foreground) / .78)}.course-item.active .course-item-fav:hover{background:hsl(var(--brand-foreground) / .14)}.course-item.active .course-item-fav--on{color:#f5d565}.course-item-title{color:hsl(var(--foreground));white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;font-weight:600;overflow:hidden}.course-item-meta{color:hsl(var(--muted-foreground));white-space:nowrap;text-overflow:ellipsis;margin-top:.15rem;font-size:.75rem;overflow:hidden}.app-main{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.app-main-content-wrap{box-sizing:border-box;flex-direction:column;flex:1;width:100%;min-height:0;padding:0 2rem 2rem;display:flex;overflow:hidden}.app-main-views{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.view-root-fill{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.app-main-inner{flex-direction:column;flex:1;width:100%;min-height:0;padding:0 2rem 2rem;display:flex;overflow:hidden}.app-main-content{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.view-generic-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:1;min-height:0;overflow-y:auto}.table-container--opaque-thead thead{position:static}.table-container--opaque-thead thead th{z-index:25;background:hsl(var(--muted));box-shadow:0 1px 0 var(--border);position:sticky;top:0}.summary-overview .table-container thead th:not(:last-child),.summary-overview .table-container tbody td:not(:last-child){border-right:1px solid var(--border)}.app-main-empty-state{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.sticky-header--no-course .sticky-header-tabs.equiphi-tabs{border-bottom:none;flex-wrap:nowrap;flex:auto;justify-content:flex-end;min-width:0;margin-bottom:0;padding-bottom:0;overflow:visible}.app-empty-course-prompt{text-align:center;box-sizing:border-box;flex-direction:column;flex:auto;justify-content:center;align-items:center;min-height:min(50vh,24rem);padding:2rem 0 3rem;display:flex}.app-empty-course-prompt h2{margin:0 0 .75rem}.app-empty-course-prompt p{color:var(--text-muted);max-width:22rem;margin:0 0 1rem}.view-page-scroll{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.view-toolbar-block{flex-shrink:0}.view-table-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}.exams-body-scroll{flex-direction:column;display:flex}.exams-body-scroll>.table-max-host{flex:none;width:100%;min-width:0}.summary-overview.view-generic-scroll{flex-direction:column;display:flex}.view-table-scroll>.table-max-host,.summary-overview>.table-max-host{flex:none;width:100%;min-width:0}.table-max-host{flex-direction:column;width:100%;min-width:0;display:flex;position:relative}.table-max-host--maximized{z-index:250;background:hsl(var(--background));box-sizing:border-box;flex:1;min-height:0;padding:.65rem 1rem 1rem;position:fixed;inset:0}.table-max-host__toolbar{flex-shrink:0;justify-content:flex-end;align-items:center;gap:.65rem;display:flex}.table-max-host:not(.table-max-host--maximized) .table-max-host__toolbar{height:0;min-height:0;box-shadow:none;pointer-events:none;background:0 0;border:none;flex-shrink:0;justify-content:flex-end;align-items:flex-start;margin:0;padding:0;display:flex;overflow:visible}.table-max-host__title{color:hsl(var(--foreground));text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;margin:0;font-size:.95rem;font-weight:600;display:none;overflow:hidden}.table-max-host--maximized .table-max-host__title{display:block}.table-max-host--maximized .table-max-host__toolbar{border-bottom:1px solid var(--border);pointer-events:auto;margin-bottom:.5rem;padding-bottom:.5rem;position:relative}.table-max-host__toggle{border:1px solid var(--border);background:hsl(var(--background));color:hsl(var(--foreground));cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex;box-shadow:0 1px 2px #0000000a}.table-max-host:not(.table-max-host--maximized) .table-max-host__toggle{pointer-events:auto;background:hsl(var(--background) / .94);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:.28rem;width:1.125rem;min-width:1.125rem;height:1.125rem;min-height:1.125rem;box-shadow:0 1px 2px #0000001a}.table-max-host:not(.table-max-host--maximized) .table-max-host__toggle svg{width:11px;height:11px}.table-max-host--maximized .table-max-host__toggle{border-radius:.5rem;width:2.25rem;height:2.25rem}.table-max-host__toggle:hover{background:hsl(var(--muted) / .55)}.table-max-host:not(.table-max-host--maximized) .table-max-host__toggle:hover{background:hsl(var(--muted) / .65)}.table-max-host__body{flex-direction:column;min-width:0;display:flex}.table-max-host--maximized .table-max-host__body{flex:1;min-height:0;overflow:auto}.table-max-host:not(.table-max-host--maximized) .table-max-host__body{flex:none;overflow:visible}.projects-group-tables-stack{flex-direction:column;gap:1.25rem;display:flex;overflow:visible}.projects-group-table-block{flex:none;overflow:visible}.projects-group-table-container thead,.exam-table-scroll .projects-group-table-container thead{z-index:auto!important;position:static!important;top:auto!important}.projects-group-table-container tfoot,.exam-table-scroll .projects-group-table-container tfoot{z-index:auto!important;position:static!important;bottom:auto!important}.projects-group-table-container thead th,.projects-group-table-container thead th.exam-th-r1,.projects-group-table-container thead th.exam-th-r2,.projects-group-table-container thead tr:first-child th.exam-th-sticky-left,.projects-group-table-container thead tr:first-child th.exam-th-sticky-right,.projects-group-table-container thead tr:nth-child(2) th.exam-th-sticky-left,.projects-group-table-container thead tr:nth-child(2) th.exam-th-sticky-right,.exam-table-scroll .projects-group-table-container thead th,.exam-table-scroll .projects-group-table-container thead th.exam-th-r1,.exam-table-scroll .projects-group-table-container thead th.exam-th-r2,.exam-table-scroll .projects-group-table-container thead th.exam-th-sticky-left,.exam-table-scroll .projects-group-table-container thead th.exam-th-sticky-right{z-index:auto!important;box-shadow:none!important;position:static!important;top:auto!important}.projects-group-table-block__members{margin:0 0 .75rem;font-size:.875rem}.project-group-member-inline-controls{border-top:1px solid var(--border);pointer-events:auto;flex-wrap:wrap;align-items:center;gap:.65rem;margin-top:.55rem;padding:.55rem 0 .35rem 1.25rem;display:flex}.project-group-member-inline-controls .switch,.project-group-member-detail .switch{pointer-events:auto}.project-group-member-switch{cursor:pointer;font:inherit;background:0 0;border:none;padding:0;line-height:0}.project-group-member-switch:disabled{cursor:not-allowed;opacity:.55}.project-group-member-detail-row td{z-index:62;position:relative}.project-group-member-detail{z-index:62;background:var(--surface);pointer-events:auto;flex-wrap:wrap;align-items:center;gap:.65rem;padding:.55rem 1rem .55rem 2rem;display:flex;position:sticky;left:0;box-shadow:4px 0 14px #00000014}.project-group-member-detail .switch{pointer-events:auto}.project-group-member-detail__name{min-width:10rem;font-weight:600}.project-group-member-row{background:hsl(var(--brand-hsl) / .02)}.project-group-member-row--expanded{background:#4f46e50d}.project-group-member-row td{border-bottom:1px solid var(--border)}.project-group-member-detail-row{z-index:62;background:#0f172a04;position:relative}.table-max-scroll--reserve-corner::-webkit-scrollbar-track{margin-top:2.5rem}.table-max-scroll--reserve-corner{scrollbar-width:thin}.view-page-scroll>.view-table-scroll{min-height:var(--student-table-min-height)}.view-table-scroll th,.view-table-scroll td{padding-top:1.05rem;padding-bottom:1.05rem}.view-table-scroll .table-container{margin-top:0}.exams-toolbar,.oral-toolbar,.tests-toolbar{border-bottom:1px solid var(--border);background:hsl(var(--background));margin-bottom:.75rem;padding-bottom:1rem}.course-meta-settings-row{flex-wrap:wrap;align-items:flex-end;gap:1rem;display:flex}.projects-meta-settings{flex-direction:column;gap:1rem;width:100%;display:flex}.projects-meta-settings__row--top{flex-wrap:nowrap;justify-content:flex-start;align-items:flex-end;gap:1rem;width:100%;display:flex}.projects-meta-settings__top-left{flex-wrap:nowrap;flex:auto;justify-content:flex-start;align-items:flex-end;gap:1rem;min-width:0;display:flex}.projects-meta-settings__row--core{flex-wrap:wrap;align-items:flex-end;gap:1rem;width:100%;min-width:0;display:flex}.projects-meta-weighting-end{flex-wrap:wrap;align-items:flex-end;gap:1rem;margin-left:auto;display:flex}.projects-meta-field--actions-slot{flex:none;margin-left:auto}.projects-meta-actions__buttons{gap:.5rem}.projects-delete-btn{box-sizing:border-box;min-width:var(--course-meta-control-height);width:var(--course-meta-control-height);height:var(--course-meta-control-height);min-height:var(--course-meta-control-height);justify-content:center;align-items:center;padding:0 .45rem;display:inline-flex}.projects-nav-delete-btn{flex:none;display:none!important}.projects-view-tabs-row,.projects-view-tabs{min-width:0}.projects-meta-field--name{flex:180px;min-width:180px}.projects-meta-field--weighting{min-width:220px}.projects-meta-field--percent .course-meta-control{width:5rem}.projects-meta-field--numfields .course-meta-control{width:4.375rem}.projects-meta-settings__row{flex-wrap:wrap;align-items:flex-end;gap:1rem;width:100%;display:flex}.projects-meta-settings__row--end{justify-content:flex-end}.projects-meta-settings__row--split{justify-content:space-between;align-items:flex-end}.projects-meta-settings__group{flex-wrap:wrap;align-items:flex-end;gap:1rem;min-width:0;display:flex}.projects-meta-settings__group--end{justify-content:flex-end;margin-left:auto}.projects-meta-settings__row--description .course-meta-field{flex:100%;width:100%}.projects-meta-settings__row--description .course-meta-control{width:100%}.course-meta-settings-row .course-meta-field{flex-direction:column;gap:.25rem;min-width:0;display:flex}.course-meta-settings-row .course-meta-field__label{color:var(--text-muted);min-height:1.05rem;font-size:.875rem;line-height:1.2;display:block}.course-meta-settings-row .course-meta-field__row{min-height:var(--course-meta-control-height);flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.course-meta-settings-row .course-meta-control,.course-meta-settings-row input.course-meta-control:not([type=checkbox]),.course-meta-settings-row select.course-meta-control,.course-meta-settings-row .grading-key-select__trigger{height:var(--course-meta-control-height);min-height:var(--course-meta-control-height);box-sizing:border-box;border:1px solid var(--border);background:hsl(var(--background));color:var(--text-main);border-radius:4px;padding:0 .45rem;font-size:.875rem;line-height:1.2}.course-meta-settings-row select.course-meta-control{padding-right:.65rem}.grading-key-select{min-width:0;position:relative}.grading-key-select__trigger{text-align:left;cursor:pointer;width:100%;font-weight:inherit;align-items:center;display:flex;overflow:hidden}.grading-key-select__trigger-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.grading-key-select__suffix{color:var(--text-muted);margin-left:.25em;font-size:.78em;font-weight:400}.grading-key-select__list{background:hsl(var(--background));border:1px solid var(--border);z-index:80;border-radius:4px;min-width:max(100%,17rem);max-height:280px;margin:0;padding:0;list-style:none;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0000001f}.grading-key-select__option{text-align:left;border:none;border-bottom:1px solid var(--border);cursor:pointer;width:100%;color:var(--text-main);background:0 0;padding:.45rem .65rem;font-size:.875rem;line-height:1.3;display:block}.grading-key-select__option:hover,.grading-key-select__option[aria-selected=true]{background:var(--surface)}.grading-key-select__option:last-child{border-bottom:none}.course-meta-settings-row .grading-key-select__trigger{height:var(--course-meta-control-height);min-height:var(--course-meta-control-height);box-sizing:border-box}.course-meta-settings-row .oral-extended-controls-rail select.course-meta-control{padding-left:.4rem;padding-right:1.35rem}.course-meta-settings-row .course-meta-inline-btn.tab,.course-meta-settings-row button.course-meta-inline-btn.tab,.course-meta-settings-row button.course-meta-inline-btn.danger{height:var(--course-meta-control-height);min-height:var(--course-meta-control-height);box-sizing:border-box;justify-content:center;align-items:center;padding:0 .65rem;font-size:.875rem;font-weight:600;line-height:1.2;display:inline-flex}.view-toolbar-actions{flex-shrink:0;justify-content:flex-end;align-items:center;gap:.5rem;margin-left:auto;display:inline-flex}.user-auswertungshilfe-group{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-sizing:border-box;flex-shrink:0;align-items:stretch;display:inline-flex;overflow:hidden}.user-auswertungshilfe-group .user-auswertungshilfe-btn{box-shadow:none;border:none;border-radius:0;margin:0}.user-auswertungshilfe-sep{background:var(--border);flex-shrink:0;align-self:stretch;width:1px}.user-auswertungshilfe-group .user-auswertungshilfe-delete-btn{box-sizing:border-box;width:2.5rem;min-width:2.5rem;height:auto;min-height:2.5rem;box-shadow:none;border:none;border-radius:0;justify-content:center;align-items:center;margin:0;padding:0;display:inline-flex}.user-auswertungshilfe-actions{flex-shrink:0;align-items:center;gap:.35rem;display:inline-flex}button.user-auswertungshilfe-delete-btn{box-sizing:border-box;justify-content:center;align-items:center;width:2.5rem;min-width:2.5rem;height:2.5rem;min-height:2.5rem;padding:0;display:inline-flex}.course-meta-settings-row .view-toolbar-actions{align-items:flex-end}.projects-meta-maximize-field{flex:none}button.table-maximize-toggle-btn.course-meta-inline-btn{box-sizing:border-box;justify-content:center;align-items:center;width:1.875rem;min-width:1.875rem;height:1.875rem;min-height:1.875rem;padding:0;display:inline-flex}.course-meta-settings-row button.table-maximize-toggle-btn.course-meta-inline-btn:not(.table-maximize-toggle-btn--match-adjacent),.projects-meta-settings button.table-maximize-toggle-btn.course-meta-inline-btn:not(.table-maximize-toggle-btn--match-adjacent){width:1.875rem;min-width:1.875rem;height:1.875rem;min-height:1.875rem;padding:0}.projects-meta-maximize-field .course-meta-field__row{min-height:var(--course-meta-control-height);justify-content:center;align-items:center}button.table-maximize-toggle-btn--match-adjacent.course-meta-inline-btn{width:var(--course-meta-control-height);min-width:var(--course-meta-control-height);height:var(--course-meta-control-height);min-height:var(--course-meta-control-height)}.view-page-chrome .view-toolbar-actions button.table-maximize-toggle-btn--match-adjacent.course-meta-inline-btn{width:2.5rem;min-width:2.5rem;height:2.5rem;min-height:2.5rem}.table-max-host__toolbar--embedded-hidden{display:none}.school-roster-years-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.school-roster-years-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.75rem 1rem;display:flex}.school-roster-years-toolbar__new-year{margin-left:auto}.school-roster-table-scroll{overscroll-behavior:contain;isolation:isolate;max-height:min(70vh,42rem);overflow:auto}.school-roster-table-scroll thead th{z-index:4;background:hsl(var(--muted));box-shadow:0 1px 0 var(--border);position:sticky;top:0}.school-roster-table-scroll tbody td{z-index:0;background:var(--surface);position:relative}.school-roster-table-scroll tbody tr:hover td{background:hsl(var(--accent) / .5)}.school-roster-badge{vertical-align:middle;white-space:nowrap;border-radius:4px;align-items:center;margin-left:.5rem;padding:.12rem .4rem;font-size:.72rem;font-weight:500;line-height:1.2;display:inline-flex}.school-roster-badge--global{color:#38bdf8;background:#38bdf826;border:1px solid #38bdf84d}.school-roster-badge--private{color:#c084fc;background:#a855f726;border:1px solid #a855f74d}.school-roster-inline-actions{flex-direction:column;flex:12rem;min-width:min(100%,12rem);max-width:100%;display:flex}.school-roster-inline-actions__label-spacer{visibility:hidden;-webkit-user-select:none;user-select:none;pointer-events:none;margin-bottom:.25rem;font-size:.8rem;line-height:1.2;display:block}.school-roster-inline-actions__buttons{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.school-roster-import-actions{flex:auto;align-items:center;gap:.35rem;min-width:0;max-width:100%;display:inline-flex}.school-roster-import-actions .school-roster-control-btn{flex:auto;min-width:0}.school-roster-add-form{box-sizing:border-box;flex-wrap:wrap;align-items:flex-end;gap:.75rem;width:100%;min-width:0;display:flex}.school-roster-add-form>div{box-sizing:border-box;min-width:0;max-width:100%}.school-roster-add-form__grade,.school-roster-add-form__section{flex:0 auto}.school-roster-add-form__name{flex:10rem;min-width:min(100%,8rem)}.school-roster-add-form input,.school-roster-add-form select{width:100%;min-width:0;max-width:100%;height:var(--course-meta-control-height);min-height:var(--course-meta-control-height);box-sizing:border-box;padding:0 .5rem;font-size:.875rem;line-height:1.2}.school-roster-years-row select,.settings-roster-transfer-row select,.settings-roster-transfer-row input[type=search]{height:var(--course-meta-control-height);min-height:var(--course-meta-control-height);box-sizing:border-box;padding:0 .5rem;font-size:.875rem;line-height:1.2}button.school-roster-control-btn,button.school-roster-control-btn.tab,button.school-roster-control-btn.tab.active,button.school-roster-control-btn.tab.secondary,button.school-roster-control-btn.danger{height:var(--course-meta-control-height);min-height:var(--course-meta-control-height);box-sizing:border-box;white-space:nowrap;justify-content:center;align-items:center;padding:0 .65rem;font-size:.875rem;font-weight:500;line-height:1.2;display:inline-flex}.exams-active-body{flex-direction:column;flex:1;min-height:0;display:flex}.exams-active-body.sidebar-layout{flex-direction:row;align-items:stretch;gap:1.5rem}.exams-main-stack{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.exams-main-stack>.exams-body-scroll{flex:1;min-height:0}.exam-charts-modal-backdrop{z-index:400;box-sizing:border-box;background:#0f172a73;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.exam-charts-modal-dialog{background:hsl(var(--background));border-radius:var(--radius);border:1px solid var(--border);width:100%;max-width:min(1200px,100%);max-height:min(96dvh,100vh - 1.5rem);overflow:auto;box-shadow:0 25px 50px -12px #00000040}.exam-charts-modal-header{border-bottom:1px solid var(--border);background:hsl(var(--background));z-index:2;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;display:flex;position:sticky;top:0}.exam-charts-modal-body{padding:1.25rem 1.25rem 1.5rem}.exam-charts-modal-body--charts{padding-top:1.75rem;padding-bottom:2rem}.exam-charts-class-average{box-sizing:border-box;background:hsl(var(--muted) / .35);border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:baseline;gap:1rem;width:100%;margin-bottom:1.25rem;padding:.85rem 1.1rem;display:flex}.exam-charts-class-average-label{color:var(--foreground);font-size:.95rem;font-weight:600}.exam-charts-class-average-value{font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--foreground);font-size:1.5rem;font-weight:700}.exam-charts-grid{align-items:stretch}.exam-charts-grid>.exam-charts-panel{box-sizing:border-box;flex-direction:column;height:100%;min-height:0;display:flex}.exam-charts-panel__body{flex-direction:column;flex:1;min-height:0;display:flex}.exam-charts-panel__body--centered{justify-content:center}.exam-charts-panel__chart,.exam-charts-panel__footnote{flex-shrink:0}.exam-task-analysis{flex-direction:column;width:100%;display:flex}.exam-task-analysis__bars{box-sizing:border-box;align-items:flex-end;gap:.3rem;padding:.35rem .3rem 0;display:flex;overflow:visible}.exam-task-analysis__row-gutter{flex:0 0 2.25rem;min-width:2.25rem}.exam-task-analysis__bar-col{flex:1;justify-content:center;align-items:flex-end;min-width:0;height:100%;display:flex}.exam-task-analysis__bar{border-radius:2px 2px 0 0;width:80%;min-height:2px;transition:height .3s}.exam-task-analysis__labels{box-sizing:border-box;border-top:2px solid #eee;flex-direction:column;gap:.15rem;margin-top:.75rem;padding:.5rem .3rem 0;display:flex}.exam-task-analysis__labels-row{align-items:baseline;gap:.3rem;display:flex}.exam-task-analysis__labels-row .exam-task-analysis__row-gutter{text-align:left;white-space:nowrap}.exam-task-analysis__label-cell{text-align:center;flex:1;min-width:0}.exam-task-analysis__label-title{font-size:.75rem;font-weight:700}.exam-task-analysis__label-line{color:var(--text-muted);white-space:nowrap;font-size:.6rem;line-height:1.25}.exam-task-analysis__label-line--pct{font-size:.65rem}.exam-charts-popover-backdrop{z-index:4500;background:0 0;position:fixed;inset:0}.exam-charts-popover-panel{z-index:4501;box-sizing:border-box;background:hsl(var(--background));border:2px solid var(--border);border-radius:8px;min-width:11rem;max-width:min(18rem,100vw - 1rem);padding:.75rem;position:fixed;box-shadow:0 4px 6px #00000012,0 18px 40px #00000024}.oral-formula-modal-backdrop{z-index:5000;box-sizing:border-box;background:#0f172a73;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.oral-formula-modal-dialog{background:hsl(var(--background));border-radius:var(--radius);border:1px solid var(--border);width:100%;max-width:min(32rem,100vw - 2rem);max-height:min(85dvh,100%);overflow:auto;box-shadow:0 25px 50px -12px #0003}.oral-formula-modal-header{border-bottom:1px solid var(--border);background:hsl(var(--background));z-index:1;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem 1rem;display:flex;position:sticky;top:0}.oral-formula-modal-body{padding:1rem 1.1rem 1.15rem}.gfs-auswertung-dialog{flex-direction:column;max-width:min(58rem,100vw - 1.5rem);max-height:min(85dvh,100%);display:flex;overflow:hidden}.gfs-auswertung-header{z-index:30;flex-shrink:0;position:relative}.gfs-auswertung-header-actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.gfs-auswertung-body{flex:auto;min-height:0;padding:.75rem 1rem 1rem;overflow-y:auto}.gfs-auswertung-table-wrap{margin-bottom:1rem;overflow-x:auto}.gfs-auswertung-table thead th{z-index:5;background:hsl(var(--muted) / .95);position:sticky;top:0}.gfs-auswertung-table{table-layout:fixed;border-collapse:collapse;width:100%;font-size:.78rem;line-height:1.35}.gfs-auswertung-col-criterion{width:11.5rem}.gfs-auswertung-col-points{width:5.5rem}.gfs-auswertung-table th,.gfs-auswertung-table td{border:1px solid var(--border);vertical-align:top}.gfs-auswertung-table tbody tr{height:5.75rem}.gfs-auswertung-th-criterion,.gfs-auswertung-criterion-label{text-align:left;background:hsl(var(--muted) / .35);box-sizing:border-box;overflow-wrap:anywhere;word-break:break-word;width:11.5rem;min-width:11.5rem;max-width:11.5rem;height:5.75rem;padding:.45rem .55rem;font-weight:600}.gfs-auswertung-th-points{background:hsl(var(--muted) / .2);box-sizing:border-box;width:5.5rem;min-width:5.5rem;max-width:5.5rem;padding:.35rem}.gfs-auswertung-td{box-sizing:border-box;width:5.5rem;min-width:5.5rem;max-width:5.5rem;height:5.75rem;padding:0;overflow:hidden}.gfs-auswertung-td--empty{background:hsl(var(--muted) / .12)}.gfs-auswertung-cell{width:100%;height:100%;min-height:5.75rem;color:var(--text-main);text-align:left;cursor:pointer;font:inherit;font-synthesis:none;box-sizing:border-box;overflow-wrap:anywhere;word-break:break-word;background:0 0;border:none;padding:.4rem .35rem;font-weight:600;line-height:1.3;display:block}.gfs-auswertung-cell:hover{background:hsl(var(--brand-hsl) / .06)}.gfs-auswertung-cell--selected{background:hsl(var(--brand-hsl) / .14);outline:2px solid hsl(var(--brand-hsl));outline-offset:-2px}.gfs-auswertung-footer{flex-direction:column;gap:.85rem;display:flex}.gfs-auswertung-sum-row{border:1px solid var(--border);border-radius:var(--radius);background:hsl(var(--brand-hsl) / .05);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem 1.5rem;padding:.65rem .75rem;display:flex}.gfs-auswertung-sum-grade{text-align:right;flex:none;margin-left:auto}.gfs-auswertung-grade-table summary{cursor:pointer;color:var(--text-muted);-webkit-user-select:none;user-select:none;font-size:.85rem}.gfs-auswertung-grade-table-grid{grid-template-columns:repeat(auto-fill,minmax(4.5rem,1fr));gap:.25rem .5rem;margin-top:.5rem;font-size:.75rem;display:grid}.gfs-auswertung-grade-hit{color:hsl(var(--brand-hsl));font-weight:700}.gfs-auswertung-bemerkungen-label{flex-direction:column;gap:.35rem;font-size:.85rem;font-weight:600;display:flex}.gfs-auswertung-bemerkungen{box-sizing:border-box;border:1px solid var(--border);background:hsl(var(--background));width:100%;color:var(--foreground);resize:vertical;border-radius:8px;min-height:4.5rem;padding:.6rem .7rem;font-size:.875rem;line-height:1.45}.gfs-auswertung-open-btn{white-space:nowrap;justify-content:center;align-items:center;gap:.15rem;width:100%;padding:.35rem .45rem;font-size:.78rem;display:inline-flex}.summary-formula-math-block{background:hsl(var(--brand-hsl) / .06);border:1px solid var(--border);border-radius:var(--radius);text-align:center;color:var(--text-main);margin:.5rem 0 0;padding:1rem 1.1rem;font-family:Georgia,Times New Roman,DejaVu Serif,serif;font-size:1.05rem;line-height:1.65;overflow-x:auto}.summary-formula-math-fraction{vertical-align:middle;text-align:center;grid-template-rows:auto auto;margin:0 .2rem;display:inline-grid}.summary-formula-math-fraction>span:first-child{border-bottom:1px solid;padding:0 .35rem .15rem}.summary-formula-math-fraction>span:last-child{padding:.15rem .35rem 0;font-size:.92em}.calc-step-list{margin:0 0 1rem;padding-left:1.35rem;list-style:decimal}.calc-step-list li{margin-bottom:.55rem;line-height:1.6}.calc-step-list__plain{color:var(--text-muted);font-size:.875rem}.calc-step-list__math{color:var(--text-main);font-size:.9rem}.calc-step-math{font-family:Georgia,Times New Roman,DejaVu Serif,serif}.calc-step-math .summary-formula-math-fraction{font-size:1.02em}.calc-step-math--stacked-equals .calc-step-math__symbolic{display:block}.calc-step-math--stacked-equals .calc-step-math__numeric{margin-top:.35rem;padding-left:7.25rem;display:block}.calc-modal-section{margin-bottom:1.25rem}.calc-modal-section--result{margin-bottom:0}.calc-modal-section-title{color:var(--text-main);text-transform:uppercase;letter-spacing:.04em;margin:0 0 .65rem;font-size:.9rem;font-weight:600}.calc-general-list{margin:0 0 .75rem;padding:0;list-style:none}.calc-general-list li{margin-bottom:.45rem}.calc-step-hint{font-family:var(--font-sans,system-ui, sans-serif);color:var(--text-muted);font-size:.8rem;font-style:normal}.calc-general-rest{margin:0 0 .75rem}.calc-general-final{text-align:left;font-size:.95rem}.calc-general-note{color:var(--text-muted);margin:.55rem 0 0;font-size:.8rem}.calc-modal-result{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);color:var(--text-main);margin:0;padding:.75rem 1rem;font-size:1rem;font-weight:600}.sidebar-layout>.exams-main-stack.main-content{flex:1}.exams-key-sidebar{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex-shrink:0;align-self:stretch;width:250px;min-height:0;overflow:hidden auto}@media (width<=1100px){.exams-active-body.sidebar-layout{flex-direction:column}.exams-key-sidebar{width:100%;max-height:min(55vh,28rem)}}.exam-table-scroll thead th.exam-th-r1,.exam-table-scroll thead th.exam-th-r2{background:hsl(var(--muted) / .95);position:sticky}.exam-table-scroll thead tr:first-child th.exam-th-r1{z-index:3;box-shadow:0 1px 0 var(--border);top:0}.exam-table-scroll thead tr:nth-child(2) th.exam-th-r2{box-shadow:0 1px 0 var(--border);top:2.75rem}.exam-table-scroll thead tr:nth-child(2) th.exam-th-r2:not(.exam-th-sticky-left):not(.exam-th-sticky-right){z-index:1}.exam-table-scroll thead tr:first-child th.exam-th-sticky-left,.exam-table-scroll thead tr:first-child th.exam-th-sticky-right{z-index:9}.exam-table-scroll thead tr:nth-child(2) th.exam-th-sticky-left,.exam-table-scroll thead tr:nth-child(2) th.exam-th-sticky-right{z-index:8}.exam-table-scroll thead th.exam-th-sticky-left{border-right:1px solid var(--border)}.exam-table-scroll thead th.exam-th-sticky-right{border-left:1px solid var(--border)}.exam-table-scroll .table-container thead th:not(:last-child),.exam-table-scroll .table-container tbody td:not(:last-child){border-right:1px solid var(--border)}.exam-table-scroll .table-container{box-sizing:border-box;width:max-content;min-width:100%;max-width:none}.exam-table-scroll .table-container>table{width:max-content;min-width:100%}.exam-index-flag{z-index:5;cursor:default;line-height:0;position:absolute;top:1px;right:3px}.summary-leistung-flag{cursor:pointer;background:0 0;border:none;margin:0;padding:0;line-height:0;display:block}.summary-leistung-flag:hover svg path{fill:#fecaca}.summary-leistung-flag:focus-visible{outline-offset:2px;border-radius:2px;outline:2px solid #dc2626}.exam-table-scroll input.exam-score-input--out-of-range{color:var(--danger);background:hsl(var(--danger-hsl) / .12)!important;border:1px solid hsl(var(--danger-hsl) / .5)!important}.exam-nach-task-cell{flex-direction:column;align-items:center;gap:.15rem;display:inline-flex}.gfs-gehalten-td{padding:.4rem .5rem!important}.gfs-gehalten-td--unchecked{box-shadow:inset 0 0 0 1px #edd3b6;background:#ffeedb!important}.gfs-gehalten-td--unchecked .gfs-gehalten-checkbox{accent-color:#ca6a16}.gfs-gehalten-td--checked{box-shadow:inset 0 0 0 1px #b0ddc1;background:#ddf3e5!important}.gfs-gehalten-td--checked .gfs-gehalten-checkbox{accent-color:#27864a}.gfs-gehalten-label{cursor:pointer;vertical-align:middle;justify-content:center;align-items:center;margin:0;display:inline-flex}.gfs-gehalten-checkbox{cursor:pointer;vertical-align:middle;width:1.1rem;height:1.1rem;margin:0}tbody tr:hover td.gfs-gehalten-td--unchecked{box-shadow:inset 0 0 0 1px #eaceae;background:#ffead1!important}tbody tr:hover td.gfs-gehalten-td--checked{box-shadow:inset 0 0 0 1px #a9dabb;background:#d5f1df!important}[data-theme=dark] .gfs-gehalten-td--unchecked,[data-theme=dark] .gfs-gehalten-td--checked,[data-theme=dark] tbody tr:hover td.gfs-gehalten-td--unchecked,[data-theme=dark] tbody tr:hover td.gfs-gehalten-td--checked{box-shadow:none;background:0 0!important}.gfs-note-input{box-sizing:border-box;text-align:center;width:100%}.gfs-note-input--worse-than-4{color:var(--danger);background:hsl(var(--danger-hsl) / .12)!important;border:1px solid hsl(var(--danger-hsl) / .5)!important}.exam-index-tooltip-portal{box-sizing:border-box;letter-spacing:.01em;white-space:nowrap;text-align:center;width:max-content;max-width:min(18rem,100vw - 1.5rem);color:var(--text-main);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);pointer-events:none;padding:.4rem .65rem;font-size:.8125rem;font-weight:500;line-height:1.35;box-shadow:0 1px 2px #0000000f,0 8px 24px #0000001a}.view-table-scroll:not(.exam-table-scroll):not(.oral-table-scroll) thead th,.oral-table-scroll thead th{z-index:2;background:hsl(var(--muted) / .95);box-shadow:0 1px 0 var(--border);position:sticky;top:0}.oral-table-scroll thead th.oral-th-sticky-left,.oral-table-scroll thead th.oral-th-sticky-right{z-index:5;background:hsl(var(--muted) / .95)}.oral-table-scroll thead th.oral-th-sticky-left{border-right:1px solid var(--border)}.oral-table-scroll thead th.oral-th-sticky-right{border-left:1px solid var(--border)}@media (width<=980px){.header-controls-row{flex-direction:column;align-items:stretch}.header-search-wrap{width:100%;min-width:0}}.settings-nav-menu{flex-direction:column;gap:.25rem;display:flex}.settings-nav-menu button{text-align:left;width:100%;color:var(--text-main);border-radius:calc(var(--radius) - 2px);cursor:pointer;background:0 0;border:none;padding:.5rem .65rem;font-size:.875rem;font-weight:500;line-height:1.3;display:block}.settings-nav-menu button:hover{background:hsl(var(--muted))}@media (width<=768px){.app-desktop-only{display:none!important}body.app-mobile-drawer-open{overflow:hidden}.app-container--mobile{flex-direction:row}.app-sidebar--mobile{z-index:1300;border-right:1px solid var(--border);background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom:none;height:100dvh;max-height:none;transition:transform .25s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);width:min(88vw,300px)!important}.app-sidebar--mobile.app-sidebar--open{transform:translate(0);box-shadow:8px 0 24px #00000026}.app-mobile-settings-panel{z-index:1300;background:var(--surface);border-left:1px solid var(--border);width:min(88vw,300px);padding-bottom:env(safe-area-inset-bottom,0);flex-direction:column;transition:transform .25s;display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(100%)}.app-mobile-settings-panel.is-open{transform:translate(0);box-shadow:-8px 0 24px #00000026}.app-mobile-backdrop{z-index:1250;cursor:pointer;background:#0000006b;border:none;margin:0;padding:0;position:fixed;inset:0}.app-mobile-header{z-index:1200;background:hsl(var(--background) / .98);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);padding-top:env(safe-area-inset-top,0px);position:fixed;top:0;left:0;right:0;box-shadow:0 1px #0000000a}.app-mobile-header-toolbar{justify-content:space-between;align-items:center;gap:.35rem;min-height:3rem;padding:.4rem .5rem;display:flex;position:relative}.app-mobile-header-btn{color:hsl(var(--foreground));background:hsl(var(--muted) / .5);border:1px solid var(--border);cursor:pointer;white-space:nowrap;z-index:1;border-radius:.5rem;justify-content:center;align-items:center;gap:.35rem;padding:.45rem .55rem;font-size:.75rem;font-weight:600;line-height:1.2;display:inline-flex;position:relative}.app-mobile-header-btn--toggle{z-index:2;background:var(--surface);min-width:2.75rem;padding-left:.65rem;padding-right:.65rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.app-mobile-header-btn--right{margin-left:auto}.app-mobile-header-btn:hover{background:hsl(var(--muted))}.app-mobile-header-body{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex-direction:column;gap:.5rem;max-height:min(58dvh,480px);padding:0 .65rem .65rem;display:flex;overflow:hidden auto}.app-mobile-header-course-title.course-header-title--mobile h1,.course-header-title--mobile .course-header-title__name{color:var(--primary);margin:0;font-size:1.125rem;line-height:1.25}.app-mobile-header-course-title.course-header-title--mobile p,.course-header-title--mobile .course-header-title__meta{color:var(--text-muted);margin:.25rem 0 0;font-size:.8125rem;line-height:1.35}.app-mobile-header-back{align-self:flex-start;width:auto}.app-mobile-tabs,.app-mobile-header-body .equiphi-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;gap:.25rem;width:100%;overflow-x:auto;justify-content:flex-start!important}.app-mobile-tabs::-webkit-scrollbar{display:none}.app-mobile-header-body .equiphi-tabs::-webkit-scrollbar{display:none}.app-mobile-tabs .tab,.app-mobile-header-body .equiphi-tabs .tab{white-space:nowrap;flex:none;padding:.3rem .42rem;font-size:.6875rem;line-height:1.2}.app-mobile-page-settings-toggle{width:100%;color:hsl(var(--foreground));background:hsl(var(--muted) / .45);border:1px solid var(--border);cursor:pointer;border-radius:.5rem;justify-content:center;align-items:center;gap:.35rem;margin-top:.15rem;padding:.4rem .65rem;font-size:.75rem;font-weight:600;line-height:1.2;display:inline-flex}.app-mobile-page-settings-toggle:hover{background:hsl(var(--muted) / .75)}.app-container--mobile .app-main-views{flex:1;min-height:0;overflow:hidden}.app-container--mobile .view-page-scroll,.app-container--mobile .view-root-fill{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.app-container--mobile .view-page-scroll>.view-toolbar-block,.app-container--mobile .view-root-fill>.view-page-nav,.app-container--mobile .view-root-fill>.view-toolbar-block{flex-shrink:0}.app-container--mobile .view-page-scroll>.view-toolbar-block,.app-container--mobile .view-root-fill>.view-toolbar-block{-webkit-overflow-scrolling:touch;max-height:min(42dvh,320px);overflow:hidden auto}.app-container--mobile .view-toolbar-block .course-meta-settings-row:not(.projects-meta-settings){width:max-content;max-width:none;min-width:min(100%, max-content)}.app-container--mobile .projects-meta-settings.course-meta-settings-row{box-sizing:border-box;width:100%;min-width:0;max-width:100%}.app-container--mobile .course-meta-settings-row:not(.oral-meta-panel):not(.projects-meta-settings),.app-container--mobile .projects-meta-settings.course-meta-settings-row{overflow:visible}.app-container--mobile .view-page-scroll>.exams-active-body,.app-container--mobile .view-root-fill>.exams-active-body{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.app-container--mobile .view-page-scroll>.view-table-scroll,.app-container--mobile .view-root-fill>.view-table-scroll{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.app-container--mobile .exams-active-body .exams-main-stack{flex:1;min-width:0;min-height:0;overflow:hidden}.app-container--mobile .view-table-scroll,.app-container--mobile .exams-body-scroll.view-table-scroll,.app-container--mobile .gfs-table-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-x pan-y;flex:1;min-width:0;min-height:0;overflow:auto}.app-container--mobile .view-generic-scroll--gfs{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.app-container--mobile .view-generic-scroll--gfs>.view-page-chrome{box-sizing:border-box;flex-shrink:0;width:100%;min-width:0;max-width:100%}.app-container--mobile .keys-view-toolbar{flex-direction:column;align-items:stretch}.app-container--mobile .keys-view-toolbar-panel{flex:auto!important;width:100%!important;min-width:0!important;max-width:100%!important}.app-container--mobile .view-generic-scroll--gfs>.gfs-table-scroll{flex:1;min-height:0}.app-container--mobile .view-page-scroll>.view-table-scroll,.app-container--mobile .view-root-fill>.view-table-scroll{min-height:var(--student-table-min-height,12rem)}.app-main--mobile-header{padding-top:var(--app-mobile-header-height,3.25rem)}.app-main--mobile-header .sticky-header{display:none}.app-container--mobile.app-mobile-page-settings-collapsed .app-mobile-header-search-row,.app-container--mobile.app-mobile-page-settings-collapsed .view-toolbar-block,.app-container--mobile.app-mobile-page-settings-collapsed .view-page-nav,.app-container--mobile.app-mobile-page-settings-collapsed .course-meta-settings-row,.app-container--mobile.app-mobile-page-settings-collapsed .oral-meta-panel,.app-container--mobile.app-mobile-page-settings-collapsed .view-page-chrome,.app-container--mobile.app-mobile-page-settings-collapsed .exams-key-sidebar{display:none!important}.app-container--mobile.app-mobile-page-settings-collapsed .exams-active-body.sidebar-layout{display:block}.app-container--mobile.app-mobile-page-settings-collapsed .exams-main-stack.main-content{width:100%;max-width:100%}.app-mobile-panel-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:.85rem 1rem;font-size:.9375rem;font-weight:600;display:flex}.app-mobile-panel-close{width:2.25rem;height:2.25rem;color:hsl(var(--foreground));cursor:pointer;background:0 0;border:none;border-radius:.375rem;justify-content:center;align-items:center;padding:0;display:inline-flex}.app-mobile-panel-close:hover{background:hsl(var(--muted))}.settings-nav-menu--panel{-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding:.35rem;overflow-y:auto}.app-mobile-panel-footer{border-top:1px solid var(--border);flex-shrink:0;padding:.65rem 1rem}.app-mobile-panel-footer .header-user-menu-wrap{width:100%}.app-info-registration-header{flex-direction:column;align-items:stretch}.app-info-unregister-btn{box-sizing:border-box;white-space:normal;text-align:center;width:100%;max-width:100%}.user-auswertungshilfe-btn{white-space:normal;text-align:center;max-width:100%}.school-roster-add-form{flex-direction:column;align-items:stretch}.school-roster-add-form>div,.school-roster-add-form__grade,.school-roster-add-form__section,.school-roster-add-form__name,.school-roster-inline-actions{flex:100%;width:100%;min-width:0;max-width:100%}.school-roster-inline-actions__label-spacer{display:none}.school-roster-inline-actions__buttons{flex-direction:column;align-items:stretch;width:100%}.school-roster-inline-actions__buttons .school-roster-control-btn{white-space:normal;text-align:center;width:100%}.school-roster-import-actions{flex-direction:row;width:100%}.school-roster-import-actions .school-roster-control-btn{flex:auto;width:auto}.school-roster-years-toolbar__new-year{white-space:normal;text-align:center;width:100%;margin-left:0}.app-main{flex:1;min-width:0;min-height:0}.app-main-content-wrap{padding:0 max(.65rem, env(safe-area-inset-right,0px)) max(1rem, env(safe-area-inset-bottom,0px)) max(.65rem, env(safe-area-inset-left,0px))}.app-main-inner{padding-left:max(.65rem, env(safe-area-inset-left,0px));padding-right:max(.65rem, env(safe-area-inset-right,0px));padding-bottom:max(1rem, env(safe-area-inset-bottom,0px))}.app-main--mobile-header .app-main-content-wrap{flex-direction:column;flex:1;min-height:0;margin-top:0;display:flex;overflow:hidden}.sticky-header h1{font-size:1.125rem;line-height:1.25}.tab{padding:.45rem .6rem;font-size:.8125rem}.app-main-views .flex.justify-between.items-center{flex-direction:column;gap:.65rem;align-items:stretch!important}.app-main-views .flex.items-end.gap-6{flex-direction:column;align-items:stretch!important}.app-container--mobile .course-meta-settings-row,.app-container--mobile .oral-meta-panel.course-meta-settings-row{flex-flow:wrap;justify-content:flex-start;gap:.5rem .65rem;align-items:flex-end!important}.app-container--mobile .course-meta-settings-row .course-meta-field{flex:0 auto;width:auto;max-width:100%;margin-left:0!important}.app-container--mobile .course-meta-settings-row input.course-meta-control:not([type=checkbox]),.app-container--mobile .course-meta-settings-row select.course-meta-control{max-width:100%;width:auto!important}.app-container--mobile .course-meta-settings-row select.course-meta-control[id*=-hj-]{min-width:3.5rem;max-width:4.25rem;width:3.5rem!important}.app-container--mobile .course-meta-settings-row input.course-meta-control[type=number]{min-width:4.5rem;max-width:6rem;width:4.5rem!important}.app-container--mobile .course-meta-settings-row input.course-meta-control[type=date]{min-width:9.25rem;max-width:min(100%,11.25rem);width:auto!important}.app-container--mobile .course-meta-settings-row .course-meta-field:has(select[id*=-key-]){flex:100%;min-width:min(100%,14rem)}.app-container--mobile .course-meta-settings-row .course-meta-field:has(select[id*=-key-]) select.course-meta-control{max-width:100%;width:100%!important}.app-container--mobile .course-meta-settings-row .course-meta-field:has(.grading-key-select) .grading-key-select{max-width:100%;width:100%!important}.app-container--mobile .projects-meta-settings{flex-flow:column wrap;align-items:flex-start;gap:.5rem .65rem;width:100%;min-width:0;max-width:100%;display:flex;overflow:visible}.app-container--mobile .projects-meta-settings__row--top{display:contents}.app-container--mobile .projects-meta-field--actions-slot{display:none!important}.app-container--mobile .projects-view-page-nav{flex-direction:column;align-items:stretch;gap:.65rem}.app-container--mobile .projects-view-tabs-row{justify-content:space-between;align-items:stretch;gap:.5rem;width:100%;min-width:0;display:flex}.app-container--mobile .projects-view-tabs{flex:auto;align-items:stretch;min-width:0;flex-wrap:nowrap!important}.app-container--mobile .projects-view-tabs .tab{justify-content:center;align-items:center;height:auto;min-height:100%;display:inline-flex}.app-container--mobile .projects-nav-delete-btn{box-sizing:border-box;flex:none;justify-content:center;align-self:stretch;align-items:center;margin-left:auto;width:auto!important;min-width:2.5rem!important;height:auto!important;min-height:100%!important;max-height:none!important;padding:.45rem .65rem!important;display:inline-flex!important}.app-container--mobile .projects-meta-settings__top-left{flex-wrap:wrap;justify-content:flex-start;align-items:flex-end;gap:.5rem .65rem;width:100%;min-width:0;max-width:100%;display:flex;overflow:visible}.app-container--mobile .projects-meta-settings__row--core,.app-container--mobile .projects-meta-settings__row--description{flex-flow:wrap;justify-content:flex-start;align-items:flex-end;gap:.5rem .65rem;width:100%;min-width:0;max-width:100%;display:flex;overflow:visible}.app-container--mobile .projects-meta-settings__row--core{order:3}.app-container--mobile .projects-meta-settings__row--description{order:4}.app-container--mobile .projects-meta-weighting-end{flex-wrap:wrap;flex:100%;align-items:flex-end;gap:.5rem .65rem;width:100%;max-width:100%;margin-left:0;display:flex;overflow:visible}.app-container--mobile .projects-meta-settings .course-meta-field{text-align:left;flex:0 auto;width:auto;max-width:100%;margin-left:0!important}.app-container--mobile .projects-meta-settings .course-meta-field__label{text-align:left}.app-container--mobile .projects-meta-settings .course-meta-field:has(select[id*=-key-]){flex:100%;min-width:min(100%,14rem);max-width:100%}.app-container--mobile .projects-meta-settings .projects-meta-field--key{max-width:min(100%,9.5rem);flex:0 auto!important;min-width:0!important}.app-container--mobile .projects-meta-settings .course-meta-field:has(select[id*=-key-]) select.course-meta-control{max-width:100%;width:100%!important}.app-container--mobile .projects-meta-settings .course-meta-field:has(.grading-key-select) .grading-key-select{max-width:100%;width:100%!important}.app-container--mobile .projects-meta-settings .projects-meta-field--key select.course-meta-control,.app-container--mobile .projects-meta-settings .projects-meta-field--key .grading-key-select{min-width:7.5rem;max-width:min(100%,9.5rem);width:9.5rem!important}.app-container--mobile .projects-meta-settings .projects-meta-field--numfields .course-meta-control{min-width:3rem;max-width:3.25rem;width:3rem!important}.app-container--mobile .projects-meta-settings .projects-meta-field--weighting{flex:0 auto;max-width:min(100%,8.75rem)}.app-container--mobile .projects-meta-settings .projects-meta-field--weighting select.course-meta-control{min-width:7rem;max-width:min(100%,8.75rem);width:8.75rem!important}.app-container--mobile .projects-meta-settings .projects-meta-field--percent .course-meta-control{min-width:3.25rem;max-width:3.5rem;width:3.25rem!important}.app-container--mobile .projects-meta-settings .course-meta-field:has(input[id*=-name-]){flex:100%;min-width:min(100%,14rem);max-width:100%}.app-container--mobile .projects-meta-settings .course-meta-field:has(input[id*=-name-]) .course-meta-control{max-width:100%;width:100%!important}.app-container--mobile .projects-meta-settings__row--description .course-meta-field{flex:100%;width:100%;max-width:100%}.app-container--mobile .oral-meta-panel>.flex.items-end{flex-wrap:wrap;flex:0 auto;gap:.5rem .65rem;width:auto;flex-direction:row!important;align-items:flex-end!important}.app-container--mobile .oral-extended-controls-rail{gap:.5rem .65rem;width:auto;text-align:left!important;flex:0 0 100%!important;justify-content:flex-start!important;align-items:flex-start!important;margin-left:0!important}.app-container--mobile .oral-extended-controls-rail .course-meta-control{width:auto!important}.app-container--mobile .oral-extended-controls-extended{flex-direction:column!important;justify-content:flex-start!important;align-items:flex-start!important;gap:.65rem 0!important;width:100%!important}.app-container--mobile .oral-extended-controls-extended .course-meta-field__row{flex-wrap:wrap;justify-content:flex-start!important}.app-container--mobile .oral-extended-controls-extended .course-meta-field__label{width:auto;text-align:left!important}.app-main-views h2{font-size:1.2rem}.app-container--mobile .view-table-scroll>.table-max-host:not(.table-max-host--maximized),.app-container--mobile .gfs-table-scroll>.table-max-host:not(.table-max-host--maximized){flex:none;width:max-content;min-width:100%;max-width:none}.app-container--mobile .view-table-scroll .table-container,.app-container--mobile .gfs-table-scroll .table-container,.app-container--mobile .view-table-scroll .table-max-host:not(.table-max-host--maximized) .table-max-host__body,.app-container--mobile .gfs-table-scroll .table-max-host:not(.table-max-host--maximized) .table-max-host__body{width:max-content;min-width:100%;max-width:none;overflow:visible}.app-container--mobile .view-table-scroll table,.app-container--mobile .gfs-table-scroll table{table-layout:auto;width:max-content;min-width:100%;max-width:none}.app-container--mobile .table-max-host__toggle,.app-container--mobile .table-maximize-toggle-btn{display:none!important}.app-container--mobile .exam-table-scroll thead,.app-container--mobile .exam-table-scroll tfoot,.app-container--mobile .oral-table-scroll thead,.app-container--mobile .oral-table-scroll tfoot,.app-container--mobile .gfs-table-scroll thead,.app-container--mobile .gfs-table-scroll tfoot{position:static!important}.app-container--mobile .exam-table-scroll th,.app-container--mobile .exam-table-scroll td,.app-container--mobile .oral-table-scroll th,.app-container--mobile .oral-table-scroll td,.app-container--mobile .gfs-table-scroll th,.app-container--mobile .gfs-table-scroll td{z-index:auto!important;width:auto!important;min-width:0!important;max-width:none!important;box-shadow:none!important;position:static!important;inset:auto!important}.app-container--mobile .exam-table-scroll th.exam-task-col,.app-container--mobile .exam-table-scroll td.exam-task-col{box-sizing:border-box;width:3rem!important;min-width:3rem!important;max-width:3rem!important;padding-left:.15rem!important;padding-right:.15rem!important}.app-container--mobile .exam-table-scroll th.exam-task-col input,.app-container--mobile .exam-table-scroll td.exam-task-col input{box-sizing:border-box;font-size:.8125rem;width:100%!important;min-width:0!important;max-width:100%!important;padding:.28rem .08rem!important}.app-container--mobile .exam-table-scroll .projects-group-tables-stack{align-items:stretch;width:max-content;min-width:100%}.app-container--mobile .exam-table-scroll .projects-group-tables-stack .projects-group-table-block,.app-container--mobile .exam-table-scroll .projects-group-tables-stack .projects-group-table-container{box-sizing:border-box;width:100%;min-width:100%;max-width:none}.app-container--mobile .exam-table-scroll .projects-group-table-container table{table-layout:fixed!important;width:max-content!important;min-width:100%!important;max-width:none!important}.app-container--mobile .exam-table-scroll .projects-group-table-container .projects-col-index{box-sizing:border-box;width:2.25rem!important;min-width:2.25rem!important;max-width:2.25rem!important;padding-left:.15rem!important;padding-right:.15rem!important}.app-container--mobile .exam-table-scroll .projects-group-table-container .projects-col-name{box-sizing:border-box;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:8.5rem!important;min-width:8.5rem!important;max-width:8.5rem!important;padding-left:.35rem!important;padding-right:.35rem!important}.app-container--mobile .exam-table-scroll .projects-group-table-container .projects-col-name>div{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.app-container--mobile .exam-table-scroll .projects-group-table-container th.exam-task-col,.app-container--mobile .exam-table-scroll .projects-group-table-container td.exam-task-col{box-sizing:border-box;width:3rem!important;min-width:3rem!important;max-width:3rem!important;padding-left:.15rem!important;padding-right:.15rem!important}.app-container--mobile .exam-table-scroll .projects-group-table-container th.exam-task-col input,.app-container--mobile .exam-table-scroll .projects-group-table-container td.exam-task-col input{box-sizing:border-box;font-size:.8125rem;width:100%!important;min-width:0!important;max-width:100%!important;padding:.28rem .08rem!important}.app-container--mobile .exam-table-scroll .projects-group-table-container .projects-col-total{box-sizing:border-box;white-space:nowrap;width:5.5rem!important;min-width:5.5rem!important;max-width:5.5rem!important;padding-left:.15rem!important;padding-right:.15rem!important}.app-container--mobile .exam-table-scroll .projects-group-table-container .projects-col-grade{box-sizing:border-box;white-space:nowrap;width:5rem!important;min-width:5rem!important;max-width:5rem!important;padding-left:.15rem!important;padding-right:.15rem!important}.app-container--mobile .exam-table-scroll .projects-group-table-container .projects-col-grade .exam-manual-grade-input{box-sizing:border-box;width:100%!important;min-width:0!important;max-width:100%!important}.app-container--mobile .exam-table-scroll th.test-points-col,.app-container--mobile .exam-table-scroll td.test-points-col,.app-container--mobile .exam-table-scroll th.test-gesamt-col,.app-container--mobile .exam-table-scroll td.test-gesamt-col{box-sizing:border-box;width:6.25rem!important;min-width:6.25rem!important;max-width:6.25rem!important;padding-left:.2rem!important;padding-right:.2rem!important}.app-container--mobile .exam-table-scroll td.test-points-col input{box-sizing:border-box;font-size:.8125rem;width:100%!important;min-width:0!important;max-width:100%!important;padding:.28rem .08rem!important}.app-container--mobile .oral-table-scroll th.oral-gesamt-col,.app-container--mobile .oral-table-scroll td.oral-gesamt-col,.app-container--mobile .oral-table-scroll th.oral-note-col,.app-container--mobile .oral-table-scroll td.oral-note-col{box-sizing:border-box;width:5.5rem!important;min-width:5.5rem!important;max-width:5.5rem!important;padding-left:.15rem!important;padding-right:.15rem!important}.app-container--mobile .oral-table-scroll td.oral-note-col input{box-sizing:border-box;font-size:.8125rem;width:100%!important;min-width:0!important;max-width:100%!important;padding:.28rem .08rem!important}.summary-overview .table-container{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}.summary-overview .table-container table{width:max-content;min-width:100%;max-width:none}th,td{padding:.5rem .45rem;font-size:.8125rem}.app-container--mobile .view-table-scroll th,.app-container--mobile .view-table-scroll td,.app-container--mobile .gfs-table-scroll th,.app-container--mobile .gfs-table-scroll td{white-space:nowrap;padding:.5rem .45rem;font-size:.8125rem}.app-container--mobile .view-table-scroll tbody td input,.app-container--mobile .view-table-scroll tbody td select,.app-container--mobile .gfs-table-scroll tbody td input,.app-container--mobile .gfs-table-scroll tbody td select{box-sizing:border-box;min-width:2.75rem;max-width:none;padding:.35rem .4rem;font-size:.8125rem;width:auto!important}.app-container--mobile .gfs-table-scroll tbody td input[type=text]{min-width:5.5rem}.app-container--mobile .gfs-table-scroll tbody td input[type=date]{min-width:9.25rem}.app-container--mobile .gfs-table-scroll tbody td:nth-child(2),.app-container--mobile .gfs-table-scroll thead th:nth-child(3),.app-container--mobile .gfs-table-scroll thead th:nth-child(4),.app-container--mobile .gfs-table-scroll tbody td:nth-child(3),.app-container--mobile .gfs-table-scroll tbody td:nth-child(4){min-width:5.5rem!important}.app-container--mobile .gfs-table-scroll thead th:nth-child(5),.app-container--mobile .gfs-table-scroll tbody td:nth-child(5){min-width:9.25rem!important}.app-container--mobile .gfs-table-scroll thead th:nth-child(7),.app-container--mobile .gfs-table-scroll tbody td:nth-child(7){min-width:4.5rem!important}.app-container--mobile .gfs-table-scroll thead th:nth-child(8),.app-container--mobile .gfs-table-scroll tbody td:nth-child(8){min-width:4.25rem!important}.exam-charts-modal-backdrop{align-items:flex-end;padding:.5rem}.exam-charts-modal-dialog{border-radius:var(--radius) var(--radius) 0 0;max-height:95dvh}.exam-charts-modal-body{padding:.85rem}.grid-2,.grid-3,.course-class-data-grid{grid-template-columns:1fr}}.user-settings-section{box-sizing:border-box;flex-direction:column;gap:.5rem;width:100%;max-width:100%;display:flex}.user-settings-heading{font-size:1rem;font-weight:600}.user-settings-description{color:var(--text-muted);font-size:.875rem}.user-settings-control{align-items:center;gap:.75rem;margin-top:.25rem;display:flex}.user-settings-label{font-size:.9rem}.user-settings-select{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text-main);cursor:pointer;padding:.4rem .75rem;font-size:.9rem}.color-scheme-options{flex-wrap:wrap;gap:.75rem;display:flex}.color-scheme-btn{border-radius:var(--radius);border:2px solid var(--border);background:var(--surface);cursor:pointer;align-items:center;gap:.5rem;padding:.5rem .85rem;transition:border-color .15s,box-shadow .15s;display:flex}.color-scheme-btn:hover{border-color:var(--text-muted)}.color-scheme-btn--active{border-color:var(--primary);box-shadow:0 0 0 2px hsl(var(--brand-hsl) / .25)}.color-scheme-btn__swatch{border-radius:50%;flex-shrink:0;width:1.25rem;height:1.25rem}.color-scheme-btn__label{color:var(--text-main);white-space:nowrap;font-size:.85rem}.user-settings-section--danger{border:1px solid hsl(var(--danger-hsl,0 72% 51%) / .35);background:hsl(var(--danger-hsl,0 72% 51%) / .04)}.user-settings-heading--danger{color:var(--danger,#ef4444)}.phix-dialog-overlay{z-index:99999}.phix-dialog-card{max-width:28rem;animation:.15s ease-out phix-dialog-in}@keyframes phix-dialog-in{0%{opacity:0;transform:scale(.95)translateY(-8px)}to{opacity:1;transform:scale(1)translateY(0)}}.phix-dialog-title{color:var(--text-main);margin:0 0 .5rem;font-size:1.1rem;font-weight:700}.phix-dialog-message{color:var(--text-muted);white-space:pre-line;margin:0 0 1.25rem;font-size:.9rem;line-height:1.5}.phix-dialog-actions{justify-content:flex-end;gap:.5rem;display:flex}.phix-dialog-btn{border-radius:var(--radius);cursor:pointer;border:1px solid var(--border);transition:var(--transition);padding:.45rem 1rem;font-size:.875rem;font-weight:500}.phix-dialog-btn--cancel{background:var(--surface);color:var(--text-main)}.phix-dialog-btn--cancel:hover{background:var(--surface-hover)}.phix-dialog-btn--confirm{background:var(--primary);color:var(--surface);border-color:var(--primary)}.phix-dialog-btn--confirm:hover{background:var(--primary-hover)}.phix-dialog-btn--danger{background:var(--danger);border-color:var(--danger);color:#fff}.phix-dialog-btn--danger:hover{opacity:.9}[data-theme=dark] .slider{background:#4c5567}[data-theme=dark] .slider:before{background:#d1d9e0}[data-theme=dark] input:checked+.slider{background:#365396}[data-theme=dark] .app-login-screen{background:hsl(var(--background))}[data-theme=dark] .header-bar{background:var(--surface);border-bottom-color:var(--border)}[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea{background:var(--surface-muted);color:var(--text-main);border-color:var(--border)}[data-theme=dark] .course-tab-btn{color:var(--text-muted)}[data-theme=dark] .course-tab-btn.active{color:var(--text-main)}.album-view{box-sizing:border-box;width:100%;max-width:100%;padding:0 0 2rem}.album-view-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.album-view-actions{align-items:center;gap:.45rem;display:inline-flex}.album-visibility-btn{justify-content:center;align-items:center;width:2.1rem;min-width:2.1rem;height:2.1rem;padding:0;display:inline-flex}.album-view-empty{color:var(--text-muted);margin:0}.album-photo-placeholder{border:1px solid var(--border);color:#94a3b8;background:#fff;border-radius:.65rem;justify-content:center;align-items:center;width:100%;min-height:clamp(14rem,42vh,26rem);display:flex}.album-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}@media (width<=1100px){.album-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.album-photo-grid{grid-template-columns:minmax(0,1fr)}}.album-photo-card{border:1px solid var(--border);background:var(--surface);border-radius:.5rem;flex-direction:column;gap:.5rem;min-width:0;padding:.75rem;display:flex}.album-photo-card-head{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.album-photo-title{word-break:break-word;flex:auto;min-width:0;margin:0;font-size:1rem;line-height:1.3}.album-photo-actions{flex-shrink:0;align-items:center;gap:.35rem;display:flex}.album-photo-icon-btn{justify-content:center;align-items:center;width:1.65rem;min-width:1.65rem;height:1.65rem;padding:0;display:inline-flex}.album-photo-image-wrap{aspect-ratio:16/9;background:var(--surface-muted);cursor:zoom-in;border:none;border-radius:.35rem;width:100%;padding:0;display:block;overflow:hidden}.album-photo-image-wrap:focus-visible{outline:2px solid hsl(var(--primary-hsl,222 47% 40%));outline-offset:2px}.album-photo-image-wrap img{object-fit:cover;pointer-events:none;width:100%;height:100%;display:block}.album-photo-description{color:var(--text-main);white-space:pre-wrap;word-break:break-word;margin:0;font-size:.9rem;line-height:1.45}.album-photo-description--empty{color:var(--text-muted);font-style:italic}.album-preview-backdrop{z-index:10040;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172ab8;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.album-preview-dialog{background:var(--surface);border:1px solid var(--border);border-radius:.65rem;flex-direction:column;gap:.75rem;width:min(96vw,72rem);max-height:calc(100vh - 2rem);padding:1rem;display:flex;box-shadow:0 24px 48px #0f172a59}.album-preview-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.album-preview-header-text{flex:12rem;min-width:0}.album-preview-title{word-break:break-word;margin:0;font-size:1.1rem;line-height:1.3}.album-preview-description{color:var(--text-muted);white-space:pre-wrap;word-break:break-word;margin:.35rem 0 0;font-size:.92rem;line-height:1.45}.album-preview-toolbar{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.4rem;display:flex}.album-preview-zoom-label{text-align:center;min-width:3.5rem;color:var(--text-muted);font-size:.85rem}.album-preview-viewport{aspect-ratio:16/9;background:var(--surface-muted);touch-action:none;border-radius:.45rem;width:100%;position:relative;overflow:hidden}.album-preview-viewport--pannable{cursor:grab}.album-preview-viewport--pannable:active{cursor:grabbing}.album-preview-image{object-fit:contain;transform-origin:50%;-webkit-user-select:none;user-select:none;will-change:transform;width:100%;height:100%;display:block}.album-preview-hint{color:var(--text-muted);text-align:center;margin:0;font-size:.8rem}@media (width<=640px){.album-preview-dialog{width:100%;max-height:calc(100vh - 1rem);padding:.75rem}.album-preview-toolbar{justify-content:stretch;width:100%}.album-preview-toolbar .tab{flex:auto}}.seating-plan-view{flex-direction:column;gap:1.25rem;display:flex}.seating-plan-header{flex-direction:column;gap:1rem;display:flex}.seating-plan-toolbar{background:var(--card-bg,#ffffff0d);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1.15rem;display:flex}.seating-plan-control-group{align-items:center;gap:.75rem;display:flex}.seating-plan-label{color:var(--text-heading,currentColor);align-items:center;gap:.4rem;font-size:.875rem;font-weight:600;display:flex}.seating-plan-select{width:auto;min-width:180px;padding:.4rem .75rem;font-size:.875rem}.seating-plan-custom-inputs{align-items:center;gap:.75rem;display:flex}.seating-plan-sublabel{color:var(--text-muted);align-items:center;gap:.35rem;font-size:.8125rem;display:flex}.seating-plan-num-input{text-align:center;width:65px;padding:.3rem .4rem;font-size:.875rem}.seating-plan-actions{flex-direction:column;align-items:flex-end;gap:.45rem;display:flex}.seating-plan-actions-row{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.seating-plan-action-btn{white-space:nowrap;justify-content:center;align-items:center;gap:.4rem;padding:.4rem .75rem;font-size:.8125rem;display:inline-flex}.seating-plan-wish-modal-dialog{background:var(--surface,#1e1e24);border:1px solid var(--border);border-radius:var(--radius,12px);flex-direction:column;width:90vw;max-width:820px;max-height:85vh;animation:.18s ease-out fadeInModal;display:flex;overflow:hidden;box-shadow:0 16px 40px #0006}.seating-plan-wish-modal-header{border-bottom:1px solid var(--border);background:var(--card-bg,#ffffff08);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.seating-plan-wish-header-icon{background:var(--primary-alpha,#6366f126);width:36px;height:36px;color:var(--primary,#6366f1);border-radius:8px;justify-content:center;align-items:center;display:flex}.seating-plan-wish-modal-body{flex:1;padding:1rem 1.25rem;overflow-y:auto}.seating-plan-wish-table-wrap{border:1px solid var(--border);border-radius:var(--radius,8px);overflow-x:auto}.seating-plan-wish-table{border-collapse:collapse;width:100%;font-size:.875rem}.seating-plan-wish-table th{background:var(--surface-header,#ffffff0f);text-align:left;border-bottom:1px solid var(--border);z-index:2;padding:.6rem .75rem;font-weight:600;position:sticky;top:0}.seating-plan-wish-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:.45rem .75rem}.seating-plan-wish-table tbody tr:hover{background:#ffffff05}.seating-plan-wish-student-chip{background:var(--card-bg,#ffffff0f);border:1px solid var(--border);cursor:grab;-webkit-user-select:none;user-select:none;border-radius:6px;align-items:center;gap:.4rem;padding:.35rem .65rem;font-weight:500;transition:background .15s,border-color .15s,transform .15s;display:inline-flex}.seating-plan-wish-student-chip:hover{background:var(--primary-alpha,#6366f11f);border-color:var(--primary,#6366f1)}.seating-plan-wish-student-chip:active{cursor:grabbing}.seating-plan-wish-slot{border-radius:6px;align-items:center;min-height:38px;transition:all .15s;display:flex}.seating-plan-wish-slot--empty{border:1px dashed var(--border);background:#ffffff05;padding:.2rem .4rem}.seating-plan-wish-slot--over{border:1px solid var(--primary,#6366f1)!important;background:var(--primary-alpha,#6366f126)!important}.seating-plan-wish-slot--filled{border:1px solid #0000}.seating-plan-wish-empty-target{justify-content:space-between;align-items:center;gap:.4rem;width:100%;display:flex}.seating-plan-wish-placeholder{color:var(--text-muted);-webkit-user-select:none;user-select:none;font-size:.775rem}.seating-plan-wish-select-quick{border:1px solid var(--border);background:var(--card-bg,#ffffff0d);width:auto;max-width:110px;color:var(--text);cursor:pointer;border-radius:4px;padding:.2rem .35rem;font-size:.75rem}.seating-plan-wish-filled-chip{background:var(--primary-alpha,#6366f126);border:1px solid var(--primary,#6366f1);color:#000;border-radius:6px;justify-content:space-between;align-items:center;gap:.4rem;width:100%;padding:.3rem .6rem;font-size:.8125rem;font-weight:600;display:inline-flex}.seating-plan-wish-chip-text{color:inherit}.seating-plan-wish-clear-btn{color:#000;cursor:pointer;background:#0000001f;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;padding:0;transition:background .15s,color .15s;display:inline-flex}.seating-plan-wish-clear-btn:hover{background:var(--danger,#ef4444);color:#fff}.seating-plan-wish-modal-footer{border-top:1px solid var(--border);background:var(--card-bg,#ffffff08);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.9rem 1.25rem;display:flex}.seating-plan-unassigned-section{border-radius:var(--radius);background:var(--card-bg,#ffffff0a);border:1px solid var(--border);padding:.85rem 1.15rem}.seating-plan-unassigned-header{align-items:center;gap:.5rem;margin-bottom:.75rem;font-size:.875rem;display:flex}.seating-plan-unassigned-list{flex-wrap:wrap;gap:.5rem;display:flex}.seating-plan-chip{background:var(--primary-subtle,#6366f11f);border:1px solid var(--primary-border,#6366f14d);color:var(--primary-text,currentColor);cursor:grab;-webkit-user-select:none;user-select:none;border-radius:9999px;padding:.4rem .75rem;font-size:.84rem;font-weight:500;transition:transform .15s,box-shadow .15s}.seating-plan-chip:hover{transform:translateY(-1px);box-shadow:0 3px 8px #00000026}.seating-plan-chip:active{cursor:grabbing}.seating-plan-room-container{background:var(--card-bg,#ffffff08);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;align-items:center;gap:1rem;padding:1.5rem;display:flex;overflow-x:auto}.seating-plan-room-header-hint,.seating-plan-room-footer-hint{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-size:.75rem;font-weight:600}.seating-plan-grid{gap:.75rem;width:100%;max-width:1100px;margin:0 auto;display:grid}.seating-plan-cell{border-radius:var(--radius);border:2px dashed var(--border);background:#00000014;flex-direction:column;justify-content:center;align-items:center;min-height:80px;padding:.5rem;transition:background .2s,border-color .2s,transform .15s;display:flex;position:relative}.seating-plan-cell--empty{border-color:var(--border)}.seating-plan-cell--occupied{border-style:solid;border-color:var(--primary-border,#6366f166);background:var(--card-bg,#ffffff0d)}.seating-plan-cell--drag-over{transform:scale(1.02);border-color:var(--primary,#6366f1)!important;background:var(--primary-subtle,#6366f133)!important}.seating-plan-cell-coords{opacity:.45;color:var(--text-muted);-webkit-user-select:none;user-select:none;font-size:.65rem;font-weight:600;position:absolute;top:4px;left:6px}.seating-plan-seat-card{text-align:center;border-radius:calc(var(--radius) - 2px);background:var(--primary-subtle,#6366f126);border:1px solid var(--primary-border,#6366f166);width:100%;height:100%;color:var(--text-heading,currentColor);cursor:grab;-webkit-user-select:none;user-select:none;flex-direction:column;justify-content:center;align-items:center;padding:.5rem;font-size:.92rem;font-weight:600;transition:transform .15s,box-shadow .15s;display:flex;position:relative;box-shadow:0 2px 5px #0000001a}.seating-plan-remove-btn{color:#ef4444;cursor:pointer;opacity:.5;background:#ef444426;border:none;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;padding:0;transition:opacity .15s,background-color .15s,transform .15s;display:flex;position:absolute;top:3px;right:3px}.seating-plan-seat-card:hover .seating-plan-remove-btn{opacity:1}.seating-plan-remove-btn:hover{color:#fff;background:#ef4444;transform:scale(1.15)}.seating-plan-seat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0003}.seating-plan-seat-card:active{cursor:grabbing}.seating-plan-seat-empty{width:100%;height:100%;color:var(--text-muted);opacity:.4;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-size:.8rem;display:flex}.seating-plan-teacher-desk{width:100%;max-width:650px;margin-top:.75rem}.seating-plan-teacher-desk-bar{text-align:center;border:2px solid var(--primary-border,#6366f180);border-radius:var(--radius);background:linear-gradient(90deg,#6366f133,#a855f740,#6366f133);width:100%;padding:.65rem 1.5rem;box-shadow:0 4px 15px #00000026}.seating-plan-teacher-desk-title{letter-spacing:.12em;color:var(--primary-text,currentColor);font-size:.875rem;font-weight:700}.school-roster-progress-backdrop{z-index:10005;-webkit-backdrop-filter:blur(8px);background:#0f172aa6;justify-content:center;align-items:center;padding:1.25rem;animation:.2s cubic-bezier(.16,1,.3,1) both phix-dialog-in;display:flex;position:fixed;inset:0}.school-roster-progress-dialog{background:var(--surface,#fff);border:1px solid var(--border,#ffffff1f);border-radius:var(--radius,12px);width:100%;max-width:28rem;color:var(--text-main,#0f172a);flex-direction:column;gap:1rem;padding:1.75rem 1.5rem;display:flex;box-shadow:0 20px 40px #00000059,0 0 0 1px #ffffff0d}.school-roster-progress-header{align-items:center;gap:.75rem;display:flex}.school-roster-progress-spinner{border:3px solid #6366f133;border-top-color:var(--primary,#6366f1);border-radius:50%;flex-shrink:0;width:1.5rem;height:1.5rem;animation:.8s linear infinite schoolRosterSpin}@keyframes schoolRosterSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.school-roster-progress-title{color:var(--text-main,#0f172a);margin:0;font-size:1.15rem;font-weight:600}.school-roster-progress-info{color:var(--text-muted,#64748b);justify-content:space-between;align-items:center;font-size:.875rem;display:flex}.school-roster-progress-count{font-variant-numeric:tabular-nums;color:var(--primary,#6366f1);font-weight:600}.school-roster-progress-bar-track{background:var(--bg-muted,#00000014);border-radius:9999px;width:100%;height:.75rem;position:relative;overflow:hidden;box-shadow:inset 0 1px 2px #0000001a}.school-roster-progress-bar-fill{background:linear-gradient(90deg,#6366f1,#8b5cf6);border-radius:9999px;height:100%;transition:width .15s ease-out;box-shadow:0 0 8px #6366f180}.school-roster-progress-item{white-space:nowrap;text-overflow:ellipsis;color:var(--text-main,#0f172a);align-items:center;gap:.5rem;font-size:.85rem;display:flex;overflow:hidden}.school-roster-progress-class-tag{color:var(--primary,#6366f1);background:#6366f126;border-radius:4px;align-items:center;padding:.15rem .45rem;font-size:.75rem;font-weight:600;display:inline-flex}
