/* ==========================================================================
   services.arcanescookie.fr — feuille de style unique
   Mobile d'abord. Tokens --ac-* repris du site principal (style.css / thème sombre),
   un bloc par thème : dark (défaut), light, fleur. Aucun style en ligne dans les pages.
   ========================================================================== */

/* --- Polices (copiées du site principal, auto-hébergées) ------------------ */
@font-face{font-family:'Quicksand';font-style:normal;font-weight:300 700;font-display:swap;src:url(/assets/fonts/quicksand-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Quicksand';font-style:normal;font-weight:300 700;font-display:swap;src:url(/assets/fonts/quicksand-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Cinzel Decorative';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/cinzel-decorative-400-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Cinzel Decorative';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/cinzel-decorative-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* --- Tokens : thème sombre (défaut) --------------------------------------- */
:root,
html[data-theme="dark"] {
    --ac-bg:      #0a0614;
    --ac-bg2:     #120b20;
    --ac-card:    #171029;
    --ac-text:    #e8e4f2;
    --ac-muted:   #a99ec6;
    --ac-border:  #2b2040;
    --ac-line:    #3a2c55;
    --ac-accent1: #d4af37;   /* Or */
    --ac-accent2: #8a2be2;   /* Violet */
    --ac-success: #2ecc71;
    --ac-warning: #f1c40f;
    --ac-danger:  #e74c3c;

    --sv-btn-bg:   #d4af37;
    --sv-btn-fg:   #170e04;
    --sv-btn-hover:#f0d98a;
    --sv-link:     #f0d98a;
    --sv-focus:    #f0d98a;
    --sv-glow:     0 0 34px -10px rgba(212,175,55,.45);
    --sv-shadow:   0 26px 60px -40px rgba(0,0,0,.95);
    --sv-hero-bg:  radial-gradient(900px 420px at 15% -10%, rgba(138,43,226,.28), transparent 60%),
                   radial-gradient(700px 380px at 95% 0%, rgba(212,175,55,.13), transparent 60%);
}

/* --- Tokens : thème clair « grimoire » ------------------------------------ */
html[data-theme="light"] {
    --ac-bg:      #c69a68;
    --ac-bg2:     #a97a4e;
    --ac-card:    #d9b183;
    --ac-text:    #2a1608;
    --ac-muted:   #4a2c12;
    --ac-border:  #a67a4c;
    --ac-line:    #8a5c33;
    --ac-accent1: #8c3f12;
    --ac-accent2: #5b2a6e;
    --ac-success: #3d5120;
    --ac-warning: #8a4a0c;
    --ac-danger:  #8f2418;

    --sv-btn-bg:   #8c3f12;
    --sv-btn-fg:   #fff8ee;
    --sv-btn-hover:#6f300c;
    --sv-link:     #5b2a6e;
    --sv-focus:    #2a1608;
    --sv-glow:     none;
    --sv-shadow:   0 18px 40px -30px rgba(42,22,8,.7);
    --sv-hero-bg:  linear-gradient(180deg, rgba(255,248,238,.28), transparent 70%);
}

/* --- Tokens : thème « fleur » --------------------------------------------- */
html[data-theme="fleur"] {
    --ac-bg:      #fff2f9;
    --ac-bg2:     #ffe4f2;
    --ac-card:    #fffbfd;
    --ac-text:    #4b2140;
    --ac-muted:   #7d4a71;
    --ac-border:  #ffc6e2;
    --ac-line:    #ff9ccf;
    --ac-accent1: #ff3f9a;
    --ac-accent2: #9b5cff;
    --ac-success: #1f8f5f;
    --ac-warning: #b36200;
    --ac-danger:  #c42a52;

    --sv-btn-bg:   #c2185b;
    --sv-btn-fg:   #ffffff;
    --sv-btn-hover:#9c1049;
    --sv-link:     #8a2be2;
    --sv-focus:    #4b2140;
    --sv-glow:     none;
    --sv-shadow:   0 18px 40px -30px rgba(194,24,91,.45);
    --sv-hero-bg:  radial-gradient(800px 360px at 10% -10%, rgba(255,63,154,.18), transparent 60%),
                   radial-gradient(700px 360px at 95% 0%, rgba(155,92,255,.16), transparent 60%);
}

/* --- Base ------------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
    margin: 0;
    background: var(--ac-bg);
    color: var(--ac-text);
    font-family: 'Quicksand', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    font-size: 1.0625rem;
    line-height: 1.65;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}
img, svg { max-width: 100%; height: auto; }
h1, h2, h3 { line-height: 1.25; margin: 0 0 .6em; font-weight: 700; }
h1 { font-family: 'Cinzel Decorative', 'Quicksand', serif; font-weight: 400; font-size: clamp(1.7rem, 6vw, 2.8rem); letter-spacing: .01em; }
h2 { font-size: clamp(1.35rem, 4vw, 1.8rem); }
h3 { font-size: 1.15rem; }
p { margin: 0 0 1em; }
a { color: var(--sv-link); text-underline-offset: .18em; }
a:hover { text-decoration-thickness: 2px; }
ul, ol { padding-left: 1.2em; margin: 0 0 1em; }
:focus-visible { outline: 3px solid var(--sv-focus); outline-offset: 3px; border-radius: 4px; }
[hidden] { display: none !important; }

.sv-wrap { width: 100%; max-width: 72rem; margin: 0 auto; padding: 0 16px; }
.sv-main { flex: 1 0 auto; outline: none; padding-bottom: 3rem; }
.sv-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.sv-skip { position: absolute; left: 8px; top: -60px; z-index: 1000; background: var(--sv-btn-bg); color: var(--sv-btn-fg); padding: 12px 16px; border-radius: 8px; font-weight: 700; }
.sv-skip:focus { top: 8px; }

/* --- En-tête ---------------------------------------------------------------- */
.sv-header { background: var(--ac-bg2); border-bottom: 1px solid var(--ac-border); z-index: 100; }
@media (min-width: 52rem) { .sv-header { position: sticky; top: 0; } }
.sv-header__inner { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; padding-top: 6px; padding-bottom: 6px; }
.sv-brand { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; color: var(--ac-text); text-decoration: none; font-weight: 700; }
.sv-brand__mark { color: var(--ac-accent1); font-size: 1.4rem; }
.sv-brand__text { font-family: 'Cinzel Decorative', 'Quicksand', serif; font-size: .95rem; line-height: 1.2; }
.sv-brand__sub { display: block; font-family: 'Quicksand', sans-serif; font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ac-muted); }
.sv-nav { order: 3; width: 100%; }
.sv-nav ul { display: flex; flex-wrap: wrap; gap: 2px 6px; list-style: none; margin: 0; padding: 0; }
.sv-nav a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 12px; border-radius: 10px; color: var(--ac-text); text-decoration: none; font-weight: 600; }
.sv-nav a:hover { background: var(--ac-card); }
.sv-nav a[aria-current="page"] { box-shadow: inset 0 -3px 0 var(--ac-accent1); }
.sv-nav .sv-nav__cta { border: 1px solid var(--ac-line); }
.sv-theme { margin-left: auto; }
.sv-theme__btn { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; background: var(--ac-card); color: var(--ac-text); border: 1px solid var(--ac-line); border-radius: 10px; font: inherit; font-weight: 600; cursor: pointer; }
.sv-theme__btn:hover { border-color: var(--ac-accent1); }

