* { box-sizing: border-box; border-radius: 0; }

:root {
  --ink: #000000;
  --muted: #506579;
  --line: #000000;
  --paper: #FFFFFF;
  --panel: #E8E8E8;
  --link: #0000FF;
  --link-visited: #8b36d1;
  --font: 'Times New Roman', Times, serif;
  --border: 0px;
  --small: 18px;
  --bleu: #0033A0;
  --jaune: #FFC600;
  --vert: #009A44;
  --orange: #FF6900;
  --violet: #6E267B;
  --alerte: #CC0000;
  --attente: #B36B00;
  --valide: #006600;
  --rayure: #F2F2F2;
  --pastel-bleu: #DBE2F2;
  --pastel-jaune: #FFF7DB;
  --pastel-vert: #DBF1E5;
  --pastel-orange: #FFEADB;
  --pastel-violet: #EBE1ED;
  --pastel-gris: #F1F1F1;
  --pastel-alerte: #F7DBDB;
  --ligne-douce: #CFCFCF;
  --space-1: 5px;
  --space-2: 5px;
  --space-3: 10px;
  --space-4: 10px;
  --space-5: 30px;
  --space-6: 30px;
}

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font);
  font-size: 1.3rem;
  line-height: 1;
  overflow-wrap: break-word;
}

body *:not(button):not(button *):not(input):not(textarea):not(select):not(option) {
  font-size: 1.3rem !important;
  line-height: 1 !important;
}
.secondaire, .secondaire *, .note, .note *, .etiquette, .etiquette *, .table-hint,
.table-hint *, .calendar-weekdays, .calendar-weekdays *,
input, select, textarea, option {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1.04rem !important;
}

::selection { background: var(--violet); color: var(--paper); }

h1::selection, h2::selection, h3::selection, h4::selection, h5::selection, h6::selection { background: var(--bleu); color: var(--paper); }

a::selection { background: var(--vert); color: var(--paper); }

.etiquette::selection { background: var(--jaune); color: var(--ink); }

code {
  font-family: 'Courier New', Courier, monospace;
  background: var(--panel);
  padding: 1px 4px;
}

strong, b { font-weight: normal; text-decoration: underline; }

th { font-weight: normal; }

h1, h2, h3, h4, h5, h6 {
  font-weight: normal; text-decoration: underline;
  margin: 1em 0 0.5em;
}

a { color: var(--link); text-decoration: underline; }

a:visited { color: var(--link-visited); }

.page {
  margin: 0 auto;
  padding: var(--space-2) clamp(8px, 1.5vw, 20px) var(--space-5);
  border: var(--border) solid var(--ink);
  min-height: 100vh;
}

.view-toggle { display: flex; gap: var(--space-2); }

.view-btn.active { font-weight: normal; text-decoration: underline; }

.error-banner {
  background: var(--ink);
  color: var(--paper);
  border: 1px solid var(--ink);
  padding: var(--space-2) var(--space-2);
  margin-bottom: var(--space-3);
  font-weight: normal; text-decoration: underline;
}

.table-hint { color: var(--muted); margin: -4px 0 14px; }

.secondaire { color: var(--muted); }

.note { color: var(--muted); margin: var(--space-1) 0 0; }

.card {
  background: var(--paper);
  border: 1px solid var(--ink);
  border-left: 1px solid var(--ink);
  padding: var(--space-2);
  display: flex;
  justify-content: space-between;
  gap: var(--space-2);
}

.etiquette { color: var(--ink); }

.calendar-nav { display: flex; align-items: center; justify-content: center; gap: var(--space-2); margin-bottom: var(--space-3); flex-wrap: wrap; }

.calendar-month-label { min-width: 150px; text-align: center; }

.calendar-weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 3px;
  margin-bottom: 3px;
  color: var(--muted);
  text-align: center;
}

.calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: var(--space-1); }

.cal-day {
  min-height: 110px;
  background: var(--paper);
  border: 1px solid var(--ink);
  padding: var(--space-1);
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  cursor: pointer;
  overflow: hidden;
}

.cal-day.empty { background: transparent; border-color: transparent; cursor: default; }

.cal-day.today { border: var(--border) solid var(--ink); background: var(--panel); }

.cal-event-dot {
  color: var(--ink);
  background: var(--panel);
  border: 1px solid var(--ink);
  padding: 2px var(--space-1);
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  line-height: 1.3;
}

.label { display: block; color: var(--ink); margin-top: var(--space-2); margin-bottom: var(--space-1); font-weight: normal; text-decoration: underline; }

.form-section-title { margin: var(--space-4) 0 0; padding-top: var(--space-3); border-top: 1px solid var(--ink); }

.form-section-title:first-of-type { margin-top: var(--space-2); padding-top: 0; border-top: none; }

textarea.input { width: 100%; box-sizing: border-box; }

.toast-container {
  position: fixed;
  bottom: 16px;
  right: 16px;
  display: flex;
  flex-direction: column-reverse;
  gap: var(--space-1);
  z-index: 100;
  align-items: flex-end;
  max-width: min(340px, calc(100vw - 32px));
}

.toast {
  background: var(--ink);
  color: var(--paper);
  padding: var(--space-2) var(--space-3);
  border: 1px solid var(--ink);
}

.souligne { text-decoration: underline; }

.public-section-title { margin: 0 0 var(--space-2); border-bottom: var(--border) solid var(--ink); }

.cal-event-dot { text-decoration: none; }

@media (max-width: 640px) {
  .calendar-weekdays, .calendar-grid { display: none; }
}

@media (max-width: 640px) {
  .page { padding: var(--space-3) var(--space-2) var(--space-2); }
  .view-toggle { align-self: flex-end; }
  .card { flex-direction: column; }
  .cal-day { min-height: 70px; padding: var(--space-1); }
  .calendar-month-label { min-width: auto; }
}
