/* Bannière cookies + modale paramètres */
#cookie-banner {
    position: fixed;
    bottom: 20px;
    left: 20px;
    right: 20px;
    max-width: 1100px;
    margin: 0 auto;
    background: #ffffff;
    color: #1e293b;
    box-shadow: 0 20px 60px rgba(15, 23, 42, 0.25);
    border-radius: 16px;
    z-index: 9999;
    border-top: 4px solid;
    border-image: linear-gradient(90deg, #36AFE9, #25568E, #A03A84, #E63B5C, #F7931E, #F6B11F) 1;
    animation: cbSlideUp .35s ease;
}
@keyframes cbSlideUp { from { opacity: 0; transform: translateY(30px);} to { opacity:1; transform:translateY(0);} }
.cb-inner {
    display: flex; gap: 24px; align-items: center; padding: 20px 28px; flex-wrap: wrap;
}
.cb-text { flex: 1 1 380px; }
.cb-text strong { display:block; font-size: 1.05rem; margin-bottom: 4px; font-family:'Space Grotesk', sans-serif;}
.cb-text p { margin: 0; font-size: 0.9rem; line-height: 1.55; color: #475569; }
.cb-text a { color: #25568E; text-decoration: underline; font-weight: 500;}
.cb-actions { display:flex; gap: 8px; flex-wrap: wrap; }
.cb-btn {
    padding: 10px 18px; border-radius: 10px; border: none; cursor: pointer;
    font-size: 0.9rem; font-weight: 600; font-family: inherit;
    transition: transform .15s ease, box-shadow .15s ease;
}
.cb-btn:hover { transform: translateY(-1px); }
.cb-btn-accept { background: linear-gradient(135deg, #36AFE9, #25568E); color: #fff; box-shadow: 0 6px 18px rgba(37,86,142,.35);}
.cb-btn-reject { background: #f1f5f9; color: #1e293b;}
.cb-btn-settings { background: transparent; color: #25568E; border: 1px solid #cbd5e1;}

/* Modale paramètres */
#cookie-modal { position: fixed; inset: 0; z-index: 10000; display:flex; align-items:center; justify-content:center;}
.cm-overlay { position:absolute; inset:0; background: rgba(15,23,42,.55); backdrop-filter: blur(4px);}
.cm-dialog {
    position: relative; background:#fff; border-radius: 18px; max-width: 600px; width: calc(100% - 32px);
    box-shadow: 0 30px 80px rgba(0,0,0,.35); overflow:hidden; max-height: 85vh; display:flex; flex-direction:column;
    animation: cmIn .25s ease;
}
@keyframes cmIn { from {opacity:0; transform: scale(.95);} to {opacity:1; transform: scale(1);}}
.cm-head { display:flex; justify-content:space-between; align-items:center; padding: 20px 24px; border-bottom:1px solid #e2e8f0;}
.cm-head h3 { margin:0; font-family:'Space Grotesk', sans-serif; font-size:1.25rem; color:#1e293b;}
.cm-close { border:none; background:transparent; font-size:1.6rem; cursor:pointer; color:#64748b; line-height:1;}
.cm-body { padding: 8px 24px 8px; overflow-y:auto;}
.cm-row { display:flex; align-items:center; gap: 16px; padding: 16px 0; border-bottom: 1px solid #f1f5f9;}
.cm-row:last-child { border-bottom:none;}
.cm-label { flex:1;}
.cm-label strong { display:block; color:#1e293b; margin-bottom: 4px;}
.cm-label span { font-size: 0.85rem; color:#64748b; line-height: 1.5;}
.cm-toggle { position:relative; width: 48px; height: 26px; flex-shrink:0; cursor:pointer;}
.cm-toggle input { opacity:0; width:0; height:0;}
.cm-slider { position:absolute; inset:0; background:#cbd5e1; border-radius: 30px; transition:.2s;}
.cm-slider::before { content:""; position:absolute; left: 3px; top: 3px; width:20px; height:20px; background:#fff; border-radius:50%; transition:.2s;}
.cm-toggle input:checked + .cm-slider { background: linear-gradient(135deg, #36AFE9, #25568E);}
.cm-toggle input:checked + .cm-slider::before { transform: translateX(22px);}
.cm-toggle.disabled .cm-slider { background: linear-gradient(135deg, #94a3b8, #64748b); opacity:.7; cursor:not-allowed;}
.cm-foot { padding: 18px 24px; border-top:1px solid #e2e8f0; display:flex; justify-content:flex-end; gap:8px; flex-wrap:wrap;}

@media (max-width: 640px) {
    #cookie-banner { bottom:0; left:0; right:0; border-radius: 16px 16px 0 0;}
    .cb-inner { padding: 18px 20px;}
    .cb-actions { width: 100%;}
    .cb-actions .cb-btn { flex: 1; }
}
