/* NINU CampusFlow v93 — performance-focused university interface, consistent forms, menus and dialogs. */
:root {
  --uni-ink: #183343;
  --uni-ink-soft: #385362;
  --uni-muted: #71838c;
  --uni-paper: #f5f5f1;
  --uni-white: #fff;
  --uni-border: #dce3e4;
  --uni-border-strong: #c7d2d5;
  --uni-primary: #164e68;
  --uni-primary-hover: #0f3e55;
  --uni-gold: #b69a62;
  --uni-gold-pale: #f4efdf;
  --uni-danger: #a83e43;
  --uni-danger-pale: #fbefef;
  --uni-success: #256a54;
  --uni-shadow: 0 1px 2px rgba(22, 47, 59, .035), 0 8px 24px rgba(22, 47, 59, .045);
  --uni-radius: 13px;
  --uni-radius-small: 9px;
  --campusflow-font: 'IBM Plex Sans Arabic', Tahoma, Arial, sans-serif;
}

html, body, button, input, select, textarea { font-family: var(--campusflow-font) !important; }
html { background: var(--uni-paper); }
body {
  color: var(--uni-ink);
  background: var(--uni-paper) !important;
  font-size: 14px;
  line-height: 1.7;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
body::before { display:none !important; }
::selection { color:#fff; background:#164e68; }
button, input, select, textarea { font-size: inherit; }
button { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, summary:focus-visible {
  outline: 3px solid rgba(22,78,104,.22) !important;
  outline-offset: 2px;
}

/* Login: restrained brand, more readable, fewer decorative effects. */
.login-screen { min-height:100svh !important; padding:clamp(18px,4vw,56px) !important; background:#f3f2ec !important; }
.login-shell { width:min(1160px,100%) !important; min-height:min(730px,calc(100svh - 60px)) !important; grid-template-columns:minmax(0,1.08fr) minmax(350px,.92fr) !important; gap:0 !important; border:1px solid #d9dfdd !important; border-radius:18px !important; overflow:hidden !important; background:#fff !important; box-shadow:0 22px 70px rgba(22,47,59,.09) !important; }
.login-copy { min-width:0; padding:clamp(28px,4vw,54px) !important; background:#173b4e !important; color:#fff !important; }
.login-copy::after { opacity:.16 !important; }
.login-copy .login-editorial { max-width:540px; }
.login-copy .overline { color:#d3c394 !important; font-size:12px !important; font-weight:600 !important; }
.login-copy h1 { margin:26px 0 16px !important; max-width:560px; font-size:clamp(32px,3.35vw,47px) !important; font-weight:650 !important; line-height:1.5 !important; letter-spacing:0 !important; }
.login-copy h1 em { color:#e2d2a6 !important; font-style:normal !important; }
.login-copy p { max-width:490px !important; color:#d3dfe3 !important; font-size:15px !important; line-height:2 !important; }
.login-brandline { align-items:center !important; gap:12px !important; }
.brand-large .brand-mark.university-mark { width:66px !important; height:66px !important; border-radius:50% !important; padding:5px !important; box-shadow:0 5px 16px rgba(0,0,0,.13) !important; }
.brand-large strong { font-size:20px !important; line-height:1.5 !important; font-weight:650 !important; }
.brand-large small { font-size:12px !important; color:#d4dfe3 !important; }
.edition-label { padding:5px 9px !important; border:1px solid rgba(255,255,255,.18) !important; border-radius:5px !important; color:#e8ddbb !important; font-size:11px !important; }
.campus-art { opacity:.62 !important; transform:scale(.94); transform-origin:center; }
.art-orbit { border-color:rgba(229,213,169,.18) !important; }
.campus-block { box-shadow:none !important; border:1px solid rgba(230,220,192,.25) !important; background:rgba(255,255,255,.05) !important; }
.art-label,.art-tag { border-radius:5px !important; box-shadow:none !important; backdrop-filter:none !important; }
.login-footer { color:#bdcbd0 !important; border-top:1px solid rgba(255,255,255,.14) !important; font-size:11px !important; }
.login-card { align-self:center !important; width:100% !important; max-width:465px !important; margin:auto !important; padding:clamp(28px,4vw,54px) !important; border:0 !important; border-radius:0 !important; box-shadow:none !important; }
.login-symbol { width:44px !important; height:44px !important; border-radius:10px !important; background:#edf2f1 !important; color:#174b64 !important; box-shadow:none !important; }
.login-card-top .eyebrow { margin-top:17px !important; color:#7a6a43 !important; font-size:12px !important; font-weight:600 !important; }
.login-card h2 { margin:4px 0 8px !important; font-size:28px !important; font-weight:650 !important; letter-spacing:0 !important; color:#183343 !important; }
.login-card-top p { color:#76868d !important; font-size:13px !important; line-height:1.9 !important; }
.login-card>label { margin-top:19px !important; color:#435d68 !important; font-size:13px !important; font-weight:600 !important; }
.input-wrap { min-height:49px !important; margin-top:7px !important; padding:0 13px !important; gap:10px !important; border:1px solid var(--uni-border) !important; border-radius:8px !important; background:#fff !important; transition:border-color .15s, box-shadow .15s !important; }
.input-wrap:focus-within { border-color:#7699a6 !important; box-shadow:0 0 0 3px rgba(22,78,104,.09) !important; }
.input-wrap input { min-width:0; font-size:14px !important; }
.input-wrap input::placeholder { color:#a4b0b3 !important; }
.login-card .btn-lg { min-height:49px !important; height:49px !important; margin-top:24px !important; border-radius:8px !important; font-size:14px !important; }
.live-login-note { margin-top:17px !important; padding-top:13px !important; border-top:1px solid #edf0ed !important; color:#829197 !important; font-size:11px !important; }

/* Main frame: quiet paper, clear hierarchy, less rounded repetition. */
.app-shell { background:var(--uni-paper) !important; }
.sidebar { width:272px !important; min-width:272px !important; padding:22px 15px 16px !important; background:#173b4e !important; border:0 !important; box-shadow:5px 0 22px rgba(20,49,63,.05) !important; }
.sidebar-head { padding:0 6px 22px !important; border-bottom:1px solid rgba(255,255,255,.13) !important; }
.sidebar .brand { gap:10px !important; }
.sidebar .brand-mark.university-mark { width:44px !important; height:44px !important; border-radius:50% !important; padding:4px !important; box-shadow:none !important; }
.sidebar .brand strong { font-size:14px !important; font-weight:650 !important; line-height:1.5 !important; color:#fff !important; }
.sidebar .brand small { margin-top:2px !important; color:#bdcbd0 !important; font-size:11px !important; }
.role-pill { margin:18px 5px 16px !important; padding:7px 10px !important; border:1px solid rgba(255,255,255,.13) !important; border-radius:6px !important; background:rgba(255,255,255,.055) !important; color:#e0d4b2 !important; font-size:11px !important; font-weight:600 !important; }
.nav-menu { gap:3px !important; }
.nav-section { margin:15px 12px 7px !important; color:#94adb7 !important; font-size:10px !important; font-weight:600 !important; }
.nav-item { min-height:43px !important; margin:1px 0 !important; width:100% !important; padding:0 13px !important; gap:11px !important; border:1px solid transparent !important; border-radius:7px !important; color:#c7d5d9 !important; font-size:13px !important; font-weight:500 !important; transition:background .15s,border-color .15s,color .15s !important; }
.nav-item i { font-size:17px !important; }
.nav-item:hover { background:rgba(255,255,255,.06) !important; color:#fff !important; }
.nav-item.active,.nav-item[aria-current="page"] { background:rgba(255,255,255,.105) !important; border-color:rgba(229,216,179,.22) !important; color:#fff !important; box-shadow:inset -3px 0 #cfb87f !important; }
.sidebar-bottom { padding-top:15px !important; border-top:1px solid rgba(255,255,255,.13) !important; }
.system-status { padding:0 7px 13px !important; border:0 !important; color:#bccbd0 !important; font-size:11px !important; }
.system-status .status-dot { background:#74b19c !important; box-shadow:none !important; }
.logout-btn { min-height:41px !important; padding:0 12px !important; border-radius:7px !important; color:#d5e0e2 !important; font-size:12px !important; }
.logout-btn:hover { background:rgba(255,255,255,.07) !important; color:#fff !important; }
.main-area { min-width:0; background:transparent !important; }
.topbar { min-height:82px !important; padding:15px clamp(18px,2.5vw,38px) !important; background:rgba(255,255,255,.96) !important; border-bottom:1px solid #e2e5e1 !important; box-shadow:none !important; backdrop-filter:none !important; }
.breadcrumb { color:#7e8f94 !important; font-size:11px !important; font-weight:500 !important; }
.topbar h2 { color:#183343 !important; font-size:22px !important; font-weight:650 !important; letter-spacing:0 !important; }
.topbar-left,.topbar-right { gap:12px !important; }
.cairo-clock { color:#687f88 !important; font-size:11px !important; }
.live-chip { min-height:31px !important; padding:5px 10px !important; border:1px solid #dce5e1 !important; border-radius:5px !important; background:#f8faf7 !important; color:#446357 !important; font-size:11px !important; }
.live-chip .pulse { background:#4d9276 !important; box-shadow:none !important; }
.profile-chip { color:#355260 !important; font-size:12px !important; }
.content { width:100% !important; max-width:1640px !important; padding:27px clamp(16px,2.5vw,38px) 44px !important; }
.page-head { margin-bottom:20px !important; gap:18px !important; align-items:center !important; }
.page-head h3 { margin:0 0 5px !important; color:#173b4d !important; font-size:25px !important; line-height:1.45 !important; font-weight:650 !important; letter-spacing:0 !important; }
.page-head p { max-width:760px; color:#71848b !important; font-size:13px !important; line-height:1.9 !important; }
.page-kicker,.section-eyebrow { color:#8b7749 !important; font-size:11px !important; font-weight:650 !important; }
.page-actions { gap:8px !important; }

/* Surfaces: strong order without the repetitive floating-card look. */
.card,.schedule-board-card,.schedule-filters,.resource-mode-switch,.occupancy-control-panel,.panel,.college-admin-card,.building { border:1px solid #dfe5e3 !important; border-radius:12px !important; background:#fff !important; box-shadow:0 1px 2px rgba(30,55,64,.025) !important; }
.card { transition:border-color .15s,box-shadow .15s !important; }
.card:hover { border-color:#d3dddc !important; box-shadow:var(--uni-shadow) !important; }
.stat-card { border-top:2px solid #d8c69b !important; }
.stat-card::after { display:none !important; }
.stat-icon { background:#f0f3f1 !important; color:#31596a !important; border:1px solid #e1e8e4 !important; border-radius:8px !important; }
.stat-card strong,.stat-value { color:#173b4d !important; font-size:29px !important; font-weight:650 !important; }
.stat-card span,.stat-label { color:#71848b !important; font-size:12px !important; }
.card-title h4,.panel-heading h4,.schedule-board-head b,.occupancy-panel-heading h4 { color:#1a3d4e !important; font-weight:650 !important; font-size:15px !important; }
.panel-heading p,.card-description,.panel-footnote { color:#7b8d92 !important; font-size:11px !important; line-height:1.8 !important; }

/* Controls: same height, same focus, low-contrast borders, predictable states. */
.btn { min-height:41px !important; padding:9px 14px !important; border-radius:7px !important; box-shadow:none !important; font-size:12px !important; font-weight:600 !important; letter-spacing:0 !important; transition:background .15s,border-color .15s,color .15s,transform .15s !important; }
.btn:active { transform:translateY(1px) !important; }
.btn-primary { color:#fff !important; background:#164e68 !important; border-color:#164e68 !important; }
.btn-primary:hover { background:#0f3e55 !important; border-color:#0f3e55 !important; }
.btn-secondary { color:#315362 !important; background:#fff !important; border:1px solid #d3dddf !important; }
.btn-secondary:hover { background:#f4f7f5 !important; border-color:#b9c8ca !important; }
.btn-danger { color:#fff !important; background:#a74246 !important; border-color:#a74246 !important; }
.btn-danger:hover { background:#8f3439 !important; }
.ghost-icon,.mobile-menu,.sidebar-close { border:1px solid #dbe3e3 !important; border-radius:7px !important; background:#fff !important; color:#3c5a66 !important; box-shadow:none !important; }
.ghost-icon:hover,.mobile-menu:hover,.sidebar-close:hover { background:#f0f4f2 !important; color:#143f55 !important; }
.input,.select,input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),textarea { color:#243f4c; }
.field .input,.field .select,.input,.select,textarea,.input-wrap { min-height:45px; border-radius:7px !important; border:1px solid #d5dfdf !important; background:#fff !important; box-shadow:none !important; font-size:13px !important; }
textarea { padding:11px 12px !important; min-height:90px !important; resize:vertical; }
.input:focus,.select:focus,.field .input:focus,.field .select:focus,textarea:focus,.input-wrap:focus-within { border-color:#789ca8 !important; box-shadow:0 0 0 3px rgba(22,78,104,.08) !important; }
input:disabled,select:disabled,textarea:disabled,.btn:disabled,button:disabled { cursor:not-allowed !important; opacity:.62 !important; }
input::placeholder,textarea::placeholder { color:#9aa9ac !important; }
.field { gap:7px !important; min-width:0; }
.field label,.modal label,.filter-label,.filter-block label,.filter-block .filter-label { color:#425d68 !important; font-size:12px !important; line-height:1.6 !important; font-weight:600 !important; }
.field small,.form-hint,.muted { color:#829197 !important; font-size:11px !important; line-height:1.75 !important; }
.form-grid { gap:14px !important; }
.select:not(.select-ui-source),select:not(.select-ui-source) { padding-inline:12px 34px !important; background-position:12px center !important; }
select option, select optgroup { font-family:var(--campusflow-font) !important; }

/* Custom select menu — search, selected state, disabled choices, keyboard support. */
.select-ui { position:relative; min-width:0; width:100%; }
.select-ui-source { position:absolute !important; width:1px !important; height:1px !important; min-height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; clip-path:inset(50%) !important; white-space:nowrap !important; border:0 !important; opacity:0 !important; pointer-events:none !important; }
.select-ui-trigger { display:flex; align-items:center; justify-content:space-between; gap:11px; width:100%; min-width:0; min-height:45px; padding:0 12px; border:1px solid #d5dfdf; border-radius:7px; background:#fff; color:#294b59; text-align:right; font:inherit; font-size:13px; cursor:pointer; transition:border-color .14s,box-shadow .14s,background .14s; }
.select-ui-trigger:hover { border-color:#aebfc1; background:#fdfefd; }
.select-ui-trigger[aria-expanded="true"] { border-color:#789ca8; box-shadow:0 0 0 3px rgba(22,78,104,.08); }
.select-ui-trigger.is-placeholder { color:#8e9da0; }
.select-ui-trigger[aria-invalid="true"] { border-color:#bf6b70; box-shadow:0 0 0 3px rgba(168,62,67,.08); }
.select-ui-trigger:disabled { color:#91a0a2; background:#f0f3f2; }
.select-ui-value { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.select-ui-chevron { flex:none; display:inline-grid; place-items:center; width:19px; height:19px; border-radius:4px; color:#718890; font-size:18px; line-height:1; transition:transform .15s; }
.select-ui-trigger[aria-expanded="true"] .select-ui-chevron { transform:rotate(180deg); }
.select-ui--compact .select-ui-trigger { min-height:38px; padding-inline:9px; font-size:12px; }
.select-ui--embedded { flex:1 1 auto; width:100%; min-width:0; }
.select-ui--embedded .select-ui-trigger { border:0 !important; min-height:44px; padding-inline:39px 9px; background:transparent !important; box-shadow:none !important; }
.select-ui--embedded .select-ui-chevron { display:none; }
.select-ui-menu { position:fixed; z-index:10000; display:flex; flex-direction:column; max-height:330px; overflow:hidden; border:1px solid #d8e1e0; border-radius:9px; background:#fff; color:#294652; box-shadow:0 14px 40px rgba(16,43,55,.17); padding:5px; direction:rtl; animation:select-menu-in .12s ease-out; }
.select-ui-menu.opens-up { transform-origin:bottom center; }
.select-ui-options { min-height:0; overflow:auto; overscroll-behavior:contain; padding:2px; scrollbar-width:thin; scrollbar-color:#bdcaca transparent; }
.select-ui-option { width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:39px; padding:8px 10px; border:1px solid transparent; border-radius:6px; background:transparent; color:#304d59; text-align:right; font-size:13px; font-weight:450; cursor:pointer; }
.select-ui-option:hover,.select-ui-option:focus-visible { background:#f1f5f3; border-color:#e5ebe7; outline:none !important; }
.select-ui-option[aria-selected="true"] { background:#edf3f2; color:#174a61; font-weight:650; }
.select-ui-option:disabled { color:#aab5b5; cursor:not-allowed; background:#fafafa; }
.select-ui-option-label { min-width:0; overflow-wrap:anywhere; }
.select-ui-check { color:#427b65; font-size:14px; font-weight:700; }
.select-ui-group { padding:8px 10px 4px; color:#8b7749; font-size:10px; font-weight:650; }
.select-ui-search-wrap { display:flex; align-items:center; gap:8px; min-height:40px; padding:0 10px; border:1px solid #e0e7e4; border-radius:6px; background:#f8faf8; color:#748990; }
.select-ui-search-icon { font-size:20px; }
.select-ui-search { min-width:0; width:100%; height:37px !important; min-height:37px !important; padding:0 !important; border:0 !important; outline:none !important; background:transparent !important; box-shadow:none !important; font-size:12px !important; }
.select-ui-count { flex:none; padding:6px 10px 2px; border-top:1px solid #eef1ef; color:#849397; font-size:10px; }
.select-ui-empty { padding:18px 12px; color:#8a999d; text-align:center; font-size:12px; }
@keyframes select-menu-in { from { opacity:0; transform:translateY(-3px); } to { opacity:1; transform:translateY(0); } }

/* Custom confirmation panels and forms. */
.modal-backdrop { padding:22px !important; background:rgba(15,34,43,.58) !important; backdrop-filter:blur(3px) !important; }
.modal { width:min(740px,100%) !important; max-height:min(90dvh,850px) !important; border:1px solid #d9e1df !important; border-radius:13px !important; background:#fff !important; box-shadow:0 28px 80px rgba(9,29,39,.24) !important; }
.modal-head { padding:17px 21px !important; background:#fff !important; border-bottom:1px solid #e8edeb !important; }
.modal-head h3 { color:#1b3b4a !important; font-size:17px !important; font-weight:650 !important; line-height:1.5 !important; }
.modal-close { min-width:36px !important; width:36px !important; height:36px !important; padding:0 !important; border:1px solid #e0e7e5 !important; border-radius:7px !important; background:#f8faf8 !important; color:#48616a !important; font-size:0 !important; }
.modal-close::before { content:'×'; font-size:24px; font-weight:400; line-height:1; }
.modal-body { padding:21px !important; background:#fff !important; overflow:auto !important; overscroll-behavior:contain; }
.modal-footer { padding:13px 21px !important; background:#fafbf9 !important; border-top:1px solid #e7ece9 !important; gap:8px !important; }
.modal-footer .btn { min-width:112px !important; }
.booking-warning,.declaration-notice { border-radius:8px !important; font-size:12px !important; line-height:1.8 !important; }
.confirm-modal { width:min(480px,100%) !important; }
.confirm-modal .modal-head { border-bottom:0 !important; padding-bottom:6px !important; }
.confirm-modal .modal-head h3 { font-size:18px !important; }
.confirm-body { display:flex; gap:13px; align-items:flex-start; padding:4px 0 10px; }
.confirm-icon { flex:none; display:grid; place-items:center; width:43px; height:43px; border:1px solid #eadfbe; border-radius:9px; background:#f6f1e5; color:#8a6f37; font-size:20px; }
.confirm-icon.is-danger { border-color:#efd8d8; background:#fbefef; color:#a74246; }
.confirm-copy { min-width:0; }
.confirm-copy p { margin:1px 0 0; color:#5c7078; font-size:13px; line-height:1.9; }
.confirm-copy small { display:block; margin-top:7px; color:#89979b; font-size:11px; line-height:1.7; }
.confirm-modal .modal-footer { background:#fff; border-top:0; padding-top:5px !important; }
.form-error { border:1px solid #f0d7d8 !important; border-radius:7px !important; background:#fcf0f0 !important; color:#9b3d42 !important; }

/* Data tables and repeated rows: use clear lines, not tiny text or loud hover cards. */
.table-wrap,.data-table-wrap,.declaration-table-wrap,.daily-count-table-wrap { max-width:100%; overflow:auto !important; border:1px solid #e0e6e3; border-radius:9px; background:#fff; }
.data-table { min-width:650px !important; border-collapse:separate !important; border-spacing:0 !important; font-size:12px !important; }
.data-table th,.data-table thead th { position:sticky; top:0; z-index:1; padding:12px 13px !important; background:#f0f4f1 !important; border-bottom:1px solid #dce4df !important; color:#47616b !important; font-size:11px !important; font-weight:650 !important; white-space:nowrap; }
.data-table td { padding:12px 13px !important; color:#324f5b !important; border-bottom:1px solid #edf1ee !important; font-size:12px !important; line-height:1.75 !important; vertical-align:middle; }
.data-table tbody tr:nth-child(even) { background:#fcfdfb !important; }
.data-table tbody tr:hover td { background:#f4f7f4 !important; }
.badge { border-radius:5px !important; padding:4px 7px !important; font-size:10px !important; font-weight:600 !important; }
.empty-state { border:1px dashed #cdd9d7 !important; border-radius:10px !important; background:#fafbf8 !important; color:#7f9296 !important; padding:28px 18px !important; }
.empty-state h4 { color:#385864 !important; font-size:15px !important; font-weight:650 !important; }
.empty-state p { color:#829297 !important; font-size:12px !important; line-height:1.8 !important; }
.schedule-filters,.master-filter-card { padding:17px !important; background:#fff !important; }
.schedule-filter-panel>summary { border:1px solid #dde4e1; border-radius:8px; background:#fff; color:#42606b; padding:13px 15px; }
.schedule-board-head { padding:15px 18px !important; border-bottom:1px solid #e5ebe7; }
.schedule-view-toggle button,.year-pill { border-radius:5px !important; box-shadow:none !important; font-size:11px !important; }
.year-pill.active { background:#164e68 !important; border-color:#164e68 !important; }
.session { background:#fbfcfa !important; border-radius:7px !important; box-shadow:none !important; }
.session:hover { box-shadow:0 3px 10px rgba(20,49,63,.06) !important; }
.resource-mode-switch { overflow:hidden; padding:4px !important; }
.resource-mode-tab { padding:12px 14px !important; border-radius:8px !important; }
.resource-mode-tab.active { background:#edf3f1 !important; border-color:#d7e3dd !important; }
.resource-mode-icon { border-radius:7px !important; background:#edf2ef !important; color:#355d6b !important; }
.offline-banner { border-bottom:1px solid #e8ddbd !important; background:#f7f1e2 !important; color:#6d5828 !important; }
.offline-banner-icon { border-radius:8px !important; }
body.offline-view-only .live-chip { border-radius:5px !important; }
.toast-root { right:18px !important; left:auto !important; bottom:18px !important; gap:8px !important; }
.toast { display:flex; align-items:flex-start; gap:10px; min-width:270px; max-width:min(400px,calc(100vw - 24px)); padding:13px 14px; border:1px solid #dce5df !important; border-radius:9px !important; background:#fff !important; box-shadow:0 10px 28px rgba(18,47,59,.13) !important; color:#294653 !important; }
.toast i { margin-top:3px; color:#37745c !important; }
.toast strong { color:#1b4050 !important; font-size:12px !important; font-weight:650 !important; }
.toast span { display:block; margin-top:2px; color:#71868c !important; font-size:11px !important; line-height:1.7 !important; }

/* Responsive — work as a compact application, not a desktop page squeezed onto a phone. */
@media(max-width:1100px) {
  .login-shell { grid-template-columns:minmax(0,1fr) !important; max-width:560px !important; min-height:0 !important; }
  .login-copy { display:none !important; }
  .login-card { max-width:none !important; padding:32px !important; }
  .sidebar { width:280px !important; min-width:280px !important; }
}
@media(max-width:820px) {
  .topbar { min-height:70px !important; padding:11px 15px !important; align-items:center !important; }
  .content { padding:19px 15px 34px !important; }
  .page-head { align-items:flex-start !important; }
  .page-head h3 { font-size:22px !important; }
  .page-actions { width:100%; gap:7px; }
  .page-actions .btn { flex:1; }
  .card { border-radius:10px !important; }
  .modal-backdrop { padding:10px !important; align-items:flex-end !important; }
  .modal { max-height:94dvh !important; width:100% !important; border-radius:13px 13px 8px 8px !important; }
  .modal-head { padding:14px 16px !important; }
  .modal-body { padding:15px !important; }
  .modal-footer { padding:11px 15px !important; flex-wrap:wrap !important; }
  .modal-footer .btn { flex:1; min-width:100px !important; }
  .confirm-modal { width:100% !important; }
  .offline-banner { align-items:flex-start; flex-wrap:wrap; padding:11px 13px !important; gap:10px; }
  .offline-banner>div { flex:1; min-width:180px; }
  .offline-banner .btn { margin-inline-start:0; }
}
@media(max-width:560px) {
  .login-screen { padding:11px !important; }
  .login-shell { border-radius:12px !important; }
  .login-card { padding:25px 20px !important; }
  .login-card h2 { font-size:25px !important; }
  .topbar { padding:10px 11px !important; gap:8px !important; }
  .topbar h2 { font-size:16px !important; }
  .breadcrumb { font-size:10px !important; }
  .content { padding:15px 10px 28px !important; }
  .page-head h3 { font-size:20px !important; }
  .page-head p { font-size:12px !important; }
  .btn { min-height:39px !important; padding:8px 10px !important; font-size:11px !important; }
  .grid-4,.dashboard-stats { grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:9px !important; }
  .dashboard-stats .card { padding:12px !important; }
  .stat-value,.stat-card strong { font-size:24px !important; }
  .master-filter-card,.occupancy-filter-grid,.form-grid,.declaration-layout { grid-template-columns:minmax(0,1fr) !important; }
  .form-grid .field,.form-grid .field.full { grid-column:1/-1 !important; }
  .toast-root { right:10px !important; left:10px !important; bottom:10px !important; }
  .toast { width:100%; min-width:0; max-width:none; }
  .data-table { min-width:590px !important; }
  .offline-banner .btn { width:100%; }
  .select-ui-menu { max-height:min(65dvh,330px) !important; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; transition-duration:.01ms !important; }
}
@media print {
  .select-ui-menu,.select-ui-trigger,.confirm-modal,.offline-banner { display:none !important; }
  .data-table th { position:static !important; }
}


/* v87 — Large-catalog and permission-list paging */
.detail-room-toolbar,.permission-room-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0;flex-wrap:wrap}
.detail-room-toolbar .input,.permission-room-toolbar .input{flex:1;min-width:210px;max-width:420px}
.detail-room-pagination,.permission-room-pagination{display:flex;align-items:center;justify-content:center;gap:12px;padding:12px 0;margin-top:8px;border-top:1px solid var(--uni-border,#dce3e4);color:var(--uni-muted,#71838c);font-size:12px}
.detail-room-pagination button:disabled,.permission-room-pagination button:disabled{opacity:.42;cursor:not-allowed}
.permission-room-pagination{justify-content:space-between;padding:9px 0 2px;border-top:0}
.permission-room-toolbar{margin:8px 0 10px}
.permission-room-toolbar .input{max-width:none;min-width:160px;min-height:38px}
.permission-room-grid .empty-state{grid-column:1/-1;padding:14px}
.detail-room-grid .empty-state{grid-column:1/-1}
@media(max-width:560px){
 .detail-room-toolbar,.permission-room-toolbar{align-items:stretch}
 .detail-room-toolbar .input,.permission-room-toolbar .input{max-width:none;width:100%}
 .detail-room-pagination,.permission-room-pagination{gap:7px}
}


/* v87 — compact schedule navigation for large result sets */
.schedule-board-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;min-width:0}


/* v89 — formal academic identity and clear operation feedback. */
:root {
  --uni-ink:#172f3d;
  --uni-ink-soft:#385360;
  --uni-muted:#73848b;
  --uni-paper:#f3f5f3;
  --uni-border:#dce3e1;
  --uni-border-strong:#cbd6d4;
  --uni-primary:#17384b;
  --uni-primary-hover:#102f41;
  --uni-gold:#a98b50;
  --uni-success:#2e7059;
  --uni-danger:#9f4346;
  --uni-shadow:0 2px 8px rgba(20,47,60,.035);
}
body { background:#f3f5f3 !important; color:#172f3d !important; }
.sidebar { background:#173344 !important; border-inline-end:1px solid #244454 !important; box-shadow:none !important; }
.sidebar-head { border-bottom:1px solid rgba(255,255,255,.10) !important; }
.sidebar .brand strong { font-size:17px !important; font-weight:650 !important; letter-spacing:0 !important; }
.sidebar .brand small { color:#c1cdd1 !important; }
.role-pill { border:1px solid rgba(255,255,255,.14) !important; background:rgba(255,255,255,.055) !important; color:#dce5e7 !important; border-radius:6px !important; }
.nav-section { color:#a7b8bd !important; font-size:10px !important; font-weight:650 !important; letter-spacing:.02em !important; }
.nav-item { min-height:43px !important; border-radius:5px !important; color:#d4dfe1 !important; font-weight:500 !important; }
.nav-item:hover { background:rgba(255,255,255,.075) !important; color:#fff !important; }
.nav-item.active { background:rgba(255,255,255,.12) !important; color:#fff !important; box-shadow:inset -3px 0 #b9a06a !important; font-weight:650 !important; }
.sidebar-bottom { border-top:1px solid rgba(255,255,255,.10) !important; }
.system-status { color:#c1ced1 !important; }
.logout-btn { color:#dce5e7 !important; border-radius:5px !important; }
.main-area { background:#f3f5f3 !important; }
.topbar { background:rgba(255,255,255,.97) !important; border-bottom:1px solid #dfe6e3 !important; box-shadow:0 1px 0 rgba(21,48,61,.02) !important; }
.topbar h2 { color:#183747 !important; font-weight:650 !important; }
.breadcrumb { color:#87969a !important; }
.content { max-width:1600px; }
.page-head { padding-bottom:15px !important; margin-bottom:19px !important; border-bottom:1px solid #dfe6e3 !important; }
.page-head h3 { color:#183747 !important; font-size:23px !important; font-weight:650 !important; letter-spacing:0 !important; }
.page-head p { color:#74868c !important; font-size:12px !important; line-height:1.85 !important; }
.card,.panel,.stat-card,.college-admin-card,.building-card,.resource-card { border:1px solid #dfe6e3 !important; border-radius:9px !important; background:#fff !important; box-shadow:0 1px 3px rgba(25,51,63,.025) !important; }
.card:hover,.college-admin-card:hover,.building-card:hover,.resource-card:hover { box-shadow:0 3px 12px rgba(25,51,63,.045) !important; }
.card-pad { padding:18px !important; }
.stat-card { padding:16px 17px !important; }
.stat-card::before,.stat-card::after { display:none !important; }
.stat-card strong,.stat-value { color:#183747 !important; font-size:27px !important; font-weight:650 !important; font-variant-numeric:tabular-nums; }
.stat-icon { border-radius:7px !important; box-shadow:none !important; }
.panel-heading,.card-title { border-bottom:1px solid #edf0ee !important; }
.data-table { border-collapse:separate !important; border-spacing:0 !important; }
.data-table thead th { background:#f2f5f3 !important; color:#526a73 !important; font-size:11px !important; font-weight:650 !important; border-bottom:1px solid #dce4e1 !important; }
.data-table tbody td { color:#2a4652 !important; border-bottom:1px solid #edf0ee !important; font-size:12px !important; }
.data-table tbody tr:hover td { background:#f8faf8 !important; }
.data-table tbody tr:last-child td { border-bottom:0 !important; }
.badge { border-radius:5px !important; font-weight:600 !important; letter-spacing:0 !important; }
.btn { border-radius:6px !important; font-weight:600 !important; }
.btn-primary { background:#173f54 !important; border-color:#173f54 !important; }
.btn-primary:hover { background:#102f41 !important; border-color:#102f41 !important; }
.btn-secondary { background:#fff !important; border-color:#d2ddda !important; color:#365564 !important; }
.btn-danger { background:#9f4346 !important; border-color:#9f4346 !important; }
input,select,textarea { accent-color:#315b6b; }
.field label,.modal label,.filter-label { color:#3b5661 !important; font-weight:600 !important; }
.field .input,.field .select,.input,.select,textarea,.input-wrap,.select-ui-trigger { border-radius:6px !important; border-color:#d1dcda !important; background:#fff !important; box-shadow:none !important; }
.input:focus,.select:focus,textarea:focus,.select-ui-trigger[aria-expanded="true"] { border-color:#6d909a !important; box-shadow:0 0 0 3px rgba(32,82,100,.075) !important; }
.modal { border-radius:10px !important; }
.modal-head,.modal-footer { background:#f8faf8 !important; }
.modal-head h3 { font-weight:650 !important; }
.toast { border-radius:7px !important; }

/* Operation progress: blocks repeat submissions and remains visible until the promise settles. */
.operation-overlay { position:fixed; inset:0; z-index:30000; display:grid; place-items:center; padding:20px; background:rgba(17,38,49,.22); backdrop-filter:blur(2px); cursor:progress; }
.operation-overlay[hidden] { display:none !important; }
.operation-dialog { position:relative; display:grid; grid-template-columns:42px minmax(0,1fr); align-items:center; gap:13px; width:min(430px,100%); padding:20px 21px 23px; border:1px solid #d5dfdc; border-radius:10px; background:#fff; box-shadow:0 16px 48px rgba(14,37,49,.18); cursor:default; }
.operation-spinner { width:34px; height:34px; border:3px solid #e0e8e5; border-top-color:#1b5369; border-left-color:#a98b50; border-radius:50%; animation:campusflow-spin .78s linear infinite; }
.operation-copy { min-width:0; }
.operation-copy strong { display:block; color:#183747; font-size:14px; font-weight:700; line-height:1.55; }
.operation-copy p { margin:3px 0 0; color:#72848a; font-size:11px; line-height:1.8; }
.operation-track { position:absolute; inset-inline:0; bottom:0; height:3px; overflow:hidden; border-radius:0 0 10px 10px; background:#edf1ef; }
.operation-track span { display:block; width:38%; height:100%; background:linear-gradient(90deg,#173f54,#a98b50); animation:campusflow-progress 1.35s ease-in-out infinite; }
.button-spinner { display:inline-block; width:13px; height:13px; margin-inline-end:7px; vertical-align:-2px; border:2px solid currentColor; border-left-color:transparent; border-radius:50%; animation:campusflow-spin .7s linear infinite; }
.btn.is-operation-loading { pointer-events:none !important; opacity:.86 !important; }
body.operation-running { overflow:hidden !important; }
@keyframes campusflow-spin { to { transform:rotate(360deg); } }
@keyframes campusflow-progress { 0% { transform:translateX(270%); } 100% { transform:translateX(-270%); } }
@media(max-width:560px) {
  .operation-dialog { width:min(360px,100%); padding:17px 16px 20px; }
  .page-head { gap:10px !important; }
  .card-pad { padding:13px !important; }
}
@media(prefers-reduced-motion:reduce) {
  .operation-spinner,.operation-track span,.button-spinner { animation:none !important; }
}


/* v89 finishing pass — institutional, restrained and consistent across the whole interface. */
:root {
  --uni-paper:#f2f4f2; --uni-white:#fff; --uni-ink:#192f3b; --uni-ink-soft:#405762;
  --uni-muted:#74858a; --uni-border:#dbe3e0; --uni-border-strong:#c7d3cf;
  --uni-primary:#17394d; --uni-primary-hover:#102e40; --uni-gold:#a98b50;
  --uni-radius:7px; --uni-radius-small:5px; --uni-shadow:0 1px 3px rgba(24,49,60,.035);
}
html,body { background:var(--uni-paper) !important; }
.card,.panel,.stat-card,.college-admin-card,.building-card,.resource-card,.declaration-controls,.declaration-summary,.declaration-preview {
  border:1px solid var(--uni-border) !important; border-radius:7px !important; box-shadow:var(--uni-shadow) !important;
}
.card h3,.card h4,.panel h3,.panel h4,.section-title { color:#1d3b4a !important; font-weight:650 !important; letter-spacing:0 !important; }
.data-table,.schedule-table,.report-table { border-color:var(--uni-border) !important; border-radius:7px !important; box-shadow:none !important; }
.data-table thead th,.schedule-table thead th,.report-table thead th { background:#edf2ef !important; color:#385461 !important; border-bottom:1px solid #d4dfda !important; font-weight:650 !important; }
.data-table tbody td,.schedule-table tbody td,.report-table tbody td { border-bottom:1px solid #e9eeeb !important; color:#314b57 !important; }
.data-table tbody tr:hover td,.schedule-table tbody tr:hover td { background:#f7f9f7 !important; }
.btn,.select-ui-trigger,.input,.select,textarea { border-radius:6px !important; box-shadow:none !important; }
.btn-primary { background:#17394d !important; color:#fff !important; border-color:#17394d !important; }
.btn-primary:hover { background:#102e40 !important; border-color:#102e40 !important; }
.btn-secondary { color:#345361 !important; background:#fff !important; border-color:#d0dcd7 !important; }
.select-ui-menu { border-radius:7px !important; border-color:#d5dfdb !important; box-shadow:0 9px 26px rgba(25,48,58,.12) !important; }
.select-ui-option { border-radius:4px !important; }
.modal-backdrop { background:rgba(17,39,49,.42) !important; backdrop-filter:blur(1px) !important; }
.modal { border:1px solid #d7e0dc !important; border-radius:9px !important; box-shadow:0 18px 55px rgba(18,43,54,.18) !important; }
.modal-head { border-bottom:1px solid #e2e9e5 !important; }
.modal-footer { border-top:1px solid #e2e9e5 !important; }
.badge,.status-badge,.role-pill { border-radius:4px !important; letter-spacing:0 !important; }
.toast { border:1px solid #dce4e0 !important; border-radius:6px !important; box-shadow:0 8px 24px rgba(24,48,59,.12) !important; }
@media(max-width:760px) {
  .sidebar { width:min(300px,88vw) !important; min-width:min(300px,88vw) !important; }
  .topbar { min-height:66px !important; padding:10px 14px !important; }
  .topbar h2 { font-size:17px !important; }
  .content { padding:17px 12px 32px !important; }
  .page-head h3 { font-size:20px !important; }
  .data-table,.schedule-table,.report-table { font-size:11px !important; }
}


/* Progressive schedule loading and clear progress states. */
@media(max-width:650px) {
}

/* Server-rejected booking conflict detail list */
.conflict-request-list{display:grid;gap:7px;min-width:190px}.conflict-request-list>div{padding:8px 10px;border:1px solid var(--line,#e5eaed);border-radius:9px;background:var(--surface-soft,#f7f9fa)}.conflict-request-list b{display:block;font-size:12px}.conflict-request-list small{display:block;margin-top:3px;color:var(--muted,#71838c);font-size:11px;line-height:1.6}.declaration-table td>small{display:block;margin-top:4px;color:var(--muted,#71838c);font-size:11px;line-height:1.5}


.university-mark { flex:none !important; overflow:hidden !important; border-radius:50% !important; background:#fff !important; border:1px solid rgba(190,205,207,.82) !important; }
.university-mark img { display:block !important; width:100% !important; height:100% !important; object-fit:contain !important; border-radius:50% !important; background:#fff !important; }
.login-copy .campus-art { pointer-events:none; }
.login-card { min-width:0; }
.login-card .input-wrap { min-width:0; }
.login-card .input-wrap input { min-width:0; }
.topbar-left { min-width:0; flex-wrap:wrap; justify-content:flex-end; }
.topbar-right { min-width:0; }
.data-table th { white-space:nowrap; }
.table-wrap { overscroll-behavior-inline:contain; }
.modal-backdrop { overscroll-behavior:contain; }
@media (max-width:820px) {
  .topbar { align-items:center !important; }
  .topbar-left { gap:6px !important; }
  .page-head { gap:12px; }
  .page-actions { gap:8px; }
  .modal-backdrop { align-items:flex-end !important; padding:10px !important; }
  .modal { width:min(100%,680px) !important; max-height:calc(100dvh - 20px) !important; overflow:auto !important; }
}
@media (max-width:520px) {
  .login-screen { min-height:100svh !important; padding:12px !important; }
  .login-shell { min-height:calc(100svh - 24px) !important; border-radius:16px !important; }
  .login-card { padding:24px 18px !important; }
  .login-card h2 { font-size:25px !important; }
  .login-card .btn-lg { min-height:48px !important; }
  .topbar { min-height:66px !important; }
  .content { padding-inline:12px !important; }
}
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}


/* CampusFlow 2.0.8 — auditorium assignment is deliberately two clear rows. */
#scheduleForm .group-assignment-row.general-place {
  display: grid !important;
  grid-template-columns: 32px minmax(0, 1fr) minmax(0, 1.15fr) 34px !important;
  grid-template-rows: auto auto auto auto;
  align-items: start !important;
  column-gap: 12px !important;
  row-gap: 12px !important;
  padding: 15px !important;
  border: 1px solid #dce6e2 !important;
  border-radius: 12px !important;
  background: #fbfcfa !important;
  box-shadow: 0 2px 8px rgba(22, 55, 67, .035) !important;
}
#scheduleForm .group-assignment-row.general-place .assignment-index {
  grid-column: 1 !important;
  grid-row: 1 / 3 !important;
  width: 30px !important;
  height: 38px !important;
  border: 1px solid #dbe5e1 !important;
  border-radius: 8px !important;
  background: #edf3ef !important;
  color: #3e6270 !important;
  font-size: 12px !important;
}
#scheduleForm .group-assignment-row.general-place .group-name-field {
  grid-column: 2 !important;
  grid-row: 1 !important;
}
#scheduleForm .group-assignment-row.general-place .assignment-students-field {
  grid-column: 3 !important;
  grid-row: 1 !important;
}
#scheduleForm .group-assignment-row.general-place .assignment-building-field {
  grid-column: 2 !important;
  grid-row: 2 !important;
}
#scheduleForm .group-assignment-row.general-place .assignment-room-field {
  grid-column: 3 !important;
  grid-row: 2 !important;
}
#scheduleForm .group-assignment-row.general-place .group-remove {
  grid-column: 4 !important;
  grid-row: 1 !important;
  justify-self: end !important;
  align-self: start !important;
}
#scheduleForm .group-assignment-row.general-place .assignment-field {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 6px !important;
  min-width: 0 !important;
}
#scheduleForm .group-assignment-row.general-place .assignment-field label {
  display: block !important;
  min-height: 0 !important;
  margin: 0 !important;
  color: #365565 !important;
  font-size: 12.5px !important;
  font-weight: 650 !important;
  line-height: 1.6 !important;
}
#scheduleForm .group-assignment-row.general-place .group-name,
#scheduleForm .group-assignment-row.general-place .group-students,
#scheduleForm .group-assignment-row.general-place .group-building,
#scheduleForm .group-assignment-row.general-place .group-room-search,
#scheduleForm .group-assignment-row.general-place .group-room,
#scheduleForm .group-assignment-row.general-place .locked-field {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 44px !important;
  box-sizing: border-box !important;
  border-radius: 8px !important;
  font-size: 13px !important;
}
#scheduleForm .group-assignment-row.general-place .group-room-search {
  margin: 0 !important;
  border-color: #dce5e1 !important;
  background: #fff !important;
}
#scheduleForm .group-assignment-row.general-place .group-room-search-hint {
  min-height: 18px !important;
  margin: 0 !important;
  color: #72858a !important;
  font-size: 11.5px !important;
  line-height: 1.65 !important;
}
#scheduleForm .group-assignment-row.general-place .assignment-room-field .select-ui {
  width: 100% !important;
  min-width: 0 !important;
}
#scheduleForm .group-assignment-row.general-place .assignment-room-field .select-ui-trigger {
  min-height: 44px !important;
  border: 1px solid #d3dfda !important;
  border-radius: 8px !important;
  background: #fff !important;
  color: #294b59 !important;
  font-size: 13px !important;
}
#scheduleForm .group-assignment-row.general-place .group-link-tools {
  grid-column: 2 / 4 !important;
  grid-row: 3 !important;
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 10px 14px !important;
  padding: 10px 0 0 !important;
  border-top: 1px solid #e6ece8 !important;
  font-size: 12px !important;
}
#scheduleForm .group-assignment-row.general-place .group-link-tools > label {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin: 0 !important;
  color: #536c74 !important;
  font-size: 12px !important;
  font-weight: 500 !important;
}
#scheduleForm .group-assignment-row.general-place .group-exchange-controls {
  flex-basis: 100% !important;
  align-items: center !important;
  gap: 8px !important;
}
#scheduleForm .group-assignment-row.general-place .assignment-capacity-status {
  grid-column: 2 / 4 !important;
  grid-row: 4 !important;
  min-height: 36px !important;
  margin: 0 !important;
  padding: 8px 10px !important;
  border-radius: 8px !important;
  font-size: 12px !important;
  line-height: 1.65 !important;
}
#scheduleForm .group-assignment-row.general-place .assignment-capacity-status span,
#scheduleForm .group-assignment-row.general-place .assignment-capacity-status strong,
#scheduleForm .group-assignment-row.general-place .assignment-capacity-status em {
  font-size: 12px !important;
}
@media (min-width: 681px) and (max-width: 900px) {
  #scheduleForm .group-assignment-row.general-place {
    grid-template-columns: 30px minmax(0, 1fr) minmax(0, 1.15fr) 34px !important;
  }
}
@media (max-width: 680px) {
  #scheduleForm .group-assignment-row.general-place {
    grid-template-columns: 28px minmax(0, 1fr) 32px !important;
    row-gap: 11px !important;
    column-gap: 9px !important;
    padding: 13px 11px !important;
  }
  #scheduleForm .group-assignment-row.general-place .assignment-index {
    grid-column: 1 !important;
    grid-row: 1 / 5 !important;
  }
  #scheduleForm .group-assignment-row.general-place .group-name-field,
  #scheduleForm .group-assignment-row.general-place .assignment-students-field,
  #scheduleForm .group-assignment-row.general-place .assignment-building-field,
  #scheduleForm .group-assignment-row.general-place .assignment-room-field,
  #scheduleForm .group-assignment-row.general-place .group-link-tools,
  #scheduleForm .group-assignment-row.general-place .assignment-capacity-status {
    grid-column: 2 !important;
    grid-row: auto !important;
  }
  #scheduleForm .group-assignment-row.general-place .group-remove {
    grid-column: 3 !important;
    grid-row: 1 !important;
  }
  #scheduleForm .group-assignment-row.general-place .group-room-search-hint {
    font-size: 12px !important;
  }
  #scheduleForm .group-assignment-row.general-place .group-link-tools {
    align-items: stretch !important;
    flex-direction: column !important;
  }
  #scheduleForm .group-assignment-row.general-place .group-link-tools .btn {
    width: 100% !important;
  }
}

/* Readability pass: keep data dense enough for an academic schedule, not tiny. */
.data-table th, .data-table thead th { font-size: 12px !important; }
.data-table td { font-size: 13px !important; }
.badge, .status-badge { font-size: 11px !important; }
.form-hint, .muted { font-size: 12px !important; }
@media (max-width: 560px) {
  .data-table td { font-size: 12px !important; }
  .data-table th, .data-table thead th { font-size: 11.5px !important; }
}
