:root { --bleu:#1e5a8a; --gris:#f4f6f8; --texte:#222; --danger:#b3261e; }
* { box-sizing:border-box; }
body { margin:0; font-family:-apple-system,"Segoe UI",Roboto,Arial,sans-serif; background:var(--gris); color:var(--texte); }
.container { max-width:1000px; margin:0 auto; padding:1rem; }
.nav { background:var(--bleu); color:#fff; display:flex; flex-wrap:wrap; align-items:center; padding:.6rem 1rem; gap:.5rem; }
.nav a, .nav .link { color:#fff; text-decoration:none; padding:.5rem; background:none; border:0; font:inherit; cursor:pointer; }
.nav .brand { font-weight:700; font-size:1.1rem; }
.nav-links { display:flex; flex-wrap:wrap; gap:.2rem; margin-left:auto; align-items:center; }
.nav-toggle { display:none; background:none; border:0; color:#fff; font-size:1.4rem; margin-left:auto; }
.card { background:#fff; border-radius:8px; padding:1rem 1.2rem; margin:1rem 0; box-shadow:0 1px 3px rgba(0,0,0,.12); }
.form label { display:block; margin:.7rem 0 .2rem; font-weight:600; }
.form input, .form select, .form textarea { width:100%; padding:.6rem; border:1px solid #bbb; border-radius:6px; font:inherit; }
.form input:focus, .form textarea:focus, .form select:focus { outline:3px solid #9dc3e6; border-color:var(--bleu); }
.btn { display:inline-block; background:var(--bleu); color:#fff; border:0; border-radius:6px; padding:.7rem 1.2rem; font:inherit; cursor:pointer; text-decoration:none; margin-top:.8rem; min-height:44px; }
.btn:hover { background:#164a72; }
.link { background:none; border:0; color:var(--bleu); cursor:pointer; font:inherit; text-decoration:underline; padding:.3rem; }
.danger { color:var(--danger); }
.inline { display:inline; }
.alert { padding:.8rem 1rem; border-radius:6px; margin:.8rem 0; }
.alert-success { background:#dff0d8; border:1px solid #3c763d; }
.alert-error { background:#f2dede; border:1px solid var(--danger); }
.pastille { display:inline-block; width:14px; height:14px; border-radius:50%; vertical-align:middle; margin-right:4px; border:1px solid #0002; }
.barre { background:#dde4ea; border-radius:10px; height:16px; overflow:hidden; margin:.4rem 0; }
.barre span { display:block; height:100%; background:var(--bleu); }
.barre.grand { height:26px; }
.table-wrap { overflow-x:auto; }
table { width:100%; border-collapse:collapse; background:#fff; }
th, td { padding:.6rem .8rem; border-bottom:1px solid #ddd; text-align:left; }
th { background:#e8eef4; }
.vide { color:#666; font-style:italic; }
.filtres { display:flex; flex-wrap:wrap; gap:.6rem; align-items:end; background:#fff; padding:.8rem; border-radius:8px; }
.filtres label { font-weight:600; display:block; font-size:.9rem; }
.nav-jours { display:flex; gap:1rem; flex-wrap:wrap; }
.semaine { display:grid; grid-template-columns:repeat(7,1fr); gap:.5rem; }
.jour { background:#fff; border-radius:8px; padding:.6rem; min-height:100px; }
.jour.aujourdhui { outline:3px solid var(--bleu); }
.jour h2 { font-size:1rem; margin:.2rem 0 .5rem; }
.entree-mini { border-top:1px solid #eee; padding:.4rem 0; font-size:.9rem; }
.entree footer { margin-top:.5rem; }
.note { font-size:.9rem; color:#555; }
.actions-rapides { display:flex; gap:.6rem; flex-wrap:wrap; }
@media (max-width:800px) {
  .semaine { grid-template-columns:1fr 1fr; }
  .nav-toggle { display:block; }
  .nav-links { display:none; width:100%; flex-direction:column; align-items:flex-start; }
  .nav-links.open { display:flex; }
}
@media (max-width:480px) { .semaine { grid-template-columns:1fr; } }
@media print { .nav, .btn, .pagination { display:none; } body { background:#fff; } }
