/* ==========================================================================
   VTCPass — V1.1 : GPS de révision, Deck, notes, pièges, fiches, Plan Repasse, parrainage
   ========================================================================== */

/* ---------- GPS de révision (élément signature) ---------- */
.gps { margin: 0; padding: var(--e-4); background: var(--surface); border: 1px solid var(--ligne); border-radius: var(--r-feuille); }
.gps svg { display: block; width: 100%; max-width: 360px; height: auto; margin-inline: auto; }
.gps figcaption { text-align: center; }
.gps-route { fill: var(--asphalte); }
.gps-ligne { stroke: var(--blanc-panneau); stroke-width: 2.5; stroke-dasharray: 14 12; }
.gps-troncon-risque { stroke: var(--ambre-chantier); stroke-width: 5; stroke-dasharray: 8 7; stroke-linecap: round; }
.gps-bretelle { fill: none; stroke: var(--asphalte); stroke-width: 9; stroke-linecap: round; }
.gps-panneau { fill: var(--bleu-autoroute); }
.gps-panneau-filet { fill: none; stroke: var(--blanc-panneau); stroke-width: 1.5; }
.gps-cartouche { fill: var(--blanc-panneau); }
.gps-lettre { fill: var(--bleu-autoroute); font-family: var(--police-titre); font-weight: 800; font-size: 15px; }
.gps-note { fill: var(--blanc-panneau); font-family: var(--police-titre); font-weight: 800; font-size: 15px; }
.gps-elimine { fill: var(--blanc-panneau); stroke: var(--rouge-interdiction); stroke-width: 3; }
.gps-elimine-barre { stroke: var(--rouge-interdiction); stroke-width: 2.5; }
.gps-risque { fill: var(--ambre-chantier); stroke: var(--asphalte); stroke-width: 1.2; stroke-linejoin: round; }
.gps-borne-corps { fill: var(--blanc-panneau); stroke: var(--asphalte); stroke-width: 2; }
.gps-borne-tete { fill: var(--bleu-autoroute); }
.gps-borne-label { fill: var(--blanc-panneau); font-family: var(--police-titre); font-weight: 800; font-size: 9px; }
.gps-borne-chiffre { fill: var(--asphalte); font-family: var(--police-titre); font-weight: 800; font-size: 22px; }
.gps-depart { fill: var(--texte-doux); font-family: var(--police-texte); font-size: 12px; }
.gps-voiture-carrosserie { fill: var(--vert-direction); stroke: var(--blanc-panneau); stroke-width: 2; }
.gps-voiture-vitre { fill: var(--bitume-clair); opacity: .85; }
.gps-voiture { animation: gps-roule 1.4s cubic-bezier(.2, .7, .3, 1) both; }
@keyframes gps-roule { from { transform: translateY(160px); opacity: .2; } to { transform: none; opacity: 1; } }

.espace-grille { display: grid; gap: var(--e-5); align-items: start; }
@media (min-width: 60rem) { .espace-grille { grid-template-columns: 1fr 380px; } }

/* ---------- Outils (menu « Réviser ») ---------- */
.outils { list-style: none; padding: 0; display: grid; gap: var(--e-3); grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); max-width: none; }
.outils li { margin: 0; }
.outils a {
  display: flex; gap: var(--e-3); align-items: center; min-height: 64px; padding: var(--e-3) var(--e-4);
  border: 2px solid var(--ligne); border-radius: var(--r-bouton); background: var(--surface);
  color: var(--texte); text-decoration: none; font-weight: 700;
}
.outils a:hover { border-color: var(--marque); }
.outils .icon { width: 1.6rem; height: 1.6rem; color: var(--marque); }
.outils small { display: block; font-weight: 400; color: var(--texte-doux); }

/* ---------- Deck, notes ---------- */
.etoile-form { display: inline; }
.btn-etoile[aria-pressed="true"] { border-color: var(--marque); background: var(--marque); color: var(--sur-marque); }
.liste-cartes { list-style: none; padding: 0; display: grid; gap: var(--e-2); max-width: none; }
.liste-cartes li { margin: 0; padding: var(--e-3) var(--e-4); background: var(--surface); border: 1px solid var(--ligne); border-radius: var(--r-bouton); display: flex; gap: var(--e-3); align-items: flex-start; }
.cartouche-lettre { display: inline-grid; place-items: center; min-width: 2rem; height: 2rem; padding: 0 var(--e-1); border-radius: 4px; background: var(--bleu-autoroute); color: var(--blanc-panneau); font-family: var(--police-titre); font-weight: 800; font-size: var(--t-0); flex-shrink: 0; }
.note-texte { white-space: pre-wrap; margin: 0; }

/* ---------- Plan Repasse ---------- */
.plan-jours { list-style: none; padding: 0; display: grid; gap: var(--e-2); max-width: none; }
.plan-jours li { margin: 0; display: grid; grid-template-columns: 4.5rem 1fr auto; gap: var(--e-3); align-items: center; padding: var(--e-2) var(--e-3); border-radius: var(--r-bouton); background: var(--surface); border: 1px solid var(--ligne); }
.plan-jours li.aujourdhui { border: 2px solid var(--marque); box-shadow: inset 0 0 0 1px var(--marque); }
.plan-jours li.passe { opacity: .6; }
.plan-jours .plan-date { font-family: var(--police-titre); font-weight: 800; }
.plan-jours .plan-examen { color: var(--marque); font-weight: 700; }

/* ---------- Question du jour, parrainage ---------- */
.code-partage { font-family: var(--police-titre); font-weight: 800; font-size: var(--t-3); letter-spacing: .04em; padding: var(--e-3) var(--e-4); border: 2px dashed var(--marque); border-radius: var(--r-panneau); display: inline-block; }
.pieges-categorie { margin-top: var(--e-6); }

/* ---------- Utilitaires V1.1 ---------- */
.pile-serree { display: grid; gap: var(--e-1); }
.pile-serree > * { margin: 0; }
.grille-notes .champ { margin: 0; }
.contenu-fiche h2, .contenu-fiche h3 { margin-top: var(--e-5); }
details > summary { cursor: pointer; }
.liste-cartes li > .pile-serree { flex: 1; min-width: 0; }
.liste-cartes li > form { flex-shrink: 0; }
