/*
 * EPRA Corporate Access Platform Design System
 * v2.5.0 Final - Sprint 1
 * Official palette supplied from the EPRA Brand Identity Style Guide.
 */
:root {
  --epra-blue: #12497F;
  --epra-medium-blue: #2274BC;
  --epra-light-blue: #69AAF3;
  --epra-gold: #EBA61C;
  --epra-grey: #C6C5C2;
  --epra-light-grey: #DFDFE0;
  --epra-white: #FFFFFF;

  --epra-text: #12497F;
  --epra-text-muted: #5F6F7F;
  --epra-border: #C6C5C2;
  --epra-surface: #FFFFFF;
  --epra-page: #F4F7FA;
  --epra-selected: #EAF4FF;
  --epra-selected-border: #69AAF3;
  --epra-focus: rgba(105, 170, 243, 0.42);
  --epra-shadow: 0 10px 28px rgba(18, 73, 127, 0.10);

  --epra-success: #26703B;
  --epra-success-bg: #E7F5EA;
  --epra-warning: #875600;
  --epra-warning-bg: #FFF8E8;
  --epra-danger: #9A2020;
  --epra-danger-bg: #F6E1E1;

  /* Compatibility aliases used by existing pages. */
  --blue: var(--epra-blue);
  --yellow: var(--epra-light-blue);
  --gold: var(--epra-gold);
  --grey: var(--epra-page);
  --white: var(--epra-white);
  --line: var(--epra-border);
  --bg: var(--epra-page);
  --soft: #F4F7FA;
  --red: var(--epra-danger);
  --green: var(--epra-success);
  --shadow: var(--epra-shadow);
}

html { color-scheme: light; }
body {
  background: var(--epra-page) !important;
  color: var(--epra-text);
  accent-color: var(--epra-medium-blue);
}

::selection { background: rgba(105, 170, 243, 0.35); }
a { color: var(--epra-medium-blue); }
a:hover { color: var(--epra-blue); }

/* Shared surfaces */
.panel,
.card,
.hero-card,
.info-card,
.marketing-card,
.workspace,
.workspace-card,
.schedule-card,
.metric,
.export,
.modal-content,
.dialog,
.login-card,
.form-card {
  border-color: var(--epra-border) !important;
  box-shadow: var(--epra-shadow);
}

/* Shared controls */
button,
.button,
.tab,
input[type="button"],
input[type="submit"] {
  transition: background-color .16s ease, border-color .16s ease, color .16s ease, transform .16s ease, box-shadow .16s ease;
}
button:focus-visible,
.button:focus-visible,
.tab:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid var(--epra-focus) !important;
  outline-offset: 2px;
}

.button,
.tab,
button:not(.plain):not(.icon-button) {
  border-color: var(--epra-blue) !important;
  color: var(--epra-blue);
}
.button:hover,
.tab:hover,
button:not(.plain):not(.icon-button):hover {
  border-color: var(--epra-medium-blue) !important;
  background: #F1F7FD;
}
.button.primary,
.tab.active,
button.primary,
button[type="submit"] {
  background: var(--epra-medium-blue) !important;
  border-color: var(--epra-medium-blue) !important;
  color: var(--epra-white) !important;
}
.button.primary:hover,
.tab.active:hover,
button.primary:hover,
button[type="submit"]:hover {
  background: var(--epra-blue) !important;
  border-color: var(--epra-blue) !important;
}
.button.danger,
button.danger,
.delete,
.remove {
  border-color: var(--epra-danger) !important;
  color: var(--epra-danger) !important;
}

input,
select,
textarea {
  border-color: var(--epra-border) !important;
}
input:focus,
select:focus,
textarea:focus {
  border-color: var(--epra-light-blue) !important;
  box-shadow: 0 0 0 3px var(--epra-focus);
}

/* Navigation and page identity */
.topbar,
.app-header,
.primary-header,
.workspace-header {
  border-color: var(--epra-light-blue) !important;
}
.workspace-header,
.admin-edit-banner,
.admin-workspace-header {
  background: var(--epra-selected) !important;
  border-left-color: var(--epra-light-blue) !important;
  color: var(--epra-blue) !important;
}

/* Tables */
table { border-color: var(--epra-border); }
th {
  background: var(--epra-blue) !important;
  color: var(--epra-white) !important;
}
tbody tr:hover td { background: #F1F7FD; }
tr.selected td,
.selected-row td { background: var(--epra-selected) !important; }

/* Status and information treatments */
.notice,
.announcement,
.warning,
.warn-box {
  border-left-color: var(--epra-light-blue) !important;
  background: var(--epra-selected) !important;
  color: var(--epra-blue) !important;
}
.success,
.success-message,
.status-success {
  background: var(--epra-success-bg) !important;
  color: var(--epra-success) !important;
}
.error,
.error-message,
.status-error {
  background: var(--epra-danger-bg);
  color: var(--epra-danger) !important;
}

/* Meeting selection and reports: replace development amber with EPRA blue. */
.bar i,
.progress-fill,
.timeline-dot,
.step .number,
.number,
.badge.group,
.type.group {
  background: var(--epra-light-blue) !important;
  color: var(--epra-blue) !important;
}
.meeting-card.selected,
.meeting.selected,
.slot.selected,
.choice.selected,
.booking-selected {
  background: var(--epra-selected) !important;
  border-color: var(--epra-selected-border) !important;
}

/* Gold remains reserved for genuine warnings and exceptional emphasis. */
.brand-accent,
.genuine-warning {
  border-color: var(--epra-gold) !important;
}
