.student-app{background:#f4f7f9;min-height:100dvh}.selection-header{justify-content:space-between;align-items:center;gap:16px;max-width:960px;min-height:64px;margin:auto;padding:12px 28px;display:flex}.selection-header>div{align-items:center;gap:12px;min-width:0;display:flex}.selection-header>.selection-header-actions{flex-shrink:0;gap:4px}.selection-header strong{color:#0f172a;font-size:18px;font-weight:700;line-height:1.4}.student-exit{color:var(--muted);background:0 0;border:0;flex-shrink:0;align-items:center;gap:8px;min-height:44px;padding:8px 0 8px 12px;font-weight:500;display:inline-flex}.student-exit:hover{color:#0f172a}.selection-content{max-width:960px;margin:auto;padding:0 28px 32px}.student-identity{padding:8px 0 16px}.identity-summary{flex-wrap:wrap;align-items:baseline;gap:8px 16px;display:flex}.identity-summary h1{color:#0f172a;font-size:22px}.identity-summary>span{color:#334155;font-size:15px;font-weight:500}.identity-disclosure summary{min-height:44px;color:var(--muted);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;font-size:13px;font-weight:500;list-style:none;display:flex}.identity-disclosure summary>span:last-child{align-items:center;gap:6px;display:flex}.identity-disclosure dl{border:1px solid var(--border);background:#fff;border-radius:8px;margin:4px 0 8px;padding:16px 20px;font-size:14px;box-shadow:0 2px 8px #0f172a08}.identity-disclosure dl>div{grid-template-columns:72px minmax(0,1fr);gap:12px;padding:4px 0;display:grid}.identity-disclosure dt{color:var(--muted)}.identity-disclosure dd{overflow-wrap:anywhere;color:#1e293b;margin:0;font-weight:500}.enrollment-window{color:#0369a1;background:#f0f9ff;border-left:4px solid #0284c7;border-radius:8px;margin-bottom:20px;padding:16px 20px;box-shadow:0 4px 16px #0284c714}.enrollment-window-top{justify-content:space-between;align-items:center;gap:16px;display:flex}.enrollment-window-top strong{align-items:center;gap:10px;font-size:18px;font-weight:700;display:inline-flex}.enrollment-window-top i{background:currentColor;border-radius:100%;width:8px;height:8px}.enrollment-window-top>span{font-size:14px;font-weight:500}.window-countdown{font-variant-numeric:tabular-nums;align-items:baseline;gap:6px;margin-left:8px;font-size:22px;font-weight:700;display:inline-flex}.window-countdown small{opacity:.8;font-size:12px;font-weight:500}.enrollment-window-bottom{justify-content:space-between;align-items:center;gap:12px;margin-top:8px;display:flex}.enrollment-window-bottom>span{flex-wrap:wrap;align-items:center;gap:6px;font-size:14px;display:flex}.enrollment-window-bottom small{color:#0284c7;opacity:.8;font-size:12px}.window-disclosure{flex-shrink:0;position:relative}.window-disclosure summary{cursor:pointer;align-items:center;gap:4px;min-height:44px;padding:6px 0 6px 12px;font-size:13px;font-weight:500;list-style:none;display:flex}.window-disclosure>div{z-index:5;border:1px solid var(--border);background:#fff;border-radius:8px;width:min(320px,100vw - 56px);padding:16px 20px;position:absolute;top:100%;right:0;box-shadow:0 10px 24px #0f172a1a}.window-disclosure p{color:#334155;margin:4px 0;font-size:14px}.window-disclosure small{color:var(--muted);margin-top:10px;line-height:1.6;display:block}.enrollment-window.closed,.enrollment-window.ended,.enrollment-window.unconfigured{color:#475569;background:#f1f5f9;border-color:#94a3b8;box-shadow:0 4px 16px #94a3b814}.enrollment-window.scheduled{color:#92400e;background:#fffbeb;border-color:#d97706;box-shadow:0 4px 16px #d9770614}.enrollment-window.scheduled .enrollment-window-bottom small{color:#92400e}.window-message{margin:6px 0 0;font-size:13px}.enrollment-result{background:#ecfdf5;border:1px solid #6ee7b7;border-radius:8px;margin:16px 0 0;box-shadow:0 4px 12px #065f460d}.enrollment-result>summary{cursor:pointer;align-items:center;gap:12px;min-height:44px;padding:12px 16px;list-style:none;display:flex}.result-check{color:#059669;background:#d1fae5;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.result-subject{flex-wrap:wrap;align-items:baseline;gap:4px 12px;display:flex}.result-subject small{color:#065f46;font-size:13px;font-weight:500}.result-subject strong{color:#064e3b;font-size:20px;font-weight:700}.result-more{color:#059669;flex-shrink:0;align-items:center;gap:6px;min-height:44px;margin-left:auto;font-size:13px;font-weight:600;display:inline-flex}.result-details{color:#065f46;border-top:1px solid #a7f3d0;margin:0 16px;padding:12px 0 16px;font-size:14px}.result-details p{margin:6px 0}.result-details button{margin-top:8px}.enrollment-empty{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;margin-top:16px;padding:12px 0;font-size:14px;display:flex}.enrollment-empty>span{color:#334155;font-weight:600}.sports-heading{justify-content:space-between;align-items:center;gap:12px;margin:28px 0 16px;display:flex}.sports-heading h2{color:#0f172a;font-size:20px}.sports-heading h2 small{color:var(--muted);margin-left:8px;font-size:14px;font-weight:500}.sports-heading p{color:var(--muted);margin:4px 0 0;font-size:13px}.sports-refresh{min-height:44px;color:var(--primary);background:0 0;border:0;flex-shrink:0;align-items:center;gap:6px;padding:8px 0 8px 12px;font-size:14px;font-weight:600;display:inline-flex}.sports-refresh:hover{color:#125241}.sports-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.sport-choice{border:1px solid var(--border);background:#fff;border-radius:12px;flex-direction:column;min-width:0;padding:20px;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;box-shadow:0 2px 8px #0f172a0a}.sport-choice:hover{transform:translateY(-2px);box-shadow:0 12px 24px #0f172a14}.sport-choice h3{overflow-wrap:anywhere;color:#0f172a;justify-content:space-between;align-items:center;gap:8px;font-size:19px;font-weight:700;line-height:1.4;display:flex}.sport-choice h3 svg{color:var(--primary);flex-shrink:0}.sport-remaining{color:var(--muted);justify-content:space-between;align-items:baseline;gap:6px;margin:12px 0 16px;font-size:13px;font-weight:500;display:flex}.sport-remaining>span:first-child{white-space:nowrap}.sport-remaining>span:last-child{font-size:12px}.sport-remaining strong{color:var(--primary);font-variant-numeric:tabular-nums;font-size:32px;font-weight:700;line-height:1.1}.seat-progress{height:10px;accent-color:var(--primary);background:#f1f5f9;border-radius:12px;margin:0 0 20px;display:block}.seat-progress::-webkit-progress-bar{background:#f1f5f9;border-radius:12px}.seat-progress::-webkit-progress-value{background:linear-gradient(90deg, #34d399, var(--primary));border-radius:12px;transition:width .3s}.seat-progress::-moz-progress-bar{background:var(--primary);border-radius:12px}.seat-progress.is-low{accent-color:#d97706}.seat-progress.is-low::-webkit-progress-value{background:linear-gradient(90deg,#fbbf24,#d97706)}.seat-progress.is-low::-moz-progress-bar{background:#d97706}.sport-action{color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:8px;width:100%;min-height:44px;margin-top:auto;padding:10px;font-size:14px;font-weight:650;line-height:1.4;transition:all .2s}.sport-action:hover:not(:disabled){background:var(--primary);border-color:var(--primary);color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #17675133}.sport-action:disabled{color:#94a3b8;opacity:1;box-shadow:none;background:#f8fafc;border-color:#e2e8f0;transform:none}.sport-choice.is-chosen{border-color:var(--primary);box-shadow:0 4px 16px #1767511f}.sport-choice.is-chosen:hover{box-shadow:0 12px 24px #17675133}.sport-choice.is-chosen .sport-action{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 4px 12px #17675133}.sport-choice.is-full .sport-remaining strong{color:#94a3b8}.selection-footnote,.selection-announcement{text-align:center;color:var(--muted);font-size:13px;line-height:1.6}.selection-footnote{margin:20px 0 8px}.selection-announcement{margin:8px 0 0}.student-app summary::-webkit-details-marker{display:none}.student-app summary:focus-visible{outline-offset:3px;border-radius:6px;outline:3px solid #86bbae}.student-app .disclosure-chevron{transition:transform .2s}.student-app details[open]>summary .disclosure-chevron{transform:rotate(180deg)}.student-app .confirm-identity{margin:20px 0 12px}.selection-policy-hint{color:#92400e;background:#fffbeb;border-radius:8px;align-items:flex-start;gap:8px;margin:12px 0 0;padding:12px;font-size:13px;line-height:1.6;display:flex}.selection-policy-hint svg{flex-shrink:0;margin-top:2px}.race-hint{margin:0 0 16px}.selection-final-review{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:12px;margin:16px 0;padding:20px;box-shadow:0 2px 8px #16a34a0d}.selection-review-subject{margin:0 0 16px}.selection-review-subject small{color:#166534;font-size:13px;font-weight:500;display:block}.selection-review-subject strong{color:#14532d;overflow-wrap:anywhere;margin-top:6px;font-size:26px;font-weight:700;line-height:1.3;display:block}.selection-final-review dl{margin:0;font-size:14px}.selection-final-review dl>div{grid-template-columns:72px minmax(0,1fr);gap:12px;padding:4px 0;display:grid}.selection-final-review dt{color:#166534;opacity:.9}.selection-final-review dd{overflow-wrap:anywhere;color:#14532d;margin:0;font-weight:600}.selection-lock-notice{color:#92400e;background:#fffbeb;border-left:4px solid #d97706;border-radius:0 8px 8px 0;gap:6px;margin:20px 0;padding:16px;font-size:14px;font-weight:500;line-height:1.6;display:grid}.student-app .confirm-identity,.race-acknowledgement,.selection-lock-confirmation{align-items:flex-start;font-size:14px;line-height:1.6}.student-app .confirm-identity input,.race-acknowledgement input,.selection-lock-confirmation input{flex-shrink:0;margin-top:4px}.race-acknowledgement{margin:12px 0 0}.selection-lock-confirmation{margin:12px 0 20px}.submission-status{color:#0369a1;background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;align-items:flex-start;gap:12px;margin:16px 0;padding:16px;display:flex}.submission-status>svg{flex-shrink:0;margin-top:2px}.submission-status strong{font-size:15px}.submission-status p{margin:6px 0 0;font-size:13px;line-height:1.7}.submission-status.retrying{color:#92400e;background:#fffbeb;border-color:#fde68a}.pending-submission{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;margin:12px 0 20px;padding:16px 20px}.pending-submission>strong{color:#92400e;font-size:15px}.pending-submission>p{color:#b45309;margin:8px 0 12px;font-size:13px;line-height:1.7}.pending-submission .button{min-height:44px}@media (width<=600px){.selection-header{min-height:60px;padding:8px 20px}.selection-header strong{font-size:16px}.selection-header .pill{padding:2px 6px;font-size:11px}.selection-content{padding:0 20px 24px}.student-identity{padding:8px 0 12px}.identity-summary{gap:6px 12px}.identity-summary h1{font-size:19px}.identity-summary>span{font-size:14px}.enrollment-window{padding:14px 16px}.enrollment-window-top strong{font-size:16px}.enrollment-window-top>span,.enrollment-window-bottom>span{font-size:13px}.enrollment-window-bottom small{font-size:11px}.window-countdown{font-size:19px}.enrollment-result>summary{gap:10px;padding:12px 14px}.result-subject{gap:4px 8px}.result-subject strong{font-size:18px}.result-more{gap:4px;font-size:12px}.sports-heading{margin:20px 0 12px}.sports-heading h2{font-size:19px}.sports-heading p{font-size:12px}.sports-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.sport-choice{padding:16px}.sport-choice h3{font-size:18px}.sport-remaining{margin:8px 0 12px;font-size:12px}.sport-remaining strong{font-size:28px}.sport-remaining>span:last-child{font-size:11px}.sport-action{font-size:14px}.selection-footnote,.selection-announcement{font-size:12px}}@media (width<=350px){.selection-content{padding-inline:16px}.selection-header{gap:8px;padding-inline:16px}.result-subject{flex-direction:column;gap:2px}.sport-choice{padding:12px}.sports-grid{gap:12px}.enrollment-window-bottom small{display:none}}.result-filters{border-bottom:1px solid var(--border);background:#fff;padding:24px}.result-filter-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.result-view-switch{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;gap:4px;padding:4px;display:flex}.result-view-switch button{min-height:44px;color:var(--muted);background:0 0;border:0;border-radius:6px;padding:8px 20px;font-size:14px;font-weight:500;transition:all .2s}.result-view-switch button.active{color:var(--primary);background:#fff;font-weight:650;box-shadow:0 1px 6px #0f172a1a}.result-activity{align-items:center;gap:12px;min-width:0;font-size:14px;font-weight:500;display:flex}.result-activity select{max-width:400px;font-weight:400}.result-filter-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;display:grid}.result-filter-grid label{color:#334155;flex-direction:column;gap:8px;min-width:0;font-size:13px;font-weight:500;display:flex}.result-filter-grid select,.result-filter-grid input{color:#0f172a;width:100%;font-size:14px}.result-filter-grid :disabled{color:#94a3b8;cursor:not-allowed;background:#f8fafc;border-color:#e2e8f0}.result-search-row{align-items:center;gap:16px;margin-top:20px;display:flex}.result-search-row>button{flex-shrink:0;font-size:14px}.result-search{min-width:0;color:var(--muted);background:#fff;border:1px solid #cbd5e1;border-radius:8px;flex:1;align-items:center;gap:8px;padding-left:14px;transition:border-color .2s,box-shadow .2s;display:flex}.result-search:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px #86bbae}.result-search svg{flex-shrink:0}.result-search input{width:100%;min-height:42px;box-shadow:none;border:0;font-size:14px}.result-search input:focus-visible{outline:none}.result-more-filters{margin-top:16px}.result-more-filters summary{cursor:pointer;min-height:44px;color:var(--primary);align-items:center;gap:10px;font-size:14px;font-weight:500;transition:color .2s;display:flex}.result-more-filters summary:hover{color:#125241}.result-more-filters[open] summary{margin-bottom:12px}.result-filter-help{color:var(--muted);margin:16px 0 0;font-size:13px;line-height:1.6}.result-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-bottom:24px;padding:0 24px;display:grid}.result-metric{border:1px solid var(--border);background:#fff;border-radius:12px;padding:20px 24px;transition:transform .2s,border-color .2s;box-shadow:0 2px 8px #0f172a08}.result-metric span{color:var(--muted);font-size:13px;font-weight:500}.result-metric strong{font-variant-numeric:tabular-nums;color:#0f172a;margin-top:6px;font-size:32px;line-height:1.3;display:block}.result-metric:hover{transform:translateY(-2px)}.result-metric.selected{border-color:var(--primary);background:#f0fdf4;box-shadow:0 4px 12px #16a34a14}.result-metric.selected strong{color:var(--primary)}.result-metric.unselected strong{color:#b45309}.result-table-caption{justify-content:space-between;align-items:center;gap:20px;padding:20px 24px 12px;display:flex}.result-table-caption strong{color:#0f172a;font-size:16px}.result-table-caption p{color:var(--muted);margin:6px 0 0;font-size:13px}.result-table-caption label{flex-shrink:0;align-items:center;gap:10px;font-size:13px;font-weight:500;display:flex}.result-export-note{color:var(--muted);margin:0;padding:0 24px 16px;font-size:13px;line-height:1.5}.result-student-cell,.result-organization-cell{flex-direction:column;gap:4px;display:flex}.result-student-cell small{font-variant-numeric:tabular-nums;color:var(--muted);font-size:12px}.result-organization-cell{white-space:normal;min-width:120px;max-width:220px;line-height:1.5}.result-organization-cell small{color:var(--muted);font-size:12px}.result-sport-name{color:#064e3b;font-weight:650}.result-table-panel .row-actions{gap:16px;display:flex}.result-detail-heading{align-items:center;gap:14px;display:flex}.result-detail-heading>strong{color:#0f172a;font-size:24px}.result-detail-list{margin:20px 0}.result-detail-list>div{border-bottom:1px solid #e2e8f0;grid-template-columns:84px minmax(0,1fr);gap:16px;padding:10px 0;font-size:14px;display:grid}.result-detail-list dt{color:var(--muted);font-weight:500}.result-detail-list dd{overflow-wrap:anywhere;color:#1e293b;margin:0;font-weight:500}@media (width<=1200px){.result-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=600px){.result-filters{padding:16px}.result-filter-header{align-items:stretch;margin-bottom:16px}.result-view-switch{width:100%}.result-view-switch button{flex:1}.result-activity{flex-direction:column;align-items:stretch;gap:10px;width:100%}.result-activity select{max-width:100%}.result-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}.result-filter-grid input,.result-filter-grid select{padding-inline:10px;font-size:13px}.result-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0 16px}.result-metric{padding:16px}.result-metric strong{font-size:26px}.result-table-caption{flex-wrap:wrap;gap:10px;padding:16px 16px 10px}.result-export-note{padding:0 16px 16px}.result-search input{font-size:14px}.selection-results-page .heading-buttons .button{flex:1;padding:10px 12px;font-size:13px}}.hub-tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:12px;margin-bottom:28px;display:flex}.hub-tabs button{min-height:44px;color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;padding:12px 20px;font-size:15px}.hub-tabs button:hover{color:#334155}.hub-tabs button.active{border-bottom-color:var(--primary);color:var(--primary);font-weight:650}.workflow-tip{color:#0369a1;background:#f0f9ff;border:1px solid #e0f2fe;border-radius:8px;margin:0 0 24px;padding:16px 20px;font-size:14px}.workflow-tip a{margin:0 4px;font-weight:600}.workflow-tip .text-button{min-height:44px;padding:0 6px}.schedule-term{flex-wrap:wrap;align-items:center;gap:14px 20px;margin-bottom:24px;display:flex}.schedule-term label{align-items:center;gap:14px;font-size:16px;font-weight:650;display:flex}.schedule-term select{max-width:380px;font-size:15px;font-weight:400}.schedule-term>.text-button{align-items:center;gap:6px;display:flex}.workflow-steps{border:1px solid var(--border);color:#475569;background:#fff;border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px 20px;padding:16px 24px;font-size:14px;font-weight:500;display:flex;box-shadow:0 2px 8px #0f172a08}.workflow-steps svg{color:#94a3b8}.schedule-summary{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px 32px;margin:24px 0 20px;font-size:14px;font-weight:500;display:flex}.schedule-summary strong{color:#0f172a;font-size:22px;font-weight:700}.week-grid{grid-template-columns:56px repeat(5,minmax(0,1fr));gap:12px;display:grid}.week-day,.week-corner{text-align:center;color:#334155;padding:10px;font-size:14px;font-weight:650}.week-period{color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex}.week-period strong{font-size:16px;font-weight:650}.week-period small{font-size:12px}.week-cell{min-width:0}.week-slot{color:#64748b;text-align:left;cursor:pointer;background:#f8fafc;border:2px dashed #cbd5e1;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:8px;width:100%;height:100%;min-height:140px;padding:16px 12px;transition:all .2s;display:flex}.week-slot:hover{border-color:var(--primary);background:#f0fdf4;transform:translateY(-1px);box-shadow:0 4px 12px #16a34a14}.week-slot.has-classes{color:#1e293b;background:#fff;border:1px solid #cbd5e1;justify-content:flex-start;align-items:flex-start;box-shadow:0 2px 4px #0f172a05}.week-slot.has-classes:hover{border-color:#94a3b8;box-shadow:0 8px 16px #0f172a0f}.week-slot strong{font-size:14px;font-weight:650}.slot-state{color:#92400e;background:#fef3c7;border-radius:4px;padding:2px 8px;font-size:12px;font-weight:600}.slot-state.ready{color:#065f46;background:#d1fae5}.slot-class-names{color:var(--muted);overflow-wrap:anywhere;font-size:12px;line-height:1.5}.slot-subject-count{color:var(--muted);margin-top:auto;font-size:12px;font-weight:500}.week-day-filter{display:none}.extra-slots{flex-wrap:wrap;align-items:center;gap:14px;margin-top:24px;display:flex}.back-to-week{color:var(--primary);background:0 0;border:0;align-items:center;gap:8px;min-height:44px;padding:0 0 12px;font-size:14px;font-weight:600;display:flex}.back-to-week:hover{color:#125241}.slot-page-title{margin:6px 0 24px;font-size:22px}.slot-workflow-tabs{border-bottom:1px solid var(--border);gap:12px;margin-bottom:28px;display:flex}.slot-workflow-tabs button{min-height:48px;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:10px;padding:10px 20px;font-size:15px;font-weight:500;display:flex}.slot-workflow-tabs button>span{border:1px solid #cbd5e1;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;font-weight:600;display:inline-flex}.slot-workflow-tabs button:hover{color:#334155}.slot-workflow-tabs button.active{border-bottom-color:var(--primary);color:var(--primary);font-weight:650}.slot-workflow-tabs button.active>span{background:var(--primary);border-color:var(--primary);color:#fff}.binding-filters{grid-template-columns:1fr 1fr 1fr;gap:16px;display:grid}.binding-filters>*{width:100%;font-size:14px}.binding-summary{color:#334155;justify-content:space-between;align-items:center;gap:16px;margin:16px 0;font-size:14px;font-weight:500;display:flex}.binding-list{border:1px solid var(--border);background:#fff;border-radius:8px;max-height:400px;overflow:auto}.binding-class{cursor:pointer;border-bottom:1px solid #e2e8f0;align-items:center;gap:14px;padding:14px 20px;transition:background .2s;display:flex}.binding-class:hover{background:#f8fafc}.binding-class:last-child{border:0}.binding-class>span{min-width:0;font-weight:500}.binding-class>span small{color:var(--muted);margin-top:4px;font-size:12px;font-weight:400;display:block}.binding-class>b{white-space:nowrap;font-variant-numeric:tabular-nums;margin-left:auto;font-size:15px}.binding-class>b small{color:var(--muted);font-size:13px;font-weight:400}.binding-class.unavailable{color:#94a3b8;cursor:not-allowed;background:#f8fafc}.capacity-check{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;flex-wrap:wrap;align-items:center;gap:14px 32px;margin-bottom:24px;padding:20px 24px;font-size:14px;font-weight:500;display:flex;box-shadow:0 2px 8px #d977060d}.capacity-check.balanced{color:#166534;background:#f0fdf4;border-color:#bbf7d0;box-shadow:0 2px 8px #16a34a0d}.capacity-check strong{margin:0 4px;font-size:24px;font-weight:700}.capacity-check>span:last-child{align-items:center;gap:6px;display:flex}.subject-setup h3{color:#0f172a;font-size:20px}.subject-setup h3 small{color:var(--muted);margin-left:14px;font-size:13px;font-weight:400}.subject-capacity-list{margin-top:20px}.subject-capacity-list>div{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:12px 0;display:flex}.subject-capacity-list label{align-items:center;gap:12px;font-size:14px;font-weight:500;display:flex}.subject-capacity-list input[type=number]{text-align:center;width:110px;font-weight:600}.advanced-settings{border-top:1px solid var(--border);padding:12px 24px;font-size:14px}.advanced-settings summary{cursor:pointer;min-height:44px;color:var(--muted);align-items:center;font-weight:500;display:flex}.advanced-settings select{max-width:100%;margin:0 16px 16px 0}.advanced-settings .button{margin:0 16px 16px 0}.advanced-settings>p{color:#334155;margin-bottom:16px;line-height:1.6}.settings-advanced{margin-bottom:20px;padding:0}.settings-advanced[open]{padding-bottom:16px}.settings-advanced>.editor-grid{margin-top:12px}@media (width<=1050px){.week-grid{grid-template-columns:56px minmax(0,1fr)}.week-day:not(.mobile-day),.week-cell:not(.mobile-day){display:none}.week-day-filter{gap:10px;margin-bottom:16px;display:flex}.week-day-filter button{border:1px solid var(--border);color:#475569;background:#fff;border-radius:8px;flex:1;min-height:44px;padding:10px;font-weight:500}.week-day-filter button.active{border-color:var(--primary);color:var(--primary);background:#f0fdf4;font-weight:650;box-shadow:0 2px 8px #16a34a14}.week-slot{min-height:120px}.slot-workflow-tabs button{padding-inline:14px}.workflow-steps{gap:8px 14px;font-size:13px}}@media (width<=600px){.hub-tabs{gap:0;margin-bottom:20px}.hub-tabs button{flex:1;padding:10px 12px;font-size:13px}.schedule-term label{width:100%}.schedule-term select{flex:1;min-width:0}.workflow-steps{grid-template-columns:1fr 1fr;gap:12px;display:grid}.workflow-steps svg{display:none}.schedule-summary{grid-template-columns:1fr 1fr;gap:10px;font-size:13px;display:grid}.slot-workflow-tabs{justify-content:space-between;gap:0}.slot-workflow-tabs button{flex:1;justify-content:center;gap:6px;padding:10px 8px;font-size:13px}.slot-workflow-tabs button>span{display:none}.binding-filters{grid-template-columns:1fr 1fr}.binding-filters input{grid-column:1/-1}.binding-class{gap:10px;padding:12px 16px}.binding-summary{gap:12px;font-size:13px}.capacity-check{gap:10px 20px;padding:16px}.capacity-check>span:last-child{width:100%}.subject-setup h3 small{margin-top:4px;margin-left:0;display:block}.subject-capacity-list input[type=number]{width:90px}}.timetable-settings{border:1px solid var(--border);background:#fff;border-radius:8px;margin:16px 0 24px;padding:14px 18px;box-shadow:0 1px 4px #0f172a05}.timetable-settings>summary{cursor:pointer;color:var(--muted);align-items:center;min-height:44px;font-size:14px;font-weight:500;display:flex}.timetable-settings p{color:#334155;margin:10px 0 16px;font-size:14px;line-height:1.6}.slot-breadcrumb{color:#475569;margin-bottom:16px;font-size:14px;font-weight:500}.slot-breadcrumb button{color:inherit;cursor:pointer;background:0 0;border:0;align-items:center;min-height:44px;padding:0;display:inline-flex}.slot-breadcrumb button:hover{color:var(--primary);text-decoration:underline}.adjustment-safety,.published-adjustment-entry{color:#064e3b;background:#ecfdf5;border:1px solid #6ee7b7;border-radius:12px;align-items:flex-start;gap:16px;margin-bottom:24px;padding:20px 24px;display:flex;box-shadow:0 2px 8px #065f460d}.adjustment-safety>svg{color:#059669;flex:none;margin-top:2px}.adjustment-safety p,.published-adjustment-entry p{margin:6px 0 0;font-size:14px;line-height:1.6}.published-adjustment-entry{justify-content:space-between;align-items:center}.published-adjustment-entry .button{flex-shrink:0}.adjustment-steps{border-bottom:1px solid #e2e8f0;gap:24px;margin-bottom:24px;padding-bottom:20px;display:flex}.adjustment-steps span{color:#64748b;align-items:center;gap:10px;font-size:14px;font-weight:500;display:flex}.adjustment-steps b{background:#f1f5f9;border-radius:50%;place-items:center;width:28px;height:28px;font-size:13px;font-weight:600;display:grid}.adjustment-steps .current{color:#0f172a;font-weight:650}.adjustment-steps .current b{background:var(--primary);color:#fff}.adjustment-summary{grid-template-columns:repeat(3,1fr);gap:16px;margin:0 0 20px;display:grid}.adjustment-summary div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:16px 20px}.adjustment-summary span{color:#475569;font-size:13px;font-weight:500;display:block}.adjustment-summary strong{color:#0f172a;margin-top:8px;font-size:24px;display:block}.adjustment-ok{color:#059669;align-items:center;gap:10px;font-size:15px;font-weight:600;display:flex}.adjustment-blockers{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:20px 24px;font-size:14px;line-height:1.7}.adjustment-blockers h3{color:#78350f;margin:0;font-size:16px}.adjustment-blockers ul{margin-top:12px;padding-left:24px}.quota-table caption{text-align:left;color:#475569;padding:12px 0;font-size:14px;font-weight:500}.quota-table td small{color:#64748b;margin-top:4px;font-size:12px;display:block}@media (width<=600px){.adjustment-steps{justify-content:space-between;gap:12px}.adjustment-steps span{gap:6px;font-size:12px}.adjustment-steps b{width:24px;height:24px}.adjustment-summary{gap:10px}.adjustment-summary div{padding:12px}.adjustment-summary strong{font-size:20px}.published-adjustment-entry{flex-direction:column;align-items:stretch}}.student-change-slot{border:1px solid var(--border);background:#fff;border-radius:12px;min-width:0;margin:24px 0;padding:20px;box-shadow:0 2px 12px #0f172a0a}.student-change-slot h3{color:#0f172a;margin:0 0 10px;font-size:18px}.student-change-slot-meta{color:var(--muted);margin:0 0 16px;font-size:14px}.student-change-review{border:1px solid var(--border);background:#f8fafc;border-radius:8px;grid-template-columns:1fr 1fr;gap:16px 24px;padding:20px;display:grid}.student-change-review div{min-width:0}.student-change-review dt{color:var(--muted);margin-bottom:6px;font-size:13px}.student-change-review dd{color:#1e293b;overflow-wrap:anywhere;margin:0;font-size:15px;font-weight:500}.student-change-matrix summary{cursor:pointer;color:#334155;align-items:center;min-height:44px;padding:10px 0 16px;font-size:14px;font-weight:500;display:flex}.student-change-matrix .table-scroll{border:1px solid var(--border);border-radius:8px;max-width:100%}.capacity-gap{color:#d97706;font-size:15px;font-weight:650}.modal-actions{flex-wrap:wrap}.student-change-matrix .sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.table-scroll-hint{color:var(--muted);margin:0 0 12px;font-size:13px;display:none}@media (width<=600px){.table-scroll-hint{display:block}.student-change-slot{padding:16px}.student-change-review{grid-template-columns:1fr;gap:14px;padding:16px}.student-change-slot .subject-capacity-list>div>span{flex-direction:column;gap:4px;display:flex}}:root{color:#1e293b;font-synthesis:none;--primary:#176751;--border:#e2e8f0;--muted:#64748b;--danger:#dc2626;background:#f4f7f9;font-family:system-ui,-apple-system,Segoe UI,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.6}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;min-width:320px;margin:0}a{color:var(--primary);text-decoration:none;transition:color .2s}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;transition:all .2s}button:disabled{cursor:not-allowed;opacity:.5}h1,h2,h3,p{margin:0}h1{color:#0f172a;font-size:26px;font-weight:700;line-height:1.3}h2{color:#1e293b;font-size:20px;font-weight:650;line-height:1.4}h3{color:#334155;font-size:18px;font-weight:600}p{margin:10px 0}small{font-size:12px}input,select,textarea{color:inherit;background:#fff;border:1px solid #cbd5e1;border-radius:8px;min-width:0;max-width:100%;min-height:44px;padding:10px 14px;transition:border-color .2s,box-shadow .2s}textarea{resize:vertical}input[type=checkbox]{width:20px;height:20px;min-height:20px;accent-color:var(--primary);flex-shrink:0}select{cursor:pointer}input:hover,select:hover,textarea:hover{border-color:#94a3b8}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;border-color:var(--primary);outline:3px solid #86bbae}progress{width:100%;height:8px;accent-color:var(--primary);background:#e2e8f0;border:0;border-radius:12px;overflow:hidden}progress::-webkit-progress-bar{background:#e2e8f0}progress::-webkit-progress-value{background:var(--primary);border-radius:12px}progress::-moz-progress-bar{background:var(--primary);border-radius:12px}.muted,.page-note{color:var(--muted)}.text-danger,.danger-text{color:var(--danger)}.text-green{color:var(--primary)}.numeric{font-variant-numeric:tabular-nums}.button{white-space:normal;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:10px 20px;font-size:14px;font-weight:600;line-height:1.5;display:inline-flex;box-shadow:0 1px 2px #0000000d}.button.primary{background:var(--primary);color:#fff}.button.primary:hover:not(:disabled){background:#125241;transform:translateY(-1px);box-shadow:0 4px 12px #17675133}.button.secondary{color:#334155;background:#fff;border-color:#cbd5e1}.button.secondary:hover:not(:disabled){color:#0f172a;background:#f8fafc;border-color:#94a3b8}.button.danger{background:var(--danger);color:#fff}.button.danger:hover:not(:disabled){background:#b91c1c;box-shadow:0 4px 12px #dc262633}.button.small{min-height:44px;padding:8px 16px;font-size:13px}.button.full{width:100%}.text-button{color:var(--primary);min-height:44px;box-shadow:none;background:0 0;border:0;padding:8px 6px;font-weight:600}.text-button:hover:not(:disabled){color:#125241;background:#edf5f2;border-radius:6px}.text-button.danger-text{color:var(--danger)}.text-button.danger-text:hover:not(:disabled){background:#fef2f2}.icon-button{color:#475569;width:44px;min-width:44px;height:44px;box-shadow:none;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.icon-button:hover{color:#0f172a;background:#f1f5f9}.icon-button.danger-text{color:var(--danger)}.icon-button.danger-text:hover{background:#fef2f2}.pill{color:#475569;white-space:nowrap;background:#f1f5f9;border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.pill.success{color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0}.pill.outline{color:#92400e;background:#fffbeb;border:1px solid #fde68a}.panel{border:1px solid var(--border);background:#fff;border-radius:12px;min-width:0;margin-bottom:24px;box-shadow:0 2px 8px #0f172a0a}.padded{padding:28px}.section-title,.panel-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.panel-heading{border-bottom:1px solid var(--border);padding:20px 24px}.panel-heading p{color:var(--muted);margin:6px 0 0;font-size:13px}.panel-actions{border-top:1px solid var(--border);background:#f8fafc;border-radius:0 0 12px 12px;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:14px;padding:20px 24px;display:flex}.field{color:#334155;flex-direction:column;gap:8px;min-width:0;margin-bottom:20px;font-weight:600;display:flex}.field input,.field select,.field textarea{width:100%;font-weight:400}.field small{color:var(--muted);font-weight:400;line-height:1.5}.editor-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;display:grid}.span-2,.multi-field{grid-column:1/-1}.checkbox-field{flex-direction:row;align-items:center;gap:12px}.checkbox-field input{width:20px}.checkbox-field small{margin-top:2px;display:block}.multi-field{border:1px solid var(--border);background:#f8fafc;border-radius:8px;margin:0 0 20px;padding:16px}.checkbox-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.checkbox-options label,.check-label{cursor:pointer;align-items:center;gap:10px;min-height:44px;font-weight:400;display:flex}.form-error{color:#b91c1c;word-break:break-word;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;align-items:flex-start;gap:10px;margin:16px 0;padding:14px 16px;font-weight:500;display:flex}.form-error svg{flex-shrink:0;margin-top:2px}.notice{color:#334155;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;padding:14px 18px;font-size:13px;line-height:1.6}.notice-list{color:var(--muted);padding:12px 35px;font-size:13px;line-height:1.7}.validation-list{color:var(--danger)}.page-note{text-align:center;margin:28px 0;font-size:13px}.login-page{background:linear-gradient(135deg,#f4f7f9 0%,#e2e8f0 100%);place-items:center;min-height:100dvh;padding:24px;display:grid}.login-card{background:#fff;border:1px solid #fff6;border-radius:16px;width:100%;max-width:440px;padding:36px;box-shadow:0 20px 40px #0f172a14,0 1px 3px #0f172a0d}.login-heading{justify-content:space-between;align-items:center;gap:14px;display:flex}.login-heading h1{letter-spacing:-.5px;font-size:24px}.login-card>p{color:var(--muted);margin:16px 0 28px;font-size:15px}.login-card input{background:#f8fafc;min-height:52px;font-size:16px}.login-card input:focus{background:#fff}.login-card .button.full{min-height:52px;margin-top:10px;font-size:16px}.login-footer{border-top:1px solid var(--border);color:var(--muted);justify-content:space-between;gap:12px;margin-top:32px;padding-top:20px;font-size:13px;display:flex}.demo-login{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:8px;margin-top:24px;padding:14px 16px;font-size:13px}.demo-login p{color:#475569;margin:0}.demo-login .text-button{padding:4px 8px;font-size:13px}.simple-header{justify-content:space-between;align-items:center;gap:16px;max-width:1040px;margin:auto;padding:24px 28px;display:flex}.simple-header strong{color:#0f172a;font-size:18px;font-weight:700}.simple-header>div{align-items:center;gap:14px;display:flex}.selection-main{max-width:1040px;margin:auto;padding:0 28px 48px}.identity-panel{background:linear-gradient(90deg,#fff,#f8fafc);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;padding:24px;display:flex}.identity-panel h1{font-size:22px}.identity-number{color:var(--muted);background:#f1f5f9;border-radius:6px;margin-left:14px;padding:4px 10px;font-size:14px;font-weight:500}.identity-panel p{color:#475569;margin-top:8px;margin-bottom:0;font-size:14px}.identity-panel>.muted{margin-top:4px;font-size:13px}.window-panel{padding:24px}.window-details{flex-wrap:wrap;gap:28px;margin-top:18px;display:flex}.window-details>span{color:var(--muted);font-size:13px}.window-details strong{color:#1e293b;margin-top:6px;font-size:15px;font-weight:650;display:block}.selection-result{background:#ecfdf5;border:1px solid #6ee7b7;border-radius:12px;margin:24px 0;padding:24px;box-shadow:0 4px 12px #065f460d}.result-title{color:#065f46;align-items:center;gap:14px;display:flex}.result-title .pill{color:#065f46;background:#d1fae5;border:0;margin-left:auto}.result-title span{font-size:13px;font-weight:500}.result-title h2{color:#064e3b;font-size:22px}.result-meta{color:#065f46;flex-wrap:wrap;gap:10px 28px;margin:14px 0 0;font-size:14px;display:flex}.selection-result>.text-button{margin-top:12px;padding-left:0;font-size:14px}.subject-heading{margin:32px 0 20px}.subject-heading p{margin:8px 0 0;font-size:14px}.subject-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.subject-card{border:1px solid var(--border);background:#fff;border-radius:12px;min-width:0;padding:24px;transition:transform .2s,box-shadow .2s}.subject-card:hover{transform:translateY(-2px);box-shadow:0 12px 24px #0f172a0f}.subject-card.chosen{border:2px solid var(--primary);padding:23px;box-shadow:0 4px 16px #1767511f}.subject-card .section-title{color:#0f172a}.seat-count{color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:6px;margin:20px 0 10px;font-size:13px;display:flex}.seat-count strong{color:var(--primary);font-variant-numeric:tabular-nums;margin:0 4px;font-size:32px;font-weight:700;line-height:1}.subject-card progress{margin:12px 0 24px}.confirm-identity{margin:24px 0}.admin-sidebar{border-right:1px solid var(--border);z-index:40;background:#fff;width:240px;padding:24px 16px;position:fixed;inset:0 auto 0 0;overflow:auto;box-shadow:1px 0 8px #00000005}.sidebar-brand{color:#0f172a;justify-content:space-between;align-items:center;padding:8px 12px 32px;font-size:20px;font-weight:700;display:flex}.admin-sidebar nav{flex-direction:column;gap:6px;display:flex}.admin-sidebar nav a{color:#475569;border-radius:8px;min-height:44px;padding:12px 16px;font-weight:500;transition:all .2s}.admin-sidebar nav a:hover{color:#0f172a;background:#f8fafc}.admin-sidebar nav a.active{color:var(--primary);background:#edf5f2;font-weight:650}.admin-workspace{background:#f4f7f9;min-width:0;min-height:100dvh;margin-left:240px}.admin-header{border-bottom:1px solid var(--border);z-index:30;background:#fff;justify-content:space-between;align-items:center;gap:16px;height:72px;padding:0 32px;display:flex;position:sticky;top:0}.header-actions{align-items:center;gap:16px;display:flex}.admin-main{max-width:1700px;margin:auto;padding:32px}.admin-page-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;margin-bottom:28px;display:flex}.admin-page-heading h1{font-size:28px}.admin-page-heading p{color:var(--muted);max-width:760px;margin-top:6px;margin-bottom:0;font-size:14px}.heading-buttons{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.heading-buttons select{max-width:310px}.tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:12px;margin-bottom:28px;display:flex}.tabs button{min-height:44px;color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;padding:12px 16px;font-size:15px}.tabs button:hover{color:#334155;border-bottom-color:#cbd5e1}.tabs button.active{border-bottom-color:var(--primary);color:var(--primary);font-weight:650}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:28px;display:grid}.metric-card{border:1px solid var(--border);background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0f172a08}.metric-card>span{color:var(--muted);font-size:14px;font-weight:500}.metric-card strong{font-variant-numeric:tabular-nums;color:#0f172a;margin-top:10px;font-size:36px;line-height:1.2;display:block}.overview-grid{grid-template-columns:1fr 1fr;gap:24px;display:grid}.data-panel{overflow:hidden}.table-scroll,.table-wrapper{overscroll-behavior-inline:contain;max-width:100%;overflow-x:auto}.data-table{border-collapse:collapse;text-align:left;white-space:nowrap;width:100%;font-size:14px}.data-table th{color:#334155;border-bottom:2px solid var(--border);background:#f8fafc;padding:14px 20px;font-size:13px;font-weight:650}.data-table td{border-bottom:1px solid #e2e8f0;padding:14px 20px}.data-table th small{color:var(--muted);margin-top:2px;font-size:11px;font-weight:400;display:block}.data-table tbody tr:nth-child(2n){background:#f8fafc}.data-table tbody tr:hover{background:#edf5f2}.data-table tfoot{border-top:2px solid var(--border);background:#f8fafc;font-weight:650}.data-table .checkbox-cell{width:48px;padding-right:0}.table-actions{gap:4px;display:flex}.table-toolbar{background:#fff;flex-wrap:wrap;align-items:center;gap:16px;padding:20px 24px;display:flex}.table-toolbar>input{max-width:280px}.search-input{background:#fff;border:1px solid #cbd5e1;border-radius:8px;flex:1;align-items:center;gap:6px;min-width:180px;max-width:320px;padding-left:14px;transition:border-color .2s,box-shadow .2s;display:flex}.search-input:focus-within{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #86bbae}.search-input>input{width:100%;min-height:42px;box-shadow:none;border:0}.search-input>input:focus-visible{outline:none}.filter-selects{flex-wrap:wrap;flex:1;gap:12px;display:flex}.filter-selects select{flex:1;min-width:120px;max-width:240px}.filter-selects .check-label{white-space:nowrap;padding:0 8px;font-size:14px}.batch-bar{color:#125241;background:#edf5f2;border-bottom:1px solid #c8e1d5;flex-wrap:wrap;align-items:center;gap:20px;padding:10px 24px;font-size:14px;display:flex}.pagination{border-top:1px solid var(--border);color:var(--muted);background:#fff;justify-content:space-between;align-items:center;gap:12px;padding:16px 24px;font-size:13px;display:flex}.pagination>div{align-items:center;gap:8px;display:flex}.number-input{text-align:center;width:80px;min-height:44px;padding:8px 12px}.scope-toolbar{flex-wrap:wrap;gap:24px;margin-bottom:24px;display:flex}.scope-toolbar label{color:#1e293b;align-items:center;gap:12px;font-weight:600;display:flex}.scope-toolbar select{max-width:380px}.inline-facts{color:#475569;flex-wrap:wrap;gap:12px 28px;margin:18px 0;font-size:14px;display:flex}.quota-table td,.quota-table th{text-align:center}.quota-table th:first-child{text-align:left}.assignment-toolbar{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:#f8fafc;flex-wrap:wrap;align-items:center;gap:16px;padding:20px 24px;display:flex}.assignment-toolbar>label{align-items:center;gap:14px;font-weight:500;display:flex}.assignment-toolbar>p{color:var(--muted);flex-basis:100%;margin:0;font-size:13px}.manual-assignment{flex-wrap:wrap;flex-basis:100%;align-items:center;gap:14px;display:flex}.manual-assignment select{flex:1;max-width:500px}.setting-toggle{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:24px;padding:20px 0;display:flex}.setting-toggle:first-of-type{border-top:0;padding-top:8px}.setting-toggle small{color:var(--muted);margin-top:6px;font-size:13px;line-height:1.5;display:block}.setting-toggle input{width:24px;height:24px}.password-form{margin-top:28px}.password-form h2{margin-bottom:24px}.menu-trigger,.sidebar-close{display:none}.sidebar-scrim{z-index:35;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a99;border:0;position:fixed;inset:0}.state-panel{text-align:center;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:56px 24px;display:flex}.state-panel h3{color:#1e293b;font-size:18px;font-weight:600}.state-panel p{margin:0;font-size:14px}.state-panel .button{margin-top:16px}.state-panel.error,.state-panel.error h3{color:var(--danger)}.modal{width:calc(100% - 32px);max-width:520px;max-height:calc(100dvh - 48px);color:inherit;border:none;border-radius:16px;padding:0;box-shadow:0 24px 48px #0f172a33}.modal.wide{max-width:880px}.modal::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a99}.modal-inner{padding:32px}.modal-head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.modal-head h2{font-size:22px}.modal-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:14px;margin-top:32px;padding-top:24px;display:flex}.modal-description{color:#334155;font-size:15px;line-height:1.6}.modal .data-table th,.modal .data-table td{padding:12px 16px}.toast-stack{z-index:100;flex-direction:column;gap:12px;max-width:calc(100% - 48px);display:flex;position:fixed;top:20px;right:24px}.toast{border-left:4px solid var(--primary);color:#0f172a;background:#fff;border-radius:8px;align-items:center;gap:12px;max-width:520px;padding:14px 16px 14px 20px;font-weight:500;display:flex;box-shadow:0 8px 24px #0f172a1f}.toast.error{border-left-color:var(--danger)}.toast>svg{color:var(--primary);flex-shrink:0}.toast.error>svg{color:var(--danger)}.skip-link{z-index:101;background:#fff;border-radius:8px;padding:12px 16px;font-weight:600;position:absolute;top:-80px;left:16px;box-shadow:0 4px 12px #0000001a}.skip-link:focus{top:16px}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=1100px){.overview-grid{grid-template-columns:minmax(0,1fr)}.admin-main{padding:28px}.filter-selects{flex-basis:100%}.subject-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=800px){.admin-sidebar{transform:translate(-100%)}.admin-sidebar.open{transform:translate(0)}.admin-workspace{margin-left:0}.menu-trigger,.sidebar-close{display:inline-flex}.admin-header{padding:0 20px}.admin-main{padding:24px}.admin-page-heading h1{font-size:24px}.metric-grid{gap:16px}.metric-card{padding:20px}.scope-toolbar label{flex-direction:column;flex:1;align-items:stretch;gap:8px;min-width:200px}.scope-toolbar select{width:100%;max-width:100%}}@media (width<=520px){body{font-size:14px}.login-page{padding:20px}.login-card{padding:32px 24px}.login-heading h1{font-size:22px}.login-heading{flex-wrap:wrap;align-items:flex-start;gap:10px}.login-footer{font-size:12px}.simple-header{padding:16px 20px}.simple-header strong{font-size:17px}.simple-header>div{gap:8px}.selection-main{padding:0 20px 32px}.identity-panel,.window-panel{padding:20px}.identity-panel h1{font-size:20px}.identity-number{margin:8px 0 0;display:block}.identity-panel>div{flex-basis:100%}.window-details{gap:16px 24px}.window-details>span:first-child{flex-basis:100%}.window-details strong{font-size:14px}.window-panel .section-title h2{font-size:18px}.subject-grid{grid-template-columns:minmax(0,1fr);gap:16px}.subject-card{padding:20px}.subject-card.chosen{padding:19px}.subject-card h3{font-size:20px}.subject-card .button{min-height:46px}.seat-count{margin-top:16px;font-size:13px}.subject-heading{flex-wrap:nowrap;align-items:flex-start;gap:12px}.subject-heading .button{flex-shrink:0}.subject-heading h2{font-size:20px}.selection-result{padding:20px}.result-meta{flex-direction:column;gap:8px}.admin-main{padding:20px 16px}.admin-header{height:64px;padding:0 16px}.admin-header strong{font-size:14px}.header-actions{gap:8px;font-size:13px}.admin-page-heading{gap:16px}.heading-buttons{width:100%}.heading-buttons select{flex:1;min-width:0;max-width:100%}.tabs{gap:0}.tabs button{padding:12px 14px;font-size:14px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.metric-card strong{font-size:28px}.metric-card>span{font-size:13px}.padded{padding:20px}.editor-grid{grid-template-columns:minmax(0,1fr);gap:0}.span-2,.multi-field{grid-column:auto}.panel-heading{padding:16px 20px}.table-toolbar{gap:12px;padding:16px}.filter-selects{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%;display:grid}.filter-selects select{width:100%;min-width:0;max-width:100%;padding:10px;font-size:13px}.search-input{flex-basis:100%;max-width:100%}.data-table td,.data-table th{padding:12px 16px}.panel-actions{padding:16px 20px}.panel-actions .button{font-size:14px}.panel-actions>span{flex-basis:100%;font-size:13px}.assignment-toolbar{padding:16px}.assignment-toolbar>label{flex-direction:column;align-items:stretch;gap:8px;width:100%}.manual-assignment{gap:12px}.manual-assignment>span{flex-basis:100%}.manual-assignment select{flex-basis:100%;font-size:13px}.scope-toolbar{gap:16px}.inline-facts{gap:10px 20px}.modal-inner{padding:24px 20px}.modal{width:calc(100% - 24px);max-height:calc(100dvh - 24px)}.modal .field input,.modal .field select{font-size:16px}.checkbox-options{grid-template-columns:repeat(2,minmax(0,1fr))}.toast-stack{max-width:calc(100% - 24px);top:12px;right:12px}.toast{font-size:14px}.simple-header .pill{font-size:11px}.notice-list{padding:14px 28px}.setting-toggle{gap:16px}.setting-toggle small{font-size:12px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.tutorial-trigger{color:var(--primary);text-align:left;background:#f1f8f4;border:1px solid #cce2d8;border-radius:10px;align-items:center;gap:12px;display:inline-flex}.tutorial-trigger:hover:not(:disabled){background:#e7f3ec;border-color:#91c3ac}.tutorial-trigger.card{width:100%;min-height:76px;margin-top:24px;padding:14px 16px}.tutorial-trigger-copy{flex:1;gap:3px;min-width:0;display:grid}.tutorial-trigger-copy strong{font-size:14px;font-weight:650}.tutorial-trigger-copy small{color:#557564;font-size:12px;font-weight:400}.tutorial-play-icon{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.tutorial-trigger.card .tutorial-play-icon{background:#dceee4;border-radius:50%;width:36px;height:36px}.tutorial-trigger>svg{flex-shrink:0}.tutorial-trigger.compact{white-space:nowrap;gap:6px;min-height:44px;padding:7px 10px;font-size:13px;font-weight:600}.tutorial-player video{aspect-ratio:16/9;background:#10271f;border-radius:10px;width:100%;height:auto;display:block}.tutorial-player video:focus-visible,.tutorial-steps summary:focus-visible{outline-offset:3px;border-radius:8px;outline:3px solid #86bbae}.tutorial-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 12px;margin-top:12px;font-size:13px;display:flex}.tutorial-meta>span,.tutorial-meta>a{align-items:center;gap:6px;min-height:44px;display:inline-flex}.tutorial-meta>span{color:var(--muted)}.tutorial-meta>a{font-weight:600}.tutorial-note{color:var(--muted);margin:2px 0 18px;font-size:12px;line-height:1.8}.tutorial-steps{border-top:1px solid var(--border);padding-top:4px}.tutorial-steps summary{cursor:pointer;color:#334155;min-height:44px;padding:10px 2px;font-weight:600}.tutorial-steps ol{color:#475569;margin:4px 0 0;padding-left:22px;font-size:13px;line-height:1.8}.tutorial-steps li+li{margin-top:8px}.tutorial-error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-top:12px;padding:10px 14px;font-size:13px}.tutorial-error p{margin:0}@media (width<=520px){.tutorial-trigger.card{gap:10px;padding:12px}.tutorial-meta{font-size:12px}}