@media (min-width: 52rem) {
    .sv-nav { order: 0; width: auto; margin-left: auto; }
    .sv-theme { margin-left: 0; }
}

/* --- Boutons ---------------------------------------------------------------- */
.sv-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; min-width: 44px; padding: 0 22px; border-radius: 12px; border: 2px solid transparent; font: inherit; font-weight: 700; text-decoration: none; cursor: pointer; text-align: center; }
.sv-btn--primary { background: var(--sv-btn-bg); color: var(--sv-btn-fg); box-shadow: var(--sv-glow); }
.sv-btn--primary:hover { background: var(--sv-btn-hover); }
.sv-btn--ghost { background: transparent; color: var(--ac-text); border-color: var(--ac-line); }
.sv-btn--ghost:hover { border-color: var(--ac-accent1); background: var(--ac-card); }
.sv-btn--danger { background: transparent; color: var(--ac-danger); border-color: var(--ac-danger); }
.sv-btn--danger:hover { background: var(--ac-danger); color: #fff; }
.sv-btn--small { min-height: 44px; padding: 0 16px; font-size: .95rem; }
.sv-btn[disabled] { opacity: .6; cursor: wait; }
.sv-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 1.4rem; }

/* --- Hero / sections -------------------------------------------------------- */
.sv-hero { background: var(--sv-hero-bg); padding: 3rem 0 2.2rem; border-bottom: 1px solid var(--ac-border); }
.sv-hero__lead { font-size: 1.2rem; max-width: 42rem; color: var(--ac-text); }
.sv-hero__tag { display: inline-block; margin-bottom: .8rem; padding: 4px 12px; border: 1px solid var(--ac-line); border-radius: 999px; color: var(--ac-muted); font-size: .85rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.sv-section { padding: 2.4rem 0 0; }
.sv-section__intro { color: var(--ac-muted); max-width: 42rem; }
.sv-breadcrumb { margin: 1.4rem 0 0; font-size: .95rem; color: var(--ac-muted); }
.sv-breadcrumb a { display: inline-flex; min-height: 44px; align-items: center; }
.sv-prose { max-width: 46rem; }
.sv-prose h2 { margin-top: 1.8em; }
.sv-note { background: var(--ac-card); border: 1px solid var(--ac-border); border-left: 4px solid var(--ac-accent1); border-radius: 12px; padding: 14px 18px; max-width: 46rem; }
.sv-note p:last-child { margin-bottom: 0; }

/* --- Cartes de services ----------------------------------------------------- */
.sv-grid { display: grid; gap: 16px; grid-template-columns: 1fr; list-style: none; padding: 0; margin: 1.4rem 0 0; }
@media (min-width: 40rem) { .sv-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 64rem) { .sv-grid { grid-template-columns: repeat(3, 1fr); } }
.sv-card { display: flex; flex-direction: column; gap: 10px; height: 100%; background: var(--ac-card); border: 1px solid var(--ac-border); border-radius: 18px; padding: 20px; box-shadow: var(--sv-shadow); }
.sv-card__top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.sv-card__icon { font-size: 1.8rem; line-height: 1; }
.sv-card__title { margin: 0; font-size: 1.2rem; }
.sv-card__text { margin: 0; color: var(--ac-muted); flex: 1; }
.sv-card__price { margin: 0; font-weight: 700; }
.sv-card__link { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-weight: 700; }
.sv-card--bientot { border-style: dashed; opacity: .92; }
.sv-card--ouvert { border-color: var(--ac-accent1); }

/* Pastilles de statut : le texte dit tout, le point colore */
.sv-badge { display: inline-flex; align-items: center; gap: 7px; padding: 3px 12px; border: 1px solid var(--ac-line); border-radius: 999px; background: var(--ac-bg2); color: var(--ac-text); font-size: .85rem; font-weight: 700; white-space: nowrap; }
.sv-badge::before { content: ''; width: 9px; height: 9px; border-radius: 50%; background: var(--ac-muted); }
.sv-badge--ouvert::before, .sv-badge--acceptee::before, .sv-badge--accepte::before { background: var(--ac-success); }
.sv-badge--devis::before, .sv-badge--en_cours::before, .sv-badge--envoye::before { background: var(--ac-accent2); }
.sv-badge--nouvelle::before, .sv-badge--devis_envoye::before { background: var(--ac-accent1); }
.sv-badge--bientot::before, .sv-badge--brouillon::before, .sv-badge--expire::before { background: var(--ac-muted); }
.sv-badge--refusee::before, .sv-badge--refuse::before { background: var(--ac-danger); }

/* --- Grille tarifaire ------------------------------------------------------- */
.sv-prices { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); list-style: none; padding: 0; margin: 1.4rem 0 0; }
.sv-price { display: flex; flex-direction: column; background: var(--ac-card); border: 1px solid var(--ac-border); border-radius: 18px; padding: 22px; box-shadow: var(--sv-shadow); }
.sv-price__name { margin: 0 0 .2em; font-size: 1.25rem; }
.sv-price__amount { margin: 0; font-size: 2rem; font-weight: 700; color: var(--ac-text); }
.sv-price__amount small { display: block; font-size: .85rem; font-weight: 600; color: var(--ac-muted); }
.sv-price__desc { color: var(--ac-muted); margin: .6em 0 .8em; }
.sv-price__delai { font-weight: 600; margin: 0 0 .8em; }
.sv-checklist { list-style: none; padding: 0; margin: 0 0 1.2em; flex: 1; }
.sv-checklist li { position: relative; padding-left: 1.6em; margin-bottom: .45em; }
.sv-checklist li::before { content: '✓'; position: absolute; left: 0; color: var(--ac-success); font-weight: 700; }
.sv-price .sv-btn { width: 100%; }
.sv-conditions { max-width: 46rem; }

