.titre-section { font-size: 1.15rem; font-weight: 600; color: #0f172a; }
.carte { background: #fff; border: 1px solid #e2e8f0; border-radius: 0.75rem; padding: 1rem; box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04); }
.lien-nav { white-space: nowrap; padding: 0.65rem 0.75rem; color: #475569; border-bottom: 2px solid transparent; }
.lien-nav:hover { color: #9f1239; border-bottom-color: #fda4af; }
.etiquette-champ { display: block; font-size: 0.85rem; font-weight: 500; color: #334155; margin-bottom: 0.35rem; }
.champ { display: block; width: 100%; border: 1px solid #cbd5e1; border-radius: 0.5rem; padding: 0.5rem 0.65rem; font-size: 0.9rem; background: #fff; }
.champ:focus { outline: 2px solid #fda4af; outline-offset: 0; border-color: #e11d48; }
.bouton-principal { display: inline-flex; align-items: center; gap: 0.4rem; background: #9f1239; color: #fff; border-radius: 0.5rem; padding: 0.55rem 1rem; font-weight: 500; font-size: 0.9rem; }
.bouton-principal:hover { background: #881337; }
.bouton-principal:disabled, .bouton-secondaire:disabled { opacity: 0.5; cursor: not-allowed; }
.bouton-secondaire { display: inline-flex; align-items: center; gap: 0.4rem; background: #fff; color: #1e293b; border: 1px solid #cbd5e1; border-radius: 0.5rem; padding: 0.45rem 0.85rem; font-size: 0.85rem; font-weight: 500; }
.bouton-secondaire:hover:not(:disabled) { background: #f1f5f9; }
.tableau-analyse { border-collapse: separate; border-spacing: 0; font-size: 0.8rem; }
.tableau-analyse th { position: sticky; top: 0; background: #f8fafc; z-index: 1; font-weight: 600; color: #334155; text-align: left; padding: 0.5rem; border-bottom: 1px solid #e2e8f0; white-space: nowrap; }
.tableau-analyse td { padding: 0.4rem 0.5rem; border-bottom: 1px solid #f1f5f9; white-space: nowrap; max-width: 15rem; overflow: hidden; text-overflow: ellipsis; cursor: pointer; }
.tableau-analyse td.numero { cursor: default; color: #64748b; font-variant-numeric: tabular-nums; background: #f8fafc; }
.cellule-vert { background: #ecfdf5; color: #065f46; box-shadow: inset 0 0 0 1px #6ee7b7; }
.cellule-orange { background: #ffedd5; color: #9a3412; box-shadow: inset 0 0 0 1px #fb923c; font-weight: 600; }
.cellule-rouge { background: #fef2f2; color: #b91c1c; box-shadow: inset 0 0 0 1px #fca5a5; font-style: italic; }
.cellule-bleu { background: #f0f9ff; color: #075985; box-shadow: inset 0 0 0 1px #7dd3fc; }
.cellule-selectionnee { outline: 2px solid #0f172a; outline-offset: -2px; }
.cellule-changee { animation: clignote 1.6s ease-out 1; }
@keyframes clignote { 0% { box-shadow: inset 0 0 0 3px #6366f1; } 100% { } }
.pastille { display: inline-flex; align-items: center; gap: 0.3rem; border-radius: 999px; padding: 0.1rem 0.55rem; font-size: 0.72rem; font-weight: 600; white-space: nowrap; }
.infobulle { position: fixed; z-index: 60; max-width: 22rem; background: #0f172a; color: #f8fafc; font-size: 0.78rem; line-height: 1.35; padding: 0.5rem 0.65rem; border-radius: 0.45rem; pointer-events: none; white-space: pre-line; box-shadow: 0 6px 18px rgba(15, 23, 42, 0.25); }
.interrupteur { position: relative; width: 2.3rem; height: 1.3rem; flex: none; appearance: none; background: #cbd5e1; border-radius: 999px; cursor: pointer; transition: background 0.15s; }
.interrupteur::after { content: ""; position: absolute; top: 0.15rem; left: 0.15rem; width: 1rem; height: 1rem; background: #fff; border-radius: 999px; transition: transform 0.15s; }
.interrupteur:checked { background: #047857; }
.interrupteur:checked::after { transform: translateX(1rem); }
.interrupteur:focus-visible { outline: 2px solid #fda4af; outline-offset: 2px; }
.roue { width: 1rem; height: 1rem; border: 2px solid currentColor; border-right-color: transparent; border-radius: 999px; animation: tourne 0.8s linear infinite; display: inline-block; }
@keyframes tourne { to { transform: rotate(360deg); } }
details > summary { list-style: none; }
details > summary::-webkit-details-marker { display: none; }
