.backup-management{background:#f5f5f5;border-radius:8px;padding:20px;margin:20px 0}.backup-management h3{margin-top:0;margin-bottom:16px;font-size:18px;font-weight:600;color:#333}.backup-control{margin-bottom:20px;display:flex;gap:10px}.btn-backup{padding:10px 20px;background:#4caf50;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:background .2s}.btn-backup:hover:not(:disabled){background:#45a049}.btn-backup:disabled{background:#ccc;cursor:not-allowed}.btn-view{padding:10px 20px;background:#fff;color:#333;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.btn-view:hover:not(:disabled){background:#f0f0f0;border-color:#999}.btn-view:disabled{opacity:.6;cursor:not-allowed}.error-message{background:#fee;color:#c00;padding:12px;border-radius:4px;margin-bottom:16px;font-size:13px}.backup-files{margin-top:20px}.backup-files h4{margin-top:0;margin-bottom:12px;font-size:14px;font-weight:600;color:#666}.loading,.empty{color:#999;font-size:13px;padding:12px;text-align:center}.backup-list{display:flex;flex-direction:column;gap:10px}.backup-item{background:#fff;border:1px solid #ddd;border-radius:4px;padding:12px;display:flex;justify-content:space-between;align-items:center;gap:12px}.backup-info{flex:1;min-width:0}.backup-name{font-size:13px;font-weight:500;color:#333;word-break:break-all}.backup-meta{font-size:12px;color:#999;margin-top:4px}.backup-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.btn-small{padding:6px 10px;border:1px solid #ddd;border-radius:3px;background:#fff;color:#333;cursor:pointer;font-size:12px;font-weight:500;transition:all .2s;white-space:nowrap}.btn-small:hover:not(:disabled){background:#f0f0f0;border-color:#999}.btn-small:disabled{opacity:.6;cursor:not-allowed}.btn-download{border-color:#4caf50;color:#4caf50}.btn-download:hover:not(:disabled){background:#f1f8f6}.btn-restore{border-color:#2196f3;color:#2196f3}.btn-restore:hover:not(:disabled){background:#f1f7fc}.btn-restore-master{border-color:#ff9800;color:#ff9800}.btn-restore-master:hover:not(:disabled){background:#fff8f1}.btn-delete{border-color:#f44336;color:#f44336}.btn-delete:hover:not(:disabled){background:#fef0f0}@media (max-width: 768px){.backup-item{flex-direction:column;align-items:flex-start}.backup-actions{width:100%}.btn-small{flex:1;min-width:0}}:root{--bg: #f2ecdf;--panel: rgba(255, 251, 243, .84);--panel-strong: #fff8eb;--ink: #1f1b17;--muted: #675d52;--line: rgba(31, 27, 23, .12);--accent: #b44f21;--accent-dark: #8f3811;--success: #2a7b56;--error: #a4372d;--shadow: 0 28px 60px rgba(90, 54, 28, .18)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;min-height:100vh;font-family:Space Grotesk,sans-serif;color:var(--ink);background:radial-gradient(circle at top left,rgba(180,79,33,.18),transparent 32%),radial-gradient(circle at bottom right,rgba(49,109,89,.14),transparent 28%),linear-gradient(135deg,#f6f0e4,#efe1c2)}button,input{font:inherit}a{color:inherit}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2.2rem,4vw,4rem);line-height:1;max-width:12ch;margin-bottom:0}.eyebrow{margin:0 0 8px;font-family:IBM Plex Mono,monospace;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-dark)}.subtle{color:var(--muted)}.page-status{min-height:100vh;display:grid;place-items:center;font-size:1.1rem;color:var(--muted)}@keyframes card-enter{0%{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.page-shell{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;gap:32px;padding:32px}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.dashboard-shell{min-height:100vh;padding:28px}.hero-panel,.panel-card,.dashboard-card,.login-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--line);box-shadow:var(--shadow)}.login-card{width:min(100%,520px);border-radius:32px;background:linear-gradient(180deg,#fffaeff5,#f7ebd1eb);border:1px solid var(--line);box-shadow:var(--shadow);padding:34px;animation:card-enter .52s ease-out both}.hero-panel{display:flex;flex-direction:column;justify-content:space-between;padding:40px;border-radius:32px;background:linear-gradient(160deg,#fff8ebf2,#f4e5c6e0)}.panel-card,.dashboard-card{width:min(100%,560px);border-radius:28px;background:var(--panel);padding:28px}.dashboard-card{width:100%}.dashboard-head{display:flex;justify-content:space-between;gap:20px;align-items:start;margin-bottom:24px}.user-avatar{flex:0 0 auto;object-fit:cover;border-radius:50%;border:1px solid rgba(31,27,23,.12);background:#ffffffd1}.user-avatar-small{width:36px;height:36px}.user-avatar-medium{width:48px;height:48px}.user-avatar-large{width:72px;height:72px}.user-avatar-fallback{display:inline-flex;align-items:center;justify-content:center;font-family:IBM Plex Mono,monospace;font-weight:700;color:var(--accent-dark);background:radial-gradient(circle at top left,rgba(180,79,33,.16),transparent 35%),linear-gradient(180deg,#fff9edf5,#f5e8cdeb)}.account-chip{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:18px;background:#fffbf3b8;border:1px solid rgba(31,27,23,.08)}.account-chip-copy{display:grid;gap:2px}.account-chip-copy strong{font-size:.95rem}.account-chip-copy span{font-family:IBM Plex Mono,monospace;font-size:.8rem;color:var(--muted)}.notification-shell{position:relative}.notification-button{position:relative;display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid rgba(31,27,23,.1);border-radius:16px;background:#fffbf3c7;color:var(--ink);cursor:pointer;font-size:0}.notification-button:before{content:"";width:18px;height:18px;border:2px solid currentColor;border-bottom:0;border-radius:12px 12px 6px 6px;transform:translateY(1px)}.notification-button:after{content:"";position:absolute;bottom:12px;width:7px;height:3px;border-radius:999px;background:currentColor}.notification-badge{position:absolute;top:-5px;right:-5px;min-width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;padding:0 6px;border-radius:999px;background:var(--error);color:#fff;font-size:.72rem;font-weight:800}.notification-panel{position:absolute;top:calc(100% + 10px);right:0;z-index:20;width:min(360px,calc(100vw - 32px));border:1px solid var(--line);border-radius:18px;background:#fffbf3fa;box-shadow:var(--shadow);padding:14px}.notification-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.notification-panel-actions{display:flex;align-items:center;gap:10px}.notification-panel-head span,.notification-item>span,.notification-empty{color:var(--muted);font-size:.82rem}.notification-list{display:grid;gap:8px}.notification-item{display:grid;gap:8px;border-radius:14px;padding:12px;background:#ffffffa6;border:1px solid rgba(31,27,23,.08)}.notification-item.unread{border-color:#b44f213d;background:#b44f2114}.notification-item p{margin:4px 0 0;color:var(--muted);line-height:1.4}.notification-item-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}.auth-panel{display:flex;align-items:center;justify-content:center}.brand-lockup{display:grid;grid-template-columns:96px 1fr;gap:24px;align-items:center}.brand-mark{width:96px;height:96px;object-fit:contain;filter:drop-shadow(0 16px 24px rgba(60,29,9,.2))}.brand-mark.large{width:142px;height:142px}.auth-form{display:grid;gap:16px;margin:24px 0 18px}.auth-form.compact{margin-top:0}.field{display:grid;gap:8px}.field span{font-size:.95rem;font-weight:700}.field-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.field-muted span{color:var(--muted)}.field input{width:100%;border:1px solid rgba(31,27,23,.14);border-radius:16px;background:#ffffffbf;padding:14px 16px;color:var(--ink);outline:none;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.field textarea{width:100%;border:1px solid rgba(31,27,23,.14);border-radius:16px;background:#ffffffbf;padding:14px 16px;color:var(--ink);outline:none;resize:vertical;min-height:110px;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.field select{width:100%;border:1px solid rgba(31,27,23,.14);border-radius:16px;background:#ffffffbf;padding:14px 16px;color:var(--ink);outline:none;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.field input:focus{border-color:#b44f218c;box-shadow:0 0 0 4px #b44f211f;transform:translateY(-1px)}.field textarea:focus{border-color:#b44f218c;box-shadow:0 0 0 4px #b44f211f;transform:translateY(-1px)}.field select:focus{border-color:#b44f218c;box-shadow:0 0 0 4px #b44f211f;transform:translateY(-1px)}.field-help{color:var(--muted);font-size:.88rem;line-height:1.45}.toggle-field{display:flex;align-items:center;gap:12px;font-weight:700}.toggle-field input{width:18px;height:18px;margin:0;accent-color:var(--accent)}.preference-list{display:grid;gap:16px}.preference-card{display:grid;gap:14px;padding:16px;border:1px solid rgba(31,27,23,.1);border-radius:18px;background:#ffffff94;grid-template-columns:minmax(180px,1.35fr) minmax(120px,.9fr) minmax(140px,1fr) minmax(140px,1fr) auto;align-items:end}.preference-card-class{grid-template-columns:minmax(240px,1fr) auto}.preference-remove{width:fit-content;white-space:nowrap}.primary-button,.secondary-button{border:none;cursor:pointer;border-radius:16px;padding:14px 18px;font-weight:700}.primary-button{background:linear-gradient(135deg,var(--accent),var(--accent-dark));color:#fff8f1}.primary-button:hover{filter:brightness(1.03)}.primary-button:disabled{opacity:.65;cursor:wait}.secondary-button{background:#1f1b170f;color:var(--ink)}.form-button-fit{width:fit-content}.inline-text-action{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;padding:0;margin:0;background:transparent;color:var(--accent-dark);font-size:.92rem;font-weight:600;line-height:1.3;cursor:pointer;transition:color .18s ease,opacity .18s ease}.inline-text-action:hover{opacity:.74}.inline-text-action:focus-visible{outline:none;text-decoration:underline}.password-toggle{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:0;border-radius:999px;background:#1f1b170f;color:var(--accent-dark);cursor:pointer;transition:background .18s ease,transform .18s ease}.password-toggle:hover{background:#b44f211f;transform:translateY(-1px)}.password-toggle:focus-visible{outline:none;box-shadow:0 0 0 4px #b44f211f}.password-toggle-icon{width:18px;height:18px}.status{min-height:8px;margin-bottom:8px;font-weight:500}.status.success{color:var(--success)}.status.error{color:var(--error)}.login-brand{text-align:center;display:grid;justify-items:center;gap:8px;margin-bottom:28px;animation:fade-up .62s ease-out both}.login-title{max-width:none;margin-bottom:12px;font-size:clamp(2.1rem,5vw,3.25rem)}.login-copy{max-width:32ch;margin:0 auto;color:var(--muted)}.support-copy{margin:0;color:var(--muted);line-height:1.55}.support-panel,.info-card{border-radius:22px;background:var(--panel-strong);border:1px solid var(--line);padding:20px}.support-panel.compact{padding:16px}.support-form{margin-bottom:0}.login-actions{display:flex;justify-content:flex-end;margin:-2px 0 14px}.support-trigger{letter-spacing:.01em}.dashboard-title{font-size:clamp(2rem,3vw,3rem);line-height:1;margin-bottom:10px}.dashboard-card-wide{max-width:1320px;margin:0 auto}.dashboard-actions{display:flex;align-items:flex-start;gap:14px;justify-content:flex-end;flex-wrap:wrap}.dashboard-action-stack{display:flex;flex-direction:column;align-items:stretch;gap:14px;min-width:220px}.hero-copy{max-width:58ch;font-size:1.05rem;color:var(--muted)}.role-list{list-style:none;padding:0;margin:28px 0 0;display:grid;gap:14px}.role-list li{display:flex;justify-content:space-between;gap:16px;padding:14px 18px;background:#ffffff8c;border:1px solid rgba(31,27,23,.08);border-radius:18px}.role-list span{font-weight:700}.role-list code{font-family:IBM Plex Mono,monospace;font-size:.9rem}.info-card{border-radius:22px;background:var(--panel-strong);border:1px solid var(--line);padding:20px}.monitor-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.monitor-grid-summary{margin-bottom:20px}.teacher-summary-card{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.teacher-summary-metric{min-width:0;padding:0 14px;border-left:1px solid var(--line)}.teacher-summary-metric:first-child{border-left:0;padding-left:0}.teacher-summary-metric h2{margin-bottom:0}.teacher-score-metric{border-radius:16px;padding:12px 14px;border-left:0}.teacher-score-metric:first-child{padding-left:14px}.teacher-score-critical{background:#a4372d21;color:#8f261f}.teacher-score-low{background:#b44f2124;color:var(--accent-dark)}.teacher-score-medium{background:#be912a29;color:#8a6417}.teacher-score-high{background:#2a7b561f;color:var(--success)}.dashboard-section{border-radius:24px;background:#fffbf3c7;border:1px solid var(--line);padding:22px;margin-top:18px}.register-form{max-width:720px}.class-create-form{grid-template-columns:repeat(4,minmax(160px,1fr));align-items:end}.class-create-form .primary-button{width:fit-content;min-width:150px}.section-head{display:flex;align-items:start;justify-content:space-between;gap:16px;margin-bottom:16px}.section-title-row{display:flex;align-items:center;gap:10px}.section-title-row h2{margin-bottom:0}.section-add-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:32px;height:32px;border-radius:999px;border:1px solid rgba(31,27,23,.14);background:#ffffffd1;color:var(--ink);font-size:1.1rem;font-weight:800;line-height:1;cursor:pointer;box-shadow:0 8px 20px #1f1b1714}.section-add-button:hover{border-color:#1f1b1747;transform:translateY(-1px)}.section-head-actions,.table-filter-row{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.table-filter-row{margin-bottom:12px}.section-toggle-group{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.section-toggle-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(31,27,23,.12);border-radius:999px;background:#ffffffb3;color:var(--ink);padding:8px 14px;font-weight:700;cursor:pointer}.section-toggle-button.active{background:#b44f2124;border-color:#b44f213d;color:var(--accent-dark)}.score-button{border:1px solid rgba(42,123,86,.18);border-radius:999px;background:#2a7b561a;color:var(--success);padding:6px 12px;font-weight:800;cursor:pointer}.score-button:hover{background:#2a7b5629}.score-event-list{display:grid;gap:10px;margin-top:10px}.score-event-item{display:grid;gap:5px;border:1px solid rgba(31,27,23,.08);border-radius:14px;background:#ffffff94;padding:12px}.score-event-item span{color:var(--muted);font-size:.82rem}.score-event-item p{margin:0}.score-summary-grid{padding-bottom:16px;border-bottom:1px solid var(--line)}.score-panel-form{padding:18px 0;border-bottom:1px solid var(--line)}.score-panel-status{margin-bottom:0}.score-history-section{padding-top:2px}.score-history-toggle{width:100%;border:1px solid var(--line);border-radius:14px;background:#ffffffb3;color:var(--ink);padding:12px 14px;font-weight:800;cursor:pointer;text-align:left}.score-history-toggle:hover{background:#b44f2114}.section-head h2,.class-highlight-card h3{margin-bottom:6px}.class-highlight-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.class-highlight-card{border-radius:20px;padding:18px;border:1px solid rgba(180,79,33,.18);background:radial-gradient(circle at top right,rgba(180,79,33,.12),transparent 32%),linear-gradient(160deg,#fff9edf5,#f5e8cde0);box-shadow:0 16px 30px #5a361c14}.class-highlight-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.status-pill{display:inline-flex;align-items:center;justify-content:center;min-width:96px;border-radius:999px;padding:6px 12px;font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.status-pill-assigned,.status-pill-resolved,.status-pill-approved{background:#2a7b561f;color:var(--success)}.status-pill-need_replacement,.status-pill-requested{background:#b44f2124;color:var(--accent-dark)}.status-pill-cancelled,.status-pill-rejected{background:#a4372d1f;color:var(--error)}.status-pill-open{background:#1f1b1714;color:var(--ink)}.status-pill-valid{background:#2a7b561f;color:var(--success)}.status-pill-manual{background:#2f619a1f;color:#2f619a}.status-pill-invalid{background:#a4372d1f;color:var(--error)}.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;min-width:760px}.data-table th,.data-table td{text-align:left;padding:14px 12px;border-bottom:1px solid rgba(31,27,23,.08);vertical-align:middle}.data-table th{font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.data-table tbody tr:hover{background:#b44f210a}.table-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0 2px;color:var(--muted);font-size:.9rem}.table-pagination-actions{display:flex;align-items:center;gap:8px}.table-actions{display:flex;flex-wrap:wrap;gap:8px}.table-value-center{display:block;text-align:center}.user-inline-cell{display:flex;align-items:center;gap:10px}.avatar-preview-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;padding:0;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;border-radius:999px}.avatar-preview-button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.teacher-avatar-verification-panel{display:grid;grid-template-columns:minmax(180px,320px) minmax(180px,1fr);gap:22px;align-items:center}.teacher-avatar-verification-frame{position:relative;width:min(100%,320px)}.teacher-avatar-verification-image{width:100%;max-width:320px;height:auto;aspect-ratio:1;border-radius:24px;box-shadow:0 18px 36px #5a361c29}.teacher-avatar-delete-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;left:50%;bottom:14px;transform:translate(-50%);border:0;border-radius:999px;padding:10px 16px;background:#8f261ff0;color:#fff;font-weight:800;box-shadow:0 12px 24px #1f1b1738;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .16s ease}.teacher-avatar-verification-frame:hover .teacher-avatar-delete-button,.teacher-avatar-verification-frame:focus-within .teacher-avatar-delete-button{opacity:1;pointer-events:auto}.teacher-avatar-delete-button:disabled{cursor:wait;opacity:.72}.teacher-avatar-verification-copy{display:grid;gap:8px}.profile-image-panel{display:flex;align-items:center;gap:18px}.profile-image-copy{display:grid;gap:8px}.profile-image-actions{display:flex;align-items:center;gap:12px}.profile-info-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.teacher-profile-card{border-radius:24px;border:1px solid rgba(180,79,33,.14);background:radial-gradient(circle at top right,rgba(180,79,33,.1),transparent 34%),linear-gradient(160deg,#fff9edf0,#f8f0e0e6);padding:22px;display:grid;grid-template-columns:300px minmax(0,1fr);gap:28px;align-items:start}.teacher-profile-identity{display:grid;justify-items:center;gap:14px;text-align:center}.teacher-profile-avatar-trigger{position:relative;display:inline-block;cursor:pointer}.teacher-profile-avatar{width:192px;height:192px;border-radius:24px;border:1px solid rgba(31,27,23,.1);box-shadow:0 14px 28px #5a361c1f}.teacher-profile-avatar-overlay{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:24px;display:flex;align-items:center;justify-content:center;background:#1f1b1747;color:#fff;font-weight:700;opacity:0;transition:opacity .16s ease}.teacher-profile-avatar-trigger:hover .teacher-profile-avatar-overlay,.teacher-profile-avatar-trigger:focus-within .teacher-profile-avatar-overlay{opacity:1}.teacher-profile-identity-copy{display:grid;gap:4px;justify-items:center}.teacher-profile-identity-copy strong{font-size:1.15rem}.teacher-profile-identity-copy span{font-family:IBM Plex Mono,monospace;color:var(--muted)}.teacher-profile-details{border-radius:18px;background:#ffffffad;border:1px solid rgba(31,27,23,.08);overflow:hidden;display:grid;grid-template-columns:1fr}.teacher-profile-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px}.teacher-profile-row+.teacher-profile-row{border-top:1px solid rgba(31,27,23,.08)}.teacher-profile-row span{color:var(--muted)}.teacher-profile-row strong{text-align:right}.teacher-profile-edit-value{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--accent-dark);cursor:pointer;font:inherit;font-weight:700;min-width:0;padding:0;text-align:right;text-decoration:underline;text-decoration-color:#b44f2157;text-underline-offset:3px;overflow-wrap:anywhere}.teacher-profile-edit-value:hover{color:var(--accent)}.teacher-profile-edit-value:focus-visible{outline:none;box-shadow:0 0 0 4px #b44f211f;border-radius:8px}.hidden-file-input{display:none}.table-action-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:999px;padding:8px 12px;background:#b44f211f;color:var(--accent-dark);font-size:.82rem;font-weight:700;cursor:pointer}.table-action-button:hover{background:#b44f212e}.table-action-button:disabled{opacity:.6;cursor:wait}.table-action-button-muted{background:#1f1b1714;color:var(--ink)}.table-action-button-muted:hover{background:#1f1b171f}.table-action-button-danger{background:#a4372d1f;color:var(--error)}.table-action-button-danger:hover{background:#a4372d2e}.table-select{min-width:84px;border:1px solid rgba(31,27,23,.14);border-radius:12px;background:#ffffffdb;padding:8px 10px;color:var(--ink);outline:none}.table-select:focus{border-color:#b44f218c;box-shadow:0 0 0 4px #b44f211f}.table-select:disabled{opacity:.6;cursor:not-allowed}.table-select-active{background:#2a7b561f;border-color:#2a7b5640;color:var(--success)}.table-select-active option{background:#eef8f1;color:var(--success)}.table-select-inactive{background:#a4372d1f;border-color:#a4372d40;color:var(--error)}.table-select-inactive option{background:#fdf0ee;color:var(--error)}.inline-link{display:inline-flex;align-items:center;justify-content:center;margin-top:12px;padding:10px 14px;border-radius:999px;background:#b44f211f;color:var(--accent-dark);text-decoration:none;font-weight:700}.inline-link:hover{background:#b44f212e}.page-status.compact{min-height:120px}.replacement-suggestions{display:grid;gap:10px}.replacement-panel-suggestions{margin-top:12px}.replacement-suggestion-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;border-radius:18px;background:#fff9edeb;border:1px solid rgba(180,79,33,.1)}.replacement-panel-row{align-items:stretch}.replacement-selection-summary{display:flex;align-items:center;justify-content:space-between;gap:16px}.suggestion-choice{display:flex;align-items:flex-start;gap:12px;min-width:0}.suggestion-choice input{margin-top:4px}.replacement-suggestion-meta{display:grid;gap:4px}.assignment-load-button{margin-top:4px;width:100%}.suggestion-teacher-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;padding:0;margin:0;background:transparent;color:var(--ink);font-weight:700;text-align:left;cursor:pointer}.suggestion-teacher-button:hover{color:var(--accent-dark)}.suggestion-teacher-button:focus-visible{outline:none;text-decoration:underline}.floating-panel-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#18141066;display:flex;align-items:center;justify-content:center;padding:24px;z-index:30}.floating-panel{width:min(560px,100%);max-height:min(80vh,720px);border-radius:24px;border:1px solid rgba(31,27,23,.1);background:#fffbf3fa;box-shadow:0 28px 70px #1f1b1733;padding:24px;overflow-y:auto}.floating-panel-head{display:flex;align-items:start;justify-content:space-between;gap:16px;margin-bottom:18px}.floating-panel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.floating-panel-section{margin-top:18px}.floating-panel-section p:last-child{margin-top:8px}.floating-panel-reason-box{margin-top:8px;border-radius:18px;border:1px solid rgba(31,27,23,.1);background:#ffffffb8;padding:14px 16px}.floating-panel-reason-box p{margin:0}.floating-panel-status-row{display:flex;align-items:center;gap:12px}.floating-panel-status-row p{margin-bottom:0}.floating-panel-form{display:grid;gap:16px}.floating-panel-summary{display:grid;gap:12px;padding:16px 18px;border-radius:18px;border:1px solid rgba(31,27,23,.1);background:#ffffffb8}.floating-panel-summary-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.floating-panel-summary-row span{color:var(--muted)}.floating-panel-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.center-class-group{border-radius:20px;border:1px solid rgba(31,27,23,.08);background:#ffffff94;padding:18px}.center-class-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.center-class-head h3{margin-bottom:0}.class-week-grid{display:grid;grid-template-columns:repeat(7,minmax(160px,1fr));gap:10px;overflow-x:auto;padding-bottom:6px}.class-week-column{min-width:160px;border:1px solid rgba(31,27,23,.08);border-radius:14px;background:#fffbf3b8;overflow:hidden}.class-week-day{padding:10px 12px;background:#b44f211a;color:var(--accent-dark);font-weight:800;text-align:center}.class-week-list{display:grid;gap:8px;grid-template-rows:repeat(6,170px);grid-auto-rows:170px;align-content:start;padding:10px}.class-week-empty{align-self:center;justify-self:center;color:var(--muted);font-size:.88rem}.class-week-item{display:grid;gap:5px;width:100%;height:100%;min-width:0;align-content:start;padding:10px;border-radius:10px;border:1px solid rgba(31,27,23,.08);background:#ffffffc2;font-size:.88rem;overflow:hidden}.class-week-item-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.class-week-item span{min-width:0;color:var(--muted);overflow-wrap:anywhere}.class-week-item .class-teacher-list{display:grid;gap:2px}.class-teacher-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;padding:0;margin:0;background:transparent;color:var(--accent-dark);font:inherit;font-weight:700;text-align:left;cursor:pointer}.class-teacher-button:hover,.class-teacher-button:focus-visible{text-decoration:underline}.class-week-delete-button{margin-top:4px;width:100%}.class-center-pagination{margin-top:14px}@media (max-width: 960px){.page-shell{grid-template-columns:1fr;padding:20px}.hero-panel{padding:28px}.brand-lockup{grid-template-columns:72px 1fr;gap:18px}.brand-mark{width:72px;height:72px}.brand-mark.large{width:108px;height:108px}.preference-card{grid-template-columns:repeat(2,minmax(0,1fr))}.replacement-suggestion-row{flex-direction:column;align-items:stretch}}@media (max-width: 720px){body{background:radial-gradient(circle at top left,rgba(180,79,33,.12),transparent 30%),linear-gradient(135deg,#f8f2e7,#efe4cf)}h1{max-width:none}.dashboard-title{font-size:2rem;line-height:1.08}.dashboard-actions,.dashboard-action-stack,.section-head,.floating-panel-head,.center-class-head{width:100%;flex-direction:column;align-items:stretch}.dashboard-actions{justify-content:flex-start}.dashboard-action-stack{min-width:0}.primary-button,.secondary-button,.inline-link,.table-action-button{width:100%}.table-wrap{margin-inline:-4px;padding-bottom:6px;overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table{min-width:680px}.data-table th,.data-table td{padding:12px 10px}.table-actions{min-width:132px}.floating-panel-backdrop{align-items:end;padding:12px}.floating-panel{width:100%;max-height:88vh;border-radius:20px;padding:20px}.floating-panel-actions{flex-direction:column}.floating-panel-summary-row,.teacher-profile-row{align-items:flex-start;flex-direction:column;gap:6px}.teacher-profile-row strong,.teacher-profile-edit-value{text-align:left}}@media (max-width: 560px){.login-shell,.dashboard-shell,.page-shell{padding:12px}.panel-card,.hero-panel,.dashboard-card,.login-card{border-radius:18px;padding:18px}.dashboard-head{flex-direction:column;gap:16px;margin-bottom:18px}.account-chip{width:100%;justify-content:flex-start}.dashboard-shell{padding:12px}.dashboard-section,.center-class-group,.class-highlight-card,.teacher-profile-card{border-radius:16px;padding:16px}.monitor-grid,.class-highlight-grid,.profile-info-grid,.class-create-form,.teacher-summary-card{grid-template-columns:1fr}.teacher-summary-metric{border-left:0;border-top:1px solid var(--line);padding:12px 0 0}.teacher-summary-metric:first-child{border-top:0;padding-top:0}.teacher-score-metric,.teacher-score-metric:first-child{padding:12px 14px}.status-pill{min-width:0;width:fit-content;max-width:100%}.preference-card,.floating-panel-grid{grid-template-columns:1fr}.profile-image-panel{flex-direction:column;align-items:flex-start}.teacher-profile-card{grid-template-columns:1fr}.teacher-profile-identity{justify-items:center;text-align:center}.teacher-profile-details{grid-template-columns:1fr}.teacher-profile-avatar{width:144px;height:144px;border-radius:18px}}@media (max-width: 420px){.dashboard-title{font-size:1.72rem}.eyebrow{font-size:11px}.field input,.field textarea,.field select,.primary-button,.secondary-button{border-radius:14px;padding:12px 14px}.account-chip{border-radius:14px}.account-chip-copy strong,.account-chip-copy span{overflow-wrap:anywhere}.floating-panel{padding:16px}.data-table{min-width:620px}}
