:root{--ink:#24312c;--muted:#64736c;--paper:#f7faf7;--card:#fff;--leaf:#3f7256;--leaf2:#82a58e;--sand:#efe7d5;--danger:#b34040;--shadow:0 18px 50px rgba(26,51,40,.13);--radius:22px}*{box-sizing:border-box}html{min-height:100%;background:#eaf0eb}body{margin:0;min-height:100vh;color:var(--ink);font:16px/1.55 system-ui,-apple-system,Segoe UI,sans-serif;background:radial-gradient(circle at 90% 5%,#dcebdd,transparent 34%),linear-gradient(135deg,#f8fbf8,#edf4ef)}a{color:inherit}.site-header{height:72px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 24px;background:rgba(255,255,255,.88);backdrop-filter:blur(12px);border-bottom:1px solid #dce6df;position:sticky;top:0;z-index:1800}.burger{justify-self:start;border:0;background:#e9f1eb;border-radius:14px;width:44px;height:44px;font-size:24px;cursor:pointer}.brand{font-weight:900;letter-spacing:.12em;text-decoration:none;color:var(--leaf)}#liveClock{justify-self:end;font-weight:650;font-size:.92rem}.drawer{position:fixed;inset:0 auto 0 0;width:min(360px,88vw);padding:86px 22px 30px;background:#fff;z-index:2000;transform:translateX(-105%);transition:.25s;box-shadow:var(--shadow);overflow:auto}.drawer.open{transform:none}.drawer a{display:block;padding:10px 13px;border-radius:10px;text-decoration:none}.drawer a:hover{background:#edf4ef}.drawer hr{border:0;border-top:1px solid #e3eae5;margin:13px 0}.drawer small{display:block;color:var(--muted);padding:7px 13px 3px;font-weight:800}.identity{display:flex;gap:12px;align-items:center;margin-bottom:16px}.avatar{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--leaf);color:white;font-weight:850}.avatar.large{width:82px;height:82px;font-size:2rem}.overlay{position:fixed;inset:0;background:#15241db3;z-index:1900;opacity:0;pointer-events:none;transition:.2s}.overlay.show{opacity:1;pointer-events:auto}.maintenance-banner{background:#7c2d12;color:#fff;text-align:center;padding:9px 15px;font-weight:800}.page{width:min(1180px,calc(100% - 32px));margin:38px auto;min-height:calc(100vh - 240px)}footer{text-align:center;padding:30px 15px 36px;color:var(--muted)}footer a{text-decoration:none}.footer-logo{display:inline-block;margin-top:10px;font-weight:900;letter-spacing:.1em;color:var(--leaf)}.hero,.panel,.maintenance-card{background:rgba(255,255,255,.9);border:1px solid #dfe8e1;border-radius:var(--radius);box-shadow:var(--shadow)}.hero{padding:clamp(28px,6vw,74px);display:grid;grid-template-columns:1.4fr 1fr;gap:30px;align-items:center}.hero h1{font-size:clamp(2.3rem,6vw,5rem);line-height:.95;margin:.18em 0}.eyebrow{text-transform:uppercase;letter-spacing:.16em;color:var(--leaf);font-weight:850}.animal-cloud{font-size:clamp(2.5rem,7vw,6rem);line-height:1.35;text-align:center}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:18px}.grid article,.stats article{background:#fff;border-radius:18px;padding:22px;border:1px solid #dfe8e1}.grid h2{font-size:1.1rem}.panel{padding:clamp(22px,5vw,48px)}.narrow{max-width:600px;margin:auto}label{display:grid;gap:7px;margin:15px 0;font-weight:750}input,textarea,select{width:100%;padding:12px 14px;border:1px solid #bdccc2;border-radius:12px;font:inherit;background:#fff}.btn{border:0;background:var(--leaf);color:white;border-radius:12px;padding:13px 19px;font-weight:800;cursor:pointer}.alert{padding:13px 16px;border-radius:12px;margin-bottom:18px}.alert.error{background:#fde8e8;color:#8e2929}.alert.success{background:#e6f5ea;color:#245e39}.maintenance-card{max-width:850px;margin:10vh auto;text-align:center;padding:clamp(30px,7vw,80px)}.pet-mark{font-size:5rem}.admin-head,.profile-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.status{padding:8px 13px;border-radius:999px;font-weight:800}.status.on{background:#fee2e2;color:#8f2525}.status.off{background:#dcfce7;color:#166534}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:18px 0}.stats article{display:grid;gap:5px}.stats span{color:var(--muted)}.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.hint{color:var(--muted);font-size:.92rem}.switch-row{display:flex;align-items:center}.switch-row input{width:auto}.details{display:grid;grid-template-columns:max-content 1fr;gap:10px 22px}.details dt{font-weight:800}.details dd{margin:0}.rich-text{text-align:left}@media(max-width:900px){.site-header{grid-template-columns:auto 1fr auto;padding:0 13px}.brand{margin-left:14px}.grid{grid-template-columns:1fr 1fr}.hero{grid-template-columns:1fr}.animal-cloud{order:-1}.stats{grid-template-columns:1fr}.two{grid-template-columns:1fr}}@media(max-width:560px){#liveClock{font-size:.72rem}.brand{display:none}.site-header{grid-template-columns:auto 1fr}.grid{grid-template-columns:1fr}.page{width:min(100% - 18px,1180px);margin-top:18px}.details{grid-template-columns:1fr}.admin-head{align-items:flex-start;flex-direction:column}}

/* Version 01.05 — profils, avatars et rôles */
.profile-identity,
.user-card-main {
    display: flex;
    align-items: center;
    gap: 16px;
}

.avatar-image {
    object-fit: cover;
    display: block;
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 18px;
}

.form-grid .span-2 {
    grid-column: 1 / -1;
}

.form-grid small {
    color: var(--muted);
    font-weight: 500;
}

.actions-row {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 18px;
}

.btn.secondary {
    background: #e8efea;
    color: var(--ink);
}

.section-separator {
    border: 0;
    border-top: 1px solid #dfe8e1;
    margin: 30px 0;
}

.user-list {
    display: grid;
    gap: 16px;
}

.user-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 24px;
    padding: 20px;
    background: #fff;
    border: 1px solid #dfe8e1;
    border-radius: 18px;
}

.user-card-main > div {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.user-card-main span,
.user-card-main small {
    color: var(--muted);
    overflow-wrap: anywhere;
}

.role-form {
    display: flex;
    align-items: end;
    gap: 10px;
}

.role-form label {
    margin: 0;
    min-width: 180px;
}

.quick-links {
    margin-bottom: 18px;
}

.quick-link-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.quick-link {
    display: grid;
    gap: 4px;
    padding: 18px;
    border: 1px solid #dfe8e1;
    border-radius: 14px;
    text-decoration: none;
    background: #f8fbf8;
}

.quick-link:hover {
    background: #edf4ef;
}

.quick-link span {
    color: var(--muted);
}

@media (max-width: 760px) {
    .form-grid,
    .quick-link-grid {
        grid-template-columns: 1fr;
    }

    .form-grid .span-2 {
        grid-column: auto;
    }

    .user-card {
        grid-template-columns: 1fr;
    }

    .role-form {
        align-items: stretch;
        flex-direction: column;
    }

    .role-form label {
        min-width: 0;
    }
}

/* Version 01.06 — inscriptions et validation */
.registration-panel {
    margin-top: 18px;
}

.honeypot {
    position: absolute;
    left: -10000px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.consent-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-weight: 600;
}

.consent-row input {
    width: auto;
    margin-top: 5px;
}

.center-content,
.empty-state {
    text-align: center;
}

.success-mark {
    display: inline-grid;
    place-items: center;
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: #dcfce7;
    color: #166534;
    font-size: 2rem;
    font-weight: 900;
}

.inline-button {
    display: inline-block;
    text-decoration: none;
}

.validation-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.validation-actions form {
    margin: 0;
}

.btn.danger {
    background: var(--danger);
}

.confirm-dialog {
    width: min(460px, calc(100% - 32px));
    border: 0;
    border-radius: 18px;
    padding: 0;
    box-shadow: var(--shadow);
    color: var(--ink);
}

.confirm-dialog::backdrop {
    background: rgba(21, 36, 29, .72);
    backdrop-filter: blur(3px);
}

.confirm-dialog form {
    padding: 26px;
}

.confirm-dialog strong {
    display: block;
    font-size: 1.25rem;
}

.dialog-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 22px;
}

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

    .validation-actions .btn {
        width: 100%;
    }
}

.auth-secondary-link {
    margin-top: 22px;
    text-align: center;
}


/* Version 01.07 — gestion complète des comptes */
.account-detail {
    display: grid;
    gap: 22px;
}

.account-identity {
    display: flex;
    align-items: center;
    gap: 18px;
}

.account-identity h2,
.account-identity p {
    margin: 0;
}

.avatar-large {
    width: 82px;
    height: 82px;
    font-size: 2rem;
}

.detail-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 0;
}

.detail-grid > div {
    padding: 14px;
    border: 1px solid #dfe8e1;
    border-radius: 12px;
    background: #f8fbf8;
}

.detail-grid .span-2 {
    grid-column: span 2;
}

.detail-grid dt {
    color: var(--muted);
    font-size: .9rem;
}

.detail-grid dd {
    margin: 4px 0 0;
    overflow-wrap: anywhere;
    font-weight: 700;
}

.management-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.management-grid form {
    padding: 18px;
    border: 1px solid #dfe8e1;
    border-radius: 14px;
}

@media (max-width: 760px) {
    .detail-grid,
    .management-grid {
        grid-template-columns: 1fr;
    }

    .detail-grid .span-2 {
        grid-column: auto;
    }

    .account-identity {
        align-items: flex-start;
    }
}


