/* Unlimited Access: shared branding, separate from status and safety colours. */
:root {
  --ua-navy:#2b3990;
  --ua-blue:#3c84fa;
  --ua-black:#000;
  --ua-white:#fff;
  --ua-tint:#eef4ff;
  --ua-border:#cbdafb;
}
body.ua-portal,body.ua-admin { background:#f7f9ff; color:var(--ua-black); }
.ua-logo { display:block; height:auto; object-fit:contain; flex-shrink:0; border-radius:8px; }
.portal-brand-header { background:var(--ua-navy); box-shadow:0 3px 14px #2b39901a; }
.brand-accent-line { height:3px; background:var(--ua-blue); }
.brand-header-inner { display:flex; align-items:center; gap:24px; padding-top:8px; padding-bottom:8px; }
.portal-logo { width:144px; }
.brand-copy { min-width:0; }
.brand-copy h1 { color:var(--ua-white); font-size:18px; letter-spacing:.04em; }
.brand-copy p { color:#e2eaff; font-size:12px; margin-top:4px; }
.admin-logo { width:72px; }
.login-logo { width:176px; margin:0 auto 20px; }
.ua-admin #login-overlay { background:var(--ua-navy); }
.ua-admin header { border-bottom-color:var(--ua-border); }
.ua-admin #assignment-modal .bg-slate-900 { background:var(--ua-navy); }
.ua-admin #modal-site-subtitle { color:#e2eaff; }
.ua-admin .dtab.active,.ua-admin .mtab.active,.ua-admin .subtab.active { background:var(--ua-tint); color:var(--ua-navy); }
.ua-admin .dtab.active::after { background:var(--ua-blue); }
.ua-admin .mobile-actions-toggle { color:var(--ua-navy); border-color:var(--ua-border); }
.ua-admin .context-shift:hover { background:var(--ua-tint); }
.ua-admin button.bg-slate-900,.ua-admin button.bg-slate-800,
.ua-portal #submit-btn,.checklist-panel button.checklist-primary,
.ua-admin #availability-save,.ua-admin #availability-confirm,
.ua-admin .calendar-colors-dialog .color-primary,.ua-admin .shift-color-controls .color-primary {
  background:var(--ua-navy); border-color:var(--ua-navy); color:var(--ua-white);
}
.ua-admin button.bg-slate-900:enabled:hover,.ua-admin button.bg-slate-800:enabled:hover,
.ua-portal #submit-btn:enabled:hover,.checklist-panel button.checklist-primary:enabled:hover,
.ua-admin #availability-save:enabled:hover,.ua-admin #availability-confirm:enabled:hover {
  background:#202c72; border-color:#202c72;
}
.ua-portal #avatar-initial { background:var(--ua-navy); box-shadow:none; }
.ua-portal #loading-card > div { background:var(--ua-tint); }
.ua-portal #loading-card svg { color:var(--ua-navy); }
.ua-portal #kit-toggle-btn,.ua-portal button[id^="btn-week-"] {
  color:var(--ua-navy); background:var(--ua-tint); border-color:var(--ua-border);
}
.ua-portal #kit-toggle-btn:hover,.ua-portal button[id^="btn-week-"]:hover { background:#e0ebff; }
.ua-portal #selected-count { background:var(--ua-tint); color:var(--ua-navy); border-color:var(--ua-border); }
.ua-portal .date-chip.selected { background:var(--ua-tint); border-color:var(--ua-blue); }
.ua-portal .date-chip.selected .chip-check { background:var(--ua-navy); border-color:var(--ua-navy); }
.ua-portal input[type="checkbox"] { accent-color:var(--ua-navy); }
.ua-portal #coverall-size:focus { border-color:var(--ua-blue); box-shadow:0 0 0 3px #3c84fa33; }
.ua-portal main > #portal-card > section,.ua-portal main > #portal-card > div.bg-white { border-color:#dbe3f5; }
.ua-admin .checklist-panel button:focus-visible,.ua-portal button:focus-visible,
.ua-portal input:focus-visible,.ua-admin .checklist-panel :focus-visible { outline:2px solid var(--ua-blue); outline-offset:3px; }
@media(max-width:640px) {
  .brand-header-inner { gap:16px; }
  .portal-logo { width:112px; }
  .brand-copy h1 { font-size:15px; }
  .brand-copy p { font-size:11px; }
  .admin-logo { width:58px; }
}
.ua-portal .portal-save-bar { margin-top:20px; }
.ua-portal .portal-unsaved-note { margin:0 0 8px; padding:8px 12px; border-radius:8px; background:#fffbeb; color:#92400e; border:1px solid #fde68a; font-size:12px; font-weight:600; text-align:center; }
.ua-portal .portal-unsaved-note.hidden { display:none; }
.ua-portal .date-chip .chip-location { color:#475569; }
@media(max-width:640px) {
  .ua-portal .portal-save-bar { position:sticky; bottom:0; z-index:20; margin:20px -16px -16px; padding:12px 16px calc(12px + env(safe-area-inset-bottom)); background:rgba(255,255,255,.96); border-top:1px solid #dbe3f5; backdrop-filter:blur(6px); }
}
@media print { .ua-logo { print-color-adjust:exact; -webkit-print-color-adjust:exact; } }
