:root{
    --red:#CB1429;
    --dark:#202020;
    --bg:#f6f5f3;
    --line:#e3dfda;
    --white:#fff;
}
*{box-sizing:border-box}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--dark)}
a{color:var(--red)}
.container{width:min(1100px,92%);margin:32px auto}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;box-shadow:0 4px 20px rgba(0,0,0,.04)}
h1,h2{margin-top:0}
.brand{color:var(--red);font-weight:800}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.grid-1{display:grid;grid-template-columns:1fr;gap:16px}
label{font-weight:700;font-size:.95rem}
input,select,textarea{width:100%;padding:12px 13px;border:1px solid #cbc6c0;border-radius:9px;margin-top:6px;font:inherit;background:#fff}
textarea{min-height:100px;resize:vertical}
button,.btn{display:inline-block;border:0;border-radius:9px;padding:11px 14px;font-weight:700;text-decoration:none;cursor:pointer;background:var(--red);color:#fff}
.btn-light{background:#fff;color:var(--red);border:1px solid var(--red)}
.btn-dark{background:#222}
.btn-grey{background:#777}
.btn-orange{background:#c97800}
.btn-sm{padding:8px 10px;font-size:.88rem}
.actions{display:flex;gap:8px;flex-wrap:wrap}
.notice{padding:14px;border-radius:9px;margin-bottom:18px;background:#fff4d8;border:1px solid #edcc7c}
.success{background:#e8f7ec;border-color:#a7d8b1}
.error{background:#fde9e9;border-color:#e7a7a7}
.topbar{background:#fff;border-bottom:1px solid var(--line)}
.topbar-inner{width:min(1100px,92%);margin:auto;display:flex;align-items:center;justify-content:space-between;padding:14px 0;gap:20px}
table{width:100%;border-collapse:collapse;background:#fff}
th,td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:.85rem;text-transform:uppercase;color:#666}
.badge{display:inline-block;padding:5px 8px;border-radius:999px;font-size:.78rem;font-weight:800}
.badge-green{background:#dff4e4;color:#246b34}
.badge-orange{background:#fff0d3;color:#915900}
.badge-red{background:#fde3e3;color:#9a2424}
.badge-grey{background:#ececec;color:#555}
.muted{color:#777;font-size:.9rem}
.summary{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0}
.summary .card{padding:14px 16px;min-width:150px}
.big{font-size:1.5rem;font-weight:800}
.checkbox{display:flex;gap:10px;align-items:flex-start;font-weight:400}
.checkbox input{width:auto;margin-top:3px}
.filters{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-bottom:18px}
.filters > div{min-width:180px}
pre.sms{white-space:pre-wrap;font-family:inherit;background:#f7f7f7;padding:16px;border-radius:10px;border:1px solid #ddd}
@media(max-width:760px){
    .grid{grid-template-columns:1fr}
    .topbar-inner{align-items:flex-start;flex-direction:column}
    table,thead,tbody,tr,th,td{display:block}
    thead{display:none}
    tr{border:1px solid var(--line);border-radius:10px;margin-bottom:12px;padding:10px;background:#fff}
    td{border:0;padding:6px}
    td::before{content:attr(data-label);font-weight:800;display:block;font-size:.78rem;color:#666;text-transform:uppercase;margin-bottom:2px}
}


/* Back-office : filtres rapides */
.booking-filters{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    margin:18px 0 14px;
}
.filter-chip{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:10px 16px;
    border:1px solid var(--red);
    border-radius:10px;
    color:var(--red);
    background:#fff;
    font-weight:800;
    text-decoration:none;
}
.filter-chip.active{
    background:var(--red);
    color:#fff;
}
.date-filter{
    display:flex;
    gap:10px;
    align-items:end;
    flex-wrap:wrap;
    margin-bottom:18px;
}
.date-filter label{
    min-width:220px;
}

/* Back-office : actions compactes sous chaque réservation */
.reservation-actions-row td{
    padding:7px 10px 12px;
    background:#faf9f7;
    border-bottom:1px solid var(--line);
}
.reservation-actions{
    display:flex;
    align-items:center;
    gap:6px;
    flex-wrap:wrap;
}
.reservation-actions form{
    margin:0;
}
.mini-action{
    width:auto;
    min-width:0;
    display:inline-flex;
    align-items:center;
    gap:5px;
    padding:6px 9px;
    border-radius:7px;
    border:1px solid #d8d3ce;
    background:#fff;
    color:#333;
    font-size:.78rem;
    line-height:1;
    font-weight:700;
    text-decoration:none;
    cursor:pointer;
}
button.mini-action{
    font-family:inherit;
}
.mini-action-red{
    color:var(--red);
    border-color:#e7a6ae;
}
.mini-action-green{
    color:#246b34;
    border-color:#acd6b5;
    background:#edf8ef;
}
.mini-action-grey{
    color:#555;
    border-color:#ccc;
    background:#f3f3f3;
}
.mini-action-dark{
    color:#222;
    border-color:#bdbdbd;
}
.mini-action-delete{
    color:#9b0000;
    border-color:#dfa2a2;
    background:#fff5f5;
}
.mini-action:hover{
    filter:brightness(.97);
}

@media(max-width:760px){
    .reservation-actions-row{
        display:block;
        border:0;
        padding:0;
        margin-top:-12px;
        margin-bottom:12px;
    }
    .reservation-actions-row td{
        display:block;
        padding:8px 10px 12px;
    }
    .reservation-actions-row td::before{
        display:none;
    }
    .reservation-actions{
        gap:5px;
    }
    .mini-action{
        font-size:.75rem;
        padding:6px 8px;
    }
}


/* Correctif cache/affichage back-office */
.booking-filters{
    display:flex !important;
    align-items:center;
    gap:10px !important;
    flex-wrap:wrap;
}
.booking-filters .filter-chip{
    display:inline-flex !important;
    width:auto !important;
    text-decoration:none !important;
}
.reservation-actions{
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    gap:6px !important;
    flex-wrap:wrap !important;
}
.reservation-actions form{
    display:inline-flex !important;
    width:auto !important;
    margin:0 !important;
}
.reservation-actions .mini-action{
    display:inline-flex !important;
    width:auto !important;
    min-width:0 !important;
    padding:6px 9px !important;
    margin:0 !important;
    white-space:nowrap;
    font-size:.78rem !important;
    line-height:1 !important;
}


/* Regrouper visuellement chaque réservation et ses actions en un seul bloc */
tbody tr:not(.reservation-actions-row) td{
    border-bottom:0 !important;
}

.reservation-actions-row td{
    background:#fff !important;
    border-top:0 !important;
    border-bottom:1px solid var(--line) !important;
    padding-top:4px !important;
    padding-bottom:12px !important;
}

.reservation-actions-row{
    background:#fff !important;
}

/* Un peu moins d'espace entre les informations et les actions */
tbody tr:not(.reservation-actions-row) td{
    padding-bottom:7px;
}

@media(max-width:760px){
    tbody tr:not(.reservation-actions-row){
        margin-bottom:0 !important;
        border-bottom:0 !important;
        border-radius:10px 10px 0 0 !important;
    }

    .reservation-actions-row{
        margin-top:0 !important;
        margin-bottom:12px !important;
        border:1px solid var(--line) !important;
        border-top:0 !important;
        border-radius:0 0 10px 10px !important;
        background:#fff !important;
    }

    .reservation-actions-row td{
        border-bottom:0 !important;
        background:#fff !important;
    }
}


/* Calendrier public des réservations */
.calendar-field{
    position:relative;
}
.calendar-trigger{
    width:100%;
    margin-top:6px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:12px 13px;
    border:1px solid #cbc6c0;
    border-radius:9px;
    background:#fff;
    color:var(--dark);
    font:inherit;
    font-weight:700;
    text-align:left;
}
.booking-calendar{
    position:absolute;
    z-index:50;
    width:min(390px,calc(100vw - 32px));
    margin-top:7px;
    padding:14px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:12px;
    box-shadow:0 14px 40px rgba(0,0,0,.16);
}
.calendar-header{
    display:grid;
    grid-template-columns:40px 1fr 40px;
    align-items:center;
    gap:8px;
    margin-bottom:10px;
    text-align:center;
}
.calendar-header strong{
    font-size:1rem;
    text-transform:capitalize;
}
.calendar-nav{
    width:36px;
    height:36px;
    padding:0;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid #ddd;
    border-radius:8px;
    background:#fff;
    color:#222;
    font-size:1.5rem;
    line-height:1;
}
.calendar-nav:disabled{
    opacity:.3;
    cursor:not-allowed;
}
.calendar-weekdays,
.calendar-days{
    display:grid;
    grid-template-columns:repeat(7,1fr);
    gap:5px;
}
.calendar-weekdays{
    margin-bottom:5px;
}
.calendar-weekdays span{
    text-align:center;
    font-size:.75rem;
    font-weight:800;
    color:#777;
    padding:4px 0;
}
.calendar-spacer{
    min-height:40px;
}
.calendar-day{
    min-width:0;
    height:40px;
    padding:0;
    border-radius:8px;
    border:1px solid transparent;
    font-size:.9rem;
    font-weight:800;
}
.calendar-day.available{
    background:#e4f5e8;
    color:#246b34;
    border-color:#b9dec1;
}
.calendar-day.closed{
    background:#fbe8e8;
    color:#a24b4b;
    border-color:#edcaca;
    cursor:not-allowed;
}
.calendar-day.past{
    background:#f2f2f2;
    color:#aaa;
    border-color:#e4e4e4;
    cursor:not-allowed;
}
.calendar-day.available:hover{
    background:#d4eedb;
    border-color:#8fc59b;
}
.calendar-day.today{
    box-shadow:inset 0 0 0 2px #777;
}
.calendar-day.selected{
    box-shadow:inset 0 0 0 2px var(--red);
}
.calendar-legend{
    display:flex;
    gap:14px;
    flex-wrap:wrap;
    margin-top:12px;
    padding-top:10px;
    border-top:1px solid #eee;
    font-size:.78rem;
    color:#666;
}
.calendar-legend span{
    display:inline-flex;
    align-items:center;
    gap:5px;
}
.legend-dot{
    width:12px;
    height:12px;
    border-radius:4px;
    display:inline-block;
    border:1px solid transparent;
}
.legend-dot.available{
    background:#e4f5e8;
    border-color:#b9dec1;
}
.legend-dot.closed{
    background:#fbe8e8;
    border-color:#edcaca;
}
@media(max-width:760px){
    /*
     * Le slider de réservation utilise transform: translateX(...).
     * Un élément position:fixed à l'intérieur d'un parent transformé
     * n'est plus calculé par rapport au viewport sur certains navigateurs.
     * On repasse donc le calendrier en position absolue sur mobile.
     */
    .calendar-field{
        position:relative;
        min-width:0;
    }

    .booking-calendar{
        position:absolute;
        left:0;
        right:0;
        top:100%;
        transform:none;
        width:100%;
        max-width:100%;
        box-sizing:border-box;
        margin-top:7px;
        padding:12px;
        max-height:none;
        overflow-x:hidden;
        overflow-y:visible;
    }

    .calendar-weekdays,
    .calendar-days{
        width:100%;
        min-width:0;
        grid-template-columns:repeat(7,minmax(0,1fr));
        gap:4px;
    }

    .calendar-day{
        width:100%;
        min-width:0;
        height:38px;
        font-size:.84rem;
    }

    .calendar-header{
        grid-template-columns:36px minmax(0,1fr) 36px;
        gap:6px;
    }

    .calendar-header strong{
        min-width:0;
        font-size:.95rem;
    }

    .calendar-nav{
        width:34px;
        height:34px;
    }

    .calendar-legend{
        gap:10px;
        font-size:.74rem;
    }
}

@media(max-width:420px){
    .booking-calendar{
        padding:10px;
    }

    .calendar-weekdays,
    .calendar-days{
        gap:3px;
    }

    .calendar-day{
        height:36px;
        font-size:.8rem;
        border-radius:7px;
    }

    .calendar-legend{
        flex-direction:column;
        gap:5px;
    }
}


.calendar-day.outside-window{
    background:#f2f2f2;
    color:#aaa;
    border-color:#e4e4e4;
    cursor:not-allowed;
}
.legend-dot.outside-window{
    background:#f2f2f2;
    border-color:#e4e4e4;
}


/* V2 — indicateurs fixes et séparation des services */
.dashboard-summary{
    display:grid;
    grid-template-columns:repeat(4,minmax(180px,1fr));
    gap:12px;
}
.dashboard-summary .card{
    min-width:0;
}
.service-separator-row td{
    background:#f2f0ed !important;
    border-top:1px solid var(--line) !important;
    border-bottom:1px solid var(--line) !important;
    padding:8px 10px !important;
    font-size:.86rem;
    letter-spacing:.02em;
}
.reservation-info-row td{
    border-bottom:0 !important;
}
.reservation-actions-row td{
    background:#fff !important;
    border-top:0 !important;
    border-bottom:1px solid var(--line) !important;
}
@media(max-width:1000px){
    .dashboard-summary{
        grid-template-columns:repeat(2,minmax(160px,1fr));
    }
}
@media(max-width:760px){
    .dashboard-summary{
        grid-template-columns:1fr 1fr;
    }
    .service-separator-row{
        display:block;
        margin:16px 0 6px;
        border:0 !important;
    }
    .service-separator-row td{
        display:block;
        border:1px solid var(--line) !important;
        border-radius:8px;
    }
    .service-separator-row td::before{
        display:none !important;
    }
}
@media(max-width:480px){
    .dashboard-summary{
        grid-template-columns:1fr;
    }
}


/* V2.1 — header, alertes et suivi des confirmations */
.admin-brand-link{
    color:var(--dark);
    text-decoration:none;
    font-size:1rem;
    white-space:nowrap;
}
.admin-brand-link:hover{
    color:var(--red);
}
.admin-top-actions .btn{
    display:inline-flex;
    align-items:center;
    gap:6px;
}
.admin-top-actions .nav-active{
    background:#fff1f3;
    border-color:var(--red);
}
.pending-action-card{
    background:#fff3d6 !important;
    border-color:#e9bf63 !important;
    box-shadow:0 4px 20px rgba(201,120,0,.09) !important;
}
.pending-action-card .big{
    color:#9a5b00;
}
.delivery-sent{
    color:#246b34;
    font-weight:700;
    font-size:.84rem;
    white-space:nowrap;
}
.mini-action-email{
    color:#315f8d;
    border-color:#b6cce0;
    background:#f4f8fc;
}
.mini-action-disabled{
    opacity:.42;
    cursor:not-allowed;
    background:#f4f4f4;
    color:#777;
}
.contact-copy-row{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
    padding:10px 0 14px;
}
@media(max-width:760px){
    .admin-brand-link{
        white-space:normal;
    }
}


/* V2.3 — actions SMS */
.sms-actions-row{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:nowrap;
    margin-top:18px;
}
.sms-actions-row .sms-action-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    width:auto;
    min-width:0;
    margin:0;
    padding:10px 13px;
    font-size:.92rem;
    line-height:1.1;
    font-weight:700;
    white-space:nowrap;
}
@media(max-width:760px){
    .sms-actions-row{
        flex-wrap:wrap;
    }
}


/* V2.4 — réservation à confirmer mise en évidence */
.reservation-info-row.reservation-pending td{
    background:#fff7df !important;
}
.reservation-actions-row.reservation-pending-actions td{
    background:#fff7df !important;
}
.reservation-info-row.reservation-pending td:first-child{
    box-shadow:inset 4px 0 0 #e9b949;
}
.reservation-actions-row.reservation-pending-actions td{
    border-bottom-color:#e5cf96 !important;
}


/* V2.4.1 — cache fix + header icons + pending block */
.admin-top-actions .nav-icon{
    display:inline-block !important;
    flex:0 0 auto;
    width:1.2em;
    text-align:center;
    font-size:1em;
    line-height:1;
}
.admin-top-actions .btn{
    display:inline-flex !important;
    align-items:center !important;
    gap:6px !important;
}

/* Tout le bloc À confirmer doit être jaune, informations ET actions. */
tbody .reservation-info-row.reservation-pending > td,
tbody .reservation-actions-row.reservation-pending-actions > td{
    background:#fff3d6 !important;
}
tbody .reservation-info-row.reservation-pending > td:first-child{
    box-shadow:inset 4px 0 0 #e4ab33 !important;
}
tbody .reservation-actions-row.reservation-pending-actions > td{
    border-bottom:1px solid #e3c77e !important;
}


/* V2.5 — capacité visible par service */
.service-separator-content{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    flex-wrap:wrap;
}
.service-capacity{
    display:inline-flex;
    align-items:center;
    padding:4px 9px;
    border-radius:999px;
    font-size:.82rem;
    font-weight:800;
    white-space:nowrap;
}
.service-capacity.capacity-normal{
    background:#edf6ef;
    color:#286238;
}
.service-capacity.capacity-warning{
    background:#fff0cf;
    color:#8a5900;
}
.service-capacity.capacity-full{
    background:#fde0e0;
    color:#a52323;
}
.mini-action-reactivate{
    color:#6c5311;
    border-color:#d9c58b;
    background:#fff9e8;
}


/* =========================================================
   V2.6 — formulaire public ultra-minimal / slider
   ========================================================= */

.booking-public{
    min-height:100vh;
    background:#f7f7f5;
    color:#1f1f1f;
}

.booking-brandbar{
    height:92px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--red);
}

.booking-brand-logo{
    width:145px;
    height:auto;
    display:block;
}

.booking-shell{
    width:min(620px, calc(100% - 32px));
    margin:0 auto;
    padding:42px 0 56px;
}

.booking-app{
    background:#fff;
    border:1px solid #e8e8e5;
    border-radius:24px;
    overflow:hidden;
}

.booking-app-top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:24px;
    padding:28px 30px 18px;
}

.booking-app-top h1{
    margin:4px 0 0;
    font-size:1.8rem;
    line-height:1.05;
    letter-spacing:-.025em;
}

.booking-eyebrow{
    color:#777;
    font-size:.74rem;
    font-weight:800;
    letter-spacing:.11em;
    text-transform:uppercase;
}

.booking-progress{
    display:flex;
    align-items:center;
    gap:7px;
    padding-top:7px;
}

.booking-progress-dot{
    width:8px;
    height:8px;
    border-radius:50%;
    background:#ddd;
    transition:width .22s ease, border-radius .22s ease, background .22s ease;
}

.booking-progress-dot.is-active{
    width:26px;
    border-radius:999px;
    background:var(--red);
}

.booking-progress-dot.is-done{
    background:#ffb21c;
}

.booking-global-error{
    margin:0 30px 4px;
    border-radius:14px;
    font-size:.9rem;
}

.booking-slider-viewport{
    width:100%;
    overflow:hidden;
}

.booking-slider-track{
    display:flex;
    width:300%;
    align-items:flex-start;
    transform:translateX(0);
    transition:transform .42s cubic-bezier(.22,.76,.26,.99);
    will-change:transform;
}

.booking-step{
    width:33.333333%;
    flex:0 0 33.333333%;
}

.booking-step-inner{
    padding:22px 30px 32px;
}

.booking-step-count{
    margin-bottom:10px;
    color:#999;
    font-size:.78rem;
    font-weight:800;
}

.booking-step h2{
    outline:none;
    margin:0;
    font-size:2rem;
    line-height:1.08;
    letter-spacing:-.035em;
}

.booking-step-subtitle{
    margin:9px 0 28px;
    color:#6d6d6d;
    line-height:1.5;
}

.booking-step-one-grid{
    display:grid;
    grid-template-columns:minmax(0,1.35fr) minmax(190px,.65fr);
    gap:14px;
}

.booking-flat-field{
    position:relative;
}

.booking-flat-field label{
    display:block;
    margin:0 0 8px;
    color:#555;
    font-size:.82rem;
    font-weight:800;
}

.booking-flat-field input,
.booking-flat-field select,
.booking-flat-field textarea,
.booking-date-trigger{
    width:100%;
    margin:0;
    border:1px solid #dededb;
    border-radius:14px;
    background:#fff;
    color:#1f1f1f;
    padding:14px 15px;
    font:inherit;
    box-shadow:none;
}

.booking-flat-field input:focus,
.booking-flat-field select:focus,
.booking-flat-field textarea:focus,
.booking-date-trigger:focus{
    outline:none;
    border-color:#a9a9a5;
    box-shadow:0 0 0 3px rgba(0,0,0,.04);
}

.booking-date-trigger{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    font-weight:700;
    text-align:left;
}

.booking-control-icon{
    color:#777;
    font-size:1.2rem;
}

.booking-party-control{
    height:51px;
    display:grid;
    grid-template-columns:46px 1fr 46px;
    align-items:center;
    border:1px solid #dededb;
    border-radius:14px;
    overflow:hidden;
    background:#fff;
}

.booking-party-btn{
    width:100%;
    height:100%;
    padding:0;
    border-radius:0;
    background:#fff;
    color:#222;
    font-size:1.35rem;
    font-weight:500;
}

.booking-party-btn:hover{
    background:#f5f5f3;
}

.booking-party-value{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    min-width:0;
}

.booking-party-value input{
    width:28px;
    margin:0;
    padding:0;
    border:0;
    border-radius:0;
    text-align:right;
    font-weight:800;
    -moz-appearance:textfield;
}

.booking-party-value input::-webkit-outer-spin-button,
.booking-party-value input::-webkit-inner-spin-button{
    -webkit-appearance:none;
    margin:0;
}

.booking-party-value input:focus{
    box-shadow:none;
}

.booking-party-value span{
    white-space:nowrap;
    color:#555;
    font-size:.88rem;
}

.booking-time-field{
    margin-top:22px;
}

.booking-native-time-select{
    position:absolute !important;
    width:1px !important;
    height:1px !important;
    padding:0 !important;
    opacity:0 !important;
    pointer-events:none !important;
}

.booking-time-chips{
    display:flex;
    flex-wrap:wrap;
    gap:9px;
}

.booking-time-chip{
    width:auto;
    min-width:76px;
    padding:11px 14px;
    border:1px solid #dededb;
    border-radius:12px;
    background:#fff;
    color:#222;
    font-size:.92rem;
    font-weight:800;
    transition:background .14s ease, color .14s ease, border-color .14s ease, transform .14s ease;
}

.booking-time-chip:hover{
    border-color:#aaa;
    transform:translateY(-1px);
}

.booking-time-chip.is-selected{
    background:#1f1f1f;
    border-color:#1f1f1f;
    color:#fff;
}

.booking-empty-slots{
    width:100%;
    padding:14px 0 4px;
    color:#888;
    font-size:.9rem;
}

.booking-inline-message{
    min-height:18px;
    margin-top:7px;
    color:#9a2424;
    font-size:.82rem;
    line-height:1.4;
}

.booking-step-actions{
    display:flex;
    justify-content:flex-end;
    margin-top:28px;
}

.booking-step-actions-end{
    margin-top:34px;
}

.booking-primary-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    min-width:150px;
    padding:14px 20px;
    border:0;
    border-radius:12px;
    background:var(--red);
    color:#fff;
    font-size:.94rem;
    font-weight:850;
    transition:transform .14s ease, opacity .14s ease, background .14s ease;
}

.booking-primary-btn:hover{
    transform:translateY(-1px);
    background:#b91025;
}

.booking-primary-btn:disabled{
    opacity:.55;
    cursor:wait;
    transform:none;
}

.booking-back-link{
    width:auto;
    padding:0;
    margin:0 0 20px;
    background:transparent;
    color:#666;
    font-size:.88rem;
    font-weight:700;
}

.booking-back-link:hover{
    color:#111;
}

.booking-recap-strip{
    margin:-10px 0 24px;
    padding:11px 13px;
    border-radius:11px;
    background:#f7f7f5;
    color:#555;
    font-size:.86rem;
    font-weight:700;
}

.booking-contact-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px 14px;
}

.booking-optional{
    color:#999;
    font-weight:500;
}

.booking-final-recap{
    display:grid;
    grid-template-columns:1.45fr .7fr .8fr;
    gap:1px;
    overflow:hidden;
    margin:-8px 0 26px;
    border:1px solid #e8e8e5;
    border-radius:14px;
    background:#e8e8e5;
}

.booking-final-recap > div{
    min-width:0;
    padding:14px;
    background:#fff;
}

.booking-final-recap span{
    display:block;
    margin-bottom:5px;
    color:#999;
    font-size:.72rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.05em;
}

.booking-final-recap strong{
    display:block;
    overflow:hidden;
    color:#222;
    font-size:.9rem;
    text-overflow:ellipsis;
}

.booking-comment-field textarea{
    min-height:110px;
    resize:vertical;
}

.booking-consent-flat{
    display:flex;
    align-items:flex-start;
    gap:10px;
    margin-top:20px;
    color:#666;
    font-size:.82rem;
    font-weight:500;
    line-height:1.45;
}

.booking-consent-flat input{
    width:auto;
    flex:0 0 auto;
    margin:2px 0 0;
    accent-color:var(--red);
}

.booking-step-error{
    min-height:20px;
    margin-top:14px;
    color:#a12626;
    font-size:.85rem;
    font-weight:700;
}

.booking-final-action{
    margin-top:23px;
    text-align:center;
}

.booking-submit-final{
    width:100%;
    padding:16px 20px;
    font-size:1rem;
}

.booking-final-action p{
    margin:12px 0 0;
    color:#777;
    font-size:.83rem;
}

.booking-last-minute{
    padding:16px 24px 20px;
    border-top:1px solid #efefed;
    color:#888;
    font-size:.78rem;
    text-align:center;
}

.booking-last-minute a{
    color:#555;
    font-weight:800;
    text-decoration:none;
}

.booking-success-screen{
    padding:54px 36px;
    background:#fff;
    border:1px solid #e8e8e5;
    border-radius:24px;
    text-align:center;
}

.booking-success-icon{
    width:54px;
    height:54px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin:0 auto 20px;
    border-radius:50%;
    background:#e8f5ec;
    color:#25713b;
    font-size:1.7rem;
    font-weight:900;
}

.booking-success-screen h1{
    margin:7px 0 10px;
    font-size:2.2rem;
}

.booking-success-main{
    margin:0;
    color:#555;
    font-size:1rem;
}

.booking-success-confirm{
    margin:18px 0 24px;
    font-size:1.06rem;
}

.booking-secondary-link{
    color:var(--red);
    font-size:.9rem;
    font-weight:800;
}

.booking-public .booking-calendar{
    width:min(380px,calc(100vw - 44px));
    border-radius:16px;
    box-shadow:0 18px 45px rgba(0,0,0,.14);
}

.booking-public .calendar-day.available{
    background:#f4f7f4;
    border-color:#e0e9e1;
    color:#286238;
}

.booking-public .calendar-day.selected{
    background:#1f1f1f;
    border-color:#1f1f1f;
    color:#fff;
    box-shadow:none;
}

.booking-public .calendar-day.today{
    box-shadow:inset 0 0 0 1px #888;
}

.booking-public .calendar-legend{
    font-size:.72rem;
}

@media(max-width:760px){
    .booking-brandbar{
        height:78px;
    }

    .booking-brand-logo{
        width:120px;
    }

    .booking-shell{
        width:100%;
        margin:0;
        padding:0;
    }

    .booking-app,
    .booking-success-screen{
        min-height:calc(100vh - 78px);
        border:0;
        border-radius:0;
    }

    .booking-app-top{
        padding:24px 20px 10px;
    }

    .booking-app-top h1{
        font-size:1.5rem;
    }

    .booking-step-inner{
        padding:20px 20px 28px;
    }

    .booking-step h2{
        font-size:1.75rem;
    }

    .booking-step-subtitle{
        margin-bottom:24px;
    }

    .booking-step-one-grid,
    .booking-contact-grid{
        grid-template-columns:1fr;
    }

    .booking-final-recap{
        grid-template-columns:1fr 1fr;
    }

    .booking-final-recap > div:first-child{
        grid-column:1 / -1;
    }

    .booking-primary-btn{
        width:100%;
    }

    .booking-step-actions{
        justify-content:stretch;
    }

    .booking-global-error{
        margin:0 20px 4px;
    }

    .booking-last-minute{
        padding-bottom:24px;
    }

    .booking-public .booking-calendar{
        position:static;
        left:auto;
        right:auto;
        top:auto;
        width:100%;
        max-width:100%;
        max-height:none;
        margin:8px 0 0;
        padding:12px;
        transform:none;
        overflow:visible;
        box-sizing:border-box;
    }

    .booking-public .calendar-field{
        min-width:0;
        width:100%;
    }

    .booking-public .calendar-weekdays,
    .booking-public .calendar-days{
        width:100%;
        min-width:0;
        grid-template-columns:repeat(7,minmax(0,1fr));
        gap:4px;
    }

    .booking-public .calendar-day{
        width:100%;
        min-width:0;
        height:38px;
        padding:0;
        font-size:.82rem;
    }

    .booking-public .calendar-header{
        grid-template-columns:34px minmax(0,1fr) 34px;
        gap:5px;
    }

    .booking-public .calendar-nav{
        width:34px;
        height:34px;
    }

    .booking-public .calendar-legend{
        font-size:.72rem;
        gap:9px;
    }
}


/* =========================================================
   V2.7 — Mode Rush / Panic
   ========================================================= */
.rush-panel{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    margin:0 0 18px;
    padding:15px 17px;
    border:1px solid var(--line);
    border-radius:13px;
    background:#fff;
}
.rush-panel-copy{
    min-width:0;
}
.rush-panel-title{
    margin-bottom:3px;
    font-weight:900;
}
.rush-panel-text{
    color:#666;
    font-size:.86rem;
    line-height:1.4;
}
.rush-panel-actions{
    display:flex;
    gap:8px;
    align-items:center;
    flex-wrap:wrap;
}
.rush-panel form{
    margin:0;
}
.rush-btn{
    width:auto;
    min-width:0;
    margin:0;
    padding:9px 12px;
    border-radius:8px;
    white-space:nowrap;
    font-size:.82rem;
    font-weight:850;
}
.rush-btn-today{
    background:#fff2cf;
    color:#775000;
    border:1px solid #e5c26e;
}
.rush-btn-panic{
    background:#b71124;
    color:#fff;
    border:1px solid #b71124;
}
.rush-btn-resume{
    background:#e9f6ec;
    color:#246b34;
    border:1px solid #a9d4b1;
}
.rush-panel-today{
    background:#fff8e7;
    border-color:#e7c972;
}
.rush-panel-today .rush-panel-title{
    color:#805600;
}
.rush-panel-all{
    background:#b71124;
    border-color:#b71124;
    color:#fff;
}
.rush-panel-all .rush-panel-text{
    color:rgba(255,255,255,.86);
}
.rush-panel-all .rush-btn-resume{
    background:#fff;
    border-color:#fff;
    color:#1e6532;
}

.booking-rush-public-notice{
    display:flex;
    flex-direction:column;
    gap:3px;
    margin:0 30px 5px;
    padding:12px 14px;
    border:1px solid #ead08b;
    border-radius:12px;
    background:#fff8e7;
    color:#714e00;
    font-size:.84rem;
    line-height:1.4;
}
.booking-rush-public-notice span{
    color:#856a2c;
}
.booking-paused-screen{
    padding:58px 38px;
    background:#fff;
    border:1px solid #e8e8e5;
    border-radius:24px;
    text-align:center;
}
.booking-paused-icon{
    width:54px;
    height:54px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin:0 auto 20px;
    border-radius:50%;
    background:#fff1f2;
    color:var(--red);
    font-size:1.45rem;
    font-weight:900;
}
.booking-paused-screen h1{
    max-width:470px;
    margin:8px auto 14px;
    font-size:2rem;
    line-height:1.08;
    letter-spacing:-.03em;
}
.booking-paused-screen > p{
    max-width:480px;
    margin:0 auto;
    color:#666;
    line-height:1.55;
}
.booking-paused-help{
    margin-top:18px !important;
}
.booking-paused-help a{
    color:var(--red);
    font-weight:850;
    white-space:nowrap;
}

@media(max-width:760px){
    .rush-panel{
        align-items:flex-start;
        flex-direction:column;
    }
    .rush-panel-actions{
        width:100%;
    }
    .rush-panel-actions form{
        flex:1 1 auto;
    }
    .rush-panel-actions .rush-btn{
        width:100%;
    }
    .booking-rush-public-notice{
        margin:0 20px 5px;
    }
    .booking-paused-screen{
        min-height:calc(100vh - 78px);
        padding:58px 24px;
        border:0;
        border-radius:0;
    }
}


/* =========================================================
   V2.7.2 — respiration du logo + footer public minimal
   ========================================================= */

/* Le logo respire davantage dans le bandeau rouge */
.booking-public .booking-brandbar{
    height:auto !important;
    min-height:122px;
    padding:18px 0 20px;
}

.booking-public .booking-brand-logo{
    display:block;
    width:145px;
    height:auto;
}

/* Footer public */
.booking-public-footer{
    width:100%;
    padding:10px 0 34px;
    color:#747474;
}

.booking-public-footer-inner{
    width:min(760px, calc(100% - 32px));
    margin:0 auto;
    padding:24px 6px 0;
    border-top:1px solid #dededb;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}

.booking-footer-place{
    display:flex;
    flex-direction:column;
    gap:4px;
    min-width:0;
    font-size:.78rem;
    line-height:1.4;
}

.booking-footer-place strong{
    color:#3b3b3b;
    font-size:.82rem;
}

.booking-footer-social{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:8px;
    flex-wrap:wrap;
    font-size:.78rem;
}

.booking-footer-social a{
    color:#555;
    text-decoration:none;
    font-weight:700;
    transition:color .15s ease;
}

.booking-footer-social a:hover{
    color:var(--red);
}

.booking-footer-social > span{
    color:#b6b6b2;
}

@media(max-width:760px){
    .booking-public .booking-brandbar{
        height:auto !important;
        min-height:104px;
        padding:15px 0 17px;
    }

    .booking-public .booking-brand-logo{
        width:120px;
    }

    .booking-public-footer{
        padding:8px 0 26px;
    }

    .booking-public-footer-inner{
        width:calc(100% - 40px);
        flex-direction:column;
        align-items:center;
        gap:12px;
        padding-top:20px;
        text-align:center;
    }

    .booking-footer-social{
        justify-content:center;
    }
}


/* =========================================================
   V2.7.3 — footer public plus élégant et plus marque
   ========================================================= */

.booking-public-footer{
    width:100%;
    padding:14px 0 36px;
    color:#747474;
}

.booking-public-footer-inner{
    width:min(760px, calc(100% - 32px));
    margin:0 auto;
    padding:24px 0 0;
    border-top:1px solid #dededb;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:28px;
}

.booking-footer-branding{
    flex:1 1 320px;
    min-width:0;
}

.booking-footer-title{
    color:#242424;
    font-size:1rem;
    font-weight:900;
    letter-spacing:-0.02em;
}

.booking-footer-text{
    margin:8px 0 12px;
    color:#707070;
    font-size:.82rem;
    line-height:1.55;
    max-width:360px;
}

.booking-footer-address{
    display:flex;
    align-items:flex-start;
    gap:8px;
    color:#5f5f5f;
    font-size:.8rem;
    line-height:1.45;
}

.booking-footer-social{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
    flex-wrap:wrap;
    flex:0 1 360px;
}

.booking-footer-social-link{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:10px 12px;
    border:1px solid #e2e2de;
    border-radius:999px;
    background:#fff;
    color:#4f4f4f;
    text-decoration:none;
    font-size:.8rem;
    font-weight:800;
    transition:transform .14s ease, border-color .14s ease, color .14s ease, box-shadow .14s ease;
}

.booking-footer-social-link:hover{
    color:var(--red);
    border-color:#d9c5c8;
    box-shadow:0 8px 18px rgba(0,0,0,.05);
    transform:translateY(-1px);
}

.booking-footer-icon{
    width:18px;
    height:18px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:currentColor;
    flex:0 0 auto;
}

.booking-footer-icon svg{
    width:18px;
    height:18px;
    display:block;
}

@media(max-width:760px){
    .booking-public-footer{
        padding:10px 0 26px;
    }

    .booking-public-footer-inner{
        width:calc(100% - 40px);
        flex-direction:column;
        align-items:flex-start;
        gap:16px;
        padding-top:20px;
    }

    .booking-footer-text{
        max-width:none;
    }

    .booking-footer-social{
        justify-content:flex-start;
    }
}


/* =========================================================
   V2.8 — module Avis clients
   ========================================================= */
.review-admin-page{max-width:1100px}
.review-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px}
.review-page-head h1{margin:0 0 5px}
.review-page-head p{margin:0;color:#6f6f6f}
.review-page-count{min-width:92px;padding:12px 15px;border-radius:14px;background:#fff;border:1px solid var(--line);text-align:center}
.review-page-count span{display:block;font-size:1.55rem;font-weight:900;color:var(--red)}
.review-page-count small{color:#777;font-weight:700}
.review-setup-notice{background:#fff7df;border-color:#e7c874}
.review-section-card{margin-bottom:20px}
.review-section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}
.review-section-title h2{margin:0 0 4px}
.review-section-title p{margin:0;color:#777;font-size:.9rem}
.review-list{display:grid;gap:10px}
.review-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 15px;border:1px solid #e6e1dc;border-radius:12px;background:#fff}
.review-row-yesterday{background:#fff9e9;border-color:#e9d596}
.review-row-main{min-width:0}
.review-client-name{font-weight:900}
.review-client-meta,.review-client-email{margin-top:3px;color:#777;font-size:.82rem}
.review-row-side{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.review-yesterday-badge{display:inline-flex;padding:5px 8px;border-radius:999px;background:#fff0c7;color:#7c5600;font-size:.72rem;font-weight:900;white-space:nowrap}
.review-send-form{margin:0}
.review-send-btn{padding:9px 12px;border-radius:9px;background:var(--red);color:#fff;font-size:.84rem}
.review-send-btn:disabled{opacity:.4;cursor:not-allowed}
.review-empty-state{padding:20px;border:1px dashed #ddd6cf;border-radius:12px;color:#777;text-align:center;background:#fbfaf8}
.review-feedback-list{display:grid;gap:12px}
.review-feedback-card{padding:16px;border:1px solid #e4ddd7;border-radius:12px;background:#fffaf5}
.review-feedback-head{display:flex;align-items:center;justify-content:space-between;gap:14px}
.review-feedback-head span{color:#888;font-size:.78rem}
.review-feedback-visit{margin-top:3px;color:#888;font-size:.78rem}
.review-feedback-card p{margin:13px 0 0;line-height:1.55}
.review-history-list{display:grid}
.review-history-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:11px 2px;border-bottom:1px solid #eee}
.review-history-row:last-child{border-bottom:0}
.review-history-row span{color:#777;font-size:.85rem}
.review-history-status{color:#397246;font-size:.8rem;font-weight:800;text-align:right}
.review-template-textarea{min-height:190px!important}
.review-config-preview{margin-top:12px;padding:12px 14px;border-radius:10px;background:#f7f5f2;color:#666;font-size:.86rem;line-height:1.5}

/* Formulaire privé client */
.review-feedback-page{min-height:100vh;background:#f7f7f5}
.review-feedback-header{min-height:118px;padding:18px 0;display:flex;align-items:center;justify-content:center;background:var(--red)}
.review-feedback-header img{width:140px;height:auto;display:block}
.review-feedback-shell{width:min(560px,calc(100% - 32px));margin:42px auto;padding-bottom:50px}
.review-feedback-public-card{padding:30px;background:#fff;border:1px solid #e5e2df;border-radius:20px;box-shadow:0 12px 30px rgba(0,0,0,.04)}
.review-feedback-public-card h1{margin:7px 0 12px;font-size:1.9rem;letter-spacing:-.025em}
.review-feedback-public-card p{color:#666;line-height:1.6}
.review-feedback-public-card textarea{min-height:160px;margin-top:8px;border-radius:13px}
.review-feedback-submit{width:100%;margin-top:18px;padding:14px 18px;border-radius:12px}
.review-feedback-success{text-align:center}
.review-feedback-success-icon{width:54px;height:54px;margin:0 auto 16px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#e8f5ec;color:#25713b;font-size:1.7rem;font-weight:900}

@media(max-width:760px){
.review-page-head{align-items:flex-start;flex-direction:column}
.review-page-count{display:flex;align-items:baseline;gap:7px;min-width:0}
.review-page-count span{font-size:1.2rem}
.review-row{align-items:flex-start;flex-direction:column}
.review-row-side{width:100%;justify-content:space-between}
.review-send-form{margin-left:auto}
.review-history-row{align-items:flex-start;flex-direction:column;gap:5px}
.review-history-status{text-align:left}
.review-feedback-head{align-items:flex-start;flex-direction:column;gap:3px}
.review-feedback-header{min-height:102px}
.review-feedback-header img{width:120px}
.review-feedback-shell{margin-top:24px}
.review-feedback-public-card{padding:22px}
}


/* V2.8.1 — envoi manuel Avis clients */
.review-manual-card{
    background:#fffdf8;
    border-color:#eadfc8;
}
.review-manual-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}
.review-manual-grid label{
    display:block;
}
.review-manual-grid input{
    margin-top:6px;
}
.review-manual-actions{
    display:flex;
    justify-content:flex-end;
    margin-top:16px;
}
.review-feedback-manual{
    background:#f7f9fc;
    border-color:#dbe3ec;
}
@media(max-width:760px){
    .review-manual-grid{
        grid-template-columns:1fr;
    }
    .review-manual-actions .review-send-btn{
        width:100%;
    }
}


/* V2.8.2 — personnalisation complète de l’envoi manuel */
.review-manual-editor{
    display:grid;
    gap:14px;
    margin-top:18px;
    padding-top:18px;
    border-top:1px solid #eadfc8;
}
.review-manual-editor label{
    display:block;
}
.review-manual-editor input,
.review-manual-editor textarea{
    margin-top:6px;
}
.review-manual-editor textarea{
    min-height:220px;
    resize:vertical;
    line-height:1.55;
}
.review-manual-help{
    color:#777;
    font-size:.82rem;
    line-height:1.5;
}
.review-manual-help code{
    padding:2px 5px;
    border-radius:5px;
    background:#f1eee9;
    color:#555;
}
.review-manual-fixed-footer{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px 12px;
    padding:12px 14px;
    border-radius:10px;
    background:#f7f5f2;
    color:#666;
    font-size:.82rem;
}
.review-manual-fixed-footer strong{
    color:#444;
}
.review-manual-fixed-footer span{
    font-weight:800;
}
@media(max-width:760px){
    .review-manual-fixed-footer{
        align-items:flex-start;
        flex-direction:column;
    }
}


/* V2.8.3 — emails avis harmonisés */
.review-manual-fixed-footer span{display:inline-flex;align-items:center;gap:6px}
.review-history-status{font-weight:700;color:#2e6b3a}

/* V2.8.4 — header admin compact */
.topbar-inner{
    padding:10px 0;
    gap:14px;
}
.admin-brand-link{
    font-size:0.96rem;
    font-weight:700;
}
.admin-top-actions{
    gap:10px;
    align-items:center;
}
.admin-top-actions .btn{
    display:inline-flex;
    align-items:center;
    gap:6px;
    border-radius:8px;
    padding:8px 12px;
    font-size:.82rem;
    line-height:1.1;
}
.admin-top-actions .btn span[aria-hidden="true"]{
    font-size:.95rem;
}
.admin-top-actions .nav-active{
    background:#fff1f3;
    border-color:var(--red);
}
.admin-logout-btn{
    min-width:40px;
    justify-content:center;
    padding:8px 0 !important;
    color:var(--red);
    border-color:#e7a6ae;
    background:#fff5f6;
    font-size:1rem !important;
}
.admin-logout-btn:hover{
    background:#ffeef1;
}
@media(max-width:760px){
    .topbar-inner{
        gap:10px;
    }
    .admin-brand-link{
        font-size:0.92rem;
    }
    .admin-top-actions{
        gap:8px;
    }
    .admin-top-actions .btn{
        padding:7px 10px;
        font-size:.8rem;
    }
    .admin-logout-btn{
        min-width:38px;
    }
}


/* V2.8.5 — correctif mise en page Avis */
.review-manual-grid{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:14px !important;
}
.review-manual-editor{
    display:grid !important;
    gap:14px !important;
}
.review-manual-editor textarea{
    min-height:220px !important;
}
@media(max-width:760px){
    .review-manual-grid{
        grid-template-columns:1fr !important;
    }
}


/* =========================================================
   PILOT CANTINA V1 — socle multi-modules
   ========================================================= */
.pilot-shell{width:min(1120px,92%);margin:28px auto 50px}
.pilot-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px}
.pilot-hero h1{font-size:2rem;margin:0 0 5px;letter-spacing:-.035em}
.pilot-hero p{margin:0;color:#6f6f6f}
.pilot-version{font-size:.76rem;color:#777;border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 10px;white-space:nowrap}
.pilot-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:22px}
.pilot-stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:0 4px 20px rgba(0,0,0,.035)}
.pilot-stat .pilot-stat-value{font-size:1.6rem;font-weight:900;line-height:1;color:#202020}
.pilot-stat .pilot-stat-label{margin-top:7px;color:#777;font-size:.82rem;line-height:1.3}
.pilot-modules-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.pilot-module-card{display:block;background:#fff;border:1px solid var(--line);border-radius:15px;padding:18px;text-decoration:none;color:#202020;box-shadow:0 4px 18px rgba(0,0,0,.035);transition:transform .14s ease,border-color .14s ease}
.pilot-module-card:hover{transform:translateY(-1px);border-color:#d8b7bc;color:#202020}
.pilot-module-icon{font-size:1.4rem;margin-bottom:10px}
.pilot-module-title{font-size:1.05rem;font-weight:900}
.pilot-module-desc{margin-top:5px;color:#777;font-size:.82rem;line-height:1.45}
.pilot-section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:26px 0 12px}
.pilot-section-head h2{margin:0;font-size:1.15rem}
.pilot-small-link{font-size:.8rem;font-weight:800;text-decoration:none}
.pilot-placeholder{max-width:720px;margin:44px auto;text-align:center}
.pilot-placeholder-icon{font-size:2.3rem;margin-bottom:12px}
.pilot-placeholder h1{margin-bottom:8px}
.pilot-placeholder p{color:#6d6d6d;line-height:1.6}
.pilot-module-table{width:100%;border-collapse:separate;border-spacing:0 8px;background:transparent}
.pilot-module-table td{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:13px}
.pilot-module-table td:first-child{border-left:1px solid var(--line);border-radius:11px 0 0 11px}
.pilot-module-table td:last-child{border-right:1px solid var(--line);border-radius:0 11px 11px 0}
.pilot-state{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 8px;font-size:.74rem;font-weight:850}
.pilot-state-on{background:#e8f7ec;color:#246b34}
.pilot-state-off{background:#efefef;color:#666}
.pilot-login-brand{text-align:center;margin-bottom:20px}
.pilot-login-brand img{width:210px;max-width:72%;height:auto;display:block;margin:0 auto}
.pilot-footer-note{margin-top:30px;color:#888;font-size:.76rem;text-align:center}
.pilot-system-list{display:grid;gap:10px}
.pilot-system-row{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid #eee}
.pilot-system-row:last-child{border-bottom:0}
@media(max-width:900px){.pilot-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.pilot-modules-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.pilot-hero{align-items:flex-start;flex-direction:column}.pilot-stats,.pilot-modules-grid{grid-template-columns:1fr}.pilot-module-table,.pilot-module-table tbody,.pilot-module-table tr,.pilot-module-table td{display:block}.pilot-module-table tr{margin-bottom:10px}.pilot-module-table td{border-left:1px solid var(--line);border-right:1px solid var(--line);border-radius:0}.pilot-module-table td:first-child{border-radius:11px 11px 0 0}.pilot-module-table td:last-child{border-radius:0 0 11px 11px}}


/* =========================================================
   PILOT V2.3 — garde-fou calendrier mobile
   ========================================================= */
@media(max-width:760px){
    .booking-public #bookingCalendar.booking-calendar{
        position:static !important;
        inset:auto !important;
        width:100% !important;
        max-width:100% !important;
        max-height:none !important;
        margin:8px 0 0 !important;
        transform:none !important;
        overflow:visible !important;
        box-sizing:border-box !important;
    }

    .booking-public #bookingCalendar .calendar-weekdays,
    .booking-public #bookingCalendar .calendar-days{
        grid-template-columns:repeat(7,minmax(0,1fr)) !important;
        width:100% !important;
        min-width:0 !important;
    }

    .booking-public #bookingCalendar .calendar-day{
        min-width:0 !important;
        width:100% !important;
    }
}


/* =========================================================
   PILOT CANTINA V2.5 — Module Planning
   ========================================================= */
.pilot-shell{
    width:min(1440px,95%);
    margin:28px auto 50px;
}
.planning-shell{width:min(1500px,96%)}
.planning-title-row{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    margin-bottom:18px;
}
.planning-title-row h1{margin-bottom:6px}
.planning-table-wrap{
    overflow-x:auto;
    border:1px solid var(--line);
    border-radius:14px;
    background:#fff;
}
.planning-grid-table{
    min-width:1320px;
    table-layout:fixed;
}
.planning-grid-table th{
    background:#faf9f7;
    text-align:center;
    font-size:.76rem;
    padding:10px 6px;
}
.planning-grid-table td{
    padding:8px 6px;
    border-right:1px solid #eee9e5;
    vertical-align:top;
}
.planning-grid-table tr:last-child td{border-bottom:0}
.planning-employee-col{width:170px}
.planning-total-col{width:250px}
.planning-employee-cell{width:170px}
.planning-contract{
    display:inline-block;
    margin-top:8px;
    padding:4px 7px;
    border-radius:999px;
    background:#f2efec;
    font-size:.74rem;
    font-weight:800;
}
.planning-edit-employee{
    display:block;
    margin-top:7px;
    font-size:.75rem;
}
.planning-day-cell{
    width:125px;
    min-width:125px;
}
.planning-day-cell select,
.planning-day-cell input{
    margin-top:0;
    padding:7px 6px;
    border-radius:7px;
    font-size:.76rem;
}
.planning-day-type{font-weight:800}
.planning-work-fields{
    margin-top:7px;
    padding-top:7px;
    border-top:1px dashed #ddd7d1;
}
.planning-work-fields.is-hidden{display:none}
.planning-time-line{
    display:grid;
    grid-template-columns:minmax(0,1fr) 10px minmax(0,1fr);
    align-items:center;
    gap:3px;
    margin-bottom:5px;
}
.planning-time-line span{text-align:center;color:#888}
.planning-note{margin-top:6px!important}
.planning-check-cell{width:250px;background:#fcfbfa}
.planning-total-hours{
    font-size:1.2rem;
    font-weight:900;
}
.planning-alert{
    margin-top:7px;
    padding:7px 8px;
    border-radius:7px;
    font-size:.72rem;
    line-height:1.35;
}
.planning-alert-error{background:#fde9e9;color:#8d2424}
.planning-alert-warning{background:#fff4d8;color:#7a5600}
.planning-alert-ok{background:#e8f7ec;color:#246b34}
.planning-save-bar{
    position:sticky;
    bottom:0;
    z-index:20;
    margin-top:14px;
    padding:12px 14px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    background:rgba(255,255,255,.96);
    border:1px solid var(--line);
    border-radius:12px;
    box-shadow:0 -6px 22px rgba(0,0,0,.06);
}
.planning-team-list{display:grid;gap:10px}
.planning-team-card{
    display:grid;
    grid-template-columns:minmax(180px,1.2fr) minmax(320px,2fr) auto;
    align-items:center;
    gap:16px;
    padding:14px;
    border:1px solid var(--line);
    border-radius:11px;
}
.planning-team-card.is-inactive{opacity:.55;background:#f5f5f5}
.planning-team-rules{
    display:flex;
    gap:7px;
    flex-wrap:wrap;
}
.planning-team-rules span{
    padding:5px 8px;
    border-radius:999px;
    background:#f2efec;
    font-size:.75rem;
    font-weight:800;
}
.planning-team-card form{margin:0}
.planning-form-card{margin-bottom:16px}
.planning-form-card h2{font-size:1.08rem}
.planning-active-check{
    align-self:end;
    padding-bottom:10px;
}
@media(max-width:900px){
    .planning-title-row{flex-direction:column}
    .planning-team-card{grid-template-columns:1fr}
    .planning-save-bar{align-items:stretch;flex-direction:column}
    .planning-save-bar button{width:100%}
}
@media(max-width:760px){
    .planning-shell{width:calc(100% - 24px)}
    .planning-grid-table,
    .planning-grid-table thead,
    .planning-grid-table tbody,
    .planning-grid-table tr,
    .planning-grid-table th,
    .planning-grid-table td{
        display:table;
    }
    .planning-grid-table{
        display:table;
        min-width:1320px;
    }
    .planning-grid-table thead{display:table-header-group}
    .planning-grid-table tbody{display:table-row-group}
    .planning-grid-table tr{display:table-row;border:0;padding:0}
    .planning-grid-table th,
    .planning-grid-table td{display:table-cell}
    .planning-grid-table td::before{display:none}
}


/* V2.5 — deux services par jour + aperçu individuel */
.planning-shift-row{
    padding:7px 0;
    border-bottom:1px dashed #ded8d2;
}
.planning-shift-row:last-child{border-bottom:0}
.planning-shift-row select,
.planning-shift-row input[type="text"]{
    width:100%;
    margin-top:5px;
}
.individual-planning-shell{width:min(1180px,95%)}
.individual-planning-sheet{
    background:#fff;
    border:1px solid #d8d8d8;
    border-radius:12px;
    overflow:hidden;
}
.individual-meta-row{
    display:grid;
    grid-template-columns:1fr auto;
    border-bottom:1px solid #ddd;
    min-height:50px;
}
.individual-meta-row>div{
    display:flex;
    align-items:center;
    gap:14px;
    padding:10px 14px;
    font-size:1.05rem;
}
.individual-meta-row span{font-weight:700}
.individual-plan-code{border-left:1px solid #ddd;min-width:160px;font-weight:800}
.individual-planning-table{width:100%;border-collapse:collapse}
.individual-planning-table th,
.individual-planning-table td{
    border:1px solid #d4d4d4;
    padding:9px 10px;
    font-size:.9rem;
}
.individual-planning-table th{background:#f5f5f5;text-align:left}
.individual-day-name{font-size:1rem!important;font-weight:700;width:120px}
.individual-day-total{font-weight:900;text-align:center;width:110px}
.individual-rest-row{background:#fff0dd}
.individual-week-total{font-weight:900;font-size:1.05rem!important;text-align:center;border:2px solid #222!important}
.individual-legal-note{
    margin:22px 0 0;
    padding:14px 16px;
    border-top:1px solid #ddd;
    font-size:.9rem;
    line-height:1.45;
}
@media(max-width:760px){
    .individual-planning-sheet{overflow-x:auto}
    .individual-meta-row{min-width:850px}
    .individual-planning-table{min-width:850px}
}
@media print{
    .no-print,.pilot-topbar,.pilot-subbar{display:none!important}
    body{background:#fff}
    .individual-planning-shell{width:100%;margin:0}
    .individual-planning-sheet{border:0;border-radius:0}
}


/* =========================================================
   PILOT CANTINA V2.6 — Planning par contrats
   ========================================================= */
.planning-week-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin:0 0 18px;
    padding:14px 16px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:14px;
}
.planning-week-navigation{
    display:flex;
    align-items:center;
    gap:14px;
}
.planning-week-navigation h1{
    margin:1px 0 0;
    font-size:1.35rem;
}
.planning-week-kicker{
    color:#888;
    font-size:.72rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.06em;
}
.planning-week-arrow{
    width:38px;
    height:38px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid #ddd7d1;
    border-radius:9px;
    color:#333;
    text-decoration:none;
    font-size:1.5rem;
    background:#fff;
}
.planning-week-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:8px;
    flex-wrap:wrap;
}
.planning-inline-form{margin:0}
.planning-status{
    display:inline-flex;
    align-items:center;
    padding:7px 10px;
    border-radius:999px;
    font-size:.76rem;
    font-weight:900;
    white-space:nowrap;
}
.planning-status.is-draft{
    background:#fff2cf;
    color:#735000;
}
.planning-status.is-published{
    background:#e5f6e9;
    color:#246b34;
}
.planning-day-head{
    background:#faf9f7!important;
}
.planning-day-head-label{
    font-weight:900;
    margin-bottom:7px;
}
.planning-day-info-input{
    width:100%;
    min-width:0;
    margin:0!important;
    padding:6px 7px!important;
    background:#fff2bd!important;
    border:1px solid #ead47a!important;
    border-radius:6px!important;
    font-size:.68rem!important;
    font-weight:700;
}
.planning-person-link{
    color:#222;
    text-decoration:none;
    font-size:.94rem;
    font-weight:900;
}
.planning-person-link:hover{
    color:var(--red);
    text-decoration:underline;
}
.planning-contract-dates{
    margin-top:5px;
    font-size:.7rem;
}
.planning-day-cell{
    background:#fff;
}
.planning-out-contract{
    background:#f3f3f3;
    color:#999;
    text-align:center;
    vertical-align:middle!important;
    font-size:.72rem;
    font-weight:700;
}
.planning-day-type{
    margin:0 0 6px!important;
    font-size:.72rem!important;
}
.planning-shift-row{
    padding:7px 0;
    border-top:1px dashed #ded8d2;
}
.planning-shift-title{
    margin-bottom:4px;
    color:#888;
    font-size:.63rem;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.04em;
}
.planning-time-selects{
    display:grid;
    grid-template-columns:minmax(0,1fr) 14px minmax(0,1fr);
    align-items:center;
    gap:3px;
}
.planning-time-selects span{
    text-align:center;
    color:#999;
}
.planning-shift-row select,
.planning-shift-row input{
    width:100%;
    margin:4px 0 0!important;
    padding:6px 5px!important;
    font-size:.7rem!important;
    border-radius:6px!important;
}
.planning-cfa-info{
    margin-top:7px;
    padding:7px;
    border-radius:7px;
    background:#eaf2ff;
    color:#315b92;
    font-size:.7rem;
    font-weight:800;
}
.planning-cfa-info.is-hidden{
    display:none;
}
.planning-rest-summary{
    margin-top:8px;
    padding:6px 7px;
    border-radius:7px;
    background:#f0f4f7;
    color:#555;
    font-size:.7rem;
}
.planning-profile-grid{
    display:grid;
    grid-template-columns:minmax(280px,.8fr) minmax(420px,1.4fr);
    gap:16px;
    margin-bottom:16px;
}
.planning-profile-dl{
    display:grid;
    grid-template-columns:110px 1fr;
    gap:8px 12px;
    margin:0;
}
.planning-profile-dl dt{
    font-weight:800;
}
.planning-profile-dl dd{
    margin:0;
}
.planning-card-title{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}
.planning-contract-list{
    display:grid;
    gap:8px;
}
.planning-contract-card{
    display:grid;
    gap:4px;
    padding:11px 12px;
    border:1px solid #e4dfda;
    border-radius:9px;
    color:#333;
    text-decoration:none;
    background:#faf9f7;
}
.planning-contract-card:hover{
    border-color:#d59aa3;
    color:var(--red);
}
.planning-contract-card span{
    font-size:.76rem;
}
.planning-history-list{
    display:grid;
    gap:7px;
}
.planning-history-list a{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:10px 12px;
    border:1px solid #e5e0db;
    border-radius:8px;
    color:#333;
    text-decoration:none;
}
.planning-history-list a:hover{
    border-color:#d59aa3;
    color:var(--red);
}
.individual-sheet-header{
    display:grid;
    grid-template-columns:1fr 1fr auto;
    gap:0;
    border-bottom:1px solid #ddd;
}
.individual-sheet-header>div{
    padding:12px 14px;
    border-right:1px solid #ddd;
}
.individual-sheet-header>div:last-child{
    border-right:0;
    display:flex;
    align-items:center;
}
.individual-sheet-label{
    margin-bottom:4px;
    color:#777;
    font-size:.72rem;
    font-weight:800;
    text-transform:uppercase;
}
.individual-day-info{
    margin-top:6px;
    padding:4px 5px;
    border-radius:5px;
    background:#fff0bd;
    font-size:.65rem;
    line-height:1.25;
}
@media(max-width:1000px){
    .planning-week-toolbar{
        align-items:flex-start;
        flex-direction:column;
    }
    .planning-week-actions{
        justify-content:flex-start;
    }
    .planning-profile-grid{
        grid-template-columns:1fr;
    }
}
@media(max-width:760px){
    .planning-week-navigation h1{
        font-size:1.08rem;
    }
    .planning-week-actions{
        width:100%;
    }
    .planning-week-actions .btn,
    .planning-week-actions form{
        flex:1 1 auto;
    }
    .planning-week-actions form button{
        width:100%;
    }
    .individual-sheet-header{
        min-width:850px;
    }
}


/* =========================================================
   PILOT CANTINA V2.7 — Saisie planning rapide
   ========================================================= */
.planning-shift-primary{
    border-top:0;
    padding-top:6px;
}
.planning-add-service{
    width:100%;
    margin:7px 0 1px;
    padding:7px 8px;
    border:1px dashed #c9c1ba;
    border-radius:7px;
    background:#faf9f7;
    color:#555;
    font-size:.68rem;
    font-weight:800;
    cursor:pointer;
}
.planning-add-service:hover{
    border-color:#CB1429;
    color:#CB1429;
    background:#fff;
}
.planning-add-service.is-hidden,
.planning-second-service.is-hidden{
    display:none!important;
}
.planning-second-service{
    margin-top:7px;
    padding:7px;
    border:1px solid #e0dbd5;
    border-radius:8px;
    background:#faf9f7;
}
.planning-second-service-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    margin-bottom:4px;
    font-size:.66rem;
}
.planning-remove-service{
    border:0;
    background:transparent;
    color:#a33;
    padding:0;
    font-size:.63rem;
    cursor:pointer;
}
.planning-day-live-total{
    margin-top:7px;
    padding-top:6px;
    border-top:1px solid #eee8e2;
    text-align:right;
    color:#666;
    font-size:.68rem;
}
.planning-day-live-total strong{
    color:#222;
    font-size:.78rem;
}
.planning-live-difference{
    display:inline-block;
    margin-top:6px;
    padding:4px 7px;
    border-radius:999px;
    font-size:.7rem;
    font-weight:900;
}
.planning-live-difference.is-equal{
    background:#e6f6e9;
    color:#246b34;
}
.planning-live-difference.is-under{
    background:#fff1ce;
    color:#755100;
}
.planning-live-difference.is-over{
    background:#fde9e9;
    color:#8d2424;
}


/* =========================================================
   PILOT CANTINA V2.7.1 — horaires toujours lisibles
   ========================================================= */
.planning-grid-table{
    min-width:1600px !important;
}

.planning-day-cell{
    width:155px !important;
    min-width:155px !important;
}

.planning-day-head{
    width:155px !important;
    min-width:155px !important;
}

.planning-time-selects{
    display:grid !important;
    grid-template-columns:minmax(66px,1fr) 10px minmax(66px,1fr) !important;
    gap:2px !important;
    align-items:center !important;
}

.planning-time-selects select{
    width:100% !important;
    min-width:66px !important;
    padding:6px 20px 6px 5px !important;
    font-size:.72rem !important;
    white-space:nowrap !important;
}

.planning-time-selects span{
    width:10px !important;
    min-width:10px !important;
    overflow:visible !important;
    text-align:center !important;
}

.planning-table-wrap{
    overflow-x:auto !important;
    -webkit-overflow-scrolling:touch;
}

@media(max-width:1200px){
    .planning-grid-table{
        min-width:1600px !important;
    }
}


/* =========================================================
   PILOT CANTINA V2.8 — saisie lisible + contrôles live
   ========================================================= */
.planning-grid-table{min-width:1500px!important}
.planning-day-cell,.planning-day-head{width:145px!important;min-width:145px!important;transition:background-color .15s ease}
.planning-cell-work{background:#eaf7ec!important}
.planning-cell-school{background:#eaf2ff!important}
.planning-cell-off{background:#fdeeee!important}
.planning-out-contract{background:#f3f3f3!important}
.planning-time-selects{display:flex!important;flex-direction:column!important;gap:6px!important;width:100%!important}
.planning-time-selects span{display:none!important}
.planning-time-selects select{display:block!important;width:100%!important;min-width:0!important;padding:8px 30px 8px 8px!important;font-size:.78rem!important;font-weight:800!important;white-space:nowrap!important}
.planning-duplicate-form{display:flex;align-items:center;gap:5px}
.planning-duplicate-form input[type="week"]{width:150px;min-width:150px;margin:0;padding:8px;border:1px solid #ddd7d1;border-radius:8px;background:#fff;font-size:.76rem}
.planning-server-rules{display:none}
@media(max-width:1200px){.planning-grid-table{min-width:1500px!important}}


/* =========================================================
   PILOT CANTINA V2.9 — couleurs / Matin-Soir / info jour
   ========================================================= */
.planning-day-info-input{
    display:block !important;
    width:100% !important;
    min-height:48px !important;
    margin:0 !important;
    padding:6px 7px !important;
    resize:none !important;
    line-height:1.25 !important;
    overflow:auto;
    background:#fff2bd !important;
    border:1px solid #ead47a !important;
    border-radius:6px !important;
    font-size:.68rem !important;
    font-weight:700;
}

.planning-cell-work{background:#eaf7ec !important;}
.planning-cell-school{background:#eaf2ff !important;}
.planning-cell-rest{background:#fdeeee !important;}
.planning-cell-leave{background:#f3eafd !important;}
.planning-cell-unplanned{background:#f1f1f1 !important;}

.planning-shift-block{
    margin-top:7px;
    padding:8px;
    border:1px solid #e0dbd5;
    border-radius:9px;
    background:rgba(255,255,255,.68);
}

.planning-shift-primary{
    border-top:1px solid #e0dbd5 !important;
}

.planning-second-service{
    margin-top:8px !important;
    padding:8px !important;
    border:1px solid #e0dbd5 !important;
    border-radius:9px !important;
    background:rgba(255,255,255,.68) !important;
}

.planning-second-service-head{margin-bottom:6px !important;}
.planning-save-bar{display:none !important;}


/* =========================================================
   PILOT CANTINA V2.9.1 — séparation visuelle des employés
   ========================================================= */
.planning-grid-table{
    border-collapse:separate !important;
    border-spacing:0 12px !important;
    background:#f7f5f2;
}

.planning-grid-table thead{
    position:relative;
    z-index:2;
}

.planning-grid-table thead th{
    border-bottom:1px solid #ddd7d1 !important;
}

.planning-grid-table tbody tr{
    position:relative;
}

.planning-grid-table tbody tr > td{
    border-top:1px solid #ddd7d1 !important;
    border-bottom:1px solid #ddd7d1 !important;
    box-shadow:0 2px 8px rgba(0,0,0,.025);
}

.planning-grid-table tbody tr > td:first-child{
    border-left:1px solid #ddd7d1 !important;
    border-radius:11px 0 0 11px;
}

.planning-grid-table tbody tr > td:last-child{
    border-right:1px solid #ddd7d1 !important;
    border-radius:0 11px 11px 0;
}

.planning-grid-table tbody tr:hover > td{
    box-shadow:0 4px 12px rgba(0,0,0,.045);
}

.planning-employee-cell{
    background:#ffffff !important;
}

.planning-check-cell{
    background:#fcfbfa !important;
}


/* =========================================================
   PILOT CANTINA V2.9.2 — saisie horaires au clavier
   ========================================================= */
.planning-time-keyboard{
    display:grid;
    gap:6px;
    margin-top:4px;
}

.planning-time-keyboard label{
    display:grid;
    grid-template-columns:38px minmax(0,1fr);
    align-items:center;
    gap:6px;
    margin:0;
    color:#666;
    font-size:.65rem;
    font-weight:800;
}

.planning-time-keyboard .planning-time-input{
    display:block !important;
    width:100% !important;
    min-width:0 !important;
    height:36px !important;
    margin:0 !important;
    padding:7px 8px !important;
    border:1px solid #d8d2cc !important;
    border-radius:7px !important;
    background:#fff !important;
    color:#222 !important;
    box-sizing:border-box !important;
    font-family:inherit !important;
    font-size:.82rem !important;
    font-weight:800 !important;
    line-height:1 !important;
    text-align:center !important;
}

.planning-time-keyboard .planning-time-input:focus{
    border-color:#CB1429 !important;
    outline:2px solid rgba(203,20,41,.10) !important;
    outline-offset:0;
}

.planning-time-keyboard .planning-time-input.planning-time-invalid{
    border-color:#CB1429 !important;
    background:#fff0f0 !important;
    outline:2px solid rgba(203,20,41,.12) !important;
}


/* =========================================================
   PILOT CANTINA V2.10 — sauvegarde automatique
   ========================================================= */
.planning-autosave-status{
    display:inline-flex;
    align-items:center;
    gap:7px;
    min-height:34px;
    padding:6px 10px;
    border:1px solid #ded8d2;
    border-radius:999px;
    background:#fff;
    color:#666;
    font-size:.73rem;
    font-weight:800;
    white-space:nowrap;
}
.planning-autosave-dot{
    width:8px;
    height:8px;
    border-radius:50%;
    background:#8a8a8a;
    flex:0 0 auto;
}
.planning-autosave-status.is-saved{
    color:#2d6d3b;
    border-color:#cce5d2;
    background:#f2fbf4;
}
.planning-autosave-status.is-saved .planning-autosave-dot{
    background:#3c8a4f;
}
.planning-autosave-status.is-saving,
.planning-autosave-status.is-dirty{
    color:#7a5800;
    border-color:#eedb9c;
    background:#fffaf0;
}
.planning-autosave-status.is-saving .planning-autosave-dot,
.planning-autosave-status.is-dirty .planning-autosave-dot{
    background:#d89b19;
}
.planning-autosave-status.is-error{
    color:#9b1b2b;
    border-color:#efc6cd;
    background:#fff2f4;
}
.planning-autosave-status.is-error .planning-autosave-dot{
    background:#CB1429;
}


/* =========================================================
   PILOT CANTINA V2.10.1 — Matin / Soir indépendants
   ========================================================= */
.planning-add-shift{
    width:100%;
    margin:7px 0 1px;
    padding:7px 8px;
    border:1px dashed #c9c1ba;
    border-radius:7px;
    background:rgba(255,255,255,.72);
    color:#555;
    font-size:.68rem;
    font-weight:800;
    cursor:pointer;
}

.planning-add-shift:hover{
    border-color:#CB1429;
    color:#CB1429;
    background:#fff;
}

.planning-add-shift.is-hidden,
.planning-shift-block.is-hidden{
    display:none !important;
}

.planning-remove-shift{
    border:0;
    background:transparent;
    color:#ad3030;
    padding:0;
    font-size:.63rem;
    font-weight:800;
    cursor:pointer;
}

.planning-remove-shift:hover{
    text-decoration:underline;
}

.planning-add-morning + .planning-shift-primary{
    margin-top:7px;
}


/* =========================================================
   PILOT CANTINA V2.12 — vues Planning équipe / individuels
   ========================================================= */
.team-week-selector,
.individual-selectors{
    display:flex;
    align-items:flex-end;
    gap:9px;
    flex-wrap:wrap;
}
.team-week-selector label,
.individual-selectors label{
    min-width:190px;
}
.team-week-selector select,
.individual-selectors select{
    margin-top:4px;
}

.team-planning-card{
    background:#fff;
    border:1px solid #ded8d2;
    border-radius:16px;
    overflow:hidden;
}
.team-planning-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:14px 16px;
    border-bottom:1px solid #ebe6e0;
}
.team-planning-scroll{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
}
.team-planning-table{
    width:100%;
    min-width:1320px;
    border-collapse:separate;
    border-spacing:0;
    table-layout:fixed;
}
.team-planning-table th,
.team-planning-table td{
    border-right:1px solid #ebe6e0;
    border-bottom:1px solid #ebe6e0;
    vertical-align:top;
}
.team-planning-table th{
    background:#fcfbfa;
    padding:12px 8px;
    text-align:center;
    font-size:.78rem;
}
.team-name-col{width:180px}
.team-total-col{width:110px}

.team-day-note{
    margin-top:6px;
    padding:4px 5px;
    border-radius:6px;
    background:#fff2bd;
    color:#6f5a00;
    font-size:.64rem;
    line-height:1.2;
}
.team-person-cell{
    padding:14px 12px!important;
    vertical-align:middle!important;
    background:#fff;
}
.team-person-cell a{
    color:#222;
    text-decoration:none;
}
.team-person-cell a:hover{color:#CB1429}
.team-person-cell span{
    display:block;
    margin-top:4px;
    color:#777;
    font-size:.72rem;
}
.team-week-total{
    padding:14px 8px!important;
    text-align:center;
    vertical-align:middle!important;
    background:#fff;
}
.team-week-total strong{
    display:block;
    font-size:1rem;
}
.team-week-total span{
    color:#777;
    font-size:.7rem;
}
.team-planning-cell{
    padding:5px!important;
    background:#fff;
}
.team-day-box{
    min-height:118px;
    padding:9px;
    border-radius:12px;
    display:flex;
    flex-direction:column;
    gap:7px;
}
.team-cell-work{background:#dff3e3}
.team-cell-school{background:#dfeafd}
.team-cell-rest{background:#f9e3e3}
.team-cell-leave{background:#eee1f8}
.team-cell-unplanned{background:#ededed}
.team-day-badge{
    display:inline-flex;
    align-self:flex-start;
    padding:4px 8px;
    border-radius:999px;
    background:rgba(255,255,255,.82);
    color:#333;
    font-size:.65rem;
    font-weight:900;
}
.team-day-shifts{
    display:grid;
    gap:2px;
    font-size:.76rem;
    font-weight:800;
}
.team-day-comment{
    color:#555;
    font-size:.66rem;
    line-height:1.2;
}
.team-day-hours{
    margin-top:auto;
    font-size:.72rem;
    font-weight:900;
}

.team-staffing-row th,
.team-staffing-row td{
    padding:10px 8px!important;
    text-align:center;
    vertical-align:middle!important;
}
.team-staffing-row th:first-child{
    font-weight:900;
}
.team-staffing-midi th,
.team-staffing-midi td{
    background:#fff5d9!important;
}
.team-staffing-soir th,
.team-staffing-soir td{
    background:#e8eef8!important;
}
.team-staffing-row td strong{
    font-size:.78rem;
    white-space:nowrap;
}
.team-staffing-help{
    padding:10px 14px;
    background:#faf9f7;
    color:#666;
    font-size:.72rem;
    line-height:1.4;
}

.individual-planning-launch{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}
.individual-planning-launch h2{
    margin-bottom:4px;
}

@media(max-width:900px){
    .team-week-selector,
    .individual-selectors{
        width:100%;
    }
    .individual-planning-launch{
        align-items:flex-start;
        flex-direction:column;
    }
}
@media print{
    .pilot-global-header,
    .pilot-subbar,
    .no-print{
        display:none!important;
    }
    .team-planning-card{
        border:0;
    }
    .team-planning-table{
        min-width:0;
        font-size:8px;
    }
}


/* =========================================================
   PILOT CANTINA V2.12.5 — UX barre d'actions Planning
   ========================================================= */
.planning-week-toolbar-clean{
    align-items:center !important;
    padding:14px 16px !important;
}

.planning-week-toolbar-clean .planning-week-navigation{
    flex:1 1 auto;
    min-width:0;
}

.planning-week-title-block{
    min-width:190px;
}

.planning-week-title-block h1{
    margin-bottom:0 !important;
}

.planning-week-meta{
    display:flex;
    align-items:center;
    gap:6px;
    flex-wrap:wrap;
    margin-top:7px;
}

.planning-week-meta .planning-status,
.planning-week-meta .planning-autosave-status{
    min-height:26px !important;
    padding:4px 8px !important;
    font-size:.68rem !important;
}

.planning-week-meta .planning-autosave-dot{
    width:6px !important;
    height:6px !important;
}

.planning-week-actions-clean{
    flex:0 0 auto;
    gap:6px !important;
    flex-wrap:nowrap !important;
}

.planning-publish-form.is-hidden,
.planning-draft-form.is-hidden{
    display:none !important;
}

.planning-primary-action{
    white-space:nowrap;
}

.planning-pdf-action{
    min-width:auto !important;
    padding-left:12px !important;
    padding-right:12px !important;
    white-space:nowrap;
}

.planning-more-menu{
    position:relative;
}

.planning-more-menu > summary{
    list-style:none;
}

.planning-more-menu > summary::-webkit-details-marker{
    display:none;
}

.planning-more-button{
    width:42px;
    min-width:42px !important;
    height:40px;
    padding:0 !important;
    display:flex !important;
    align-items:center;
    justify-content:center;
    font-size:1.05rem !important;
    letter-spacing:.08em;
    cursor:pointer;
}

.planning-more-panel{
    position:absolute;
    z-index:80;
    top:calc(100% + 8px);
    right:0;
    width:270px;
    padding:6px;
    border:1px solid #ddd7d1;
    border-radius:12px;
    background:#fff;
    box-shadow:0 12px 34px rgba(0,0,0,.13);
}

.planning-menu-form{
    margin:0;
}

.planning-menu-action{
    width:100%;
    display:flex;
    align-items:flex-start;
    gap:10px;
    padding:10px;
    border:0;
    border-radius:8px;
    background:transparent;
    color:#222;
    text-align:left;
    cursor:pointer;
    font-family:inherit;
}

.planning-menu-action:hover{
    background:#f7f5f2;
}

.planning-menu-action > span:first-child{
    width:20px;
    flex:0 0 20px;
    text-align:center;
    font-size:1rem;
}

.planning-menu-action strong,
.planning-menu-action small{
    display:block;
}

.planning-menu-action strong{
    font-size:.78rem;
}

.planning-menu-action small{
    margin-top:2px;
    color:#777;
    font-size:.67rem;
    font-weight:500;
    line-height:1.3;
}

.planning-menu-action.is-danger{
    color:#a52525;
    border-top:1px solid #eee8e2;
    border-radius:0 0 8px 8px;
}

.planning-menu-action.is-danger small{
    color:#9a6666;
}

.planning-dialog{
    width:min(430px, calc(100vw - 28px));
    padding:0;
    border:0;
    border-radius:16px;
    background:#fff;
    box-shadow:0 24px 80px rgba(0,0,0,.24);
}

.planning-dialog::backdrop{
    background:rgba(30,25,22,.38);
    backdrop-filter:blur(2px);
}

.planning-dialog-form{
    padding:20px;
}

.planning-dialog-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    margin-bottom:18px;
}

.planning-dialog-head h2{
    margin:0 0 4px;
    font-size:1.15rem;
}

.planning-dialog-head p{
    margin:0;
    color:#777;
    font-size:.76rem;
}

.planning-dialog-close{
    width:32px;
    height:32px;
    flex:0 0 32px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0;
    border:0;
    border-radius:8px;
    background:#f4f2ef;
    color:#555;
    font-size:1.35rem;
    cursor:pointer;
}

.planning-dialog-week{
    display:block;
    font-size:.78rem;
    font-weight:800;
}

.planning-dialog-week input{
    width:100%;
    margin:7px 0 0 !important;
    padding:10px !important;
    border:1px solid #d9d3cd !important;
    border-radius:9px !important;
    background:#fff !important;
}

.planning-dialog-help{
    margin:12px 0 0;
    padding:10px 11px;
    border-radius:9px;
    background:#f7f5f2;
    color:#666;
    font-size:.72rem;
    line-height:1.4;
}

.planning-dialog-actions{
    display:flex;
    justify-content:flex-end;
    gap:8px;
    margin-top:18px;
}

@media(max-width:760px){
    .planning-week-toolbar-clean{
        align-items:stretch !important;
        flex-direction:column;
    }

    .planning-week-actions-clean{
        width:100%;
        justify-content:flex-end !important;
    }

    .planning-primary-action{
        padding-left:11px !important;
        padding-right:11px !important;
    }
}

/* =========================================================
   PILOT CANTINA V2.13 — stabilisation UX Planning
   ========================================================= */
.planning-primary-action:disabled{
    opacity:.48;
    cursor:not-allowed;
    filter:grayscale(.15);
}

.planning-remove-shift{
    width:24px;
    height:24px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:6px;
    font-size:1rem!important;
    line-height:1;
    text-decoration:none!important;
}
.planning-remove-shift:hover{
    background:#fde7e7;
}

.individual-planning-direct .individual-sheet-header{
    display:grid;
    grid-template-columns:1fr 1fr auto;
    gap:16px;
    align-items:center;
}
.individual-planning-compact{
    table-layout:fixed;
}
.individual-planning-compact th:nth-child(1){width:18%}
.individual-planning-compact th:nth-child(2),
.individual-planning-compact th:nth-child(3){width:17%}
.individual-planning-compact th:nth-child(4){width:12%}
.individual-planning-compact th:nth-child(5){width:36%}
.individual-planning-compact td{
    vertical-align:middle;
}

.team-staffing-row td strong{
    font-size:.7rem!important;
}

@media(max-width:760px){
    .individual-planning-direct .individual-sheet-header{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   PILOT CANTINA V2.14 — module Congés
   ========================================================= */
.leave-shell{padding-bottom:55px}
.leave-title-row{align-items:center}
.leave-month-toolbar{display:flex;align-items:center;justify-content:center;gap:12px;margin:10px 0 14px;padding:10px 12px;border:1px solid #e2ddd7;border-radius:14px;background:#fff}
.leave-month-form{display:flex;align-items:center;gap:10px;min-width:260px;justify-content:center}
.leave-month-form strong{font-size:1rem}
.leave-month-form input{width:auto!important;margin:0!important;padding:7px 8px!important}
.leave-legend{display:flex;gap:14px;flex-wrap:wrap;margin:0 0 10px;color:#666;font-size:.72rem;font-weight:700}
.leave-legend span{display:inline-flex;align-items:center;gap:6px}
.leave-legend-dot{width:11px;height:11px;border-radius:3px;display:inline-block}
.leave-calendar-card{border:1px solid #ded8d2;border-radius:15px;background:#fff;overflow:hidden}
.leave-calendar-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.leave-calendar-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;table-layout:fixed}
.leave-calendar-table th,.leave-calendar-table td{height:42px;min-width:35px;padding:0;border-right:1px solid #ece7e2;border-bottom:1px solid #ece7e2;text-align:center;position:relative}
.leave-calendar-table thead th{height:50px;background:#faf9f7;font-size:.64rem;color:#666}
.leave-calendar-table thead th strong{display:block;color:#222;font-size:.78rem;margin-top:2px}
.leave-calendar-table .leave-employee-column{position:sticky;left:0;z-index:4;width:190px;min-width:190px;max-width:190px;padding:8px 10px;text-align:left;background:#fff}
.leave-calendar-table thead .leave-employee-column{z-index:6;background:#faf9f7}
.leave-calendar-table .leave-employee-column a{color:#222;text-decoration:none;font-weight:900;font-size:.78rem}
.leave-calendar-table .leave-employee-column a:hover{color:#CB1429}
.leave-calendar-table .leave-employee-column small{display:block;color:#888;font-weight:500;font-size:.64rem;margin-top:2px}
.leave-calendar-table .is-weekend{background-color:#faf8f5}
.leave-calendar-table tr.is-inactive{opacity:.5}
.leave-calendar-table td.leave-paid,.leave-legend-dot.leave-paid{background:#eee1f8}
.leave-calendar-table td.leave-closure,.leave-legend-dot.leave-closure{background:#e6d9f2}
.leave-calendar-table td.leave-absence,.leave-legend-dot.leave-absence{background:#f9e3e3}
.leave-calendar-table td.leave-other,.leave-legend-dot.leave-other{background:#fff1d8}
.leave-calendar-table td.leave-school,.leave-legend-dot.leave-school{background:#dfeafd}
.leave-day-hit{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#333;text-decoration:none;font-size:.78rem;font-weight:900}
.leave-day-empty{position:absolute;inset:0;display:block;text-decoration:none}
.leave-day-empty:hover{background:rgba(203,20,41,.05);box-shadow:inset 0 0 0 1px rgba(203,20,41,.24)}
.leave-calendar-help{margin:10px 3px 0;color:#777;font-size:.7rem;line-height:1.4}
.leave-entry-card{max-width:980px}
.leave-entry-form{display:grid;grid-template-columns:1.3fr 1.1fr .8fr .8fr;gap:12px;align-items:end}
.leave-entry-form label{display:block;font-weight:800;font-size:.76rem}
.leave-entry-form input,.leave-entry-form select{width:100%;margin-top:5px}
.leave-note-field{grid-column:1 / -1}
.leave-entry-actions{grid-column:1 / -1;display:flex;gap:8px;justify-content:flex-end}
.leave-entry-help{margin-top:14px;padding:10px 12px;border-radius:9px;background:#f7f5f2;color:#666;font-size:.72rem;line-height:1.45}
.leave-delete-form{margin-top:12px;padding-top:12px;border-top:1px solid #eee8e2;text-align:right}
.leave-recent-card{margin-top:16px}
.leave-recent-list{display:grid;gap:6px}
.leave-recent-list a{display:grid;grid-template-columns:1.2fr 1fr 1.4fr auto;gap:10px;align-items:center;padding:9px 10px;border:1px solid #ebe6e0;border-radius:9px;color:#333;text-decoration:none;font-size:.74rem}
.leave-recent-list a:hover{border-color:#CB1429;background:#fff8f8}
.leave-recent-person{font-weight:900}
.leave-counter-save{padding:6px 10px;border-radius:999px;background:#e6f4e8;color:#286638;font-size:.72rem;font-weight:900}
.leave-counter-save.is-saving{background:#fff1cf;color:#735600}
.leave-counter-save.is-error{background:#fde4e4;color:#982a2a}
.leave-counter-list{display:grid;gap:14px}
.leave-counter-employee h2{margin:0}
.leave-counter-employee-head{margin-bottom:12px}
.leave-counter-contract{display:grid;grid-template-columns:1.35fr .75fr .75fr .65fr .65fr;gap:10px;align-items:end;padding:12px 0;border-top:1px solid #eee8e2}
.leave-counter-contract-title strong,.leave-counter-contract-title span{display:block}
.leave-counter-contract-title span{margin-top:3px;color:#777;font-size:.68rem}
.leave-counter-contract label{font-size:.7rem;font-weight:800}
.leave-counter-contract input[type=number]{width:100%;margin-top:4px}
.leave-counter-stat{padding:8px 10px;border-radius:9px;background:#f7f5f2}
.leave-counter-stat span,.leave-counter-stat strong{display:block}
.leave-counter-stat span{color:#777;font-size:.62rem;text-transform:uppercase;font-weight:900}
.leave-counter-stat strong{margin-top:2px;font-size:.9rem}
.leave-counter-remaining{background:#e8f5ea;color:#286638}
.leave-counter-remaining.is-negative{background:#fde4e4;color:#982a2a}
.leave-school-config{grid-column:1 / -1;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px 10px;border-radius:9px;background:#f5f8fd}
.leave-school-config>span{font-size:.7rem;font-weight:900}
.leave-school-config>div{display:flex;gap:5px;flex-wrap:wrap}
.leave-school-config small{width:100%;color:#777;font-size:.64rem}
.leave-weekday-check{display:inline-flex!important;align-items:center;gap:3px;padding:4px 6px;border:1px solid #d9e2ef;border-radius:6px;background:#fff;font-size:.64rem!important}
.leave-weekday-check input{width:auto!important;margin:0!important}
@media(max-width:900px){
 .leave-entry-form{grid-template-columns:1fr 1fr}
 .leave-counter-contract{grid-template-columns:1fr 1fr}
 .leave-counter-contract-title,.leave-school-config{grid-column:1 / -1}
}
@media(max-width:620px){
 .leave-month-form{min-width:0;flex:1}
 .leave-month-form strong{display:none}
 .leave-entry-form{grid-template-columns:1fr}
 .leave-note-field,.leave-entry-actions{grid-column:auto}
 .leave-counter-contract{grid-template-columns:1fr}
 .leave-counter-contract-title,.leave-school-config{grid-column:auto}
 .leave-recent-list a{grid-template-columns:1fr auto}
 .leave-recent-list a span:nth-child(2),.leave-recent-list a span:nth-child(3){grid-column:1 / -1}
}

/* =========================================================
   PILOT CANTINA V2.15 — Congés V2
   ========================================================= */
.leave-shell{padding-bottom:56px}
.leave-back-link{display:inline-block;margin-bottom:4px;color:#777;text-decoration:none;font-size:.74rem;font-weight:800}
.leave-back-link:hover{color:#CB1429}
.leave-legal-note{margin:10px 3px 0;color:#777;font-size:.69rem;line-height:1.4}
.leave-summary-card{padding:0!important;overflow:hidden}
.leave-summary-table-wrap{overflow-x:auto}
.leave-summary-table{width:100%;border-collapse:collapse;min-width:820px}
.leave-summary-table th{padding:11px 14px;background:#faf9f7;border-bottom:1px solid #e8e2dc;color:#777;text-align:left;font-size:.66rem;text-transform:uppercase;letter-spacing:.045em}
.leave-summary-table td{padding:13px 14px;border-bottom:1px solid #eee9e4;vertical-align:middle;font-size:.78rem}
.leave-summary-table tbody tr:last-child td{border-bottom:0}
.leave-summary-row{cursor:pointer;transition:background .12s ease}
.leave-summary-row:hover{background:#fff8f8}
.leave-summary-table td:first-child a{color:#222;text-decoration:none}
.leave-summary-table td:first-child a:hover{color:#CB1429}
.leave-summary-table td small{display:block;margin-top:3px;color:#888;font-size:.65rem}
.leave-balance-number{font-size:.95rem}
.leave-balance-number.is-negative,.leave-negative-text{color:#b02a37!important}
.leave-summary-text{color:#666;line-height:1.4}

.leave-employee-directory{padding:5px!important;display:grid;gap:3px}
.leave-employee-line{display:grid;grid-template-columns:minmax(190px,1.5fr) .65fr .65fr 1.6fr 18px;align-items:center;gap:14px;padding:12px 13px;border-radius:10px;color:#333;text-decoration:none}
.leave-employee-line:hover{background:#fff6f7}
.leave-employee-line.is-inactive{opacity:.55}
.leave-employee-line span small{display:block;margin-bottom:2px;color:#888;font-size:.64rem}
.leave-employee-name strong{display:block;font-size:.84rem}.leave-employee-name small{margin-top:2px}
.leave-employee-line-status{color:#666;font-size:.72rem}
.leave-employee-chevron{color:#aaa;font-size:1.25rem;text-align:right}

.leave-person-title{align-items:flex-end}
.leave-contract-switcher label{display:block;color:#666;font-size:.68rem;font-weight:800}
.leave-contract-switcher select{margin-top:4px;min-width:300px;max-width:420px}
.leave-person-counter-card{padding:16px!important}
.leave-person-counter-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:13px}
.leave-person-counter-head h2{margin:0;font-size:1rem}.leave-person-counter-head span{display:block;margin-top:3px;color:#777;font-size:.68rem}
.leave-counter-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.leave-counter-kpis>div{min-height:84px;padding:11px;border-radius:10px;background:#f7f5f2;border:1px solid transparent}
.leave-counter-kpis span,.leave-counter-kpis strong,.leave-counter-kpis small{display:block}
.leave-counter-kpis span{color:#777;font-size:.61rem;text-transform:uppercase;font-weight:900;letter-spacing:.035em}
.leave-counter-kpis strong{margin-top:5px;font-size:1.05rem}.leave-counter-kpis small{margin-top:3px;color:#888;font-size:.62rem}
.leave-counter-kpis .is-positive{background:#eaf5eb;color:#286638}.leave-counter-kpis .is-negative{background:#fde6e6;color:#a32828}.leave-counter-kpis .is-forecast{background:#edf2f8}
.leave-balance-alert{margin-top:10px;padding:10px 12px;border-radius:9px;font-size:.72rem;font-weight:700;line-height:1.4}
.leave-balance-alert.is-warning{background:#fff2d4;color:#795800}.leave-balance-alert.is-danger{background:#fde5e5;color:#9e2929}
.leave-adjust-form{display:flex;align-items:end;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid #eee8e2}
.leave-adjust-form label{width:150px;font-size:.68rem;font-weight:800}.leave-adjust-form input{width:100%;margin-top:4px}
.leave-adjust-form p{margin:0 0 7px;flex:1;color:#777;font-size:.65rem;line-height:1.35}

.leave-new-request,.leave-history-card{margin-top:14px}
.leave-section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.leave-section-title h2{margin:0;font-size:1rem}.leave-section-title p{margin:3px 0 0;color:#777;font-size:.68rem}
.leave-quick-request-form{display:grid;grid-template-columns:1.05fr .8fr .8fr .8fr 1.5fr auto;gap:8px;align-items:end}
.leave-quick-request-form label,.leave-edit-form label,.leave-collective-form label{display:block;font-size:.68rem;font-weight:800}
.leave-quick-request-form input,.leave-quick-request-form select,.leave-edit-form input,.leave-edit-form select,.leave-collective-form input{width:100%;margin-top:4px}
.leave-create-print{white-space:nowrap}
.leave-form-hint{margin:10px 0 0;color:#777;font-size:.65rem;line-height:1.4}

.leave-history-list{display:grid;gap:5px}
.leave-history-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:8px;border:1px solid #ece6e1;border-radius:9px;background:#fff}
.leave-history-main{display:grid;grid-template-columns:minmax(210px,1.4fr) auto 70px;gap:10px;align-items:center;color:#333;text-decoration:none;min-width:0}
.leave-history-main:hover .leave-history-period strong{color:#CB1429}
.leave-history-period strong,.leave-history-period small{display:block}.leave-history-period strong{font-size:.76rem}.leave-history-period small{margin-top:2px;color:#777;font-size:.64rem}
.leave-status-pill{display:inline-flex;align-items:center;justify-content:center;padding:5px 8px;border-radius:999px;font-size:.62rem;font-weight:900;white-space:nowrap}
.leave-status-pill.is-approved{background:#e8f4e9;color:#286638}.leave-status-pill.is-draft{background:#f1f0ee;color:#666}.leave-status-pill.is-refused,.leave-status-pill.is-cancelled{background:#fde5e5;color:#9a2929}
.leave-history-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px}
.leave-icon-action,.leave-doc-link,.leave-upload-label{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:6px 8px;border:1px solid #ddd6d0;border-radius:8px;background:#fff;color:#444;text-decoration:none;font-size:.67rem;font-weight:900;cursor:pointer;white-space:nowrap}
.leave-icon-action:hover,.leave-doc-link:hover,.leave-upload-label:hover{border-color:#CB1429;color:#CB1429;background:#fff6f7}
.leave-upload-label.is-needed{border-color:#d99b28;background:#fff5df;color:#805b09;padding-left:10px;padding-right:10px}
.leave-upload-label input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.leave-upload-inline{margin:0}

.leave-edit-card{max-width:920px}
.leave-edit-form,.leave-collective-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-items:end}
.leave-wide-field{grid-column:1 / -1}.leave-edit-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:7px;margin-top:4px}
.leave-cancel-form{margin-top:12px;padding-top:11px;border-top:1px solid #eee8e2;text-align:right}
.leave-text-danger{border:0;background:transparent;color:#a32a2a;font-weight:800;font-size:.7rem;cursor:pointer}
.leave-employee-checks{margin:0;padding:11px;border:1px solid #ddd6d0;border-radius:9px}.leave-employee-checks legend{padding:0 4px;font-size:.68rem;font-weight:900}.leave-employee-checks label{display:inline-flex!important;align-items:center;gap:5px;margin:3px 12px 3px 0;font-weight:700!important}.leave-employee-checks input{width:auto!important;margin:0!important}
.leave-document-archive{display:grid;gap:5px;margin-top:14px;padding-top:12px;border-top:1px solid #eee8e2}
.leave-document-archive>strong{font-size:.72rem}.leave-document-archive a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 9px;border-radius:7px;background:#f7f5f2;color:#444;text-decoration:none;font-size:.68rem}.leave-document-archive a:hover{color:#CB1429}.leave-document-archive small{color:#888}

@media(max-width:980px){
 .leave-counter-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
 .leave-quick-request-form{grid-template-columns:repeat(3,minmax(0,1fr))}
 .leave-quick-note{grid-column:1 / span 2}
 .leave-create-print{grid-column:3}
}
@media(max-width:760px){
 .leave-summary-card{margin-left:-2px;margin-right:-2px}
 .leave-employee-line{grid-template-columns:1fr auto;gap:6px 12px}.leave-employee-line>span:nth-child(2),.leave-employee-line>span:nth-child(3){grid-row:2}.leave-employee-line-status{grid-column:1 / -1}.leave-employee-chevron{position:absolute;right:28px}
 .leave-person-title{align-items:stretch;flex-direction:column}.leave-contract-switcher select{min-width:0;max-width:none;width:100%}
 .leave-counter-kpis{grid-template-columns:1fr 1fr}.leave-counter-kpis>div:last-child{grid-column:1 / -1}
 .leave-adjust-form{align-items:stretch;flex-direction:column}.leave-adjust-form label{width:100%}
 .leave-quick-request-form{grid-template-columns:1fr 1fr}.leave-quick-note{grid-column:1 / -1}.leave-create-print{grid-column:1 / -1}
 .leave-history-row{grid-template-columns:1fr}.leave-history-main{grid-template-columns:1fr auto}.leave-history-main>strong{grid-column:2;grid-row:1}.leave-status-pill{grid-column:1;justify-self:start}.leave-history-actions{justify-content:flex-start;flex-wrap:wrap}
 .leave-edit-form,.leave-collective-form{grid-template-columns:1fr 1fr}.leave-wide-field,.leave-edit-actions{grid-column:1 / -1}
}
@media(max-width:480px){
 .leave-counter-kpis{grid-template-columns:1fr}
 .leave-counter-kpis>div:last-child{grid-column:auto}
 .leave-quick-request-form,.leave-edit-form,.leave-collective-form{grid-template-columns:1fr}.leave-quick-note,.leave-create-print,.leave-wide-field,.leave-edit-actions{grid-column:auto}
}

.leave-status-pill.is-signed{background:#e3f1ea;color:#1f6b4b}.leave-inline-request-warning{margin-top:8px;padding:8px 10px;border-radius:8px;background:#fff3d7;color:#755600;font-size:.67rem;font-weight:700}

.leave-request-estimate{margin-top:8px;padding:8px 10px;border-radius:8px;background:#edf4ee;color:#315f3c;font-size:.68rem;font-weight:800}.leave-request-estimate:empty{display:none}

.leave-doc-link.is-archive{background:#f5f3f1;color:#777}


/* =========================================================
   PILOT CANTINA V2.15.1 — Fiche salarié Congés
   Lisibilité renforcée + acquis théorique fin de contrat
   ========================================================= */
.leave-employee-page{
    font-size:.94rem;
}
.leave-employee-page .leave-person-counter-head h2{
    font-size:1.08rem;
}
.leave-employee-page .leave-person-counter-head span,
.leave-employee-page .leave-contract-switcher label{
    font-size:.78rem;
}
.leave-employee-page .leave-counter-kpis{
    grid-template-columns:repeat(6,minmax(0,1fr));
}
.leave-employee-page .leave-counter-kpis>div{
    min-height:92px;
    padding:12px;
}
.leave-employee-page .leave-counter-kpis span{
    font-size:.70rem;
    line-height:1.25;
}
.leave-employee-page .leave-counter-kpis strong{
    margin-top:6px;
    font-size:1.16rem;
}
.leave-employee-page .leave-counter-kpis small{
    margin-top:4px;
    font-size:.72rem;
}
.leave-employee-page .leave-balance-alert{
    font-size:.78rem;
}
.leave-employee-page .leave-adjust-form label,
.leave-employee-page .leave-quick-request-form label,
.leave-employee-page .leave-edit-form label,
.leave-employee-page .leave-collective-form label{
    font-size:.78rem;
}
.leave-employee-page .leave-adjust-form p,
.leave-employee-page .leave-section-title p{
    font-size:.76rem;
}
.leave-employee-page .leave-section-title h2{
    font-size:1.06rem;
}
.leave-employee-page .leave-form-hint,
.leave-employee-page .leave-inline-request-warning,
.leave-employee-page .leave-request-estimate{
    font-size:.74rem;
}
.leave-employee-page .leave-history-period strong{
    font-size:.84rem;
}
.leave-employee-page .leave-history-period small{
    font-size:.72rem;
}
.leave-employee-page .leave-status-pill{
    font-size:.68rem;
}
.leave-employee-page .leave-icon-action,
.leave-employee-page .leave-doc-link,
.leave-employee-page .leave-upload-label{
    font-size:.72rem;
}
.leave-employee-page .leave-document-archive>strong{
    font-size:.78rem;
}
.leave-employee-page .leave-document-archive a{
    font-size:.74rem;
}

@media(max-width:1180px){
    .leave-employee-page .leave-counter-kpis{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}
@media(max-width:760px){
    .leave-employee-page .leave-counter-kpis{
        grid-template-columns:1fr 1fr;
    }
}
@media(max-width:520px){
    .leave-employee-page .leave-counter-kpis{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   PILOT CANTINA V2.15.2 — Suivi Congés : suppression ponctuelle
   ========================================================= */
.leave-delete-inline{margin:0}
.leave-delete-action{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:32px;
    min-width:32px;
    height:32px;
    padding:0;
    border:1px solid transparent;
    border-radius:8px;
    background:transparent;
    color:#999;
    font:inherit;
    font-size:.78rem;
    cursor:pointer;
    opacity:.55;
}
.leave-delete-action:hover{
    border-color:#e4b9b9;
    background:#fff5f5;
    color:#b32828;
    opacity:1;
}


/* =========================================================
   PILOT CANTINA V2.15.3 — Synthèse congés + switch salarié
   ========================================================= */
.leave-summary-table{
    min-width:1250px;
}
.leave-summary-table th{
    vertical-align:bottom;
    line-height:1.2;
}
.leave-summary-table td:not(:first-child):not(.leave-summary-text){
    white-space:nowrap;
}
.leave-summary-table .leave-balance-number{
    font-size:.92rem;
}
.leave-person-switchers{
    display:flex;
    align-items:flex-end;
    justify-content:flex-end;
    gap:10px;
    flex-wrap:wrap;
}
.leave-employee-switcher{
    display:block;
    color:#666;
    font-size:.78rem;
    font-weight:800;
}
.leave-employee-switcher select{
    display:block;
    margin-top:4px;
    min-width:220px;
    max-width:320px;
}
@media(max-width:760px){
    .leave-person-switchers{
        width:100%;
        align-items:stretch;
        flex-direction:column;
    }
    .leave-employee-switcher select,
    .leave-person-switchers .leave-contract-switcher select{
        width:100%;
        min-width:0;
        max-width:none;
    }
}


/* =========================================================
   PILOT CANTINA — Congés V2.16 : audit UX & robustesse
   ========================================================= */
.leave-summary-table th:first-child,
.leave-summary-table td:first-child{position:sticky;left:0;z-index:2;background:#fff}
.leave-summary-table th:first-child{z-index:3;background:#faf9f7}
.leave-summary-row:hover td:first-child{background:#fff8f8}
.leave-balance-number.is-positive{color:#286638}

.leave-counter-adjust-details{margin-top:11px;border-top:1px solid #eee8e2;padding-top:9px}
.leave-counter-adjust-details>summary,
.leave-day-count-details>summary{display:inline-flex;align-items:center;gap:5px;cursor:pointer;color:#666;font-size:.73rem;font-weight:900;list-style:none}
.leave-counter-adjust-details>summary::-webkit-details-marker,
.leave-day-count-details>summary::-webkit-details-marker{display:none}
.leave-counter-adjust-details>summary:before,
.leave-day-count-details>summary:before{content:'›';font-size:1rem;transition:transform .12s ease}
.leave-counter-adjust-details[open]>summary:before,
.leave-day-count-details[open]>summary:before{transform:rotate(90deg)}
.leave-counter-adjust-details .leave-adjust-form{margin-top:9px;padding-top:0;border-top:0}

.leave-day-count-details{margin-top:8px;padding:8px 10px;border:1px solid #e7e1db;border-radius:9px;background:#faf9f7}
.leave-day-count-details[hidden]{display:none!important}
.leave-day-count-details>p{margin:8px 0 0;color:#777;font-size:.69rem;line-height:1.35}
.leave-day-count-grid{display:flex;align-items:flex-end;gap:6px;flex-wrap:wrap;margin-top:8px}
.leave-day-count-grid label{display:flex!important;align-items:center;gap:5px;padding:5px 6px;border:1px solid #e0dad4;border-radius:7px;background:#fff;font-size:.66rem!important;font-weight:800!important}
.leave-day-count-grid label span{white-space:nowrap;color:#666}
.leave-day-count-grid select{width:auto!important;min-width:64px;margin:0!important;padding:5px 6px!important;font-size:.68rem!important}

.leave-history-more{position:relative}
.leave-history-more>summary{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid #ddd6d0;border-radius:8px;background:#fff;color:#777;cursor:pointer;list-style:none;font-weight:900;letter-spacing:.04em}
.leave-history-more>summary::-webkit-details-marker{display:none}
.leave-history-more>summary:hover{border-color:#CB1429;color:#CB1429;background:#fff6f7}
.leave-history-more-panel{position:absolute;right:0;top:calc(100% + 5px);z-index:30;min-width:175px;padding:5px;border:1px solid #ddd7d1;border-radius:9px;background:#fff;box-shadow:0 10px 28px rgba(0,0,0,.12)}
.leave-history-danger-action{width:100%;padding:8px 9px;border:0;border-radius:6px;background:transparent;color:#a32a2a;text-align:left;font-size:.7rem;font-weight:900;cursor:pointer}
.leave-history-danger-action:hover{background:#fff1f2}

.leave-calendar-table th.is-today{box-shadow:inset 0 -3px 0 #CB1429;color:#CB1429}
.leave-calendar-table td.is-today{box-shadow:inset 2px 0 0 rgba(203,20,41,.55),inset -2px 0 0 rgba(203,20,41,.55)}

@media(max-width:760px){
 .leave-summary-table th:first-child,.leave-summary-table td:first-child{position:sticky;left:0}
 .leave-day-count-grid{display:grid;grid-template-columns:1fr 1fr}
 .leave-day-count-grid label{justify-content:space-between}
 .leave-history-more-panel{left:0;right:auto}
}
@media(max-width:430px){.leave-day-count-grid{grid-template-columns:1fr}}

.leave-quick-request-form>.leave-day-count-details{grid-column:1 / -1}


/* =========================================================
   PILOT CANTINA V2.17 — Planning : J-10 + WhatsApp
   ========================================================= */
.planning-validation-deadline{
    display:inline-flex;
    align-items:center;
    min-height:26px;
    padding:4px 8px;
    border:1px solid #ded8d2;
    border-radius:999px;
    background:#faf8f6;
    color:#756d67;
    font-size:.68rem;
    font-weight:800;
    white-space:nowrap;
}
.planning-validation-deadline.is-today{
    border-color:#e4b44e;
    background:#fff7df;
    color:#795700;
}
.planning-validation-deadline.is-late{
    border-color:#e3a0aa;
    background:#fff0f2;
    color:#9a2434;
}
.planning-validation-deadline.is-hidden{display:none!important}

.planning-whatsapp-link{
    display:inline-flex;
    align-items:center;
    margin-top:5px;
    color:#237a4a;
    text-decoration:none;
    font-size:.7rem;
    font-weight:900;
}
.planning-whatsapp-link:hover{text-decoration:underline}

.planning-whatsapp-button{
    color:#237a4a!important;
    border-color:#b8d9c5!important;
    background:#f6fbf8!important;
}
.planning-whatsapp-button:hover{
    color:#176238!important;
    border-color:#7fbd96!important;
    background:#edf8f1!important;
}
.planning-rest-context-json{display:none!important}

@media(max-width:760px){
    .planning-validation-deadline{
        white-space:normal;
    }
}

/* =========================================================
   PILOT CANTINA V2.18 — Module Événements
   ========================================================= */
.event-shell{width:min(1180px,94%);margin:28px auto 60px}
.event-shell-narrow{width:min(820px,92%)}
.event-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}
.event-page-head h1{margin:3px 0 4px}
.event-back{display:inline-block;margin-bottom:5px;color:#777;text-decoration:none;font-size:.78rem;font-weight:800}
.event-back:hover{color:#CB1429}
.event-head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.event-autosave{font-size:.72rem;font-weight:800;color:#39814e;padding:5px 8px;border-radius:999px;background:#edf7ef;white-space:nowrap}
.event-autosave.is-saving,.event-autosave.is-pending{color:#7b6500;background:#fff6d8}.event-autosave.is-error{color:#9c2633;background:#fde9ec}
.event-filter-tabs{display:flex;gap:6px;margin:0 0 12px}.event-filter-tabs a{padding:7px 11px;border-radius:8px;text-decoration:none;color:#555;font-size:.78rem;font-weight:900;border:1px solid #ddd7d1;background:#fff}.event-filter-tabs a.is-active,.event-filter-tabs a:hover{color:#CB1429;border-color:#CB1429;background:#fff1f3}
.event-table-wrap{overflow-x:auto;border:1px solid #ded8d2;border-radius:13px;background:#fff}
.event-table{width:100%;border-collapse:collapse;min-width:940px}.event-table th{padding:10px 11px;text-align:left;background:#faf8f6;color:#6d6762;font-size:.7rem;text-transform:uppercase;letter-spacing:.035em;border-bottom:1px solid #e8e3de}.event-table td{padding:11px;border-bottom:1px solid #eee9e4;vertical-align:middle;font-size:.8rem}.event-table tbody tr:last-child td{border-bottom:0}.event-table tbody tr:hover{background:#fffcfa}.event-table td small{display:block;margin-top:3px;color:#888;font-size:.68rem}.event-main-link{font-weight:900;color:#222;text-decoration:none}.event-main-link:hover{color:#CB1429}.event-empty{text-align:center!important;padding:32px!important;color:#888}
.event-payment-pill{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;font-size:.67rem;font-weight:900;white-space:nowrap;background:#f0efed;color:#666}.event-payment-pill.is-success{background:#e6f4e8;color:#26713b}.event-payment-pill.is-danger{background:#fde6e8;color:#9e2635}.event-payment-pill.is-warning{background:#fff0c9;color:#795b00}.event-payment-pill.is-neutral{background:#efeeec;color:#666}
.event-money-due{font-weight:900;color:#9e2635}.event-money-ok{font-weight:900;color:#26713b}
.event-card{background:#fff;border:1px solid #ded8d2;border-radius:14px;padding:16px;margin-bottom:14px;box-shadow:0 2px 7px rgba(0,0,0,.025)}
.event-card h2{font-size:1rem;margin:0 0 13px}.event-card h3{font-size:.82rem;margin:3px 0 9px}.event-card label,.event-dialog label{display:block;color:#555;font-size:.73rem;font-weight:800}.event-card input,.event-card select,.event-card textarea,.event-dialog input,.event-dialog select,.event-dialog textarea{width:100%;box-sizing:border-box;margin-top:5px;padding:9px 10px;border:1px solid #d8d2cc;border-radius:8px;background:#fff;color:#222;font:inherit;font-size:.82rem}.event-card textarea,.event-dialog textarea{resize:vertical;line-height:1.45}.event-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.event-span-2{grid-column:1/-1}.event-span-all{grid-column:1/-1}.event-detail-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.85fr);gap:14px}.event-detail-grid>.event-card{margin:0}.event-create-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.event-create-client{grid-column:1/-1;padding-top:6px;border-top:1px solid #eee8e3}.event-create-client h2{margin-top:0}.event-form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px;margin-top:5px}
.event-finance-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-bottom:14px}.event-finance-strip>div{min-width:0;padding:10px 11px;border:1px solid #ddd7d1;border-radius:11px;background:#fff}.event-finance-strip span{display:block;color:#777;font-size:.66rem;font-weight:800;margin-bottom:3px}.event-finance-strip strong{display:block;font-size:.96rem;white-space:nowrap}.event-finance-strip a{text-decoration:none;color:inherit}.event-finance-strip small{display:block;color:#9b2736;font-size:.63rem;margin-top:2px}.event-finance-strip .is-danger{color:#a42a38}.event-finance-strip .is-success{color:#27723b}.event-client-finance{grid-template-columns:repeat(4,minmax(0,1fr))}
.event-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.event-section-head h2{margin:0}.event-section-head p{margin:4px 0 0}.event-section-head>a{font-size:.72rem;font-weight:800;color:#777;text-decoration:none}.event-section-head>a:hover{color:#CB1429}.event-contact-links{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
.event-finance-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.event-line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #eee9e4}.event-line:last-child{border-bottom:0}.event-line strong{display:block;font-size:.77rem}.event-line small{display:block;color:#85807b;font-size:.68rem;margin-top:3px}.event-line-delete{display:flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:0;border-radius:7px;background:transparent;color:#aaa;font-size:1rem;cursor:pointer}.event-line-delete:hover{background:#fff0f2;color:#CB1429}.event-empty-small{margin:7px 0;color:#999;font-size:.74rem}.event-upload-form{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-bottom:7px}.event-upload-form select{width:auto;min-width:160px;margin:0;padding:7px 9px}
.event-timeline{display:grid}.event-timeline-row{display:grid;grid-template-columns:118px minmax(0,1fr) 28px;gap:10px;padding:8px 0;border-bottom:1px solid #eee9e4}.event-timeline-row:last-child{border-bottom:0}.event-timeline-row>span{color:#888;font-size:.68rem}.event-timeline-row strong{font-size:.75rem}.event-timeline-row p{margin:2px 0 0;font-size:.75rem;line-height:1.4}
.event-alert{margin:0 0 13px;padding:10px 12px;border-radius:9px;font-size:.78rem}.event-alert.danger{background:#fde7e9;color:#932536;border:1px solid #f5c1c7}.event-alert.warning{background:#fff2cf;color:#755900;border:1px solid #f2dda0}
.event-dialog{width:min(420px,calc(100vw - 28px));border:0;border-radius:15px;padding:0;box-shadow:0 20px 70px rgba(0,0,0,.25)}.event-dialog::backdrop{background:rgba(30,25,22,.4)}.event-dialog form{padding:18px}.event-dialog label{margin-bottom:10px}.event-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.event-dialog-head h2{font-size:1rem;margin:0}.event-dialog-head button{width:30px;height:30px;border:0;border-radius:7px;background:#f1efed;color:#666;font-size:1.2rem;cursor:pointer}.event-dialog-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:15px}
@media(max-width:900px){.event-detail-grid{grid-template-columns:1fr}.event-finance-strip{grid-template-columns:repeat(2,1fr)}.event-client-finance{grid-template-columns:repeat(2,1fr)}.event-finance-columns{grid-template-columns:1fr}.event-grid-2{grid-template-columns:1fr}.event-create-grid{grid-template-columns:1fr}.event-create-client,.event-form-actions{grid-column:1}.event-span-2{grid-column:auto}}
@media(max-width:650px){.event-shell{width:calc(100% - 26px);margin-top:18px}.event-page-head{flex-direction:column}.event-head-actions{width:100%;justify-content:space-between}.event-finance-strip{grid-template-columns:1fr 1fr}.event-timeline-row{grid-template-columns:92px minmax(0,1fr) 26px}}
.event-reminder-alert{display:flex;align-items:center;justify-content:space-between;gap:12px}.event-reminder-actions{display:flex;gap:6px;flex-wrap:wrap}.event-reminder-alert .btn{margin:0!important;white-space:nowrap}
@media(max-width:700px){.event-reminder-alert{align-items:flex-start;flex-direction:column}}


/* =========================================================
   PILOT CANTINA V2.18.1 — Événements multi-jours / documents
   ========================================================= */
.event-label-note{
    color:#999;
    font-size:.66rem;
    font-weight:600;
}
.event-line-actions{
    display:flex;
    align-items:center;
    gap:2px;
    flex:0 0 auto;
}
.event-line-actions form{
    margin:0;
}
.event-line-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    width:26px;
    height:26px;
    padding:0;
    border:0;
    border-radius:7px;
    background:transparent;
    color:#999;
    font-size:.82rem;
    cursor:pointer;
}
.event-line-icon:hover{
    background:#f4f1ee;
    color:#555;
}
.event-dialog input[type="file"]{
    padding:7px;
    background:#faf9f7;
}


/* =========================================================
   PILOT CANTINA V2.18.2 — Événements calendrier / documents
   ========================================================= */
.event-dialog-help{margin:0;padding:10px 11px;border-radius:9px;background:#f7f5f2;color:#6f6a65;font-size:.72rem;line-height:1.4}
.event-calendar-head{align-items:center}
.event-calendar-nav{display:flex;align-items:center;gap:6px}
.event-calendar-title{margin:0 0 10px;font-size:1.05rem;font-weight:900;text-transform:capitalize}
.event-calendar-scroll{overflow-x:auto;border:1px solid #ddd7d1;border-radius:14px;background:#fff}
.event-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(145px,1fr));min-width:1015px;background:#e8e2dc;gap:1px}
.event-calendar-weekday{padding:9px 8px;background:#f7f5f2;color:#6e6862;text-align:center;font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.event-calendar-day{min-height:128px;padding:7px;background:#fff;position:relative}
.event-calendar-day.is-outside{background:#faf9f7;color:#aaa}
.event-calendar-day.is-today{box-shadow:inset 0 0 0 2px #CB1429}
.event-calendar-daynum{width:26px;height:26px;display:flex;align-items:center;justify-content:center;margin-bottom:5px;border-radius:50%;font-size:.78rem;font-weight:900}
.event-calendar-day.is-today .event-calendar-daynum{background:#CB1429;color:#fff}
.event-calendar-items{display:grid;gap:4px}
.event-calendar-item{display:block;padding:5px 6px;border-radius:7px;background:#fff2f3;border-left:3px solid #CB1429;color:#3d3935;text-decoration:none;line-height:1.15}
.event-calendar-item:hover{background:#ffe7e9;color:#CB1429}
.event-calendar-item span{display:inline-block;margin-right:4px;color:#866;font-size:.62rem;font-weight:900}
.event-calendar-item strong{font-size:.68rem}
.event-calendar-item small{display:block;margin-top:2px;color:#817a74;font-size:.6rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.event-calendar-item.is-delivery{background:#eef6ff;border-left-color:#3d7ebd}
.event-calendar-item.is-public{background:#fff8e6;border-left-color:#d79c22}
.event-calendar-item.is-other{background:#f2f1f5;border-left-color:#817a90}
.event-documents-table .event-document-actions{white-space:nowrap;text-align:right}
.event-documents-table .event-document-actions .btn{margin-left:3px}
.event-documents-table td:first-child{min-width:128px}
.event-documents-table td:nth-child(2){min-width:180px}
@media(max-width:760px){
 .event-calendar-head{align-items:stretch}
 .event-calendar-nav{justify-content:flex-end}
 .event-documents-table .event-document-actions{white-space:normal}
}


/* =========================================================
   PILOT CANTINA V2.18.3 — Recherche Devis & Factures
   ========================================================= */
.event-documents-tools{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    flex-wrap:wrap;
    margin-bottom:5px;
}

.event-documents-tools .event-filter-tabs{
    margin-bottom:0;
}

.event-documents-search{
    position:relative;
    display:block;
    width:min(390px,100%);
    margin:0;
}

.event-documents-search input{
    width:100%;
    height:39px;
    margin:0 !important;
    padding:8px 34px 8px 34px !important;
    border:1px solid #d9d3cd !important;
    border-radius:10px !important;
    background:#fff !important;
    font-size:.78rem !important;
    font-weight:600;
}

.event-documents-search input:focus{
    outline:none;
    border-color:#cdbeb4 !important;
    box-shadow:0 0 0 3px rgba(203,20,41,.07);
}

.event-documents-search-icon{
    position:absolute;
    z-index:1;
    left:11px;
    top:50%;
    transform:translateY(-50%);
    color:#888;
    font-size:1rem;
    pointer-events:none;
}

.event-documents-search-meta{
    display:flex;
    justify-content:flex-end;
    min-height:20px;
    margin-bottom:6px;
    color:#888;
    font-size:.68rem;
    font-weight:700;
}

.event-document-row[hidden]{
    display:none !important;
}

@media(max-width:760px){
    .event-documents-tools{
        align-items:stretch;
        flex-direction:column;
    }

    .event-documents-search{
        width:100%;
    }

    .event-documents-search-meta{
        justify-content:flex-start;
    }
}

/* =========================================================
   PILOT CANTINA V2.19 — Suivi paiements Événements
   ========================================================= */
.event-payment-dashboard{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin:0 0 14px;
}
.event-payment-kpi{
  display:flex;
  flex-direction:column;
  gap:3px;
  min-height:78px;
  padding:13px 15px;
  border:1px solid #e0dad4;
  border-radius:13px;
  background:#fff;
  color:#222;
  text-decoration:none;
  transition:.15s ease;
}
.event-payment-kpi:hover,.event-payment-kpi.is-active{
  border-color:#CB1429;
  box-shadow:0 4px 15px rgba(0,0,0,.05);
}
.event-payment-kpi span{font-size:.72rem;color:#777;font-weight:800}
.event-payment-kpi strong{font-size:1.28rem;line-height:1.1}
.event-payment-kpi.is-danger strong{color:#b02535}
.event-payment-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:12px;
}
.event-payment-toolbar .event-filter-tabs{margin-bottom:0}
.event-payment-search{width:min(360px,100%)}
.event-payment-client{
  margin:0 0 13px;
  border:1px solid #ded8d2;
  border-radius:14px;
  background:#fff;
  overflow:hidden;
}
.event-payment-client-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:11px 14px;
  background:#f8f6f3;
  border-bottom:1px solid #e9e4df;
  font-size:.77rem;
}
.event-payment-client-head strong{font-size:.91rem}
.event-payment-client-head span{margin-left:7px;color:#68615c;font-weight:700}
.event-payment-client-head span.is-danger{color:#a72635}
.event-payment-list{display:grid}
.event-payment-row{
  display:grid;
  grid-template-columns:minmax(150px,1.25fr) minmax(150px,1.2fr) minmax(120px,.9fr) minmax(155px,1.15fr) minmax(150px,1fr) auto;
  align-items:center;
  gap:12px;
  min-height:72px;
  padding:10px 14px;
  border-bottom:1px solid #eee9e4;
}
.event-payment-row:last-child{border-bottom:0}
.event-payment-row[hidden],.event-payment-client[hidden]{display:none!important}
.event-payment-row strong{display:block;font-size:.78rem}
.event-payment-row small{display:block;margin-top:3px;color:#777;font-size:.66rem;line-height:1.28}
.event-payment-amount strong{font-size:.85rem}
.event-payment-invoice a{color:#222;text-decoration:none}
.event-payment-invoice a:hover{color:#CB1429}
.event-payment-state{display:flex;flex-direction:column;align-items:flex-start}
.event-payment-pill.is-warning{background:#fff1cc;color:#755700}
.event-payment-pill.is-danger{background:#fde4e7;color:#9d2432}
.event-payment-pill.is-success{background:#e4f3e8;color:#27653a}
.event-payment-pill.is-neutral{background:#efedea;color:#666}
.event-payment-action{display:flex;justify-content:flex-end;min-width:116px}
.event-payment-action form{margin:0}
.event-payment-empty{padding:20px;text-align:center}
.event-payment-no-search{padding:25px;text-align:center;color:#777;font-size:.8rem}
.event-reminder-choice{display:flex;gap:8px;margin:5px 0 15px}
.event-manual-reminder-form{padding-top:12px;border-top:1px solid #eee8e2}
.event-dialog-form{padding:20px}
.event-term-state{margin-top:4px!important;font-weight:800}
.event-term-state.is-danger{color:#a52635}
.event-term-state.is-warning{color:#896500}
.event-term-state.is-success{color:#2f7142}
.event-term-state.is-neutral{color:#777}
.event-check{
  display:flex!important;
  flex-direction:row!important;
  align-items:center;
  gap:8px;
  padding:8px 0;
  font-size:.76rem!important;
  font-weight:700!important;
}
.event-check input{width:auto!important;margin:0!important}
.event-preset-dialog{width:min(650px,calc(100vw - 28px))}
.event-preset-rows{display:grid;gap:8px}
.event-preset-row{
  display:grid;
  grid-template-columns:1.3fr 145px 115px auto;
  gap:8px;
  align-items:center;
}
.event-preset-row input{margin:0!important}
.event-preset-row span{font-size:.7rem;color:#777;font-weight:800;white-space:nowrap}

@media(max-width:1050px){
  .event-payment-row{grid-template-columns:minmax(150px,1.2fr) minmax(150px,1.1fr) 110px minmax(140px,1fr) minmax(140px,1fr)}
  .event-payment-action{grid-column:5;justify-content:flex-start}
  .event-payment-invoice{grid-column:4}
}
@media(max-width:760px){
  .event-payment-dashboard{grid-template-columns:1fr 1fr}
  .event-payment-toolbar{align-items:stretch;flex-direction:column}
  .event-payment-search{width:100%}
  .event-payment-client-head{align-items:flex-start;flex-direction:column}
  .event-payment-client-head span{margin-left:0;margin-right:7px}
  .event-payment-row{grid-template-columns:1fr 1fr;gap:9px;padding:12px}
  .event-payment-main{grid-column:1/-1}
  .event-payment-term,.event-payment-amount,.event-payment-invoice,.event-payment-state{grid-column:auto}
  .event-payment-action{grid-column:1/-1;justify-content:flex-start}
  .event-preset-row{grid-template-columns:1fr 1fr}
  .event-preset-row span{display:none}
}

/* =========================================================
   PILOT CANTINA V2.20 — Module TVA
   ========================================================= */
.tva-shell{width:min(1180px,94%);margin:24px auto 70px;color:#222}.tva-shell h1{margin:0;font-size:2rem;line-height:1.05}.tva-shell h2{margin:0;font-size:1.05rem}.tva-shell p{margin:4px 0 0}.tva-kicker{margin-bottom:4px;color:#8a817a;font-size:.68rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.tva-month-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;margin-bottom:14px;border:1px solid #ded8d2;border-radius:16px;background:#fff}.tva-month-nav{display:flex;align-items:center;gap:14px}.tva-arrow{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid #d9d3cd;border-radius:10px;background:#fff;color:#333;text-decoration:none;font-size:1.5rem;line-height:1}.tva-arrow:hover{border-color:#CB1429;color:#CB1429}.tva-status-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:7px}.tva-status,.tva-autosave{display:inline-flex;align-items:center;min-height:26px;padding:4px 9px;border-radius:999px;font-size:.68rem;font-weight:900}.tva-status.is-ready{background:#e6f4e8;color:#286638}.tva-status.is-draft{background:#f3f0ed;color:#6d625a}.tva-autosave.is-saved{background:#eff8f1;color:#397147}.tva-autosave.is-pending,.tva-autosave.is-saving{background:#fff7de;color:#806000}.tva-autosave.is-error{background:#fde8ea;color:#a42132}.tva-toolbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.tva-toolbar-actions input[type=month]{height:40px;padding:7px 10px;border:1px solid #d9d3cd;border-radius:9px;background:#fff;font:inherit;font-size:.78rem;font-weight:800}.tva-more{position:relative}.tva-more>summary{list-style:none}.tva-more>summary::-webkit-details-marker{display:none}.tva-more form{position:absolute;right:0;top:calc(100% + 6px);z-index:20;width:180px;padding:6px;border:1px solid #ddd7d1;border-radius:10px;background:#fff;box-shadow:0 10px 28px rgba(0,0,0,.12)}.tva-more form button{width:100%;padding:9px;border:0;border-radius:7px;background:transparent;text-align:left;font:inherit;font-size:.76rem;font-weight:800;cursor:pointer}.tva-more form button:hover{background:#f7f4f1}.tva-alert{display:flex;align-items:center;gap:8px;padding:11px 13px;margin:10px 0;border-radius:11px;font-size:.78rem}.tva-alert.is-warning{background:#fff7de;border:1px solid #ebdba8;color:#755900}.tva-alert.is-error{background:#fff0f2;border:1px solid #efc2c9;color:#8f1f2e}.tva-disclaimer{padding:10px 12px;margin:10px 0 14px;border-left:3px solid #bcb3ab;background:#f7f5f2;color:#6d645e;font-size:.7rem;line-height:1.4}.tva-summary-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}.tva-summary-cards>div{padding:14px 15px;border:1px solid #ded8d2;border-radius:14px;background:#fff}.tva-summary-cards span{display:block;color:#7a726c;font-size:.7rem;font-weight:800}.tva-summary-cards strong{display:block;margin-top:5px;font-size:1.35rem}.tva-summary-cards .is-credit{border-color:#b9d8c0;background:#f3fbf5}.tva-card{padding:16px;margin:14px 0;border:1px solid #ded8d2;border-radius:15px;background:#fff}.tva-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}.tva-section-head p{color:#817870;font-size:.72rem;line-height:1.35}.tva-doc-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.tva-doc-actions form{margin:0}.tva-file-label{cursor:pointer}.tva-table-wrap{width:100%;overflow-x:auto}.tva-grid{width:100%;border-collapse:collapse}.tva-grid th,.tva-grid td{padding:8px 9px;border-bottom:1px solid #eee9e5;text-align:right;vertical-align:middle;font-size:.76rem}.tva-grid th{color:#746b65;font-size:.65rem;font-weight:900;text-transform:uppercase;letter-spacing:.03em;background:#faf9f7}.tva-grid th:first-child,.tva-grid td:first-child{text-align:left}.tva-grid tbody tr:last-child td{border-bottom:0}.tva-grid input{width:100%;min-width:92px;height:35px;margin:0!important;padding:7px 8px!important;border:1px solid #dcd6d0!important;border-radius:8px!important;background:#fff!important;text-align:right;font-size:.76rem!important;font-weight:700}.tva-grid input:focus{outline:none;border-color:#c9bcb3!important;box-shadow:0 0 0 3px rgba(203,20,41,.06)}.tva-check{display:inline-flex;align-items:center;justify-content:center;min-width:28px;padding:4px 7px;border-radius:999px;font-size:.64rem;font-weight:900}.tva-check.is-ok{background:#e8f5ea;color:#2f6d3b}.tva-check.is-error{background:#fde8ea;color:#a42132}.tva-double-warning{padding:8px 10px;margin:0 0 10px;border-radius:8px;background:#fff8e8;color:#765800;font-size:.68rem;font-weight:700}.tva-empty{margin:10px 0 2px!important;color:#918880;font-size:.74rem}.tva-entry-row{display:grid;grid-template-columns:minmax(0,1fr) auto 28px;align-items:center;gap:10px;padding:9px 0;border-top:1px solid #eee9e5}.tva-entry-row:first-of-type{border-top:0}.tva-entry-main{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%;padding:7px 8px;border:0;border-radius:8px;background:transparent;color:#222;text-align:left;cursor:pointer}.tva-entry-main:hover{background:#faf8f6}.tva-entry-main span{display:block}.tva-entry-main strong{display:block;font-size:.82rem}.tva-entry-main small{display:block;margin-top:2px;color:#867d76;font-size:.68rem}.tva-entry-amounts{text-align:right;white-space:nowrap}.tva-entry-amounts strong{font-size:.82rem}.tva-entry-doc{min-width:90px;text-align:right;font-size:.68rem;font-weight:800}.tva-entry-doc a{color:#CB1429;text-decoration:none}.tva-entry-doc .is-missing{color:#a06f00}.tva-icon-delete{display:flex;align-items:center;justify-content:center;width:27px;height:27px;padding:0;border:0;border-radius:7px;background:transparent;color:#aaa;font-size:1.1rem;cursor:pointer}.tva-icon-delete:hover{background:#fff0f2;color:#CB1429}.tva-checklist-ok,.tva-checklist-item{padding:9px 10px;margin:5px 0;border-radius:8px;font-size:.72rem;font-weight:700}.tva-checklist-ok{background:#edf8ef;color:#2d6f3a}.tva-checklist-item.is-error{background:#fff0f2;color:#982234}.tva-checklist-item.is-warning{background:#fff7de;color:#755900}.tva-dialog{width:min(760px,calc(100vw - 28px));max-height:90vh;padding:0;border:0;border-radius:17px;background:#fff;box-shadow:0 25px 80px rgba(0,0,0,.24);overflow:auto}.tva-dialog-wide{width:min(930px,calc(100vw - 28px))}.tva-dialog::backdrop{background:rgba(35,30,27,.42);backdrop-filter:blur(2px)}.tva-dialog>form{padding:20px}.tva-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.tva-dialog-head h2{font-size:1.2rem}.tva-dialog-head p{color:#8a8179;font-size:.7rem}.tva-dialog-head button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:0;border-radius:8px;background:#f3f0ed;color:#666;font-size:1.25rem;cursor:pointer}.tva-dialog-fields{display:grid;gap:10px;margin:10px 0}.tva-dialog-fields.two{grid-template-columns:1fr 1fr}.tva-dialog-fields.three{grid-template-columns:1fr 1.2fr 1fr}.tva-dialog-fields.four{grid-template-columns:.85fr 1.15fr 1fr 1fr}.tva-dialog label{display:block;color:#5d5651;font-size:.7rem;font-weight:900}.tva-dialog label>span{color:#999;font-size:.62rem;font-weight:700}.tva-dialog label input,.tva-dialog label textarea,.tva-dialog label select{width:100%;margin-top:6px!important;padding:9px!important;border:1px solid #d9d3cd!important;border-radius:9px!important;background:#fff!important;font:inherit;font-size:.76rem!important}.tva-dialog label textarea{resize:vertical}.tva-dialog label small{display:block;margin-top:4px;color:#888;font-size:.62rem}.tva-breakdown{margin:14px 0;padding:10px;border:1px solid #e3ddd7;border-radius:11px;background:#fcfbfa}.tva-breakdown-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}.tva-breakdown-head strong{font-size:.78rem}.tva-breakdown-head span{color:#8d847d;font-size:.64rem}.tva-dialog-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:16px}.tva-total-row td{font-weight:900;background:#faf8f6;border-top:2px solid #d8d1ca}.tva-quarter-months{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:14px 0}.tva-quarter-month{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;border:1px solid #ddd7d1;border-radius:11px;background:#fff;color:#333;text-decoration:none;font-size:.74rem}.tva-quarter-month strong{font-size:.68rem}.tva-quarter-month.is-ready strong{color:#2d6f3a}.tva-quarter-month.is-pending strong{color:#9a6d00}.tva-net-card{display:flex;align-items:center;justify-content:center;gap:18px;padding:18px;margin:14px 0;border:2px solid #222;border-radius:15px;background:#fff}.tva-net-card>div{text-align:center}.tva-net-card span{display:block;color:#756d67;font-size:.68rem;font-weight:800}.tva-net-card strong{display:block;margin-top:4px;font-size:1.25rem}.tva-net-card .operator{color:#aaa;font-size:1.35rem}.tva-net-card.is-credit{border-color:#79aa85;background:#f5fbf6}.tva-quarter-grid td,.tva-quarter-grid th{white-space:nowrap}.btn[disabled]{opacity:.42;cursor:not-allowed}
@media(max-width:900px){.tva-summary-cards{grid-template-columns:1fr 1fr}.tva-dialog-fields.four{grid-template-columns:1fr 1fr}.tva-entry-main{align-items:flex-start;flex-direction:column;gap:5px}.tva-entry-amounts{text-align:left}.tva-net-card{align-items:stretch;flex-direction:column;gap:7px}.tva-net-card .operator{display:none}}
@media(max-width:650px){.tva-shell{width:calc(100% - 24px);margin-top:14px}.tva-month-toolbar{align-items:stretch;flex-direction:column}.tva-toolbar-actions{justify-content:flex-start}.tva-summary-cards{grid-template-columns:1fr}.tva-quarter-months{grid-template-columns:1fr}.tva-dialog-fields.two,.tva-dialog-fields.three,.tva-dialog-fields.four{grid-template-columns:1fr}.tva-entry-row{grid-template-columns:minmax(0,1fr) 28px}.tva-entry-doc{grid-column:1/2;text-align:left;padding-left:8px}.tva-section-head{align-items:stretch;flex-direction:column}.tva-doc-actions{justify-content:flex-start}.tva-grid th,.tva-grid td{padding:7px 6px}.tva-grid input{min-width:82px}}
.tva-is-hidden{display:none!important}


/* =========================================================
   PILOT CANTINA V2.20.2 — TVA saisie / justificatif SumUp
   ========================================================= */
.tva-inline-upload{margin:0}
.tva-document-attached{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.tva-document-ok{display:inline-flex;align-items:center;min-height:28px;padding:5px 8px;border-radius:999px;background:#e7f5ea;color:#2d703b;font-size:.68rem;font-weight:850;white-space:nowrap}
.tva-inline-success,.tva-inline-info{margin:0 0 10px;padding:9px 11px;border-radius:9px;font-size:.73rem;font-weight:750}
.tva-inline-success{background:#e7f5ea;color:#2d703b}
.tva-inline-info{background:#f4f1ee;color:#666}
.tva-entry-instruction{margin:0 0 8px;color:#666;font-size:.73rem}
.tva-sumup-grid tbody tr{display:table-row}
.tva-sumup-grid .tva-money-input{min-width:105px;background:#fff}
@media(max-width:760px){.tva-document-attached{align-items:flex-start;flex-direction:column}.tva-sumup-grid .tva-money-input{min-width:90px}}


/* PILOT CANTINA V2.20.7 — TVA stable manuel */
.tva-auto-note{
    display:inline-block;
    margin-left:4px;
    padding:1px 5px;
    border-radius:999px;
    background:#edf6ef;
    color:#477452;
    font-size:.56rem;
    font-weight:900;
    vertical-align:1px;
}

.tva-triplet-row input.is-auto-calculated{
    background:#f5faf6 !important;
}

.tva-dialog-fields.four{
    grid-template-columns:repeat(4,minmax(0,1fr));
}

@media(max-width:900px){
    .tva-dialog-fields.four{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:560px){
    .tva-dialog-fields.four{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   PILOT CANTINA V2.20.8 — TVA super calculatrice
   ========================================================= */
.tva-report-grid th small,
.tva-expense-summary-grid th small{
    display:inline;
    color:#999;
    font-size:.58rem;
    font-weight:800;
    text-transform:none;
}

.tva-report-grid tfoot .tva-total-row th,
.tva-expense-summary-grid tfoot .tva-total-row th{
    padding:10px;
    border-top:2px solid #222;
    background:#f7f5f2;
    color:#222;
    font-size:.76rem;
    font-weight:900;
    text-transform:none;
}

.tva-report-grid td:nth-child(n+2),
.tva-report-grid th:nth-child(n+2),
.tva-expense-summary-grid td:nth-child(n+2),
.tva-expense-summary-grid th:nth-child(n+2){
    text-align:right;
}

.tva-report-grid td:first-child,
.tva-report-grid th:first-child,
.tva-expense-summary-grid td:first-child,
.tva-expense-summary-grid th:first-child{
    text-align:left;
}

.tva-report-grid input,
.tva-expense-summary-grid input{
    text-align:right;
}

.tva-sumup-grid input.is-ttc,
.tva-expense-summary-grid input.is-ttc{
    background:#f5faf6;
}

.tva-revenue-total-grid tbody td:not(:first-child){
    font-weight:750;
}

.tva-revenue-total-grid .tva-total-row th{
    font-size:.80rem;
}

.tva-expense-summary-grid .tva-triplet-row td:first-child{
    min-width:210px;
}

@media(max-width:760px){
    .tva-report-grid,
    .tva-expense-summary-grid{
        min-width:720px;
    }
}


/* =========================================================
   PILOT CANTINA V2.20.10 — ordre TVA / totaux / rouvrir mois
   ========================================================= */

/* Total discret : plus de gros trait noir */
.tva-report-grid tfoot .tva-total-row th,
.tva-report-grid tfoot .tva-total-row td,
.tva-revenue-total-grid tfoot .tva-total-row th,
.tva-revenue-total-grid tfoot .tva-total-row td,
.tva-expense-summary-grid tfoot .tva-total-row th,
.tva-expense-summary-grid tfoot .tva-total-row td,
.tva-total-row th,
.tva-total-row td{
    border-top:1px solid #d9d3cd !important;
    background:#f7f5f2 !important;
    color:#222 !important;
    font-weight:900 !important;
}

/* Bouton "Rouvrir le mois" : éviter texte blanc sur fond blanc */
.tva-more form button{
    color:#222 !important;
    background:#fff !important;
}

.tva-more form button:hover{
    color:#CB1429 !important;
    background:#f7f4f1 !important;
}

/* Le menu déroulant reste clairement lisible */
.tva-more form{
    color:#222 !important;
    background:#fff !important;
}


/* PILOT CANTINA V2.20.11 — dépenses consolidées */
.tva-expense-summary-grid input[readonly]{
    cursor:default;
    background:#f5faf6 !important;
    color:#222 !important;
}


/* =========================================================
   PILOT CANTINA V2.21 — Module Horaires
   ========================================================= */
.hours-shell{
    width:min(1180px,94%);
    margin:26px auto 70px;
}
.hours-page-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    margin-bottom:18px;
}
.hours-page-head h1{margin:0 0 5px;font-size:2rem}
.hours-page-head p{margin:0;color:#777}
.hours-sync-pill{
    padding:8px 11px;
    border:1px solid #bcdcc4;
    border-radius:999px;
    background:#eff8f1;
    color:#347145;
    font-size:.72rem;
    font-weight:800;
}
.hours-card{
    margin:0 0 18px;
    padding:18px;
    border:1px solid #ded8d2;
    border-radius:16px;
    background:#fff;
}
.hours-card-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:15px;
    margin-bottom:14px;
}
.hours-card-head h2{margin:0 0 4px;font-size:1.08rem}
.hours-card-head p{margin:0;color:#817871;font-size:.78rem}
.hours-interval{
    color:#817871;
    font-size:.7rem;
    font-weight:800;
    white-space:nowrap;
}
.hours-week{border-top:1px solid #ece7e2}
.hours-day{
    display:grid;
    grid-template-columns:145px 1fr 1fr;
    gap:12px;
    align-items:stretch;
    padding:11px 0;
    border-bottom:1px solid #ece7e2;
}
.hours-day-name{
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:3px;
}
.hours-day-name strong{font-size:.86rem}
.hours-day-name small{color:#8d847e;font-size:.66rem}
.hours-service{
    display:grid;
    grid-template-columns:78px repeat(3,minmax(100px,1fr));
    gap:8px;
    align-items:end;
    padding:10px;
    border:1px solid #e6e0db;
    border-radius:11px;
    background:#faf9f7;
    transition:.15s ease;
}
.hours-service.is-closed{
    opacity:.55;
    background:#f6f4f2;
}
.hours-service label{
    display:flex;
    flex-direction:column;
    gap:4px;
    color:#746b64;
    font-size:.64rem;
    font-weight:800;
}
.hours-service input[type="time"],
.hours-special-date input{
    width:100%;
    height:37px;
    margin:0;
    padding:7px 8px;
    border:1px solid #d9d3cd;
    border-radius:8px;
    background:#fff;
    font:inherit;
    color:#222;
}
.hours-service-toggle{
    align-self:center;
    flex-direction:row!important;
    align-items:center;
    gap:7px!important;
    color:#222!important;
    font-size:.76rem!important;
}
.hours-service-toggle input{width:auto;margin:0}
.hours-last-booking input{background:#f4f8f4!important}
.hours-savebar{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:16px;
    padding-top:14px;
}
.hours-savebar span{margin-right:auto;color:#8a817b;font-size:.7rem}
.hours-two-columns{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
}
.hours-inline-form{
    display:grid;
    grid-template-columns:1fr 1fr auto;
    gap:9px;
    align-items:end;
}
.hours-inline-form label,
.hours-special-date{
    display:flex;
    flex-direction:column;
    gap:5px;
    color:#6f6761;
    font-size:.69rem;
    font-weight:800;
}
.hours-inline-form label span{color:#aaa;font-weight:600}
.hours-inline-form input{
    height:39px;
    margin:0;
    padding:7px 9px;
    border:1px solid #d9d3cd;
    border-radius:8px;
    background:#fff;
}
.hours-exception-list{margin-top:14px}
.hours-exception-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:10px 0;
    border-bottom:1px solid #eee9e4;
}
.hours-exception-row:last-child{border-bottom:0}
.hours-exception-row small{
    display:block;
    margin-top:2px;
    color:#8c837d;
    font-size:.67rem;
}
.hours-exception-row form{margin:0}
.hours-delete{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:28px;
    height:28px;
    border:0;
    border-radius:7px;
    background:transparent;
    color:#aaa;
    font-size:1.1rem;
    cursor:pointer;
}
.hours-delete:hover{background:#fff1f3;color:#CB1429}
.hours-empty{color:#999;font-size:.74rem}
.hours-preview-grid{
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    border:1px solid #e7e1dc;
    border-radius:10px;
    overflow:hidden;
}
.hours-preview-grid div{
    min-width:0;
    padding:10px;
    border-right:1px solid #e7e1dc;
}
.hours-preview-grid div:last-child{border-right:0}
.hours-preview-grid strong,
.hours-preview-grid span{display:block}
.hours-preview-grid strong{font-size:.7rem}
.hours-preview-grid span{margin-top:4px;color:#625a54;font-size:.7rem}
.hours-notice{
    margin-bottom:14px;
    padding:10px 12px;
    border-radius:9px;
    font-size:.76rem;
}
.hours-notice.success{background:#eaf7ed;color:#30703f}
.hours-notice.error{background:#fff0f1;color:#982737}
.hours-dialog{
    width:min(820px,94vw);
    padding:0;
    border:0;
    border-radius:16px;
    box-shadow:0 18px 60px rgba(0,0,0,.2);
}
.hours-dialog::backdrop{background:rgba(0,0,0,.35)}
.hours-dialog form{padding:18px}
.hours-dialog-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:15px;
    margin-bottom:14px;
}
.hours-dialog-head h2{margin:0 0 4px}
.hours-dialog-head p{margin:0;color:#888;font-size:.72rem}
.hours-dialog-head button{
    border:0;background:#f4f1ef;border-radius:8px;width:34px;height:34px;
    color:#777;font-size:1.1rem;font-weight:900;cursor:pointer
}
.hours-special-date{margin-bottom:12px}
.hours-dialog-service{margin-bottom:10px}
.hours-dialog-actions{
    display:flex;
    justify-content:flex-end;
    gap:8px;
    margin-top:14px;
}

@media(max-width:980px){
    .hours-day{grid-template-columns:120px 1fr}
    .hours-day-name{grid-row:span 2}
    .hours-two-columns{grid-template-columns:1fr}
    .hours-preview-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:720px){
    .hours-page-head{flex-direction:column}
    .hours-day{grid-template-columns:1fr}
    .hours-day-name{grid-row:auto}
    .hours-service{grid-template-columns:1fr 1fr}
    .hours-service-toggle{grid-column:1/-1}
    .hours-inline-form{grid-template-columns:1fr}
    .hours-savebar{align-items:stretch;flex-direction:column}
    .hours-savebar .btn{width:100%}
    .hours-preview-grid{grid-template-columns:1fr 1fr}
}


/* =========================================================
   PILOT CANTINA V2.19.3 — clôture manuelle Suivi paiements
   ========================================================= */
.event-payment-close-form{
    margin:6px 0 0;
}
.event-payment-close-button{
    border:0;
    background:transparent;
    padding:0;
    color:#9b928b;
    font-size:.68rem;
    font-weight:800;
    cursor:pointer;
    text-decoration:underline;
    text-underline-offset:2px;
}
.event-payment-close-button:hover{
    color:#CB1429;
}

.event-payment-archive{
    overflow:hidden;
    border:1px solid #ded8d2;
    border-radius:14px;
    background:#fff;
}
.event-payment-archive-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:13px 16px;
    border-bottom:1px solid #e7e1dc;
    background:#f8f6f3;
}
.event-payment-archive-row{
    display:grid;
    grid-template-columns:minmax(190px,1.6fr) minmax(130px,1fr) 120px 120px 130px 110px auto;
    gap:14px;
    align-items:center;
    padding:13px 16px;
    border-bottom:1px solid #eee9e4;
}
.event-payment-archive-row:last-child{
    border-bottom:0;
}
.event-payment-archive-row > div{
    min-width:0;
}
.event-payment-archive-row small{
    display:block;
    margin-top:2px;
    color:#8c837d;
    font-size:.67rem;
}
.event-payment-reopen-form{
    margin:0;
    justify-self:end;
}

@media(max-width:1000px){
    .event-payment-archive-row{
        grid-template-columns:1.5fr 1fr 1fr 1fr;
    }
    .event-payment-reopen-form{
        justify-self:start;
    }
}

@media(max-width:650px){
    .event-payment-archive-row{
        grid-template-columns:1fr 1fr;
    }
    .event-payment-archive-head{
        align-items:flex-start;
        flex-direction:column;
    }
}


/* =========================================================
   PILOT CANTINA V2.21.3 — Horaires source unique
   ========================================================= */
.hours-card-head-rule{
    align-items:center;
}
.hours-booking-rule{
    flex:0 0 285px;
    display:flex;
    flex-direction:column;
    gap:5px;
    padding:11px 13px;
    border:1px solid #d6e5d9;
    border-radius:11px;
    background:#f4faf5;
    color:#3f6849;
    font-size:.68rem;
    font-weight:800;
}
.hours-booking-rule-input{
    display:flex;
    align-items:center;
    gap:7px;
}
.hours-booking-rule-input input{
    width:76px;
    height:36px;
    margin:0;
    padding:6px 8px;
    border:1px solid #bfd2c3;
    border-radius:8px;
    background:#fff;
    color:#222;
    font:inherit;
    font-size:.8rem;
}
.hours-booking-rule-input b{
    color:#3f6849;
    font-size:.72rem;
}
.hours-booking-rule small{
    color:#789080;
    font-size:.63rem;
}
.hours-rule-info{
    margin:-2px 0 13px;
    padding:8px 11px;
    border-radius:9px;
    background:#f7f5f2;
    color:#746b64;
    font-size:.69rem;
}
.hours-rule-info a{
    color:#CB1429;
    font-weight:800;
}
.hours-service{
    grid-template-columns:78px minmax(100px,1fr) minmax(100px,1fr) minmax(130px,1fr);
}
.hours-last-booking-auto{
    display:flex;
    min-height:37px;
    flex-direction:column;
    justify-content:center;
    gap:3px;
    padding:7px 10px;
    border:1px solid #cfe1d3;
    border-radius:8px;
    background:#f2f9f4;
}
.hours-last-booking-auto span{
    color:#718178;
    font-size:.61rem;
    font-weight:800;
}
.hours-last-booking-auto strong{
    color:#2d6d3d;
    font-size:.82rem;
}
.hours-last-booking-auto strong.is-error{
    color:#b02b3b;
}
.hours-service.is-closed .hours-last-booking-auto{
    opacity:.6;
}

@media(max-width:900px){
    .hours-card-head-rule{
        align-items:flex-start;
        flex-direction:column;
    }
    .hours-booking-rule{
        width:100%;
        flex-basis:auto;
    }
}
@media(max-width:720px){
    .hours-service{
        grid-template-columns:1fr 1fr;
    }
    .hours-last-booking-auto{
        grid-column:1/-1;
    }
}


/* =========================================================
   PILOT CANTINA V2.21.6 — Horaires UX + affichette fermeture
   ========================================================= */

/* Il n'y a plus que Ouverture / Fermeture par service */
.hours-service{
    grid-template-columns:78px minmax(120px,1fr) minmax(120px,1fr) !important;
}

.hours-exception-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:7px;
    flex:0 0 auto;
}

.hours-print-sign{
    display:inline-flex;
    align-items:center;
    gap:5px;
    padding:6px 9px;
    border:1px solid #d8d3ce;
    border-radius:8px;
    background:#fff;
    color:#4b4541;
    text-decoration:none;
    font-size:.68rem;
    font-weight:800;
    line-height:1;
    white-space:nowrap;
}

.hours-print-sign:hover{
    border-color:#CB1429;
    background:#fff1f3;
    color:#CB1429;
}

@media(max-width:720px){
    .hours-service{
        grid-template-columns:1fr 1fr !important;
    }

    .hours-service-toggle{
        grid-column:1/-1;
    }

    .hours-exception-row{
        align-items:flex-start;
    }

    .hours-exception-actions{
        flex-direction:column;
        align-items:flex-end;
    }
}


/* =========================================================
   PILOT CANTINA V2.21.11 — événements sans facturation
   + calendrier création + Info du jour planning automatique
   ========================================================= */

.event-calendar-day-create{
    cursor:pointer;
    position:relative;
}

.event-calendar-day-create:hover{
    background:#fff8f4;
}

.event-calendar-day-create:focus{
    outline:2px solid rgba(203,20,41,.25);
    outline-offset:-2px;
}

.event-calendar-daynum{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:5px;
}

.event-calendar-add{
    opacity:0;
    color:#CB1429;
    font-size:.82rem;
    font-weight:900;
    transition:opacity .12s ease;
}

.event-calendar-day-create:hover .event-calendar-add,
.event-calendar-day-create:focus .event-calendar-add{
    opacity:1;
}

.event-no-billing-create,
.event-no-billing-control{
    padding:11px 12px;
    border:1px solid #cbdccf;
    border-radius:10px;
    background:#f3faf5;
}

.event-checkbox-line{
    display:flex!important;
    flex-direction:row!important;
    align-items:center;
    gap:8px!important;
    color:#2e623b;
}

.event-checkbox-line input{
    width:auto!important;
    margin:0!important;
}

.event-no-billing-create small,
.event-no-billing-control small{
    display:block;
    margin-top:5px;
    color:#6f7f73;
    font-size:.66rem;
    line-height:1.35;
}

.event-no-billing-badge{
    display:inline-flex;
    margin-top:6px;
    padding:4px 8px;
    border-radius:999px;
    background:#e9f6ec;
    color:#317344;
    font-size:.64rem;
    font-weight:900;
}

[hidden]{
    display:none!important;
}

.planning-day-info-static{
    min-height:42px;
    padding:8px 9px;
    border:1px solid #ded8d2;
    border-radius:8px;
    background:#f6f4f2;
    color:#514a45;
    font-size:.72rem;
    font-weight:800;
    line-height:1.3;
}

@media(max-width:760px){
    .event-calendar-add{
        opacity:.55;
    }
}

/* =========================================================
   ÉVÉNEMENTS — publication publique Food Truck (V2.22)
   ========================================================= */
.event-public-site{
    border-color:#eadbc4;
    background:#fffdfa;
}
.event-public-site-head{
    align-items:flex-start;
    gap:14px;
}
.event-public-site-head .muted{
    max-width:760px;
    margin:3px 0 0;
    font-size:.7rem;
    line-height:1.45;
}
.event-public-site-badge{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    padding:5px 8px;
    border-radius:999px;
    background:#fff0d7;
    color:#8b5d0c;
    font-size:.61rem;
    font-weight:900;
    letter-spacing:.04em;
}
.event-public-toggle{
    display:block!important;
    margin:2px 0 14px;
    padding:11px 12px;
    border:1px solid #ebd5b2;
    border-radius:10px;
    background:#fff7e9;
}
.event-public-toggle .event-checkbox-line{
    color:#7a5111;
}
.event-public-toggle small{
    display:block;
    margin-top:5px;
    color:#806d52;
    font-size:.66rem;
    line-height:1.4;
}
.event-public-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:11px;
}
.event-public-site-note{
    margin:12px 0 0;
    padding-top:11px;
    border-top:1px solid #eee3d5;
    color:#81766c;
    font-size:.67rem;
    line-height:1.5;
}
@media(max-width:900px){
    .event-public-grid{grid-template-columns:1fr}
    .event-public-grid .event-span-2{grid-column:auto}
    .event-public-site-head{flex-direction:column}
}
