/* ══════════════════════════════════════════════════════════════════════════
   IMPRESSION V2 — LE PROGRAMME D'UN EVENEMENT

   Se lit avec `print/document.css`, qui pose le format, l'encre et le
   cartouche. Ici ne vivent que les briques du deroule.

   ── CE QUE LE PAPIER CHANGE, ET POURQUOI CE N'EST PAS L'ECRAN RETAILLE ──

   A l'ecran, le programme est un OUTIL : on filtre, on choisit ses seances,
   on ouvre une rediffusion. Sur papier, c'est un DOCUMENT DE REFERENCE, qu'on
   emporte et qu'on annote. Les commandes n'ont donc pas de version imprimee —
   elles n'ont pas de sens sans clic — et ce qui compte devient l'inverse :
   l'horaire aligne d'un bout a l'autre, le code de seance lisible (c'est lui
   qui figure sur la signaletique et le bulletin d'inscription), la salle, et
   un rythme qui tienne quand on parcourt trois pages a la main.

   ── LE DEROULE EST UNE GRILLE A DEUX COLONNES, PAS UNE PILE DE CARTES ──

   Colonne d'horaires a gauche, largeur FIXE : c'est ce qui fait qu'on lit une
   heure en descendant le doigt sur la marge. Une largeur intrinseque casserait
   cet alignement des qu'une seance porte une heure de fin.

   ── UN JOUR PAR PAGE ──

   `break-before: page` sur toute journee qui n'est pas la premiere. Sur un
   colloque de deux ou trois jours, c'est ce qui permet de poser les feuilles
   cote a cote, ou d'en donner une par jour a un participant.
   ══════════════════════════════════════════════════════════════════════════ */