/* --- Estimateur ------------------------------------------------------------- */
.sv-steps { display: flex; flex-wrap: wrap; gap: 8px 20px; list-style: none; margin: 0 0 1.4rem; padding: 0; }
.sv-steps li { display: inline-flex; align-items: center; gap: 8px; color: var(--ac-muted); font-weight: 600; }
.sv-steps__n { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border: 2px solid var(--ac-line); border-radius: 50%; font-size: .9rem; }
.sv-steps li[aria-current="step"] { color: var(--ac-text); }
.sv-steps li[aria-current="step"] .sv-steps__n { background: var(--sv-btn-bg); border-color: var(--sv-btn-bg); color: var(--sv-btn-fg); }
.sv-steps li.is-done .sv-steps__n { border-color: var(--ac-success); }
.sv-choices { display: grid; gap: 10px; border: 0; padding: 0; margin: 0; }
.sv-choice { position: relative; }
.sv-choice input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.sv-choice label { display: block; min-height: 44px; padding: 14px 16px 14px 48px; background: var(--ac-card); border: 2px solid var(--ac-border); border-radius: 14px; cursor: pointer; position: relative; }
.sv-choice label::before { content: ''; position: absolute; left: 16px; top: 18px; width: 20px; height: 20px; border: 2px solid var(--ac-line); border-radius: 50%; background: var(--ac-bg2); }
.sv-choice input:checked + label { border-color: var(--ac-accent1); }
.sv-choice input:checked + label::before { background: var(--ac-accent1); box-shadow: inset 0 0 0 4px var(--ac-bg2); }
.sv-choice input:focus-visible + label { outline: 3px solid var(--sv-focus); outline-offset: 2px; }
.sv-estimate { background: var(--ac-card); border: 1px solid var(--ac-accent1); border-radius: 18px; padding: 22px; max-width: 46rem; box-shadow: var(--sv-shadow); }
.sv-estimate__what { margin: 0 0 .4rem; color: var(--ac-muted); }
.sv-estimate__range { margin: 0 0 1rem; font-size: clamp(1.8rem, 6vw, 2.6rem); font-weight: 700; line-height: 1.2; }
.sv-estimate__sub { margin: 1rem 0 .4rem; font-weight: 700; }

