/* dp.marseillais.es — suivi des débats présidentielles 2027 */

:root {
    color-scheme: light;
    --fond: #f4f2ed;
    --encre: #22232a;
    --sourdine: #6b6b74;
    --accent: #1f3a93;
    --accent-clair: #e8ecf9;
    --carte: #ffffff;
    --bord: #e2ded5;
    --alerte-fond: #fbe3e4;
    --alerte-encre: #8a1f11;
    --ok-fond: #e6efc2;
    --ok-encre: #264409;
}

* { box-sizing: border-box; }
body { font-family: system-ui, -apple-system, "Segoe UI", sans-serif; margin: 0;
       background: var(--fond); color: var(--encre); line-height: 1.55; }

.bandeau { background: var(--accent); color: #fff; }
.bandeau-int { max-width: 62em; margin: 0 auto; padding: .75em 1.2em;
               display: flex; justify-content: space-between; align-items: center;
               flex-wrap: wrap; gap: .4em; }
.titre-site { color: #fff; text-decoration: none; font-weight: 700; font-size: 1.1em; }
.bandeau nav a { color: #cdd7f4; text-decoration: none; margin-left: 1em; }
.bandeau nav a:hover { color: #fff; text-decoration: underline; }
body.admin .bandeau { background: #4a3f6b; }
body.admin .bandeau nav a { color: #cfc4ff; }

main { max-width: 62em; margin: 1.4em auto; padding: 0 1em; }
footer { color: var(--sourdine); font-size: .85em; padding: 1.5em 0 2.5em; }
footer .bandeau-int { display: block; }

h1 { font-size: 1.5em; line-height: 1.25; }
h2 { font-size: 1.15em; margin-top: 1.6em; }
a { color: var(--accent); }

.carte { background: var(--carte); border: 1px solid var(--bord); border-radius: 10px;
         padding: 1em 1.3em; margin-bottom: 1.1em; }
.carte h2, .carte h3 { margin-top: 0; }
.sourdine { color: var(--sourdine); }
.petit { font-size: .88em; }

.alerte { background: var(--alerte-fond); color: var(--alerte-encre);
          padding: .55em .85em; border-radius: 7px; }
.ok { background: var(--ok-fond); color: var(--ok-encre);
      padding: .55em .85em; border-radius: 7px; }

/* étiquettes (types de lien, statuts) */
.etiquette { display: inline-block; padding: .08em .6em; border-radius: 999px;
             font-size: .8em; white-space: nowrap; background: #e8e5dd; color: #555; }
.etq-direct { background: #fde3a7; color: #7a5200; }
.etq-replay { background: var(--accent-clair); color: var(--accent); }
.etq-audio  { background: #d9efe0; color: #1b5e35; }
.etq-brouillon { background: #fde3a7; color: #7a5200; }
.etq-publie { background: #c8e6c9; color: #1b5e20; }
.etq-erreur { background: var(--alerte-fond); color: var(--alerte-encre); }

.liens-diffusion { display: flex; flex-wrap: wrap; gap: .5em; margin: .6em 0; padding: 0; }
.liens-diffusion li { list-style: none; }
.liens-diffusion a { display: inline-block; background: var(--accent-clair);
    border: 1px solid #c8d2ef; border-radius: 8px; padding: .35em .8em;
    text-decoration: none; }
.liens-diffusion a:hover { background: #dbe3f7; }

/* listes de débats */
.debat-ligne { display: flex; gap: 1em; align-items: baseline; flex-wrap: wrap; }
.debat-date { min-width: 13.5em; color: var(--sourdine); }

/* grille candidats */
.grille-candidats { display: grid; grid-template-columns: repeat(auto-fill, minmax(15em, 1fr));
                    gap: .8em; padding: 0; margin: .8em 0; }
.grille-candidats li { list-style: none; }
.grille-candidats a { display: block; background: var(--carte); border: 1px solid var(--bord);
    border-radius: 10px; padding: .7em 1em; text-decoration: none; color: var(--encre); }
.grille-candidats a:hover { border-color: var(--accent); }
.grille-candidats .parti { display: block; color: var(--sourdine); font-size: .85em; }

/* synthèses */
.synthese { border-left: 4px solid var(--accent); padding-left: 1em; margin: 1.2em 0; }
.synthese h3 { margin-bottom: .2em; }
.synthese .parti { color: var(--sourdine); font-size: .9em; margin-top: 0; }

/* transcription */
.transcription { font-size: .95em; }
.transcription p { margin: .25em 0; }
.transcription .tc { color: var(--sourdine); font-variant-numeric: tabular-nums;
                     font-size: .85em; margin-right: .5em; }
.ancre-tranche { scroll-margin-top: 1em; }

/* tables (admin) */
table { border-collapse: collapse; width: 100%; font-size: .92em; }
th, td { text-align: left; padding: .45em .6em; border-bottom: 1px solid var(--bord);
         vertical-align: top; }
th { background: #f7f5f0; }
.tablewrap { overflow-x: auto; }
.tablewrap table { min-width: 34em; }

/* formulaires */
button { background: var(--accent); color: #fff; border: 0; padding: .5em 1em;
         border-radius: 7px; cursor: pointer; font-size: 1em; }
body.admin button { background: #4a3f6b; }
button.discret { background: #9691ad; font-size: .85em; padding: .3em .7em; }
button.danger { background: #a33; }
input[type=text], input[type=url], input[type=password], input[type=number],
input[type=datetime-local], select, textarea {
    padding: .45em; border: 1px solid #bbb; border-radius: 6px; font: inherit;
    max-width: 100%; }
textarea { width: 100%; }
label { font-weight: 600; }
form p { margin: .7em 0; }
.form-ligne { display: flex; gap: .8em; flex-wrap: wrap; align-items: flex-end; }
.form-ligne label { display: block; }
.form-ligne .champ { font-weight: 400; display: block; }

@media (max-width: 40em) {
    .debat-date { min-width: 0; }
    .bandeau nav a { margin-left: .6em; }
}
