/* Common palette and typography from the calendar and its project forms. */
:root {
  --app-font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --app-text: #243447;
  --app-heading: #183755;
  --app-muted: #64748b;
  --app-secondary: #475569;
  --app-surface: #fff;
  --app-surface-soft: #f8fafc;
  --app-surface-header: #f1f5f9;
  --app-surface-selected: #e8eef5;
  --app-border: #dce3eb;
  --app-border-strong: #cbd5e1;
  --app-primary: #0d6efd;
  --app-primary-hover: #0b5ed7;
  --app-accent: #3074bc;
  --app-accent-soft: #eaf2ff;
  --bs-font-sans-serif: var(--app-font-family);
  --bs-body-font-family: var(--app-font-family);
  --bs-body-color: var(--app-text);
  --bs-body-color-rgb: 36, 52, 71;
  --bs-body-bg: var(--app-surface);
  --bs-secondary-color: var(--app-muted);
  --bs-secondary-color-rgb: 100, 116, 139;
  --bs-tertiary-bg: var(--app-surface-header);
  --bs-tertiary-bg-rgb: 241, 245, 249;
  --bs-light-rgb: 248, 250, 252;
  --bs-dark-rgb: 36, 52, 71;
  --bs-border-color: var(--app-border);
  --bs-heading-color: var(--app-heading);
  --bs-link-color: var(--app-primary);
  --bs-link-hover-color: var(--app-primary-hover);
}

body, input, select, textarea, button { font-family: var(--app-font-family); }
body { color: var(--app-text); background-color: var(--app-surface); }
h1, h2, h3, h4, h5, h6, legend { color: var(--app-heading); }
h1, h2, h3, .modal-title { font-weight: 600; }
main h1 { font-size: 1.35rem; }
.form-label, .col-form-label { color: var(--app-muted); font-size: .85rem; }
.form-text, .text-muted { color: var(--app-muted) !important; }
.form-control, .form-select, .input-group-text {
  color: var(--app-text);
  border-color: var(--app-border-strong);
  border-radius: 6px;
  font-size: .9rem;
}
.form-control, .form-select { background-color: var(--app-surface); }
.form-control:disabled, .form-select:disabled, .input-group-text { background-color: var(--app-surface-header); }
.form-control:focus, .form-select:focus {
  color: var(--app-text);
  border-color: #86b7fe;
  box-shadow: 0 0 0 .2rem #0d6efd20;
}
.btn { --bs-btn-border-radius: 6px; font-family: var(--app-font-family); }
.btn-primary {
  --bs-btn-bg: var(--app-primary);
  --bs-btn-border-color: var(--app-primary);
  --bs-btn-hover-bg: var(--app-primary-hover);
  --bs-btn-hover-border-color: var(--app-primary-hover);
  --bs-btn-active-bg: #0a58ca;
  --bs-btn-active-border-color: #0a58ca;
  --bs-btn-disabled-bg: var(--app-primary);
  --bs-btn-disabled-border-color: var(--app-primary);
}
.btn-outline-secondary {
  --bs-btn-color: var(--app-secondary);
  --bs-btn-border-color: var(--app-border-strong);
  --bs-btn-hover-color: var(--app-heading);
  --bs-btn-hover-bg: var(--app-surface-selected);
  --bs-btn-hover-border-color: var(--app-border-strong);
  --bs-btn-active-color: var(--app-heading);
  --bs-btn-active-bg: var(--app-surface-selected);
  --bs-btn-active-border-color: var(--app-border-strong);
}
.card, .modal-content, dialog {
  color: var(--app-text);
  background-color: var(--app-surface);
  border-color: var(--app-border);
}
.card { --bs-card-border-radius: 8px; }
.card-header, .modal-header, .modal-footer, .accordion-button {
  color: var(--app-heading);
  background-color: var(--app-surface-header);
  border-color: var(--app-border);
}
.accordion-button:not(.collapsed) { color: var(--app-heading); background: var(--app-accent-soft); }
.table:where(:not(.table-primary, .table-secondary, .table-success, .table-info, .table-warning, .table-danger, .table-light, .table-dark)) {
  --bs-table-color: var(--app-text);
  --bs-table-bg: var(--app-surface);
  --bs-table-border-color: var(--app-border);
  --bs-table-striped-color: var(--app-text);
  --bs-table-striped-bg: var(--app-surface-soft);
  --bs-table-hover-color: var(--app-text);
  --bs-table-hover-bg: var(--app-accent-soft);
  font-size: .9rem;
}
.table thead th:where(:not(.table-primary, .table-secondary, .table-success, .table-info, .table-warning, .table-danger, .table-light, .table-dark)) { color: var(--app-secondary); background: var(--app-surface-header); font-weight: 600; }
.page-toolbar { background: var(--app-surface); border-bottom: 1px solid var(--app-border); }
.quick-search { border-color: var(--app-border-strong); }
.side-menu-link.active { color: var(--app-heading); background: var(--app-accent-soft); }
.dropdown-menu { --bs-dropdown-color: var(--app-text); --bs-dropdown-link-color: var(--app-text); --bs-dropdown-link-hover-bg: var(--app-surface-header); --bs-dropdown-link-active-bg: var(--app-primary); }
.nav-pills { --bs-nav-pills-link-active-bg: var(--app-primary); }
.nav-tabs { --bs-nav-tabs-border-color: var(--app-border); --bs-nav-tabs-link-active-color: var(--app-heading); }
@media (max-width: 767px) {
  /* Keep mobile controls readable without automatic zoom. */
  .form-control, .form-select { font-size: 16px; }
}