/* --- Éditeur de formules (back-office) -------------------------------------- */
.sv-formule { border: 1px solid var(--ac-line); border-radius: 14px; padding: 14px 16px; margin: 0 0 14px; display: grid; gap: 12px; }
.sv-formule legend { padding: 0 8px; font-weight: 700; }
.sv-formule__prix { display: grid; gap: 12px; grid-template-columns: 1fr; }
@media (min-width: 40rem) { .sv-formule__prix { grid-template-columns: 1fr 1fr; } }
.sv-engagement { display: inline-block; margin-top: 1rem; padding: 6px 14px; border: 1px solid var(--ac-line); border-radius: 999px; background: var(--ac-bg2); font-weight: 600; }

/* --- Formulaires ------------------------------------------------------------ */
.sv-form { max-width: 40rem; display: grid; gap: 18px; }
.sv-field { display: grid; gap: 6px; }
.sv-field label, .sv-field legend { font-weight: 700; }
.sv-opt { font-weight: 600; color: var(--ac-muted); }
.sv-hint { margin: 0; font-size: .92rem; color: var(--ac-muted); }
.sv-input, .sv-select, .sv-textarea {
    width: 100%; min-height: 48px; padding: 10px 14px; font: inherit; color: var(--ac-text);
    background: var(--ac-bg2); border: 2px solid var(--ac-line); border-radius: 10px;
}
.sv-textarea { min-height: 9rem; resize: vertical; }   /* redimensionnable */
.sv-input:focus-visible, .sv-select:focus-visible, .sv-textarea:focus-visible { outline: 3px solid var(--sv-focus); outline-offset: 2px; border-color: var(--ac-accent1); }
.sv-field--error .sv-input, .sv-field--error .sv-select, .sv-field--error .sv-textarea { border-color: var(--ac-danger); }
.sv-error { margin: 0; color: var(--ac-danger); font-weight: 700; }
.sv-check { display: flex; align-items: flex-start; gap: 12px; min-height: 44px; }
.sv-check input { width: 24px; height: 24px; margin-top: 10px; flex-shrink: 0; accent-color: var(--ac-accent1); }
.sv-check label { padding: 10px 0; font-weight: 500; }
.sv-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }   /* piège à robots */
.sv-count { text-align: right; font-size: .9rem; color: var(--ac-muted); }

.sv-flash { max-width: 46rem; margin: 1rem 0 0; padding: 12px 16px; border-radius: 12px; border: 1px solid var(--ac-line); background: var(--ac-card); font-weight: 600; }
.sv-flash--error { border-color: var(--ac-danger); }
.sv-flash--ok { border-color: var(--ac-success); }

