:root{font-family:Inter,"Segoe UI",sans-serif;color:#103549;background:#f1f5f6;color-scheme:light;font-size:16px}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}[hidden]{display:none!important}
header{background:#fff;display:flex;align-items:center;gap:14px;padding:12px max(4vw,20px);border-bottom:1px solid #c9dadc;font-weight:650}
header img{width:64px;height:52px;object-fit:contain}header button{margin-left:auto;background:#edf3f4;color:#12384c}
main{max-width:1380px;margin:auto;padding:32px 32px 64px}h1{font-size:clamp(28px,3vw,36px);letter-spacing:-.035em;margin:0 0 8px}h2{font-size:23px;letter-spacing:-.02em;margin:0 0 8px}h3{margin:0}
p{line-height:1.55;color:#435b68}#status{margin:0 0 20px;font-size:.94rem}#dashboard{margin-top:24px}
section,.room-management{background:#fff;border:1px solid #c9d8dd;border-radius:12px}section{padding:24px}
.access-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}.access-grid>section,.access-grid>details{min-width:0}.tabs{display:flex;flex-wrap:wrap;gap:8px;border-bottom:1px solid #b7cbd1;margin-bottom:24px;padding-bottom:12px}
.tabs button{background:transparent;color:#365765}.tabs button[aria-selected=true]{background:#0a3448;color:#fff}
button{background:#0a3448;color:#fff;border:1px solid transparent;border-radius:7px;padding:10px 16px;min-height:42px;cursor:pointer;font-weight:600;line-height:1.35}
button:hover:not(:disabled){filter:brightness(.94)}button:disabled,input:disabled{opacity:.65;cursor:default}
:where(button,input,select,summary,.table-wrap):focus-visible{outline:3px solid #187b90;outline-offset:3px}
.secondary{background:#f1f6f7;color:#12384c;border-color:#b9cdd3}.danger{background:#a12a2a}.danger-outline{background:#fff;color:#9d2323;border-color:#d9afaf}.error{color:#9d2323}
input:not([type=checkbox]),select{padding:10px 12px;border:1px solid #8ca3aa;border-radius:7px;min-width:0;width:100%;background:#fff;color:#103549;min-height:44px}
input::placeholder{color:#647680}label{display:block;line-height:1.6;font-size:.9rem;font-weight:600}label input,label select{display:block;margin-top:5px;font-weight:400}
input[type=checkbox]{display:inline-block;accent-color:#11617a;width:19px;height:19px;vertical-align:middle;margin:0 9px 0 0}
.field{display:flex;gap:8px;margin-top:7px}.field button{white-space:nowrap}.field input{margin:0}
small{display:block;overflow-wrap:anywhere;color:#4e6471;font-size:.84rem;line-height:1.5;margin:5px 0 12px}
.section-heading{display:flex;justify-content:space-between;gap:20px;align-items:center}.section-heading p{margin:4px 0 0}.section-heading>button{flex-shrink:0}
.section-description{margin:0;font-size:.94rem}.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.grid-filters{display:grid;grid-template-columns:minmax(220px,1.6fr) repeat(3,minmax(155px,1fr));gap:14px;margin-top:24px}
.grid-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:50px;margin-top:8px}
.grid-meta p{font-size:.88rem;margin:8px 0;font-weight:600}.text-button{background:transparent;color:#16596d;padding:6px 4px;font-size:.88rem;min-height:36px;text-decoration:underline;text-underline-offset:3px}
#staff-access-status:empty,#users-status:empty,#portal-access-status:empty{display:none}
#staff-access-status{margin:0 0 14px}.search-label{max-width:320px;width:100%}
.table-wrap{overflow-x:auto;border:1px solid #d1dfe3;border-radius:8px;margin-top:18px}.staff-section .table-wrap{margin-top:0}
table{border-collapse:collapse;width:100%;text-align:left;line-height:1.5}th{font-size:.82rem;letter-spacing:.015em;color:#385461;padding:12px 16px;background:#edf3f5;border-bottom:1px solid #c9d8dd;white-space:nowrap}
td{padding:16px;border-bottom:1px solid #dce5e8;vertical-align:middle;overflow-wrap:anywhere;font-size:.92rem}tbody tr:last-child td{border-bottom:0}tbody tr:nth-child(even){background:#fafcfc}tbody tr:hover{background:#f2f7f8}
td small{margin:4px 0 0}td:first-child{min-width:200px}td strong{font-weight:650}.staff-table{min-width:910px;table-layout:fixed}
.staff-table th:nth-child(1){width:29%}.staff-table th:nth-child(2){width:17%}.staff-table th:nth-child(3){width:22%}.staff-table th:nth-child(4){width:17%}.staff-table th:nth-child(5){width:15%}
.user-actions{min-width:130px}.user-actions button{white-space:nowrap;font-size:.88rem;margin:3px 0;padding:9px 12px}.user-actions button+button{margin-left:6px}
.badge{display:inline-flex;align-items:center;padding:4px 9px;border-radius:6px;font-size:.79rem;font-weight:650;white-space:nowrap;border:1px solid transparent}
.badge-approved{color:#185b41;background:#e5f3eb;border-color:#c4dfcf}.badge-pending{color:#805117;background:#fff3d8;border-color:#ead8b1}.badge-blocked{color:#932c30;background:#fbeaea;border-color:#edc7ca}
.room-chips{display:flex;flex-wrap:wrap;gap:5px}.room-chip{font-size:.81rem;line-height:1.45;padding:4px 8px;border-radius:5px;background:#eaf1f5;color:#284e62;border:1px solid #cfdee6;overflow-wrap:anywhere;max-width:100%}
.muted,.app-usage{color:#4e6471;font-size:.85rem}.table-note{font-size:.85rem;margin:16px 0 0}.empty-state{text-align:center;padding:28px 16px;color:#435b68}.empty-state p{margin:6px 0 0}
.room-management{margin:0}.room-management>summary{padding:17px 22px}.room-management[open]>summary{border-bottom:1px solid #dce5e8}
summary{cursor:pointer;font-weight:650;line-height:1.6}.summary-count{font-size:.82rem;color:#4e6471;font-weight:400;margin-left:8px}
.room-management-content{display:grid;grid-template-columns:1fr 1fr;gap:32px;padding:22px}.room-list{list-style:none;padding:0;margin:14px 0 0;font-size:.9rem}
.room-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid #dce5e8;margin-top:10px}.room-row span{overflow-wrap:anywhere}.room-row button{font-size:.83rem;padding:8px 12px}
#removed-rooms-section{margin-top:22px}#removed-rooms{list-style:none;padding:0}#portal-access-form{margin-top:28px;max-width:680px}#portal-access-form .field{flex-wrap:wrap}#portal-access-form input{flex:1;min-width:220px}
.notice{background:#edf5f6;border:1px solid #c9dfe3;border-radius:9px;padding:14px;margin:16px 0}.notice output{display:block;overflow-wrap:anywhere;margin-top:7px}
fieldset{margin:10px 0;padding:0;border:none}legend{font-size:.9rem;font-weight:650;margin-bottom:4px}
dialog{border:1px solid #c9dadc;border-radius:14px;color:#103549;padding:28px;width:min(580px,calc(100vw - 32px));max-height:90vh;overflow-y:auto;box-shadow:0 18px 80px #0a344830}
dialog::backdrop{background:#0a203b80}dialog label{margin-top:14px}dialog .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.form-note{font-size:.9rem}
#staff-room-options{display:grid;gap:8px}#staff-room-options label{padding:12px;border:1px solid #c9d8dd;border-radius:7px;margin:0;background:#f8fafb}#staff-room-options:disabled{opacity:.6}#staff-access-dialog p{overflow-wrap:anywhere}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1050px){.grid-filters{grid-template-columns:1fr 1fr}.room-management-content{gap:24px}main{padding:28px 24px 48px}}
@media(max-width:640px){header{padding:10px 16px;gap:10px;font-size:.9rem}header img{width:48px;height:44px}header button{padding:8px 10px}main{padding:24px 14px 40px}section{padding:18px 14px}.tabs{gap:4px}.tabs button{font-size:.85rem;padding:10px}.section-heading{align-items:flex-start;flex-wrap:wrap;gap:12px}.grid-filters{grid-template-columns:1fr 1fr;gap:12px}.grid-filters .staff-search{grid-column:1/-1}.grid-filters label:last-child{grid-column:1/-1}.room-management-content{grid-template-columns:1fr;padding:16px;gap:18px}.room-management>summary{padding:14px 16px}.search-label{max-width:none}.table-wrap{margin-top:16px}.table-note{line-height:1.5}dialog{padding:20px}dialog .form-grid{grid-template-columns:1fr;gap:0}.dialog-actions{flex-wrap:wrap}#portal-access-form .field{display:grid}#portal-access-form input{min-width:0}}
