/* ===== Soins à Domicile — thème visuel ===== */

:root {
  --brand-primary: #2B6E63;
  --brand-primary-dark: #1F4F47;
  --brand-primary-light: #E1EDE9;
  --brand-accent: #DD7248;
  --brand-accent-dark: #C15E37;
  --brand-bg: #F7F5F1;
  --brand-surface: #FFFFFF;
  --brand-text: #24302C;
  --brand-text-muted: #6C7A74;
  --brand-border: #E4E1D8;
  --brand-warn-bg: #FBF0DD;
  --brand-warn-border: #E9CFA0;
}

body {
  background: var(--brand-bg);
  color: var(--brand-text);
  font-family: 'Work Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

h1, h2, h3, h4, .navbar-brand {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 600;
  color: var(--brand-primary-dark);
  letter-spacing: -0.01em;
}

h1 { margin-bottom: 1.25rem; }

a { color: var(--brand-primary); }
a:hover { color: var(--brand-primary-dark); }

/* Navbar */
.navbar.bg-dark {
  background-color: var(--brand-primary-dark) !important;
  border-bottom: 3px solid var(--brand-accent);
}
.navbar-brand { color: #fff !important; font-size: 1.35rem; }
.navbar .nav-link { color: rgba(255,255,255,0.85) !important; font-weight: 500; }
.navbar .nav-link:hover { color: #fff !important; }

/* Boutons */
.btn { border-radius: 8px; font-weight: 500; transition: background-color .15s ease, border-color .15s ease, transform .1s ease; }
.btn:active { transform: translateY(1px); }

.btn-primary {
  background-color: var(--brand-accent);
  border-color: var(--brand-accent);
  color: #fff;
}
.btn-primary:hover, .btn-primary:focus {
  background-color: var(--brand-accent-dark);
  border-color: var(--brand-accent-dark);
  color: #fff;
}

.btn-outline-primary { color: var(--brand-primary); border-color: var(--brand-primary); }
.btn-outline-primary:hover { background-color: var(--brand-primary); border-color: var(--brand-primary); color: #fff; }

.btn-outline-secondary { color: var(--brand-text-muted); border-color: var(--brand-border); }
.btn-outline-secondary:hover { background-color: var(--brand-text-muted); border-color: var(--brand-text-muted); }

.btn-outline-success { color: #2F7D5C; border-color: #2F7D5C; }
.btn-outline-success:hover { background-color: #2F7D5C; border-color: #2F7D5C; }

.btn-outline-danger { color: #B14A3C; border-color: #B14A3C; }
.btn-outline-danger:hover { background-color: #B14A3C; border-color: #B14A3C; }

.btn-link { color: var(--brand-primary); }

/* Cartes / tuiles d'accueil */
.card {
  border: 1px solid var(--brand-border);
  border-radius: 12px;
  background: var(--brand-surface);
}

/* Tableaux */
.table { --bs-table-bg: transparent; }
.table thead th {
  color: var(--brand-text-muted);
  font-weight: 600;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  border-bottom-width: 1px;
  border-color: var(--brand-border);
}
.table td { border-color: var(--brand-border); vertical-align: middle; }

/* Statut "hospitalisé" : signalé sans avoir l'air d'une ligne cassée */
.intervention-hospitalise {
  background-color: var(--brand-warn-bg) !important;
  color: var(--brand-text);
}
.intervention-hospitalise td { border-color: var(--brand-warn-border); }

/* Badges */
.badge.bg-secondary { background-color: var(--brand-text-muted) !important; }
.badge.bg-warning { background-color: #E8B34F !important; color: #3D2E0E !important; }
.badge.bg-danger { background-color: #B14A3C !important; }
.badge.bg-info { background-color: var(--brand-primary-light) !important; color: var(--brand-primary-dark) !important; }

/* Alertes */
.alert-info { background-color: var(--brand-primary-light); border-color: var(--brand-border); color: var(--brand-primary-dark); }
.alert-success { background-color: #E4F1E8; border-color: #BFE0CB; color: #245A38; }
.alert-danger { background-color: #FBEAE6; border-color: #EFC3B7; color: #8C3B2A; }

/* Formulaires */
.form-control:focus, .form-select:focus {
  border-color: var(--brand-primary);
  box-shadow: 0 0 0 0.2rem rgba(43, 110, 99, 0.15);
}

/* Boutons bascule (disponibilités) */
.btn-check:checked + .btn-outline-primary {
  background-color: var(--brand-primary);
  border-color: var(--brand-primary);
}

/* ===== Planning : cartes journalières (signature visuelle de l'app) ===== */
.day-card {
  background: var(--brand-surface);
  border: 1px solid var(--brand-border);
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 1.25rem;
}
.day-card-header {
  background: var(--brand-primary-light);
  padding: 0.6rem 1rem;
  display: flex;
  align-items: baseline;
  gap: 0.6rem;
  border-bottom: 1px solid var(--brand-border);
}
.day-card-header .day-name {
  font-family: 'Fraunces', serif;
  font-weight: 600;
  font-size: 1.05rem;
  color: var(--brand-primary-dark);
  text-transform: capitalize;
}
.day-card-header .day-date { color: var(--brand-text-muted); font-size: 0.9rem; }
.day-card-body { padding: 0.5rem 0.75rem; }
.day-card-empty { padding: 0.9rem 1rem; color: var(--brand-text-muted); font-style: italic; }

/* Tuiles d'accueil */
.home-tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.15rem;
  height: 110px;
  border: 1px solid var(--brand-border);
  border-radius: 12px;
  background: var(--brand-surface);
  text-decoration: none;
  transition: border-color .15s ease, box-shadow .15s ease, transform .1s ease;
}
.home-tile:hover {
  border-color: var(--brand-primary);
  box-shadow: 0 8px 20px rgba(31, 79, 71, 0.08);
  transform: translateY(-1px);
}
.home-tile-label {
  font-family: 'Fraunces', serif;
  font-weight: 600;
  font-size: 1.15rem;
  color: var(--brand-primary-dark);
}
.home-tile-sub { font-size: 0.8rem; color: var(--brand-text-muted); }

/* ===== Planning : vue calendrier graphique ===== */
.cal-toggle .btn.active { background-color: var(--brand-primary); border-color: var(--brand-primary); color: #fff; }

.cal-wrapper {
  border: 1px solid var(--brand-border);
  border-radius: 12px;
  overflow: hidden;
  background: var(--brand-surface);
  overflow-x: auto;
}
.cal-header-row { display: flex; border-bottom: 1px solid var(--brand-border); min-width: 720px; }
.cal-hour-col-header { width: 50px; flex: none; }
.cal-day-header {
  flex: 1; min-width: 90px; text-align: center; padding: 8px 4px;
  border-left: 1px solid var(--brand-border);
  font-family: 'Fraunces', serif; font-weight: 600; color: var(--brand-primary-dark);
}
.cal-day-header .cal-day-date { display: block; font-family: 'Work Sans', sans-serif; font-weight: 400; font-size: 0.8rem; color: var(--brand-text-muted); }
.cal-body-row { display: flex; position: relative; min-width: 720px; }
.cal-hour-col { width: 50px; flex: none; }
.cal-hour-label { font-size: 0.72rem; color: var(--brand-text-muted); text-align: right; padding-right: 6px; box-sizing: border-box; border-top: 1px solid var(--brand-border); }
.cal-day-col {
  flex: 1; min-width: 90px; position: relative; border-left: 1px solid var(--brand-border);
  background-image: repeating-linear-gradient(to bottom, transparent, transparent 59px, #9AA6A0 60px);
}
.cal-event {
  position: absolute; min-height: 18px;
  background: var(--brand-primary-light); border-left: 3px solid var(--brand-primary);
  border-radius: 4px; padding: 1px 4px; font-size: 0.7rem; line-height: 1.15;
  overflow: hidden; cursor: pointer; color: var(--brand-primary-dark);
}
.cal-event:hover { filter: brightness(0.95); }
.cal-event.cal-event-hospitalise { background: var(--brand-warn-bg); border-left-color: #E8B34F; }
.cal-event.cal-event-remplacement { border-left-color: var(--brand-accent); }
.cal-event.cal-event-absent {
  background: #F5C2C7 !important;
  border-left-color: #842029 !important;
  color: #58151C !important;
}
.cal-event.cal-event-selectionne {
  background: #FFE58A !important;
  border-left-color: #C9971A !important;
  outline: 2px solid #C9971A;
  outline-offset: -1px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.25);
  color: #4A3B00 !important;
}
.cal-event .cal-event-heure { font-weight: 700; color: #000; }

@media (max-width: 576px) {
  h1 { font-size: 1.4rem; }
  .btn { font-size: 0.9rem; }
}
