/* Opt-in presentation only. DC mode retains the original CSS unchanged. */
html.portal-branding-pending body { background: #F4F7FB !important; visibility: hidden; }
html.portal-session-pending body { background: #F4F7FB !important; visibility: hidden; }
html:is(.portal-session-pending,.portal-branding-pending)::after { content: 'Loading…'; position: fixed; inset: 0; z-index: 99999; display: grid; place-items: center; padding-top: 48px; background: #F4F7FB; color: #203C50; font: 500 15px/1.5 Arial,sans-serif; }
html:is(.portal-session-pending,.portal-branding-pending)::before { content: ''; position: fixed; z-index: 100000; left: 50%; top: calc(50% - 40px); transform: translateX(-50%); width: 48px; height: 40px; background: url('../assets/portal-loading-mark.svg') center/contain no-repeat; }
.portal-loading { display: inline-flex; align-items: center; justify-content: center; gap: 8px; max-width: 100%; }
.portal-loading-mark { display: inline-block; flex: 0 0 28px; width: 28px; height: 26px; background: url('../assets/portal-loading-mark.svg') center/contain no-repeat; }
.cleaner-shift-card .portal-loading-mark,
.supervisor-mobile-hero .portal-loading-mark { filter: brightness(0) invert(1); }
@media screen { html:is(.portal-branding-pending,.portal-session-pending) body * { visibility: hidden !important; } }
/* A timeout/error must never expose an unconfirmed operator on sign-in. */
html.portal-login-unbranded { --primary: #203C50; --accent: #007CA8; }
html.portal-login-unbranded .auth-page { background: #F4F7FB !important; }
html.portal-login-unbranded .auth-brand-panel { background: linear-gradient(155deg,#FFFFFF,#EAF3F9) !important; color: #203C50; }
html.portal-login-unbranded .auth-brand-panel::after { display: none; }
html.portal-login-unbranded .auth-brand-panel p,
html.portal-login-unbranded .auth-brand-panel .auth-brand-footer { color: #52697B; }
html.portal-login-unbranded .auth-page .btn-primary { background: #007CA8 !important; }
html.portal-login-unbranded .auth-mobile-footer { background: #F4F8FB !important; color: #52697B; }
html.portal-login-unbranded :is([data-operator-logo],[data-operator-copyright]) { visibility: hidden; }
@media print { .portal-loading-mark, html.portal-branding-pending::before { display: none; } }
@media print { html.portal-branding-pending::after { display: none; }html.portal-branding-pending body { visibility: visible; } }
[data-operator-logo][hidden] { display: none !important; }
html[data-portal-branding="school"] {
  --primary: #203C50;
  --accent: #007CA8;
  --accent-hover: #00658A;
  --accent-soft: #EDF5FA;
  --brand-gold: #856821;
  --sidebar-bg: #F8FAFC;
  --sidebar-text: #455C6D;
  --sidebar-hover-bg: #203C50;
  --bg-app: #F5F7FA;
}
html[data-portal-branding="school"] .sidebar,
html[data-portal-branding="school"] .head-office-sidebar {
  background: linear-gradient(155deg, #FFFFFF 0%, #EAF4FB 42%, #D7EAF6 100%) !important;
  border-right: 1px solid #DDE6EE;
  box-shadow: none;
}
html[data-portal-branding="school"] .sidebar-header { border-bottom: 1px solid #E2E9EF; padding-block: 1.4rem; }
html[data-portal-branding="school"] .sidebar-menu a { color: #455C6D; background: transparent; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
html[data-portal-branding="school"] .sidebar-menu a:hover,
html[data-portal-branding="school"] .sidebar-menu a:focus-visible { color: #203C50; background: linear-gradient(110deg, #FCFAF4, #FFFFFF); border-color: transparent; border-left-color: #E4D9BE; box-shadow: none; }
html[data-portal-branding="school"] .sidebar-menu a.active { color: #203C50; background: linear-gradient(110deg, #FAF6EB, #FFFDF8); border-color: transparent; border-left-color: #CDBB8D; font-weight: 700; box-shadow: inset 2px 0 #CDBB8D; }
html[data-portal-branding="school"] .sidebar-menu a.active:is(:hover,:focus-visible) { color: #203C50; background: linear-gradient(110deg, #F8F2E3, #FFFDF8); border-left-color: #CDBB8D; }
html[data-portal-branding="school"] .sidebar-menu a:focus-visible { outline: 2px solid #007CA8; outline-offset: -2px; }
html[data-portal-branding="school"] .sidebar-section > summary,
html[data-portal-branding="school"] .portal-preview-section h2,
html[data-portal-branding="school"] .sidebar-nav-label,
html[data-portal-branding="school"] .sidebar-subgroup-label { color: #856821; background: transparent; }
html[data-portal-branding="school"] .sidebar-section { border-color: #E2E9EF; }
html[data-portal-branding="school"] .sidebar-subdivider { background: #DAE4ED; }
html[data-portal-branding="school"] .portal-preview-grid a { border-color: #DDE6EE; background: #fff; }
html[data-portal-branding="school"] .sidebar-footer { background: rgba(255,255,255,.65); border-top-color: #DAE4ED; }
html[data-portal-branding="school"] .sidebar #user-display-name { color: #203C50; }
html[data-portal-branding="school"] .sidebar-support,
html[data-portal-branding="school"] .sidebar-site-control label { color: #52697B; }
html[data-portal-branding="school"] .sidebar-site-display { color: #203C50; }
html[data-portal-branding="school"] .sidebar-site-select-shell { background: #fff; border-color: #CCDCE7; }
html[data-portal-branding="school"] .sidebar-site-select-shell::after { color: #52697B; }
html[data-portal-branding="school"] .btn-logout { background: #FFF4F4; border-color: #E8C9C9; color: #994545; }
html[data-portal-branding="school"] .btn-logout:hover { background: #FBE9E9; color: #843333; }
html[data-portal-branding="school"] .admin-menu-toggle,
html[data-portal-branding="school"] .role-menu-toggle { color: #203C50; background: #EDF5FA; border-color: #CCDCE7; }
html[data-portal-branding="school"] .cleaner-header { background: #F8FAFC !important; color: #203C50; border-bottom: 1px solid #DDE6EE; }
html[data-portal-branding="school"] .cleaner-shift-card,
html[data-portal-branding="school"] .supervisor-mobile-hero,
html[data-portal-branding="school"] .field-mobile-nav,
html[data-portal-branding="school"] .client-mobile-nav,
html[data-portal-branding="school"] .field-mobile-header,
html[data-portal-branding="school"] .client-mobile-header {
  background: linear-gradient(135deg, #203C50, #275B74) !important;
}
html[data-portal-branding="school"] .cleaner-bottom-nav { background: linear-gradient(135deg, #203C50, #275B74) !important; }
html[data-portal-branding="school"] .cleaner-topbar { background: #F8FAFC !important; color: #203C50; border-bottom: 1px solid #DDE6EE; box-shadow: none; }
html[data-portal-branding="school"] .cleaner-topbar .cleaner-logout { color: #994545; background: #FFF4F4; border-color: #E8C9C9; }
html[data-portal-branding="school"] .auth-page { background: radial-gradient(ellipse at 12% 15%, #E2EFF7, transparent 55%), #F3F6FA !important; }
html[data-portal-branding="school"] .auth-container { border: 1px solid #DDE6EE; box-shadow: 0 20px 60px rgba(32,60,80,.1); }
html[data-portal-branding="school"] .auth-container:hover,
html[data-portal-branding="school"] .auth-container:focus-within { border-color: #C5DAE8; box-shadow: 0 20px 60px rgba(32,60,80,.13); }
@media (min-width: 769px) and (hover: hover) and (pointer: fine) {
  html[data-portal-branding="school"] .auth-container:hover {
    border-color: #B59445;
    box-shadow: 0 20px 60px rgba(32,60,80,.13),
      0 0 0 2px rgba(181,148,69,.24),
      0 12px 48px rgba(181,148,69,.22);
  }
}
html[data-portal-branding="school"] .auth-page .btn-primary { background: #007CA8 !important; border-color: #007CA8; box-shadow: 0 4px 12px rgba(0,124,168,.12); }
html[data-portal-branding="school"] .auth-page .btn-primary:hover { background: #00658A !important; }
html[data-portal-branding="school"] .auth-brand-panel,
html[data-portal-branding="school"] .access-code-brand { background: linear-gradient(155deg, #FAFCFE 0%, #EAF3F9 100%) !important; color: #203C50; }
html[data-portal-branding="school"] .auth-brand-panel { border-right: 1px solid #E2E9EF; position: relative; }
html[data-portal-branding="school"] .auth-brand-panel p,
html[data-portal-branding="school"] .auth-brand-panel .auth-brand-footer,
html[data-portal-branding="school"] .auth-brand-panel .auth-brand-footer small { color: #52697B; }
html[data-portal-branding="school"] .auth-eyebrow { color: #007CA8; }
html[data-portal-branding="school"] .auth-brand-panel h1 { font-family: var(--font-body); font-size: clamp(1.8rem, 3vw, 2.4rem); font-weight: 650; letter-spacing: -.035em; }
html[data-portal-branding="school"] .auth-card-heading h2 { font-family: var(--font-body); font-weight: 650; }
html[data-portal-branding="school"] .auth-mobile-footer { background: #F4F8FB !important; border-top-color: #E2E9EF; color: #52697B; }
html[data-portal-branding="school"] .auth-mobile-footer small { color: #52697B; }
html[data-portal-branding="school"] .auth-brand-panel::after { display: none; }
/* Reference/service guidance only: do not recolour errors or status badges. */
html[data-portal-branding="school"] .room-type-guide-notice,
html[data-portal-branding="school"] .periodical-disclaimer {
  border: 1px solid rgba(184,146,31,.35);
  border-left: 4px solid #B59445;
  border-radius: 10px;
  background: rgba(212,175,55,.08);
  color: var(--text-muted);
  box-shadow: none;
}
html[data-portal-branding="school"] .periodical-disclaimer h3 { color: #7A5300 !important; }
@media screen and (max-width: 768px) {
  .room-type-guide-logo { display: none !important; }
}
html[data-portal-branding="school"] .brand-action-button { background: linear-gradient(120deg, #24516D, #007CA8) !important; }
html[data-portal-branding="school"] .cleaner-mobile-icon { object-fit: contain; }
html[data-portal-branding="school"] .cleaner-mobile-icon[data-portal-wordmark="false"] { width: 52px; height: 52px; padding: 0; background: transparent; box-shadow: none; }
html[data-portal-branding="school"] .brand-logo,
html[data-portal-branding="school"] [data-operator-logo] {
  width: 72px; max-width: 100%; height: 72px; object-fit: contain;
  padding: 3px; border-radius: 8px; background: #fff;
}
.portal-brand-lockup { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.portal-brand-caption { display: none; }
html[data-portal-branding="school"] .portal-brand-caption { display: block; color: #856821; font-size: .62rem; font-weight: 700; line-height: 1.4; letter-spacing: .14em; text-align: center; }
html[data-portal-branding="school"] .auth-logo[data-operator-logo] { width: 112px; height: 112px; padding: 9px; }
html[data-portal-branding="school"] img[data-portal-wordmark="true"] { width: 190px; max-width: 100%; height: auto; padding: 0; border-radius: 0; background: transparent; }
html[data-portal-branding="school"] .auth-logo[data-portal-wordmark="true"] { width: min(240px, 100%); height: auto; padding: 0; }
@media(max-width:768px) { html[data-portal-branding="school"] .auth-brand-panel { border-right: 0; border-bottom: 1px solid #E2E9EF; }html[data-portal-branding="school"] .auth-brand-panel h1 { font-size: 1.55rem; margin-bottom: .25rem; }html[data-portal-branding="school"] .auth-container { border: 0; box-shadow: none; } }
@media(max-width:768px) { html[data-portal-branding="school"] .field-mobile-brand img[data-portal-wordmark="true"],html[data-portal-branding="school"] .client-mobile-brand img[data-portal-wordmark="true"] { width: 145px; background: #fff; padding: 4px; border-radius: 4px; } }
html[data-portal-branding="school"] .scope-report-table th { background: #203C50 !important; }
.site-branding-form { display: grid; gap: .75rem; padding: 1rem; border-top: 1px solid var(--border); }
.site-branding-form h2,.site-branding-form p { margin: 0; }
.site-branding-form label { font-size: .85rem; font-weight: 700; }
.site-branding-form select { width: 100%; min-height: 44px; }
.site-branding-form small { color: var(--text-muted); line-height: 1.5; }
.site-branding-form button { justify-self: start; }
.site-branding-status { font-size: .85rem; color: var(--text-muted); }