/* Version 01.09 — motif facultatif de blocage */
.confirm-dialog label[hidden]{display:none}
.confirm-dialog textarea{width:100%;margin-top:.45rem;resize:vertical}
.confirm-dialog .optional{font-weight:400;color:var(--muted,#667085)}
.confirm-dialog label small{display:block;margin-top:.35rem;color:var(--muted,#667085)}


/* Version 01.09 — sécurité des mots de passe */
.security-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 18px;
    border: 1px solid #dfe8e1;
    border-radius: 14px;
    background: #f8fbf8;
}
.security-card p { margin: 5px 0 0; }
@media (max-width: 620px) {
    .security-card { align-items: stretch; flex-direction: column; }
    .security-card .btn { width: 100%; text-align: center; }
}

/* Version 01.11 — socle des annonces */
.section-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 24px;
}
.section-heading h1,
.section-heading p { margin-bottom: 0; }
.announcement-empty {
    padding: 34px 16px;
    border: 1px dashed #b9cbbf;
    border-radius: 16px;
    background: #f8fbf8;
}
.announcement-list { display: grid; gap: 16px; }
.announcement-card {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 20px;
    border: 1px solid #dfe8e1;
    border-radius: 16px;
    background: #fff;
}
.announcement-card h2 { margin: 8px 0; font-size: 1.2rem; }
.announcement-card p { margin: 8px 0; }
.announcement-card small { color: var(--muted); }
.announcement-badges { display: flex; flex-wrap: wrap; gap: 8px; }
.status-badge,
.type-badge {
    display: inline-flex;
    align-items: center;
    padding: 5px 9px;
    border-radius: 999px;
    font-size: .82rem;
    font-weight: 800;
}
.status-badge { background: #fff4cc; color: #725b00; }
.type-badge { background: #e7f2ea; color: #315b42; }
.announcement-meta { color: var(--muted); font-weight: 700; }
.announcement-actions {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    flex-shrink: 0;
}
.announcement-actions form { margin: 0; }
select {
    width: 100%;
    padding: 11px;
    border: 1px solid #b9cbbf;
    border-radius: 10px;
    background: #fff;
    color: inherit;
    font: inherit;
}
@media (max-width: 760px) {
    .section-heading,
    .announcement-card,
    .announcement-actions {
        align-items: stretch;
        flex-direction: column;
    }
    .section-heading .btn,
    .announcement-actions .btn { width: 100%; text-align: center; }
}

/* Version 01.12 — photos des annonces */
.photo-upload-panel {
    padding: 18px;
    border: 1px solid #dfe8e1;
    border-radius: 16px;
    background: #f8fbf8;
}
.photo-upload-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}
.photo-upload-heading p { margin: 6px 0 0; color: var(--muted); }
.photo-counter {
    flex: 0 0 auto;
    padding: 6px 10px;
    border-radius: 999px;
    background: #e7f2ea;
    color: #315b42;
    font-weight: 800;
}
.announcement-photo-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 18px 0;
}
.announcement-photo-item {
    margin: 0;
    overflow: hidden;
    border: 1px solid #dfe8e1;
    border-radius: 14px;
    background: #fff;
}
.announcement-photo-item img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}
.announcement-photo-item figcaption { padding: 10px; }
.photo-delete-option {
    display: flex;
    grid-template-columns: none;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: .9rem;
    font-weight: 700;
}
.photo-delete-option input { width: auto; }
.photo-file-label { margin-top: 16px; }
.photo-file-label small,
.photo-limit-message { display: block; margin-top: 7px; color: var(--muted); }
.announcement-cover {
    width: 120px;
    height: 90px;
    object-fit: cover;
    border-radius: 12px;
    border: 1px solid #dfe8e1;
}
@media (max-width: 760px) {
    .announcement-photo-grid { grid-template-columns: 1fr; }
    .photo-upload-heading { flex-direction: column; }
}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin:1.25rem 0}.photo-grid img{width:100%;height:280px;object-fit:contain;background:#f2f2f2;border-radius:14px}.rich-content{line-height:1.65;margin:1.25rem 0}.alert.compact{margin:.75rem 0;padding:.75rem}.public-announcement{max-width:1000px;margin-inline:auto}


/* Version 01.15 — consultation et recherche publiques */
.home-actions{display:flex;justify-content:center;margin:20px 0}.home-actions .btn{text-decoration:none}.public-search-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 16px}.public-search-form .span-2{grid-column:span 2}.announcement-public-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:18px}.announcement-public-card{overflow:hidden;background:#fff;border:1px solid #dfe8e1;border-radius:18px;box-shadow:0 10px 30px rgba(26,51,40,.08)}.announcement-photo-link{display:block;aspect-ratio:4/3;background:#edf4ef;text-decoration:none}.announcement-photo-link img{width:100%;height:100%;object-fit:cover;display:block}.announcement-photo-placeholder{display:grid;place-items:center;width:100%;height:100%;font-size:4rem}.announcement-card-body{padding:18px}.announcement-card-body h2{font-size:1.18rem;line-height:1.25;margin:.45rem 0}.announcement-card-body h2 a{text-decoration:none}.announcement-type{display:inline-block;padding:5px 9px;border-radius:999px;background:#e8f2eb;color:#28553c;font-size:.82rem;font-weight:850}.announcement-location,.announcement-date{color:var(--muted);margin:.35rem 0}.announcement-open{display:inline-block;text-decoration:none;margin-top:10px}.pagination{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:28px 0}.pagination a{display:grid;place-items:center;min-width:42px;height:42px;border-radius:10px;background:#fff;border:1px solid #dfe8e1;text-decoration:none;font-weight:800}.pagination a.current{background:var(--leaf);color:#fff}.public-empty{margin-top:18px}@media(max-width:900px){.public-search-form{grid-template-columns:repeat(2,minmax(0,1fr))}.announcement-public-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.public-search-form,.announcement-public-grid{grid-template-columns:1fr}.public-search-form .span-2{grid-column:auto}}


/* Version 01.16 — carte interactive et chronologie */
.map-location-panel{padding:18px;border:1px solid #dfe8e1;border-radius:16px;background:#f8fbf8}.map-location-panel p{margin:.4rem 0;color:var(--muted)}.map-coordinate-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:14px 0}.map-consent{padding:24px;border:1px dashed #9eb6a5;border-radius:16px;background:#f5faf6;text-align:center}.announcement-map{height:min(68vh,650px);min-height:420px;border-radius:18px;overflow:hidden;border:1px solid #dfe8e1;margin:18px 0}.map-list{margin-top:24px}.map-list article{display:grid;grid-template-columns:auto minmax(180px,1fr) minmax(140px,.6fr) auto;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #e2eae4}.announcement-timeline{margin:28px 0;padding:22px;border-radius:18px;background:#f7faf8}.announcement-timeline ol{list-style:none;margin:0;padding:0}.announcement-timeline li{position:relative;display:grid;grid-template-columns:145px 1fr;gap:22px;padding:0 0 24px 24px;border-left:3px solid #bdd1c2}.announcement-timeline li:last-child{padding-bottom:0}.announcement-timeline li::before{content:"";position:absolute;left:-8px;top:4px;width:13px;height:13px;border-radius:50%;background:var(--leaf);box-shadow:0 0 0 4px #e4efe7}.announcement-timeline time{font-weight:800;color:var(--muted)}.announcement-timeline p{margin:.2rem 0 0}@media(max-width:700px){.map-coordinate-grid{grid-template-columns:1fr}.map-list article{grid-template-columns:1fr}.announcement-timeline li{grid-template-columns:1fr;gap:4px}.announcement-map{min-height:360px}}

/* Version 01.18 — gestion et autocomplétion */
.address-assistant{padding:18px;border:1px solid #dfe8e1;border-radius:16px;background:#f8fbf8;position:relative}.address-assistant p{color:var(--muted)}.address-suggestions{position:relative;z-index:20;background:#fff;border:1px solid #cfdcd2;border-radius:12px;box-shadow:0 14px 30px rgba(26,51,40,.14);overflow:hidden;margin-top:-8px}.address-suggestions:empty{display:none}.address-suggestion{display:block;width:100%;padding:12px 14px;border:0;border-bottom:1px solid #e7eee9;background:#fff;text-align:left;cursor:pointer}.address-suggestion:hover,.address-suggestion:focus{background:#eef6f0}

/* 0119 : le menu latéral et son voile doivent toujours recouvrir Leaflet. */
.public-map-shell,.public-map,.leaflet-container{position:relative;z-index:1}.leaflet-control{z-index:400}.drawer{z-index:2000}.overlay{z-index:1900}.site-header{z-index:1800}


/* Version 01.21 - avis PDF et impression */
.public-announcement-actions{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0}
@media print{
  .site-header,.side-menu,.menu-overlay,.public-announcement-actions,.flash-message,footer{display:none!important}
  body{background:#fff!important}.container,.panel{max-width:none!important;width:100%!important;margin:0!important;padding:0!important;box-shadow:none!important;border:0!important}
  .photo-grid img{max-height:250px;object-fit:contain}.announcement-timeline{break-inside:avoid}
}


/* 0125 — personnalisation des avis PDF */
.pdf-options-form fieldset{border:1px solid var(--border,#d8e2db);border-radius:14px;padding:1rem;margin:0 0 1rem}.pdf-options-form legend{font-weight:800;padding:0 .4rem}.pdf-options-form fieldset>label{display:block;margin:.65rem 0}.pdf-photo-choice{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.pdf-photo-choice label{display:flex;flex-direction:column;gap:.45rem;border:2px solid transparent;border-radius:14px;padding:.65rem;background:#f4f7f5;cursor:pointer}.pdf-photo-choice label:has(input:checked){border-color:#315c43;background:#edf5ef}.pdf-photo-choice img{width:100%;height:150px;object-fit:contain;background:#fff;border-radius:10px}.pdf-photo-choice input{align-self:flex-start}.form-help{font-size:.9rem;color:#53645a}

/* 0132 — signalements confidentiels */
.sighting-list{display:grid;gap:1rem}.sighting-card{border:1px solid #d7e2da;border-radius:16px;padding:1rem;background:#fff}.sighting-card.is-new{border-left:6px solid #d9ad25;background:#fffdf4}.sighting-card h2{margin:0;font-size:1.1rem}.narrow-panel{max-width:780px;margin-inline:auto}


/* Version 01.33 — présentation de la page Mes annonces */
/* Correctif 0175-1 : emplacement visuel constant, même lorsqu’une annonce ne possède pas encore de photo. */
.announcement-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(240px, 320px);
    align-items: start;
    gap: 24px;
}
.announcement-summary {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr);
    align-items: start;
    gap: 18px;
    min-width: 0;
}
.announcement-card-main {
    min-width: 0;
}
.announcement-card-main h2 {
    overflow-wrap: anywhere;
}
.announcement-card-main > p:not(.announcement-meta) {
    max-width: 72ch;
    color: #3e4d46;
}
.announcement-cover {
    width: 110px;
    height: 110px;
    object-fit: cover;
    border-radius: 14px;
    background: #edf4ef;
}
.announcement-cover-placeholder {
    display: grid;
    place-items: center;
    flex: none;
    color: #356348;
    font-size: 2.35rem;
    line-height: 1;
}
.announcement-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: 10px;
    padding-left: 24px;
    border-left: 1px solid #e1e9e3;
}
.announcement-actions .btn,
.announcement-actions form,
.announcement-actions form .btn {
    width: 100%;
}
.announcement-actions .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 10px 13px;
    text-align: center;
    text-decoration: none;
    line-height: 1.25;
}
@media (max-width: 1050px) {
    .announcement-card {
        grid-template-columns: minmax(0, 1fr);
    }
    .announcement-actions {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        padding: 18px 0 0;
        border-left: 0;
        border-top: 1px solid #e1e9e3;
    }
}
@media (max-width: 720px) {
    .announcement-summary {
        grid-template-columns: 82px minmax(0, 1fr);
        gap: 14px;
    }
    .announcement-cover {
        width: 82px;
        height: 82px;
    }
    .announcement-actions {
        grid-template-columns: 1fr 1fr;
    }
}
@media (max-width: 480px) {
    .announcement-card {
        padding: 16px;
    }
    .announcement-summary {
        grid-template-columns: 1fr;
    }
    .announcement-cover {
        width: 100%;
        height: 210px;
    }
    .announcement-actions {
        grid-template-columns: 1fr;
    }
}

/* 01.34 — boîte de réception des signalements */
.nav-badge{display:inline-flex;min-width:1.45rem;height:1.45rem;align-items:center;justify-content:center;margin-left:.35rem;padding:0 .35rem;border-radius:999px;background:#c43d3d;color:#fff;font-size:.78rem;font-weight:800;vertical-align:middle}
.sighting-filters{display:flex;flex-wrap:wrap;gap:.55rem;margin:1.25rem 0}
.sighting-filters a{display:inline-flex;padding:.65rem .9rem;border:1px solid #cddbd3;border-radius:999px;background:#f5f8f6;text-decoration:none;font-weight:700;color:#183a2b}
.sighting-filters a.is-active{background:#315f49;color:#fff;border-color:#315f49}
.sighting-actions{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-top:1rem}
.sighting-actions form{margin:0}
.sighting-card .status-pill{display:inline-flex;width:max-content;margin-bottom:.35rem;padding:.25rem .55rem;border-radius:999px;background:#e8efeb;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.sighting-card .status-pill.new{background:#fff1b8;color:#6e5200}
.sighting-card .status-pill.archived{background:#e8e8e8;color:#555}
.sighting-card.is-new{border-left:5px solid #e8b51b}
@media(max-width:680px){.sighting-actions .btn,.sighting-actions form{width:100%}.sighting-actions form .btn{width:100%}.sighting-filters a{flex:1 1 auto;justify-content:center}}
.inline-form{display:inline;margin:0}.favorite-card-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:12px}.favorite-card-actions form{margin:0}.favorites-grid{margin-top:18px}

/* Version 01.41 — partage des annonces */
.announcement-share {
    margin: 1.25rem 0;
    padding: 1rem;
    border: 1px solid var(--border, #d8dfdc);
    border-radius: 0.85rem;
    background: #f7faf8;
}

.announcement-share h2 {
    margin: 0 0 0.35rem;
    font-size: 1.15rem;
}

.announcement-share p {
    margin: 0 0 0.8rem;
}

.announcement-share-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.share-feedback {
    margin: 0.8rem 0 0 !important;
    font-weight: 700;
}

.error-text {
    color: #9f2020;
}

@media print {
    .announcement-share {
        display: none !important;
    }
}

.announcement-update-list{display:grid;gap:1rem}.announcement-update-card{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1rem;border:1px solid var(--border,#d8e0dc);border-radius:14px;background:#fff}.announcement-update-card h3{margin:.25rem 0}.announcement-update-card time{font-weight:700;color:#356a52}.announcement-update-card p{margin:.4rem 0 0;white-space:normal}@media(max-width:700px){.announcement-update-card{flex-direction:column}.announcement-update-card form,.announcement-update-card button{width:100%}}

/* Notifications 01.47 */
.notification-list{display:grid;gap:14px}.notification-card{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px;border:1px solid #d8e3dc;border-radius:18px;background:#fff}.notification-card.unread{border-left:6px solid #3f7256;background:#f7fbf8}.notification-card h2{font-size:1.08rem;margin:.35rem 0}.notification-card p{margin:0;color:#536158}.notification-meta{display:flex;align-items:center;gap:10px;color:#66736b;font-size:.9rem}.notification-card form{flex:0 0 auto}@media(max-width:760px){.notification-card{align-items:stretch;flex-direction:column}.notification-card form,.notification-card .btn{width:100%}}

.search-alert-save-form{margin-top:1rem;display:flex;justify-content:flex-end}.notification-item{display:flex;gap:1rem;align-items:center;justify-content:space-between}.notification-item form{flex:0 0 auto}@media(max-width:700px){.notification-item{align-items:flex-start;flex-direction:column}.search-alert-save-form{justify-content:stretch}.search-alert-save-form .btn{width:100%}}

.sighting-position-box{padding:1rem;border:1px solid var(--border,#d8dfd8);border-radius:12px;background:#f7faf7}.sighting-history-map{height:420px;margin:1rem 0;border-radius:16px;overflow:hidden;border:1px solid #d8dfd8}.validated-sightings{margin-top:2rem}.validated-sighting-list{display:grid;gap:1rem;padding-left:1.4rem}.validated-sighting-list li{padding-left:.4rem}.validated-sighting-list p{margin:.35rem 0}.sighting-actions{display:flex;gap:.5rem;flex-wrap:wrap}

/* Version 01.51 — charte graphique unifiée des boutons */
:root{
  --action:#176b46;
  --action-hover:#105638;
  --action-soft:#eef7f2;
  --action-border:#8fb9a4;
  --danger:#c93d32;
  --danger-hover:#a92d25;
  --danger-soft:#fff4f2;
  --warning:#b36a00;
  --focus-ring:0 0 0 4px rgba(23,107,70,.18);
}

.btn,
a.btn,
button.btn,
input.btn[type="submit"],
input.btn[type="button"]{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  min-height:44px;
  max-width:100%;
  padding:.72rem 1.05rem;
  border:1px solid var(--action);
  border-radius:10px;
  background:var(--action);
  color:#fff;
  font:inherit;
  font-weight:800;
  line-height:1.2;
  text-align:center;
  text-decoration:none;
  white-space:normal;
  box-shadow:0 5px 12px rgba(23,107,70,.12);
  cursor:pointer;
  transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease;
  -webkit-appearance:none;
  appearance:none;
}

.btn:hover,
a.btn:hover,
button.btn:hover{
  background:var(--action-hover);
  border-color:var(--action-hover);
  color:#fff;
  box-shadow:0 7px 16px rgba(23,107,70,.18);
  transform:translateY(-1px);
}

.btn:active{transform:translateY(0);box-shadow:0 2px 7px rgba(23,107,70,.14)}
.btn:focus-visible{outline:0;box-shadow:var(--focus-ring)}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}

.btn.secondary,
a.btn.secondary,
button.btn.secondary{
  background:#fff;
  border-color:var(--action-border);
  color:var(--action-hover);
  box-shadow:0 3px 9px rgba(27,73,51,.07);
}
.btn.secondary:hover,
a.btn.secondary:hover,
button.btn.secondary:hover{
  background:var(--action-soft);
  border-color:var(--action);
  color:var(--action-hover);
}

.btn.danger,
a.btn.danger,
button.btn.danger{
  background:var(--danger-soft);
  border-color:#ed8b83;
  color:var(--danger);
  box-shadow:0 3px 9px rgba(201,61,50,.08);
}
.btn.danger:hover,
a.btn.danger:hover,
button.btn.danger:hover{
  background:var(--danger);
  border-color:var(--danger);
  color:#fff;
  box-shadow:0 7px 16px rgba(201,61,50,.18);
}
.btn.danger:focus-visible{box-shadow:0 0 0 4px rgba(201,61,50,.18)}

/* Les anciennes actions destructives non marquées explicitement gardent la charte rouge. */
form[action*="supprimer"] .btn:not(.secondary),
form[action*="delete"] .btn:not(.secondary),
form[data-confirm*="Supprimer"] .btn:not(.secondary){
  background:var(--danger-soft);
  border-color:#ed8b83;
  color:var(--danger);
  box-shadow:0 3px 9px rgba(201,61,50,.08);
}
form[action*="supprimer"] .btn:not(.secondary):hover,
form[action*="delete"] .btn:not(.secondary):hover,
form[data-confirm*="Supprimer"] .btn:not(.secondary):hover{
  background:var(--danger);
  border-color:var(--danger);
  color:#fff;
}

.button-row,
.actions-row,
.announcement-actions,
.favorite-card-actions,
.announcement-share-actions,
.sighting-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.7rem;
}
.button-row form,
.actions-row form,
.announcement-actions form,
.favorite-card-actions form,
.announcement-share-actions form,
.sighting-actions form{margin:0}

.section-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1.25rem;
  margin-bottom:1.5rem;
}
.section-heading>.button-row{
  flex:0 1 auto;
  justify-content:flex-end;
  max-width:52%;
}
.section-heading>.button-row .btn{flex:0 1 auto}

/* Boutons compacts dans les listes, tableaux et cartes. */
.table-actions .btn,
.card-actions .btn,
.announcement-actions .btn,
.favorite-card-actions .btn,
.sighting-actions .btn{
  min-height:38px;
  padding:.55rem .8rem;
  border-radius:9px;
  font-size:.92rem;
}

/* Pastilles d'état harmonisées avec la nouvelle interface. */
.status,.status-pill,.badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  max-width:100%;
  border-radius:999px;
  font-weight:800;
}

@media(max-width:760px){
  .section-heading{flex-direction:column;align-items:stretch}
  .section-heading>.button-row{max-width:none;justify-content:stretch}
  .section-heading>.button-row .btn,
  .section-heading>.button-row form{flex:1 1 100%;width:100%}
  .section-heading>.button-row form .btn{width:100%}
  .button-row>.btn,.button-row>form,
  .actions-row>.btn,.actions-row>form{flex:1 1 100%}
  .button-row>form .btn,.actions-row>form .btn{width:100%}
}

@media(prefers-reduced-motion:reduce){
  .btn{transition:none}
  .btn:hover{transform:none}
}

/* 0152 — Tableau de bord membre */
.member-dashboard{display:grid;gap:1.25rem}.dashboard-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.6rem;border:1px solid #dce8e1;border-radius:22px;background:linear-gradient(135deg,#fff,#f2f8f4)}.dashboard-hero h1{margin:.15rem 0 .45rem}.dashboard-hero p{margin:0}.eyebrow{font-size:.77rem;font-weight:800;letter-spacing:.16em;color:#22724d;margin:0 0 .35rem}.dashboard-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.8rem}.dashboard-stat{display:grid;gap:.2rem;padding:1rem;border:1px solid #dce8e1;border-radius:16px;background:#fff;text-decoration:none;color:inherit;box-shadow:0 6px 20px rgba(25,75,51,.05)}.dashboard-stat strong{font-size:1.65rem;color:#176843}.dashboard-stat span{font-size:.9rem}.dashboard-stat.has-attention{border-color:#75b995;background:#f0faf4}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.dashboard-panel{padding:1.2rem;border:1px solid #dce8e1;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(25,75,51,.05)}.dashboard-panel-wide{grid-column:1/-1}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.panel-heading h2{font-size:1.2rem;margin:0}.panel-heading>a:not(.btn){font-weight:700;color:#176843}.status-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.status-chips span{padding:.4rem .65rem;border-radius:999px;background:#f2f6f3;font-size:.82rem}.dashboard-list{display:grid;gap:.65rem}.dashboard-list article{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem;border:1px solid #e3ebe6;border-radius:13px}.dashboard-list article>div:first-child{display:grid;gap:.25rem}.dashboard-list small{color:#5d6e64}.dashboard-row-actions{display:flex;align-items:center;gap:.55rem}.status-pill{padding:.3rem .55rem;border-radius:999px;font-size:.75rem;font-weight:800;background:#eef2ef}.status-published{background:#dcf5df;color:#17652e}.status-pending{background:#fff0d9;color:#8b5400}.status-rejected{background:#ffe5e1;color:#9a2920}.status-draft,.status-closed{background:#edf0ee;color:#54615a}.dashboard-empty{text-align:center;padding:2.3rem 1rem;background:#f8faf9;border-radius:14px}.dashboard-empty.compact{padding:1.4rem}.dashboard-empty p{margin:.35rem 0 0}.compact-list article.is-unread{border-left:4px solid #20875a;background:#f5fbf7}.btn.small{min-height:auto;padding:.45rem .7rem;font-size:.82rem}@media(max-width:900px){.dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}}@media(max-width:620px){.dashboard-hero,.panel-heading,.dashboard-list article{align-items:stretch;flex-direction:column}.dashboard-stats{grid-template-columns:1fr 1fr}.dashboard-row-actions{justify-content:space-between}.dashboard-hero .btn{width:100%}}

/* NAM49 01.53 — tableaux de bord équipe */
.staff-dashboard .dashboard-hero{align-items:center}
.staff-dashboard .dashboard-stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.staff-dashboard .dashboard-panel-wide{grid-column:1/-1}
.admin-dashboard .admin-stats{grid-template-columns:repeat(auto-fit,minmax(155px,1fr))}
.staff-dashboard .dashboard-list article{gap:1rem}
.staff-dashboard .dashboard-list small{display:block;margin-top:.3rem;line-height:1.45}
.staff-dashboard .status{white-space:nowrap}
@media(max-width:760px){
 .staff-dashboard .dashboard-hero{align-items:stretch}
 .staff-dashboard .dashboard-hero>.btn,.staff-dashboard .dashboard-hero>.status{align-self:flex-start}
 .staff-dashboard .dashboard-row-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}
 .staff-dashboard .dashboard-list article{align-items:flex-start;flex-direction:column}
 .staff-dashboard .dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:460px){.staff-dashboard .dashboard-stats{grid-template-columns:1fr}}


/* Version 01.54 — confirmations et erreurs sous forme de fenêtre modale */
.feedback-dialog form{text-align:center;padding:30px}.feedback-dialog p{margin:12px 0 0;white-space:pre-line}.feedback-dialog .dialog-actions{justify-content:center}.feedback-icon{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 16px;border-radius:50%;font-size:1.8rem;font-weight:900;background:#e6f5ea;color:#245e39}.feedback-dialog.is-error .feedback-icon{background:#fde8e8;color:#8e2929}.feedback-dialog.is-success .btn{min-width:120px}.feedback-dialog.is-error .btn{min-width:120px}@media(max-width:560px){.feedback-dialog form{padding:24px 20px}.feedback-dialog .dialog-actions{flex-direction:column}.feedback-dialog .dialog-actions .btn{width:100%}}

/* Version 01.55 — actions compactes des fiches publiques */
.announcement-action-zone{
  display:grid;
  gap:1rem;
  margin:1.5rem 0;
  padding:1rem;
  border:1px solid #dbe6df;
  border-radius:18px;
  background:#f8fbf9;
}
.announcement-primary-actions,
.announcement-utility-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.65rem;
}
.announcement-primary-actions .btn{min-height:46px}
.action-with-icon{display:inline-flex;align-items:center;gap:.55rem}
.action-icon{font-size:1.05rem;line-height:1}
.announcement-utility-actions{padding-top:.9rem;border-top:1px solid #e1e9e4}
.icon-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  min-height:42px;
  padding:.6rem .8rem;
  border:1px solid var(--action-border,#8fb9a4);
  border-radius:12px;
  background:#fff;
  color:var(--action,#176b46);
  font:inherit;
  font-weight:800;
  text-decoration:none;
  cursor:pointer;
  transition:background .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease;
}
.icon-action:hover{background:var(--action-soft,#eef7f2);border-color:var(--action,#176b46);transform:translateY(-1px)}
.icon-action:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.icon-action.is-active{background:var(--action-soft,#eef7f2);border-color:var(--action,#176b46)}
.share-menu{position:relative;margin:0;padding:0;border:0;background:transparent}
.share-menu>summary{list-style:none}
.share-menu>summary::-webkit-details-marker{display:none}
.share-menu[open]>summary{background:var(--action-soft,#eef7f2);border-color:var(--action,#176b46)}
.share-menu-panel{
  position:absolute;
  z-index:30;
  right:0;
  top:calc(100% + .55rem);
  display:grid;
  min-width:260px;
  padding:.75rem;
  border:1px solid #d4e0d9;
  border-radius:14px;
  background:#fff;
  box-shadow:0 14px 34px rgba(18,51,34,.16);
}
.share-menu-panel strong{padding:.4rem .55rem .65rem}
.share-menu-panel a,.share-menu-panel button{
  display:flex;
  align-items:center;
  gap:.65rem;
  width:100%;
  padding:.7rem .65rem;
  border:0;
  border-radius:9px;
  background:transparent;
  color:#153d2b;
  font:inherit;
  font-weight:700;
  text-align:left;
  text-decoration:none;
  cursor:pointer;
}
.share-menu-panel a:hover,.share-menu-panel button:hover{background:#eef7f2}
.share-menu-panel .share-feedback{padding:.55rem;margin:.25rem 0 0!important;font-size:.9rem}
@media(max-width:680px){
  .announcement-primary-actions{display:grid;grid-template-columns:1fr}
  .announcement-primary-actions .btn{width:100%}
  .announcement-utility-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .announcement-utility-actions .inline-form,.announcement-utility-actions .icon-action,.announcement-utility-actions .share-menu{width:100%}
  .announcement-utility-actions .inline-form .icon-action{width:100%}
  .share-menu-panel{position:fixed;left:1rem;right:1rem;top:auto;bottom:1rem;min-width:0;max-height:70vh;overflow:auto}
}
@media(max-width:390px){.icon-action-label{font-size:.88rem}}
@media print{.announcement-action-zone{display:none!important}}

/* 0157 — historique des annonces consultées */
.history-list{display:grid;gap:14px;margin-top:24px}.history-item{display:grid;grid-template-columns:88px minmax(0,1fr) auto;align-items:center;gap:16px;padding:14px;border:1px solid #d9e5df;border-radius:16px;background:#fff}.history-item img,.history-placeholder{width:88px;height:88px;border-radius:13px;object-fit:cover}.history-placeholder{display:grid;place-items:center;background:#eef5f1;font-size:32px}.history-content{display:grid;gap:5px;min-width:0}.history-content strong{font-size:1.05rem}.history-content span,.history-content small{color:#52645c}.history-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.history-actions form{margin:0}.page-heading-actions{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap}
@media(max-width:720px){.history-item{grid-template-columns:64px minmax(0,1fr)}.history-item img,.history-placeholder{width:64px;height:64px}.history-actions{grid-column:1/-1}.history-actions .btn,.history-actions form{flex:1}.history-actions form .btn{width:100%}}

/* 0158 — fiches privées « Mes animaux » */
.animal-prefill-panel{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1rem 0 1.35rem;padding:1rem 1.1rem;border:1px solid #cfe2d7;border-radius:14px;background:#f5faf7}.animal-prefill-panel p{margin:.25rem 0 0;color:#52635b}.animal-prefill-form{display:flex;align-items:center;gap:.65rem;min-width:min(100%,420px)}.animal-prefill-form select{min-width:230px}.announcement-card .actions-row form{margin:0}@media(max-width:760px){.animal-prefill-panel{align-items:stretch;flex-direction:column}.animal-prefill-form{min-width:0;flex-direction:column;align-items:stretch}.animal-prefill-form select,.animal-prefill-form .btn{width:100%}}


/* 0159 — Photos principales des fiches « Mes animaux » */
.animal-profile-card{display:grid;grid-template-columns:112px minmax(0,1fr);gap:1rem;align-items:center}.animal-profile-thumb{width:112px;height:112px;object-fit:cover;border-radius:18px;border:1px solid var(--border,#d7e4dc);background:#f3f8f5}.animal-profile-placeholder{display:grid;place-items:center;font-size:2.25rem}.animal-photo-field{display:flex;gap:1rem;align-items:flex-start}.animal-photo-field>label{flex:1}.animal-photo-preview{display:flex;gap:.75rem;align-items:center;padding:.65rem;border:1px solid var(--border,#d7e4dc);border-radius:14px;background:#f8fbf9}.animal-photo-preview img{width:88px;height:88px;object-fit:cover;border-radius:12px}.animal-photo-preview .check-row{margin:0;display:flex;gap:.45rem;align-items:center}@media(max-width:680px){.animal-profile-card{grid-template-columns:76px minmax(0,1fr)}.animal-profile-thumb{width:76px;height:76px;border-radius:14px}.animal-photo-field{display:block}.animal-photo-preview{margin-top:.75rem}}


/* Version 01.61 — protection visuelle des images */
img[draggable="false"]{-webkit-user-drag:none;user-select:none;-webkit-user-select:none}
.image-protection-dialog .feedback-icon{background:#eaf3ee;color:#245e39;text-transform:lowercase}
.image-protection-dialog .btn{min-width:120px}

/* 0162 — fiche privée d'identification d'un animal */
.animal-identity-sheet{max-width:980px;margin-inline:auto}.privacy-notice{margin:1rem 0 1.5rem;padding:1rem 1.1rem;border:1px solid #d7b46a;border-radius:14px;background:#fff8e8}.privacy-notice p{margin:.25rem 0 0}.identity-sheet-header{display:flex;justify-content:space-between;gap:2rem;align-items:flex-start;padding:1.4rem;border:2px solid var(--primary,#277a55);border-radius:18px;background:#f7fbf8}.identity-sheet-header h2{margin:.25rem 0}.identity-sheet-header p{margin:0}.identity-sheet-brand{font-weight:800;color:var(--primary,#277a55)}.identity-sheet-date{white-space:nowrap;font-size:.9rem}.identity-sheet-main{display:grid;grid-template-columns:280px 1fr;gap:2rem;align-items:start;margin:1.5rem 0}.identity-sheet-photo img,.identity-sheet-photo-placeholder{width:100%;aspect-ratio:1;object-fit:cover;border-radius:18px;border:1px solid #d9e1dc}.identity-sheet-photo-placeholder{display:grid;place-items:center;font-size:5rem;background:#f1f5f2}.identity-sheet-details h3{font-size:2rem;margin:.1rem 0 1rem}.identity-sheet-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;margin:0}.identity-sheet-grid>div{padding:.85rem;border-radius:12px;background:#f5f7f6}.identity-sheet-grid dt{font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#57645d}.identity-sheet-grid dd{margin:.2rem 0 0;font-weight:650;overflow-wrap:anywhere}.identity-sheet-block{margin-top:1.15rem;padding:1.15rem;border:1px solid #dce4df;border-radius:15px}.identity-sheet-block h3{margin:0 0 .75rem}.writing-lines{display:grid;gap:1rem;padding:.3rem 0}.writing-lines span{display:block;border-bottom:1px solid #9ba8a0;height:1.25rem}.identity-sheet-footer{margin-top:1.5rem;padding-top:1rem;border-top:1px solid #ccd6d0;text-align:center;font-size:.86rem;color:#526058}
@media(max-width:720px){.identity-sheet-header{display:block}.identity-sheet-date{margin-top:.8rem;white-space:normal}.identity-sheet-main{grid-template-columns:1fr}.identity-sheet-photo{max-width:320px;margin-inline:auto}.identity-sheet-grid{grid-template-columns:1fr}}
@media print{body{background:#fff!important}.site-header,.site-footer,.no-print,.feedback-dialog,.image-action-dialog{display:none!important}.page-shell,.container{max-width:none!important;width:100%!important;margin:0!important;padding:0!important}.panel.animal-identity-sheet{box-shadow:none!important;border:0!important;padding:0!important}.identity-sheet-header{break-inside:avoid}.identity-sheet-main,.identity-sheet-block{break-inside:avoid}.identity-sheet-photo img{print-color-adjust:exact;-webkit-print-color-adjust:exact}}

.form-section-note{padding:14px 16px;border:1px solid var(--border,#d8e2dc);border-radius:12px;background:#f5f9f6}.form-section-note strong{display:block;color:#245f42}.form-section-note p{margin:5px 0 0;color:#587064;font-size:.92rem}


/* 0170 — page d'accueil moderne et contenus publics */
.home-hero{position:relative;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);align-items:center;min-height:560px;padding:clamp(34px,7vw,90px);overflow:hidden;border-radius:0 0 38px 38px;background:linear-gradient(135deg,#edf7f0,#dcecdf);isolation:isolate}
.home-hero::before{content:"";position:absolute;inset:auto -8% -45% 30%;height:620px;border-radius:50%;background:#fff8;z-index:-1}
.home-hero-content{max-width:760px}.home-hero h1{max-width:720px;margin:.45rem 0 1rem;font-size:clamp(2.35rem,5vw,4.8rem);line-height:1.02;letter-spacing:-.045em;color:#173b2a}.home-hero p{max-width:680px;font-size:clamp(1.05rem,2vw,1.28rem);color:#42584b}.home-hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:28px}.home-text-link{padding:12px;font-weight:800}
.home-hero-map{justify-self:center;display:grid;place-items:center;width:min(34vw,390px);aspect-ratio:1;border:4px solid #243d31;border-radius:42% 58% 48% 52%/54% 44% 56% 46%;background:#e4e8e5;transform:rotate(-5deg);box-shadow:0 28px 70px #21432f24}.home-hero-map span{font-size:clamp(4rem,10vw,8rem);font-weight:950;color:#fff;text-shadow:0 4px 0 #315b43;transform:rotate(5deg)}
.home-live-stats{display:grid;grid-template-columns:repeat(4,1fr);max-width:1180px;margin:-32px auto 60px;position:relative;z-index:3;border-radius:22px;background:#fff;box-shadow:0 18px 55px #173b2a20;overflow:hidden}.home-live-stats article{display:grid;gap:4px;padding:24px;text-align:center;border-right:1px solid #e2ebe5}.home-live-stats article:last-child{border:0}.home-live-stats strong{font-size:2rem;color:#1d5c3d}.home-live-stats span{color:#617168;font-weight:700}.online-stat strong{display:flex;align-items:center;justify-content:center;gap:8px}.online-stat i{width:10px;height:10px;border-radius:50%;background:#20a35a;box-shadow:0 0 0 5px #20a35a20}
.home-section,.home-about,.home-join,.home-map-teaser{max-width:1180px;margin:0 auto 72px;padding-inline:24px}.home-section-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:24px}.home-section-heading h2,.home-map-teaser h2,.home-about h2,.home-join h2{margin:.3rem 0;font-size:clamp(1.8rem,3vw,2.65rem);color:#193d2c}.home-announcement-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.home-announcement-card{overflow:hidden;border:1px solid #dbe7df;border-radius:20px;background:#fff;box-shadow:0 12px 32px #1f47300f}.home-announcement-photo{display:grid;place-items:center;aspect-ratio:16/10;background:#edf4ef;font-size:4rem}.home-announcement-photo img{width:100%;height:100%;object-fit:cover}.home-announcement-card>div{padding:18px}.home-announcement-card h3{margin:.55rem 0 .3rem;font-size:1.2rem}.home-announcement-card h3 a{text-decoration:none}.home-announcement-card p,.home-announcement-card time{margin:0;color:#607068}
.home-map-teaser{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:46px;padding-block:42px}.home-map-visual{position:relative;display:grid;place-items:center;min-height:340px;overflow:hidden;border-radius:28px;background:linear-gradient(135deg,#dceadb,#f7faf7);border:1px solid #cadbce}.home-map-visual::before,.home-map-visual::after{content:"";position:absolute;width:150%;height:2px;background:#fff;transform:rotate(-18deg)}.home-map-visual::after{transform:rotate(31deg)}.home-map-visual strong{position:relative;z-index:2;padding:14px 20px;border-radius:14px;background:#fff;box-shadow:0 10px 25px #20452f20}.map-pin{position:absolute;z-index:3;color:#c94035;font-size:1.7rem}.pin-one{left:22%;top:27%}.pin-two{right:25%;top:42%}.pin-three{left:48%;bottom:22%}
.home-editorial{padding-block:44px;border-radius:28px;background:#f6faf7}.home-editorial .rich-content{font-size:1.06rem}.home-recovered-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.home-recovered-grid article{overflow:hidden;border-radius:20px;background:#fff;border:1px solid #dce7df}.home-recovered-grid img,.recovered-placeholder{width:100%;aspect-ratio:1;object-fit:cover}.recovered-placeholder{display:grid;place-items:center;background:#eef5f0;font-size:3.6rem}.home-recovered-grid article div{display:grid;padding:14px}.home-recovered-grid span{color:#68776e}.home-about{display:grid;grid-template-columns:.75fr 1.25fr;gap:48px;padding-block:52px;border-top:1px solid #dfe8e2;border-bottom:1px solid #dfe8e2}.home-join{text-align:center;padding:55px;border-radius:30px;background:#183e2c;color:#fff}.home-join h2,.home-join .eyebrow{color:#fff}.home-join .rich-content{max-width:780px;margin:0 auto 28px}.member-benefits{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:28px 0}.member-benefits article{display:grid;gap:8px;padding:20px;border-radius:16px;background:#ffffff12}.member-benefits span{font-size:2rem}.home-empty{padding:34px;border:1px dashed #afc4b5;border-radius:20px;text-align:center;background:#f8fbf9}.privacy-notice{position:fixed;left:20px;right:20px;bottom:20px;z-index:5000;display:flex;align-items:center;justify-content:space-between;gap:28px;max-width:1180px;margin:auto;padding:20px;border:1px solid #c8d7cd;border-radius:18px;background:#fff;box-shadow:0 20px 60px #0e2d1d3b}.privacy-notice[hidden]{display:none}.privacy-notice p{margin:.35rem 0 0;max-width:820px;color:#526259;font-size:.92rem}.privacy-actions{display:flex;flex:0 0 auto;gap:10px}.content-block-editor{margin-bottom:22px}.content-block-editor .panel-heading{align-items:flex-start}.home-content-admin> .panel label{display:grid;gap:8px}.sticky-save-bar{position:sticky;bottom:12px;display:flex;justify-content:flex-end;padding:14px;border-radius:16px;background:#ffffffeb;backdrop-filter:blur(10px);box-shadow:0 10px 30px #183c2b24}.admin-quick-actions{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.footer-editorial{max-width:760px;margin:0 auto 14px;text-align:center}.footer-links{display:flex;justify-content:center;gap:16px;margin:8px}
@media(max-width:900px){.home-hero{grid-template-columns:1fr;min-height:auto}.home-hero-map{width:min(70vw,320px);grid-row:1}.home-live-stats{grid-template-columns:1fr 1fr;margin:20px 20px 50px}.home-announcement-grid{grid-template-columns:1fr 1fr}.home-map-teaser,.home-about{grid-template-columns:1fr}.home-recovered-grid,.member-benefits{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.home-hero{padding:30px 20px;border-radius:0 0 24px 24px}.home-hero h1{font-size:2.4rem}.home-hero-actions .btn,.home-text-link{width:100%;text-align:center}.home-live-stats{grid-template-columns:1fr 1fr}.home-live-stats article{padding:17px 10px}.home-live-stats strong{font-size:1.55rem}.home-section,.home-about,.home-join,.home-map-teaser{padding-inline:16px;margin-bottom:48px}.home-announcement-grid,.home-recovered-grid,.member-benefits{grid-template-columns:1fr}.home-section-heading{align-items:flex-start;flex-direction:column}.home-join{padding-block:38px}.privacy-notice{align-items:stretch;flex-direction:column;left:10px;right:10px;bottom:10px}.privacy-actions{flex-direction:column}.privacy-actions .btn{width:100%}}


/* 0171 — page publique Animaux disparus */
.missing-hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(230px,.75fr);align-items:center;gap:38px;min-height:430px;padding:clamp(35px,7vw,78px);border-radius:0 0 34px 34px;background:linear-gradient(135deg,#fff8e8,#edf6ef)}
.missing-hero h1{max-width:760px;margin:.45rem 0 1rem;font-size:clamp(2.25rem,5vw,4.25rem);line-height:1.04;color:#1d3c2d}.missing-hero .rich-content{max-width:750px;font-size:1.1rem}.missing-hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.missing-hero-symbol{justify-self:center;position:relative;display:grid;place-items:center;width:min(31vw,310px);aspect-ratio:1;border-radius:50%;background:#fff;box-shadow:0 24px 60px #674d1720;font-size:7rem}.missing-hero-symbol span{position:absolute;right:16%;top:10%;font-size:4rem;font-weight:950;color:#c77a00}
.missing-stats{display:grid;grid-template-columns:repeat(4,1fr);max-width:1150px;margin:-28px auto 48px;position:relative;z-index:2;overflow:hidden;border-radius:20px;background:#fff;box-shadow:0 15px 45px #1539241c}.missing-stats article{display:grid;gap:5px;padding:22px;text-align:center;border-right:1px solid #e0e9e3}.missing-stats article:last-child{border:0}.missing-stats strong{font-size:1.9rem;color:#2a6547}.missing-stats span{font-weight:700;color:#65736b}
.missing-alert,.missing-editorial,.missing-hope,.missing-search-section{max-width:1150px;margin:0 auto 58px;padding-inline:22px}.missing-alert{display:grid;grid-template-columns:auto 1fr;gap:20px;padding-block:24px;border:1px solid #e5c875;border-radius:20px;background:#fff9e8}.missing-alert>div:first-child{font-size:2rem}.missing-alert h2,.missing-hope h2{margin:0}.missing-alert .rich-content{margin:.5rem 0 0}
.missing-filter-form{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;padding:20px;margin-bottom:26px;border:1px solid #dce6df;border-radius:20px;background:#f8fbf9}.missing-filter-form label{display:grid;gap:7px;font-weight:800}.missing-filter-actions{display:flex;align-items:end;gap:8px;grid-column:1/-1}
.missing-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.missing-card{overflow:hidden;border:1px solid #dce6df;border-radius:20px;background:#fff;box-shadow:0 10px 30px #1d432c12}.missing-photo{position:relative;display:grid;place-items:center;aspect-ratio:4/3;background:#edf4ef;font-size:4rem}.missing-photo img{width:100%;height:100%;object-fit:cover}.urgency{position:absolute;left:12px;bottom:12px;padding:7px 10px;border-radius:999px;background:#fff;font-size:.78rem;box-shadow:0 5px 15px #182b2025}.urgency-critical{color:#a52020;border:1px solid #e69a9a}.urgency-high{color:#9a4d00;border:1px solid #e2b073}.urgency-important{color:#796000;border:1px solid #ddcc73}.urgency-ongoing{color:#315c43;border:1px solid #9fc0ab}.missing-card-body{padding:18px}.missing-card-body h3{margin:.55rem 0;font-size:1.28rem}.missing-card-body h3 a,.missing-open{text-decoration:none}.missing-card-body p{margin:.45rem 0;color:#596860}.sighting-count{font-weight:800;color:#275b42!important}.missing-open{display:inline-block;margin-top:10px;font-weight:850}
.missing-editorial{display:grid;grid-template-columns:.72fr 1.28fr;gap:45px;padding-block:42px;border-top:1px solid #dde7e0;border-bottom:1px solid #dde7e0}.missing-editorial h2{font-size:2.2rem}.missing-hope{display:grid;grid-template-columns:auto 1fr;gap:22px;padding-block:34px;border-radius:22px;background:#eef7f1}.missing-hope>span{font-size:2.5rem}
@media(max-width:950px){.missing-hero{grid-template-columns:1fr}.missing-hero-symbol{grid-row:1;width:min(55vw,260px)}.missing-stats{grid-template-columns:1fr 1fr;margin:20px 20px 45px}.missing-filter-form{grid-template-columns:1fr 1fr}.missing-card-grid{grid-template-columns:1fr 1fr}.missing-editorial{grid-template-columns:1fr}}
@media(max-width:620px){.missing-hero{padding:30px 18px}.missing-hero h1{font-size:2.35rem}.missing-hero-actions .btn{width:100%}.missing-stats{grid-template-columns:1fr 1fr}.missing-stats article{padding:15px 8px}.missing-filter-form,.missing-card-grid{grid-template-columns:1fr}.missing-filter-actions{flex-direction:column}.missing-filter-actions .btn{width:100%}.missing-alert,.missing-editorial,.missing-hope,.missing-search-section{padding-inline:15px}.missing-alert,.missing-hope{grid-template-columns:1fr}}


/* 0172 — page publique Animaux trouvés */
.found-hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(230px,.75fr);align-items:center;gap:38px;min-height:430px;padding:clamp(35px,7vw,78px);border-radius:0 0 34px 34px;background:linear-gradient(135deg,#eef9f5,#edf4ff)}
.found-hero h1{max-width:760px;margin:.45rem 0 1rem;font-size:clamp(2.25rem,5vw,4.25rem);line-height:1.04;color:#174e44}.found-hero .rich-content{max-width:750px;font-size:1.1rem}.found-hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.found-hero-symbol{justify-self:center;position:relative;display:grid;place-items:center;width:min(31vw,310px);aspect-ratio:1;border-radius:50%;background:#fff;box-shadow:0 24px 60px #164b3d20;font-size:7rem}.found-hero-symbol span{position:absolute;right:11%;top:8%;font-size:3.5rem}
.found-stats{display:grid;grid-template-columns:repeat(4,1fr);max-width:1150px;margin:-28px auto 48px;position:relative;z-index:2;overflow:hidden;border-radius:20px;background:#fff;box-shadow:0 15px 45px #1539241c}.found-stats article{display:grid;gap:5px;padding:22px;text-align:center;border-right:1px solid #e0e9e3}.found-stats article:last-child{border:0}.found-stats strong{font-size:1.9rem;color:#237366}.found-stats span{font-weight:700;color:#65736b}
.found-alert,.found-editorial,.found-hope,.found-search-section{max-width:1150px;margin:0 auto 58px;padding-inline:22px}.found-alert{display:grid;grid-template-columns:auto 1fr;gap:20px;padding-block:24px;border:1px solid #9fd0c6;border-radius:20px;background:#effaf7}.found-alert>div:first-child{font-size:2rem}.found-alert h2,.found-hope h2{margin:0}.found-alert .rich-content{margin:.5rem 0 0}
.found-filter-form{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;padding:20px;margin-bottom:26px;border:1px solid #d7e7e3;border-radius:20px;background:#f6fbfa}.found-filter-form label{display:grid;gap:7px;font-weight:800}.found-filter-actions{display:flex;align-items:end;gap:8px;grid-column:1/-1}
.found-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.found-card{overflow:hidden;border:1px solid #d7e7e3;border-radius:20px;background:#fff;box-shadow:0 10px 30px #1d432c12}.found-photo{position:relative;display:grid;place-items:center;aspect-ratio:4/3;background:#eaf5f2;font-size:4rem}.found-photo img{width:100%;height:100%;object-fit:cover}.found-status{position:absolute;left:12px;bottom:12px;padding:7px 10px;border:1px solid #8dc6b9;border-radius:999px;background:#fff;color:#23695c;font-size:.78rem;box-shadow:0 5px 15px #182b2025}.found-card-body{padding:18px}.found-card-body h3{margin:.55rem 0;font-size:1.28rem}.found-card-body h3 a,.found-open{text-decoration:none}.found-card-body p{margin:.45rem 0;color:#596860}.found-identification{font-weight:800;color:#27695e!important}.found-open{display:inline-block;margin-top:10px;font-weight:850}
.found-editorial{display:grid;grid-template-columns:.72fr 1.28fr;gap:45px;padding-block:42px;border-top:1px solid #d8e8e4;border-bottom:1px solid #d8e8e4}.found-editorial h2{font-size:2.2rem}.found-hope{display:grid;grid-template-columns:auto 1fr;gap:22px;padding-block:34px;border-radius:22px;background:#edf7f5}.found-hope>span{font-size:2.5rem}
@media(max-width:950px){.found-hero{grid-template-columns:1fr}.found-hero-symbol{grid-row:1;width:min(55vw,260px)}.found-stats{grid-template-columns:1fr 1fr;margin:20px 20px 45px}.found-filter-form{grid-template-columns:1fr 1fr}.found-card-grid{grid-template-columns:1fr 1fr}.found-editorial{grid-template-columns:1fr}}
@media(max-width:620px){.found-hero{padding:30px 18px}.found-hero h1{font-size:2.35rem}.found-hero-actions .btn{width:100%}.found-stats{grid-template-columns:1fr 1fr}.found-stats article{padding:15px 8px}.found-filter-form,.found-card-grid{grid-template-columns:1fr}.found-filter-actions{flex-direction:column}.found-filter-actions .btn{width:100%}.found-alert,.found-editorial,.found-hope,.found-search-section{padding-inline:15px}.found-alert,.found-hope{grid-template-columns:1fr}}

/* 0173 — page publique Animaux volés */
.stolen-hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(230px,.75fr);align-items:center;gap:38px;min-height:430px;padding:clamp(35px,7vw,78px);border-radius:0 0 34px 34px;background:linear-gradient(135deg,#eef9f5,#edf4ff)}
.stolen-hero h1{max-width:760px;margin:.45rem 0 1rem;font-size:clamp(2.25rem,5vw,4.25rem);line-height:1.04;color:#174e44}.stolen-hero .rich-content{max-width:750px;font-size:1.1rem}.stolen-hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.stolen-hero-symbol{justify-self:center;position:relative;display:grid;place-items:center;width:min(31vw,310px);aspect-ratio:1;border-radius:50%;background:#fff;box-shadow:0 24px 60px #164b3d20;font-size:7rem}.stolen-hero-symbol span{position:absolute;right:11%;top:8%;font-size:3.5rem}
.stolen-stats{display:grid;grid-template-columns:repeat(4,1fr);max-width:1150px;margin:-28px auto 48px;position:relative;z-index:2;overflow:hidden;border-radius:20px;background:#fff;box-shadow:0 15px 45px #1539241c}.stolen-stats article{display:grid;gap:5px;padding:22px;text-align:center;border-right:1px solid #e0e9e3}.stolen-stats article:last-child{border:0}.stolen-stats strong{font-size:1.9rem;color:#237366}.stolen-stats span{font-weight:700;color:#65736b}
.stolen-alert,.stolen-editorial,.stolen-hope,.stolen-search-section{max-width:1150px;margin:0 auto 58px;padding-inline:22px}.stolen-alert{display:grid;grid-template-columns:auto 1fr;gap:20px;padding-block:24px;border:1px solid #9fd0c6;border-radius:20px;background:#effaf7}.stolen-alert>div:first-child{font-size:2rem}.stolen-alert h2,.stolen-hope h2{margin:0}.stolen-alert .rich-content{margin:.5rem 0 0}
.stolen-filter-form{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;padding:20px;margin-bottom:26px;border:1px solid #d7e7e3;border-radius:20px;background:#f6fbfa}.stolen-filter-form label{display:grid;gap:7px;font-weight:800}.stolen-filter-actions{display:flex;align-items:end;gap:8px;grid-column:1/-1}
.stolen-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.stolen-card{overflow:hidden;border:1px solid #d7e7e3;border-radius:20px;background:#fff;box-shadow:0 10px 30px #1d432c12}.stolen-photo{position:relative;display:grid;place-items:center;aspect-ratio:4/3;background:#eaf5f2;font-size:4rem}.stolen-photo img{width:100%;height:100%;object-fit:cover}.stolen-status{position:absolute;left:12px;bottom:12px;padding:7px 10px;border:1px solid #8dc6b9;border-radius:999px;background:#fff;color:#23695c;font-size:.78rem;box-shadow:0 5px 15px #182b2025}.stolen-card-body{padding:18px}.stolen-card-body h3{margin:.55rem 0;font-size:1.28rem}.stolen-card-body h3 a,.stolen-open{text-decoration:none}.stolen-card-body p{margin:.45rem 0;color:#596860}.stolen-identification{font-weight:800;color:#27695e!important}.stolen-open{display:inline-block;margin-top:10px;font-weight:850}
.stolen-editorial{display:grid;grid-template-columns:.72fr 1.28fr;gap:45px;padding-block:42px;border-top:1px solid #d8e8e4;border-bottom:1px solid #d8e8e4}.stolen-editorial h2{font-size:2.2rem}.stolen-hope{display:grid;grid-template-columns:auto 1fr;gap:22px;padding-block:34px;border-radius:22px;background:#edf7f5}.stolen-hope>span{font-size:2.5rem}
@media(max-width:950px){.stolen-hero{grid-template-columns:1fr}.stolen-hero-symbol{grid-row:1;width:min(55vw,260px)}.stolen-stats{grid-template-columns:1fr 1fr;margin:20px 20px 45px}.stolen-filter-form{grid-template-columns:1fr 1fr}.stolen-card-grid{grid-template-columns:1fr 1fr}.stolen-editorial{grid-template-columns:1fr}}
@media(max-width:620px){.stolen-hero{padding:30px 18px}.stolen-hero h1{font-size:2.35rem}.stolen-hero-actions .btn{width:100%}.stolen-stats{grid-template-columns:1fr 1fr}.stolen-stats article{padding:15px 8px}.stolen-filter-form,.stolen-card-grid{grid-template-columns:1fr}.stolen-filter-actions{flex-direction:column}.stolen-filter-actions .btn{width:100%}.stolen-alert,.stolen-editorial,.stolen-hope,.stolen-search-section{padding-inline:15px}.stolen-alert,.stolen-hope{grid-template-columns:1fr}}
\n/* 0174 — refonte de la carte interactive */
.map-page-v174{padding-bottom:60px}.map-hero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(220px,.7fr);align-items:center;gap:40px;min-height:410px;padding:clamp(34px,7vw,76px);border-radius:0 0 34px 34px;background:linear-gradient(135deg,#eef8f2,#edf4ff)}.map-hero h1{max-width:760px;margin:.45rem 0 1rem;font-size:clamp(2.3rem,5vw,4.4rem);line-height:1.03;color:#174e44}.map-hero .rich-content{max-width:760px;font-size:1.1rem}.map-hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.map-hero-symbol{justify-self:center;position:relative;display:grid;place-items:center;width:min(30vw,300px);aspect-ratio:1;border-radius:50%;background:#fff;box-shadow:0 24px 60px #164b3d20;font-size:7rem}.map-hero-symbol span{position:absolute;right:8%;bottom:8%;font-size:3rem}
.map-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));max-width:1180px;margin:-28px auto 48px;position:relative;z-index:2;overflow:hidden;border-radius:20px;background:#fff;box-shadow:0 15px 45px #1539241c}.map-stats article{display:grid;gap:5px;padding:22px;text-align:center;border-right:1px solid #e0e9e3}.map-stats article:last-child{border:0}.map-stats strong{font-size:1.9rem;color:#237366}.map-stats span{font-weight:700;color:#65736b}
.map-workspace,.map-list-section{max-width:1180px;margin:0 auto 52px;padding:0 22px}.map-workspace{display:grid;grid-template-columns:minmax(250px,320px) minmax(0,1fr);align-items:start;gap:20px}.map-filter-panel{position:sticky;top:20px;display:grid;gap:16px;padding:22px;border:1px solid #d8e5de;border-radius:20px;background:#fff;box-shadow:0 10px 28px #173d2810}.map-filter-heading{display:flex;justify-content:space-between;align-items:start;gap:12px}.map-filter-heading h2{margin:.2rem 0 0;font-size:1.35rem}.map-reset{padding:0;border:0;background:transparent;color:#176b46;font:inherit;font-weight:800;cursor:pointer}.map-filter-panel>label{display:grid;gap:7px;font-weight:800}.map-filter-panel input[type=search],.map-filter-panel select{width:100%}.map-type-filters{display:grid;justify-items:start;gap:10px;margin:0;padding:0;border:0}.map-type-filters legend{margin-bottom:8px;font-weight:800}.map-type-filters label{display:flex;align-items:center;justify-content:flex-start;gap:8px;width:100%;margin:0}.map-type-filters input[type=checkbox]{width:auto;flex:0 0 auto;margin:0;padding:0}.map-dot{flex:0 0 auto;width:12px;height:12px;border-radius:50%;background:#587a68}.map-dot.lost{background:#e07a20}.map-dot.missing{background:#d3a400}.map-dot.stolen{background:#b23b3b}.map-dot.found{background:#247c66}.map-dot.sighted{background:#3679b8}.map-dot.recovered{background:#6b58a6}.map-result-count{margin:0;padding:10px 12px;border-radius:12px;background:#edf7f1;color:#20583f;font-weight:850;text-align:center}.map-help{padding-top:14px;border-top:1px solid #e1e9e4}.map-help .rich-content{font-size:.92rem;color:#5b6d63}.map-main-column{min-width:0}.map-consent{min-height:480px;display:grid;place-items:center;align-content:center;gap:16px;padding:38px;border:1px dashed #9eb6a5;border-radius:20px;background:#f5faf6;text-align:center}.map-consent-icon{font-size:3rem}.map-consent .rich-content{max-width:650px}.announcement-map{height:min(72vh,680px);min-height:480px;margin:0;border-radius:20px}.nam49-map-marker{background:transparent!important;border:0!important}.nam49-map-marker span{display:grid;place-items:center;width:38px;height:38px;border:3px solid #fff;border-radius:50% 50% 50% 8px;transform:rotate(-45deg);box-shadow:0 4px 14px #152d2050;background:#587a68;font-size:18px}.nam49-map-marker span::first-letter{transform:rotate(45deg)}.nam49-map-marker span.lost{background:#e07a20}.nam49-map-marker span.missing{background:#d3a400}.nam49-map-marker span.stolen{background:#b23b3b}.nam49-map-marker span.found{background:#247c66}.nam49-map-marker span.sighted{background:#3679b8}.nam49-map-marker span.recovered{background:#6b58a6}.leaflet-popup-content{display:grid;gap:7px;min-width:210px}.map-popup-photo{width:100%;height:120px;object-fit:cover;border-radius:10px}.map-popup-title{font-size:1.05rem}.map-popup-link{font-weight:850}.map-list-section .section-heading{margin-bottom:18px}.map-list{display:grid;gap:12px}.map-list article{display:grid;grid-template-columns:92px minmax(0,1fr) auto;align-items:center;gap:16px;padding:14px;border:1px solid #d9e5df;border-radius:17px;background:#fff}.map-list article[hidden]{display:none}.map-list-thumb,.map-list-thumb img{width:92px;height:92px;border-radius:13px}.map-list-thumb{display:grid;place-items:center;overflow:hidden;background:#eef5f1;font-size:2.3rem}.map-list-thumb img{object-fit:cover}.map-list-content{display:grid;justify-items:start;gap:4px;min-width:0}.map-list-content strong{font-size:1.06rem}.map-list-content small,.map-list-content>span:not(.type-badge){color:#5b6b62}.map-list-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:end}.type-badge.lost{background:#fff0e3;color:#9a4b08}.type-badge.missing{background:#fff7d6;color:#7b6200}.type-badge.stolen{background:#fdeaea;color:#922f2f}.type-badge.found{background:#e5f6f1;color:#176252}.type-badge.sighted{background:#e7f1fb;color:#235f94}.type-badge.recovered{background:#eeeafb;color:#58438d}
@media(max-width:950px){.map-hero{grid-template-columns:1fr}.map-hero-symbol{grid-row:1;width:min(55vw,250px)}.map-stats{grid-template-columns:1fr 1fr;margin:20px 20px 42px}.map-workspace{grid-template-columns:1fr}.map-filter-panel{position:static}.announcement-map{min-height:430px}}
@media(max-width:680px){.map-hero{padding:30px 18px}.map-hero h1{font-size:2.35rem}.map-hero-actions .btn{width:100%}.map-stats{grid-template-columns:1fr 1fr}.map-stats article{padding:15px 8px}.map-workspace,.map-list-section{padding-inline:14px}.map-list article{grid-template-columns:68px minmax(0,1fr)}.map-list-thumb,.map-list-thumb img{width:68px;height:68px}.map-list-actions{grid-column:1/-1}.map-list-actions .btn{flex:1}.map-consent{min-height:380px;padding:25px 18px}.announcement-map{min-height:380px}}

/* 0174-3 — alignement du sélecteur des fonds de carte Leaflet */
.announcement-map .leaflet-control-layers-base {
  display: grid;
  gap: 7px;
}
.announcement-map .leaflet-control-layers-base label {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  width: 100%;
  margin: 0;
  font-weight: 650;
  white-space: nowrap;
}
.announcement-map .leaflet-control-layers-base input[type="radio"] {
  flex: 0 0 auto;
  width: auto;
  margin: 0;
  padding: 0;
}
.announcement-map .leaflet-control-layers-base label > span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

/* 0175 — Page Comment ça fonctionne ? */
.how-hero{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,.75fr);gap:2rem;align-items:stretch;margin-bottom:2.5rem}.how-hero>div:first-child{padding:clamp(1.5rem,4vw,3rem);border-radius:28px;background:linear-gradient(135deg,#edf8f2,#fff);border:1px solid #d9ebe1}.how-hero h1{margin:.35rem 0 1rem;font-size:clamp(2.2rem,6vw,4.6rem);line-height:1}.how-hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.4rem}.how-summary{padding:1.6rem;border-radius:28px;background:#174f3b;color:#fff;display:flex;flex-direction:column;justify-content:center}.how-summary strong{font-size:1.25rem}.how-summary ol{margin:1rem 0 0;padding-left:1.4rem;display:grid;gap:.75rem}.how-process{margin:2.5rem 0}.section-heading{max-width:800px;margin-bottom:1.25rem}.how-step-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.how-step-card{position:relative;padding:1.4rem;border:1px solid #dce8e1;border-radius:20px;background:#fff}.how-step-card h3{margin:.75rem 0 .5rem}.how-step-number{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:50%;background:#e8f5ee;color:#14513b;font-weight:800}.how-two-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem;margin:2.5rem 0}.how-info-panel{height:100%}.how-check-list{list-style:none;padding:0;margin:1.2rem 0 0;display:grid;gap:.75rem}.how-check-list li{position:relative;padding-left:1.8rem}.how-check-list li::before{content:'✓';position:absolute;left:0;top:0;color:#167453;font-weight:800}.how-final-cta{display:flex;justify-content:space-between;gap:2rem;align-items:center;padding:clamp(1.5rem,4vw,2.5rem);border-radius:24px;background:#eef7f2;border:1px solid #d7e8de;margin:2.5rem 0}.how-final-cta h2{margin:.35rem 0}.editorial-content>:first-child{margin-top:0}.editorial-content>:last-child{margin-bottom:0}@media(max-width:900px){.how-hero,.how-two-columns{grid-template-columns:1fr}.how-step-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.how-final-cta{align-items:flex-start;flex-direction:column}}@media(max-width:600px){.how-step-grid{grid-template-columns:1fr}.how-hero>div:first-child,.how-summary{border-radius:20px}.how-final-cta .btn{width:100%;text-align:center}.how-final-cta .how-hero-actions{width:100%}}

/* 0176 — page Conseils */
.advice-hero{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr);gap:24px;align-items:stretch;margin-bottom:20px}.advice-hero>div,.advice-emergency-card{border:1px solid #d7e6de;border-radius:20px;background:#fff;padding:clamp(20px,3vw,34px)}.advice-hero h1{margin:.35rem 0 .75rem}.advice-emergency-card{background:#eef8f2;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:.65rem}.advice-emergency-card p{margin:0;color:#42584d}.advice-anchor-nav{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 24px}.advice-anchor-nav a{border:1px solid #c7ddd1;border-radius:999px;padding:.65rem 1rem;background:#fff;color:#145c3b;font-weight:700;text-decoration:none}.advice-anchor-nav a:hover{background:#edf7f1}.advice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.advice-card{scroll-margin-top:20px;border:1px solid #d8e5de;border-radius:20px;background:#fff;padding:24px}.advice-card-heading{display:flex;align-items:center;gap:14px;margin-bottom:12px}.advice-card-heading h2{margin:.15rem 0 0}.advice-icon{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border-radius:15px;background:#edf7f1;color:#12653f;font-size:1.35rem;font-weight:900}.advice-card-missing .advice-icon{background:#fff5d7;color:#a66b00}.advice-card-stolen .advice-icon{background:#fff0f0;color:#b53d3d}.advice-checklist{display:grid;gap:.7rem;margin:1rem 0 1.1rem;padding-left:1.35rem}.advice-checklist li{padding-left:.2rem}.advice-checklist li::marker{color:#16734a;font-weight:800}.advice-card-missing .advice-checklist li::marker{color:#bd7a00}.advice-card-stolen .advice-checklist li::marker{color:#b94040}.text-link{font-weight:800;color:#12623f;text-decoration:none}.text-link:hover{text-decoration:underline}.advice-final-cta{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:24px;padding:24px;border:1px solid #cfe2d7;border-radius:20px;background:#f1f8f4}.advice-final-cta h2{margin:.25rem 0}.advice-final-cta p{margin:0;color:#4b5f55}.advice-actions{display:flex;gap:10px;flex-wrap:wrap;flex:0 0 auto}@media(max-width:850px){.advice-hero,.advice-grid{grid-template-columns:1fr}.advice-final-cta{align-items:flex-start;flex-direction:column}}@media(max-width:520px){.advice-card,.advice-hero>div,.advice-emergency-card{padding:18px}.advice-anchor-nav{display:grid;grid-template-columns:1fr 1fr}.advice-anchor-nav a{text-align:center}.advice-actions,.advice-actions .btn{width:100%}}

/* 0176-1 — illustration personnalisable de la page d'accueil */
.home-hero-map.has-image{border:0;border-radius:0;background:transparent;box-shadow:none;transform:none;aspect-ratio:auto;min-height:330px}
.home-hero-map.has-image img{display:block;width:100%;max-width:430px;max-height:430px;object-fit:contain;filter:drop-shadow(0 24px 35px #21432f24)}
.home-hero-image-preview{display:grid;place-items:center;min-height:220px;margin:0 0 18px;padding:20px;border:1px solid #d5e2da;border-radius:18px;background:#f4f8f5}
.home-hero-image-preview img{max-width:420px;max-height:300px;object-fit:contain}
.home-hero-image-fallback{display:grid;place-items:center;width:220px;aspect-ratio:1;margin:0 0 18px;border:3px solid #243d31;border-radius:42% 58% 48% 52%/54% 44% 56% 46%;background:#e4e8e5;transform:rotate(-5deg)}
.home-hero-image-fallback span{font-size:5rem;font-weight:950;color:#fff;text-shadow:0 4px 0 #315b43;transform:rotate(5deg)}
@media(max-width:900px){.home-hero-map.has-image{width:min(78vw,430px);min-height:250px}}

/* 0177 — Partenaires */
.partners-hero{max-width:900px;margin:0 auto 2rem;text-align:center}.partners-hero h1{margin:.35rem 0 .75rem}.partners-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem}.partner-card{display:flex;gap:1.15rem;padding:1.25rem;border:1px solid #d8e8df;border-radius:20px;background:#fff}.partner-logo{width:110px;height:110px;flex:0 0 110px;border-radius:18px;border:1px solid #d8e8df;background:#f3f8f5;display:flex;align-items:center;justify-content:center;overflow:hidden}.partner-logo img{width:100%;height:100%;object-fit:contain;padding:.5rem}.partner-logo span{font-size:2.4rem;font-weight:800;color:#176b4a}.partner-body{min-width:0}.partner-body h2{margin:.35rem 0 .6rem}.partner-category{display:inline-flex;padding:.3rem .6rem;border-radius:999px;background:#e8f4ed;color:#176b4a;font-size:.82rem;font-weight:700}.partner-description{margin-bottom:.8rem}.partner-details p{margin:.25rem 0;overflow-wrap:anywhere}.partner-admin-form .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.partner-logo-preview{display:flex;align-items:center;gap:1rem;margin:1rem 0}.partner-logo-preview img{width:100px;height:100px;object-fit:contain;border:1px solid #d8e8df;border-radius:14px}.admin-partner-list{display:grid;gap:.65rem}.admin-partner-list article{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 0;border-bottom:1px solid #e5eee9}.admin-partner-list small{display:block;color:#66756d;margin-top:.2rem}.admin-partner-list .actions{display:flex;align-items:center;gap:.5rem}.admin-partner-list form{margin:0}@media(max-width:700px){.partner-card{flex-direction:column}.partner-logo{width:100%;height:145px}.partner-admin-form .form-grid{grid-template-columns:1fr}.admin-partner-list article{align-items:flex-start;flex-direction:column}.admin-partner-list .actions{width:100%;flex-wrap:wrap}}

/* 0178 — Statistiques */
.statistics-hero{display:grid;grid-template-columns:minmax(0,1fr) 180px;align-items:center;gap:28px;padding:clamp(28px,5vw,58px);margin-bottom:22px;border:1px solid #d8e8df;border-radius:26px;background:linear-gradient(135deg,#edf8f2,#fff)}.statistics-hero h1{margin:.35rem 0 .8rem;font-size:clamp(2.2rem,5vw,4rem)}.statistics-hero-mark{display:grid;place-items:center;width:150px;height:150px;border-radius:50%;background:#176b4a;color:#fff;font-size:4rem;font-weight:900}.statistics-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.statistics-metrics article{padding:20px;border:1px solid #d8e8df;border-radius:18px;background:#fff;text-align:center}.statistics-metrics strong{display:block;font-size:2.15rem;color:#176b4a}.statistics-metrics span{color:#586960}.statistics-types{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:20px}.stat-type{padding:22px;border-radius:18px;text-align:center;border:1px solid #dfe8e3;background:#fff}.stat-type>span{font-size:1.2rem}.stat-type strong{display:block;font-size:2rem}.stat-type p{margin:.2rem 0 0}.stat-type.missing>span{color:#db9100}.stat-type.found>span{color:#258b70}.stat-type.stolen>span{color:#bd4343}.statistics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.statistics-chart,.statistics-ranking,.statistics-privacy{min-height:300px}.month-bars{height:220px;display:flex;align-items:end;gap:8px;padding-top:30px}.month-bars>div{height:100%;flex:1;display:flex;flex-direction:column;justify-content:end;align-items:center;gap:6px}.month-bars .bar{position:relative;display:block;width:min(34px,80%);min-height:5px;border-radius:8px 8px 3px 3px;background:#2a8461}.month-bars .bar b{position:absolute;left:50%;top:-24px;transform:translateX(-50%);font-size:.78rem}.month-bars small{font-size:.68rem;white-space:nowrap}.rank-row{display:grid;grid-template-columns:minmax(90px,1fr) minmax(100px,2fr) 35px;align-items:center;gap:10px;margin:.9rem 0}.rank-row>div{height:10px;border-radius:999px;background:#e7efea;overflow:hidden}.rank-row i{display:block;height:100%;border-radius:999px;background:#2a8461}.statistics-privacy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.admin-statistics-metrics{grid-template-columns:repeat(5,minmax(0,1fr))}.admin-statistics-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.statistics-table{display:grid;gap:0}.statistics-table>div{display:flex;justify-content:space-between;gap:20px;padding:.8rem 0;border-bottom:1px solid #e5ece8}.statistics-table span{text-transform:capitalize}@media(max-width:900px){.statistics-metrics,.admin-statistics-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.statistics-grid,.admin-statistics-grid{grid-template-columns:1fr}.statistics-hero{grid-template-columns:1fr}.statistics-hero-mark{width:100px;height:100px}}@media(max-width:560px){.statistics-metrics,.statistics-types,.admin-statistics-metrics{grid-template-columns:1fr 1fr}.month-bars small{transform:rotate(-45deg);margin-bottom:8px}.statistics-hero{padding:22px}.rank-row{grid-template-columns:90px 1fr 28px}}


/* 0179 - Contact */
.contact-hero{max-width:900px;margin:0 auto 1.5rem;text-align:center}.contact-hero h1{margin:.35rem 0 .75rem;font-size:clamp(2.1rem,5vw,3.6rem)}.contact-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr);gap:20px;align-items:start}.contact-form{display:grid;gap:1rem}.contact-form .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.contact-form label{display:grid;gap:.4rem;font-weight:700}.contact-form input,.contact-form select,.contact-form textarea{width:100%}.contact-form small{font-weight:400;color:#64736b}.contact-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}.check-row{display:flex!important;align-items:flex-start;gap:.65rem;font-weight:400!important}.check-row input{width:auto!important;margin-top:.25rem}.contact-aside{display:grid;gap:18px}.contact-links{display:grid;gap:.55rem;margin-top:1rem}.contact-links a{padding:.75rem 1rem;border:1px solid #b9d6c7;border-radius:12px;text-decoration:none;font-weight:700}.contact-notice{border-color:#e7c676;background:#fffaf0}.form-errors{padding:1rem;border:1px solid #e49292;border-radius:14px;background:#fff4f4;color:#9c2424}.form-errors ul{margin:.5rem 0 0}.contact-status-filters{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}.contact-status-filters a{padding:.55rem .8rem;border:1px solid #bdd7c9;border-radius:999px;text-decoration:none}.contact-admin-list{display:grid;gap:.8rem}.contact-admin-card{display:flex;align-items:center;justify-content:space-between;gap:1rem}.contact-admin-card h2{margin:.45rem 0 .2rem}.status-pill{display:inline-flex;padding:.28rem .6rem;border-radius:999px;font-size:.78rem;font-weight:800}.status-new{background:#fff0bd;color:#755400}.status-in_progress{background:#e2eefc;color:#24558a}.status-answered{background:#e2f4e9;color:#16613f}.status-closed{background:#ecefed;color:#55615b}.contact-message-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.75fr);gap:20px}.contact-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 1.25rem}.contact-meta div{padding:.8rem;border-radius:12px;background:#f4f8f6}.contact-meta dt{font-size:.78rem;color:#607168}.contact-meta dd{margin:.2rem 0 0;font-weight:700;overflow-wrap:anywhere}.contact-message-body{padding:1.15rem;margin-bottom:1rem;border-left:4px solid #2a8461;background:#f6faf8;white-space:normal}.contact-message-layout form{display:grid;gap:1rem;margin-bottom:1rem}@media(max-width:850px){.contact-layout,.contact-message-layout{grid-template-columns:1fr}}@media(max-width:600px){.contact-form .form-grid,.contact-meta{grid-template-columns:1fr}.contact-admin-card{align-items:flex-start;flex-direction:column}.contact-admin-card .btn{width:100%}}

.contact-thread{display:grid;gap:1rem;margin-bottom:1.4rem}.contact-thread-item{border:1px solid #d4e2da;border-radius:16px;padding:1rem}.contact-thread-item header{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;margin-bottom:.65rem}.contact-thread-item time,.contact-thread-item small{font-size:.8rem;color:#66756d}.contact-thread-item.incoming{background:#f7faf8}.contact-thread-item.outgoing{margin-left:2rem;background:#edf7f1;border-color:#b9d9c7}.contact-thread-item .contact-message-body{margin:0;border-left:4px solid #2a8461}.contact-reply-body{line-height:1.6}.contact-reply-body>:first-child{margin-top:0}.contact-reply-body>:last-child{margin-bottom:0}.contact-reply-editor{border-top:1px solid #d9e4de;padding-top:1.2rem}.contact-reply-editor form{display:grid;gap:1rem}.contact-reply-editor .btn{justify-self:start}@media(max-width:600px){.contact-thread-item.outgoing{margin-left:0}.contact-thread-item header{align-items:flex-start;flex-direction:column;gap:.2rem}.contact-reply-editor .btn{width:100%}}

/* 0180 - pages légales, accessibilité et plan du site */
.legal-page{max-width:1050px;margin:0 auto}.legal-hero{margin-bottom:1.25rem}.legal-content{line-height:1.75}.legal-content h2{margin-top:1.8rem}.legal-content h2:first-child{margin-top:0}.sitemap-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem}.sitemap-grid .panel{display:flex;flex-direction:column;gap:.65rem}.sitemap-grid a{font-weight:600}.content-editor-card{margin-bottom:1rem}.checkbox-line{display:flex;align-items:center;gap:.6rem}


/* 01.81-1 — consentement aux cookies : rendu corrigé */
.cookie-consent{position:fixed;z-index:10000;inset:0;display:grid;align-items:end;padding:clamp(.6rem,2vw,1.25rem);background:rgba(13,32,28,.52);backdrop-filter:blur(4px)}
.cookie-consent[hidden]{display:none}
.cookie-consent__inner{width:min(920px,100%);max-height:calc(100vh - 2rem);overflow:auto;margin:auto;background:#fff;border:1px solid #d7e3dc;border-radius:22px;padding:clamp(1rem,3vw,1.5rem);box-shadow:0 22px 70px rgba(0,0,0,.3);display:grid;gap:1rem}
.cookie-consent__inner>div:first-child{min-width:0}
.cookie-consent__inner>div:first-child>strong{display:block;font-size:clamp(1.1rem,2vw,1.3rem);line-height:1.3}
.cookie-consent__inner>div:first-child p{margin:.45rem 0 0;color:#4f6057;overflow-wrap:anywhere}
.cookie-consent__choices{display:grid;gap:.65rem;padding:.75rem;background:#f3f7f5;border:1px solid #e1e9e4;border-radius:16px}
.cookie-consent__choices[hidden]{display:none}
.cookie-choice{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.8rem;width:100%;margin:0!important;padding:.85rem .9rem;border:1px solid #dce7e1;border-radius:13px;background:#fff;font-weight:400!important;cursor:pointer}
.cookie-choice:hover{border-color:#9fc1ae;background:#fbfdfc}
.cookie-choice input[type=checkbox]{width:1.15rem!important;height:1.15rem;margin:0!important;padding:0!important;accent-color:var(--leaf);cursor:pointer}
.cookie-choice input[type=checkbox]:disabled{cursor:not-allowed}
.cookie-choice__text{display:grid;gap:.1rem;min-width:0}
.cookie-choice__text strong{font-size:1rem;line-height:1.35}
.cookie-choice__text small{color:#64736c;font-size:.86rem;line-height:1.4;font-weight:400}
.cookie-choice__status{justify-self:end;padding:.28rem .55rem;border-radius:999px;background:#e5f1e9;color:#245b3d;font-size:.76rem;font-weight:850;white-space:nowrap}
.cookie-choice--required{cursor:default;background:#f9fbfa}
.cookie-consent__actions{display:flex;flex-wrap:wrap;gap:.65rem;justify-content:flex-end;align-items:center}
.cookie-consent__actions .btn{min-height:46px}
@media(max-width:650px){.cookie-consent{align-items:end;padding:.4rem}.cookie-consent__inner{max-height:calc(100vh - .8rem);border-radius:17px;padding:1rem}.cookie-choice{grid-template-columns:auto minmax(0,1fr);align-items:start}.cookie-choice__status{grid-column:2;justify-self:start}.cookie-consent__actions{display:grid;grid-template-columns:1fr}.cookie-consent__actions .btn{width:100%}}
@media(max-width:380px){.cookie-consent__inner{padding:.8rem}.cookie-consent__choices{padding:.55rem}.cookie-choice{padding:.7rem}}


/* Correctif 0181-3 : alignement des cases à cocher d'administration */
.checkbox-line{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:.65rem!important;
  width:fit-content;
  max-width:100%;
}
.checkbox-line input[type="checkbox"]{
  width:1.15rem!important;
  height:1.15rem!important;
  min-width:1.15rem!important;
  flex:0 0 1.15rem!important;
  margin:0!important;
  padding:0!important;
  accent-color:var(--leaf);
}

/* Centre de confidentialité */
.privacy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.privacy-grid .panel{margin:0}.danger-zone{border-color:#d8a5a5}.danger-zone h2{color:#8f2525}.table-wrap{overflow-x:auto}.table-wrap table{width:100%;border-collapse:collapse}.table-wrap th,.table-wrap td{padding:.75rem;border-bottom:1px solid var(--border,#ddd);text-align:left}@media(max-width:760px){.privacy-grid{grid-template-columns:1fr}}
.stats-section-title{margin:2rem 0 .9rem}.matomo-period-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.matomo-period{display:flex;flex-direction:column;gap:.25rem}.matomo-period small{font-weight:700;color:#586960}.matomo-period>strong{font-size:2.2rem;color:#176b4a}.matomo-period>span,.matomo-period>div{color:#586960}.stats-wide{grid-column:span 2}@media(max-width:900px){.matomo-period-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-wide{grid-column:auto}}@media(max-width:560px){.matomo-period-grid{grid-template-columns:1fr}}

/* 01.85 — Vue d’ensemble du tableau de bord statistique */
.stats-admin-head{align-items:flex-end}.stats-head-actions{display:flex;flex-wrap:wrap;gap:10px}.stats-overview-block{margin:0 0 34px}.stats-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:0 0 14px}.stats-section-heading h2{margin:.15rem 0 0}.stats-section-heading p{max-width:580px;margin:0;color:#64736b;text-align:right}.stats-kicker{display:block;color:#27775a;font-size:.76rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.stats-card-grid{display:grid;gap:14px}.stats-card-grid--internal{grid-template-columns:repeat(4,minmax(0,1fr))}.stats-card-grid--audience{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:14px}.stats-card{display:flex;align-items:center;gap:14px;min-height:118px;padding:18px;border:1px solid #dce7e1;border-radius:20px;background:#fff;box-shadow:0 8px 24px rgba(35,65,51,.055)}.stats-card-icon{display:grid;place-items:center;flex:0 0 46px;width:46px;height:46px;border-radius:14px;background:#edf6f1;color:#176b4a;font-size:1.35rem;font-weight:900}.stats-card>div{min-width:0}.stats-card strong{display:block;color:#176b4a;font-size:2rem;line-height:1}.stats-card span:not(.stats-card-icon){display:block;margin-top:.4rem;color:#405249;font-weight:700}.stats-card small{display:block;margin-top:.3rem;color:#718078}.stats-card--featured{border-color:#8dc5ac;background:linear-gradient(135deg,#eef8f3,#fff)}.stats-card--warning .stats-card-icon{background:#fff3d8;color:#9b6500}.stats-card--danger .stats-card-icon{background:#fde8e8;color:#a93434}.stats-card--success .stats-card-icon{background:#e1f5e9;color:#187447}.stats-value-text{font-size:1.55rem!important;white-space:nowrap}.matomo-period-grid--overview{margin-top:0}.stats-overview-columns{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(360px,1.15fr);gap:18px}.stats-overview-columns .panel{margin:0}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.panel-heading h2{margin:.15rem 0 0}.panel-heading>strong{color:#176b4a}.device-share-list{display:grid;gap:16px;margin-top:20px}.device-share-row>div:first-child{display:flex;justify-content:space-between;gap:14px}.device-share-row small{display:block;margin-top:5px;color:#718078}.device-share-track{height:9px;margin-top:7px;border-radius:999px;background:#e5eee9;overflow:hidden}.device-share-track i{display:block;height:100%;border-radius:inherit;background:#2a8461}.statistics-table--ranked>div span{display:flex;align-items:center;gap:10px;min-width:0}.statistics-table--ranked b{display:grid;place-items:center;flex:0 0 26px;width:26px;height:26px;border-radius:9px;background:#edf6f1;color:#176b4a}.statistics-table--ranked span{overflow-wrap:anywhere}.statistics-table--ranked strong{white-space:nowrap}
@media(max-width:1050px){.stats-card-grid--internal,.stats-card-grid--audience{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-overview-columns{grid-template-columns:1fr}}
@media(max-width:700px){.stats-admin-head,.stats-section-heading{align-items:flex-start;flex-direction:column}.stats-section-heading p{text-align:left}.stats-head-actions{width:100%}.stats-head-actions .btn{flex:1}.stats-card-grid--internal,.stats-card-grid--audience{grid-template-columns:1fr 1fr}.stats-card{min-height:104px;padding:15px}.stats-card strong{font-size:1.7rem}}
@media(max-width:480px){.stats-card-grid--internal,.stats-card-grid--audience{grid-template-columns:1fr}.stats-card{min-height:auto}.stats-head-actions .btn{flex-basis:100%}.panel-heading{flex-direction:column}}

/* NAM49 0186 - graphiques et répartitions Matomo */
.stats-chart-panel{margin:18px 0}.chart-legend{display:flex;flex-wrap:wrap;gap:14px;color:#65756c;font-size:.86rem;font-weight:700}.chart-legend span{display:flex;align-items:center;gap:7px}.chart-legend i{width:11px;height:11px;border-radius:4px}.legend-visits{background:#25815e}.legend-actions{background:#9fcbb8}.traffic-chart{display:grid;grid-template-columns:repeat(30,minmax(7px,1fr));align-items:end;gap:5px;height:290px;margin-top:22px;padding:18px 10px 0;border-left:1px solid #dbe7e0;border-bottom:1px solid #dbe7e0;background:repeating-linear-gradient(to top,transparent 0,transparent 56px,#edf3ef 57px)}.traffic-day{display:grid;grid-template-rows:1fr 22px;height:100%;min-width:0}.traffic-bars{display:flex;align-items:flex-end;justify-content:center;gap:2px;height:100%}.traffic-bar{display:block;width:min(8px,44%);min-height:2px;border-radius:5px 5px 1px 1px}.traffic-bar--visits{background:#25815e}.traffic-bar--actions{background:#9fcbb8}.traffic-day small{display:block;padding-top:5px;color:#76857d;font-size:.65rem;white-space:nowrap;transform:translateX(-3px)}.stats-technical-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:18px 0}.stats-technical-grid .panel{margin:0}.tech-share-list{display:grid;gap:15px;margin-top:18px}.tech-share-row>div:first-child{display:flex;justify-content:space-between;gap:12px}.tech-share-row small{display:block;margin-top:5px;color:#718078}.tech-share-row .device-share-track i{background:#4a9275}
@media(max-width:850px){.stats-technical-grid{grid-template-columns:1fr}.traffic-chart{gap:3px;height:250px}.traffic-day small{font-size:.58rem}}
@media(max-width:560px){.stats-chart-panel .panel-heading{align-items:flex-start}.traffic-chart{grid-template-columns:repeat(30,minmax(4px,1fr));gap:2px;height:220px;padding-left:4px;padding-right:4px}.traffic-bar{width:46%}.chart-legend{gap:9px}}

/* NAM49 0187 — statistiques métier propres à la plateforme */
.stats-card-grid--business{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.stats-business-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}.stats-business-grid .panel{margin:0}.stats-city-ranking{grid-column:1/-1}.internal-month-chart{display:grid;grid-template-columns:repeat(12,minmax(34px,1fr));align-items:end;gap:10px;height:290px;margin-top:22px;padding:18px 12px 0;border-left:1px solid #dbe7e0;border-bottom:1px solid #dbe7e0;background:repeating-linear-gradient(to top,transparent 0,transparent 56px,#edf3ef 57px)}.internal-month{display:grid;grid-template-rows:25px 1fr 30px;align-items:end;height:100%;min-width:0;text-align:center}.internal-month strong{color:#35584a;font-size:.78rem}.internal-month i{display:block;width:min(34px,72%);min-height:4px;margin-inline:auto;border-radius:8px 8px 2px 2px;background:linear-gradient(#55a884,#267a59)}.internal-month small{padding-top:6px;color:#718078;font-size:.7rem;white-space:nowrap}.stats-business-grid .device-share-track i{background:#358563}@media(max-width:1050px){.stats-card-grid--business{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:800px){.stats-business-grid{grid-template-columns:1fr}.stats-city-ranking{grid-column:auto}.internal-month-chart{gap:6px;overflow-x:auto;grid-template-columns:repeat(12,minmax(48px,1fr))}}@media(max-width:520px){.stats-card-grid--business{grid-template-columns:1fr}.internal-month-chart{height:240px}.internal-month small{font-size:.64rem}}

/* 0188 — statistiques détaillées d'une annonce */
.announcement-stats-head{align-items:flex-end;gap:1.25rem}
.announcement-stats-section{margin-top:1.25rem}
.announcement-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem}
.announcement-stat-grid .stats-card{min-height:132px}
.announcement-stat-grid .stats-card strong{font-size:clamp(1.65rem,3vw,2.25rem)}
.privacy-note{margin:1rem 0 0;padding:.85rem 1rem;border-radius:14px;background:var(--surface-soft,#f4f7f5);font-size:.92rem;color:var(--text-muted,#52605a)}
@media (max-width:700px){.announcement-stats-head{align-items:stretch}.announcement-stats-head .actions-row{display:grid;grid-template-columns:1fr}.announcement-stats-head .btn{text-align:center}.announcement-stat-grid{grid-template-columns:1fr}}

/* 0188 — statistiques détaillées d'une annonce */
.announcement-stats-head{align-items:flex-end;gap:1.25rem}
.announcement-stats-section{margin-top:1.25rem}
.announcement-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem}
.announcement-stat-grid .stats-card{min-height:132px}
.announcement-stat-grid .stats-card strong{font-size:clamp(1.65rem,3vw,2.25rem)}
.privacy-note{margin:1rem 0 0;padding:.85rem 1rem;border-radius:14px;background:var(--surface-soft,#f4f7f5);font-size:.92rem;color:var(--text-muted,#52605a)}
@media (max-width:700px){.announcement-stats-head{align-items:stretch}.announcement-stats-head .actions-row{display:grid;grid-template-columns:1fr}.announcement-stats-head .btn{text-align:center}.announcement-stat-grid{grid-template-columns:1fr}}


/* Version 0190 — sélection de la période Matomo */
.stats-period-selector{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1rem 0 1.4rem;padding:1rem 1.2rem}
.stats-period-selector>div:first-child{display:flex;flex-direction:column;gap:.2rem}
.stats-period-selector span{color:var(--muted,#64748b);font-size:.92rem}
.stats-period-buttons{display:flex;flex-wrap:wrap;gap:.55rem}
.stats-period-buttons .btn{min-width:5.4rem;text-align:center}
@media(max-width:760px){.stats-period-selector{align-items:stretch;flex-direction:column}.stats-period-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.stats-period-buttons .btn{width:100%}}

/* Version 0191 — comparaison Matomo avec la période précédente */
.stats-comparison-panel{margin:1.1rem 0 1.3rem}.stats-comparison-panel .panel-heading{align-items:flex-start}.stats-comparison-dates{margin:0;color:var(--muted,#64748b);font-size:.88rem;text-align:right}.stats-comparison-dates span{display:inline-block;margin:0 .35rem;color:#8a9891}.stats-comparison-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.9rem;margin-top:1.1rem}.stats-comparison-card{min-width:0;padding:1rem;border:1px solid #dce8e1;border-radius:16px;background:linear-gradient(145deg,#fff,#f7faf8)}.stats-comparison-card__top{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.7rem}.stats-comparison-card .stats-card-icon{width:2.1rem;height:2.1rem;font-size:1rem}.stats-comparison-card>strong{display:block;color:#183d2e;font-size:clamp(1.35rem,2.2vw,1.9rem);line-height:1.1}.stats-comparison-card>span:not(.stats-change){display:block;margin-top:.3rem;font-weight:700}.stats-comparison-card small{display:block;margin-top:.55rem;color:#6f7e77;font-size:.78rem}.stats-change{display:inline-flex;align-items:center;justify-content:center;min-height:1.8rem;padding:.25rem .55rem;border-radius:999px;font-size:.75rem;font-weight:800;white-space:nowrap}.stats-change--up{background:#e1f4e8;color:#17643e}.stats-change--down{background:#fde7e5;color:#a12c25}.stats-change--neutral{background:#edf1ef;color:#65736c}@media(max-width:1100px){.stats-comparison-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.stats-comparison-panel .panel-heading{display:block}.stats-comparison-dates{margin-top:.5rem;text-align:left}.stats-comparison-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.stats-comparison-grid{grid-template-columns:1fr}}

/* 01.92 — Origine des visiteurs Matomo */
.stats-traffic-panel{margin:18px 0}.traffic-source-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:18px}.traffic-source-card{display:grid;grid-template-columns:auto 1fr;gap:10px 12px;align-items:center;min-width:0;padding:15px;border:1px solid #dce8e1;border-radius:17px;background:linear-gradient(145deg,#fff,#f7faf8)}.traffic-source-card__icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#e8f4ee;color:#176b4a;font-size:1.25rem;font-weight:900}.traffic-source-card>div:nth-child(2){min-width:0}.traffic-source-card strong,.traffic-source-card span,.traffic-source-card small{display:block}.traffic-source-card strong{color:#176b4a;font-size:1.45rem;line-height:1}.traffic-source-card span{margin-top:.25rem;font-weight:750;overflow-wrap:anywhere}.traffic-source-card small{margin-top:.2rem;color:#718078}.traffic-source-card>.device-share-track{grid-column:1/-1;margin-top:0}.stats-traffic-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:18px 0}.stats-traffic-details .panel{margin:0}.traffic-detail-list{margin-top:14px}.traffic-detail-list p{margin:.7rem 0 0;color:#718078}.stats-traffic-panel .device-share-track i{background:#2a8461}@media(max-width:1180px){.traffic-source-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:800px){.traffic-source-cards,.stats-traffic-details{grid-template-columns:1fr 1fr}}@media(max-width:520px){.traffic-source-cards,.stats-traffic-details{grid-template-columns:1fr}.traffic-source-card{grid-template-columns:auto 1fr}}


/* 01.93 — Répartition géographique Matomo */
.stats-geography-panel{margin-top:1.5rem}.stats-geography-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.geo-ranking-card{min-width:0;padding:1rem;border:1px solid var(--border,#dfe5e1);border-radius:14px;background:var(--surface-soft,#f8faf8)}.geo-ranking-card h3{margin:0 0 .75rem;font-size:1rem}.geo-ranking-card .statistics-table>div strong{white-space:nowrap;font-size:.88rem}@media(max-width:900px){.stats-geography-grid{grid-template-columns:1fr}}

/* 01.94 — Analyse des contenus Matomo */
.stats-content-analysis{margin-top:1.25rem}
.stats-content-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.content-ranking-card{min-width:0;border:1px solid var(--border,#dfe5e2);border-radius:16px;padding:1rem;background:var(--surface,#fff)}
.content-ranking-card h3{margin:0 0 .8rem;font-size:1.02rem}
.content-ranking-card .statistics-table>div span{min-width:0;overflow-wrap:anywhere}
.content-ranking-card .statistics-table>div strong{white-space:nowrap}
.stats-reading-guide{display:grid;gap:.75rem}
.stats-reading-guide p{margin:0;padding:.8rem;border-radius:12px;background:rgba(47,126,83,.07)}
@media (max-width:980px){.stats-content-grid{grid-template-columns:1fr}}


/* 01.95 — Recherches internes Matomo */
.stats-site-search{margin-top:1.25rem}.site-search-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1rem 0}.site-search-summary article{display:flex;align-items:center;gap:.85rem;padding:1rem;border:1px solid var(--border,#dfe5e2);border-radius:15px;background:linear-gradient(145deg,#fff,#f7faf8)}.site-search-summary article>span{display:grid;place-items:center;width:2.6rem;height:2.6rem;border-radius:12px;background:#e7f3ed;color:#176b4a;font-size:1.2rem;font-weight:900}.site-search-summary strong,.site-search-summary small{display:block}.site-search-summary strong{color:#183d2e;font-size:1.55rem;line-height:1}.site-search-summary small{margin-top:.3rem;color:#718078}.stats-site-search-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.content-ranking-card--warning{background:#fffaf5;border-color:#f1dcc6}.site-search-categories{margin-top:1rem}.site-search-categories h3{margin:0 0 .7rem;font-size:1rem}.search-category-chips{display:flex;flex-wrap:wrap;gap:.55rem}.search-category-chips span{padding:.5rem .7rem;border-radius:999px;background:#edf5f1;color:#315b49}.search-category-chips strong{margin-left:.3rem}@media(max-width:780px){.site-search-summary,.stats-site-search-grid{grid-template-columns:1fr}}


/* 01.96 — Événements Matomo */
.stats-events{margin-top:1.25rem}.events-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1rem 0}.events-summary article{display:flex;align-items:center;gap:.85rem;padding:1rem;border:1px solid var(--border,#dfe5e2);border-radius:15px;background:linear-gradient(145deg,#fff,#f7faf8)}.events-summary article>span{display:grid;place-items:center;width:2.6rem;height:2.6rem;border-radius:12px;background:#edf1fb;color:#3557a3;font-size:1.15rem;font-weight:900}.events-summary strong,.events-summary small{display:block}.events-summary strong{font-size:1.55rem;line-height:1;color:#183d2e}.events-summary small{margin-top:.3rem;color:#718078}.stats-events-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.event-ranking-card{padding:1rem;border:1px solid var(--border,#dfe5e2);border-radius:15px;background:#fff}.event-ranking-card h3{margin:0 0 .8rem;font-size:1rem}.event-examples{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:1rem;padding:.85rem 1rem;border-radius:13px;background:#f4f7fb;color:#40516a}.event-examples strong{margin-right:.25rem}.event-examples span{padding:.35rem .55rem;border-radius:999px;background:#fff;border:1px solid #dce3ef;font-size:.88rem}@media(max-width:980px){.stats-events-grid{grid-template-columns:1fr}}@media(max-width:780px){.events-summary{grid-template-columns:1fr}}

/* 01.98 — Audience Matomo en temps réel */
.stats-realtime{margin-top:1.25rem}.realtime-status{display:flex;align-items:center;gap:.5rem;color:#176b4a}.realtime-dot{width:.72rem;height:.72rem;border-radius:50%;background:#24a36a;box-shadow:0 0 0 .32rem rgba(36,163,106,.14);animation:realtimePulse 1.8s infinite}.stats-realtime--error .realtime-status{color:#a12c25}.stats-realtime--error .realtime-dot{background:#c94a42;box-shadow:0 0 0 .32rem rgba(201,74,66,.13);animation:none}.realtime-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1rem 0}.realtime-summary article{display:flex;align-items:center;gap:.85rem;padding:1rem;border:1px solid var(--border,#dfe5e2);border-radius:15px;background:linear-gradient(145deg,#fff,#f7faf8)}.realtime-summary article>span{display:grid;place-items:center;width:2.6rem;height:2.6rem;border-radius:12px;background:#e6f4ed;color:#167047;font-weight:900}.realtime-summary strong,.realtime-summary small{display:block}.realtime-summary strong{font-size:1.65rem;line-height:1;color:#183d2e}.realtime-summary small{margin-top:.3rem;color:#718078}.realtime-visits{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.realtime-visits>p{grid-column:1/-1;margin:.25rem 0;color:#718078}.realtime-visit-card{min-width:0;padding:.95rem;border:1px solid #e0e8e3;border-radius:14px;background:#fff}.realtime-visit-card>div{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.realtime-visit-card>div strong{min-width:0;overflow-wrap:anywhere}.realtime-visit-card>div span{white-space:nowrap;color:#176b4a;font-size:.82rem;font-weight:800}.realtime-visit-card>small{display:block;margin-top:.35rem;color:#718078}.realtime-visit-card ul{margin:.7rem 0 0;padding-left:1.15rem;color:#405149;font-size:.88rem}.realtime-visit-card li+li{margin-top:.3rem}.realtime-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem}.realtime-footer small{color:#718078}.realtime-footer .btn:disabled{opacity:.6;cursor:wait}@keyframes realtimePulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(.82);opacity:.72}}@media(max-width:820px){.realtime-visits{grid-template-columns:1fr}}@media(max-width:620px){.realtime-summary{grid-template-columns:1fr}.realtime-footer{align-items:stretch;flex-direction:column}.realtime-footer .btn{width:100%}.realtime-visit-card>div{align-items:flex-start;flex-direction:column;gap:.25rem}}


/* 01.99 — centre d’alertes statistiques */
.stats-alert-center{margin-bottom:1.5rem}
.stats-alert-count{font-weight:700;color:var(--muted)}
.stats-alert-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.85rem}
.stats-smart-alert{display:flex;align-items:flex-start;gap:.8rem;padding:1rem;border:1px solid var(--border);border-radius:14px;background:var(--surface-soft)}
.stats-smart-alert__icon{display:grid;place-items:center;flex:0 0 2.2rem;height:2.2rem;border-radius:999px;font-weight:800;background:var(--surface)}
.stats-smart-alert strong{display:block;margin-bottom:.25rem}
.stats-smart-alert p{margin:0;color:var(--muted);line-height:1.45}
.stats-smart-alert--success{border-color:#8bc9a8;background:#f1fbf5}
.stats-smart-alert--warning{border-color:#e4bf70;background:#fff9eb}
.stats-smart-alert--danger{border-color:#df8f8f;background:#fff2f2}
.stats-smart-alert--info{border-color:#8fb8df;background:#f2f8ff}
@media (max-width:640px){.stats-alert-grid{grid-template-columns:1fr}.stats-alert-center .panel-heading{align-items:flex-start}}

/* 02.00 — synthèse automatique de la période statistique */
.stats-period-summary{margin-bottom:1.5rem;position:relative;overflow:hidden;border-left:5px solid #6b7280}
.stats-period-summary--positive{border-left-color:#138a52}
.stats-period-summary--attention{border-left-color:#d97706}
.stats-period-summary__heading{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem}
.stats-period-summary__heading h2{margin:.15rem 0 0}
.stats-period-summary__badge{display:inline-flex;align-items:center;padding:.4rem .7rem;border-radius:999px;background:rgba(15,118,110,.1);color:#0f766e;font-size:.78rem;font-weight:700;white-space:nowrap}
.stats-period-summary__list{display:grid;gap:.7rem;margin:0;padding:0;list-style:none}
.stats-period-summary__list li{position:relative;padding:.8rem 1rem .8rem 2.25rem;border-radius:.8rem;background:rgba(148,163,184,.1);line-height:1.5}
.stats-period-summary__list li::before{content:'✓';position:absolute;left:.85rem;top:.8rem;font-weight:800;color:#138a52}
.stats-period-summary--attention .stats-period-summary__list li:first-child::before{content:'!';color:#d97706}
@media (max-width:640px){.stats-period-summary__heading{display:block}.stats-period-summary__badge{margin-top:.75rem}.stats-period-summary__list li{padding-right:.8rem}}


/* 02.01 — jours et horaires de fréquentation Matomo */
.stats-visit-times{margin:1.25rem 0}.visit-time-highlights{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.55rem}.visit-time-highlights span{padding:.45rem .65rem;border-radius:999px;background:#edf6f1;color:#486056;font-size:.82rem}.visit-time-highlights strong{color:#176b4a}.visit-time-grid{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(420px,1.2fr);gap:1.25rem;margin-top:1rem}.visit-time-grid>article{min-width:0;padding:1rem;border:1px solid #dfe8e3;border-radius:15px;background:#fbfdfc}.visit-time-grid h3{margin:0 0 .8rem;font-size:1rem}.visit-time-bars{display:grid;align-items:end;gap:.35rem;height:210px;padding-top:1.7rem;border-bottom:1px solid #d9e5de}.visit-time-bars--days{grid-template-columns:repeat(7,minmax(0,1fr))}.visit-time-bars--hours{grid-template-columns:repeat(24,minmax(0,1fr));gap:2px}.visit-time-bars>div{display:grid;grid-template-rows:1rem 1fr 1.3rem;align-items:end;height:100%;min-width:0;text-align:center}.visit-time-bars strong{align-self:start;color:#64756c;font-size:.7rem}.visit-time-bars i{display:block;justify-self:center;width:min(24px,70%);min-height:3px;border-radius:6px 6px 1px 1px;background:linear-gradient(#5da987,#247b59)}.visit-time-bars small{padding-top:.25rem;color:#718078;font-size:.68rem;white-space:nowrap}.visit-time-bars--hours i{width:72%}.visit-time-bars--hours strong{font-size:.58rem}@media(max-width:950px){.visit-time-grid{grid-template-columns:1fr}}@media(max-width:620px){.visit-time-highlights{justify-content:flex-start}.visit-time-bars{height:180px}.visit-time-bars--hours strong{display:none}.visit-time-bars--hours small{font-size:.58rem}}


/* 02.02 — périodes de pointe et créneaux calmes */
.visit-period-insights{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1rem}.visit-period-card{padding:1rem;border:1px solid #dfe8e3;border-radius:15px;background:#fbfdfc}.visit-period-card--peak{border-left:4px solid #247b59}.visit-period-card--quiet{border-left:4px solid #6b7280}.visit-period-card h3{margin:.2rem 0 .8rem;font-size:1rem}.visit-period-card ol{display:grid;gap:.45rem;margin:0 0 .75rem;padding:0;list-style:none;counter-reset:slot}.visit-period-card li{display:flex;justify-content:space-between;gap:1rem;padding:.55rem .7rem;border-radius:.7rem;background:rgba(148,163,184,.1);counter-increment:slot}.visit-period-card li strong:before{content:counter(slot) '. ';color:#718078}.visit-period-card li span{color:#64756c;white-space:nowrap}.visit-period-card small{display:block;color:#687870;line-height:1.45}@media(max-width:760px){.visit-period-insights{grid-template-columns:1fr}}
.week-profile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1rem}.week-profile-card{padding:1rem;border:1px solid #dfe8e3;border-radius:15px;background:#fbfdfc}.week-profile-card h3{margin:.2rem 0 .55rem;font-size:1rem}.week-profile-card>strong{display:block;font-size:1.25rem;color:#1f5f47;margin-bottom:.35rem}.week-profile-card small{display:block;color:#687870;line-height:1.45}.week-profile-card--summary{background:#f2f8f5;border-left:4px solid #247b59}@media(max-width:900px){.week-profile-grid{grid-template-columns:1fr}}


/* 02.04 — profil de fréquentation par partie de journée */
.daypart-profile{margin-top:1rem;padding:1rem;border:1px solid #dfe8e3;border-radius:15px;background:#fbfdfc}.daypart-profile__heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.9rem}.daypart-profile__heading h3{margin:.2rem 0 0;font-size:1rem}.daypart-profile__best{padding:.45rem .65rem;border-radius:999px;background:#edf6f1;color:#486056;font-size:.82rem;white-space:nowrap}.daypart-profile__best strong{color:#176b4a}.daypart-profile__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem}.daypart-profile__grid article{padding:.85rem;border-radius:12px;background:#fff;border:1px solid #e4ece7}.daypart-profile__grid article>div{display:flex;justify-content:space-between;gap:.5rem;align-items:baseline}.daypart-profile__grid article>div small{color:#718078}.daypart-profile__grid b{display:block;margin:.55rem 0 .4rem;color:#1f5f47}.daypart-profile__grid article>span{display:block;height:7px;overflow:hidden;border-radius:999px;background:#e8efeb}.daypart-profile__grid article>span i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#5da987,#247b59)}.daypart-profile__grid article>small{display:block;margin-top:.45rem;color:#687870;line-height:1.4}@media(max-width:900px){.daypart-profile__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:580px){.daypart-profile__heading{display:block}.daypart-profile__best{display:inline-flex;margin-top:.65rem}.daypart-profile__grid{grid-template-columns:1fr}}

/* 02.05 — engagement par partie de journée */
.daypart-profile__grid article>em{display:inline-flex;margin-top:.45rem;padding:.28rem .48rem;border-radius:999px;background:#f0f6f3;color:#245e48;font-size:.76rem;font-style:normal;font-weight:700}.engagement-insight{display:flex;gap:.85rem;align-items:flex-start;margin-top:.9rem;padding:.9rem 1rem;border:1px solid #cfe3d8;border-radius:13px;background:#f5faf7}.engagement-insight__icon{display:grid;place-items:center;flex:0 0 2.2rem;height:2.2rem;border-radius:50%;background:#dff0e7;color:#176b4a;font-size:1.15rem;font-weight:800}.engagement-insight h4{margin:.15rem 0 .25rem;color:#174f3b}.engagement-insight p{margin:0;color:#53665d;line-height:1.5}@media(max-width:580px){.engagement-insight{align-items:flex-start}}


/* 02.06 — évolution mensuelle Matomo */
.stats-monthly-summary{margin:.25rem 0 1.25rem;color:var(--muted,#5f6b65)}
.stats-trend-badge{display:inline-flex;align-items:center;border-radius:999px;padding:.45rem .75rem;font-weight:700;background:#eef2ef;color:#33433a}
.stats-trend-badge--up{background:#e7f7ed;color:#176b36}.stats-trend-badge--down{background:#fff0ee;color:#a12d25}
.stats-monthly-chart{display:grid;grid-template-columns:repeat(12,minmax(44px,1fr));gap:.55rem;align-items:end;min-height:230px;padding:1rem 0 1.25rem;overflow-x:auto}
.stats-monthly-bar{height:200px;min-width:44px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:.35rem;text-align:center}
.stats-monthly-bar strong{font-size:.78rem}.stats-monthly-bar i{display:block;width:min(32px,70%);min-height:4px;border-radius:8px 8px 2px 2px;background:linear-gradient(180deg,#56a977,#26734a)}
.stats-monthly-bar small{font-size:.7rem;white-space:nowrap;color:var(--muted,#65726b)}
.stats-monthly-records{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.8rem;margin-top:1.2rem}
.stats-monthly-records article{display:flex;gap:.7rem;align-items:flex-start;padding:.9rem;border:1px solid #dce7df;border-radius:12px;background:#f8fbf9}
.stats-monthly-records article>span{font-size:1.35rem}.stats-monthly-records p{margin:.25rem 0 0;color:var(--muted,#65726b)}
@media(max-width:760px){.stats-monthly-chart{grid-template-columns:repeat(12,52px)}.stats-monthly-evolution .panel-heading{align-items:flex-start;gap:.75rem;flex-direction:column}}

/* 02.07 — accès réservé aux testeurs pendant la maintenance */
.tester-maintenance-banner{background:#5b3f8c;color:#fff;border-bottom-color:#432d6d;text-align:center}
.tester-maintenance-banner strong{letter-spacing:.04em}

/* 0208 - suspicion de maltraitance */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin:1.2rem 0}.stat-grid article{background:#fff;border:1px solid #ddd;border-radius:14px;padding:1.2rem;display:flex;flex-direction:column}.stat-grid strong{font-size:2rem}.alert-card{padding:1rem 1.2rem;border-radius:12px;margin:1rem 0;background:#fff7df;border-left:5px solid #d48a00}.alert-card.danger{background:#fff0f0;border-color:#b42318}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.form-grid .full{grid-column:1/-1}.checkbox-stack{display:flex;flex-direction:column;gap:.6rem}.detail-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:1.2rem}.table-wrap{overflow:auto}@media(max-width:760px){.form-grid,.detail-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}}

/* Version 02.10 — menu burger hiérarchisé */
.drawer{padding:82px 14px 28px;width:min(390px,92vw)}
.drawer-head{padding:0 8px 14px;border-bottom:1px solid #e4ebe6;margin-bottom:10px}
.drawer .identity{margin-bottom:0}
.drawer .identity>div{min-width:0;display:grid;line-height:1.25}
.drawer .identity strong{overflow-wrap:anywhere}
.drawer .identity-role{padding:2px 0 0;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}
.drawer-account-actions{display:flex;gap:8px;margin-top:12px}
.drawer-account-actions a{flex:1;text-align:center;background:#eef4ef;border:1px solid #dce7df;font-weight:750}
.drawer-account-actions .drawer-account-primary{background:var(--leaf);border-color:var(--leaf);color:#fff}
.drawer-section-label{padding:17px 13px 5px;color:#77857e;font-size:.69rem;font-weight:900;letter-spacing:.16em}
.drawer>a,.drawer summary{min-height:45px;display:flex;align-items:center;gap:10px;padding:10px 13px;border-radius:12px;text-decoration:none;font-weight:760}
.drawer>a:hover,.drawer summary:hover{background:#edf4ef}
.drawer>a.active,.drawer-submenu>a.active{background:#e2efe6;color:#24583b;font-weight:850;box-shadow:inset 3px 0 0 var(--leaf)}
.nav-icon{width:1.55rem;text-align:center;flex:0 0 1.55rem;font-size:1rem}
.drawer-group{margin:2px 0}
.drawer-group>summary{list-style:none;cursor:pointer;justify-content:space-between;user-select:none}
.drawer-group>summary::-webkit-details-marker{display:none}
.drawer-group>summary>span:first-child{display:flex;align-items:center;gap:10px;min-width:0}
.drawer-group[open]>summary{background:#f2f6f3;color:#2e6245}
.drawer-chevron{font-size:1.15rem;transition:transform .18s ease;color:#718078}
.drawer-group[open] .drawer-chevron{transform:rotate(180deg)}
.drawer-submenu{display:grid;gap:1px;margin:2px 0 7px 24px;padding:3px 0 4px 12px;border-left:1px solid #dce6df}
.drawer-submenu>a{display:block;padding:8px 11px;border-radius:9px;font-size:.94rem;text-decoration:none;font-weight:580}
.drawer-submenu>a:hover{background:#edf4ef}
.drawer-subheading{display:block;padding:13px 11px 4px;color:#77857e;font-size:.7rem;font-weight:900;letter-spacing:.11em;text-transform:uppercase}
.drawer-logout{color:#9a3434!important;margin-top:4px}
.tester-chip{display:inline-flex;align-items:center;margin-left:5px;padding:2px 7px;border-radius:999px;background:#efe5ff;color:#6d28a8;font-size:.68rem;font-weight:900;vertical-align:middle}
.staff-group>summary{color:#315b48}
.admin-group>summary{color:#5c3e21}
@media(max-width:560px){.drawer{width:min(360px,94vw);padding-inline:10px}.drawer-submenu{margin-left:18px}}

/* Version 02.11 — en-tête compact du menu et salutation solaire */
.drawer-head{padding-bottom:12px}
.drawer .identity{align-items:center;gap:11px}
.drawer .identity-copy{display:grid;justify-items:start;gap:5px;min-width:0;line-height:1.2}
.drawer .identity-copy strong{font-size:.98rem}
.role-badge{display:inline-flex;align-items:center;width:max-content;padding:3px 8px;border-radius:999px;font-size:.68rem;font-weight:900;letter-spacing:.055em;text-transform:uppercase;background:#eef2ef;color:#48554e}
.role-badge--member{background:#e4f5e9;color:#24613b}
.role-badge--tester{background:#efe5ff;color:#6d28a8}
.role-badge--moderator{background:#fff0d9;color:#975a12}
.role-badge--admin,.role-badge--administrator{background:#fde7e7;color:#9b2929}
.role-badge--visitor{background:#edf0f2;color:#53616a}
.drawer-profile-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:11px}
.drawer-profile-actions a{display:flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:8px 10px;border:1px solid #dfe8e2;border-radius:10px;background:#f7faf8;text-align:center;font-size:.88rem;font-weight:760;text-decoration:none}
.drawer-profile-actions a:hover{background:#edf4ef}
.drawer-profile-actions a.active{border-color:#bcd2c4;background:#e5f0e8;color:#24583b}
.drawer-profile-actions .drawer-logout{margin-top:0;border-color:#efd6d6;background:#fff8f8;color:#983838!important}
.drawer-profile-actions .drawer-logout:hover{background:#fdecec}
@media(max-width:370px){.drawer-profile-actions{grid-template-columns:1fr}}

/* 02.15 — gestion enrichie des photos d'annonces */
.photo-primary-option{display:flex;align-items:center;gap:.45rem;font-weight:700;color:var(--primary,#245c45)}
.announcement-photo-item figcaption{display:grid;gap:.45rem;padding:.65rem}
.selected-photo-preview{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.75rem;margin-top:.8rem}
.selected-photo-preview:empty{display:none}
.selected-photo-preview figure{margin:0;border:1px solid #d9e4de;border-radius:12px;overflow:hidden;background:#fff}
.selected-photo-preview img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.selected-photo-preview figcaption{padding:.45rem .55rem;font-size:.82rem;overflow-wrap:anywhere}

/* 02.16 — alignement des contrôles des photos d'annonces */
.announcement-photo-item figcaption .photo-primary-option,
.announcement-photo-item figcaption .photo-delete-option {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: .55rem;
    width: 100%;
    margin: 0;
    line-height: 1.35;
}
.announcement-photo-item figcaption .photo-primary-option input[type="radio"],
.announcement-photo-item figcaption .photo-delete-option input[type="checkbox"] {
    flex: 0 0 auto;
    width: auto;
    min-width: 0;
    margin: 0;
    padding: 0;
}
.announcement-photo-item figcaption .photo-primary-option {
    color: var(--primary, #245c45);
    font-weight: 800;
}
.announcement-photo-item figcaption .photo-delete-option {
    font-weight: 700;
}

/* NAM49 02.17 — fiche publique détaillée */
.announcement-gallery{margin:0}.announcement-gallery-main{position:relative;display:block;width:100%;padding:0;border:0;border-radius:14px;overflow:hidden;background:#eef3ef;cursor:zoom-in}.announcement-gallery-main img{display:block;width:100%;height:360px;min-height:260px;object-fit:contain}.gallery-zoom-hint{position:absolute;right:14px;bottom:14px;padding:.45rem .75rem;border-radius:999px;background:rgba(18,38,25,.82);color:#fff;font-size:.85rem;font-weight:800}.announcement-gallery-thumbs{display:flex;gap:10px;margin-top:12px;overflow-x:auto;padding:2px}.gallery-thumb{flex:0 0 82px;height:66px;padding:0;border:3px solid transparent;border-radius:12px;overflow:hidden;background:#eef3ef;cursor:pointer}.gallery-thumb img{width:100%;height:100%;object-fit:cover}.gallery-thumb.is-active{border-color:var(--leaf);box-shadow:0 0 0 2px #fff,0 0 0 4px var(--leaf)}.announcement-photo-dialog{width:min(94vw,1100px);max-width:none;padding:44px 18px 18px;border:0;border-radius:18px;background:#101510}.announcement-photo-dialog::backdrop{background:rgba(0,0,0,.82)}.announcement-photo-dialog img{display:block;width:100%;max-height:82vh;object-fit:contain}.photo-dialog-close{position:absolute;right:10px;top:6px;width:38px;height:38px;border:0;border-radius:50%;background:#fff;font-size:1.75rem;line-height:1;cursor:pointer}.announcement-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;align-items:start;margin:1.5rem 0}.announcement-detail-layout--without-photo{grid-template-columns:1fr}.announcement-detail-right{display:grid;gap:22px;min-width:0}.announcement-photo-card,.announcement-description-card,.announcement-facts-card{min-width:0;padding:22px;border:1px solid #dfe8e1;border-radius:18px;background:#fff}.announcement-description-card h2,.announcement-facts-card h2{margin-top:0}.announcement-description-card .rich-content>:first-child{margin-top:0}.announcement-description-card .rich-content>:last-child{margin-bottom:0}.announcement-facts{margin:0}.announcement-facts>div{display:grid;grid-template-columns:96px minmax(0,1fr);gap:10px;padding:10px 0;border-bottom:1px solid #e8eeea}.announcement-facts>div:last-child{border-bottom:0}.announcement-facts dt{font-weight:800;color:var(--muted)}.announcement-facts dd{min-width:0;margin:0;font-weight:650;overflow-wrap:anywhere}.announcement-contact-card{display:grid;gap:10px;margin-top:18px;padding:16px;border-radius:14px;background:#f2f8f3}.announcement-contact-card .btn{text-align:center}.announcement-contact-card small{color:var(--muted);line-height:1.45}@media(max-width:1050px){.announcement-detail-layout{grid-template-columns:minmax(260px,.9fr) minmax(0,1.1fr)}.announcement-detail-right{display:contents}.announcement-photo-card{grid-column:1}.announcement-facts-card{grid-column:2}.announcement-description-card{grid-column:1/-1}.announcement-detail-layout--without-photo{grid-template-columns:minmax(285px,.8fr) minmax(0,1.2fr)}.announcement-detail-layout--without-photo .announcement-facts-card{grid-column:1}.announcement-detail-layout--without-photo .announcement-description-card{grid-column:2}}@media(max-width:760px){.announcement-detail-layout,.announcement-detail-layout--without-photo{grid-template-columns:1fr}.announcement-detail-right{display:contents}.announcement-photo-card,.announcement-facts-card,.announcement-description-card,.announcement-detail-layout--without-photo .announcement-facts-card,.announcement-detail-layout--without-photo .announcement-description-card{grid-column:1}.announcement-gallery-main img{height:62vw;min-height:240px}.announcement-facts>div{grid-template-columns:92px minmax(0,1fr)}}}

/* NAM49 0226 — palette unifiée des types d'annonce et carte compacte */
.map-dot.lost,.nam49-map-marker span.lost{background:#111111}
.map-dot.missing,.nam49-map-marker span.missing{background:#f28c00}
.map-dot.stolen,.nam49-map-marker span.stolen{background:#d62828}
.map-dot.found,.nam49-map-marker span.found{background:#1769d2}
.map-dot.sighted,.nam49-map-marker span.sighted{background:#7b2cbf}
.map-dot.recovered,.nam49-map-marker span.recovered{background:#238636}
.type-badge.lost{background:#ededed;color:#111111}
.type-badge.missing{background:#fff0d6;color:#8a4e00}
.type-badge.stolen{background:#fde7e7;color:#a51616}
.type-badge.found{background:#e5efff;color:#0f4fa8}
.type-badge.sighted{background:#f1e7fb;color:#612098}
.type-badge.recovered{background:#e4f5e8;color:#176a29}
.map-stage{overflow:hidden;border:1px dashed #9eb6a5;border-radius:20px;background:#f5faf6}
.map-stage .map-consent{min-height:280px;border:0;border-radius:0;padding:28px 34px}
.map-stage .announcement-map{border:0;border-radius:0}
.map-stage [hidden]{display:none!important}
@media(max-width:680px){.map-stage .map-consent{min-height:260px;padding:24px 18px}}

/* NAM49 0228-1 — correction ciblée de la légende : Animal perdu = noir */
.map-type-filters label .map-dot.lost {
    background-color: #111111 !important;
}

/* Identité visuelle administrable — v0230 */
body.site-has-custom-background{background-color:#edf4ef;background-image:linear-gradient(rgba(248,251,248,.84),rgba(237,244,239,.88)),var(--nam49-background-image);background-size:cover;background-position:center top;background-attachment:fixed;background-repeat:no-repeat}
.footer-brand-image{display:block;width:auto;max-width:min(260px,72vw);max-height:120px;margin:14px auto 0;object-fit:contain}
.visual-identity-form{display:grid;gap:20px}.visual-identity-card{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);gap:28px;align-items:center}.visual-identity-copy h2{margin:.25rem 0 .5rem}.visual-preview{min-height:230px;border:1px dashed #9fb6a7;border-radius:18px;background:#f3f7f4;display:grid;place-items:center;overflow:hidden;color:var(--muted);font-weight:800;text-align:center;padding:14px}.visual-preview img{display:block;width:100%;height:100%;max-height:330px;object-fit:contain;border-radius:12px}.visual-preview--background{aspect-ratio:16/9;background-image:linear-gradient(135deg,#f7faf7,#e8f0ea)}.visual-preview--background img{object-fit:cover}.visual-preview--logo{background:#fff}.visual-preview--logo span{font-size:2rem;letter-spacing:.12em;color:var(--leaf)}.visual-preview--favicon{min-height:180px}.visual-preview--favicon img{width:128px;height:128px;object-fit:contain}.visual-preview--favicon span{font-size:4rem}.visual-identity-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.visual-identity-actions .hint{margin:0}.danger-line{color:#8d3030}@media(max-width:800px){body.site-has-custom-background{background-attachment:scroll}.visual-identity-card{grid-template-columns:1fr}.visual-preview{min-height:190px}.visual-identity-actions .btn{width:100%}}


/* NAM49 0232 — menu contextuel intelligent */
.smart-context-menu{position:fixed;z-index:10050;width:min(310px,calc(100vw - 20px));max-height:min(620px,calc(100vh - 20px));overflow:auto;padding:8px;border:1px solid #cbd9cf;border-radius:14px;background:#fff;box-shadow:0 16px 48px rgba(16,45,29,.24);color:#173526}
.smart-context-menu[hidden]{display:none!important}
.smart-context-menu__title{position:sticky;top:-8px;z-index:1;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;margin:-8px -8px 6px;padding:11px 12px;border-bottom:1px solid #e1e9e3;border-radius:14px 14px 0 0;background:#edf6ef;color:#23563b}
.smart-context-menu__title button{display:grid;place-items:center;width:30px;height:30px;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;font-size:1.35rem;cursor:pointer}
.smart-context-menu__title button:hover{background:#dcecdf}
.smart-context-menu__items{display:grid;gap:2px}
.smart-context-menu__item{display:grid;grid-template-columns:25px minmax(0,1fr);align-items:center;gap:9px;width:100%;min-height:40px;padding:8px 10px;border:0;border-radius:9px;background:transparent;color:inherit;font:inherit;font-weight:700;text-align:left;text-decoration:none;cursor:pointer}
.smart-context-menu__item:hover,.smart-context-menu__item:focus-visible{background:#e9f3eb;color:#194b31;outline:2px solid transparent}
.smart-context-menu__item>span:first-child{display:grid;place-items:center;font-size:1.05rem}
.smart-context-menu__separator{height:1px;margin:5px 7px;background:#e2e9e4}
@media(max-width:600px){.smart-context-menu{width:min(290px,calc(100vw - 16px));border-radius:12px}}


/* 0233 — page publique et administration des liens utiles */
.useful-links-hero{max-width:900px;margin:0 auto 1.5rem;text-align:center}.useful-links-hero p{max-width:760px;margin:.75rem auto 0;color:var(--muted)}
.useful-links-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}.useful-link-card{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border);border-radius:20px;background:rgba(255,255,255,.95);box-shadow:0 10px 25px rgba(22,67,45,.08)}
.useful-link-visual{display:flex;align-items:center;justify-content:center;min-height:180px;padding:1rem;background:#f3f8f4;text-decoration:none}.useful-link-visual img{display:block;width:100%;height:180px;object-fit:contain}.useful-link-visual span{display:grid;place-items:center;width:92px;height:92px;border-radius:50%;background:var(--primary);color:#fff;font-size:2.5rem;font-weight:700}
.useful-link-body{display:flex;flex:1;flex-direction:column;align-items:flex-start;padding:1.25rem}.useful-link-body h2{margin:0 0 .65rem}.useful-link-description{flex:1;margin-bottom:1rem;color:var(--text);line-height:1.6}.useful-link-body .btn{margin-top:auto}
.useful-links-admin-list article{gap:1rem}.admin-link-summary{display:flex;align-items:center;gap:1rem;min-width:0}.admin-link-summary img{width:90px;height:58px;object-fit:contain;border:1px solid var(--border);border-radius:10px;background:#fff}.admin-link-summary div{display:flex;min-width:0;flex-direction:column}.admin-link-summary span{overflow:hidden;max-width:560px;color:var(--muted);font-size:.88rem;text-overflow:ellipsis;white-space:nowrap}.admin-link-actions{flex-wrap:wrap}.btn.compact{min-width:42px;padding:.55rem .7rem}.btn:disabled{cursor:not-allowed;opacity:.4}.upload-preview{margin:1rem 0;padding:1rem;border:1px dashed var(--border);border-radius:14px}.upload-preview img{display:block;max-width:100%;max-height:220px;margin-top:.75rem;object-fit:contain}.useful-link-visual-preview img{max-width:420px;max-height:180px;object-fit:contain}
@media(max-width:760px){.useful-links-grid{grid-template-columns:1fr}.admin-link-summary{align-items:flex-start}.admin-link-summary img{width:72px;height:52px}.useful-links-admin-list article{align-items:stretch}.admin-link-actions{justify-content:flex-start}}

/* NAM49 0240 — pilotage des utilisateurs */
.admin-user-search{display:grid;gap:14px}.admin-user-pilot-list{display:grid;gap:16px}.admin-user-pilot-card{display:grid;gap:16px}.admin-user-pilot-main{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.admin-user-pilot-main h2{margin:0 0 5px}.admin-user-pilot-main p{margin:0 0 5px}.admin-user-pilot-actions{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px;border-top:1px solid var(--border,#d8e3dc);padding-top:14px}.danger-disclosure{min-width:min(100%,330px);border:1px solid #e4b5b5;border-radius:12px;overflow:hidden}.danger-disclosure summary{cursor:pointer;padding:11px 14px;font-weight:800;color:#8c1e1e}.danger-disclosure-body{padding:0 14px 14px}.danger-disclosure-body form{display:grid;gap:10px}@media(max-width:720px){.admin-user-pilot-main{display:grid}.admin-user-pilot-main .btn{width:100%}.admin-user-pilot-actions{display:grid}.admin-user-pilot-actions form,.admin-user-pilot-actions .btn,.danger-disclosure{width:100%}}

/* 0241 — Centre de conversations */
.conversation-center-head{align-items:flex-end}.conversation-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:0 0 1rem}.conversation-metric{padding:1rem;border:1px solid #cfe0d6;border-radius:16px;background:rgba(255,255,255,.88);display:grid;gap:.2rem}.conversation-metric span{font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#587065}.conversation-metric strong{font-size:1.8rem;line-height:1;color:#145f42}.conversation-metric small{color:#66756d}.conversation-toolbar{display:grid;gap:1rem}.conversation-search{display:grid;gap:.45rem}.conversation-search>label{font-weight:800}.conversation-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.6rem}.conversation-search-row input{min-width:0}.contact-status-filters{margin:0}.contact-status-filters a{display:inline-flex;align-items:center;gap:.4rem;background:#fff}.contact-status-filters a span{display:inline-grid;place-items:center;min-width:1.55rem;height:1.55rem;padding:0 .35rem;border-radius:999px;background:#edf4f0;font-size:.76rem;font-weight:800}.contact-status-filters a.is-active{background:#176f4c;color:#fff;border-color:#176f4c}.contact-status-filters a.is-active span{background:rgba(255,255,255,.18)}.conversation-list{display:grid;gap:.8rem}.conversation-card{padding:0;overflow:hidden}.conversation-card-link{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:1rem;align-items:center;padding:1rem 1.1rem;color:inherit;text-decoration:none}.conversation-card-link:hover{background:#f6faf8}.conversation-card--new{border-left:5px solid #d39b13}.conversation-card--in_progress{border-left:5px solid #3d78b5}.conversation-card--answered{border-left:5px solid #25815a}.conversation-card--closed{border-left:5px solid #89958f}.conversation-avatar{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:#e4f1ea;color:#155f42;font-weight:900;font-size:1.15rem}.conversation-card-main{min-width:0}.conversation-card-topline{display:flex;align-items:center;justify-content:space-between;gap:1rem}.conversation-card-topline>div{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.conversation-card-topline time{font-size:.8rem;color:#66756d;white-space:nowrap}.conversation-module{font-size:.74rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#597068}.conversation-card h2{margin:.5rem 0 .2rem;font-size:1.12rem}.conversation-sender,.conversation-preview{margin:.2rem 0}.conversation-sender span,.conversation-preview{color:#66756d}.conversation-preview{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conversation-card-meta{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:.6rem;font-size:.78rem;color:#5f7168}.conversation-open{font-weight:800;color:#176f4c;white-space:nowrap}.conversation-sync-details{margin-top:1rem}.conversation-sync-details summary{cursor:pointer;font-weight:800}.conversation-sync-content{padding-top:1rem}.contact-thread-item.incoming,.contact-thread-item.outgoing{position:relative}.contact-thread-item.incoming:before,.contact-thread-item.outgoing:before{content:"";position:absolute;top:18px;width:10px;height:10px;transform:rotate(45deg);background:inherit}.contact-thread-item.incoming:before{left:-6px;border-left:1px solid #d4e2da;border-bottom:1px solid #d4e2da}.contact-thread-item.outgoing:before{right:-6px;border-right:1px solid #b9d9c7;border-top:1px solid #b9d9c7}@media(max-width:1000px){.conversation-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){.conversation-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.conversation-search-row{grid-template-columns:1fr}.conversation-card-link{grid-template-columns:auto minmax(0,1fr)}.conversation-open{display:none}.conversation-card-topline{align-items:flex-start;flex-direction:column;gap:.35rem}.conversation-card-topline time{white-space:normal}.conversation-preview{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.conversation-center-head{align-items:flex-start}}@media(max-width:430px){.conversation-metrics{grid-template-columns:1fr}.conversation-card-link{grid-template-columns:1fr}.conversation-avatar{display:none}}

/* 0242 — priorité aux nouvelles conversations et pastille du menu */
.nav-badge--new{background:#c62828;box-shadow:0 0 0 3px rgba(198,40,40,.16)}
.nav-badge--high{background:#e06b16;box-shadow:0 0 0 3px rgba(224,107,22,.18)}

/* 0243 - Centre de conversations générique */
.conversation-type-filters{display:flex;gap:.45rem;flex-wrap:wrap;padding-bottom:.9rem;border-bottom:1px solid #d8e5de}.conversation-type-filters a{display:inline-flex;align-items:center;gap:.4rem;padding:.48rem .72rem;border:1px solid #cfe0d6;border-radius:999px;background:#fff;color:#315447;text-decoration:none;font-weight:750;font-size:.83rem}.conversation-type-filters a span{display:inline-grid;place-items:center;min-width:1.45rem;height:1.45rem;padding:0 .3rem;border-radius:999px;background:#edf4f0;font-size:.72rem}.conversation-type-filters a.is-active{background:#176f4c;color:#fff;border-color:#176f4c}.conversation-type-filters a.is-active span{background:rgba(255,255,255,.18)}.conversation-card{position:relative}.conversation-card--pinned{box-shadow:inset 0 0 0 2px #e0ad35}.conversation-pinned{font-size:.72rem;font-weight:850;color:#9a6500}.conversation-pin-form{position:absolute;right:.65rem;bottom:.55rem;z-index:3}.conversation-pin-button{width:2.1rem;height:2.1rem;border:1px solid #d6e2db;border-radius:50%;background:#fff;color:#a46d05;font-size:1.15rem;cursor:pointer}.conversation-pin-button:hover{background:#fff7dd}.conversation-events{grid-column:1/-1}.conversation-events summary{cursor:pointer;font-weight:850}.conversation-event-list{display:grid;gap:.55rem;margin-top:1rem}.conversation-event-list article{display:grid;grid-template-columns:145px minmax(0,1fr) auto;gap:.8rem;align-items:center;padding:.65rem .75rem;border-left:3px solid #7aa98f;background:#f6faf8;border-radius:8px}.conversation-event-list time,.conversation-event-list span{font-size:.8rem;color:#62746b}@media(max-width:700px){.conversation-event-list article{grid-template-columns:1fr;gap:.2rem}.conversation-pin-form{right:.45rem;bottom:.35rem}}
.quick-reply-picker{display:flex;gap:.75rem;align-items:end;flex-wrap:wrap;margin-bottom:1rem}.quick-reply-picker label{flex:1;min-width:240px}.quick-reply-admin-list article,.internal-note-list article{display:flex;justify-content:space-between;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--border,#d8e2dc)}.quick-reply-admin-list small{display:block;color:#66756d;margin-top:.25rem}.internal-note-list{margin-top:1rem}.internal-note-list article{display:block;background:#f7faf8;border:1px solid #dce8e0;border-radius:12px;padding:1rem;margin-bottom:.75rem}.internal-note-list header{display:flex;justify-content:space-between;gap:1rem}.mail-signature{color:#42554a}.admin-two-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem}@media(max-width:900px){.admin-two-columns{grid-template-columns:1fr}}

/* 0248 — pilotage des conversations */
.conversation-priority{display:inline-flex;align-items:center;padding:.18rem .5rem;border-radius:999px;font-size:.72rem;font-weight:700;margin-right:.4rem}.conversation-priority--high{background:#fff2cc;color:#6b4d00}.conversation-priority--urgent{background:#ffe1e1;color:#8b1616}.conversation-card-meta .is-overdue{color:#a51616;font-weight:700}.conversation-assignment .assignment-summary{margin-top:1rem;padding:.75rem;border-radius:.75rem;background:var(--surface-soft,#f2f7f3)}.date-input-wrap{width:100%;border:1px solid #cfd8d1;border-radius:.65rem;padding:.65rem .75rem;background:#fff}.date-input-wrap input{display:block;width:100%;min-width:0;border:0;background:transparent;padding:0;font:inherit}

/* 0251 : tableau de bord administrateur - centre de pilotage */
.admin-command-center{gap:1rem}.command-hero{background:linear-gradient(135deg,#fff,#edf7f1)}
.dashboard-alert-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.dashboard-alert{display:flex;align-items:center;gap:.75rem;padding:.9rem 1rem;border:1px solid #dce8e1;border-radius:15px;background:#fff;text-decoration:none;color:inherit}.dashboard-alert strong{display:grid;place-items:center;min-width:2.25rem;height:2.25rem;border-radius:999px;background:#eef4f0;color:#176843}.dashboard-alert.is-alert{border-color:#e7a39b;background:#fff6f4}.dashboard-alert.is-alert strong{background:#b63a2d;color:#fff}.dashboard-alert.is-warning{border-color:#e8c37f;background:#fffaf0}.dashboard-alert.is-warning strong{background:#d48712;color:#fff}.dashboard-alert.is-ok{border-color:#8fc9a6;background:#f3fbf6}.dashboard-alert.is-ok strong{background:#218654;color:#fff}
.command-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.command-card{padding:1.2rem;border:1px solid #dce8e1;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(25,75,51,.05)}.command-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;margin-bottom:1rem}.command-metrics>a,.command-metrics>span{display:grid;gap:.15rem;padding:.75rem;border-radius:13px;background:#f4f8f5;text-decoration:none;color:inherit}.command-metrics strong{font-size:1.35rem;color:#176843}.command-metrics span{font-size:.78rem;color:#5b6b62}.command-note{margin:.75rem 0 0;color:#5b6b62}.health-list{display:grid;gap:.65rem}.health-list>div,.health-list>a{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid #edf1ee;text-decoration:none;color:inherit}.health-list>div:last-child,.health-list>a:last-child{border-bottom:0}.health{font-size:.82rem;padding:.3rem .55rem;border-radius:999px}.health.ok{background:#dcf5df;color:#17652e}.health.warn{background:#fff0d9;color:#8b5400}.health.bad{background:#ffe5e1;color:#9a2920}.command-footer-summary{display:flex;flex-wrap:wrap;gap:.8rem 1.2rem;padding:1rem 1.2rem;border:1px solid #dce8e1;border-radius:16px;background:#f8fbf9}.command-footer-summary span{color:#526259}
@media(max-width:980px){.dashboard-alert-strip,.command-grid{grid-template-columns:1fr 1fr}.command-metrics{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.dashboard-alert-strip,.command-grid{grid-template-columns:1fr}.dashboard-alert{align-items:flex-start}.command-footer-summary{display:grid}.command-card .panel-heading{flex-direction:row;align-items:flex-start}}


/* 0251 - Gestion de l'ouverture du site dans le tableau de bord */
.command-card-wide{grid-column:1/-1}
.site-opening-statuses{display:flex;gap:.55rem;flex-wrap:wrap;justify-content:flex-end}
.site-opening-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:1.25rem;align-items:start}
.site-opening-form{padding:1rem;border:1px solid var(--border,#c7d8ce);border-radius:16px;background:rgba(255,255,255,.72)}
.site-opening-form h3{margin-top:0}
.site-opening-form textarea{width:100%}
@media (max-width:850px){.site-opening-grid{grid-template-columns:1fr}.site-opening-statuses{justify-content:flex-start}}

.site-opening-card-prominent{margin:1rem 0 1.25rem;border:2px solid var(--primary,#1f6f43);background:rgba(255,255,255,.92)}
.site-opening-card-prominent>.panel-heading{padding-bottom:.75rem;border-bottom:1px solid var(--border,#c7d8ce)}
.site-opening-card-prominent .site-opening-statuses{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}

/* 0252 — pages dédiées maintenance et inscriptions */
.opening-status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;margin:1rem 0 1.25rem}
.opening-status-card{display:flex;flex-direction:column;align-items:flex-start;min-height:230px}
.opening-status-card .panel-heading{width:100%;padding-bottom:.75rem;border-bottom:1px solid var(--border,#c7d8ce)}
.opening-status-card>p{flex:1;margin:1rem 0 1.25rem}
.maintenance-settings-panel,.registration-settings-panel{margin-bottom:1rem}
.maintenance-master-switch,.registration-master-switch{font-size:1.05rem;padding:1rem;border:1px solid var(--border,#c7d8ce);border-radius:14px;background:rgba(255,255,255,.72)}
.maintenance-settings-panel .tox-tinymce{margin-top:.45rem;border-radius:14px}
.service-toggle-box{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.5rem;align-items:center;padding:1.25rem;border:1px solid var(--border,#c7d8ce);border-radius:16px;background:rgba(255,255,255,.72)}
.service-toggle-box strong{font-size:1.08rem}
.service-toggle-box p{margin:.35rem 0 0}
@media(max-width:800px){.opening-status-grid{grid-template-columns:1fr}.service-toggle-box{grid-template-columns:1fr}.opening-status-card{min-height:0}}

/* NAM49 02.53 — centre de configuration */
.configuration-head{margin-bottom:1.25rem}.configuration-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.configuration-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:.9rem;padding:1.2rem;border:1px solid var(--line,#c9d9cf);border-radius:18px;background:rgba(255,255,255,.9);box-shadow:0 8px 24px rgba(19,76,49,.05)}.configuration-card__heading{display:flex;align-items:center;gap:.8rem;width:100%}.configuration-card__heading h2{margin:.12rem 0 0}.configuration-card__icon{display:grid;place-items:center;width:2.7rem;height:2.7rem;border-radius:14px;background:#eef7f1;font-size:1.3rem}.configuration-card p{margin:0;line-height:1.55}.configuration-card .btn{margin-top:auto}.configuration-card--status .status{position:absolute;top:1.15rem;right:1.15rem}@media (max-width:760px){.configuration-grid{grid-template-columns:1fr}.configuration-card--status .status{position:static}.configuration-card__heading{padding-right:0}}

/* NAM49 02.55 - Sauvegardes */
.backup-actions-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1rem 0}.backup-actions-grid .configuration-card{height:100%}.check-row{display:flex!important;align-items:center;gap:.65rem}.check-row input{width:auto}.code-block{overflow:auto;padding:.8rem 1rem;border:1px solid #c7d9cd;border-radius:.75rem;background:#f5f8f6}.actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.actions form{margin:0}.btn.danger{background:#a92f2f;color:#fff}.btn.small{padding:.45rem .7rem;font-size:.88rem}@media(max-width:760px){.backup-actions-grid{grid-template-columns:1fr}}


/* NAM49 02.56 - Performances et cache */
.performance-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:22px 0}.metric-card{background:#fff;border:1px solid #d8e3dc;border-radius:18px;padding:20px;box-shadow:0 8px 24px rgba(31,64,46,.06);display:grid;gap:5px}.metric-card span{font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#64746b}.metric-card strong{font-size:1.45rem}.metric-card small{color:#6f7e76}.text-ok{color:#217044!important}.text-alert{color:#a73535!important}.text-muted{color:#69756f!important}.performance-layout{align-items:start}.toggle-row{display:flex!important;gap:12px;align-items:flex-start;padding:15px;border:1px solid #d9e4dd;border-radius:14px;background:#f8fbf9}.toggle-row input{margin-top:4px;width:19px;height:19px}.toggle-row span{display:grid;gap:3px}.toggle-row small{font-weight:400;color:#64746b}.technical-list{display:grid;gap:0;margin:0}.technical-list div{display:flex;justify-content:space-between;gap:20px;padding:11px 0;border-bottom:1px solid #e5ece7}.technical-list dt{font-weight:700}.technical-list dd{margin:0;text-align:right}.cache-manager{margin-top:20px}.cache-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.cache-card{border:1px solid #dbe5de;border-radius:15px;padding:17px;background:#fbfdfb}.cache-card h3{font-size:1rem;margin:0 0 9px}.cache-card p{margin:0 0 14px}.info-box{padding:12px 14px;border-radius:12px;background:#edf5f0;color:#405249}.form-grid.two-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}@media(max-width:1000px){.performance-summary,.cache-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.performance-summary,.cache-grid,.form-grid.two-cols{grid-template-columns:1fr}.technical-list div{display:grid;gap:3px}.technical-list dd{text-align:left}}

/* 02.57 — Recherche avancée */
.advanced-search-layout{display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);gap:22px;align-items:start}.advanced-search-sidebar{position:sticky;top:18px;min-width:0}.advanced-search-sidebar details,.advanced-search-form,.advanced-search-form label,.advanced-search-form fieldset,.advanced-search-pair>*{min-width:0}.advanced-search-sidebar summary{cursor:pointer;font-size:1.08rem;font-weight:800}.advanced-search-form{display:grid;gap:14px;margin-top:18px}.advanced-search-form label{display:grid;gap:6px;font-weight:700}.advanced-search-form input,.advanced-search-form select,.advanced-search-form textarea{display:block;width:100%;max-width:100%;min-width:0}.advanced-search-form fieldset{margin:0;padding:12px;border:1px solid var(--border,#d7e1da);border-radius:12px}.advanced-search-form legend{padding:0 6px;font-weight:800}.advanced-search-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.advanced-search-actions{display:flex;gap:10px;flex-wrap:wrap}.advanced-search-results{min-width:0}.advanced-search-summary{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:18px}.advanced-search-summary span{color:var(--muted,#66736c)}.advanced-results-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.checkbox-line{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;justify-content:flex-start}.checkbox-line input{width:auto}.announcement-public-card{min-width:0}.announcement-public-card img{width:100%;height:100%;object-fit:cover}
@media(max-width:1120px){.advanced-search-layout{grid-template-columns:1fr}.advanced-search-sidebar{position:static}.advanced-results-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.advanced-search-pair,.advanced-results-grid{grid-template-columns:1fr}.advanced-search-summary{align-items:flex-start;flex-direction:column}.advanced-search-sidebar details:not([open]){padding-bottom:0}}

/* NAM49 02.58 — Centre de supervision */
.supervision-overview{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;margin:18px 0 22px;padding:22px;border:1px solid #d7e2da;border-radius:20px;background:rgba(255,255,255,.93);box-shadow:0 10px 30px rgba(31,64,46,.07)}.supervision-overview__icon,.supervision-check__icon{display:grid;place-items:center;border-radius:50%;font-weight:900}.supervision-overview__icon{width:58px;height:58px;font-size:1.7rem}.supervision-overview h2{margin:.15rem 0}.supervision-overview p{margin:0}.supervision-overview--ok .supervision-overview__icon{background:#dcf5e6;color:#15683a}.supervision-overview--warning .supervision-overview__icon{background:#fff0c7;color:#8b5c00}.supervision-overview--error .supervision-overview__icon{background:#ffe0e0;color:#9a2929}.supervision-totals{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.supervision-total{padding:8px 11px;border-radius:999px;font-size:.88rem}.supervision-total--ok{background:#e7f7ed;color:#16653b}.supervision-total--warning{background:#fff2cc;color:#765000}.supervision-total--error{background:#ffe3e3;color:#922b2b}.supervision-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.supervision-check{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;padding:18px;border:1px solid #dbe5de;border-left-width:5px;border-radius:16px;background:rgba(255,255,255,.9)}.supervision-check--ok{border-left-color:#2e8b57}.supervision-check--warning{border-left-color:#d99a16}.supervision-check--error{border-left-color:#c04444}.supervision-check__icon{width:34px;height:34px}.supervision-check--ok .supervision-check__icon{background:#e3f5ea;color:#1c6a40}.supervision-check--warning .supervision-check__icon{background:#fff0c8;color:#835800}.supervision-check--error .supervision-check__icon{background:#ffe1e1;color:#992c2c}.supervision-check__heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.supervision-check h2{margin:0 0 8px;font-size:1.05rem}.supervision-check p{margin:5px 0 0;color:#65736b}.supervision-badge{flex:none;padding:4px 8px;border-radius:999px;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.supervision-badge--ok{background:#e3f5ea;color:#1c6a40}.supervision-badge--warning{background:#fff0c8;color:#835800}.supervision-badge--error{background:#ffe1e1;color:#992c2c}.supervision-server{margin-top:20px}@media(max-width:850px){.supervision-overview{grid-template-columns:auto 1fr}.supervision-totals{grid-column:1/-1;justify-content:flex-start}.supervision-grid{grid-template-columns:1fr}}@media(max-width:560px){.supervision-overview{grid-template-columns:1fr}.supervision-overview__icon{width:48px;height:48px}.supervision-check__heading{display:grid}.supervision-badge{justify-self:start}}

/* NAM49 02.59 — Vérifications avant ouverture */
.release-progress{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;margin:18px 0 22px}.release-progress h2{margin:.15rem 0}.release-progress p{margin:0}.release-progress__percent{font-size:2rem;color:var(--primary,#1f6f43)}.release-progress__bar{grid-column:1/-1;height:12px;overflow:hidden;border-radius:999px;background:#e4ece7}.release-progress__bar span{display:block;height:100%;border-radius:inherit;background:var(--primary,#1f6f43);transition:width .25s ease}.release-checklist-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.release-section{padding:0;overflow:hidden}.release-section__head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:18px 18px 14px;border-bottom:1px solid #dce6df}.release-section__head h2{margin:.15rem 0 0;font-size:1.12rem}.release-items{display:grid}.release-item{display:grid;gap:10px;padding:16px 18px;border-bottom:1px solid #e4ebe6;background:rgba(255,255,255,.82)}.release-item:last-child{border-bottom:0}.release-item--done{background:#f0f8f3}.release-item__check{display:grid!important;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;font-weight:800}.release-item__check input{width:20px;height:20px;margin-top:2px}.release-item__note{display:grid!important;gap:5px;font-size:.88rem;color:#5f6e65}.release-item__note textarea{width:100%;min-height:62px;resize:vertical}.release-item small{color:#6b786f}.sticky-form-actions{position:sticky;bottom:12px;z-index:5;display:flex;justify-content:flex-end;margin:18px 0;padding:12px;border:1px solid #d3e1d8;border-radius:15px;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);box-shadow:0 10px 28px rgba(28,70,45,.12)}.danger-zone{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:22px}.danger-zone h2{margin:0 0 4px}.danger-zone p{margin:0}@media(max-width:900px){.release-checklist-grid{grid-template-columns:1fr}}@media(max-width:600px){.release-progress{grid-template-columns:1fr}.release-progress__percent{font-size:1.6rem}.danger-zone{display:grid}.sticky-form-actions{justify-content:stretch}.sticky-form-actions .btn{width:100%}}


/* NAM49 02.60 — Référencement et partage */
.seo-settings-form{display:grid;gap:1.2rem}.seo-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.seo-settings-grid label{display:grid;gap:.45rem;font-weight:700}.seo-span-2{grid-column:1/-1}.seo-settings-grid input,.seo-settings-grid textarea{width:100%;box-sizing:border-box}.seo-warning{padding:1rem;border-radius:14px;background:#fff6d8;border:1px solid #e7cd76}.seo-tools{margin-top:1.25rem}.seo-tools p{margin:.45rem 0}@media(max-width:760px){.seo-settings-grid{grid-template-columns:1fr}.seo-span-2{grid-column:auto}}

/* NAM49 02.61 — Accessibilité et confort d’affichage */
.skip-link{position:fixed;left:12px;top:12px;z-index:10000;transform:translateY(-180%);padding:.75rem 1rem;border-radius:10px;background:#fff;color:#111;font-weight:800;box-shadow:0 4px 18px rgba(0,0,0,.25)}.skip-link:focus{transform:none}.accessibility-dialog{width:min(92vw,430px);border:0;border-radius:18px;padding:0;box-shadow:0 24px 70px rgba(0,0,0,.28)}.accessibility-dialog::backdrop{background:rgba(0,0,0,.45)}.accessibility-dialog form{display:grid;gap:14px;padding:20px}.accessibility-dialog__head{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:1.2rem}.accessibility-dialog__head button{border:0;background:transparent;font-size:1.7rem;cursor:pointer}.accessibility-dialog label{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--border,#d8e3dc);border-radius:12px;font-weight:700}.accessibility-dialog input{width:20px;height:20px}.a11y-large-text{font-size:112.5%}.a11y-high-contrast{--primary:#064f2d;--text:#101010;--muted:#333;--border:#555}.a11y-high-contrast .panel,.a11y-high-contrast .card,.a11y-high-contrast footer{border-color:#444}.a11y-underline-links a:not(.btn){text-decoration:underline!important;text-underline-offset:3px}.a11y-reduce-motion *,.a11y-reduce-motion *::before,.a11y-reduce-motion *::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.accessibility-admin-form{display:grid;gap:14px}
@media(prefers-reduced-motion:reduce){body[data-accessibility-reduced-motion="1"] *{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}

/* NAM49 02.62 — correctifs configuration et tâches automatiques */
.configuration-head{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;flex-wrap:wrap}.configuration-head>div{min-width:0;flex:1 1 520px}.configuration-head>.btn{flex:0 0 auto}.configuration-grid>.configuration-card{min-width:0}.technical-list strong{overflow-wrap:anywhere}@media(max-width:760px){.configuration-head{align-items:flex-start}.configuration-head>.btn{width:100%}}

/* 02.65 — Présentation des e-mails */
.email-theme-layout{align-items:start}.email-theme-preview{width:100%;min-height:680px;border:1px solid #d5e3da;border-radius:14px;background:#fff}.email-theme-layout input[type=color]{width:100%;height:48px;padding:4px;border-radius:10px}@media(max-width:980px){.email-theme-layout{display:block}.email-theme-layout>.panel+.panel{margin-top:18px}.email-theme-preview{min-height:760px}}

/* NAM49 02.66 - fiche d’annonce vivante */
.announcement-live-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin:1rem 0 1.25rem}.announcement-live-summary>div{background:rgba(255,255,255,.78);border:1px solid rgba(23,111,73,.2);border-radius:14px;padding:.85rem;text-align:center}.announcement-live-summary strong{display:block;font-size:1.45rem;color:var(--primary,#176f49)}.announcement-live-summary span{display:block;font-size:.82rem;margin-top:.15rem}.announcement-location-card{margin:1.5rem 0;background:rgba(255,255,255,.82);border:1px solid rgba(23,111,73,.22);border-radius:18px;padding:1rem}.announcement-location-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.85rem}.announcement-location-heading h2{margin:0 0 .25rem}.announcement-location-heading p{margin:0}.announcement-mini-map{height:300px;border-radius:14px;overflow:hidden;border:1px solid rgba(0,0,0,.15)}@media(max-width:760px){.announcement-live-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.announcement-location-heading{display:block}.announcement-location-heading .btn{margin-top:.75rem}.announcement-mini-map{height:240px}}

/* NAM49 02.67 — alertes administratives */
.admin-alert-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1rem 0 1.25rem}.admin-alert-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem}.admin-alert-card{display:flex;flex-direction:column;gap:.25rem;padding:1rem;border:1px solid var(--border,#d8e1dc);border-left:5px solid #7d8b84;border-radius:14px;background:#fff;text-decoration:none;color:inherit;transition:transform .15s ease,box-shadow .15s ease}.admin-alert-card:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(20,55,40,.10)}.admin-alert-card strong{font-size:1.8rem}.admin-alert-card small{margin-top:.45rem;color:#5f6f66}.admin-alert-card.level-danger{border-left-color:#b42318}.admin-alert-card.level-warning{border-left-color:#d97706}.admin-alert-card.level-info{border-left-color:#2563eb}@media(max-width:640px){.admin-alert-toolbar{align-items:stretch;flex-direction:column}.admin-alert-grid{grid-template-columns:1fr}}

/* 02.67-1 - affichage robuste du centre d'alertes */
.admin-alert-center .admin-alert-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem;min-height:1px;margin-top:.25rem;visibility:visible!important;opacity:1!important}
.admin-alert-center .admin-alert-card{display:flex!important;visibility:visible!important;opacity:1!important;min-height:125px}
.admin-alert-center .admin-alert-empty{display:block!important;visibility:visible!important;opacity:1!important;grid-column:1/-1}
.admin-alert-center .admin-alert-render-warning{border:1px solid #efc15f;background:#fff8e7}
@media(max-width:640px){.admin-alert-center .admin-alert-grid{grid-template-columns:1fr}}

/* 02.68 — Centre de préparation à l'ouverture publique */
.opening-readiness-summary{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center}
.opening-readiness-summary .release-progress__bar{grid-column:1/-1}
.opening-readiness-score{font-size:clamp(2.2rem,5vw,4.3rem);color:var(--primary,#176f49)}
.opening-readiness-counts{grid-column:1/-1;display:flex;gap:10px;flex-wrap:wrap}
.opening-readiness-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:18px 0}
.opening-readiness-card{border-left:5px solid #d79a00}
.opening-readiness-card--ok{border-left-color:#2f9560}
.opening-readiness-card--error{border-left-color:#c83b31}
.opening-readiness-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.opening-readiness-card h2{margin:.2rem 0 0}
.opening-readiness-card p{min-height:3em}
.opening-next-actions ol{margin:0;padding-left:1.4rem}.opening-next-actions li+li{margin-top:.65rem}
.opening-cleanup-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:20px}
@media(max-width:900px){.opening-readiness-grid{grid-template-columns:1fr}.opening-cleanup-groups{grid-template-columns:1fr}}
@media(max-width:640px){.opening-readiness-summary{grid-template-columns:1fr}.opening-readiness-card__head{display:block}.opening-readiness-card__head .supervision-badge{margin-top:10px}}

/* NAM49 02.69 — optimisation mobile et responsive globale */
:root{--mobile-safe-bottom:env(safe-area-inset-bottom,0px);--mobile-safe-left:env(safe-area-inset-left,0px);--mobile-safe-right:env(safe-area-inset-right,0px)}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{overflow-x:hidden}
img,svg,video,canvas,iframe{max-width:100%}
input,select,textarea,button{max-width:100%}
.table-responsive{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}

@media(max-width:1024px){
  .container,.page-shell,.main-content{width:100%;max-width:100%;min-width:0}
  .panel,.card,.configuration-card,.command-card{min-width:0}
  .configuration-grid,.command-grid,.opening-readiness-grid,.release-checklist-grid{grid-template-columns:1fr}
  .dashboard-alert-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .announcement-layout,.profile-layout,.admin-two-columns,.email-theme-layout{grid-template-columns:1fr!important}
  table{font-size:.94rem}
}

@media(max-width:760px){
  body{padding-left:var(--mobile-safe-left);padding-right:var(--mobile-safe-right)}
  main{min-width:0}
  .container,.page-shell,.main-content{padding-left:14px!important;padding-right:14px!important}
  h1{font-size:clamp(1.65rem,8vw,2.25rem);line-height:1.12;overflow-wrap:anywhere}
  h2{font-size:clamp(1.25rem,6vw,1.65rem);overflow-wrap:anywhere}
  .admin-head,.page-header,.panel-heading,.announcement-location-heading,.opening-readiness-card__head{align-items:flex-start;flex-direction:column}
  .admin-head>.btn,.page-header>.btn,.panel-heading>.btn,.announcement-location-heading>.btn{width:100%;justify-content:center}
  .btn,button,input[type=submit],input[type=button]{min-height:44px}
  .btn-row,.form-actions,.toolbar-actions,.site-opening-statuses{display:grid!important;grid-template-columns:1fr!important;width:100%}
  .btn-row>.btn,.form-actions>.btn,.toolbar-actions>.btn{width:100%;justify-content:center}
  form .grid-2,form .grid-3,.form-grid,.seo-settings-grid,.opening-cleanup-groups{grid-template-columns:1fr!important}
  form label{min-width:0}
  input,select,textarea{font-size:16px!important}
  textarea{min-height:110px}
  .dashboard-alert-strip,.command-metrics,.announcement-live-summary{grid-template-columns:1fr 1fr}
  .command-card,.configuration-card,.panel,.card{padding:1rem}
  .configuration-card .btn{width:100%;justify-content:center;margin-top:auto}
  .health-list>div,.health-list>a{align-items:flex-start;flex-direction:column}
  .health-list .health{align-self:flex-start}
  .announcement-mini-map,.public-map{height:min(58vh,340px)!important}
  .announcement-card,.search-result-card{width:100%;min-width:0}
  .announcement-card img,.search-result-card img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
  .sticky-form-actions{bottom:calc(8px + var(--mobile-safe-bottom));padding:10px}
  .sticky-form-actions .btn{width:100%}
  dialog{max-height:calc(100dvh - 24px);overflow:auto}
  .accessibility-dialog{width:calc(100vw - 24px);margin:auto}
  .drawer{padding-bottom:calc(20px + var(--mobile-safe-bottom))}
}

@media(max-width:520px){
  .dashboard-alert-strip,.command-metrics,.announcement-live-summary{grid-template-columns:1fr}
  .status,.health,.supervision-badge{white-space:normal;text-align:center}
  .opening-readiness-counts{display:grid;grid-template-columns:1fr;width:100%}
  .opening-readiness-counts>*{width:100%;justify-content:center}
  .release-progress__percent,.opening-readiness-score{justify-self:start}
  .admin-alert-grid{grid-template-columns:1fr!important}
}

@supports(height:100dvh){
  .drawer,.modal-panel{max-height:100dvh}
}

/* NAM49 0270 — audit graphique et ergonomique */
.visual-audit-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center}.visual-audit-summary h2{margin:.25rem 0 .4rem}.visual-audit-summary p{margin:0;color:var(--muted)}.visual-audit-score{display:grid;place-items:center;width:112px;height:112px;border:10px solid #dcece1;border-radius:50%;background:#f8fbf9;color:var(--leaf);font-size:1.75rem}.visual-audit-metrics{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.visual-audit-metrics span{padding:12px 14px;border:1px solid var(--border);border-radius:14px;background:#f8fbf9;color:var(--muted)}.visual-audit-metrics strong{display:block;color:var(--text);font-size:1.35rem}.visual-audit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}.visual-audit-card{padding:0;overflow:hidden}.visual-audit-card__head{display:flex;align-items:center;gap:14px;padding:18px 20px;border-bottom:1px solid var(--border);background:#f4f9f5}.visual-audit-card__head h2{margin:.15rem 0 0}.visual-audit-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:#fff;font-size:1.5rem;box-shadow:0 4px 12px rgba(22,67,45,.08)}.visual-audit-items{display:grid}.visual-audit-item{display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;padding:16px 20px;border-bottom:1px solid #e7eee9}.visual-audit-item:last-child{border-bottom:0}.visual-audit-item__status{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;font-weight:900}.visual-audit-item h3{margin:0 0 4px;font-size:1rem}.visual-audit-item p{margin:0 0 5px;color:var(--muted);line-height:1.5}.visual-audit-item small{font-weight:800}.visual-audit-item--ok .visual-audit-item__status{background:#e2f4e7;color:#176a29}.visual-audit-item--ok small{color:#176a29}.visual-audit-item--warning .visual-audit-item__status{background:#fde7e7;color:#a51616}.visual-audit-item--warning small{color:#a51616}.visual-audit-item--manual .visual-audit-item__status{background:#fff0d6;color:#8a4e00}.visual-audit-item--manual small{color:#8a4e00}.visual-audit-note{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:18px}.visual-audit-note h2,.visual-audit-note p{margin:.25rem 0}.visual-audit-note p{max-width:720px;color:var(--muted)}
@media(max-width:900px){.visual-audit-grid{grid-template-columns:1fr}.visual-audit-note{align-items:flex-start;flex-direction:column}}
@media(max-width:620px){.visual-audit-summary{grid-template-columns:1fr}.visual-audit-score{justify-self:start;width:92px;height:92px;font-size:1.45rem}.visual-audit-metrics{grid-template-columns:1fr}.visual-audit-card__head,.visual-audit-item{padding-left:15px;padding-right:15px}.visual-audit-note .btn{width:100%;justify-content:center}}
/* 0272 — Audit de charge et de base de données */
.database-audit-summary{display:grid;grid-template-columns:minmax(230px,.8fr) 2fr;gap:22px;align-items:center}.database-audit-summary h2{margin:.2rem 0}.database-audit-summary p{margin:0;color:var(--muted)}.database-audit-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.database-audit-metrics span{padding:13px;border:1px solid var(--border);border-radius:14px;background:#f8fbf9;color:var(--muted);text-align:center}.database-audit-metrics strong{display:block;color:var(--text);font-size:1.35rem}.database-audit-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:18px;margin:18px 0}.database-audit-checks{display:grid;gap:10px}.database-audit-check{display:grid;grid-template-columns:34px 1fr;gap:12px;padding:14px;border:1px solid var(--border);border-radius:14px}.database-audit-check>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;font-weight:900}.database-audit-check h3,.database-audit-check p{margin:0}.database-audit-check p{margin-top:4px;color:var(--muted)}.database-audit-check details{margin-top:9px}.database-audit-check details code{display:block;margin-top:7px;padding:10px;overflow:auto;border-radius:8px;background:#17221d;color:#f3fff7}.database-audit-check--ok>span{background:#e2f4e7;color:#176a29}.database-audit-check--warning>span{background:#fff0d6;color:#8a4e00}.database-server-list{display:grid;gap:0}.database-server-list div{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid var(--border)}.database-server-list dt{color:var(--muted)}.database-server-list dd{margin:0;font-weight:800;text-align:right}.load-test-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.load-test-grid article{display:grid;gap:5px;padding:16px;border:1px solid var(--border);border-radius:14px;background:#f8fbf9}.load-test-grid strong{font-size:1.08rem}.load-test-grid span{color:var(--leaf);font-weight:800}.load-test-grid p{margin:.4rem 0 0;color:var(--muted)}
@media(max-width:1000px){.database-audit-summary{grid-template-columns:1fr}.database-audit-metrics{grid-template-columns:repeat(3,1fr)}.database-audit-grid{grid-template-columns:1fr}}
@media(max-width:700px){.database-audit-metrics,.load-test-grid{grid-template-columns:1fr}.database-server-list div{display:block}.database-server-list dd{text-align:left;margin-top:4px}.database-audit-check{grid-template-columns:30px minmax(0,1fr)}}

.database-storage-layout{display:grid;grid-template-columns:minmax(220px,320px) 1fr;gap:32px;align-items:center}.database-storage-chart{--storage-used:0;width:min(100%,280px);aspect-ratio:1;margin:auto;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--leaf) calc(var(--storage-used)*1%),#e5ece8 0);position:relative}.database-storage-chart::before{content:"";position:absolute;inset:18%;border-radius:50%;background:var(--surface,#fff);box-shadow:0 0 0 1px var(--border)}.database-storage-chart--warning{background:conic-gradient(#d88a00 calc(var(--storage-used)*1%),#e5ece8 0)}.database-storage-chart--critical{background:conic-gradient(#bd2f2f calc(var(--storage-used)*1%),#e5ece8 0)}.database-storage-chart__center{position:relative;z-index:1;text-align:center}.database-storage-chart__center strong{display:block;font-size:2rem}.database-storage-chart__center span{color:var(--muted)}.database-storage-details{display:grid;gap:14px}.database-storage-details>div:not(.database-storage-quota){display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--border);border-radius:14px}.database-storage-details p{margin:0}.database-storage-details p strong,.database-storage-details p span{display:block}.database-storage-details p span{margin-top:3px;color:var(--muted)}.database-storage-dot{width:18px;height:18px;border-radius:50%;flex:0 0 auto}.database-storage-dot--used{background:var(--leaf)}.database-storage-dot--free{background:#e5ece8;border:1px solid #cad6cf}.database-storage-quota{display:flex;justify-content:space-between;gap:16px;padding:14px;border-radius:14px;background:#f8fbf9}.database-storage-quota strong{font-size:1.1rem}.database-storage-details .alert,.database-storage-details .help-text{margin:0}@media(max-width:700px){.database-storage-layout{grid-template-columns:1fr;gap:20px}.database-storage-chart{width:min(78vw,250px)}}


/* 02.73 — Fiche d’annonce vivante */
.announcement-live-summary{grid-template-columns:repeat(auto-fit,minmax(125px,1fr))}
.announcement-contextual-advice,.announcement-reunion-summary{margin-top:1.25rem;border-radius:18px;padding:1.2rem 1.3rem}
.announcement-contextual-advice{border:1px solid rgba(21,101,192,.22);background:rgba(227,242,253,.72)}
.announcement-contextual-advice__heading{display:flex;gap:.85rem;align-items:flex-start}
.announcement-contextual-advice__heading>span{font-size:1.65rem;line-height:1}
.announcement-contextual-advice h2,.announcement-reunion-summary h2{margin:0 0 .25rem}
.announcement-contextual-advice p{margin:0;color:var(--muted,#52606d)}
.announcement-contextual-advice ul{margin:.85rem 0 0;padding-left:1.35rem;display:grid;gap:.45rem}
.announcement-reunion-summary{display:flex;gap:1rem;align-items:flex-start;border:1px solid rgba(46,125,50,.26);background:rgba(232,245,233,.82)}
.announcement-reunion-summary__icon{display:grid;place-items:center;flex:0 0 46px;width:46px;height:46px;border-radius:50%;background:#fff;font-size:1.5rem;color:#2e7d32;box-shadow:0 4px 16px rgba(46,125,50,.12)}
.announcement-reunion-summary p{margin:.4rem 0 .45rem;line-height:1.65}
.announcement-reunion-summary small{color:var(--muted,#52606d)}
@media(max-width:640px){.announcement-reunion-summary{display:block}.announcement-reunion-summary__icon{margin-bottom:.7rem}.announcement-contextual-advice,.announcement-reunion-summary{padding:1rem}}