/* --- Réalisations : avant / après ------------------------------------------ */
.sv-disclaimer { background: var(--ac-card); border: 2px dashed var(--ac-accent1); border-radius: 14px; padding: 14px 18px; max-width: 46rem; font-weight: 600; }
.sv-case { margin-top: 1.4rem; background: var(--ac-card); border: 1px solid var(--ac-border); border-radius: 18px; padding: 18px; }
.sv-case__title { margin: 0 0 .8rem; font-size: 1.15rem; }
.sv-case__cols { display: grid; gap: 12px; grid-template-columns: 1fr; }
@media (min-width: 46rem) { .sv-case__cols { grid-template-columns: 1fr 1fr; } }
.sv-before, .sv-after { border-radius: 12px; padding: 14px 16px; border: 1px solid var(--ac-line); background: var(--ac-bg2); }
.sv-before { border-left: 5px solid var(--ac-danger); }
.sv-after  { border-left: 5px solid var(--ac-success); }
.sv-before h4, .sv-after h4 { margin: 0 0 .4em; font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ac-muted); }
.sv-before p, .sv-after p { margin: 0; }

/* --- Pied de page ----------------------------------------------------------- */
.sv-footer { background: var(--ac-bg2); border-top: 1px solid var(--ac-border); padding: 24px 0; color: var(--ac-muted); font-size: .95rem; }
.sv-footer__inner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; }
.sv-footer__legal { margin: 0; }
.sv-footer__links { display: flex; flex-wrap: wrap; gap: 0 8px; list-style: none; margin: 0; padding: 0; }
.sv-footer__links a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 8px; }

/* --- Back-office ------------------------------------------------------------ */
.sv-admin h1 { font-family: 'Quicksand', sans-serif; font-weight: 700; font-size: 1.6rem; }
.sv-admin__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-top: 1.4rem; }
.sv-filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; margin: 1.2rem 0; }
.sv-filters .sv-field { min-width: 11rem; }
.sv-table-wrap { overflow-x: auto; border: 1px solid var(--ac-border); border-radius: 14px; background: var(--ac-card); }
.sv-table { width: 100%; border-collapse: collapse; min-width: 40rem; }
.sv-table th, .sv-table td { text-align: left; padding: 12px 14px; border-bottom: 1px solid var(--ac-border); vertical-align: top; }
.sv-table th { font-size: .85rem; letter-spacing: .05em; text-transform: uppercase; color: var(--ac-muted); }
.sv-table tr:last-child td { border-bottom: 0; }
.sv-table a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; }
.sv-pager { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 1rem; align-items: center; }
.sv-dl { display: grid; gap: 4px 16px; grid-template-columns: 1fr; margin: 0 0 1.2rem; }
@media (min-width: 40rem) { .sv-dl { grid-template-columns: 11rem 1fr; } }
.sv-dl dt { font-weight: 700; color: var(--ac-muted); }
.sv-dl dd { margin: 0 0 .6em; overflow-wrap: anywhere; }
.sv-panel { background: var(--ac-card); border: 1px solid var(--ac-border); border-radius: 16px; padding: 18px; margin-top: 1.2rem; }
.sv-panel h2 { font-size: 1.2rem; }
.sv-message { white-space: pre-wrap; overflow-wrap: anywhere; background: var(--ac-bg2); border: 1px solid var(--ac-line); border-radius: 10px; padding: 12px 14px; }
.sv-inline { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; }
.sv-login { max-width: 26rem; margin: 3rem auto 0; }

/* --- Boîte de dialogue de confirmation (remplace la boîte native du navigateur) --- */
.sv-dialog { max-width: min(28rem, calc(100vw - 32px)); padding: 24px; background: var(--ac-card); color: var(--ac-text); border: 1px solid var(--ac-line); border-radius: 18px; box-shadow: var(--sv-shadow), var(--sv-glow); font: inherit; }
.sv-dialog::backdrop { background: rgba(10, 6, 20, .72); backdrop-filter: blur(3px); }
.sv-dialog__msg { margin: 0 0 1.4rem; font-size: 1.1rem; font-weight: 600; }
.sv-dialog__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 12px; }

/* --- Préférences utilisateur ------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    * { transition: none !important; animation: none !important; }
}
@media print {
    .sv-header, .sv-footer, .sv-actions { display: none; }
    body { background: #fff; color: #000; }
}
.sv-form--wide { max-width: 52rem; }
