/* Feuille de style unique, sans framework. */
:root {
  --fond: #f6f5f2; --carte: #fff; --texte: #1f2328; --discret: #626a73;
  --accent: #b3261e; --accent-fonce: #8c1d17; --bord: #dcdad4;
  --ok: #1a7f37; --attention: #9a6700; --info: #0b5cad;
}
* { box-sizing: border-box; }
body { margin: 0; font: 16px/1.5 system-ui, -apple-system, "Segoe UI", sans-serif;
       color: var(--texte); background: var(--fond); }
a { color: var(--info); }
.entete { display: flex; align-items: center; justify-content: space-between; gap: 1rem;
          padding: .75rem 1.25rem; background: var(--carte); border-bottom: 1px solid var(--bord); }
.logo { font-weight: 700; font-size: 1.15rem; color: var(--accent); text-decoration: none; }
.entete nav { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.contenu { max-width: 1000px; margin: 1.5rem auto; padding: 0 1rem; }
.pied { text-align: center; color: var(--discret); font-size: .85rem; padding: 2rem 0; }
.carte { background: var(--carte); border: 1px solid var(--bord); border-radius: 8px;
         padding: 1.25rem 1.5rem; margin-bottom: 1.25rem; }
.carte.etroite { max-width: 440px; margin-left: auto; margin-right: auto; }
h1 { font-size: 1.5rem; margin-top: 0; }
label { display: block; margin-bottom: .9rem; font-weight: 500; }
input { display: block; width: 100%; margin-top: .25rem; padding: .55rem .65rem;
        border: 1px solid var(--bord); border-radius: 6px; font: inherit; }
button, .bouton { display: inline-block; padding: .5rem .9rem; border: 0; border-radius: 6px;
        background: var(--accent); color: #fff; font: inherit; cursor: pointer; text-decoration: none; }
button:hover, .bouton:hover { background: var(--accent-fonce); }
button.lien { background: none; color: var(--info); padding: 0; text-decoration: underline; }
button.danger { background: #fff; color: var(--accent); border: 1px solid var(--accent); }
form.en-ligne { display: inline; }
.erreur { color: var(--accent); background: #fdecea; padding: .6rem .8rem; border-radius: 6px; }
.succes { color: var(--ok); background: #e7f5ec; padding: .6rem .8rem; border-radius: 6px; }
.discret { color: var(--discret); font-size: .9rem; }
.bandeau { padding: .6rem 1.25rem; text-align: center; }
.bandeau-simulation { background: #fff4ce; border-bottom: 2px solid var(--attention); }
.bandeau-simulation button { margin-left: .75rem; }
.bandeau-info { background: #e8f1fb; }
.pastille { display: inline-block; padding: 0 .45rem; border-radius: 999px; font-size: .8rem;
            background: #eee; color: var(--discret); }
.pastille.ok { background: #e7f5ec; color: var(--ok); }
.pastille.attention { background: #fff4ce; color: var(--attention); }
.fiche { display: grid; grid-template-columns: max-content 1fr; gap: .4rem 1.25rem; }
.fiche dt { color: var(--discret); }
.fiche dd { margin: 0; }
.actions { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; margin-bottom: 1rem; }
.separateur { flex: 1; }
.tableau { width: 100%; border-collapse: collapse; font-size: .95rem; }
.tableau th, .tableau td { text-align: left; padding: .5rem; border-bottom: 1px solid var(--bord); }
.tableau tr.inactif { color: var(--discret); }
.actions-ligne { white-space: nowrap; }
.actions-ligne button { padding: .3rem .6rem; font-size: .85rem; }
label.case { display: flex; gap: .5rem; align-items: flex-start; font-weight: 400; }
label.case input { width: auto; margin-top: .3rem; }
button:disabled { background: #b9b4ac; cursor: not-allowed; }
/* --- Site ------------------------------------------------------------------------------- */
h2 { font-size: 1.15rem; }
.bandeau-carte { background: #e8f1fb; border-radius: 8px; padding: .7rem 1rem; }
.prix { font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.prix.grand { font-size: 1.8rem; }
.prix-en_verification, .prix-attente, .prix-non_detecte, .prix-absent { color: var(--discret); font-weight: 400; }
.grille-prix { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1.5rem; }
blockquote { margin: .5rem 0; padding: .5rem .8rem; border-left: 3px solid var(--bord); color: var(--discret); }
.transcription { list-style: none; padding: 0; margin: 0; }
.transcription li { padding: .2rem 0; }
.transcription li:target { background: #fff4ce; }
.transcription time { color: var(--discret); font-size: .85rem; font-variant-numeric: tabular-nums; margin-right: .5rem; }
mark.prix-annonce { background: #ffd8a8; }
mark.prix-revele { background: #c3e6cb; }
mark { background: #fff0a8; padding: 0 .1rem; }
.legende mark { margin-right: .5rem; }
.filtres { display: flex; flex-wrap: wrap; gap: .75rem; align-items: flex-end; margin-bottom: 1rem; }
.filtres label { margin: 0; }
.filtres label.large { flex: 1; min-width: 240px; }
select { display: block; margin-top: .25rem; padding: .5rem; border: 1px solid var(--bord); border-radius: 6px; font: inherit; }
.bouton.secondaire { background: #fff; color: var(--accent); border: 1px solid var(--accent); }
.pagination { display: flex; gap: 1rem; justify-content: center; margin-top: 1rem; }
.resultats { list-style: none; padding: 0; }
.resultats li { padding: .6rem 0; border-bottom: 1px solid var(--bord); }
.resultats p { margin: .25rem 0 0; }
/* --- Administration ----------------------------------------------------------------------- */
.sous-nav { display: flex; flex-wrap: wrap; gap: .25rem 1rem; margin-bottom: 1rem; font-size: .95rem; }
.tuiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; margin-bottom: 1.25rem; }
.tuile { display: block; background: var(--carte); border: 1px solid var(--bord); border-radius: 8px; padding: 1rem; color: var(--texte); text-decoration: none; }
.tuile strong { display: block; font-size: 1.8rem; }
.tuile.attention { border-color: var(--attention); background: #fffbeb; }
.tableau.compact { width: auto; }
.tableau tr.en-erreur { background: #fdecea; }
.petit { font-size: .85rem; }
.candidat { border: 1px solid var(--bord); border-radius: 6px; padding: .75rem; margin: .75rem 0; }
.candidat-tete { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; }
.contexte { margin: .5rem 0 0 .5rem; }
.regles { display: grid; gap: .9rem; }
.regle label { font-weight: 500; margin-bottom: .2rem; }
textarea { display: block; width: 100%; padding: .5rem; border: 1px solid var(--bord); border-radius: 6px; font: .9rem/1.4 ui-monospace, monospace; }
td.change { background: #fff4ce; }
.formulaire-tranche { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: flex-end; }
.formulaire-tranche label { margin: 0; }
fieldset.jours { border: 1px solid var(--bord); border-radius: 6px; display: flex; gap: .5rem; padding: .3rem .6rem; }
.carte.inactif { opacity: .7; }
h3 { font-size: 1rem; margin-bottom: .4rem; }
/* --- Prix du jour et mobile --------------------------------------------------------------- */
.une { border: 2px solid var(--accent); text-align: center; }
.une-titre { margin: 0; color: var(--discret); }
.une-prix { margin: .4rem 0; }
.une-prix .prix.grand { font-size: 2.6rem; }
.une-objet { font-size: 1.15rem; font-weight: 600; margin: .2rem 0; }
.h1-secondaire { font-size: 1.25rem; }
.une-note { margin: .6rem 0 0; padding-top: .5rem; border-top: 1px solid var(--bord); color: var(--attention); font-size: .9rem; }
.valeur-prix { display: inline-flex; flex-wrap: wrap; align-items: baseline; justify-content: flex-end; gap: .35rem; }
.une .valeur-prix { justify-content: center; }
.transcription li, blockquote, .resultats p, td { overflow-wrap: anywhere; }
img, table { max-width: 100%; }

@media (max-width: 640px) {
  body { font-size: 15px; }
  .entete { flex-direction: column; align-items: flex-start; gap: .4rem; padding: .6rem 1rem; }
  .entete nav { gap: .35rem .9rem; }
  .contenu { margin: 1rem auto; padding: 0 .6rem; }
  .carte { padding: .9rem 1rem; }
  .une-prix .prix.grand { font-size: 2.2rem; }
  .prix.grand { font-size: 1.5rem; }
  /* Tableaux en fiches : une ligne = une carte, chaque cellule avec son libellé */
  .tableau.fiches thead { display: none; }
  .tableau.fiches, .tableau.fiches tbody, .tableau.fiches tr, .tableau.fiches td { display: block; width: 100%; }
  .tableau.fiches tr { border: 1px solid var(--bord); border-radius: 6px; margin-bottom: .6rem; padding: .3rem .6rem; }
  .tableau.fiches td { border: 0; padding: .2rem 0; display: flex; gap: .6rem; justify-content: space-between; }
  .tableau.fiches td::before { content: attr(data-label); color: var(--discret); font-size: .85rem; flex: none; }
  .tableau.fiches td:empty { display: none; }
  .tableau.fiches td:not([data-label]) { justify-content: flex-end; }
  .tableau:not(.fiches) { display: block; overflow-x: auto; }  /* tableaux admin : défilement interne */
  .filtres label { flex: 1 1 100%; }
  .transcription time { display: block; margin: 0; }
  .grille-prix { grid-template-columns: 1fr; }
}
