.notifications-page{width:100%;min-width:0}.notification-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);overflow-wrap:anywhere;margin-top:24px;padding:24px}.notification-toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin:16px 0;display:flex}.notification-card h2{margin:0;font-size:1.25rem}.notification-card>.notification-toolbar:first-child{justify-content:space-between;margin:0 0 16px}.notification-card .ui-button{min-height:36px}.notification-card .ui-button--secondary{border-color:var(--color-border)}.notification-description{color:var(--color-text-muted);font-size:var(--text-xs);margin:0 0 20px;line-height:1.7}.notification-controls{border:1px solid var(--color-border);background:var(--ink-50);border-radius:10px;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:24px;padding:12px 16px;display:flex}.notification-unread-summary{font-size:var(--text-xs);margin:0;font-weight:600}.notification-controls .notification-filter{min-height:36px;font-size:var(--text-xs);margin:0 0 0 auto;font-weight:500}.notification-filter input:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.notification-result-count{font-size:var(--text-sm);margin:0 0 16px;font-weight:600}.notification-pagination{border-top:1px solid var(--color-border);font-size:var(--text-xs);justify-content:flex-end;margin:24px 0 16px;padding-top:20px}.notification-card h3{font-size:var(--text-base)}.notification-list{border:1px solid var(--color-border);border-radius:12px;margin:0;padding:0;list-style:none;overflow:hidden}.notification-list li{border-bottom:1px solid var(--color-border);border-left:3px solid #0000;justify-content:space-between;align-items:center;gap:16px;padding:16px;display:flex}.notification-list li:last-child{border-bottom:0}.notification-list .notification-row--unread{border-left-color:var(--cyan-700);background:var(--cyan-50)}.notification-list li:hover{background:var(--ink-50)}.notification-row-copy{flex:1}.notification-row-icon{background:var(--ink-100);color:var(--color-text-muted);border-radius:12px;flex:0 0 40px;padding:9px}.notification-row--unread .notification-row-icon{background:var(--cyan-100);color:var(--cyan-700)}.notification-row-heading{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.notification-list .notification-row-heading h3{font-size:var(--text-sm);margin:0;font-weight:500;line-height:1.6}.notification-row--unread .notification-row-heading h3{font-weight:700}.notification-row-copy .notification-caption{margin:8px 0 0}.notification-source-label{text-transform:capitalize}.notification-list h3{margin:8px 0}.notification-list li>div{min-width:0}.notification-list button{flex-shrink:0}.notification-caption{color:var(--color-text-muted);font-size:var(--text-xs);line-height:1.7}.notification-filter{align-items:center;gap:10px;margin:20px 0;display:flex}.notification-filter input{width:20px;height:20px;accent-color:var(--cyan-500)}.notification-state{font-size:var(--text-xs);color:var(--color-text-muted);background:var(--ink-100);border-radius:6px;align-items:center;gap:6px;padding:4px 8px;font-size:.6875rem;display:inline-flex}.notification-state:before{content:"";background:currentColor;border-radius:50%;width:5px;height:5px}.notification-state--unread{color:var(--cyan-700);background:var(--cyan-100);border-radius:6px;padding:4px 8px;font-weight:600}.notification-detail{border:1px solid var(--color-border);border-left:4px solid var(--cyan-500);background:var(--ink-50);border-radius:12px;margin:24px 0;padding:20px}.notification-detail h3{margin:0 0 16px}.notification-detail>p:not(.notification-caption){font-size:var(--text-sm);line-height:1.7}.notification-source-link{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);min-height:36px;color:var(--cyan-700);font-size:var(--text-xs);align-items:center;padding:8px 12px;font-weight:600;text-decoration:none;display:inline-flex}.notification-source-link:hover{background:var(--cyan-100)}.notification-empty-state{border:1px dashed var(--color-border);background:var(--ink-50);color:var(--color-text-muted);text-align:center;border-radius:12px;padding:32px 20px}.notification-badge{font-size:var(--text-xs);border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:8px;text-decoration:none;display:inline-flex}.notification-badge__count{text-align:center;background:var(--cyan-100);min-width:22px;color:var(--indigo-950);border-radius:12px;padding:2px 5px;font-weight:700}.portal-header .notification-badge{margin-left:auto}.app-header .notification-badge,.portal-header .notification-badge{border:1px solid var(--color-border);background:var(--color-surface);border-radius:10px;gap:10px;min-height:40px;padding:8px 12px;font-weight:500}.app-header .notification-badge:hover,.portal-header .notification-badge:hover{background:var(--ink-50);border-color:var(--ink-300)}.app-header .notification-badge__count,.portal-header .notification-badge__count{color:var(--cyan-700);min-width:22px;font-size:11px}@media (width<=760px){.notification-card{padding:16px}.notification-list li{grid-template-columns:40px minmax(0,1fr);align-items:start;gap:12px;display:grid}.notification-list li>button{grid-column:2;justify-self:start}.notification-badge>span:not(.notification-badge__count){display:none}}.portal-account-control{min-width:0;margin-top:auto}.portal-account-trigger{background:var(--indigo-800);color:#fff;text-align:left;border:1px solid #0000;border-radius:10px;align-items:center;gap:10px;width:100%;padding:12px 8px;display:flex}.portal-account-trigger:hover{background:var(--indigo-700)}.portal-account-trigger:focus-visible{outline-color:var(--cyan-400)}.portal-account-trigger:disabled{cursor:wait;opacity:.75}.portal-account-avatar{background:var(--cyan-100);height:32px;color:var(--indigo-900);border-radius:50%;flex:0 0 32px;place-items:center;font-size:.6875rem;font-weight:700;display:grid}.portal-account-text{flex:1;gap:3px;min-width:0;display:grid}.portal-account-text strong,.portal-account-text>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.portal-account-text strong{font-size:var(--text-xs)}.portal-account-text>span{color:var(--indigo-200);font-size:.625rem}.portal-account-chevron{flex-shrink:0}.portal-account-popup{visibility:hidden;z-index:100;border:1px solid var(--color-border);background:var(--color-surface);width:240px;color:var(--color-text);box-shadow:var(--shadow-menu);font-size:var(--text-sm);border-radius:12px;padding:6px;position:fixed;overflow-y:auto}.portal-account-summary{overflow-wrap:anywhere;gap:4px;padding:8px 10px;display:grid}.portal-account-summary>span{color:var(--color-text-muted);font-size:var(--text-xs)}.portal-account-summary .portal-account-role{color:var(--cyan-700)}.portal-account-popup [role=menuitem]{width:100%;min-height:40px;color:inherit;text-align:left;font:inherit;background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;text-decoration:none;display:flex}.portal-account-popup [role=menuitem]:hover,.portal-account-popup [role=menuitem]:focus-visible{background:var(--ink-100)}.portal-account-popup [role=menuitem] svg{flex-shrink:0}.portal-account-divider{border-top:1px solid var(--color-border);margin:4px 0}.portal-account-popup .portal-account-logout{color:var(--color-danger)}.portal-account-error{font-size:var(--text-xs);color:#fff;margin:12px 8px 0}.admin-overview{width:100%;min-width:0}.admin-overview-toolbar,.admin-overview-actions{flex-wrap:wrap;align-items:center;gap:16px;margin:20px 0;display:flex}.admin-overview-toolbar{justify-content:space-between;margin:28px 0 12px}.admin-overview-toolbar h2{margin:0}.admin-overview h2{font-size:var(--text-heading)}.admin-overview h3{font-size:var(--text-base);margin:0}.admin-overview-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:20px 0 24px;display:grid}.admin-overview-panel,.admin-overview-metric{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);overflow-wrap:anywhere;min-width:0;box-shadow:var(--shadow-card);padding:clamp(18px,1.6vw,24px)}.admin-overview-metric{flex-direction:column;align-items:flex-start;display:flex}.overview-metric-heading{justify-content:space-between;align-items:center;gap:16px;width:100%;display:flex}.overview-metric-heading h3{color:var(--color-text-muted);font-size:var(--text-sm);font-weight:600;line-height:1.5}.overview-metric-icon{background:var(--cyan-50);color:var(--cyan-700);border-radius:12px;flex:0 0 40px;padding:10px}.overview-metric-footer{border-top:1px solid var(--color-border);flex-direction:column;align-items:flex-start;gap:8px;width:100%;margin-top:auto;padding-top:16px;display:flex}.overview-metric-footer .admin-overview-caption{margin:0;font-size:.6875rem}.overview-metric-footer a{min-height:36px;color:var(--cyan-700);font-size:var(--text-xs);align-items:center;gap:6px;font-weight:600;text-decoration:none;display:inline-flex}.overview-metric-footer a:hover{text-underline-offset:3px;text-decoration:underline}.admin-overview-metric>.admin-overview-caption{margin:0 0 20px}.admin-overview-number{font-variant-numeric:tabular-nums;letter-spacing:-.04em;margin:12px 0 16px;font-size:clamp(2.25rem,3vw,2.75rem);line-height:1.15;display:block}.admin-overview-caption{font-size:var(--text-xs);color:var(--color-text-muted);line-height:1.6}.admin-overview-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:24px 0;display:grid}.admin-overview-presence{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.admin-overview-presence div{background:var(--cyan-100);border-radius:12px;padding:16px}.admin-overview-presence dd{font-size:var(--text-heading);margin:8px 0 0;font-weight:700}.overview-presence-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.overview-presence-heading .eyebrow{margin:0}.overview-presence-icon{width:36px;height:36px;color:var(--cyan-700);background:var(--cyan-50);border-radius:10px;place-items:center;display:grid}.overview-presence-panel h2{margin:8px 0 16px}.admin-overview-presence .overview-presence-count{background:var(--color-surface);border:1px solid var(--color-border);border-top:3px solid var(--ink-400);padding:clamp(12px,1.5vw,20px)}.admin-overview-presence .overview-presence-count--in{border-top-color:var(--cyan-700);background:var(--cyan-50)}.admin-overview-presence .overview-presence-count--out{border-top-color:var(--amber-700);background:var(--amber-50)}.overview-presence-count dt{font-size:var(--text-xs);color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:6px;font-weight:600;display:flex}.overview-presence-dot{background:var(--ink-500);border-radius:50%;width:6px;height:6px}.overview-presence-count--in .overview-presence-dot{background:var(--cyan-700)}.overview-presence-count--out .overview-presence-dot{background:var(--amber-700)}.overview-presence-count dd{font-variant-numeric:tabular-nums;font-size:2rem}.overview-presence-panel>p:not(.admin-overview-caption){font-size:var(--text-sm);line-height:1.7}.overview-presence-link{border:1px solid var(--color-border);border-radius:var(--radius-control);min-height:42px;color:var(--cyan-700);font-size:var(--text-xs);justify-content:space-between;align-items:center;gap:16px;padding:10px 14px;font-weight:600;text-decoration:none;display:inline-flex}.overview-presence-link:hover{border-color:var(--cyan-700);background:var(--cyan-50)}@media (width<=380px){.admin-overview-presence{grid-template-columns:minmax(0,1fr)}}.admin-overview-shortcuts{gap:10px;margin-top:20px;display:grid}.admin-overview-shortcuts a{border:1px solid var(--color-border);border-radius:var(--radius-control);justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:12px 16px;font-weight:500;text-decoration:none;display:flex}.admin-overview-shortcuts a:after{content:"→";color:var(--cyan-700)}.admin-overview-shortcuts a:hover{border-color:var(--cyan-700);background:var(--cyan-50)}.admin-overview-blocks{grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:16px;margin:16px 0 24px;padding:0;list-style:none;display:grid}.admin-overview-blocks li{border:1px solid var(--color-border);background:var(--color-surface);border-radius:12px;min-width:0;padding:20px}.admin-overview-blocks h3 a{align-items:center;gap:12px;min-height:44px;line-height:1.5;text-decoration:none;display:flex}.admin-overview-blocks h3 a:hover{color:var(--cyan-700)}.admin-overview-blocks h3 a>span:first-of-type{flex:1;min-width:0}.overview-block-icon{color:var(--cyan-700);background:var(--cyan-100);border-radius:10px;flex:0 0 36px;padding:7px}.overview-block-arrow{color:var(--color-text-muted);flex-shrink:0}.admin-overview-blocks dl{border-top:1px solid var(--color-border);grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:20px 0 0;display:grid}.admin-overview-blocks dl>div{min-width:0;padding:14px 12px}.admin-overview-blocks dl>div:nth-child(odd){padding-left:0}.admin-overview-blocks dl>div:nth-child(2n){border-left:1px solid var(--color-border)}.admin-overview-blocks dl>div:nth-child(n+3){border-top:1px solid var(--color-border)}.admin-overview-blocks dl>.overview-block-available{background:var(--cyan-50);border-radius:0 0 8px}.admin-overview-blocks dt{font-size:var(--text-xs);color:var(--color-text-muted)}.admin-overview-blocks dd{font-variant-numeric:tabular-nums;margin:6px 0 0;font-size:1.375rem;font-weight:700;line-height:1.2}.overview-accommodation>h2{margin:0 0 12px}.overview-block-results{font-size:var(--text-sm);margin:16px 0 0;font-weight:600}.overview-block-pagination{border-top:1px solid var(--color-border);font-size:var(--text-xs);justify-content:flex-end;margin:0;padding-top:16px}.overview-recent-incidents{margin:20px 0;padding:0;list-style:none}.overview-recent-panel{margin-bottom:24px}.overview-recent-incidents li{border-top:1px solid var(--color-border);padding:16px 0}@media (width<=1000px){.admin-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-overview-columns{grid-template-columns:minmax(0,1fr)}}@media (width<=600px){.admin-overview-grid,.admin-overview-blocks{grid-template-columns:minmax(0,1fr)}.admin-overview-panel,.admin-overview-metric{padding:16px}.admin-overview-presence div{padding:10px}.admin-overview-toolbar{align-items:flex-start}}.staff-attendance{width:100%;min-width:0}.staff-attendance-card{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);overflow-wrap:anywhere;margin:24px 0 0;padding:24px}.staff-attendance h2{font-size:1.25rem}.staff-attendance h3{font-size:var(--text-base)}.staff-attendance-navigation{border-bottom:1px solid var(--color-border);flex-wrap:wrap;gap:8px;margin-top:24px;padding-bottom:12px;display:flex}.staff-attendance-navigation a{border-radius:var(--radius-control);min-height:40px;color:var(--color-text-muted);font-size:var(--text-xs);align-items:center;padding:8px 16px;font-weight:600;text-decoration:none;display:inline-flex}.staff-attendance-navigation a:hover{background:var(--ink-100)}.staff-attendance-navigation [aria-current=page]{color:var(--cyan-700);background:var(--cyan-100)}.staff-attendance-live{border:1px solid var(--color-border);background:var(--cyan-50);border-left:3px solid var(--cyan-700);border-radius:12px;margin:20px 0;padding:16px}.staff-attendance-live p{font-size:var(--text-xs);margin:8px 0 0;line-height:1.6}.staff-attendance-live .staff-attendance-toolbar{margin-top:0}.staff-attendance-toolbar{flex-wrap:wrap;align-items:center;gap:16px;margin:16px 0;display:flex}.staff-attendance-toolbar h2,.staff-attendance-toolbar h3{margin:0 auto 0 0}.staff-attendance-card>.staff-attendance-toolbar:first-child{margin:0 0 20px}.staff-attendance .ui-button{min-height:36px}.staff-attendance .ui-button--secondary{border-color:var(--color-border)}.staff-attendance-pagination{font-size:var(--text-xs);justify-content:flex-end;margin:24px 0 16px}.staff-attendance-filters{border-bottom:1px solid var(--color-border);flex-wrap:wrap;align-items:end;gap:16px;margin:20px 0;padding-bottom:20px;display:flex}.staff-attendance-filters label{font-size:var(--text-xs);flex:180px;gap:8px;min-width:0;font-weight:500;display:grid}.staff-attendance-filters input,.staff-attendance-filters select{font:inherit;border:1px solid var(--color-border);background:var(--color-surface);width:100%;min-width:0;min-height:40px;color:var(--color-text);border-radius:8px;padding:10px}.staff-attendance-filters input:focus-visible,.staff-attendance-filters select:focus-visible,.staff-attendance-table:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.staff-attendance-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:24px 0;display:grid}.staff-attendance-summary>div{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:20px}.staff-attendance-summary .staff-summary--in{border-top:3px solid #15803d}.staff-attendance-summary .staff-summary--out{border-top:3px solid var(--amber-600)}.staff-attendance-summary .staff-summary--unknown{border-top:3px solid var(--ink-400)}.staff-attendance-summary .staff-summary--total{border-top:3px solid var(--cyan-700)}.staff-attendance-summary dt{font-size:var(--text-xs);color:var(--color-text-muted)}.staff-attendance-summary dd{font-variant-numeric:tabular-nums;margin:8px 0 0;font-size:2rem;font-weight:700;line-height:1.2}.staff-attendance-caption{font-size:var(--text-xs);color:var(--color-text-muted);line-height:1.6}.staff-attendance-table{border:1px solid var(--color-border);border-radius:12px;overflow-x:auto}.staff-attendance-table table{border-collapse:collapse;width:100%;min-width:560px}.staff-attendance-table caption{text-align:left;color:var(--color-text-muted);font-size:var(--text-xs);border-bottom:1px solid var(--color-border);padding:12px 16px;font-weight:600}.staff-attendance-table th,.staff-attendance-table td{text-align:left;border-bottom:1px solid var(--color-border);vertical-align:middle;font-size:var(--text-sm);padding:16px}.staff-attendance-table thead th{background:var(--ink-50);color:var(--color-text-muted);font-size:var(--text-xs);white-space:nowrap;padding-block:12px}.staff-attendance-table tbody th{font-weight:600}.staff-attendance-table tbody tr:last-child>*{border-bottom:0}.staff-attendance-table tbody tr:hover{background:var(--cyan-50)}.staff-attendance-identity{align-items:center;gap:12px;min-width:180px;display:flex}.staff-attendance-identity a{text-decoration:none}.staff-attendance-identity a:hover{color:var(--cyan-700);text-underline-offset:3px;text-decoration:underline}.staff-attendance-identity .staff-attendance-caption{font-family:var(--font-mono);margin-top:4px;font-weight:400;display:block}.staff-attendance-avatar{background:var(--indigo-100);height:36px;color:var(--indigo-700);font-size:var(--text-xs);border-radius:50%;flex:0 0 36px;place-items:center;display:grid}.staff-attendance-link{border:1px solid var(--color-border);border-radius:var(--radius-control);min-height:36px;color:var(--cyan-700);font-size:var(--text-xs);align-items:center;padding:6px 12px;font-weight:600;text-decoration:none;display:inline-flex}.staff-attendance-link:hover{background:var(--cyan-100)}.staff-attendance-table td>span.staff-attendance-caption{margin-top:8px;display:block}.staff-presence{background:var(--ink-100);color:var(--color-text-muted);font-weight:600;font-size:var(--text-xs);border-radius:6px;align-items:center;gap:6px;padding:4px 8px;display:inline-flex}.staff-presence:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.staff-presence--in{color:#166534;background:#ecfdf3}.staff-presence--out{background:var(--amber-100);color:var(--amber-700)}.staff-incident-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));gap:16px;margin:20px 0;padding:0;list-style:none;display:grid}.staff-incident-list li{border:1px solid var(--color-border);border-radius:12px;flex-direction:column;min-width:0;padding:20px;display:flex}.staff-attendance-filters.staff-incident-filters{background:var(--ink-50);border:1px solid var(--color-border);border-radius:12px;padding:16px}.staff-incident-filter-actions{flex-wrap:wrap;gap:8px;display:flex}.staff-incident-filters .ui-button{min-height:40px}.staff-incident-results-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:24px;display:flex}.staff-incident-results-heading p{font-size:var(--text-sm);margin:0;font-weight:600}.staff-incident-results-heading>span{font-size:var(--text-xs);color:var(--color-text-muted)}.staff-incident-card-heading{align-items:center;gap:12px;display:flex}.staff-incident-icon{color:var(--cyan-700);background:var(--cyan-50);border-radius:12px;flex:0 0 40px;padding:9px}.staff-incident-reference{font-size:var(--text-xs);color:var(--color-text-muted);margin:0 0 20px}.staff-incident-reference summary{cursor:pointer;width:fit-content}.staff-incident-reference summary:focus-visible{outline:3px solid var(--color-focus);outline-offset:4px}.staff-incident-reference p{font-family:var(--font-mono);overflow-wrap:anywhere}.staff-incident-card-actions{border-top:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding-top:16px;display:flex}.staff-incident-card-actions .staff-attendance-link{gap:8px}.staff-incident-student-link{color:var(--cyan-700);font-weight:600;font-size:var(--text-xs);padding-block:8px;text-decoration:none}.staff-incident-student-link:hover{text-underline-offset:3px;text-decoration:underline}.staff-incident-list h3{margin:0;line-height:1.5}.staff-incident-list h3 a{text-decoration:none}.staff-incident-list h3 a:hover{color:var(--cyan-700);text-decoration:underline}.staff-incident-meta{color:var(--color-text-muted);font-size:var(--text-xs);flex-wrap:wrap;align-items:center;gap:12px;margin:16px 0;display:flex}.staff-incident-explanation{border-left:3px solid var(--cyan-700);background:var(--cyan-50);font-size:var(--text-sm);border-radius:8px;padding:16px;line-height:1.7}.staff-incident-details{border:1px solid var(--color-border);border-radius:12px;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:24px 0;display:grid;overflow:hidden}.staff-incident-details>div{border-bottom:1px solid var(--color-border);min-width:0;padding:16px}.staff-incident-details>div:nth-child(odd){background:var(--ink-50)}.staff-incident-details dt{font-size:var(--text-xs);color:var(--color-text-muted)}.staff-incident-details dd{font-size:var(--text-sm);margin:8px 0 0;font-weight:500}@media (width<=760px){.staff-attendance-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.staff-incident-details{grid-template-columns:minmax(0,1fr)}.staff-attendance-card{padding:16px}}.student-checkout-dialog{width:min(42rem,100vw - 2rem);max-height:calc(100dvh - 2rem);overflow-y:auto}.student-checkout-dialog p{font-size:.875rem;line-height:1.7}.checkout-student{border-bottom:1px solid var(--color-border);padding-bottom:1rem}.checkout-bed-review{border:1px solid var(--color-border);background:var(--cyan-50);border-radius:.75rem;margin-block:1rem;padding:1rem}.checkout-bed-review h3{margin:0;font-size:.9375rem}.checkout-bed-review .student-id{overflow-wrap:anywhere;margin-top:.5rem;font-size:.8125rem;display:block}.checkout-fields{border:0;gap:.75rem;min-width:0;margin:0;padding:0;display:grid}.checkout-fields>label:not(.checkout-confirm),.checkout-access legend{font-size:.8125rem;font-weight:700}.checkout-access{border:1px solid var(--color-border);border-radius:.75rem;gap:.75rem;min-width:0;padding:1rem;display:grid}.checkout-access label,.checkout-confirm{align-items:flex-start;gap:.625rem;font-size:.8125rem;line-height:1.6;display:flex}.checkout-fields input[type=radio],.checkout-fields input[type=checkbox]{accent-color:var(--cyan-700);flex-shrink:0;margin-top:.25rem}.student-checkout-dialog .checkout-help{color:var(--color-text-muted);margin:.5rem 0 0;font-size:.75rem}.checkout-confirm{background:var(--ink-50);border-radius:.75rem;padding:1rem}.checkout-warning{border:1px solid var(--amber-300);background:var(--amber-50);color:#92400e;border-radius:.625rem;padding:.875rem}.checkout-error{color:#9f1239;background:#fff1f2;border:1px solid #fecdd3;border-radius:.625rem;padding:.875rem}.checkout-summary{border:1px solid var(--color-border);border-radius:.75rem;gap:.875rem;padding:1rem;display:grid}.checkout-summary dt{color:var(--color-text-muted);margin-bottom:.25rem;font-size:.75rem}.checkout-summary dd{overflow-wrap:anywhere;margin:0;font-size:.875rem}@media (width<=560px){.student-checkout-dialog .student-form-actions{grid-template-columns:1fr;display:grid}.student-checkout-dialog .ui-button{width:100%}}.error-toast{z-index:1000;box-sizing:border-box;border:1px solid #fda4af;color:#881337;width:min(26rem,100vw - 2rem);max-height:calc(100dvh - 2rem);font-family:var(--font-ui);overflow-wrap:anywhere;background:#fff1f2;border-inline-start:4px solid #be123c;border-radius:.75rem;align-items:flex-start;gap:.625rem;padding:1rem;font-size:.875rem;line-height:1.5;display:flex;position:fixed;inset-block-start:max(1rem, env(safe-area-inset-top));inset-inline-end:max(1rem, env(safe-area-inset-right));overflow-y:auto;box-shadow:0 4px 8px #1810370a,0 12px 32px #1810371f}.error-toast-icon{color:#be123c;background:#ffe4e6;border-radius:50%;flex-shrink:0;place-items:center;width:2rem;height:2rem;display:grid}.error-toast-title{color:#881337;margin-block:.125rem .25rem;font-size:.875rem;font-weight:700}.error-toast-description{color:#9f1239;font-size:.8125rem;line-height:1.6}.error-toast-content{flex:1;min-width:0}.error-toast-content p{margin:.75rem 0 0}.error-toast-content .ui-button{margin-block-start:.75rem}.error-toast-dismiss{color:#9f1239;cursor:pointer;background:0 0;border:0;border-radius:.5rem;flex-shrink:0;place-items:center;width:2rem;height:2rem;padding:0;display:grid}@media (pointer:coarse){.error-toast-dismiss{min-width:2.75rem;min-height:2.75rem}}.error-toast-dismiss:hover{background:#ffe4e6}.error-toast-dismiss:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/plus-jakarta-sans-latin-400-normal-Dhut76fR.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-400-normal-BDKaGhyp.woff)format("woff")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/plus-jakarta-sans-latin-500-normal-Bf-nb4oT.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-500-normal-DYtqi0QS.woff)format("woff")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/plus-jakarta-sans-latin-600-normal-DLTa1BUW.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-600-normal-BR_Ojra4.woff)format("woff")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/plus-jakarta-sans-latin-700-normal-CfpNZvy6.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-700-normal-DqEcQeE5.woff)format("woff")}@font-face{font-family:Plus Jakarta Sans;font-style:italic;font-display:swap;font-weight:700;src:url(/assets/plus-jakarta-sans-latin-700-italic-B6fOe9QJ.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-700-italic-DarEIpt8.woff)format("woff")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/plus-jakarta-sans-latin-800-normal-CusIZhrK.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-800-normal-BRNHt2w0.woff)format("woff")}@font-face{font-family:Instrument Serif;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/instrument-serif-latin-400-italic-DKMiL14s.woff2)format("woff2"),url(/assets/instrument-serif-latin-400-italic-u__WvvIK.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff)format("woff")}:root{--indigo-50:#f8f7fe;--indigo-100:#f1effc;--indigo-200:#e5e2fa;--indigo-300:#cdc7f5;--indigo-400:#a89feb;--indigo-500:#7a6dd4;--indigo-600:#4f41a3;--indigo-700:#362a78;--indigo-800:#241a55;--indigo-900:#181037;--indigo-950:#0c0822;--cyan-50:#eefafe;--cyan-100:#dcf3fd;--cyan-200:#b7e7fc;--cyan-300:#7ad5f8;--cyan-400:#38c2f5;--cyan-500:#00aeef;--cyan-600:#008cc9;--cyan-700:#0074a8;--amber-50:#fff8e8;--amber-100:#fef0d3;--amber-300:#fdd07a;--amber-400:#fbb63f;--amber-500:#f59e0b;--amber-600:#cb7400;--amber-700:#a15b00;--ink-50:#f7f7fb;--ink-100:#f1f1f6;--ink-200:#e4e4ec;--ink-300:#cac9d6;--ink-400:#a7a5ba;--ink-500:#83809e;--ink-600:#605a82;--ink-700:#453d66;--ink-800:#2a2350;--ink-900:#181037;--font-ui:"Plus Jakarta Sans", system-ui, sans-serif;--font-editorial:"Instrument Serif", Georgia, serif;--font-mono:"JetBrains Mono", monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-heading:1.5rem;--color-text:var(--ink-900);--color-text-muted:var(--ink-600);--color-background:var(--ink-50);--color-surface:#fff;--color-border:var(--ink-200);--color-sidebar:var(--indigo-900);--color-sidebar-text:var(--indigo-200);--color-accent:var(--cyan-500);--color-focus:var(--cyan-700);--color-danger:#dc2626;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--radius-control:.5rem;--radius-card:1rem;--shadow-card:0 4px 24px #18103706;--shadow-menu:0 12px 32px #18103724;--header-height:4rem;--sidebar-width:13.75rem;font-family:var(--font-ui);color:var(--color-text);background:var(--color-background);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;line-height:1.5}*{box-sizing:border-box}body{min-width:320px;font-size:var(--text-base);margin:0}.dashboard-shell{font-size:var(--text-sm);--radius-card:.75rem}.dashboard-content h2{font-size:1.25rem}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit}a:focus-visible,button:focus-visible{outline:3px solid var(--color-focus);outline-offset:4px}.sidebar-nav a:focus-visible{outline-color:var(--color-accent)}[hidden]{display:none!important}.skip-link{top:var(--space-2);left:var(--space-2);z-index:10;padding:var(--space-3);border-radius:var(--radius-control);background:var(--color-surface);position:fixed;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.app-header{z-index:20;min-height:var(--header-height);border-bottom:1px solid var(--color-border);background:var(--color-surface);align-items:center;gap:20px;padding:12px 28px;display:flex;position:sticky;top:0}.app-header .brand,.portal-header .brand{letter-spacing:-.04em;white-space:nowrap;font-size:20px}.app-header__role{border:1px solid var(--color-border);background:var(--ink-50);min-height:26px;color:var(--color-text-muted);border-radius:6px;align-items:center;padding:4px 10px;font-size:10px;font-weight:600;display:inline-flex}.brand{letter-spacing:-.025em;font-size:1.375rem;font-weight:700;line-height:1.2;text-decoration:none}.brand__accent{color:var(--cyan-700)}.app-header__description{border-left:1px solid var(--color-border);color:var(--color-text-muted);font-size:var(--text-xs);padding-left:20px}.dashboard-body{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);min-height:calc(100dvh - var(--header-height));display:grid}.desktop-sidebar{top:var(--header-height);height:calc(100dvh - var(--header-height));background:var(--color-sidebar);flex-direction:column;align-self:start;gap:16px;min-height:0;padding:20px 12px 12px;display:flex;position:sticky}.staff-sidebar-navigation{scrollbar-width:thin;scrollbar-color:var(--indigo-600) transparent;flex:1;min-height:0;margin:-4px;padding:4px;overflow-y:auto}.desktop-sidebar .sidebar-heading{margin-bottom:0}.desktop-sidebar>.portal-account-control{flex-shrink:0}.dashboard-content [tabindex="-1"]{scroll-margin-top:calc(var(--header-height) + 24px)}.sidebar-heading{margin:0 var(--space-3) var(--space-5);color:var(--color-sidebar-text);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.14em;font-weight:600}.sidebar-nav ul{margin:0;padding:0;list-style:none}.sidebar-nav li+li{margin-top:4px}.sidebar-nav-group+.sidebar-nav-group{margin-top:22px}.sidebar-group-heading{color:var(--indigo-300);text-transform:uppercase;letter-spacing:.12em;margin:0 12px 8px;font-size:10px;font-weight:600}.nav-icon{color:var(--cyan-500);flex:0 0 18px}.nav-link{border-radius:var(--radius-control);min-height:40px;color:var(--color-sidebar-text);align-items:center;gap:10px;padding:10px 12px;font-size:12px;font-weight:500;text-decoration:none;display:flex}.nav-link:hover{background:var(--indigo-800);color:var(--color-surface)}.nav-link--active,.nav-link--active:hover{background:var(--indigo-800);color:var(--color-surface);box-shadow:inset 3px 0 0 var(--cyan-500);font-weight:600}.nav-link--active .nav-icon{color:var(--cyan-500)}.dashboard-content{min-width:0;padding:clamp(20px,3vw,36px)}.eyebrow{margin:0 0 var(--space-3);color:var(--cyan-700);text-transform:uppercase;letter-spacing:.08em;font-size:.6875rem;font-weight:600;line-height:1.2}h1{margin:0 0 var(--space-3);letter-spacing:-.015em;font-size:clamp(1.5rem,2.5vw,1.75rem);font-weight:600;line-height:1.3}h2{font-size:var(--text-heading);letter-spacing:-.02em;font-weight:600;line-height:1.25}.page-description{color:var(--color-text-muted);font-size:var(--text-sm);margin:0;line-height:1.5}.dashboard-introduction{margin-top:var(--space-6);padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card)}.dashboard-introduction h2{margin:0 0 var(--space-4)}.dashboard-introduction p{max-width:60ch;color:var(--color-text-muted);margin:0}.mobile-navigation{display:none}.menu-toggle,.menu-close{min-height:44px;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text);font-size:var(--text-xs);font-weight:600}.menu-toggle:hover,.menu-close:hover{background:var(--indigo-50)}.menu-close{margin-top:var(--space-4)}.not-found{width:min(640px,100% - 40px);padding:var(--space-8);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card);margin:15vh auto}.button-link{margin-top:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-control);background:var(--indigo-900);color:var(--color-surface);font-size:var(--text-sm);font-weight:600;text-decoration:none;display:inline-block}.button-link:hover{background:var(--indigo-800)}code,pre{font-family:var(--font-mono)}@media (width>=768px){.app-header{height:var(--header-height);padding-block:var(--space-2)}}@media (width<=767px){.app-header{height:var(--header-height);flex-wrap:nowrap;gap:12px;padding:12px 16px}.brand{font-size:1.25rem}.app-header__description,.app-header__role{display:none}.dashboard-body{grid-template-columns:minmax(0,1fr)}.desktop-sidebar{display:none}.mobile-navigation{margin-left:auto;display:block}.mobile-sidebar{z-index:2;padding:var(--space-5);background:var(--color-sidebar);box-shadow:var(--shadow-menu);max-height:calc(100dvh - var(--header-height));position:absolute;top:100%;left:0;right:0;overflow-y:auto}}.mobile-sidebar-footer{border-top:1px solid var(--indigo-700);justify-content:space-between;align-items:center;gap:12px;margin-top:20px;padding-top:16px;display:flex}.mobile-sidebar-footer .ui-button{min-height:36px;font-size:var(--text-xs)}.mobile-sidebar-footer .ui-button:first-child{color:#fda4af;border-color:var(--indigo-600);background:0 0}.app-header .menu-toggle{border-color:var(--color-border);place-items:center;width:40px;min-height:40px;padding:0;display:grid}.session-gate{place-content:center;min-height:100dvh;padding:24px;display:grid}.session-gate section{max-width:640px}.session-gate h1{font-size:clamp(1.5rem,4vw,2rem)}.session-actions{flex-wrap:wrap;gap:16px;margin-top:24px;display:flex}.app-header__actions{align-items:center;gap:12px;margin-left:auto;display:flex}@media (width<=767px){.app-header__actions{justify-content:flex-end;gap:8px;width:auto}}.lifecycle-guidance{border:1px solid var(--amber-300);border-inline-start:3px solid var(--amber-600);background:var(--amber-50);color:var(--ink-800);border-radius:.75rem;margin-block:1rem;padding:1rem;font-size:.8125rem;line-height:1.7}.lifecycle-guidance p{margin:.5rem 0}.lifecycle-guidance a{color:var(--cyan-700);text-underline-offset:.2em;text-decoration:underline}.lifecycle-guidance a[aria-disabled=true]{opacity:.6;cursor:default}.ui-button{justify-content:center;align-items:center;gap:var(--space-2);font-size:var(--text-sm);background:var(--indigo-900);color:var(--color-surface);border:1px solid #0000;border-radius:12px;padding:10px 20px;font-weight:500;line-height:1.4;display:inline-flex}.ui-button--sm{min-height:32px;font-size:var(--text-xs);border-radius:8px;padding:6px 14px}.ui-button--md{min-height:40px}.ui-button--lg{min-height:52px;font-size:var(--text-base);padding:14px 24px}.ui-button--accent{background:var(--cyan-500);color:var(--indigo-900)}.ui-button--secondary{background:var(--color-surface);color:var(--indigo-900);border-color:var(--indigo-900)}.ui-button--ghost{color:var(--indigo-900);background:0 0}.ui-button--warm{background:var(--amber-500);color:var(--indigo-900)}.ui-button--danger{background:var(--color-danger)}.ui-button:hover:not(:disabled){filter:brightness(.95)}.ui-button:disabled{opacity:.4;cursor:not-allowed}.ui-input{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);width:100%;min-height:48px;color:var(--color-text);font:inherit;font-size:var(--text-sm);padding:12px 14px}.ui-input::placeholder{color:var(--ink-400);opacity:1}.ui-input:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.ui-input[aria-invalid=true]{border-color:var(--color-danger)}.ui-input:disabled{opacity:.7;cursor:not-allowed}.dashboard-shell .ui-button{border-radius:var(--radius-control);font-weight:600}.dashboard-shell .ui-button--md{min-height:44px;padding:10px 16px}.dashboard-shell .ui-input{min-height:44px;padding:10px 12px}.dashboard-shell .ui-input::placeholder{color:var(--ink-600)}.auth-shell{background:var(--color-background);grid-template-rows:auto 1fr auto;min-height:100dvh;display:grid}.auth-header{justify-content:space-between;align-items:center;gap:var(--space-6);padding:0 40px;display:flex}.auth-brand{align-items:center;gap:var(--space-2);border:1px solid var(--color-border);border-radius:0 0 var(--radius-card) var(--radius-card);background:var(--color-surface);letter-spacing:-.04em;border-top:0;min-height:76px;padding:20px 24px;font-size:1.25rem;font-weight:800;text-decoration:none;display:inline-flex}.auth-brand svg{color:var(--cyan-500);flex-shrink:0}.auth-support{color:var(--color-text-muted);font-size:var(--text-xs);margin:0}.auth-support span{margin-right:var(--space-2)}.auth-main{place-items:center;padding:clamp(32px,5vh,64px) 24px;display:grid}.auth-panel{width:min(100%,440px)}.auth-panel .eyebrow{color:var(--cyan-500);letter-spacing:.12em;margin-bottom:24px;font-size:.625rem;font-weight:700}.auth-panel h1{letter-spacing:-.03em;margin-bottom:28px;font-size:clamp(1.75rem,3vw,2rem);font-weight:700;line-height:1.25}.auth-panel h1 em{color:var(--cyan-500)}.auth-description{color:var(--ink-500);font-size:var(--text-sm);margin:0 0 28px;line-height:1.5}.login-form{gap:24px;display:grid}.student-entry-actions{gap:var(--space-3);margin-top:var(--space-6);flex-wrap:wrap;display:flex}.auth-field{gap:8px;display:grid}.auth-field label{font-size:var(--text-xs);font-weight:600}.auth-field-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.auth-field-heading a,.auth-back-link{color:var(--cyan-500);font-size:var(--text-xs);font-weight:600;text-decoration:none}.auth-field-heading a:hover,.auth-back-link:hover{text-decoration:underline}.auth-input-wrapper{position:relative}.auth-input-wrapper input{padding-left:40px}.auth-input-icon{color:var(--color-text-muted);pointer-events:none;position:absolute;top:16px;left:14px}.auth-password-wrapper{position:relative}.auth-password-wrapper input{padding-right:52px}.auth-password-toggle{border-radius:var(--radius-control);width:44px;height:40px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.auth-password-toggle:hover:not(:disabled){color:var(--color-text);background:var(--ink-100)}.auth-password-toggle:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}.auth-password-toggle:disabled{opacity:.7;cursor:default}.auth-field input:focus-visible,.auth-remember input:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.auth-remember{min-height:24px;font-size:var(--text-xs);cursor:pointer;align-items:center;gap:10px;display:flex}.auth-remember input{width:18px;height:18px;accent-color:var(--indigo-900);margin:0}.auth-submit{width:100%;font-size:var(--text-sm)}.auth-submit:disabled{cursor:wait}.auth-field input:disabled{opacity:.7}.auth-error,.field-error{color:#ad2839;font-size:var(--text-xs);margin:0}.auth-error{background:#fff3f4;border:1px solid #ad28394d;border-radius:8px;padding:12px}.auth-divider{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted);align-items:center;gap:12px;margin:28px 24px 0;font-size:.625rem;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--color-border);flex:1;height:1px}.auth-footer{color:var(--color-text-muted);flex-wrap:wrap;justify-content:center;gap:24px;padding:24px;font-size:.625rem;display:flex}.auth-back-link{padding:12px 0;display:inline-block}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=600px){.auth-header{flex-wrap:wrap;gap:16px;padding:0 20px}.auth-brand{min-height:64px;padding:16px}.auth-support{width:100%;line-height:1.6}.auth-main{padding:40px 24px}.auth-footer{gap:12px}}.auth-panel--centered{text-align:center}.auth-success-mark{color:#059669;background:#10b9811a;border:1px solid #10b98166;border-radius:999px;place-content:center;min-width:64px;height:40px;margin-bottom:28px;font-size:24px;display:inline-grid}.auth-recovery-actions{gap:12px;display:grid}.auth-recovery-actions,.auth-panel>.auth-error{margin-bottom:20px}.auth-account-email{background:var(--ink-100);color:var(--ink-600);font-size:var(--text-xs);overflow-wrap:anywhere;border-radius:8px;margin:0 0 24px;padding:12px 14px}.auth-account-email strong{font-family:var(--font-mono);color:var(--ink-900);font-weight:400}.password-requirements{font-size:var(--text-xs);color:var(--ink-600);margin-top:12px}.password-requirements progress{width:100%;height:6px;accent-color:var(--cyan-500);background:var(--ink-200);border:0}.password-requirements progress::-webkit-progress-bar{background:var(--ink-200);border-radius:4px}.password-requirements progress::-webkit-progress-value{background:var(--cyan-500);border-radius:4px}.password-requirements progress::-moz-progress-bar{background:var(--cyan-500);border-radius:4px}.password-requirements ul{gap:8px;margin:16px 0 0;padding:0;list-style:none;display:grid}.password-requirements [data-met=true]{color:var(--ink-900)}.password-requirements [data-met=true]>span:first-child{color:#059669}.dashboard-content .students-page{max-width:1200px}.dashboard-content .student-profile-page{width:100%;max-width:none}.student-profile-page .student-back{min-height:36px;font-size:var(--text-xs);margin-bottom:20px;padding-block:6px;text-decoration:none}.student-profile-page .student-back:hover{text-underline-offset:3px;text-decoration:underline}.student-profile-subtitle{color:var(--color-text-muted);font-size:var(--text-xs);flex-wrap:wrap;align-items:center;gap:12px 20px;margin:0;display:flex}.student-profile-actions{flex-wrap:wrap;align-items:center;gap:12px;margin:24px 0;display:flex}.student-profile-actions .button-link{font-size:var(--text-xs);min-height:36px;margin:0;padding:8px 12px}.student-profile-actions .ui-button{min-height:36px;font-size:var(--text-xs);margin:0}.student-profile-actions .ui-button--danger{color:#b91c1c;background:var(--color-surface);border-color:#fecaca}.student-profile-layout{grid-template-columns:minmax(0,1fr) minmax(0,2fr);align-items:start;gap:20px;display:grid}.student-profile-photo{grid-area:1/1}.student-profile-qr{grid-area:2/1}.student-profile-info{grid-area:1/2/span 2}.student-profile-info,.student-profile-tools{gap:20px;min-width:0;display:grid}.student-profile-layout .student-card{margin:0}.student-profile-page .student-card{padding:24px}.student-profile-page .student-card h2{margin:0 0 20px;font-size:1.25rem}.student-profile-info .student-details{gap:20px;margin:0}.student-profile-info .student-details>div{border-bottom:1px solid var(--color-border);min-width:0;padding-bottom:16px}.student-profile-info .student-details dt{font-size:var(--text-xs)}.student-profile-info .student-details dd{font-size:var(--text-sm);font-weight:500}.student-profile-info .student-guardian+.student-guardian{margin-top:20px;padding-top:20px}.student-profile-tools .student-photo-content{flex-direction:column;align-items:flex-start}.student-profile-tools .student-photo-controls{width:100%}.student-profile-tools .student-form-help{font-size:var(--text-xs);margin:0 0 20px;line-height:1.6}.student-photo-controls input[type=file]{border:1px dashed var(--ink-300);background:var(--ink-50);width:100%;min-height:44px;font-size:var(--text-xs);border-radius:8px;padding:6px}.student-photo-controls input::file-selector-button{border:1px solid var(--color-border);font:inherit;color:var(--color-text);background:var(--color-surface);cursor:pointer;border-radius:6px;margin-right:10px;padding:7px 10px;font-weight:600}.student-photo-controls input:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.student-profile-tools .student-photo-placeholder{align-content:center;gap:12px}.student-profile-tools .ui-button--secondary{border-color:var(--color-border)}@media (width<=1000px){.student-profile-layout{grid-template-columns:minmax(0,1fr)}.student-profile-layout>div{grid-area:auto}}@media (width<=600px){.student-profile-page .student-card{padding:16px}}.dashboard-content .student-directory-page{width:100%;min-width:0;max-width:none}.student-directory-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;display:flex}.student-directory-actions{flex-wrap:wrap;gap:12px;display:flex}.student-directory-actions .button-link{min-height:36px;font-size:var(--text-xs);border:1px solid var(--indigo-900);margin:0;padding:8px 12px}.student-directory-actions .student-import-link{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.student-directory-actions .student-import-link:hover{background:var(--ink-100)}.student-directory-panel{border:1px solid var(--color-border);background:var(--color-surface);border-radius:16px;padding:24px}.student-directory-panel .student-filters{border:0;border-bottom:1px solid var(--color-border);border-radius:0;margin:0 0 24px;padding:0 0 20px}.student-directory-identity{align-items:center;gap:12px;min-width:180px;display:flex}.student-directory-avatar{background:var(--indigo-100);height:36px;color:var(--indigo-700);font-size:var(--text-xs);border-radius:50%;flex:0 0 36px;place-items:center;font-weight:700;display:grid}.student-table .student-view-link{border:1px solid var(--color-border);border-radius:var(--radius-control);min-height:36px;font-size:var(--text-xs);white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:6px 12px;text-decoration:none;display:inline-flex}.student-table .student-view-link:hover{background:var(--cyan-100)}.student-table .student-badge{border-radius:6px;align-items:center;gap:6px;padding:4px 8px;display:inline-flex}.student-table .student-badge--active{color:#166534;background:#ecfdf3}.student-status-dot{background:currentColor;border-radius:50%;width:6px;height:6px}.student-directory-panel .student-pagination{font-size:var(--text-xs);flex-wrap:wrap;margin-top:24px}.student-directory-panel .student-pagination p{margin:0}@media (width<=600px){.student-directory-panel{padding:16px}}.student-filters{align-items:end;gap:var(--space-4);margin:var(--space-6) 0;padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);flex-wrap:wrap;display:flex}.student-filters>div{flex:170px;min-width:0}.student-filters>div:first-child{flex-grow:1.5}.student-filters label{margin-bottom:var(--space-2);font-size:var(--text-sm);font-weight:600;display:block}.student-filters .ui-input{width:100%}.student-table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);overflow-x:auto}.student-table-wrap:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.student-table{border-collapse:collapse;width:100%;font-size:var(--text-sm);text-align:left;min-width:720px}.student-table caption{padding:var(--space-4);text-align:left;color:var(--color-text-muted);font-size:var(--text-xs);font-weight:600}.student-table th,.student-table td{padding:var(--space-4);border-top:1px solid var(--color-border);vertical-align:middle}.student-table thead{background:var(--ink-50);color:var(--ink-600);font-size:var(--text-xs)}.student-table tbody th{font-weight:600}.student-table tbody tr:hover{background:var(--cyan-50)}.student-table a,.student-back{color:var(--cyan-700);font-weight:600}.student-id{font-family:var(--font-mono);font-size:var(--text-xs)}.student-badge{padding:var(--space-1) var(--space-3);background:var(--ink-100);color:var(--ink-700);font-size:var(--text-xs);border-radius:99px;font-weight:600;display:inline-block}.student-badge--active{background:var(--cyan-50);color:var(--cyan-700)}.student-pagination{justify-content:flex-end;align-items:center;gap:var(--space-4);margin-top:var(--space-6);display:flex}.student-state,.student-card{margin-top:var(--space-6);padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface)}.student-state [role=alert]{color:var(--color-danger)}.student-back{margin-bottom:var(--space-6);display:inline-block}.student-card h2{margin-top:0}.student-details{gap:var(--space-6);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.student-details dt{font-size:var(--text-sm);color:var(--color-text-muted)}.student-details dd{margin:var(--space-2) 0 0;overflow-wrap:anywhere}.student-guardian+.student-guardian{border-top:1px solid var(--color-border);padding-top:var(--space-6)}.student-profile-form{gap:var(--space-6);display:grid}.dashboard-content .student-editor-page{width:100%;min-width:0;max-width:none}.student-editor-back{min-height:36px;color:var(--cyan-700);font-size:var(--text-xs);align-items:center;gap:8px;margin-bottom:20px;font-weight:600;text-decoration:none;display:inline-flex}.student-editor-back:hover{text-underline-offset:3px;text-decoration:underline}.student-editor-form{gap:28px;padding:24px}.student-registration-mode{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);flex-wrap:wrap;align-items:center;gap:16px;margin:24px 0;padding:20px;display:flex}.student-registration-mode>div{flex:240px}.student-registration-mode strong{font-size:var(--text-sm)}.student-registration-mode p{color:var(--color-text-muted);font-size:var(--text-xs);margin:6px 0 0;line-height:1.6}.student-registration-mode>a{border:1px solid var(--color-border);border-radius:var(--radius-control);min-height:40px;color:var(--cyan-700);font-size:var(--text-xs);align-items:center;padding:10px 14px;font-weight:600;text-decoration:none;display:inline-flex}.student-registration-mode>a:hover{background:var(--cyan-50);border-color:var(--cyan-700)}.student-registration-mode-icon,.student-form-section-icon{background:var(--cyan-50);width:36px;height:36px;color:var(--cyan-700);border-radius:10px;flex-shrink:0;place-items:center;display:inline-grid}.student-form-section-icon{vertical-align:middle;margin-right:12px}.student-editor-form fieldset>.student-form-field{margin-bottom:24px}.student-editor-form .student-invitation-note{border-left:3px solid var(--cyan-700);background:var(--cyan-50);border-radius:0 8px 8px 0;margin-bottom:24px;padding:14px 16px}.student-registration-footer-note{color:var(--color-text-muted);font-size:var(--text-xs);flex:240px;align-self:center;margin:0;line-height:1.7}.student-profile-form.student-editor-form legend{margin-bottom:20px;font-size:1.25rem}.student-editor-form fieldset+fieldset{border-top:1px solid var(--color-border);padding-top:24px}.student-editor-form .student-form-grid{gap:20px 24px}.student-editor-form .student-form-field{align-content:start}.student-editor-form .student-form-field label{font-size:var(--text-xs);font-weight:500}.student-editor-form .ui-input{min-height:44px;font-size:var(--text-sm);border-radius:8px;padding:10px 12px}.student-editor-form .student-form-help{font-size:var(--text-xs);line-height:1.7}.student-editor-form .student-login-note{border:1px solid var(--color-border);background:var(--ink-50);border-radius:8px;margin-bottom:24px;padding:12px 16px}.student-editor-form .student-form-guardian{border:1px solid var(--color-border);background:var(--ink-50);border-radius:12px;margin-bottom:16px;padding:20px}.student-editor-form .student-form-guardian h3{font-size:var(--text-sm);margin-bottom:20px}.student-editor-form .student-form-guardian>.ui-button{margin-top:16px}.student-editor-form .ui-button{min-height:36px}.student-editor-form .ui-button--secondary{border-color:var(--color-border)}.student-editor-form .student-remove-guardian:not(:disabled){color:#b91c1c;border-color:#fecaca}.student-editor-form .ui-button:disabled{opacity:1;background:var(--ink-100);color:var(--ink-600);border-color:var(--color-border)}.student-editor-form .student-editor-footer{border-top:1px solid var(--color-border);justify-content:flex-end;padding-top:20px}@media (width<=600px){.student-editor-form,.student-editor-form .student-form-guardian{padding:16px}}.student-profile-form fieldset{border:0;min-width:0;margin:0;padding:0}.student-profile-form legend{font-size:var(--text-heading);margin-bottom:var(--space-4);padding:0;font-weight:600}.student-form-grid{gap:var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.student-form-field{gap:var(--space-2);display:grid}.student-form-field label{font-weight:600}.student-form-help{color:var(--color-text-muted);margin:0 0 var(--space-4);overflow-wrap:anywhere}.student-form-guardian{border-top:1px solid var(--color-border);margin-bottom:var(--space-4);padding-top:var(--space-4)}.student-form-guardian h3{margin:0 0 var(--space-4);font-size:var(--text-sm)}.student-form-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.student-discard{max-width:min(480px,100% - 32px);padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-card);color:var(--color-text);background:var(--color-surface);font:inherit}.student-discard::backdrop{background:#18103780}.student-archive-trigger{margin:var(--space-4) 0 0 var(--space-3)}.student-archive-dialog{max-width:min(560px,100% - 32px)}.student-archive-dialog [role=alert]{color:var(--color-danger)}.student-archive-dialog .student-form-actions{margin-top:var(--space-5)}@media (width<=767px){.student-photo-content{flex-direction:column}.student-form-grid,.student-details{grid-template-columns:minmax(0,1fr)}.student-filters>div{flex-basis:100%}}.student-photo-content{align-items:flex-start;gap:var(--space-5);flex-wrap:wrap;display:flex}.student-photo-image,.student-photo-placeholder{border-radius:var(--radius-card);border:1px solid var(--color-border);object-fit:cover;width:128px;height:128px}.student-photo-placeholder{padding:var(--space-3);background:var(--ink-100);color:var(--color-text-muted);font-size:var(--text-sm);text-align:center;place-items:center;display:grid}.student-photo-controls{gap:var(--space-4);min-width:0;max-width:100%;display:grid}.student-photo-controls input{max-width:100%;font:inherit}.student-photo [role=alert]{color:var(--color-danger)}.student-import-columns{overflow-wrap:anywhere;margin-bottom:var(--space-4);font-size:var(--text-sm);display:block}.student-directory-tabs{flex-wrap:wrap;gap:.625rem;margin-block:1.25rem;display:flex}.student-restored-notice{color:#166534;background:#effaf3;border:1px solid #bbf7d0;border-radius:.75rem;padding:.875rem 1rem;font-size:.875rem}.student-restore-dialog p{font-size:.875rem;line-height:1.7}.student-import-file,.student-import-confirm,.student-import-table{margin-top:var(--space-5)}.student-import-file input{max-width:100%;font:inherit}.student-import-confirm{align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.student-import [role=alert]{color:var(--color-danger)}.student-qr-result{justify-items:start;gap:var(--space-4);margin-top:var(--space-5);display:grid}.student-qr-image{aspect-ratio:1;border:1px solid var(--color-border);background:#fff;width:320px;max-width:100%;height:auto;display:block}.student-qr [role=alert]{color:var(--color-danger)}.student-qr-result a[hidden]{display:none}.allocation-dialog{border:1px solid var(--color-border);border-radius:16px;width:min(720px,100% - 32px);max-width:720px;max-height:calc(100dvh - 32px);padding:24px;overflow-y:auto;box-shadow:0 24px 64px #18103733}.allocation-dialog::backdrop{background:#18103780}.allocation-dialog-heading{align-items:flex-start;gap:14px;margin-bottom:16px;display:flex}.allocation-heading-icon{background:var(--cyan-50);width:44px;height:44px;color:var(--cyan-700);border-radius:12px;flex:0 0 44px;place-items:center;display:grid}.allocation-heading-icon .nav-icon{width:24px;height:24px;color:inherit}.allocation-dialog .allocation-eyebrow{color:var(--cyan-700);letter-spacing:.1em;text-transform:uppercase;margin:0 0 6px;font-size:10px;font-weight:600}.allocation-dialog h2{letter-spacing:-.025em;margin:0;font-size:20px;line-height:1.5}.allocation-guidance{color:var(--color-text-muted);font-size:var(--text-xs);margin:0 0 24px;line-height:1.7}.allocation-current{border:1px solid var(--color-border);background:var(--ink-50);font-size:var(--text-xs);border-radius:8px;padding:12px 16px}.allocation-picker{border:0;min-width:0;margin:0;padding:0}.allocation-picker-container{border:1px solid var(--color-border);background:var(--ink-50);border-radius:12px;padding:20px}.allocation-picker legend{font-weight:600;font-size:var(--text-sm);margin-bottom:16px;padding:0}.allocation-steps{border-bottom:1px solid var(--color-border);gap:12px;margin:0 0 16px;padding:0 0 16px;list-style:none;display:flex}.allocation-steps li{color:var(--color-text-muted);font-size:var(--text-xs);flex:1;align-items:center;gap:8px;display:flex}.allocation-steps li>span{background:var(--ink-200);border-radius:50%;place-items:center;width:24px;height:24px;font-size:11px;display:grid}.allocation-steps li[aria-current=step]{color:var(--cyan-700);font-weight:600}.allocation-steps li[aria-current=step]>span{background:var(--cyan-700);color:#fff}.allocation-steps .allocation-step--complete>span{background:var(--cyan-100);color:var(--cyan-700)}.allocation-location{font-size:var(--text-xs);overflow-wrap:anywhere;margin:0 0 16px;font-weight:600}.allocation-change-actions{margin-bottom:12px}.allocation-change-actions:empty{display:none}.allocation-dialog .ui-button{min-height:36px;font-size:var(--text-xs);border-radius:8px}.allocation-dialog .ui-button--secondary{border-color:var(--color-border)}.allocation-dialog .ui-button:disabled{background:var(--ink-100);border-color:var(--ink-300);color:var(--ink-600);opacity:1}.allocation-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0;padding:0;list-style:none;display:grid}.allocation-options li{overflow-wrap:anywhere;align-content:start;gap:6px;min-width:0;display:grid}.allocation-options .ui-button{white-space:normal;text-align:left;background:var(--color-surface);justify-content:flex-start;align-items:center;gap:10px;width:100%;min-height:52px;padding:12px;display:flex}.allocation-options .ui-button>span:not(.allocation-option-end){overflow-wrap:anywhere;min-width:0}.allocation-options .nav-icon{color:var(--cyan-700)}.allocation-option-end{color:var(--cyan-700);margin-left:auto}.allocation-options .ui-button:hover{border-color:var(--cyan-700);background:var(--cyan-50)}.allocation-options .ui-button[aria-pressed=true]{border-color:var(--cyan-700);background:var(--cyan-50);color:var(--cyan-700);box-shadow:inset 0 0 0 1px var(--cyan-700)}.allocation-options .allocation-option-reference{text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-muted);padding:0 4px;font-size:10px;overflow:hidden}.allocation-dialog .student-pagination{border-top:1px solid var(--color-border);font-size:var(--text-xs);justify-content:flex-end;gap:8px;margin:20px 0 0;padding-top:16px}.allocation-selection{background:var(--cyan-50);border:1px solid var(--cyan-200);font-size:var(--text-xs);border-radius:10px;margin:20px 0 0;padding:16px;line-height:1.8}.allocation-dialog-footer{border-top:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:24px;padding-top:20px;display:flex}.allocation-footer-hint{color:var(--color-text-muted);font-size:var(--text-xs)}.allocation-footer-actions{gap:8px;margin-left:auto;display:flex}@media (width<=600px){.allocation-dialog{padding:16px}.allocation-dialog h2{font-size:18px}.allocation-picker-container{padding:16px}.allocation-options{grid-template-columns:minmax(0,1fr)}.allocation-dialog .student-pagination{justify-content:center}.allocation-dialog .student-pagination .ui-button{white-space:normal}}.allocation-dialog .student-id{overflow-wrap:anywhere}.student-accommodation [role=alert],.allocation-dialog [role=alert]{color:var(--color-danger)}.attendance-sections{gap:var(--space-5);margin-top:var(--space-5);display:grid}.attendance-presence--in{background:var(--cyan-50);color:var(--cyan-700)}.attendance-presence--out{background:var(--amber-50);color:var(--ink-800)}.attendance-reference{font-size:var(--text-xs);min-width:200px}.attendance-reference dd{margin:var(--space-1) 0 var(--space-3);font-family:var(--font-mono);overflow-wrap:anywhere}.student-attendance [role=alert]{color:var(--color-danger)}.student-attendance .student-pagination{flex-wrap:wrap;justify-content:flex-start}.inventory-page{width:100%;min-width:0}.inventory-panel{border:1px solid var(--color-border);background:var(--color-surface);border-radius:16px;margin-top:24px;padding:24px}.inventory-page h2,.inventory-dialog h2{font-size:var(--text-lg)}.inventory-actions,.inventory-toolbar,.inventory-pagination{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.inventory-toolbar{margin:20px 0}.inventory-toolbar h2{margin-block:0;margin-right:auto}.inventory-toolbar>.ui-button,.inventory-page td .ui-button{min-height:36px}.inventory-page .ui-button--secondary{border-color:var(--color-border)}.inventory-hierarchy{border-bottom:1px solid var(--color-border);gap:8px;padding-bottom:16px}.inventory-hierarchy .ui-button{min-height:36px;font-size:var(--text-xs)}.inventory-hierarchy [aria-current=page]{color:var(--cyan-700);background:var(--cyan-50)}.inventory-hierarchy>span{font-size:var(--text-xs);color:var(--color-text-muted)}.inventory-identity{align-items:center;gap:12px;display:flex}.inventory-row-icon{color:var(--cyan-700);background:var(--cyan-100);border-radius:10px;flex:0 0 36px;padding:7px}.inventory-available-count{background:var(--cyan-50);min-width:32px;color:var(--cyan-700);font-size:var(--text-xs);border-radius:6px;justify-content:center;padding:4px 8px;font-weight:600;display:inline-flex}.inventory-toolbar label{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.inventory-parent{color:var(--color-text-muted);font-size:var(--text-xs);overflow-wrap:anywhere}.inventory-table-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);overflow-x:auto}.inventory-table-wrap:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.inventory-page table{border-collapse:collapse;text-align:left;width:100%;font-size:var(--text-sm);font-variant-numeric:tabular-nums;min-width:680px}.inventory-page caption{text-align:left;padding:var(--space-4);color:var(--color-text-muted);font-size:var(--text-xs);font-weight:600}.inventory-page th,.inventory-page td{padding:var(--space-4);vertical-align:middle;border-top:1px solid var(--color-border);overflow-wrap:anywhere}.inventory-page thead{background:var(--ink-50);font-size:var(--text-xs);color:var(--ink-600)}.inventory-page tbody th{min-width:8rem;max-width:20rem}.inventory-page tbody tr:hover{background:var(--cyan-50)}.inventory-badge{white-space:nowrap;padding:var(--space-1) var(--space-2);border-radius:var(--radius-control);background:var(--amber-100);color:var(--ink-900);font-size:var(--text-xs);font-weight:600;display:inline-block}.inventory-badge--available{color:#166534;background:#ecfdf3}.inventory-pagination{font-size:var(--text-xs);justify-content:flex-end;margin:24px 0 0}.inventory-empty{padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface)}.inventory-dialog{width:min(32rem,100% - 2rem);max-height:calc(100dvh - 2rem);padding:var(--space-6);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);font-family:var(--font-ui);font-size:var(--text-sm);overflow-y:auto}.inventory-dialog::backdrop{background:#18103766}.inventory-editor-heading{border-bottom:1px solid var(--color-border);align-items:center;gap:14px;padding-bottom:20px;display:flex}.inventory-editor-icon{width:44px;height:44px;color:var(--cyan-700);background:var(--cyan-50);border-radius:12px;flex-shrink:0;place-items:center;display:grid}.inventory-editor-heading .eyebrow{margin:0 0 6px;font-size:10px}.inventory-dialog .inventory-editor-heading h2{margin:0;font-size:1.25rem}.inventory-editor-description{color:var(--color-text-muted);font-size:var(--text-xs);margin:20px 0}.inventory-dialog #inventory-label-help{color:var(--color-text-muted);font-size:var(--text-xs);margin:10px 0 0}.inventory-dialog #inventory-editor-error:empty{display:none}.inventory-editor-footer{border-top:1px solid var(--color-border);justify-content:flex-end;margin-top:24px;padding-top:20px}.inventory-dialog .ui-button--secondary{border-color:var(--color-border)}.inventory-dialog .ui-input{width:100%;margin-top:var(--space-2);display:block}.inventory-dialog label{font-weight:600}.inventory-dialog p{line-height:1.6}.inventory-dialog [role=alert]{color:var(--color-danger)}.inventory-warning{padding:var(--space-3);margin:var(--space-4) 0;background:var(--amber-50);border:1px solid var(--amber-300);border-radius:var(--radius-control)}.inventory-warning a{color:var(--cyan-700)}@media (width<=600px){.inventory-panel{padding:16px}.inventory-toolbar>.ui-button{flex:auto}.inventory-dialog{padding:var(--space-4)}}.leave-page{width:100%;min-width:0}.leave-directory-panel{border:1px solid var(--color-border);background:var(--color-surface);border-radius:16px;margin-top:24px;padding:24px}.leave-directory-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.leave-directory-toolbar h2{margin:0 0 6px;font-size:1.25rem}.leave-directory-toolbar p{font-size:var(--text-xs);color:var(--color-text-muted);margin:0}.leave-page .ui-button{min-height:36px}.leave-page .ui-button--secondary{border-color:var(--color-border)}.leave-student-identity{align-items:center;gap:12px;display:flex}.leave-student-icon{color:var(--indigo-700);background:var(--indigo-100);border-radius:50%;flex:0 0 36px;padding:8px}.leave-reference-text{white-space:nowrap;text-overflow:ellipsis;max-width:15rem;font-family:var(--font-mono);display:block;overflow:hidden}.leave-student-identity a{text-decoration:none}.leave-student-identity a:hover{text-underline-offset:3px;text-decoration:underline}.leave-date-compact{white-space:nowrap;gap:4px;display:grid}.leave-date-compact>span:first-child{font-weight:500}.leave-date-compact>span:last-child{color:var(--color-text-muted);font-size:var(--text-xs)}.leave-page .leave-view-link{border:1px solid var(--color-border);border-radius:var(--radius-control);min-height:36px;font-size:var(--text-xs);white-space:nowrap;align-items:center;gap:6px;padding:6px 12px;text-decoration:none;display:inline-flex}.leave-view-link:hover{background:var(--cyan-100)}.leave-page .leave-back{min-height:36px;font-size:var(--text-xs);align-items:center;gap:8px;margin-bottom:20px;padding:6px 0;text-decoration:none;display:inline-flex}.leave-back:hover{text-underline-offset:3px;text-decoration:underline}.leave-detail-toolbar{margin:20px 0 0;padding:16px 0}.leave-detail-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:start;gap:20px;display:grid}.leave-detail-grid .leave-card{min-width:0;margin:0;padding:24px}.leave-detail-grid h2{margin:0 0 20px;font-size:1.25rem}.leave-period{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0;display:grid}.leave-period>div{border:1px solid var(--color-border);background:var(--ink-50);border-radius:12px;min-width:0;padding:16px}.leave-period dt{font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:12px}.leave-period dd{margin:0}.leave-period .leave-date-compact{white-space:normal}.leave-period .leave-date-compact>span:first-child{font-size:var(--text-lg);font-weight:600}.leave-submitted,.leave-detail-caption{color:var(--color-text-muted);font-size:var(--text-xs);line-height:1.7}.leave-submitted{margin:16px 0 24px}.leave-reason{border-block:1px solid var(--color-border);padding:20px 0}.leave-reason h3{margin:0 0 12px}.leave-reason p{line-height:1.7;font-size:var(--text-sm);margin:0}.leave-reference-panel{color:var(--color-text-muted);font-size:var(--text-xs);margin-top:20px}.leave-reference-panel summary{cursor:pointer;width:fit-content}.leave-reference-panel summary:focus-visible{outline:3px solid var(--color-focus);outline-offset:4px}.leave-reference-panel .leave-id{font-family:var(--font-mono)}.leave-decision-card>p{color:var(--color-text-muted);font-size:var(--text-sm);line-height:1.7}.leave-decision-card .leave-details{background:0 0;border:0;grid-template-columns:minmax(0,1fr);gap:6px;margin:0;padding:0}.leave-decision-card .leave-details dd{margin-bottom:16px}.leave-decision-card .leave-details dd:last-child{margin-bottom:0}.leave-decision-card .leave-actions{border-top:1px solid var(--color-border);margin-top:20px;padding-top:16px}@media (width<=1000px){.leave-detail-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=600px){.leave-detail-grid .leave-card{padding:16px}.leave-period{grid-template-columns:minmax(0,1fr)}}.leave-page h2,.leave-dialog h2{font-size:var(--text-lg)}.leave-page h3,.leave-dialog h3{font-size:var(--text-base)}.leave-filters,.leave-toolbar,.leave-actions,.leave-pagination{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.leave-filters{padding:var(--space-5);margin:var(--space-5) 0;background:var(--ink-50);border:1px solid var(--color-border);border-radius:var(--radius-card);align-items:end}.leave-filters>div{flex:180px;min-width:0}.leave-filters>.leave-filter-actions{flex-wrap:wrap;flex:0 auto;gap:8px;display:flex}.leave-filters .ui-button{min-height:40px}.leave-directory-panel .leave-filters label{font-size:var(--text-xs);font-weight:500}.leave-filters label,.leave-dialog label{margin-bottom:var(--space-2);font-weight:600;font-size:var(--text-sm);display:block}.leave-filters .ui-input{width:100%}.leave-table-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);overflow-x:auto}.leave-table-wrap:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.leave-page table{border-collapse:collapse;text-align:left;width:100%;font-size:var(--text-sm);min-width:760px}.leave-page caption{padding:var(--space-4);text-align:left;color:var(--color-text-muted);font-size:var(--text-xs);font-weight:600}.leave-page td,.leave-page th{padding:var(--space-4);vertical-align:middle;border-top:1px solid var(--color-border)}.leave-page thead{background:var(--ink-50);color:var(--ink-600);font-size:var(--text-xs)}.leave-page tbody th{font-weight:500}.leave-page tbody tr:hover{background:var(--cyan-50)}.leave-page a{color:var(--cyan-700);font-weight:600}.leave-id{overflow-wrap:anywhere;font-size:var(--text-xs)}.leave-badge{white-space:nowrap;padding:var(--space-1) var(--space-2);text-transform:capitalize;font-size:var(--text-xs);background:var(--ink-100);color:var(--color-text-muted);border-radius:6px;align-items:center;gap:6px;font-weight:600;display:inline-flex}.leave-badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.leave-badge--pending{background:var(--amber-100);color:var(--amber-700)}.leave-badge--approved{color:#166534;background:#ecfdf3}.leave-badge--rejected{color:#b91c1c;background:#fff1f2}.leave-pagination{font-size:var(--text-xs);justify-content:flex-end;margin:24px 0 0}.leave-toolbar{margin:var(--space-5) 0;justify-content:space-between}.leave-card,.leave-state{padding:var(--space-5);margin:var(--space-4) 0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card)}.leave-details{gap:var(--space-3) var(--space-5);font-size:var(--text-sm);background:var(--ink-50);border:1px solid var(--color-border);border-radius:12px;grid-template-columns:minmax(130px,1fr) minmax(0,3fr);padding:16px;display:grid}.leave-details dt{color:var(--color-text-muted)}.leave-details dd{overflow-wrap:anywhere;margin:0}.leave-prose{white-space:pre-wrap;overflow-wrap:anywhere}.leave-dialog{width:min(38rem,100% - 2rem);max-height:calc(100dvh - 2rem);padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-card);color:var(--color-text);background:var(--color-surface);font-family:var(--font-ui);font-size:var(--text-sm);overflow-y:auto}.leave-dialog::backdrop{background:#18103766}.leave-dialog textarea{resize:vertical;width:100%}.leave-dialog p{line-height:1.6}.leave-dialog [role=alert]{color:var(--color-danger)}.leave-confirm{padding:var(--space-4);margin:var(--space-4) 0;background:var(--amber-50);border:1px solid var(--amber-300);border-radius:var(--radius-control)}.leave-dialog .leave-actions{margin-top:var(--space-4)}@media (width<=600px){.leave-directory-panel{padding:16px}.leave-details{gap:var(--space-2);grid-template-columns:1fr}.leave-details dd{margin-bottom:var(--space-3)}.leave-dialog{padding:var(--space-4)}}.late-access-page{width:100%;min-width:0}.late-access-directory-panel{border:1px solid var(--color-border);background:var(--color-surface);border-radius:16px;margin-top:24px;padding:24px}.late-access-directory-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.late-access-directory-toolbar h2{margin:0 0 6px;font-size:1.25rem}.late-access-directory-toolbar p{font-size:var(--text-xs);color:var(--color-text-muted);margin:0}.late-access-page .ui-button{min-height:36px}.late-access-page .ui-button--secondary{border-color:var(--color-border)}.late-access-student-identity{align-items:center;gap:12px;display:flex}.late-access-student-icon{color:var(--indigo-700);background:var(--indigo-100);border-radius:50%;flex:0 0 36px;padding:8px}.late-access-reference-text{white-space:nowrap;text-overflow:ellipsis;max-width:15rem;font-family:var(--font-mono);display:block;overflow:hidden}.late-access-student-identity a{text-decoration:none}.late-access-student-identity a:hover{text-underline-offset:3px;text-decoration:underline}.late-access-date-compact{white-space:nowrap;gap:4px;display:grid}.late-access-date-compact>span:first-child{font-weight:500}.late-access-date-compact>span:last-child{color:var(--color-text-muted);font-size:var(--text-xs)}.late-access-page .late-access-view-link{border:1px solid var(--color-border);border-radius:var(--radius-control);min-height:36px;font-size:var(--text-xs);white-space:nowrap;align-items:center;gap:6px;padding:6px 12px;text-decoration:none;display:inline-flex}.late-access-view-link:hover{background:var(--cyan-100)}.late-access-page h2,.late-access-dialog h2{font-size:var(--text-lg)}.late-access-page h3,.late-access-dialog h3{font-size:var(--text-base)}.late-access-filters,.late-access-toolbar,.late-access-actions,.late-access-pagination{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.late-access-filters{padding:var(--space-5);margin:var(--space-5) 0;background:var(--ink-50);border:1px solid var(--color-border);border-radius:var(--radius-card);align-items:end}.late-access-filters>div{flex:180px;min-width:0}.late-access-filters>.late-access-filter-actions{flex-wrap:wrap;flex:0 auto;gap:8px;display:flex}.late-access-filters .ui-button{min-height:40px}.late-access-directory-panel .late-access-filters label{font-size:var(--text-xs);font-weight:500}.late-access-filters label,.late-access-dialog label{margin-bottom:var(--space-2);font-weight:600;font-size:var(--text-sm);display:block}.late-access-filters .ui-input{width:100%}.late-access-table-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);overflow-x:auto}.late-access-table-wrap:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.late-access-page table{border-collapse:collapse;text-align:left;width:100%;font-size:var(--text-sm);min-width:760px}.late-access-page caption{padding:var(--space-4);text-align:left;color:var(--color-text-muted);font-size:var(--text-xs);font-weight:600}.late-access-page td,.late-access-page th{padding:var(--space-4);vertical-align:middle;border-top:1px solid var(--color-border)}.late-access-page thead{background:var(--ink-50);color:var(--ink-600);font-size:var(--text-xs)}.late-access-page tbody th{font-weight:500}.late-access-page tbody tr:hover{background:var(--cyan-50)}.late-access-page a{color:var(--cyan-700);font-weight:600}.late-access-id{overflow-wrap:anywhere;font-size:var(--text-xs)}.late-access-badge{white-space:nowrap;padding:var(--space-1) var(--space-2);text-transform:capitalize;font-size:var(--text-xs);background:var(--ink-100);color:var(--color-text-muted);border-radius:6px;align-items:center;gap:6px;font-weight:600;display:inline-flex}.late-access-badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.late-access-badge--pending{background:var(--amber-100);color:var(--amber-700)}.late-access-badge--approved{color:#166534;background:#ecfdf3}.late-access-badge--rejected{color:#b91c1c;background:#fff1f2}.late-access-badge--cancelled{background:var(--ink-50);color:var(--color-text-muted)}.late-access-pagination{font-size:var(--text-xs);justify-content:flex-end;margin:24px 0 0}.late-access-toolbar{margin:var(--space-5) 0;justify-content:space-between}.late-access-card,.late-access-state{padding:var(--space-5);margin:var(--space-4) 0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card)}.late-access-details{gap:var(--space-3) var(--space-5);font-size:var(--text-sm);grid-template-columns:minmax(130px,1fr) minmax(0,3fr);display:grid}.late-access-details dt{color:var(--color-text-muted)}.late-access-details dd{overflow-wrap:anywhere;margin:0}.late-access-prose{white-space:pre-wrap;overflow-wrap:anywhere}.late-access-dialog{width:min(38rem,100% - 2rem);max-height:calc(100dvh - 2rem);padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-card);color:var(--color-text);background:var(--color-surface);font-family:var(--font-ui);font-size:var(--text-sm);overflow-y:auto}.late-access-dialog::backdrop{background:#18103766}.late-access-dialog textarea{resize:vertical;width:100%}.late-access-dialog p{line-height:1.6}.late-access-dialog [role=alert]{color:var(--color-danger)}.late-access-confirm{padding:var(--space-4);margin:var(--space-4) 0;background:var(--amber-50);border:1px solid var(--amber-300);border-radius:var(--radius-control)}.late-access-dialog .late-access-actions{margin-top:var(--space-4)}@media (width<=600px){.late-access-directory-panel{padding:16px}.late-access-details{gap:var(--space-2);grid-template-columns:1fr}.late-access-details dd{margin-bottom:var(--space-3)}.late-access-dialog{padding:var(--space-4)}}.late-access-page .late-access-back{min-height:36px;font-size:var(--text-xs);align-items:center;gap:8px;margin-bottom:20px;padding:6px 0;text-decoration:none;display:inline-flex}.late-access-back:hover{text-underline-offset:3px;text-decoration:underline}.late-access-detail-toolbar{margin:20px 0 0;padding:16px 0}.late-access-detail-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:start;gap:20px;display:grid}.late-access-detail-grid .late-access-card{min-width:0;margin:0;padding:24px}.late-access-detail-grid h2{margin:0 0 20px;font-size:1.25rem}.late-access-period{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0;display:grid}.late-access-period>div{border:1px solid var(--color-border);background:var(--ink-50);border-radius:12px;min-width:0;padding:16px}.late-access-period dt{font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:12px}.late-access-period dd{margin:0}.late-access-period .late-access-date-compact{white-space:normal}.late-access-period .late-access-date-compact>span:first-child{font-size:var(--text-lg);font-weight:600}.late-access-submitted,.late-access-detail-caption{color:var(--color-text-muted);font-size:var(--text-xs);line-height:1.7}.late-access-submitted{margin:16px 0 24px}.late-access-reason{border-block:1px solid var(--color-border);padding:20px 0}.late-access-reason h3{margin:0 0 12px}.late-access-reason p{line-height:1.7;font-size:var(--text-sm);margin:0}.late-access-reference-panel{color:var(--color-text-muted);font-size:var(--text-xs);margin-top:20px}.late-access-reference-panel summary{cursor:pointer;width:fit-content}.late-access-reference-panel summary:focus-visible{outline:3px solid var(--color-focus);outline-offset:4px}.late-access-reference-panel .late-access-id{font-family:var(--font-mono)}.late-access-decision-card>p{color:var(--color-text-muted);font-size:var(--text-sm);line-height:1.7}.late-access-decision-card .late-access-details{background:0 0;border:0;grid-template-columns:minmax(0,1fr);gap:6px;margin:0;padding:0}.late-access-decision-card .late-access-details dd{margin-bottom:16px}.late-access-decision-card .late-access-details dd:last-child{margin-bottom:0}.late-access-decision-card .late-access-actions{border-top:1px solid var(--color-border);margin-top:20px;padding-top:16px}@media (width<=1000px){.late-access-detail-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=600px){.late-access-detail-grid .late-access-card{padding:16px}.late-access-period{grid-template-columns:minmax(0,1fr)}}.late-access-decision-stack{gap:20px;min-width:0;display:grid}.late-access-decision-stack>.late-access-card>p{color:var(--color-text-muted);font-size:var(--text-sm);line-height:1.7}.complaint-page{width:100%;min-width:0}.complaint-page h2,.complaint-dialog h2{font-size:var(--text-lg)}.complaint-page h3,.complaint-dialog h3{font-size:var(--text-base)}.complaint-filters,.complaint-toolbar,.complaint-actions,.complaint-pagination{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.complaint-filters{padding:var(--space-5);margin:var(--space-5) 0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);align-items:end}.complaint-filters>div{flex:180px;min-width:0}.complaint-filters label,.complaint-dialog label{margin-bottom:var(--space-2);font-weight:600;font-size:var(--text-sm);display:block}.complaint-filters .ui-input{width:100%}.complaint-table-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);overflow-x:auto}.complaint-page table{border-collapse:collapse;text-align:left;width:100%;font-size:var(--text-sm)}.complaint-page caption{padding:var(--space-4);text-align:left;color:var(--color-text-muted)}.complaint-page td,.complaint-page th{padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border)}.complaint-page thead{background:var(--ink-100);color:var(--ink-600);font-size:var(--text-xs)}.complaint-page tbody th{font-weight:500}.complaint-page tbody tr:hover{background:var(--cyan-50)}.complaint-page a{color:var(--cyan-700);font-weight:600}.complaint-id{overflow-wrap:anywhere;font-size:var(--text-xs)}.complaint-badge{padding:var(--space-1) var(--space-2);text-transform:capitalize;font-size:var(--text-xs);background:var(--ink-100);border-radius:6px;align-items:center;gap:6px;font-weight:600;display:inline-flex}.complaint-badge--pending{background:var(--amber-100);color:var(--amber-700)}.complaint-badge--in_progress{background:var(--cyan-100);color:var(--cyan-700)}.complaint-badge--resolved{color:#166534;background:#ecfdf3}.complaint-badge:before{content:"";background:currentColor;border-radius:50%;width:5px;height:5px}.complaint-pagination{margin:var(--space-5) 0;font-size:var(--text-sm);justify-content:center}.complaint-toolbar{margin:var(--space-5) 0;justify-content:space-between}.complaint-card,.complaint-state{padding:var(--space-5);margin:var(--space-4) 0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card)}.complaint-details{gap:var(--space-3) var(--space-5);font-size:var(--text-sm);grid-template-columns:minmax(130px,1fr) minmax(0,3fr);display:grid}.complaint-details dt{color:var(--color-text-muted)}.complaint-details dd{overflow-wrap:anywhere;margin:0}.complaint-prose{white-space:pre-wrap;overflow-wrap:anywhere}.complaint-dialog{width:min(38rem,100% - 2rem);max-height:calc(100dvh - 2rem);padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-card);color:var(--color-text);background:var(--color-surface);font-family:var(--font-ui);font-size:var(--text-sm);overflow-y:auto}.complaint-dialog::backdrop{background:#18103766}.complaint-dialog textarea{resize:vertical;width:100%}.complaint-dialog p{line-height:1.6}.complaint-dialog [role=alert]{color:var(--color-danger)}.complaint-confirm{padding:var(--space-4);margin:var(--space-4) 0;background:var(--amber-50);border:1px solid var(--amber-300);border-radius:var(--radius-control)}.complaint-dialog .complaint-actions{margin-top:var(--space-4)}@media (width<=600px){.complaint-details{gap:var(--space-2);grid-template-columns:1fr}.complaint-details dd{margin-bottom:var(--space-3)}.complaint-dialog{padding:var(--space-4)}}.complaint-history{padding-left:1.5rem}.complaint-history li{padding:var(--space-3);border-bottom:1px solid var(--color-border)}.complaint-history p{margin:var(--space-2) 0}.complaint-dialog select{width:100%;margin-bottom:var(--space-4)}.complaint-page .complaint-back{min-height:36px;font-size:var(--text-xs);align-items:center;gap:6px;margin-bottom:20px;text-decoration:none;display:inline-flex}.complaint-back:hover{text-decoration:underline}.complaint-detail-toolbar .ui-button,.complaint-detail-page .complaint-card .ui-button{min-height:36px;font-size:var(--text-xs)}.complaint-detail-status{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.complaint-version{font-size:var(--text-xs);color:var(--color-text-muted)}.complaint-detail-grid{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start;gap:20px;display:grid}.complaint-detail-main{gap:20px;min-width:0;display:grid}.complaint-detail-page .complaint-card,.complaint-detail-page .complaint-evidence{border-radius:16px;margin:0;padding:24px}.complaint-detail-page .complaint-card h2,.complaint-detail-page .complaint-evidence h2{margin:0 0 16px;font-size:20px}.complaint-summary-meta{margin-bottom:20px}.complaint-category{background:var(--cyan-50);color:var(--cyan-700);font-size:var(--text-xs);border-radius:6px;padding:6px 10px;font-weight:600;display:inline-flex}.complaint-detail-dates{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 24px;display:grid}.complaint-detail-dates>div{background:var(--ink-50);border:1px solid var(--color-border);border-radius:10px;padding:16px}.complaint-detail-dates dt{font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:10px}.complaint-detail-dates dd{font-size:var(--text-sm);margin:0}.complaint-detail-page .complaint-description-title{font-size:var(--text-sm);margin:0 0 12px}.complaint-description{line-height:1.8;font-size:var(--text-sm);margin:0}.complaint-references{border-top:1px solid var(--color-border);font-size:var(--text-xs);margin-top:24px;padding-top:16px}.complaint-references summary{cursor:pointer;color:var(--color-text-muted);font-weight:600}.complaint-references .complaint-details{font-size:var(--text-xs);margin:16px 0 0}.complaint-manage-card>p,.complaint-history-card>p{color:var(--color-text-muted);font-size:var(--text-xs);line-height:1.7}.complaint-manage-card .complaint-actions{border-top:1px solid var(--color-border);margin-top:20px;padding-top:20px}.complaint-detail-page .complaint-history-card{margin-top:20px}.complaint-detail-page .complaint-history{margin-top:24px;padding-left:24px}.complaint-detail-page .complaint-history li{margin-bottom:20px;padding:0 0 20px 12px}.complaint-history li::marker{color:var(--cyan-700);font-weight:600;font-size:var(--text-xs)}.complaint-detail-page .complaint-history h3{font-size:var(--text-sm);margin:0 0 8px}.complaint-detail-page .complaint-history p{font-size:var(--text-xs);color:var(--color-text-muted);line-height:1.7}.complaint-detail-page .complaint-history .complaint-prose{font-size:var(--text-sm);color:var(--color-text)}.complaint-history-card .complaint-pagination{font-size:var(--text-xs);justify-content:flex-end}@media (width<=1000px){.complaint-detail-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=600px){.complaint-detail-page .complaint-card,.complaint-detail-page .complaint-evidence{padding:16px}.complaint-detail-dates{grid-template-columns:minmax(0,1fr)}}.complaint-directory-panel{border:1px solid var(--color-border);background:var(--color-surface);border-radius:16px;margin-top:24px;padding:24px}.complaint-directory-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.complaint-directory-toolbar h2{margin:0 0 6px;font-size:20px}.complaint-directory-toolbar p{color:var(--color-text-muted);font-size:var(--text-xs);margin:0}.complaint-directory-panel .complaint-filters{background:var(--ink-50);border-radius:12px;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;margin:0 0 24px;padding:20px;display:grid}.complaint-directory-panel .complaint-filters>div{grid-column:span 2}.complaint-directory-panel .complaint-filters label{font-size:var(--text-xs);font-weight:500}.complaint-directory-panel .complaint-filters .ui-input{min-height:40px;font-size:var(--text-sm)}.complaint-directory-panel .complaint-filter-actions{flex-wrap:wrap;align-items:end;gap:8px;display:flex}.complaint-filter-help,.complaint-filters [role=alert]{font-size:var(--text-xs);grid-column:1/-1;margin:0;line-height:1.7}.complaint-filter-help{color:var(--color-text-muted)}.complaint-filters [role=alert]{color:var(--color-danger)}.complaint-directory-panel .ui-button{min-height:36px;font-size:var(--text-xs)}.complaint-directory-panel table{min-width:740px}.complaint-directory-panel caption{font-size:var(--text-xs);font-weight:600}.complaint-directory-panel td,.complaint-directory-panel th{vertical-align:middle;padding:16px}.complaint-directory-panel thead{background:var(--ink-50)}.complaint-table-wrap:focus-visible{outline:3px solid var(--cyan-700);outline-offset:3px}.complaint-student{align-items:center;gap:12px;display:flex}.complaint-student-icon{background:var(--cyan-50);height:36px;color:var(--cyan-700);border-radius:10px;flex:0 0 36px;place-items:center;display:grid}.complaint-student a{text-overflow:ellipsis;white-space:nowrap;max-width:15rem;font-family:ui-monospace,monospace;font-size:var(--text-xs);text-decoration:none;overflow:hidden}.complaint-student a:hover{text-decoration:underline}.complaint-compact-date{white-space:nowrap;gap:4px;display:grid}.complaint-compact-date span+span{color:var(--color-text-muted);font-size:var(--text-xs)}.complaint-page .complaint-view-link{border:1px solid var(--color-border);min-height:36px;font-size:var(--text-xs);white-space:nowrap;border-radius:8px;align-items:center;gap:6px;padding:6px 12px;text-decoration:none;display:inline-flex}.complaint-view-link:hover{background:var(--cyan-50);border-color:var(--cyan-700)}.complaint-directory-panel .complaint-pagination{font-size:var(--text-xs);justify-content:flex-end;margin:24px 0 0}.complaint-directory-panel .complaint-state{text-align:center;color:var(--color-text-muted);border-style:dashed}@media (width<=900px){.complaint-directory-panel .complaint-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.complaint-directory-panel .complaint-filters>div{grid-column:auto}}@media (width<=600px){.complaint-directory-panel{padding:16px}.complaint-directory-panel .complaint-filters{grid-template-columns:minmax(0,1fr);padding:16px}.complaint-directory-panel .complaint-pagination{justify-content:center}}
