.suggest { position: relative; }
.suggest-list {
    position: absolute; z-index: 30; left: 0; right: 0; margin: 0.25rem 0 0; padding: 0.25rem;
    list-style: none; background: var(--c-surface); border: 1px solid var(--c-line);
    border-radius: 12px; box-shadow: var(--shadow-float);
}
.suggest-list button {
    display: block; width: 100%; text-align: left; background: none; border: 0;
    padding: 0.55rem 0.7rem; font: inherit; color: inherit; cursor: pointer; border-radius: 8px;
}
.suggest-list button:hover { background: var(--c-sun-soft); }
.actions { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1rem; }
.data-table { width: 100%; border-collapse: collapse; }
.data-table th, .data-table td {
    text-align: left; padding: 0.6rem 0.35rem; border-bottom: 1px solid var(--c-line); vertical-align: top;
}
.table-scroll { overflow-x: auto; }
.data-table .num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.data-table th button {
    background: none; border: 0; padding: 0; font: inherit; font-weight: 650; color: inherit; cursor: pointer;
}
.data-table th button.is-sorted::after { content: " ↓"; }
.data-table th button.is-sorted.is-asc::after { content: " ↑"; }
.shortage { color: var(--c-danger, #9a3412); font-weight: 650; }
.data-table tr.is-closed td { color: var(--c-muted); }
.station-closed { font-weight: 650; }
#map { height: 440px; border-radius: var(--radius-md); margin: 1rem 0; }
.page-lead { max-width: none; }
.leaflet-marker-icon.mairie-pin {
    background: var(--c-sun);
    border: 3px solid var(--c-ink);
    border-radius: 50%;
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--c-sun) 55%, transparent);
}
.leaflet-marker-icon.mairie-pin::after {
    content: "";
    position: absolute;
    left: 4px;
    top: 4px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--c-ink);
}
.data-table tbody tr[data-station] { cursor: pointer; }
.data-table tr.is-selected td { background: var(--c-sun-soft); }
.form-2026 .is-hidden { display: none; }
.fc-connect { display: inline-block; line-height: 0; }
.fc-connect img { width: 209px; height: 56px; }
.fc-connect:hover img { content: url("../img/franceconnect-btn-principal-hover.png"); }
.ride-note { margin: 0.35rem 0 0; color: var(--c-muted); font-size: 0.95rem; max-width: none; }
.ride-list { list-style: none; margin: 0; padding: 0; }
.ride-list li {
    display: grid;
    grid-template-columns: 6.2rem 1fr;
    gap: 0.65rem 0.9rem;
    align-items: start;
    padding: 0.85rem 0;
    border-top: 1px solid var(--c-line);
}
.ride-list li:first-child { border-top: 0; padding-top: 0.2rem; }
.ride-list p { margin: 0; }
.ride-when { color: var(--c-muted); }
.ride-cta { margin: 1rem 0 0; }
@media (max-width: 640px) {
    .ride-list li { grid-template-columns: 1fr; gap: 0.35rem; }
}