@media print {
    /* ══ Ligne de resume, sous le cartouche ══ */
    .pdoc-summary {
        margin: 0 0 3.5mm;
        font-size: 8.5pt;
        color: var(--pdoc-ink-mute);
    }

    /* ══ Journee ══ */
    .pdoc-day + .pdoc-day {
        break-before: page;
    }

    .pdoc-day__head {
        display: flex;
        align-items: baseline;
        gap: 3mm;
        margin: 0 0 3mm;
        padding-bottom: 1.5mm;
        border-bottom: 0.4mm solid var(--pdoc-accent);
        break-after: avoid;
    }

    .pdoc-day__title {
        margin: 0;
        font-size: 13pt;
        font-weight: 700;
        color: var(--pdoc-accent);
    }

    .pdoc-day__date {
        font-size: 9pt;
        color: var(--pdoc-ink-soft);
    }

    .pdoc-day__slots {
        margin: 0;
        padding: 0;
        list-style: none;
    }

    /* ══ Creneau ══ */
    .pdoc-slot + .pdoc-slot {
        margin-top: 2mm;
    }

    /* Ce qui se tient EN MEME TEMPS se declare : sans cette ligne, six
       ateliers a la meme heure se lisent comme six seances qui se suivent, et
       le participant croit pouvoir tout voir. */
    .pdoc-slot__parallel {
        display: flex;
        align-items: baseline;
        gap: 2mm;
        margin: 0 0 1mm;
        padding: 0.8mm 0;
        border-top: 0.25mm solid var(--pdoc-rule);
        border-bottom: 0.25mm solid var(--pdoc-rule);
        font-size: 7.5pt;
        font-weight: 600;
        letter-spacing: 0.05em;
        text-transform: uppercase;
        color: var(--pdoc-ink-mute);
        break-after: avoid;
    }

    /* ══ Seance ══ */
    .pdoc-item {
        display: grid;
        grid-template-columns: 16mm 1fr;
        gap: 0 3mm;
        padding: 1.1mm 0;
        border-top: 0.2mm solid var(--pdoc-rule-soft);
        /* Une seance tient en quelques lignes : la couper entre deux pages
           separerait un titre de ses intervenants pour rien. */
        break-inside: avoid;
    }

    .pdoc-slot > .pdoc-item:first-child,
    .pdoc-slot__parallel + .pdoc-item {
        border-top: 0;
    }

    .pdoc-item__time {
        font-size: 9pt;
        font-weight: 700;
        font-variant-numeric: tabular-nums;
        color: var(--pdoc-accent);
    }

    /* Une seance de logistique — accueil, pause, dejeuner — n'est pas au meme
       rang qu'une intervention : elle a lieu, on ne la choisit pas. */
    .pdoc-item--plain .pdoc-item__time,
    .pdoc-item--plain .pdoc-item__title {
        font-weight: 400;
        color: var(--pdoc-ink-soft);
    }

    .pdoc-item__body {
        min-width: 0;
    }

    .pdoc-item__head {
        display: flex;
        align-items: baseline;
        flex-wrap: wrap;
        gap: 0 2.5mm;
        margin: 0 0 0.4mm;
        font-size: 7.5pt;
        letter-spacing: 0.05em;
        text-transform: uppercase;
        color: var(--pdoc-ink-mute);
    }

    .pdoc-item__type {
        font-weight: 700;
        color: var(--pdoc-accent);
    }

    /* Le CODE est ce qu'on cherche des yeux quand on tient le papier a cote de
       son bulletin d'inscription : il est encadre pour se detacher du reste de
       la ligne de reperes, sans peser autant que le titre. */
    .pdoc-item__code {
        padding: 0.2mm 1mm;
        border: 0.2mm solid var(--pdoc-rule);
        border-radius: 0.6mm;
        font-weight: 700;
        letter-spacing: 0.04em;
        color: var(--pdoc-ink);
    }

    .pdoc-item__choice {
        font-weight: 600;
    }

    /* La salle est poussee au bord droit : sur trois pages, elle forme une
       colonne qu'on lit d'un coup d'oeil. */
    .pdoc-item__room {
        margin-left: auto;
        font-weight: 600;
        text-transform: none;
        letter-spacing: 0;
        color: var(--pdoc-ink-soft);
    }

    .pdoc-item__title {
        margin: 0;
        font-size: 10pt;
        font-weight: 700;
        line-height: 1.25;
        color: var(--pdoc-ink);
    }

    .pdoc-item__desc {
        margin: 0.6mm 0 0;
        font-size: 8.5pt;
        line-height: 1.35;
        color: var(--pdoc-ink-soft);
    }

    .pdoc-item__people {
        margin: 0.6mm 0 0;
        font-size: 8.5pt;
        color: var(--pdoc-ink-soft);
    }

    .pdoc-item__role {
        font-style: italic;
        color: var(--pdoc-ink-mute);
    }

    .pdoc-item__chips {
        margin: 0.6mm 0 0;
        font-size: 7.5pt;
        color: var(--pdoc-ink-mute);
    }

    /* ══ Interventions d'une session ══
       Elles ne sont pas des seances : elles se rattachent a celle qui les
       porte, d'ou le filet gauche plutot qu'une ligne de plus dans la grille
       des horaires. */
    .pdoc-item__children {
        margin: 1mm 0 0;
        padding: 0 0 0 3mm;
        border-left: 0.3mm solid var(--pdoc-rule);
        list-style: none;
    }

    .pdoc-item__child + .pdoc-item__child {
        margin-top: 1mm;
    }

    .pdoc-item__child-title {
        margin: 0;
        font-size: 8.5pt;
        font-weight: 600;
        line-height: 1.3;
        color: var(--pdoc-ink);
    }

    .pdoc-item__child .pdoc-item__people {
        margin-top: 0.2mm;
        font-size: 8pt;
    }

    /* ══ Etat vide ══ */
    .pdoc-empty {
        margin: 0;
        padding: 6mm 0;
        font-size: 9pt;
        color: var(--pdoc-ink-mute);
    }
}
