/* Taxi Booking Lite 1.7 — formulaire minimal, transparent, Jost */
.taxi-booking-form,
.taxi-dashboard {
    --taxi-muted: rgba(127,127,127,.72);
    --taxi-line: rgba(127,127,127,.26);
    --taxi-line-strong: rgba(127,127,127,.52);
    width: 100%;
    max-width: 1120px;
    margin: 0 auto;
    color: inherit;
    font-family: "Jost", Arial, sans-serif;
    box-sizing: border-box;
}
.taxi-booking-form *, .taxi-dashboard * { box-sizing: border-box; }
.taxi-booking-form.taxi-theme-light { color:#151515; color-scheme:light; }
.taxi-booking-form.taxi-theme-dark { color:#f5f5f5; color-scheme:dark; }

/* FORMULAIRE CLIENT */
.taxi-booking-form { position:relative; padding:0; border:0; background:transparent!important; }

/* En-tête : une seule hiérarchie, rien ne concurrence le titre */
.taxi-form-head { padding:0 0 clamp(30px,4vw,46px); }
.taxi-form-heading {
    display:grid;
    grid-template-columns:minmax(0,1.65fr) minmax(260px,.75fr);
    gap:clamp(40px,6vw,84px);
    align-items:end;
}
.taxi-form-heading h2 {
    margin:0;
    font-family:"Jost",Arial,sans-serif;
    font-size:clamp(48px,5vw,72px);
    line-height:.98;
    font-weight:300;
    letter-spacing:-.045em;
    color:inherit;
}
.taxi-form-heading p {
    margin:0 0 4px;
    max-width:360px;
    font-size:16px;
    line-height:1.55;
    font-weight:400;
    opacity:.62;
}

/* Sections : 1 colonne de titre + 1 zone de saisie, seulement 2 colonnes de champs */
.taxi-form-flow { border-top:1px solid var(--taxi-line); }
.taxi-form-section {
    display:grid;
    grid-template-columns:minmax(190px,240px) minmax(0,1fr);
    gap:clamp(38px,5vw,78px);
    align-items:start;
    padding:clamp(34px,4vw,50px) 0;
    border-bottom:1px solid var(--taxi-line);
}
.taxi-section-head { min-width:0; padding-top:4px; }
.taxi-section-head h3 {
    margin:0;
    max-width:230px;
    font-family:"Jost",Arial,sans-serif;
    font-size:clamp(27px,2.7vw,36px);
    line-height:1.06;
    font-weight:300;
    letter-spacing:-.035em;
    color:inherit;
}
.taxi-section-body { min-width:0; }
.taxi-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:28px 34px;
    min-width:0;
}
.taxi-grid-route { grid-template-columns:repeat(2,minmax(0,1fr)); }
.taxi-field-wide { grid-column:span 1; }

.taxi-booking-form label { display:block; min-width:0; margin:0; color:inherit; }
.taxi-booking-form label > span:first-child {
    display:block;
    margin:0 0 8px;
    font-size:10px;
    line-height:1.25;
    font-weight:600;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:inherit;
}
.taxi-booking-form label > span em { font-style:normal; font-weight:400; opacity:.46; }

.taxi-booking-form input:not([type="checkbox"]),
.taxi-booking-form textarea {
    width:100%;
    min-width:0;
    margin:0;
    padding:11px 0 12px;
    border:0;
    border-bottom:1px solid var(--taxi-line-strong);
    border-radius:0;
    outline:0;
    background:transparent!important;
    box-shadow:none!important;
    color:inherit;
    font-family:"Jost",Arial,sans-serif;
    font-size:16px;
    line-height:1.35;
    font-weight:400;
    transition:border-color .18s ease, opacity .18s ease;
}
.taxi-booking-form input:not([type="checkbox"]) { min-height:48px; }
.taxi-booking-form textarea { min-height:92px; resize:vertical; }
.taxi-booking-form input::placeholder,
.taxi-booking-form textarea::placeholder { color:inherit; opacity:.34; }
.taxi-booking-form input:not([type="checkbox"]):hover,
.taxi-booking-form textarea:hover,
.taxi-booking-form input:not([type="checkbox"]):focus,
.taxi-booking-form textarea:focus { border-bottom-color:currentColor; }

/* Footer simple : RGPD à gauche, CTA à droite */
.taxi-form-bottom {
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(230px,300px);
    gap:34px;
    align-items:center;
    padding:clamp(30px,3.6vw,44px) 0 0;
}
.taxi-consent {
    display:grid!important;
    grid-template-columns:18px minmax(0,1fr);
    gap:12px;
    align-items:start;
    max-width:600px;
    margin:0!important;
}
.taxi-consent > span {
    margin:0!important;
    font-family:"Jost",Arial,sans-serif!important;
    font-size:12px!important;
    line-height:1.5!important;
    font-weight:400!important;
    letter-spacing:0!important;
    text-transform:none!important;
    color:inherit!important;
    opacity:.62;
}
.taxi-consent input[type="checkbox"] {
    appearance:none;
    -webkit-appearance:none;
    width:18px!important;
    height:18px!important;
    min-width:18px;
    margin:1px 0 0!important;
    padding:0!important;
    border:1px solid currentColor;
    border-radius:0;
    background:transparent;
    color:inherit;
    cursor:pointer;
    position:relative;
    opacity:.78;
}
.taxi-consent input[type="checkbox"]:checked::after {
    content:"";
    position:absolute;
    left:4px;
    top:1px;
    width:6px;
    height:10px;
    border:solid currentColor;
    border-width:0 2px 2px 0;
    transform:rotate(45deg);
}
.taxi-btn {
    appearance:none;
    -webkit-appearance:none;
    min-height:58px;
    border:1px solid currentColor;
    border-radius:0;
    padding:15px 18px 15px 20px;
    background:transparent;
    color:inherit;
    font-family:"Jost",Arial,sans-serif;
    font-size:11px;
    line-height:1.2;
    font-weight:600;
    letter-spacing:.18em;
    text-transform:uppercase;
    cursor:pointer;
    transition:background-color .18s ease,color .18s ease,transform .18s ease,opacity .18s ease;
}
.taxi-submit-btn { width:100%; display:inline-flex; align-items:center; justify-content:space-between; gap:28px; }
.taxi-btn-arrow { font-size:18px; line-height:1; font-weight:300; letter-spacing:0; transition:transform .18s ease; }
.taxi-btn:hover { background:currentColor; }
.taxi-btn:hover > span { mix-blend-mode:difference; color:white; }
.taxi-btn:hover .taxi-btn-arrow { transform:translateX(5px); }
.taxi-btn:focus-visible, .taxi-consent input[type="checkbox"]:focus-visible { outline:2px solid currentColor; outline-offset:3px; }
.taxi-btn:disabled { opacity:.45; cursor:not-allowed; }
.taxi-message { margin-top:18px; font-size:13px; line-height:1.45; font-weight:500; }
.taxi-message.is-success { color:#18794e; }
.taxi-message.is-error { color:#b42318; }
.taxi-hp { position:absolute!important; left:-9999px!important; width:1px!important; height:1px!important; overflow:hidden!important; }

/* ESPACE CHAUFFEUR */
.taxi-dashboard { max-width:1080px; background:transparent; }
.taxi-dashboard-head { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; flex-wrap:wrap; margin-bottom:30px; padding-bottom:22px; border-bottom:1px solid var(--taxi-line); }
.taxi-dashboard-head h2 { margin:0; font-family:"Jost",Arial,sans-serif; font-size:clamp(36px,5vw,58px); line-height:1; font-weight:300; letter-spacing:-.035em; color:inherit; }
.taxi-filters { display:flex; gap:8px; flex-wrap:wrap; }
.taxi-dashboard-tools { display:flex; align-items:center; justify-content:flex-end; gap:10px; flex-wrap:wrap; }
.taxi-filters { display:flex; gap:8px; flex-wrap:wrap; }
.taxi-filters button,
.taxi-notification-toggle,
.taxi-alert-test,
.taxi-email-test { appearance:none; -webkit-appearance:none; padding:9px 13px; border:1px solid var(--taxi-line); border-radius:0; background:transparent; color:inherit; font-family:"Jost",Arial,sans-serif; font-size:11px; line-height:1.2; font-weight:500; letter-spacing:.1em; text-transform:uppercase; text-decoration:none; cursor:pointer; }
.taxi-filters button.is-active { border-color:currentColor; }
.taxi-notification-toggle { opacity:.62; }
.taxi-notification-toggle.is-enabled { opacity:1; border-color:currentColor; }
.taxi-notification-toggle:disabled { cursor:not-allowed; opacity:.35; }
.taxi-bookings-list { display:grid; gap:14px; }
.taxi-card { padding:24px; border:1px solid var(--taxi-line); border-radius:0; background:transparent; color:inherit; }
.taxi-card-top { display:flex; justify-content:space-between; gap:18px; }
.taxi-client { margin-top:5px; opacity:.62; }
.taxi-status { white-space:nowrap; border:1px solid var(--taxi-line); border-radius:0; padding:7px 10px; font-size:11px; letter-spacing:.08em; text-transform:uppercase; background:transparent; }
.taxi-status-pending { border-color:#b68a16; }
.taxi-status-accepted { border-color:#18794e; }
.taxi-status-refused { border-color:#b42318; }
.taxi-status-completed { opacity:.7; }
.taxi-route { margin:20px 0; padding:18px; border:1px solid var(--taxi-line); border-radius:0; background:transparent; }
.taxi-arrow { padding:6px 0; }
.taxi-meta,.taxi-notes { margin-top:10px; }
.taxi-notes { padding:12px 14px; border-left:1px solid currentColor; }
.taxi-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:18px; }
.taxi-empty,.taxi-login-required { padding:20px; border:1px solid var(--taxi-line); border-radius:0; background:transparent; color:inherit; }
.taxi-action[data-status="accepted"],.taxi-action[data-status="completed"],.taxi-action[data-status="refused"] { background:transparent; color:inherit; }

/* Tablette */
@media (max-width:900px) {
    .taxi-form-heading { grid-template-columns:1fr; gap:18px; }
    .taxi-form-heading p { max-width:560px; }
    .taxi-form-section { grid-template-columns:170px minmax(0,1fr); gap:32px; }
}

/* Mobile : on conserve le responsive simple qui fonctionnait déjà */
@media (max-width:700px) {
    .taxi-form-head { padding-bottom:28px; }
    .taxi-form-heading h2 { font-size:clamp(42px,13vw,58px); }
    .taxi-form-heading p { font-size:15px; }
    .taxi-form-section { grid-template-columns:1fr; gap:22px; padding:28px 0; }
    .taxi-section-head h3 { max-width:none; font-size:30px; }
    .taxi-grid,.taxi-grid-route { grid-template-columns:1fr; gap:20px; }
    .taxi-field-wide { grid-column:auto; }
    .taxi-form-bottom { grid-template-columns:1fr; gap:22px; padding-top:28px; }
    .taxi-submit-btn { width:100%; }
    .taxi-card-top { flex-direction:column; }
    .taxi-actions { justify-content:stretch; }
    .taxi-actions .taxi-btn { flex:1; }
}


/* Dashboard 1.6 : actions, suppression, filtres sans rechargement */
.taxi-actions { display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-top:18px; }
.taxi-status-actions { display:flex; gap:8px; flex-wrap:wrap; }
.taxi-delete { appearance:none; -webkit-appearance:none; border:0; border-bottom:1px solid currentColor; padding:4px 0; background:transparent!important; color:inherit!important; font-family:"Jost",Arial,sans-serif; font-size:11px; line-height:1.2; font-weight:500; letter-spacing:.09em; text-transform:uppercase; cursor:pointer; opacity:.48; }
.taxi-delete:hover { opacity:1; }
.taxi-filter-empty[hidden], .taxi-notification-toggle[hidden], .taxi-live-alert[hidden] { display:none!important; }

/* Empêche les couleurs globales Elementor de recolorer le CTA du formulaire */
.taxi-booking-form .taxi-submit-btn { background:transparent!important; background-color:transparent!important; color:inherit!important; border-color:currentColor!important; }
.taxi-booking-form.taxi-theme-light .taxi-submit-btn:hover { background:#111!important; background-color:#111!important; color:#fff!important; }
.taxi-booking-form.taxi-theme-dark .taxi-submit-btn:hover { background:#fff!important; background-color:#fff!important; color:#111!important; }

@media (max-width: 767px) {
  .taxi-dashboard-tools { width:100%; justify-content:flex-start; }
  .taxi-actions { align-items:flex-start; }
}

/* 1.6.1 — garantit que les contrôles du dashboard restent cliquables même avec certains thèmes/Elementor. */
.taxi-dashboard button { pointer-events:auto; position:relative; z-index:1; }


/* 1.7 — diagnostics e-mail et notifications chauffeur */
.taxi-notification-tools { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
.taxi-notification-test,
.taxi-email-test { appearance:none; -webkit-appearance:none; padding:9px 13px; border:1px solid var(--taxi-line); border-radius:0; background:transparent!important; color:inherit!important; font-family:"Jost",Arial,sans-serif; font-size:11px; line-height:1.2; font-weight:500; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; }
.taxi-notification-test:hover,
.taxi-email-test:hover { border-color:currentColor; }
.taxi-notification-status { width:100%; max-width:520px; text-align:right; font-size:11px; line-height:1.4; opacity:.6; }
@media (max-width:767px) {
  .taxi-notification-tools { width:100%; justify-content:flex-start; }
  .taxi-notification-status { text-align:left; }
}


/* Alertes chauffeur 1.8 : fallback visible dans la page + notification système si disponible */
.taxi-notification-tools { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
.taxi-notification-status { flex-basis:100%; max-width:520px; margin-left:auto; font-size:11px; line-height:1.4; text-align:right; opacity:.58; }
.taxi-live-alert {
    position:fixed;
    right:22px;
    bottom:22px;
    z-index:999999;
    width:min(390px,calc(100vw - 32px));
    padding:20px 46px 20px 20px;
    border:1px solid currentColor;
    background:#111;
    color:#fff;
    box-shadow:0 18px 50px rgba(0,0,0,.24);
    font-family:"Jost",Arial,sans-serif;
    opacity:0;
    transform:translateY(12px);
    transition:opacity .18s ease,transform .18s ease;
}
.taxi-live-alert.is-visible { opacity:1; transform:translateY(0); }
.taxi-live-alert strong { display:block; margin:0 0 6px; font-size:14px; font-weight:600; letter-spacing:.02em; }
.taxi-live-alert-body { display:block; font-size:13px; line-height:1.5; opacity:.78; }
.taxi-live-alert-close { position:absolute; top:10px; right:12px; border:0!important; background:transparent!important; color:inherit!important; padding:2px 6px!important; font-size:22px!important; line-height:1!important; cursor:pointer; }
@media (max-width:700px) {
    .taxi-notification-tools { justify-content:flex-start; width:100%; }
    .taxi-notification-status { max-width:none; margin-left:0; text-align:left; }
    .taxi-live-alert { right:16px; bottom:16px; }
}
