/* Carp Session — composants V3.x et consolidation.
   Chargé après style.css pour conserver exactement l’ordre de cascade historique. */

/* =========================================================
   CARP SESSION V3.0 — dashboard, partage, lieux, mobile, backup
   ========================================================= */
.dashboard-catch-map-shell,.places-overview-map-shell{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:var(--surface-2)}
.dashboard-catch-map{height:420px;min-height:420px}.places-overview-map{height:430px;min-height:430px}
.dashboard-map-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:0 0 12px;color:var(--muted);font-size:12px}.dashboard-map-legend small{margin-left:auto}.map-legend-item{display:inline-flex;align-items:center;gap:7px;font-weight:800;color:var(--cream)}.map-legend-dot{width:12px;height:12px;border-radius:50%;display:inline-block;border:2px solid rgba(255,255,255,.65)}.map-legend-dot.own{background:var(--yellow)}.map-legend-dot.shared{background:#5ab9ff}
.map-legend-dot.place{background:#3d8bfd}.map-legend-dot.group-capture{background:var(--yellow)}.places-map-legend{margin-top:12px;margin-bottom:12px}.place-map-group-stat{font-weight:800;color:#9a7800!important}.place-group-capture-marker{filter:drop-shadow(0 2px 5px rgba(0,0,0,.45))}
.dashboard-map-marker-wrap{background:transparent!important;border:0!important}.dashboard-map-marker{display:block;width:20px;height:20px;border-radius:50%;border:3px solid #fff;box-shadow:0 2px 12px rgba(0,0,0,.55)}.dashboard-map-marker.own{background:var(--yellow)}.dashboard-map-marker.shared{background:#5ab9ff}
.map-popup-catch,.place-map-popup{display:grid;gap:5px;min-width:190px}.map-popup-catch strong,.place-map-popup strong{font-size:15px}.map-popup-catch span,.place-map-popup span{font-size:12px;color:#4c4c4c}.map-popup-badge{display:inline-flex!important;width:max-content;padding:3px 7px;border-radius:999px;background:#f6c900;color:#111!important;font-weight:800}.map-popup-catch.is-shared .map-popup-badge,.place-map-popup.is-shared .map-popup-badge{background:#dff2ff;color:#075f93!important}.map-popup-catch a,.place-map-popup a{font-weight:800;text-decoration:none}.place-map-popup-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:4px}.place-map-popup-actions a{padding:5px 7px;border-radius:7px;background:#f3f3f3}
.dashboard-insight-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.dashboard-insight-card{display:grid;gap:6px;min-height:135px;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.dashboard-insight-icon{font-size:24px}.dashboard-insight-card>span:nth-child(2){color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.dashboard-insight-card strong{color:var(--cream);font-size:16px;line-height:1.25}.dashboard-insight-card small{color:var(--muted);font-size:11px}
.places-overview-map-panel{margin:20px 0 28px;padding:18px}.places-map-heading{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:14px}.places-map-heading h2{margin:4px 0 0}.place-card-v3{overflow:hidden;padding:0!important}.place-card-v3 .place-card-main{display:block;color:inherit;text-decoration:none}.place-card-v3.is-shared{border-color:rgba(90,185,255,.5);box-shadow:inset 0 0 0 1px rgba(90,185,255,.08)}.shared-card-badge,.shared-catch-badge{position:absolute;top:10px;left:10px;z-index:2;padding:5px 9px;border-radius:999px;background:#dff2ff;color:#075f93;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.place-card-media,.catch-card-photo{position:relative}.place-navigation-actions{display:flex;gap:8px;padding:0 16px 16px}.place-nav-button{flex:1;text-align:center;padding:9px 10px;border:1px solid var(--line);border-radius:11px;text-decoration:none;font-size:12px;font-weight:900;color:var(--cream);background:rgba(255,255,255,.025)}.place-nav-button:hover{border-color:var(--yellow);color:var(--yellow)}.place-nav-button.waze{border-color:rgba(90,185,255,.45)}
.catch-card.is-shared-catch{border-color:rgba(90,185,255,.52);box-shadow:inset 0 0 0 1px rgba(90,185,255,.08)}.catch-card.is-shared-catch .share-owner-line{display:inline-flex;width:max-content;margin:0 0 8px;padding:5px 8px;border-radius:999px;background:rgba(90,185,255,.12);color:#8ed2ff;font-weight:900}.catch-toolbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.search-result-row.is-shared{border-left:3px solid #5ab9ff}.search-group-shared .eyebrow{color:#8ed2ff}
.backup-layout{display:grid;gap:18px}.backup-create-panel{display:flex;justify-content:space-between;align-items:center;gap:24px}.backup-create-panel>div{max-width:720px}.backup-list{display:grid;gap:10px}.backup-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}.backup-row.is-emergency{border-color:rgba(90,185,255,.4)}.backup-row>div:first-child{display:grid;gap:3px}.backup-row span,.backup-row small{color:var(--muted)}.backup-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.backup-actions form{margin:0}.button-warning{background:#5b4510;color:#ffe39a;border:1px solid #8c6a16}.backup-note{border-style:dashed}
.mobile-bottom-nav{display:none}
@media(max-width:1100px){.dashboard-insight-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){
  body{padding-bottom:74px}.site-footer{margin-bottom:0}.dashboard-catch-map{height:330px;min-height:330px}.places-overview-map{height:340px;min-height:340px}.dashboard-map-legend small{width:100%;margin-left:0}.dashboard-insight-grid{grid-template-columns:1fr 1fr}.places-map-heading{align-items:flex-start;flex-direction:column}.place-navigation-actions{padding:0 12px 12px}.backup-create-panel,.backup-row{align-items:stretch;flex-direction:column}.backup-actions{display:grid;grid-template-columns:1fr 1fr}.backup-actions>*{width:100%}.backup-actions .button,.backup-actions .danger-button{width:100%;text-align:center}.catch-toolbar-actions{width:100%}.catch-toolbar-actions .button{flex:1;min-width:130px}
  .mobile-bottom-nav{position:fixed;z-index:1200;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,1fr);align-items:end;height:66px;padding:6px max(8px,env(safe-area-inset-right)) calc(5px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));border-top:1px solid var(--line);background:rgba(7,8,6,.97);backdrop-filter:blur(12px)}.mobile-bottom-nav a{display:grid;place-items:center;gap:1px;color:var(--muted);text-decoration:none;font-size:18px}.mobile-bottom-nav a small{font-size:9px;font-weight:800}.mobile-bottom-nav a.active{color:var(--yellow)}.mobile-bottom-nav .mobile-bottom-add{align-self:center;transform:translateY(-8px);color:#111}.mobile-bottom-add span{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--yellow);font-size:28px;font-weight:900;box-shadow:0 5px 16px rgba(0,0,0,.4)}.mobile-bottom-add small{color:var(--yellow);margin-top:2px}
}
@media(max-width:500px){.dashboard-insight-grid{grid-template-columns:1fr}.dashboard-insight-card{min-height:auto;grid-template-columns:auto 1fr;align-items:center}.dashboard-insight-card strong,.dashboard-insight-card small{grid-column:2}.dashboard-insight-icon{grid-row:1/4}.backup-actions{grid-template-columns:1fr}}

/* =========================================================
   CARP SESSION V3.1 — groupes sociaux, notifications, avatars
   ========================================================= */

/* États de boutons plus explicites : un bouton actif ne ressemble plus à un bouton désactivé. */
.button-secondary,
.map-actions .button.button-secondary,
.geo-permission-actions .button.button-secondary {
    color: var(--cream);
    background: #1b1e17;
    border-color: rgba(246,201,0,.42);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.015);
}
.button-secondary:hover,
.map-actions .button.button-secondary:hover,
.geo-permission-actions .button.button-secondary:hover {
    color: var(--yellow);
    background: #24291d;
    border-color: var(--yellow);
}
button:disabled,
.button:disabled,
.button[aria-disabled="true"] {
    opacity: .36 !important;
    cursor: not-allowed !important;
    filter: grayscale(.65) !important;
    box-shadow: none !important;
    transform: none !important;
}
.danger-button { background: rgba(145,35,35,.19); border-color: rgba(255,96,96,.55); color: #ffbaba; }
.danger-button:hover { background: rgba(177,45,45,.28); border-color: #ff7777; }
.access-alert.info { border-color: rgba(90,185,255,.42); background: rgba(90,185,255,.10); color: #ccecff; }

/* Header : état GPS et notifications. */
.geo-header-status,
.header-notifications {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    border: 1px solid var(--line);
    border-radius: 12px;
    color: var(--cream);
    background: #171a14;
    text-decoration: none;
    font-weight: 850;
    cursor: pointer;
}
.geo-header-status { gap: 6px; padding: 0 10px; font-size: 11px; border-color: rgba(246,201,0,.44); color: #ffd95a; }
.geo-header-status:hover { border-color: var(--yellow); background: #23271d; }
.geo-header-status.is-denied { border-color: rgba(255,92,92,.6); color: #ffb1b1; background: rgba(150,35,35,.15); }
.geo-header-status[hidden] { display: none !important; }
.header-notifications { position: relative; width: 40px; flex: 0 0 40px; font-size: 16px; }
.header-notifications:hover { border-color: var(--yellow); color: var(--yellow); }
.header-notifications.has-unread { border-color: var(--yellow); background: rgba(246,201,0,.10); }
.header-notifications b { position: absolute; top: -7px; right: -7px; display: grid; place-items: center; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 999px; background: #e64949; color: #fff; border: 2px solid #080a07; font-size: 9px; }
.account-avatar { overflow: hidden; background: #111; }
.account-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Avatar utilisateur. */
.avatar-settings { display: grid; gap: 12px; margin: 18px 0 8px; padding-top: 16px; border-top: 1px solid var(--line); }
.form-label { font-weight: 850; }
.avatar-current { display: flex; align-items: center; gap: 12px; padding: 10px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface-2); }
.avatar-current img { width: 58px; height: 58px; border-radius: 50%; object-fit: cover; border: 2px solid rgba(246,201,0,.55); }
.avatar-current div { display: grid; gap: 2px; }
.avatar-current small { color: var(--muted); }
.avatar-preset-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 9px; }
.avatar-preset-option { position: relative; display: grid; place-items: center; gap: 6px; padding: 10px 6px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface-2); cursor: pointer; text-align: center; }
.avatar-preset-option:hover { border-color: rgba(246,201,0,.65); }
.avatar-preset-option:has(input:checked) { border-color: var(--yellow); background: rgba(246,201,0,.08); }
.avatar-preset-option input { position: absolute; opacity: 0; pointer-events: none; }
.avatar-preset-option img { width: 52px; height: 52px; border-radius: 50%; }
.avatar-preset-option span { font-size: 10px; color: var(--muted); font-weight: 750; }

/* Membres et fil social. */
.share-member-avatar { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; border: 2px solid rgba(246,201,0,.44); background: #111; }
.group-social-section { display: grid; gap: 14px; }
.group-post-composer { display: grid; gap: 12px; }
.group-post-composer-head { display: flex; align-items: center; gap: 10px; }
.group-post-composer-head img,
.group-post-head > img,
.group-comment > img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; border: 2px solid rgba(246,201,0,.42); background: #111; flex: 0 0 auto; }
.group-post-composer-head div,
.group-post-head > div { display: grid; gap: 1px; }
.group-post-composer-head small,
.group-post-head small { color: var(--muted); }
.group-post-composer textarea { width: 100%; resize: vertical; }
.group-post-composer-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.group-photo-input { display: flex; align-items: center; gap: 8px; padding: 9px 12px; border: 1px solid var(--line); border-radius: 12px; color: var(--cream); background: #1b1e17; font-weight: 800; cursor: pointer; }
.group-photo-input:hover { border-color: var(--yellow); }
.group-photo-input input { max-width: 220px; font-size: 11px; }
.group-social-feed { display: grid; gap: 14px; }
.group-post-card { display: grid; gap: 12px; scroll-margin-top: 90px; }
.group-post-head { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 10px; align-items: center; }
.group-post-delete { width: 34px; height: 34px; border-radius: 10px; border: 1px solid rgba(255,90,90,.35); color: #ffb1b1; background: rgba(160,35,35,.12); cursor: pointer; font-size: 21px; }
.group-post-body { white-space: normal; font-size: 15px; line-height: 1.6; color: var(--cream); }
.group-post-photo { display: block; overflow: hidden; max-height: 560px; border-radius: 16px; border: 1px solid var(--line); background: #090a07; }
.group-post-photo img { display: block; width: 100%; max-height: 560px; object-fit: contain; }
.group-post-meta { display: flex; gap: 16px; padding-top: 2px; color: var(--muted); font-size: 12px; }
.group-post-actions { display: flex; gap: 8px; padding: 9px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.group-post-actions form { margin: 0; }
.social-action-button { min-height: 36px; padding: 0 12px; border: 1px solid var(--line); border-radius: 10px; color: var(--cream); background: #1b1e17; cursor: pointer; font-weight: 850; }
.social-action-button.active { color: #111; background: var(--yellow); border-color: var(--yellow); }
.group-comments-list { display: grid; gap: 9px; }
.group-comment { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 9px; align-items: start; }
.group-comment > img { width: 34px; height: 34px; }
.group-comment > div { padding: 8px 10px; border-radius: 12px; background: var(--surface-2); }
.group-comment strong { font-size: 12px; }
.group-comment p { margin: 3px 0; font-size: 13px; }
.group-comment small { color: var(--muted); font-size: 10px; }
.group-comment-form { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; }
.group-comment-form input { min-width: 0; }
.group-comment-form .button { min-height: 44px; }

/* Centre de notifications. */
.notifications-page { display: grid; gap: 16px; }
.notifications-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 14px; }
.notifications-toolbar form { margin: 0; }
.notifications-list { display: grid; gap: 8px; }
.notification-row { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 11px; padding: 13px 14px; border: 1px solid var(--line); border-radius: 15px; color: inherit; text-decoration: none; background: var(--surface); }
.notification-row:hover { border-color: rgba(246,201,0,.7); }
.notification-row.is-unread { border-color: rgba(246,201,0,.55); background: rgba(246,201,0,.055); }
.notification-avatar { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; border: 2px solid rgba(246,201,0,.42); background: #111; }
.notification-main { display: grid; gap: 3px; min-width: 0; }
.notification-main strong { color: var(--cream); }
.notification-main span { color: var(--muted); }
.notification-main small { color: #8f927f; }
.notification-unread-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--yellow); box-shadow: 0 0 0 4px rgba(246,201,0,.09); }

/* Fiche de prise : actions volontairement en bas. */
.catch-view-actions-bottom { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line); }

@media (max-width: 1320px) {
    .geo-header-status [data-geolocation-header-label] { display: none; }
    .geo-header-status { width: 40px; padding: 0; }
}
@media (max-width: 760px) {
    .geo-header-status { width: 38px; flex:0 0 38px; }
    .header-notifications { width: 38px; flex-basis: 38px; }
    .avatar-preset-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .group-post-composer-actions { align-items: stretch; flex-direction: column; }
    .group-photo-input { width: 100%; }
    .group-photo-input input { max-width: 100%; }
    .group-post-composer-actions .button { width: 100%; }
    .group-comment-form { grid-template-columns: 1fr; }
    .group-comment-form .button { width: 100%; }
    .notifications-toolbar { align-items: stretch; flex-direction: column; }
    .notifications-toolbar form,.notifications-toolbar .button { width: 100%; }
    .notification-row { grid-template-columns: auto minmax(0,1fr) auto; padding: 11px; }
}

/* V3.1.1 — Fil social global et commentaires de prises. */
.dashboard-social-section { position: relative; }
.social-home-heading p,.social-hub-toolbar p { margin: 5px 0 0; color: var(--muted); }
.social-home-composer { margin-bottom: 14px; padding: 14px; box-shadow: none; }
.social-home-composer-row { display: grid; grid-template-columns: minmax(150px,.7fr) minmax(240px,1.8fr) auto auto; gap: 10px; align-items: end; }
.social-home-composer-row label { display: grid; gap: 5px; font-size: 11px; font-weight: 800; color: var(--muted); }
.social-home-composer-row select,.social-home-composer-row input[type="text"] { min-height: 42px; }
.social-home-photo { min-height: 42px; align-self: end; white-space: nowrap; }
.social-home-photo input { width: 1px; height: 1px; opacity: 0; position: absolute; }
.social-home-composer-row > .button { min-height: 42px; }

.social-hub-page { display: grid; gap: 16px; }
.social-hub-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.social-hub-toolbar h2 { margin-bottom: 0; }
.social-hub-composer { display: grid; gap: 12px; }
.social-hub-composer textarea { width: 100%; resize: vertical; }
.social-composer-grid { display: grid; grid-template-columns: minmax(220px,1fr) auto; gap: 10px; align-items: end; }
.social-composer-grid > label:first-child { display: grid; gap: 5px; }
.social-photo-control input { max-width: 220px; }
.social-composer-submit { display: flex; justify-content: flex-end; }
.social-feed-main-heading { margin-top: 8px; }

.unified-social-feed { display: grid; gap: 14px; max-width: 900px; }
.social-feed-card { display: grid; gap: 11px; padding: 16px; scroll-margin-top: 90px; }
.social-feed-card-head { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 10px; align-items: center; }
.social-feed-avatar { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; border: 2px solid rgba(246,201,0,.42); background: #111; }
.social-feed-author { min-width: 0; display: grid; gap: 2px; }
.social-feed-author strong,.social-feed-author small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.social-feed-author small { color: var(--muted); font-size: 11px; }
.social-feed-kind { padding: 5px 8px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); background: var(--surface-2); font-size: 10px; font-weight: 850; text-transform: uppercase; letter-spacing: .05em; }
.social-feed-kind.capture { color: var(--yellow); border-color: rgba(246,201,0,.35); background: rgba(246,201,0,.06); }
.social-feed-body { color: var(--cream); font-size: 15px; line-height: 1.58; }
.social-feed-photo { display: block; max-height: 540px; overflow: hidden; border: 1px solid var(--line); border-radius: 15px; background: #090a07; }
.social-feed-photo img { display: block; width: 100%; max-height: 540px; object-fit: contain; }
.social-feed-meta { display: flex; flex-wrap: wrap; gap: 13px; align-items: center; color: var(--muted); font-size: 11px; }
.social-feed-meta a { margin-left: auto; color: var(--yellow); text-decoration: none; font-weight: 800; }
.social-feed-actions { padding-top: 8px; border-top: 1px solid var(--line); }
.social-feed-actions form { margin: 0; }
.social-feed-comments { display: grid; gap: 8px; }
.social-feed-comment { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 8px; align-items: start; }
.social-feed-comment > img { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; border: 1px solid rgba(246,201,0,.35); background: #111; }
.social-feed-comment > div { min-width: 0; padding: 8px 10px; border-radius: 12px; background: var(--surface-2); }
.social-feed-comment-line { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; }
.social-feed-comment-line strong { font-size: 12px; }
.social-feed-comment-line small { color: var(--muted); font-size: 9px; white-space: nowrap; }
.social-feed-comment p { margin: 3px 0 0; font-size: 13px; line-height: 1.45; }
.social-comment-delete-form { margin: 4px 0 0; }
.social-comment-delete-form button { padding: 0; border: 0; background: transparent; color: #dc8b8b; font-size: 10px; cursor: pointer; }
.social-feed-comment-form { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; }
.social-feed-comment-form input { min-width: 0; min-height: 42px; }
.social-feed-comment-form .button { min-height: 42px; }
.social-feed-empty { display: flex; align-items: center; gap: 14px; max-width: 900px; }
.social-feed-empty-icon { width: 48px; height: 48px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 14px; border: 1px solid var(--line); background: var(--surface-2); font-size: 23px; }
.social-feed-empty h3,.social-feed-empty p { margin: 0; }
.social-feed-empty p { margin-top: 4px; color: var(--muted); }

.social-capture-summary { display: grid; grid-template-columns: minmax(0,220px) minmax(0,1fr); gap: 14px; align-items: center; padding: 9px; border: 1px solid var(--line); border-radius: 15px; color: inherit; text-decoration: none; background: rgba(255,255,255,.018); }
.social-capture-summary:hover { border-color: rgba(246,201,0,.55); }
.social-capture-photo { display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 11px; background: #0b0c09; }
.social-capture-photo img { width: 100%; height: 100%; object-fit: cover; }
.social-capture-copy { min-width: 0; display: grid; gap: 5px; }
.social-capture-copy strong { color: var(--cream); font-size: 20px; }
.social-capture-copy small { color: var(--muted); }

.catch-social-discussion { margin-top: 18px; scroll-margin-top: 92px; }
.catch-social-heading { display: flex; align-items: start; justify-content: space-between; gap: 16px; }
.catch-social-heading h2 { margin-bottom: 4px; }
.catch-social-heading p { margin: 0; color: var(--muted); }
.catch-social-counters { display: flex; gap: 7px; white-space: nowrap; }
.catch-social-counters span { padding: 7px 10px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface-2); color: var(--cream); font-size: 12px; }
.catch-social-actions { margin: 13px 0; padding: 9px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.catch-social-actions form { margin: 0; }
.catch-social-comments { margin-top: 12px; }
.catch-social-comment-form { margin-top: 12px; }
.catch-social-empty { margin: 12px 0 0; }
.catch-social-private-note { margin-top: 18px; }
.catch-social-private-note h2 { margin-bottom: 4px; }
.catch-social-private-note p { margin: 0; color: var(--muted); }

@media (max-width: 980px) {
    .social-home-composer-row { grid-template-columns: 1fr 2fr auto; }
    .social-home-composer-row > .button { grid-column: 1 / -1; width: 100%; }
}
@media (max-width: 760px) {
    .social-home-composer-row,.social-composer-grid { grid-template-columns: 1fr; }
    .social-home-photo,.social-photo-control,.social-home-composer-row > .button,.social-composer-submit .button { width: 100%; }
    .social-hub-toolbar { align-items: stretch; flex-direction: column; }
    .social-hub-toolbar .button { width: 100%; }
    .social-feed-card { padding: 13px; }
    .social-feed-kind { display: none; }
    .social-feed-card-head { grid-template-columns: auto minmax(0,1fr); }
    .social-feed-meta a { margin-left: 0; }
    .social-feed-comment-form { grid-template-columns: 1fr; }
    .social-feed-comment-form .button { width: 100%; }
    .social-capture-summary { grid-template-columns: 92px minmax(0,1fr); gap: 10px; }
    .social-capture-copy strong { font-size: 16px; }
    .catch-social-heading { flex-direction: column; }
    .catch-social-counters { width: 100%; }
    .catch-social-counters span { flex: 1; text-align: center; }
    .social-feed-empty { align-items: flex-start; flex-wrap: wrap; }
}

/* V3.2.0 — Push mobile, activité, sorties et réponses sociales. */
.push-device-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    padding: 14px;
    margin: 12px 0 16px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--surface-2);
}
.push-device-card strong { display: block; margin-bottom: 4px; }
.push-device-card small { color: var(--muted); }
.push-device-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
[data-push-status][data-tone="success"] { color: #a6df9b; }
[data-push-status][data-tone="warning"] { color: #f0c66e; }
[data-push-status][data-tone="danger"] { color: #f09292; }
.notification-preferences-form { display: grid; gap: 18px; }
.notification-pref-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.notification-pref-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: rgba(255,255,255,.018);
}
.notification-pref-item input { margin-top: 3px; }
.notification-pref-item strong { display: block; font-size: 13px; }
.notification-pref-item small { display: block; margin-top: 3px; color: var(--muted); }
.quiet-hours-grid { display: grid; grid-template-columns: repeat(2,minmax(0,180px)); gap: 10px; }
.quiet-hours-grid label { display: grid; gap: 5px; font-size: 12px; color: var(--muted); }
.notification-group-mutes { display: grid; gap: 9px; }
.notification-group-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }

.notifications-tabs { display: flex; flex-wrap: wrap; gap: 7px; margin: 0 0 13px; }
.notifications-tabs a {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 36px;
    padding: 7px 11px;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--cream);
    text-decoration: none;
    background: var(--surface-2);
    font-size: 12px;
    font-weight: 800;
}
.notifications-tabs a.active { border-color: var(--yellow); color: var(--yellow); background: rgba(246,201,0,.07); }
.notifications-toolbar-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.notifications-old-cleanup { margin-top: 12px; display: flex; justify-content: flex-end; }

.dashboard-activity-section { margin-top: -2px; }
.dashboard-activity-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 11px 14px;
    border: 1px solid rgba(246,201,0,.28);
    border-radius: 14px;
    background: rgba(246,201,0,.045);
}
.dashboard-activity-summary { display:flex; align-items:center; gap:12px; flex-wrap:wrap; min-width:0; }
.dashboard-activity-summary .eyebrow { margin:0; }
.dashboard-activity-summary strong { white-space:nowrap; }
.dashboard-activity-chips { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.dashboard-activity-chips a {
    padding: 5px 8px;
    border-radius: 999px;
    background: var(--surface-2);
    color: var(--cream);
    text-decoration: none;
    font-size: 11px;
    border: 1px solid var(--line);
}

.social-composers-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; align-items: start; }
.outing-composer { border-color: rgba(246,201,0,.28); }
.outing-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.outing-form-grid label { display: grid; gap: 5px; color: var(--muted); font-size: 11px; font-weight: 800; }
.outing-card-main { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 12px; align-items: start; }
.outing-date-badge {
    min-width: 68px;
    padding: 9px;
    border: 1px solid rgba(246,201,0,.35);
    border-radius: 12px;
    background: rgba(246,201,0,.06);
    color: var(--yellow);
    text-align: center;
    font-weight: 900;
    line-height: 1.2;
}
.outing-rsvp-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; padding-top: 9px; border-top: 1px solid var(--line); }
.outing-rsvp-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.outing-rsvp-actions .button.is-selected { border-color: var(--yellow); color: var(--yellow); background: rgba(246,201,0,.08); }

.group-pins-section { margin-bottom: 14px; }
.group-pins-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
.group-pin-card { display: grid; gap: 4px; padding: 11px; border: 1px solid rgba(246,201,0,.3); border-radius: 12px; background: rgba(246,201,0,.04); color: inherit; text-decoration: none; }
.group-pin-card small { color: var(--muted); }

.social-feed-comment.is-reply,
.group-comment.is-reply { margin-left: 40px; opacity: .96; }
.reply-context {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 7px 9px;
    margin-bottom: 7px;
    border-radius: 10px;
    border: 1px solid rgba(246,201,0,.25);
    background: rgba(246,201,0,.04);
    color: var(--muted);
    font-size: 11px;
}
.comment-meta-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.comment-meta-actions button { padding: 0; border: 0; background: transparent; color: var(--muted); font-size: 10px; cursor: pointer; }
.comment-meta-actions button:hover { color: var(--yellow); }

.capture-quick-share-panel { margin-top: 12px; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-2); }
.capture-quick-share-panel h3 { margin: 0 0 7px; }
.capture-quick-share-form { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; align-items: end; }
.capture-quick-share-form label { display: grid; gap: 4px; color: var(--muted); font-size: 11px; }
.capture-pin-form { margin: 8px 0 0; }

@media (max-width: 980px) {
    .group-pins-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .social-composers-grid { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
    .push-device-card { grid-template-columns: 1fr; }
    .push-device-actions { justify-content: stretch; }
    .push-device-actions .button { flex: 1; }
    .notification-pref-grid,.notification-group-list,.quiet-hours-grid { grid-template-columns: 1fr; }
    .dashboard-activity-bar { align-items: flex-start; flex-direction: column; }
    .dashboard-activity-summary { align-items:flex-start; flex-direction:column; gap:4px; }
    .dashboard-activity-chips { justify-content: flex-start; }
    .outing-form-grid { grid-template-columns: 1fr; }
    .outing-rsvp-row { align-items: stretch; flex-direction: column; }
    .outing-rsvp-actions .button { flex: 1; }
    .group-pins-grid { grid-template-columns: 1fr; }
    .social-feed-comment.is-reply,.group-comment.is-reply { margin-left: 20px; }
    .capture-quick-share-form { grid-template-columns: 1fr; }
    .capture-quick-share-form .button { width: 100%; }
}

/* V3.2.2 — rappel Push dans le header quand cet appareil n'est pas abonné. */
.push-header-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 38px;
    padding: 0 10px;
    border: 1px solid rgba(246,201,0,.44);
    border-radius: 12px;
    color: #ffd95a;
    background: #171a14;
    font-size: 11px;
    font-weight: 850;
    cursor: pointer;
    white-space: nowrap;
}
.push-header-status:hover { border-color: var(--yellow); background: #23271d; color: var(--yellow); }
.push-header-status.is-denied { border-color: rgba(255,92,92,.6); color: #ffb1b1; background: rgba(150,35,35,.15); }
.push-header-status[hidden] { display: none !important; }
@media (max-width: 1450px) {
    .push-header-status [data-push-header-label] { display: none; }
    .push-header-status { width: 40px; padding: 0; }
}
@media (max-width: 760px) {
    .push-header-status { width: 38px; flex: 0 0 38px; }
}

/* V3.3.0 — éditeur enrichi commun : emoji, mise en forme et aperçu. */
.rich-editor-shell {
    position: relative;
    width: 100%;
    min-width: 0;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #0f110e;
    overflow: visible;
    transition: border-color .16s ease, box-shadow .16s ease;
}
.rich-editor-shell:focus-within {
    border-color: rgba(246,201,0,.72);
    box-shadow: 0 0 0 3px rgba(246,201,0,.08);
}
.rich-editor-toolbar {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 6px;
    border-bottom: 1px solid var(--line);
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: thin;
}
.rich-editor-button {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 32px;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 9px;
    background: #1a1d17;
    color: var(--cream);
    font-size: 13px;
    font-weight: 850;
    cursor: pointer;
}
.rich-editor-button:hover,
.rich-editor-button.active {
    border-color: rgba(246,201,0,.5);
    background: rgba(246,201,0,.09);
    color: var(--yellow);
}
.rich-editor-button.bold { font-weight: 950; }
.rich-editor-button.italic { font-style: italic; }
.rich-editor-button.underline { text-decoration: underline; }
.rich-editor-button.strike { text-decoration: line-through; }
.rich-editor-button.emoji { font-size: 17px; }
.rich-editor-field,
.rich-editor-shell textarea.rich-editor-field {
    display: block;
    width: 100%;
    min-width: 0;
    margin: 0;
    border: 0 !important;
    border-radius: 0;
    background: transparent;
    box-shadow: none !important;
    resize: vertical;
}
.rich-editor-shell.is-compact .rich-editor-field { min-height: 62px; }
.rich-editor-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 5px 9px 7px;
    color: var(--muted);
    font-size: 10px;
}
.rich-editor-count { white-space: nowrap; }
.rich-editor-emoji-panel {
    position: absolute;
    z-index: 90;
    top: 43px;
    left: 6px;
    width: min(390px, calc(100% - 12px));
    padding: 10px;
    border: 1px solid rgba(246,201,0,.38);
    border-radius: 14px;
    background: #121510;
    box-shadow: 0 16px 36px rgba(0,0,0,.45);
}
.rich-editor-emoji-panel[hidden] { display: none !important; }
.rich-editor-emoji-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.rich-editor-emoji-head strong { font-size: 12px; color: var(--cream); }
.rich-editor-emoji-head small { font-size: 10px; color: var(--muted); }
.rich-editor-emoji-grid {
    display: grid;
    grid-template-columns: repeat(9, 1fr);
    gap: 3px;
    max-height: 220px;
    overflow-y: auto;
}
.rich-editor-emoji-grid button {
    display: grid;
    place-items: center;
    min-width: 0;
    aspect-ratio: 1;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 8px;
    background: #1a1d17;
    font-size: 20px;
    cursor: pointer;
}
.rich-editor-emoji-grid button:hover { border-color: var(--yellow); background: rgba(246,201,0,.08); }
.rich-editor-preview {
    margin: 0 7px 7px;
    padding: 10px 11px;
    border: 1px dashed rgba(246,201,0,.32);
    border-radius: 10px;
    background: rgba(246,201,0,.025);
}
.rich-editor-preview[hidden] { display: none !important; }
.rich-editor-preview::before {
    content: 'Aperçu';
    display: block;
    margin-bottom: 6px;
    color: var(--yellow);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.rich-editor-preview-empty { color: var(--muted); font-size: 11px; }

.rich-text { color: inherit; overflow-wrap: anywhere; }
.rich-text .rich-line + .rich-line { margin-top: 4px; }
.rich-text .rich-line-empty { min-height: 8px; }
.rich-text strong { color: inherit; }
.rich-text u { text-underline-offset: 2px; }
.rich-text del { opacity: .7; }
.rich-list { margin: 6px 0 6px 20px; padding: 0; }
.rich-list li + li { margin-top: 3px; }
.rich-quote {
    margin: 7px 0;
    padding: 7px 10px;
    border-left: 3px solid var(--yellow);
    background: rgba(246,201,0,.045);
    color: var(--muted);
}
.rich-link { color: var(--yellow); text-decoration: underline; text-underline-offset: 2px; }
.rich-mention {
    display: inline;
    color: #ffe077;
    font-weight: 850;
}
.social-feed-comment .rich-text,
.group-comment .rich-text { margin: 4px 0; font-size: 12px; line-height: 1.48; }
.social-feed-body .rich-text,
.group-post-body .rich-text { line-height: 1.6; }
.hero-rich-description { max-width: 760px; color: var(--muted); }
.hero-rich-description .rich-text { font-size: 14px; }

.group-comment-form .rich-editor-shell,
.social-feed-comment-form .rich-editor-shell { min-width: 0; }
.social-home-message { display: grid; gap: 5px; min-width: 0; font-size: 11px; font-weight: 800; color: var(--muted); }
.social-home-message .rich-editor-shell { align-self: end; }
.social-home-composer-row .rich-editor-shell { min-width: 0; }

@media (max-width: 760px) {
    .rich-editor-toolbar { padding: 5px; }
    .rich-editor-button { width: 36px; height: 34px; }
    .rich-editor-hint { display: none; }
    .rich-editor-footer { justify-content: flex-end; }
    .rich-editor-emoji-panel { position: absolute; width: calc(100% - 10px); left: 5px; }
    .rich-editor-emoji-grid { grid-template-columns: repeat(7, 1fr); max-height: 245px; }
    .rich-editor-emoji-grid button { font-size: 21px; }
}


/* =========================================================
   CARP SESSION V3.3.1 — affichage desktop des lieux
   ========================================================= */
@media (min-width: 651px) {
    .places-grid {
        align-items: start;
        gap: 22px;
    }

    /* La carte complète redevient un bloc vertical : contenu puis actions.
       Cela empêche les boutons GPS de devenir des colonnes géantes. */
    .place-card.place-card-v3 {
        display: flex;
        flex-direction: column;
        min-height: 0;
        overflow: hidden;
    }

    .place-card-v3 .place-card-main {
        display: grid;
        grid-template-columns: minmax(170px, 38%) minmax(0, 1fr);
        flex: 1 1 auto;
        min-width: 0;
    }

    .place-card-v3 .place-card-media {
        min-height: 250px;
        height: 100%;
        max-height: none;
        overflow: hidden;
    }

    .place-card-v3 .place-card-media img {
        width: 100%;
        height: 100%;
        min-height: 250px;
        object-fit: cover;
    }

    .place-card-v3 .place-card-placeholder {
        min-height: 250px;
    }

    .place-card-v3 .place-card-body {
        display: flex;
        flex-direction: column;
        min-width: 0;
        padding: 20px 20px 18px;
    }

    .place-card-v3 .place-card-body h2 {
        margin: 10px 0 0;
        font-size: clamp(21px, 1.45vw, 27px);
        line-height: 1.05;
    }

    .place-card-v3 .place-card-body p {
        margin: 10px 0 16px;
        color: var(--muted);
    }

    .place-card-v3 .place-card-stats {
        margin-top: auto;
    }

    .place-card-v3 .place-navigation-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        margin: 0;
        padding: 12px 14px 14px;
        border-top: 1px solid rgba(255,255,255,.07);
        background: rgba(255,255,255,.018);
    }

    .place-card-v3 .place-nav-button {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 42px;
        padding: 9px 12px;
        border-color: rgba(246,201,0,.34);
        background: #1b1e17;
        line-height: 1.1;
    }

    .place-card-v3 .place-nav-button.waze {
        border-color: rgba(90,185,255,.48);
    }

    .place-card-v3 .place-nav-button:hover {
        transform: translateY(-1px);
        background: rgba(246,201,0,.08);
    }
}

/* Sur écran intermédiaire, une seule grande carte par ligne reste plus lisible. */
@media (min-width: 651px) and (max-width: 1100px) {
    .places-grid {
        grid-template-columns: 1fr;
    }

    .place-card-v3 .place-card-main {
        grid-template-columns: minmax(220px, 32%) minmax(0, 1fr);
    }
}

/* Mobile : photo puis informations puis deux boutons compacts. */
@media (max-width: 650px) {
    .place-card.place-card-v3 {
        display: flex;
        flex-direction: column;
        min-height: 0;
    }

    .place-card-v3 .place-card-main {
        display: block;
    }

    .place-card-v3 .place-navigation-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
        margin: 0;
        padding: 10px 12px 12px;
        border-top: 1px solid rgba(255,255,255,.07);
    }

    .place-card-v3 .place-nav-button {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 42px;
    }
}

/* V3.3.2 — Centre de notifications : résumé visuel desktop. */
.notification-summary-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 0 0 18px;
}
.notification-summary-card {
    position: relative;
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 13px;
    align-items: center;
    min-width: 0;
    min-height: 112px;
    padding: 16px;
    overflow: hidden;
    border: 1px solid rgba(246,201,0,.28);
    border-radius: 17px;
    color: inherit;
    text-decoration: none;
    background: linear-gradient(145deg, rgba(255,255,255,.045), rgba(255,255,255,.018));
    transition: transform .18s ease, border-color .18s ease, background .18s ease;
}
.notification-summary-card::after {
    content: "";
    position: absolute;
    right: -25px;
    bottom: -35px;
    width: 105px;
    height: 105px;
    border-radius: 50%;
    background: rgba(246,201,0,.035);
    pointer-events: none;
}
.notification-summary-card:hover {
    transform: translateY(-2px);
    border-color: rgba(246,201,0,.72);
    background: linear-gradient(145deg, rgba(246,201,0,.08), rgba(255,255,255,.018));
}
.notification-summary-card.is-active {
    border-color: var(--yellow);
    background: linear-gradient(145deg, rgba(246,201,0,.12), rgba(246,201,0,.035));
    box-shadow: inset 0 0 0 1px rgba(246,201,0,.12);
}
.notification-summary-icon {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border: 1px solid rgba(246,201,0,.55);
    border-radius: 14px;
    background: rgba(246,201,0,.07);
    font-size: 21px;
    line-height: 1;
}
.notification-summary-at {
    color: var(--yellow);
    font-size: 24px;
    font-weight: 950;
}
.notification-summary-content {
    display: grid;
    min-width: 0;
    gap: 1px;
}
.notification-summary-content strong {
    color: var(--yellow);
    font-size: clamp(27px, 2.2vw, 36px);
    line-height: 1;
}
.notification-summary-content > span {
    margin-top: 5px;
    overflow: hidden;
    color: var(--cream);
    font-size: 13px;
    font-weight: 900;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.notification-summary-content small {
    overflow: hidden;
    color: var(--muted);
    font-size: 10px;
    text-overflow: ellipsis;
    white-space: nowrap;
}
@media (max-width: 1180px) {
    .notification-summary-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .notification-summary-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
    .notification-summary-card { grid-template-columns: 40px minmax(0, 1fr); min-height: 92px; padding: 12px; gap: 10px; }
    .notification-summary-icon { width: 40px; height: 40px; border-radius: 12px; font-size: 18px; }
    .notification-summary-content strong { font-size: 27px; }
    .notification-summary-content small { display: none; }
}
@media (max-width: 430px) {
    .notification-summary-strip { grid-template-columns: 1fr 1fr; }
    .notification-summary-card:last-child { grid-column: 1 / -1; }
}


/* =========================================================
   CARP SESSION V3.3.3 — UI CLEANUP
   Stabilisation visuelle desktop / tablette / mobile.
   ========================================================= */

/* Base interactive commune : états actifs, secondaires, danger et désactivés. */
button,
.button,
.danger-button,
.mini-button,
.text-link-button,
.place-nav-button,
.social-action-button {
    transition: background-color .16s ease, border-color .16s ease, color .16s ease, transform .16s ease, opacity .16s ease;
}
button:not(:disabled),
.button:not([aria-disabled="true"]),
.danger-button:not(:disabled),
.mini-button:not(:disabled),
.text-link-button:not(:disabled) {
    cursor: pointer;
}
.button-secondary {
    color: var(--cream);
    background: #1b1e17;
    border-color: rgba(245,180,0,.48);
}
.button-secondary:hover,
.button-secondary:focus-visible {
    color: var(--yellow);
    background: #262b20;
    border-color: var(--yellow);
}
.danger-button {
    color: #ffd0d0;
    background: rgba(161,38,38,.22);
    border-color: rgba(255,105,105,.62);
}
.danger-button:hover,
.danger-button:focus-visible {
    color: #fff;
    background: rgba(189,48,48,.34);
    border-color: #ff8383;
}
.text-link-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 7px 11px;
    border: 1px solid transparent;
    border-radius: 10px;
    color: var(--yellow);
    background: transparent;
    font: inherit;
    font-size: 12px;
    font-weight: 850;
    text-decoration: none;
}
.text-link-button:hover,
.text-link-button:focus-visible {
    border-color: rgba(245,180,0,.34);
    background: rgba(245,180,0,.07);
    color: var(--yellow-2);
}
button:disabled,
.button:disabled,
.button[aria-disabled="true"],
.danger-button:disabled,
.mini-button:disabled,
.text-link-button:disabled {
    opacity: .34 !important;
    color: #8b8d85 !important;
    border-color: rgba(255,255,255,.10) !important;
    background: rgba(255,255,255,.025) !important;
    cursor: not-allowed !important;
    filter: grayscale(.8) !important;
    transform: none !important;
    box-shadow: none !important;
}
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible {
    outline: 2px solid var(--yellow);
    outline-offset: 3px;
}
textarea {
    width: 100%;
    min-height: 120px;
    padding: 12px 14px;
    color: var(--text);
    background: #090a08;
    border: 1px solid var(--line);
    border-radius: 12px;
    font: inherit;
    line-height: 1.55;
    resize: vertical;
}
textarea:focus { border-color: var(--yellow); box-shadow: 0 0 0 3px rgba(245,180,0,.12); }

/* Composants utilitaires qui existaient dans le HTML sans style dédié. */
.empty-state {
    display: grid;
    gap: 8px;
    min-height: 150px;
    align-content: center;
    padding: clamp(22px, 4vw, 34px);
    border-style: dashed;
    box-shadow: none;
}
.empty-state h2,
.empty-state h3,
.empty-state p { margin: 0; }
.warning {
    padding: 13px 15px;
    border: 1px solid rgba(245,180,0,.46);
    border-radius: 12px;
    color: var(--cream);
    background: rgba(245,180,0,.075);
}
.global-flash {
    width: min(calc(100% - 36px), var(--container));
    margin: 14px auto 0;
}
.backup-list-panel,
.notification-preferences-panel,
.sharing-create-panel,
.sharing-rules-panel,
.fish-view-section {
    min-width: 0;
}

/* Fiche de prise : galerie maîtrisée, infos lisibles et actions propres en bas. */
.catch-gallery {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 0 0 24px;
}
.catch-gallery figure {
    position: relative;
    min-width: 0;
    min-height: 260px;
    max-height: 620px;
    margin: 0;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: #090a08;
}
.catch-gallery figure.primary:first-child:nth-last-child(odd) { grid-column: 1 / -1; }
.catch-gallery img {
    width: 100%;
    height: 100%;
    max-height: 620px;
    object-fit: contain;
    background: #090a08;
}
.catch-detail-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    align-items: start;
}
.catch-detail-grid > * { min-width: 0; }
.catch-detail-grid .panel { height: 100%; box-shadow: none; }
.catch-dl {
    display: grid;
    gap: 0;
    margin: 0;
}
.catch-dl > div {
    display: grid;
    grid-template-columns: minmax(105px, .72fr) minmax(0, 1.28fr);
    gap: 14px;
    align-items: baseline;
    padding: 11px 0;
    border-bottom: 1px solid rgba(255,255,255,.075);
}
.catch-dl > div:last-child { border-bottom: 0; }
.catch-dl dt {
    color: var(--muted);
    font-size: 12px;
    font-weight: 750;
}
.catch-dl dd {
    min-width: 0;
    margin: 0;
    overflow-wrap: anywhere;
    color: var(--cream);
    font-weight: 850;
    text-align: right;
}
.catch-map-view {
    position: relative;
    min-height: 340px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: #0c0d0b;
}
.catch-notes { overflow-wrap: anywhere; }
.catch-view-actions-bottom {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    margin-top: 28px;
    padding-top: 22px;
    border-top: 1px solid var(--line);
}
.catch-view-actions-bottom form { display: flex; margin: 0; }
.catch-view-actions-bottom .button,
.catch-view-actions-bottom .danger-button { min-width: 150px; }
.catch-species-comparison-title,
.catch-species-comparison-heading,
.catch-species-values > div { min-width: 0; }
.catch-species-comparison-title > strong,
.catch-species-comparison-title > span,
.catch-species-values strong { overflow-wrap: anywhere; }

/* Administration utilisateurs : vrais panneaux, infos longues et actions sûres. */
.user-admin-list {
    display: grid;
    gap: 14px;
}
.user-admin-card {
    padding: 20px 22px;
    box-shadow: none;
}
.user-admin-main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(250px, auto);
    gap: 22px;
    align-items: center;
}
.user-admin-main > * { min-width: 0; }
.user-admin-main h2 {
    margin: 9px 0 4px;
    font-size: clamp(24px, 3vw, 32px);
}
.user-admin-main p,
.user-admin-main small {
    display: block;
    margin: 0;
    overflow-wrap: anywhere;
}
.user-admin-main small { margin-top: 5px; color: var(--muted); }
.user-admin-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}
.user-admin-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}
.user-admin-actions form { margin: 0; }
.user-admin-actions .button,
.user-admin-actions .danger-button { min-height: 42px; }
.reset-password-box {
    flex: 1 1 100%;
    max-width: 410px;
    margin-left: auto;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: rgba(255,255,255,.018);
}
.reset-password-box summary {
    padding: 10px 12px;
    color: var(--cream);
    cursor: pointer;
    font-weight: 800;
}
.reset-password-box form {
    display: grid;
    gap: 8px;
    padding: 0 12px 12px;
}
.reset-password-box label { margin: 0; font-size: 12px; }

/* Installation : ancienne page remise au niveau de l'interface actuelle. */
.install-page { padding-block: 44px; }
.install-card { width: min(100%, 860px); }
.install-form {
    display: grid;
    gap: 16px;
}
.install-form fieldset {
    min-width: 0;
    margin: 0;
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 15px;
    background: rgba(255,255,255,.018);
}
.install-form legend {
    padding: 0 8px;
    color: var(--cream);
    font-weight: 900;
}
.install-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 14px;
}
.install-grid > div { min-width: 0; }
.install-form label { overflow-wrap: anywhere; }

/* Toolbars et cartes : robustesse lorsque les textes réels sont longs. */
.notifications-toolbar,
.catch-toolbar,
.baits-toolbar,
.social-hub-toolbar,
.places-map-heading,
.sharing-list-heading,
.share-section-heading,
.backup-create-panel {
    min-width: 0;
}
.notifications-toolbar > *,
.catch-toolbar > *,
.baits-toolbar > *,
.social-hub-toolbar > *,
.places-map-heading > *,
.sharing-list-heading > *,
.share-section-heading > *,
.backup-create-panel > * { min-width: 0; }
.notifications-toolbar-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}
.notifications-toolbar-actions form { margin: 0; }
.notifications-old-cleanup .text-link-button { margin-left: auto; }
.backup-list-panel { overflow: hidden; }
.calculator-result { min-width: 0; overflow: hidden; }

/* Les noms et valeurs ne doivent jamais pousser une grille hors écran. */
.place-card-v3,
.place-card-v3 .place-card-main,
.place-card-v3 .place-card-body,
.place-card-stats,
.place-card-stats span,
.bait-card,
.bait-card-body,
.bait-card-stats,
.bait-card-stats span,
.share-group-card,
.share-group-card-top,
.share-group-card-meta,
.group-pin-card,
.dashboard-insight-card,
.notification-summary-card,
.notification-summary-content,
.social-feed-card,
.social-feed-author,
.social-capture-copy,
.invitation-card,
.invitation-main { min-width: 0; }
.place-card-v3 h2,
.place-card-v3 h3,
.place-card-stats strong,
.bait-card-body h2,
.bait-card-body p,
.bait-card-stats strong,
.share-group-card h3,
.share-group-card p,
.group-pin-card,
.dashboard-insight-card strong,
.notification-main strong,
.notification-main span,
.invitation-card h3,
.invitation-card p {
    overflow-wrap: anywhere;
}

/* Catalogue poissons : règles natives corrigées et indépendantes du JS. */
.fish-card-media-direct {
    position: relative;
    isolation: isolate;
    overflow: hidden;
}
.fish-card-media-direct .fish-card-icon-fallback {
    position: absolute;
    inset: 0;
    z-index: 1;
}
.fish-card-media-direct .fish-card-photo-direct {
    position: absolute;
    inset: 0;
    z-index: 2;
    width: 100%;
    height: 100%;
    object-fit: cover;
    background: #090a08;
}
.fish-card-media-direct .fish-card-photo-direct[hidden],
.fish-card-media-direct .fish-card-icon-fallback[hidden] { display: none !important; }

/* Breakpoints d'ergonomie : on empile avant que les boutons se tassent. */
@media (max-width: 1120px) {
    .catch-detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .user-admin-main { grid-template-columns: 1fr; align-items: start; }
    .user-admin-actions { justify-content: flex-start; }
    .reset-password-box { margin-left: 0; max-width: 560px; }
}
@media (max-width: 1000px) {
    .notifications-toolbar {
        align-items: stretch;
        flex-direction: column;
    }
    .notifications-toolbar-actions { justify-content: flex-start; }
    .backup-create-panel { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 760px) {
    .section { padding-block: 48px; }
    .panel { padding: 22px; }
    .catch-gallery { grid-template-columns: 1fr; }
    .catch-gallery figure,
    .catch-gallery figure.primary:first-child:nth-last-child(odd) { grid-column: auto; min-height: 220px; max-height: 520px; }
    .catch-detail-grid { grid-template-columns: 1fr; }
    .catch-view-actions-bottom { display: grid; grid-template-columns: 1fr 1fr; }
    .catch-view-actions-bottom form,
    .catch-view-actions-bottom .button,
    .catch-view-actions-bottom .danger-button { width: 100%; min-width: 0; }
    .user-admin-card { padding: 17px; }
    .user-admin-actions { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
    .user-admin-actions form,
    .user-admin-actions .button,
    .user-admin-actions .danger-button,
    .reset-password-box { width: 100%; max-width: none; }
    .reset-password-box { grid-column: 1 / -1; }
    .install-grid { grid-template-columns: 1fr; }
    .notifications-toolbar-actions { display: grid; grid-template-columns: 1fr 1fr; }
    .notifications-toolbar-actions form,
    .notifications-toolbar-actions .button { width: 100%; }
    .notifications-old-cleanup { justify-content: stretch; }
    .notifications-old-cleanup .text-link-button { width: 100%; margin: 0; }
}
@media (max-width: 520px) {
    .container { width: min(calc(100% - 24px), var(--container)); }
    .catch-gallery figure { min-height: 190px; }
    .catch-dl > div { grid-template-columns: 1fr; gap: 3px; }
    .catch-dl dd { text-align: left; }
    .catch-view-actions-bottom,
    .user-admin-actions,
    .notifications-toolbar-actions { grid-template-columns: 1fr; }
    .notification-row { grid-template-columns: auto minmax(0, 1fr); }
    .notification-unread-dot { position: absolute; right: 12px; top: 12px; }
    .notification-row { position: relative; }
}

/* Compléments de garde V3.3.3 pour composants spécialisés. */
.session-app,
.dashboard-map-section,
.dashboard-places-section,
.dashboard-insights-section,
.dashboard-records-panel,
.dashboard-session-panel,
.dashboard-latest-copy,
.place-stats-grid,
.composition-list,
.social-hub-composers,
.social-hub-outing { min-width: 0; }
.push-server-status { overflow-wrap: anywhere; }
.dashboard-latest-copy h3,
.dashboard-latest-copy p { overflow-wrap: anywhere; }
.place-nav-button.google { border-color: rgba(245,180,0,.45); }

/* V3.3.4 — Sélecteur de photos fiable sur mobile/PWA. */
.capture-photo-picker {
    margin-top: 14px;
}
.capture-photo-picker-intro {
    margin: 0 0 12px;
    color: var(--muted);
}
.capture-photo-picker-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.capture-photo-picker-action {
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    min-height: 82px;
    margin: 0;
    padding: 14px 16px;
    border: 1px solid rgba(241, 200, 44, .52);
    border-radius: 14px;
    background: rgba(241, 200, 44, .08);
    color: var(--text);
    cursor: pointer;
    overflow: hidden;
    transition: border-color .16s ease, background .16s ease, transform .16s ease;
}
.capture-photo-picker-action:hover,
.capture-photo-picker-action:focus-within {
    border-color: var(--yellow);
    background: rgba(241, 200, 44, .14);
}
.capture-photo-picker-action:active {
    transform: translateY(1px);
}
.capture-photo-picker-action > span:last-of-type {
    display: grid;
    gap: 3px;
    min-width: 0;
}
.capture-photo-picker-action strong {
    display: block;
    color: var(--text);
}
.capture-photo-picker-action small {
    display: block;
    color: var(--muted);
    font-size: .84rem;
    font-weight: 600;
}
.capture-photo-picker-icon {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: var(--yellow);
    color: #090a08;
    font-size: 1.25rem;
}
.capture-photo-picker-native {
    position: absolute !important;
    inset: 0 !important;
    z-index: 3;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    opacity: 0;
    cursor: pointer;
}
.capture-photo-picker-status {
    margin-top: 12px;
    padding: 10px 12px;
    border: 1px solid var(--border);
    border-radius: 11px;
    background: rgba(255,255,255,.025);
    color: var(--muted);
    font-weight: 700;
}
.capture-photo-picker-status.is-ready {
    border-color: rgba(91, 184, 118, .48);
    color: #bde9c8;
}
.capture-photo-picker-status.is-warning {
    border-color: rgba(241, 200, 44, .58);
    color: #f5df82;
}
.capture-photo-picker-preview {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-top: 10px;
}
.capture-photo-preview-item {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 11px;
    background: rgba(255,255,255,.025);
}
.capture-photo-preview-item img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}
.capture-photo-preview-item span {
    display: block;
    padding: 7px 8px;
    overflow: hidden;
    color: var(--muted);
    font-size: .76rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}
@media (max-width: 720px) {
    .capture-photo-picker-actions {
        grid-template-columns: 1fr;
    }
    .capture-photo-picker-action {
        min-height: 74px;
    }
    .capture-photo-picker-preview {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* V3.3.5 — listes de choix optimisées mobile */
.smart-choice {
    position: relative;
    min-width: 0;
}
.smart-choice > input {
    padding-right: 48px !important;
}
.smart-choice-toggle {
    position: absolute;
    z-index: 4;
    top: 6px;
    right: 6px;
    width: 40px;
    min-width: 40px;
    height: 40px;
    min-height: 40px;
    padding: 0;
    border: 1px solid rgba(245,180,0,.28);
    border-radius: 10px;
    color: var(--yellow);
    background: rgba(245,180,0,.07);
    display: grid;
    place-items: center;
    font-size: 20px;
    line-height: 1;
}
.smart-choice-toggle:active,
.smart-choice-toggle:focus-visible {
    border-color: var(--yellow);
    background: rgba(245,180,0,.14);
}
.smart-choice.is-open .smart-choice-toggle span {
    transform: rotate(180deg);
}
.smart-choice-menu {
    display: none;
    position: absolute;
    z-index: 90;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    max-height: min(310px, 46vh);
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding: 6px;
    border: 1px solid rgba(245,180,0,.48);
    border-radius: 14px;
    background: #11130f;
    box-shadow: 0 18px 40px rgba(0,0,0,.48);
}
.smart-choice.is-open .smart-choice-menu {
    display: block;
}
.smart-choice-option {
    width: 100%;
    min-height: 50px;
    padding: 11px 12px;
    border: 0;
    border-bottom: 1px solid rgba(255,255,255,.07);
    border-radius: 9px;
    color: var(--cream);
    background: transparent;
    text-align: left;
    font: inherit;
    font-size: 16px;
    line-height: 1.3;
    white-space: normal;
    overflow-wrap: anywhere;
}
.smart-choice-option:last-of-type {
    border-bottom-color: transparent;
}
.smart-choice-option:active,
.smart-choice-option:focus-visible {
    color: #111;
    background: var(--yellow);
}
.smart-choice-empty,
.smart-choice-free-note {
    padding: 11px 12px;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.4;
}
.smart-choice-free-note {
    position: sticky;
    bottom: -6px;
    margin: 4px -6px -6px;
    border-top: 1px solid rgba(245,180,0,.18);
    background: #11130f;
    color: #d8c987;
}

@media (max-width: 900px), (pointer: coarse) {
    select {
        min-height: 56px;
        padding-left: 14px;
        padding-right: 42px;
        font-size: 16px;
        line-height: 1.2;
        color-scheme: dark;
        text-overflow: ellipsis;
    }
    select option {
        color: #f5f1e8;
        background: #11130f;
    }
    .form-grid-2 > div,
    .form-grid-3 > div,
    .field-row > div,
    .catch-form-panel > div {
        min-width: 0;
    }
    .smart-choice-menu {
        max-height: min(340px, 52vh);
    }
}

@media (max-width: 520px) {
    .smart-choice-menu {
        max-height: min(360px, 56vh);
        border-radius: 12px;
    }
    .smart-choice-option {
        min-height: 54px;
        padding: 13px 12px;
    }
}


/* V3.3.6 — sélecteur photo mobile/PWA : ouverture explicite du picker natif. */
button.capture-photo-picker-action {
    width: 100%;
    font: inherit;
    text-align: left;
    -webkit-appearance: none;
    appearance: none;
}
.capture-photo-picker-native {
    position: fixed !important;
    left: -10000px !important;
    top: 0 !important;
    width: 1px !important;
    height: 1px !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    opacity: 0.01 !important;
    pointer-events: none !important;
}
.capture-photo-picker-fallback {
    margin-top: 12px;
    padding: 12px;
    border: 1px solid rgba(241, 200, 44, .45);
    border-radius: 12px;
    background: rgba(241, 200, 44, .08);
}
.capture-photo-picker-fallback[hidden] { display: none !important; }
.capture-photo-picker-fallback p {
    margin: 0 0 10px;
    color: var(--muted);
}
.capture-photo-picker-fallback .button {
    width: 100%;
    justify-content: center;
    margin: 0;
}
.place-photo-picker .capture-photo-picker-preview {
    grid-template-columns: minmax(0, 280px);
}
@media (max-width: 720px) {
    .capture-photo-picker-action {
        min-height: 82px;
        padding: 15px 16px;
        touch-action: manipulation;
    }
    .capture-photo-picker-action strong { font-size: 1rem; }
    .capture-photo-picker-action small { font-size: .88rem; }
    .place-photo-picker .capture-photo-picker-preview { grid-template-columns: 1fr; }
}

/* V3.3.7 — photo mobile universelle + diagnostic appareil */
.capture-photo-native-input {
    position: absolute !important;
    inset: 0 !important;
    z-index: 5;
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: inherit !important;
    opacity: .001 !important;
    cursor: pointer;
    font-size: 100px !important;
}
.capture-photo-picker-actions-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.capture-photo-picker-files {
    border-color: rgba(255,255,255,.24);
    background: rgba(255,255,255,.045);
}
.capture-photo-picker-files .capture-photo-picker-icon {
    background: rgba(255,255,255,.12);
    color: var(--text);
}
.capture-photo-picker-action:focus-visible {
    outline: 2px solid var(--yellow);
    outline-offset: 2px;
}
.device-compat-panel { grid-column: 1 / -1; }
.device-compat-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 16px 0;
}
.device-compat-item {
    display: grid;
    gap: 6px;
    min-width: 0;
    padding: 12px 14px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: rgba(255,255,255,.025);
}
.device-compat-item span {
    color: var(--muted);
    font-size: .83rem;
    font-weight: 700;
}
.device-compat-item strong { overflow-wrap: anywhere; }
.device-compat-item strong.is-ok { color: #bde9c8; }
.device-compat-item strong.is-warn { color: #f5df82; }
.device-compat-details {
    display: grid;
    gap: 8px;
    margin: 0 0 18px;
    padding: 12px 14px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: rgba(0,0,0,.12);
}
.device-compat-details > div {
    display: grid;
    grid-template-columns: minmax(140px, .32fr) minmax(0, 1fr);
    gap: 10px;
    min-width: 0;
}
.device-compat-details span {
    min-width: 0;
    color: var(--muted);
    overflow-wrap: anywhere;
}
.device-compat-actions { margin-top: 10px; }
.device-compat-refresh { margin-top: 12px; }

@media (max-width: 980px) {
    .capture-photo-picker-actions-3,
    .device-compat-grid { grid-template-columns: 1fr 1fr; }
    .capture-photo-picker-actions-3 > :last-child { grid-column: 1 / -1; }
}
@media (max-width: 720px) {
    .capture-photo-picker-actions-3,
    .device-compat-grid { grid-template-columns: 1fr; }
    .capture-photo-picker-actions-3 > :last-child { grid-column: auto; }
    .device-compat-details > div { grid-template-columns: 1fr; gap: 2px; }
}


/* V3.3.8 — compatibilité Xiaomi Mi Browser / sélecteurs fichiers directs. */
.browser-compat-banner {
    border-top: 1px solid rgba(245,180,0,.30);
    border-bottom: 1px solid rgba(245,180,0,.42);
    background: #211b08;
    color: var(--cream);
}
.browser-compat-banner[hidden] { display: none !important; }
.browser-compat-banner-inner {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    padding-top: 10px;
    padding-bottom: 10px;
}
.browser-compat-icon { font-size: 1.35rem; }
.browser-compat-copy {
    display: grid;
    gap: 2px;
    min-width: 0;
}
.browser-compat-copy strong { color: var(--yellow); }
.browser-compat-copy span {
    color: #e8dfc3;
    font-size: .86rem;
    line-height: 1.4;
}
.browser-compat-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 7px;
}
.browser-compat-actions .button,
.browser-compat-actions .text-link-button {
    min-height: 38px;
    padding: 7px 10px;
    white-space: nowrap;
}
.capture-photo-compat-fallback {
    display: none;
    margin-top: 14px;
    padding: 14px;
    border: 1px dashed rgba(245,180,0,.55);
    border-radius: 13px;
    background: rgba(245,180,0,.065);
}
.is-xiaomi-browser .capture-photo-compat-fallback { display: grid; gap: 9px; }
.capture-photo-compat-fallback strong { color: var(--yellow); }
.capture-photo-compat-fallback p { margin: 0; color: var(--muted); font-size: .88rem; }
.capture-photo-raw-input {
    display: block !important;
    width: 100% !important;
    min-height: 52px !important;
    margin: 0 !important;
    padding: 6px !important;
    border: 1px solid rgba(255,255,255,.24) !important;
    border-radius: 11px !important;
    opacity: 1 !important;
    clip: auto !important;
    position: static !important;
    color: var(--cream);
    background: #0b0c09;
}
.capture-photo-raw-input::file-selector-button {
    min-height: 38px;
    margin-right: 10px;
    padding: 7px 11px;
    border: 1px solid rgba(245,180,0,.55);
    border-radius: 9px;
    color: #111;
    background: var(--yellow);
    font-weight: 850;
}
.capture-open-chrome { justify-self: start; }
.push-header-status.is-unsupported {
    border-color: rgba(255,145,70,.62);
    color: #ffd0a1;
    background: rgba(130,60,12,.20);
}
@media (max-width: 900px) {
    .browser-compat-banner-inner { grid-template-columns: auto minmax(0, 1fr); }
    .browser-compat-actions { grid-column: 1 / -1; justify-content: flex-start; }
}
@media (max-width: 560px) {
    .browser-compat-banner-inner { padding-top: 9px; padding-bottom: 9px; }
    .browser-compat-copy span { font-size: .80rem; }
    .browser-compat-actions { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
    .browser-compat-actions .text-link-button { grid-column: 1 / -1; }
    .browser-compat-actions .button { width: 100%; }
}

/* V3.4.0 — Signalements utilisateurs */
.problem-report-layout,.admin-problem-layout{display:grid;gap:24px}.problem-report-heading,.problem-admin-detail-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.problem-report-heading h2,.problem-admin-detail-heading h2{margin:6px 0 4px}.problem-report-tech-badge{display:inline-flex;align-items:center;min-height:36px;padding:0 12px;border:1px solid rgba(90,185,255,.4);border-radius:999px;background:rgba(90,185,255,.08);color:#ccecff;font-size:12px;font-weight:900;white-space:nowrap}.problem-report-auto-info{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;margin-top:18px;padding:14px;border:1px dashed var(--line);border-radius:13px;background:rgba(255,255,255,.02)}.problem-report-auto-info p{margin:0;font-size:13px}.problem-report-submit-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.problem-report-list-heading{margin-bottom:14px}.problem-report-list-heading h2{margin:4px 0 0}.problem-report-list{display:grid;gap:12px}.problem-report-card,.problem-admin-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;color:var(--text);text-decoration:none;box-shadow:none;transition:.16s ease}.problem-report-card:hover,.problem-admin-row:hover,.problem-admin-row.active{border-color:rgba(245,180,0,.55);transform:translateY(-1px)}.problem-report-card-main,.problem-admin-row-main{min-width:0}.problem-report-card h3,.problem-admin-row h3{margin:8px 0 4px;font-size:20px;overflow-wrap:anywhere}.problem-report-card p,.problem-admin-row p{margin:0;font-size:13px}.problem-report-card-topline{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.problem-status,.problem-priority{display:inline-flex;align-items:center;min-height:27px;padding:0 9px;border-radius:999px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.problem-status.status-new{background:rgba(245,180,0,.16);color:#ffd75f;border:1px solid rgba(245,180,0,.38)}.problem-status.status-in_progress{background:rgba(90,185,255,.12);color:#bfe7ff;border:1px solid rgba(90,185,255,.35)}.problem-status.status-resolved{background:rgba(80,210,125,.12);color:#bff7cf;border:1px solid rgba(80,210,125,.35)}.problem-status.status-closed{background:rgba(255,255,255,.07);color:var(--muted);border:1px solid var(--line)}.problem-priority.priority-blocking{background:rgba(210,65,65,.15);color:#ffd1d1;border:1px solid rgba(230,85,85,.36)}.problem-priority.priority-normal{background:rgba(255,255,255,.06);color:var(--cream);border:1px solid var(--line)}.problem-priority.priority-low{background:rgba(80,210,125,.08);color:#bff7cf;border:1px solid rgba(80,210,125,.25)}.problem-report-open{color:var(--yellow);font-weight:900;white-space:nowrap}.problem-report-detail-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:22px;align-items:start}.problem-report-detail-main h2{margin-top:26px}.problem-report-detail-main h3{margin:24px 0 9px}.problem-report-copy{padding:16px;border:1px solid var(--line);border-radius:13px;background:var(--surface-2);line-height:1.65;overflow-wrap:anywhere}.problem-report-detail-side{display:grid;gap:14px}.problem-report-detail-side .panel h2{margin-bottom:10px}.problem-report-admin-note{margin-top:16px;padding:14px;border-left:4px solid var(--yellow);border-radius:10px;background:rgba(245,180,0,.08)}.problem-report-admin-note p{margin:6px 0 0}.problem-report-screenshot{display:block;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#090a08}.problem-report-screenshot img{display:block;width:100%;max-height:680px;object-fit:contain}.problem-report-technical-summary dl,.problem-admin-tech dl{display:grid;gap:0;margin:10px 0 0}.problem-report-technical-summary dl div,.problem-admin-tech dl div{display:grid;grid-template-columns:130px minmax(0,1fr);gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.problem-report-technical-summary dt,.problem-admin-tech dt{color:var(--muted);font-size:12px;font-weight:800}.problem-report-technical-summary dd,.problem-admin-tech dd{margin:0;overflow-wrap:anywhere}.problem-admin-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.problem-admin-stat{display:grid;gap:2px;padding:16px;text-decoration:none;color:var(--text);box-shadow:none}.problem-admin-stat strong{font-size:30px;color:var(--yellow)}.problem-admin-stat span{color:var(--muted);font-size:12px;font-weight:800}.problem-admin-stat.active{border-color:var(--yellow);background:rgba(245,180,0,.07)}.problem-admin-detail{box-shadow:none}.problem-admin-detail-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:22px;margin-top:20px}.problem-admin-detail-grid h3{margin:18px 0 9px}.problem-admin-tech{padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}.problem-device-json{max-height:320px;overflow:auto;margin:16px 0 0;padding:13px;border:1px solid var(--line);border-radius:11px;background:#060705;color:#dfe7de;white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px;line-height:1.5}.problem-admin-update-form{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.problem-admin-handler{display:flex;flex-direction:column;justify-content:center;gap:5px;margin-top:14px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}.problem-admin-handler span{color:var(--muted);font-size:12px}.problem-admin-list{display:grid;gap:10px}.problem-admin-row{padding:15px 18px}.problem-admin-row h3{font-size:18px}
@media (max-width:980px){.problem-report-detail-layout,.problem-admin-detail-grid{grid-template-columns:1fr}.problem-admin-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.problem-report-heading,.problem-admin-detail-heading{align-items:stretch;flex-direction:column}.problem-report-tech-badge{width:max-content}}
@media (max-width:640px){.problem-admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.problem-report-card,.problem-admin-row{align-items:flex-start;flex-direction:column}.problem-report-open{align-self:flex-end}.problem-report-submit-row{display:grid;grid-template-columns:1fr}.problem-report-submit-row .button{width:100%}.problem-report-technical-summary dl div,.problem-admin-tech dl div{grid-template-columns:1fr;gap:3px}.problem-report-tech-badge{max-width:100%;white-space:normal}}


/* V3.4.5.1 — photos de prises : conserver intégralement les formats portrait.
   Les cadres restent fixes mais l'image n'est plus zoomée/rognée. */
.catch-home-slide-media {
    display: grid;
    place-items: center;
}
.catch-home-slide-media img,
.catch-card-photo img,
.dashboard-latest-thumb img,
.social-capture-photo img,
.capture-photo-edit-item > img,
.capture-photo-preview-item img {
    object-fit: contain;
    object-position: center center;
    background: radial-gradient(circle at center, rgba(255,255,255,.045), transparent 58%), #090a08;
}

/* =========================================================
   CARP SESSION V3.5.0 — consolidation, navigation du dashboard
   et accessibilité clavier
   ========================================================= */
.skip-link{position:fixed;z-index:5000;left:14px;top:14px;transform:translateY(-180%);padding:10px 14px;border:2px solid var(--yellow);border-radius:10px;background:#11140d;color:var(--cream);font-weight:900;text-decoration:none;box-shadow:0 8px 24px rgba(0,0,0,.45)}
.skip-link:focus{transform:translateY(0)}
.dashboard-quick-nav-section{padding-top:18px;padding-bottom:0}
.dashboard-quick-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.dashboard-quick-nav a{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:10px;min-height:64px;padding:12px 14px;border:1px solid var(--line);border-radius:15px;background:var(--surface);color:var(--cream);text-decoration:none}
.dashboard-quick-nav a:hover,.dashboard-quick-nav a:focus-visible{border-color:var(--yellow);background:var(--surface-2)}
.dashboard-quick-nav-index{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--yellow);color:#111;font-weight:950;font-size:12px}
.dashboard-quick-nav strong{display:block;font-size:14px}.dashboard-quick-nav small{display:block;margin-top:2px;color:var(--muted);font-size:11px}
.dashboard-anchor{scroll-margin-top:104px}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid rgba(246,201,0,.92);outline-offset:3px}
.catch-home-slide[inert]{pointer-events:none}
@media(max-width:760px){.dashboard-quick-nav{grid-template-columns:1fr}.dashboard-quick-nav a{min-height:56px}.dashboard-anchor{scroll-margin-top:82px}}


/* V3.5.1 — recherche cartographique IGN + postes de pêche */
.map-search-box{position:relative;margin:14px 0 16px;padding:14px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.025)}
.map-search-box.compact{margin:0 0 14px}
.map-search-box>label{display:block;margin:0 0 8px;font-size:13px;font-weight:900;color:var(--cream)}
.map-search-row{display:flex;gap:8px;align-items:stretch}
.map-search-row input{flex:1;min-width:0;margin:0}
.map-search-row .button{flex:0 0 auto;margin:0}
.map-search-results{position:absolute;z-index:1005;left:14px;right:14px;top:76px;max-height:320px;overflow:auto;border:1px solid var(--line);border-radius:12px;background:#11130f;box-shadow:0 18px 45px rgba(0,0,0,.42)}
.map-search-result{display:flex;width:100%;flex-direction:column;gap:3px;padding:11px 12px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--cream);text-align:left;cursor:pointer}
.map-search-result:last-child{border-bottom:0}.map-search-result:hover,.map-search-result:focus{outline:none;background:rgba(241,197,26,.12)}
.map-search-result strong{font-size:13px}.map-search-result small{font-size:11px;color:var(--muted)}
.map-search-empty{padding:13px;color:var(--muted);font-size:12px}.map-search-status{margin:8px 0 0}.map-search-status.danger{color:#ff9b9b}
.map-search-box.is-loading .map-search-row button{opacity:.65}
.map-search-marker{stroke:#fff3a6!important;fill:#f1c51a!important}.place-main-marker{stroke:#f1c51a!important;fill:#f1c51a!important}
.fishing-spot-marker{stroke:#f4f7ef!important;fill:#5ab9ff!important}.leaflet-tooltip{font-family:inherit;font-weight:800}
.place-spots-editor{margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}
.place-spots-editor-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}.place-spots-editor-head h3{margin:4px 0 5px;font-size:20px}.place-spots-editor-head p{margin:0;color:var(--muted);font-size:13px}
.place-spots-list{display:grid;gap:12px}.place-spot-editor-row{padding:14px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.022);transition:border-color .18s ease,box-shadow .18s ease}.place-spot-editor-row.is-placing{border-color:var(--yellow);box-shadow:0 0 0 2px rgba(241,197,26,.12)}
.place-spot-editor-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.place-spot-editor-title strong{font-size:14px}.place-spot-editor-title span{font-size:11px;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.place-spot-editor-row .form-grid-2{margin:0}.place-spot-editor-row label{font-size:12px}.place-spot-editor-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.place-spot-editor-actions .button,.place-spot-editor-actions .danger-button{margin:0}
.place-spots-empty{padding:14px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);font-size:13px;text-align:center}
.place-spots-view-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.place-spot-view-card{padding:12px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.025)}.place-spot-view-card>div{display:flex;align-items:center;gap:8px}.place-spot-view-card strong{font-size:13px}.place-spot-symbol{font-size:17px}.place-spot-view-card p{margin:7px 0;color:var(--muted);font-size:12px}.place-spot-view-card small{display:block;color:var(--muted);font-size:10px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.place-spot-popup{display:grid;gap:4px;min-width:150px}.place-spot-popup span,.place-spot-popup small{color:#444}
@media (max-width:760px){.map-search-row{display:grid;grid-template-columns:1fr}.map-search-row .button{width:100%}.map-search-results{top:122px}.place-spots-editor-head{flex-direction:column;align-items:stretch}.place-spots-editor-head .button{width:100%}.place-spot-editor-title{align-items:flex-start;flex-direction:column}.place-spot-editor-actions{display:grid;grid-template-columns:1fr}.place-spot-editor-actions>*{width:100%}.place-spots-view-grid{grid-template-columns:1fr}}

/* V3.5.1.1 — styles/couleurs des postes + galeries photos lieux/postes */
.fishing-spot-div-icon{background:transparent!important;border:0!important;display:grid!important;place-items:center!important}
.fishing-spot-shape{--spot-color:#5ab9ff;display:inline-block;flex:0 0 auto;width:22px;height:22px;background:var(--spot-color);border:2px solid rgba(255,255,255,.95);box-shadow:0 2px 8px rgba(0,0,0,.45)}
.fishing-spot-shape.is-circle{border-radius:50%}
.fishing-spot-shape.is-square{border-radius:4px}
.fishing-spot-shape.is-diamond{border-radius:4px;transform:rotate(45deg) scale(.82)}
.fishing-spot-shape.is-triangle{border:0;clip-path:polygon(50% 4%,96% 94%,4% 94%);background:var(--spot-color);filter:drop-shadow(0 0 1px #fff) drop-shadow(0 2px 4px rgba(0,0,0,.55))}
.fishing-spot-shape.is-target{border-radius:50%;background:radial-gradient(circle,var(--spot-color) 0 27%,#fff 29% 43%,var(--spot-color) 45% 69%,#fff 71% 100%)}
.place-spot-title-with-marker,.place-spot-view-title{display:flex;align-items:center;gap:10px;min-width:0}.place-spot-title-with-marker strong,.place-spot-view-title strong{min-width:0}
.place-spot-editor-title>.place-spot-title-with-marker{font-family:inherit}.place-spot-editor-title>.place-spot-title-with-marker .fishing-spot-shape{font-size:initial;color:initial}
.place-spot-style-grid{align-items:end}.place-spot-color-control{display:flex;align-items:center;gap:10px}.place-spot-color-control input[type=color]{width:54px;min-width:54px;height:44px;padding:4px;cursor:pointer}.place-spot-color-control code{color:var(--muted);font-size:11px}
.place-spot-photo-manager{display:grid;gap:10px;margin-top:12px;padding:12px;border:1px dashed rgba(255,255,255,.14);border-radius:12px;background:rgba(0,0,0,.12)}
.place-spot-photo-manager-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.place-spot-photo-manager-head strong{font-size:12px}.place-spot-photo-manager-head span{color:var(--muted);font-size:11px}
.place-spot-photo-edit-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.place-spot-photo-edit-grid figure{margin:0;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#090a08}.place-spot-photo-edit-grid img{display:block;width:100%;aspect-ratio:1/1;object-fit:contain;background:#070806}.place-spot-photo-edit-grid label{display:flex;align-items:center;gap:5px;padding:6px 7px;color:#ffb3b3;font-size:10px;cursor:pointer}
.place-spot-photo-inputs{display:flex;flex-wrap:wrap;gap:8px}.mini-upload-button{position:relative;display:inline-flex!important;align-items:center;justify-content:center;min-height:40px;padding:8px 11px!important;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);color:var(--cream)!important;font-weight:800!important;cursor:pointer;overflow:hidden}.mini-upload-button:hover{border-color:var(--yellow)}.mini-upload-button input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.place-spot-photo-manager>small{color:var(--muted);font-size:10px}
.place-photo-edit-gallery{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:0 0 16px}.place-photo-edit-gallery figure{position:relative;margin:0;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#090a08}.place-photo-edit-gallery figure.is-primary{border-color:var(--yellow);box-shadow:0 0 0 2px rgba(241,197,26,.13)}.place-photo-edit-gallery img{display:block;width:100%;aspect-ratio:4/3;object-fit:contain;background:#070806}.place-photo-edit-gallery figure>div{display:grid;gap:5px;padding:7px}.place-photo-edit-gallery label{display:flex;align-items:center;gap:5px;margin:0;font-size:10px;cursor:pointer}.place-photo-edit-gallery label:last-child{color:#ffb3b3}
.place-photo-gallery-panel{margin:18px 0}.place-photo-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.place-photo-gallery a{display:block;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#090a08}.place-photo-gallery a.is-primary{grid-column:span 2;grid-row:span 2;border-color:rgba(241,197,26,.55)}.place-photo-gallery img{display:block;width:100%;height:100%;min-height:150px;aspect-ratio:4/3;object-fit:contain;background:#070806;transition:transform .18s ease}.place-photo-gallery a:hover img{transform:scale(1.02)}
.place-spot-view-card{display:grid;gap:8px}.place-spot-view-photos{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.place-spot-view-photos a{display:block;overflow:hidden;border:1px solid var(--line);border-radius:8px}.place-spot-view-photos img{display:block;width:100%;aspect-ratio:1/1;object-fit:contain;background:#070806}.place-spot-view-card .text-link{margin-top:3px;font-size:11px}
.place-spot-popup-photo{display:block;width:180px;max-width:100%;height:110px;object-fit:contain;background:#070806;border-radius:7px;margin-bottom:4px}
#place-spot-field[hidden]{display:none!important}
@media(max-width:980px){.place-photo-edit-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}.place-photo-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.place-spot-photo-edit-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:620px){.place-photo-edit-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.place-photo-gallery{grid-template-columns:1fr 1fr}.place-photo-gallery a.is-primary{grid-column:1/-1;grid-row:auto}.place-spot-photo-edit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.place-spot-photo-inputs{display:grid;grid-template-columns:1fr}.mini-upload-button{width:100%}}

/* V3.5.1.2 — administration globale des contenus + journal d'audit */
.admin-content-page,.admin-audit-page{display:grid;gap:18px}
.admin-content-toolbar{display:flex;align-items:end;justify-content:space-between;gap:18px}.admin-user-picker{display:grid;gap:7px;min-width:min(520px,100%);margin:0}.admin-user-picker label{font-weight:900}.admin-content-toolbar-links,.admin-edit-banner-actions,.admin-data-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.admin-content-toolbar-links .button,.admin-edit-banner-actions .button,.admin-data-actions .button,.admin-data-actions .danger-button{margin:0}
.admin-user-content-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.admin-user-content-card{display:grid;gap:14px;align-content:start}.admin-user-content-card h2{margin:6px 0 2px}.admin-user-content-card p{margin:0;color:var(--muted)}.admin-content-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.admin-content-counts span{padding:8px;border:1px solid var(--line);border-radius:10px;color:var(--muted);font-size:11px}.admin-content-counts strong{display:block;color:var(--cream);font-size:17px}
.admin-edit-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;border-color:rgba(241,197,26,.45);background:linear-gradient(120deg,rgba(241,197,26,.10),rgba(255,255,255,.025))}.admin-edit-banner h2{margin:4px 0}.admin-edit-banner h2 small{color:var(--muted);font-size:13px}.admin-edit-banner p{margin:5px 0 0;color:var(--muted)}.admin-edit-banner.compact{margin-bottom:16px;padding:13px 15px}.admin-edit-banner.compact strong{display:block}.admin-edit-banner.compact p{font-size:12px}
.admin-content-tabs{display:flex;gap:7px;overflow:auto;padding:4px 0 2px;scrollbar-width:thin}.admin-content-tabs a{flex:0 0 auto;padding:9px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font-size:12px;font-weight:900;text-decoration:none}.admin-content-tabs a:hover,.admin-content-tabs a:focus-visible,.admin-content-tabs a.active{border-color:var(--yellow);background:rgba(241,197,26,.12);color:var(--cream)}
.admin-section-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-top:4px}.admin-section-heading h2{margin:3px 0 0}.admin-data-list{display:grid;gap:10px}.admin-data-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.admin-data-row>div:first-child{display:grid;gap:3px}.admin-data-row>div:first-child span{color:var(--muted);font-size:12px}.admin-social-edit-card{display:grid;gap:10px}.admin-social-edit-card form{display:grid;gap:8px;margin:0}.admin-social-edit-card form+form{padding-top:10px;border-top:1px solid var(--line)}.admin-social-meta{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:11px}.admin-social-meta strong{color:var(--cream);font-size:13px}.admin-session-editor{display:grid;gap:12px}.admin-session-editor form{display:grid;gap:8px;margin:0}.admin-session-editor form+form{padding-top:12px;border-top:1px solid var(--line)}.admin-json-editor{min-height:420px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;line-height:1.5;tab-size:2}.admin-edit-reason{margin:14px 0;border-color:rgba(241,197,26,.42)}.admin-edit-reason label{display:block;margin:5px 0 7px;font-weight:900}.admin-edit-reason textarea{margin:0}
.admin-audit-intro{border-color:rgba(241,197,26,.35)}.admin-audit-intro p{margin:5px 0 0;color:var(--muted)}.admin-audit-filters{display:grid;gap:12px}.admin-audit-list{display:grid;gap:9px}.admin-audit-row{padding:0;overflow:hidden}.admin-audit-row>summary{display:grid;grid-template-columns:auto minmax(180px,1.4fr) minmax(120px,.8fr) minmax(160px,1fr);gap:10px;align-items:center;padding:13px 14px;cursor:pointer;list-style:none}.admin-audit-row>summary::-webkit-details-marker{display:none}.admin-audit-row>summary:hover{background:rgba(255,255,255,.025)}.admin-audit-row[open]>summary{border-bottom:1px solid var(--line)}.audit-status{display:inline-grid;place-items:center;min-width:58px;padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.08);font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.04em}.audit-status-success{background:rgba(79,196,111,.14);color:#8ee7a5}.audit-status-error,.audit-status-denied{background:rgba(255,93,93,.14);color:#ffadad}.audit-status-info{background:rgba(90,185,255,.14);color:#a9dcff}.admin-audit-detail{display:grid;gap:14px;padding:15px}.audit-meta{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:0}.audit-meta>div{padding:8px;border:1px solid var(--line);border-radius:9px}.audit-meta dt{color:var(--muted);font-size:9px;text-transform:uppercase}.audit-meta dd{margin:3px 0 0;overflow-wrap:anywhere;font-size:11px}.audit-json-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.audit-json-grid h3{margin:0 0 6px;font-size:12px}.audit-json-grid pre{max-height:460px;margin:0;padding:10px;overflow:auto;border:1px solid var(--line);border-radius:10px;background:#080906;color:#dfe6d7;font-size:10px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:1050px){.admin-user-content-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.audit-meta{grid-template-columns:repeat(3,minmax(0,1fr))}.audit-json-grid{grid-template-columns:1fr}.admin-audit-row>summary{grid-template-columns:auto 1fr}.admin-audit-row>summary span:nth-last-child(-n+2){font-size:10px}}
@media(max-width:700px){.admin-content-toolbar,.admin-edit-banner,.admin-data-row,.admin-social-meta{align-items:stretch;flex-direction:column}.admin-content-toolbar{display:grid}.admin-content-toolbar-links,.admin-edit-banner-actions,.admin-data-actions{display:grid;grid-template-columns:1fr}.admin-content-toolbar-links>*,.admin-edit-banner-actions>*,.admin-data-actions>*{width:100%}.admin-user-content-grid{grid-template-columns:1fr}.admin-content-counts{grid-template-columns:repeat(2,minmax(0,1fr))}.audit-meta{grid-template-columns:1fr 1fr}.admin-audit-row>summary{grid-template-columns:auto 1fr;padding:11px}.admin-audit-row>summary span:nth-last-child(-n+2){grid-column:1/-1}.admin-json-editor{min-height:300px}.admin-section-heading{align-items:flex-start;flex-direction:column}}
.admin-preferences-editor{display:grid;gap:18px}.admin-preferences-editor>.admin-section-heading{margin-top:4px}.admin-notification-pref-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.admin-notification-pref-grid .check-row,.admin-check-stack .check-row{margin:0;padding:10px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.02)}.admin-check-stack{display:grid;gap:8px;align-content:start}.warning-check{border-color:rgba(255,184,77,.35)!important;color:#ffd39a}
@media(max-width:900px){.admin-notification-pref-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.admin-notification-pref-grid{grid-template-columns:1fr}}
.admin-post-photo{display:flex;align-items:center;gap:12px;padding:9px;border:1px solid var(--line);border-radius:10px;background:rgba(0,0,0,.12)}.admin-post-photo img{width:96px;height:72px;object-fit:contain;border-radius:8px;background:#070806}.admin-post-photo .check-row{margin:0}
@media(max-width:560px){.admin-post-photo{align-items:stretch;flex-direction:column}.admin-post-photo img{width:100%;height:150px}}


/* V3.5.1.2.4 — statistiques personnelles / groupes dans les cartes lieux */
.place-card-v3 .place-card-stats .is-group {
    border-top-color: rgba(246,201,0,.28);
}
.place-card-v3 .place-card-stats .is-group strong {
    color: var(--yellow);
}

/* V3.5.2.1 — résumé des horaires sur les cartes de lieux */
.place-card-legal-hours{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:14px;row-gap:2px;margin-top:14px;padding:11px 12px;border:1px solid rgba(246,201,0,.2);border-radius:12px;background:rgba(246,201,0,.035)}
.place-card-legal-hours .place-card-legal-label{grid-column:1/2;color:var(--muted);font-size:11px;font-weight:700}
.place-card-legal-hours>strong{grid-column:2/3;grid-row:1/3;color:var(--yellow);font-size:15px;white-space:nowrap}
.place-card-legal-hours>strong span{color:var(--muted);font-size:.85em}
.place-card-legal-hours>small{grid-column:1/2;color:var(--muted);font-size:10px}
.place-card-legal-hours>small.is-inside{color:#9fe8ac}
.place-card-legal-hours>small.is-before{color:#ffe39a}
.place-card-legal-hours>small.is-after{color:#aaa}
.place-card-legal-hours.is-unavailable{border-color:rgba(255,255,255,.08);background:rgba(255,255,255,.018)}
.place-card-legal-hours.is-unavailable>strong{color:var(--cream)}
@media(max-width:520px){.place-card-legal-hours{grid-template-columns:1fr}.place-card-legal-hours>strong{grid-column:1;grid-row:auto;margin-top:3px}.place-card-legal-hours>small{grid-column:1}}

/* V3.5.2 — Horaires légaux de pêche */
.legal-fishing-panel{margin-top:32px;overflow:hidden}
.legal-fishing-heading{align-items:center}
.legal-fishing-status{display:inline-flex;align-items:center;min-height:34px;padding:7px 12px;border:1px solid rgba(255,190,0,.35);border-radius:999px;font-size:.75rem;font-weight:800;letter-spacing:.03em;color:var(--text-soft);background:rgba(255,190,0,.06)}
.legal-fishing-status.is-inside{color:#bdf7c8;border-color:rgba(79,210,112,.45);background:rgba(79,210,112,.1)}
.legal-fishing-status.is-before{color:#ffe39a}
.legal-fishing-status.is-after{color:#c7c7c7;border-color:rgba(255,255,255,.16);background:rgba(255,255,255,.04)}
.legal-fishing-today{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);gap:16px;margin-top:18px}
.legal-fishing-main,.legal-fishing-sun{border:1px solid rgba(255,190,0,.24);border-radius:18px;background:rgba(255,255,255,.018)}
.legal-fishing-main{display:flex;flex-direction:column;justify-content:center;padding:24px}
.legal-fishing-main>span{font-size:.82rem;color:var(--text-soft);font-weight:700}
.legal-fishing-main>strong{display:flex;align-items:center;gap:12px;margin:7px 0 5px;font-size:clamp(2rem,5vw,3.4rem);line-height:1;color:var(--accent)}
.legal-fishing-main>strong span{font-size:.65em;color:var(--text-soft)}
.legal-fishing-main>small{color:var(--text-soft)}
.legal-fishing-sun{display:grid;grid-template-columns:1fr 1fr;gap:1px;overflow:hidden}
.legal-fishing-sun>div{display:flex;flex-direction:column;justify-content:center;gap:5px;padding:20px;background:rgba(0,0,0,.12)}
.legal-fishing-sun span{font-size:.78rem;color:var(--text-soft)}
.legal-fishing-sun strong{font-size:1.55rem;color:var(--text)}
.legal-fishing-days{display:grid;grid-template-columns:repeat(7,minmax(96px,1fr));gap:9px;margin-top:14px;overflow-x:auto;padding-bottom:3px}
.legal-fishing-day{min-width:96px;padding:13px 11px;border:1px solid rgba(255,255,255,.09);border-radius:14px;background:rgba(255,255,255,.018);display:flex;flex-direction:column;gap:4px}
.legal-fishing-day.is-today{border-color:rgba(255,190,0,.42);background:rgba(255,190,0,.06)}
.legal-fishing-day>span{font-size:.72rem;font-weight:800;color:var(--text-soft)}
.legal-fishing-day>strong{font-size:.94rem;color:var(--text)}
.legal-fishing-day>small{font-size:.7rem;color:var(--text-soft)}
.legal-fishing-jurisdiction{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:18px;padding:18px 20px;border-top:1px solid rgba(255,190,0,.18);border-bottom:1px solid rgba(255,190,0,.18)}
.legal-fishing-jurisdiction>div:first-child{display:flex;flex-direction:column;gap:3px}
.legal-fishing-jurisdiction strong{font-size:1.1rem}
.legal-fishing-jurisdiction small{color:var(--text-soft)}
.legal-fishing-actions{display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap}
.legal-fishing-warning{margin-top:16px;padding:16px 18px;border-radius:14px;border:1px solid rgba(255,190,0,.22);background:rgba(255,190,0,.045)}
.legal-fishing-warning strong{display:block;margin-bottom:6px;color:#ffe39a}
.legal-fishing-warning p{margin:0 0 8px;color:var(--text-soft);line-height:1.55}
.legal-fishing-empty{margin-top:8px}
@media (max-width:820px){.legal-fishing-today{grid-template-columns:1fr}.legal-fishing-main>strong{font-size:2.35rem}.legal-fishing-jurisdiction{align-items:flex-start;flex-direction:column}.legal-fishing-actions{justify-content:flex-start}}
@media (max-width:520px){.legal-fishing-panel{margin-top:24px}.legal-fishing-main{padding:18px}.legal-fishing-main>strong{font-size:2rem;gap:8px}.legal-fishing-sun>div{padding:15px}.legal-fishing-sun strong{font-size:1.3rem}.legal-fishing-jurisdiction{padding:16px 0}.legal-fishing-actions{align-items:stretch;flex-direction:column;width:100%}.legal-fishing-actions .button{width:100%;justify-content:center}}

/* V3.5.3 — météo des lieux de pêche */
.place-card-weather{margin-top:10px;padding:11px 12px;border:1px solid rgba(90,185,255,.22);border-radius:12px;background:rgba(90,185,255,.035);display:flex;flex-direction:column;gap:9px}
.place-card-weather-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.place-card-weather-label{color:var(--muted);font-size:11px;font-weight:800}.place-card-weather-head>small{color:var(--muted);font-size:9px;text-align:right}
.place-card-weather-main{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px}.place-card-weather-icon{font-size:27px;line-height:1}.place-card-weather-main>div:nth-child(2){display:flex;min-width:0;flex-direction:column;gap:1px}.place-card-weather-main>div:nth-child(2)>strong{color:var(--cream);font-size:17px}.place-card-weather-main>div:nth-child(2)>small{color:var(--muted);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.place-card-weather-range{display:flex;flex-direction:column;align-items:flex-end;gap:1px;color:var(--muted);font-size:10px;white-space:nowrap}
.place-card-weather-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding-top:8px;border-top:1px solid rgba(255,255,255,.06);color:var(--muted);font-size:10px}.place-card-weather-meta span{text-align:center;white-space:nowrap}.place-card-weather.is-unavailable{border-color:rgba(255,255,255,.08);background:rgba(255,255,255,.018)}.place-card-weather.is-unavailable>strong{color:var(--cream);font-size:13px}.place-card-weather.is-unavailable>small{color:var(--muted);font-size:10px}

.place-weather-panel{margin-top:32px;overflow:hidden}.place-weather-heading{align-items:center}.weather-update-badge{display:inline-flex;align-items:center;min-height:34px;padding:7px 12px;border:1px solid rgba(90,185,255,.3);border-radius:999px;background:rgba(90,185,255,.055);color:var(--text-soft);font-size:.72rem;font-weight:800}
.place-weather-current{display:grid;grid-template-columns:minmax(270px,.8fr) minmax(0,1.2fr);gap:14px;margin-top:18px}.place-weather-condition,.place-weather-metrics{border:1px solid rgba(90,185,255,.2);border-radius:18px;background:rgba(255,255,255,.018)}.place-weather-condition{display:flex;align-items:center;gap:18px;padding:24px}.place-weather-big-icon{font-size:clamp(3.4rem,7vw,5rem);line-height:1;filter:drop-shadow(0 5px 10px rgba(0,0,0,.2))}.place-weather-condition>div{display:flex;flex-direction:column;gap:4px}.place-weather-condition>div>span{font-size:.78rem;color:var(--text-soft);font-weight:800;text-transform:uppercase;letter-spacing:.05em}.place-weather-condition>div>strong{font-size:clamp(2.35rem,5vw,3.6rem);line-height:1;color:var(--text)}.place-weather-condition>div>small{color:var(--text-soft);line-height:1.35}
.place-weather-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden}.place-weather-metrics>div{display:flex;min-width:0;flex-direction:column;justify-content:center;gap:5px;padding:18px;border-right:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06)}.place-weather-metrics>div:nth-child(3n){border-right:0}.place-weather-metrics>div:nth-last-child(-n+3){border-bottom:0}.place-weather-metrics span{font-size:.72rem;color:var(--text-soft)}.place-weather-metrics strong{font-size:1.05rem;color:var(--text)}
.place-weather-days{display:grid;grid-template-columns:repeat(7,minmax(125px,1fr));gap:9px;margin-top:14px;overflow-x:auto;padding-bottom:4px}.place-weather-day{min-width:125px;padding:14px 12px;border:1px solid rgba(255,255,255,.09);border-radius:14px;background:rgba(255,255,255,.018);display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}.place-weather-day.is-today{border-color:rgba(90,185,255,.42);background:rgba(90,185,255,.06)}.place-weather-day-label{font-size:.72rem;font-weight:800;color:var(--text-soft)}.place-weather-day-icon{font-size:2rem;line-height:1}.place-weather-day>strong{font-size:.94rem;color:var(--text)}.place-weather-day>strong span{color:var(--text-soft);font-weight:500}.place-weather-day-condition{min-height:2.4em;color:var(--text-soft);font-size:.67rem;line-height:1.2}.place-weather-day-details{width:100%;display:flex;flex-direction:column;gap:3px;padding-top:7px;border-top:1px solid rgba(255,255,255,.06)}.place-weather-day-details small{color:var(--text-soft);font-size:.65rem;white-space:nowrap}.place-weather-source{margin-top:15px;padding-top:13px;border-top:1px solid rgba(90,185,255,.15);color:var(--text-soft);font-size:.72rem}.place-weather-empty{margin-top:8px}
@media(max-width:900px){.place-weather-current{grid-template-columns:1fr}.place-weather-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:620px){.place-card-weather-main{grid-template-columns:auto minmax(0,1fr)}.place-card-weather-range{grid-column:1/-1;flex-direction:row;justify-content:flex-start;gap:12px;padding-left:37px}.place-card-weather-meta{grid-template-columns:1fr;gap:3px}.place-card-weather-meta span{text-align:left}.place-weather-panel{margin-top:24px}.place-weather-condition{padding:18px;gap:13px}.place-weather-big-icon{font-size:3.25rem}.place-weather-condition>div>strong{font-size:2.2rem}.place-weather-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.place-weather-metrics>div{border-right:1px solid rgba(255,255,255,.06)!important;border-bottom:1px solid rgba(255,255,255,.06)!important}.place-weather-metrics>div:nth-child(2n){border-right:0!important}.place-weather-metrics>div:nth-last-child(-n+2){border-bottom:0!important}.weather-update-badge{font-size:.65rem}}
.place-weather-list-source{margin:12px 4px 0;color:var(--muted);font-size:.68rem;text-align:right}.place-weather-list-source .text-link{font-size:inherit}

/* =========================================================
   CARP SESSION V3.5.3.1 — formulaire de prise mobile
   Suppression du léger débordement horizontal sans masquer
   les débordements des autres pages.
   ========================================================= */
.catch-form-section,
.catch-form-section > .container,
.catch-form-layout,
.catch-form-panel,
.catch-form-submit,
.catch-form-panel > *,
.catch-form-panel .form-grid-2,
.catch-form-panel .map-search-box,
.catch-form-panel .map-search-row,
.catch-form-panel .capture-map-shell,
.catch-form-panel .capture-photo-picker,
.catch-form-panel .capture-photo-picker-actions,
.catch-form-panel .capture-photo-picker-action,
.catch-form-panel .capture-photo-picker-preview,
.catch-form-panel .rich-editor-shell,
.catch-form-panel .rich-editor-toolbar,
.catch-form-panel .geo-permission-panel,
.catch-form-panel .geo-permission-copy,
.catch-form-panel .geo-permission-actions,
.catch-form-panel .map-actions {
    min-width: 0;
    max-width: 100%;
}
.catch-form-panel input:not([type="checkbox"]):not([type="radio"]),
.catch-form-panel select,
.catch-form-panel textarea,
.catch-form-panel .date-input-wrap,
.catch-form-panel .capture-photo-raw-input {
    max-width: 100%;
}
.catch-form-panel .date-input-wrap {
    overflow: hidden;
}
.catch-form-panel input[type="datetime-local"] {
    min-width: 0 !important;
    max-width: 100% !important;
}
.catch-form-panel .capture-map .leaflet-control-attribution {
    max-width: calc(100% - 54px);
    white-space: normal;
    line-height: 1.15;
}

@media (max-width: 760px) {
    .catch-form-section {
        overflow-x: clip;
    }
    .catch-form-layout,
    .catch-form-panel,
    .catch-form-submit {
        width: 100%;
    }
    .catch-form-panel .form-grid-2,
    .catch-form-panel .coord-grid {
        width: 100%;
        grid-template-columns: minmax(0, 1fr);
    }
    .catch-form-panel .button,
    .catch-form-submit .button,
    .catch-form-submit .danger-button {
        max-width: 100%;
        white-space: normal;
        overflow-wrap: anywhere;
    }
    .catch-form-panel .map-actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        width: 100%;
    }
    .catch-form-panel .map-actions .button {
        width: 100%;
        min-width: 0;
    }
    .catch-form-panel .rich-editor-toolbar {
        width: 100%;
    }
}

@media (max-width: 520px) {
    .catch-form-section .panel.catch-form-panel,
    .catch-form-section .catch-form-submit {
        padding-left: 18px;
        padding-right: 18px;
    }
    .catch-form-panel input[type="datetime-local"] {
        font-size: 16px;
    }
}

/* V3.6.0 — détection automatique du lieu lors d'une nouvelle prise */
.place-auto-detect-status:empty { display: none; }
.place-auto-detect-status.success { color: #caffd7; }
.place-auto-detect-status.warning { color: #ffd66b; }


/* ============================================================
   V3.6.0 — Cohérence des prises, GPS auto et records
   ============================================================ */
.fish-card-records{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.45rem;
  margin-top:.8rem;
  padding-top:.75rem;
  border-top:1px solid rgba(255,255,255,.08);
}
.fish-card-records span{min-width:0;display:flex;flex-direction:column;gap:.15rem}
.fish-card-records small{font-size:.68rem;color:var(--muted,#9ea4ad);text-transform:uppercase;letter-spacing:.04em}
.fish-card-records strong{font-size:.86rem;white-space:nowrap}
.fish-catalog-record-action{display:flex;justify-content:flex-end;margin-top:.65rem}
.fish-scope-records{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1rem}
.fish-community-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1.25rem}
.fish-scope-panel{min-width:0}

.records-filter-panel{margin-bottom:1.25rem}
.records-filter-form{
  display:grid;
  grid-template-columns:1.15fr 1.15fr .7fr 1fr auto;
  gap:.8rem;
  align-items:end;
}
.records-filter-form>div{min-width:0}
.records-filter-form label{display:block;margin-bottom:.35rem}
.records-filter-form select,.records-filter-form input{width:100%;min-width:0}
.records-filter-actions{display:flex;gap:.5rem;flex-wrap:wrap}
.records-species-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.record-species-card{min-width:0}
.record-species-head{display:flex;gap:1rem;align-items:flex-start;justify-content:space-between;margin-bottom:.8rem}
.record-species-head h2{margin:.1rem 0 0}
.record-species-best{text-align:right;display:flex;flex-direction:column;gap:.15rem}
.record-species-best span{font-size:.72rem;text-transform:uppercase;color:var(--muted,#9ea4ad)}
.record-species-best strong{font-size:1.2rem;color:var(--accent,#ffd400)}
.record-ranking-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem}
.record-ranking-list li{margin:0}
.record-ranking-list li>a{
  display:grid;
  grid-template-columns:2.1rem minmax(0,1fr) auto;
  gap:.65rem;
  align-items:center;
  padding:.7rem .75rem;
  border:1px solid rgba(255,255,255,.08);
  border-radius:.65rem;
  background:rgba(255,255,255,.025);
  color:inherit;
  text-decoration:none;
}
.record-ranking-list li>a:hover{border-color:rgba(255,212,0,.45);background:rgba(255,212,0,.04)}
.record-ranking-list.compact li>a{padding:.55rem .65rem}
.record-rank{text-align:center;font-weight:800}
.record-catch-main{min-width:0;display:flex;flex-direction:column;gap:.1rem}
.record-catch-main strong{font-size:1rem}
.record-catch-main small{color:var(--muted,#9ea4ad);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.records-group-hint{margin:.8rem 0 1.1rem}

.place-records-panel{margin:1.25rem 0}
.place-record-scope-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.place-record-scope{min-width:0;padding:.8rem;border:1px solid rgba(255,255,255,.07);border-radius:.7rem;background:rgba(255,255,255,.02)}
.place-record-scope h3{margin:.15rem 0 .65rem}
.place-record-species-list{display:flex;flex-direction:column;gap:.38rem}
.place-record-species-list a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.45rem;text-decoration:none;color:inherit;padding:.45rem 0;border-bottom:1px solid rgba(255,255,255,.06)}
.place-record-species-list a:last-child{border-bottom:0}
.place-record-species-list span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.place-record-species-list strong{color:var(--accent,#ffd400)}
.place-record-species-list small{grid-column:1/-1;color:var(--muted,#9ea4ad)}
.place-card-stats .is-all{color:#d9edf9}
.place-card-stats .is-all strong{color:#fff}

.place-auto-detect-status{margin-top:.45rem}
.place-auto-detect-status.success{font-weight:700}

@media (max-width: 980px){
  .records-filter-form{grid-template-columns:repeat(2,minmax(0,1fr))}
  .records-filter-actions{grid-column:1/-1}
  .records-species-grid,.fish-community-grid{grid-template-columns:1fr}
  .place-record-scope-grid{grid-template-columns:1fr}
}
@media (max-width: 620px){
  .records-filter-form{grid-template-columns:1fr}
  .records-filter-actions{grid-column:auto}
  .fish-card-records{grid-template-columns:1fr}
  .fish-scope-records{grid-template-columns:1fr}
  .record-species-head{flex-direction:column}
  .record-species-best{text-align:left}
}

.map-legend-dot.all-capture{background:#61c7ef}.place-all-capture-marker{filter:drop-shadow(0 2px 5px rgba(0,0,0,.45))}


/* V3.7.0.4 — accès admin direct et menu administration clarifié */
.admin-direct-edit{border-color:rgba(245,180,0,.8)!important;box-shadow:inset 0 0 0 1px rgba(245,180,0,.12)}
.admin-feed-edit-link{color:var(--yellow)!important;font-weight:850}
.account-admin-separator{margin:8px 8px 4px;padding:9px 4px 5px;border-top:1px solid rgba(245,180,0,.28);color:var(--yellow);font-size:10px;font-weight:950;letter-spacing:.14em;text-transform:uppercase}
.account-admin-group{display:grid;gap:2px;margin:0 4px 5px;padding:5px;border:1px solid rgba(255,255,255,.06);border-radius:10px;background:rgba(255,255,255,.018)}
.account-admin-group-title{padding:4px 7px 2px;color:var(--muted);font-size:10px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}
.account-admin-group>a{border-radius:8px}
.mobile-nav-section-title{display:block;margin:9px 8px 2px;padding-top:9px;border-top:1px solid rgba(245,180,0,.22);color:var(--yellow);font-size:10px;font-weight:950;letter-spacing:.1em;text-transform:uppercase}
@media (max-width:760px){.admin-direct-edit{width:100%}.account-admin-group{margin-left:0;margin-right:0}}

.account-panel{width:min(340px,calc(100vw - 24px))}

.admin-create-for-user-row{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.07)}
.admin-create-for-user-row>span,.admin-create-for-member-actions>span{width:100%;color:var(--muted);font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.admin-create-for-user{width:100%}
.admin-create-for-user>summary{cursor:pointer;color:var(--yellow);font-weight:850}
.admin-create-for-user-menu{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px;padding:9px;border:1px solid rgba(245,180,0,.18);border-radius:10px;background:rgba(245,180,0,.035)}
.admin-create-for-member-actions{display:flex;flex-wrap:wrap;gap:7px;align-items:center}
@media (max-width:760px){.admin-create-for-user-row .button,.admin-create-for-user-menu .button,.admin-create-for-member-actions .button{flex:1 1 100%}}

/* =========================================================
   CARP SESSION V3.7.1 — accueil tableau de bord compact
   ========================================================= */
.dashboard-overview-heading,.dashboard-catches-heading{align-items:flex-end}
.dashboard-overview-heading p,.dashboard-catches-heading p,.dashboard-today-section .section-heading p,.dashboard-places-section .section-heading p{margin:5px 0 0;color:var(--muted);font-size:13px}
.dashboard-scope-switch,.dashboard-catch-scope-switch{display:inline-flex;flex-wrap:wrap;gap:5px;padding:5px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.dashboard-scope-switch button,.dashboard-catch-scope-switch button{min-height:38px;padding:0 14px;border:0;border-radius:10px;background:transparent;color:var(--muted);font:inherit;font-size:12px;font-weight:900;cursor:pointer}
.dashboard-scope-switch button.active,.dashboard-catch-scope-switch button.active{background:var(--yellow);color:#0a0b08}
.dashboard-overview-card{display:grid;grid-template-columns:minmax(210px,.65fr) minmax(0,2fr);gap:18px;align-items:center;padding:18px}
.dashboard-overview-copy{display:grid;gap:4px;padding:6px 12px;border-right:1px solid var(--line)}
.dashboard-overview-copy>span{color:var(--yellow);font-size:11px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}
.dashboard-overview-copy>strong{font-size:22px;line-height:1.15;color:var(--cream)}
.dashboard-overview-copy>small{color:var(--muted)}
.dashboard-overview-metrics{margin:0}
.dashboard-overview-metrics .dashboard-metric{min-height:104px}

.dashboard-nearby-card{display:grid;grid-template-columns:auto minmax(210px,1fr) minmax(360px,1.35fr) auto;gap:16px;align-items:center;padding:18px}
.dashboard-nearby-icon{display:grid;place-items:center;width:52px;height:52px;border:1px solid var(--line);border-radius:16px;background:var(--surface-2);font-size:24px}
.dashboard-nearby-card.is-nearby .dashboard-nearby-icon{border-color:rgba(246,201,0,.55);background:rgba(246,201,0,.08)}
.dashboard-nearby-main{min-width:0}.dashboard-nearby-main h3{margin:3px 0 5px;font-size:23px}.dashboard-nearby-main p{margin:0;color:var(--muted);font-size:12px;overflow-wrap:anywhere}
.dashboard-nearby-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.dashboard-nearby-facts>div{display:grid;grid-template-columns:auto 1fr;column-gap:7px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.dashboard-nearby-facts>div>span{grid-row:1/3;font-size:18px}.dashboard-nearby-facts strong{font-size:14px}.dashboard-nearby-facts small{color:var(--muted);font-size:9px}
.dashboard-nearby-link{white-space:nowrap}

.dashboard-catch-panel[hidden]{display:none!important}.dashboard-catch-hub-actions{display:flex;justify-content:flex-end;gap:18px;flex-wrap:wrap;margin-top:11px}
.dashboard-three-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(250px,.72fr);gap:14px;align-items:start}
.dashboard-community-highlights .panel{min-width:0;height:100%}
.dashboard-members-panel{padding:18px}.dashboard-member-list{display:grid;gap:8px;max-height:355px;overflow:auto;padding-right:3px}
.dashboard-member-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.dashboard-member-row img{width:38px;height:38px;border-radius:50%;object-fit:cover;border:1px solid rgba(246,201,0,.35);background:#111}
.dashboard-member-row span{min-width:0}.dashboard-member-row strong,.dashboard-member-row small{display:block}.dashboard-member-row strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-member-row small{margin-top:2px;color:var(--muted);font-size:9px}
.dashboard-place-last{display:block;margin-top:9px;padding-top:8px;border-top:1px solid var(--line);color:var(--muted);font-size:10px}

.dashboard-social-section .unified-social-feed{display:grid;gap:12px}.dashboard-social-section .social-feed-card{padding:14px}.dashboard-social-section .social-capture-summary{grid-template-columns:minmax(0,150px) minmax(0,1fr)}
.dashboard-social-section .social-capture-photo{aspect-ratio:4/3}.dashboard-social-section .social-feed-actions{padding-top:6px}
.social-feed-discussion-toggle{margin-top:2px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.018)}
.social-feed-discussion-toggle>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:42px;padding:9px 12px;list-style:none;color:var(--cream);font-size:11px;font-weight:900;cursor:pointer}
.social-feed-discussion-toggle>summary::-webkit-details-marker{display:none}.social-feed-discussion-toggle>summary span:last-child{color:var(--muted);font-weight:750}.social-feed-discussion-toggle>summary i{display:inline-block;margin-left:4px;color:var(--yellow);font-style:normal;font-size:15px;transition:transform .18s ease}
.social-feed-discussion-toggle[open]>summary i{transform:rotate(180deg)}
.social-feed-discussion-body{display:grid;gap:10px;padding:0 12px 12px;border-top:1px solid var(--line);padding-top:11px}

@media(max-width:1100px){
    .dashboard-nearby-card{grid-template-columns:auto minmax(0,1fr) auto}.dashboard-nearby-facts{grid-column:1/-1}.dashboard-three-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-members-panel{grid-column:1/-1}.dashboard-member-list{grid-template-columns:repeat(3,minmax(0,1fr));max-height:none}
}
@media(max-width:760px){
    .dashboard-overview-heading,.dashboard-catches-heading{align-items:stretch;flex-direction:column}.dashboard-scope-switch,.dashboard-catch-scope-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.dashboard-scope-switch button,.dashboard-catch-scope-switch button{padding:0 8px}
    .dashboard-overview-card{grid-template-columns:1fr}.dashboard-overview-copy{border-right:0;border-bottom:1px solid var(--line);padding:4px 2px 13px}.dashboard-overview-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-overview-metrics .dashboard-metric{min-height:92px;padding:13px}
    .dashboard-today-section .section-heading{align-items:stretch;flex-direction:column}.dashboard-nearby-refresh{width:100%}.dashboard-nearby-card{grid-template-columns:auto minmax(0,1fr);padding:14px}.dashboard-nearby-link{grid-column:1/-1;width:100%}.dashboard-nearby-facts{grid-template-columns:1fr;grid-column:1/-1}.dashboard-nearby-facts>div{grid-template-columns:auto minmax(0,1fr)}
    .dashboard-three-columns{grid-template-columns:1fr}.dashboard-members-panel{grid-column:auto}.dashboard-member-list{grid-template-columns:1fr 1fr}.dashboard-social-section .social-capture-summary{grid-template-columns:88px minmax(0,1fr)}
}
@media(max-width:520px){.dashboard-member-list{grid-template-columns:1fr}.dashboard-overview-metrics{grid-template-columns:1fr 1fr}.dashboard-overview-copy>strong{font-size:19px}.dashboard-nearby-main h3{font-size:19px}.social-feed-discussion-toggle>summary{align-items:flex-start;flex-direction:column;gap:3px}}


/* =========================================================
   CARP SESSION V3.7.1.1 — largeur formulaire admin mobile
   Uniquement lorsqu'un administrateur modifie/crée une prise
   pour un autre membre. Aucun masquage global de l'overflow.
   ========================================================= */
@media (max-width: 760px) {
    .catch-form-section.admin-other-user-form,
    .catch-form-section.admin-other-user-form > .container,
    .catch-form-section.admin-other-user-form .catch-form-layout,
    .catch-form-section.admin-other-user-form .catch-form-panel,
    .catch-form-section.admin-other-user-form .catch-form-submit,
    .catch-form-section.admin-other-user-form .admin-edit-banner,
    .catch-form-section.admin-other-user-form .admin-edit-banner > *,
    .catch-form-section.admin-other-user-form .form-grid-2,
    .catch-form-section.admin-other-user-form .form-grid-2 > *,
    .catch-form-section.admin-other-user-form .coord-grid,
    .catch-form-section.admin-other-user-form .smart-choice,
    .catch-form-section.admin-other-user-form .map-search-box,
    .catch-form-section.admin-other-user-form .map-search-row,
    .catch-form-section.admin-other-user-form .capture-map-shell,
    .catch-form-section.admin-other-user-form .capture-photo-picker,
    .catch-form-section.admin-other-user-form .rich-editor-shell,
    .catch-form-section.admin-other-user-form .geo-permission-panel,
    .catch-form-section.admin-other-user-form .map-actions {
        min-width: 0 !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    .catch-form-section.admin-other-user-form > .container,
    .catch-form-section.admin-other-user-form .catch-form-layout,
    .catch-form-section.admin-other-user-form .catch-form-panel,
    .catch-form-section.admin-other-user-form .catch-form-submit,
    .catch-form-section.admin-other-user-form .admin-edit-banner,
    .catch-form-section.admin-other-user-form .smart-choice {
        width: 100% !important;
    }

    .catch-form-section.admin-other-user-form .admin-edit-banner.compact {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        align-items: stretch;
    }
    .catch-form-section.admin-other-user-form .admin-edit-banner.compact .button {
        width: 100%;
        min-width: 0;
        white-space: normal;
    }

    .catch-form-section.admin-other-user-form .form-grid-2,
    .catch-form-section.admin-other-user-form .coord-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .catch-form-section.admin-other-user-form input:not([type="checkbox"]):not([type="radio"]),
    .catch-form-section.admin-other-user-form select,
    .catch-form-section.admin-other-user-form textarea,
    .catch-form-section.admin-other-user-form .date-input-wrap,
    .catch-form-section.admin-other-user-form .capture-photo-raw-input,
    .catch-form-section.admin-other-user-form .smart-choice > input {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    .catch-form-section.admin-other-user-form .smart-choice-toggle {
        right: 6px;
        max-width: 40px !important;
    }

    .catch-form-section.admin-other-user-form .catch-form-panel h2 {
        width: 100%;
        max-width: 100%;
        margin-right: 0;
        white-space: normal !important;
        overflow-wrap: anywhere;
        word-break: normal;
        font-size: clamp(1.85rem, 8.4vw, 2.75rem);
        line-height: 1.02;
    }

    .catch-form-section.admin-other-user-form label,
    .catch-form-section.admin-other-user-form .form-help,
    .catch-form-section.admin-other-user-form p,
    .catch-form-section.admin-other-user-form strong {
        max-width: 100%;
        overflow-wrap: anywhere;
    }

    .catch-form-section.admin-other-user-form .catch-submit-actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        width: 100%;
        min-width: 0;
    }
    .catch-form-section.admin-other-user-form .catch-submit-actions > * {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
    }
}

@media (max-width: 420px) {
    .catch-form-section.admin-other-user-form .panel.catch-form-panel,
    .catch-form-section.admin-other-user-form .catch-form-submit {
        padding-left: 15px;
        padding-right: 15px;
    }
    .catch-form-section.admin-other-user-form .catch-form-panel h2 {
        font-size: clamp(1.7rem, 8vw, 2.2rem);
    }
}


/* =========================================================
   CARP SESSION V3.7.1.2 — largeur réelle formulaire mobile
   Correction structurelle : la grille principale ne peut plus
   être élargie par le contenu intrinsèque d'un composant.
   ========================================================= */
@media (max-width: 760px) {
    .catch-form-section {
        max-width: 100vw !important;
        overflow-x: clip !important;
    }

    .catch-form-section > .container {
        width: calc(100% - 24px) !important;
        max-width: calc(100vw - 24px) !important;
        min-width: 0 !important;
        margin-inline: auto !important;
        box-sizing: border-box !important;
    }

    .catch-form-layout {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    .catch-form-layout > *,
    .catch-form-section .catch-form-panel,
    .catch-form-section .catch-form-submit,
    .catch-form-section .admin-edit-banner,
    .catch-form-section .admin-edit-reason {
        width: auto !important;
        min-width: 0 !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    .catch-form-panel .form-grid-2,
    .catch-form-panel .form-grid-3,
    .catch-form-panel .coord-grid,
    .catch-form-panel .capture-photo-picker-actions,
    .catch-form-panel .capture-photo-picker-actions-3,
    .catch-form-panel .device-compat-grid {
        grid-template-columns: minmax(0, 1fr) !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }

    .catch-form-panel .form-grid-2 > *,
    .catch-form-panel .form-grid-3 > *,
    .catch-form-panel .coord-grid > *,
    .catch-form-panel .capture-photo-picker-actions > *,
    .catch-form-panel .capture-photo-picker-actions-3 > *,
    .catch-form-panel .device-compat-grid > * {
        min-width: 0 !important;
        max-width: 100% !important;
    }

    .catch-form-panel h2 {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin-right: 0 !important;
        font-size: clamp(1.75rem, 7.4vw, 2.25rem) !important;
        line-height: 1.05 !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
        word-break: normal !important;
    }

    .catch-form-panel input:not([type="checkbox"]):not([type="radio"]),
    .catch-form-panel select,
    .catch-form-panel textarea,
    .catch-form-panel .date-input-wrap,
    .catch-form-panel .capture-photo-raw-input,
    .catch-form-panel .smart-choice,
    .catch-form-panel .smart-choice > input {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    .catch-form-panel .smart-choice {
        position: relative !important;
    }
    .catch-form-panel .smart-choice > input {
        padding-right: 54px !important;
    }
    .catch-form-panel .smart-choice-toggle {
        right: 6px !important;
        width: 40px !important;
        min-width: 40px !important;
        max-width: 40px !important;
    }

    .catch-form-panel .weather-panel-heading,
    .catch-form-section .admin-edit-banner.compact,
    .catch-form-submit,
    .catch-form-submit .catch-submit-actions {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }

    .catch-form-panel .weather-panel-heading,
    .catch-form-section .admin-edit-banner.compact {
        align-items: stretch !important;
        flex-direction: column !important;
    }

    .catch-form-panel .weather-auto-button,
    .catch-form-section .admin-edit-banner.compact .button,
    .catch-form-submit .button,
    .catch-form-submit .danger-button {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        white-space: normal !important;
    }

    .catch-form-panel .capture-map-shell,
    .catch-form-panel .capture-map,
    .catch-form-panel .map-search-box,
    .catch-form-panel .map-search-row,
    .catch-form-panel .geo-permission-panel,
    .catch-form-panel .rich-editor-shell,
    .catch-form-panel .rich-editor-toolbar,
    .catch-form-panel .capture-photo-picker,
    .catch-form-panel .capture-photo-picker-preview {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    .catch-form-panel .capture-map-shell {
        overflow: hidden !important;
    }

    .catch-form-panel .rich-editor-toolbar {
        display: flex !important;
        flex-wrap: wrap !important;
    }

    .catch-form-panel label,
    .catch-form-panel p,
    .catch-form-panel .form-help,
    .catch-form-section .admin-edit-reason label,
    .catch-form-section .admin-edit-reason p {
        min-width: 0 !important;
        max-width: 100% !important;
        overflow-wrap: anywhere !important;
    }
}

@media (max-width: 420px) {
    .catch-form-section > .container {
        width: calc(100% - 16px) !important;
        max-width: calc(100vw - 16px) !important;
    }
    .catch-form-section .panel.catch-form-panel,
    .catch-form-section .catch-form-submit,
    .catch-form-section .admin-edit-reason {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }
    .catch-form-panel h2 {
        font-size: clamp(1.65rem, 7vw, 2rem) !important;
    }
}

/* ==========================================================
   V3.8.0 — Académie Pêche / Quiz / Montages & Nœuds
   ========================================================== */
.academy-page{padding-top:24px;padding-bottom:48px;min-width:0}.academy-page *{box-sizing:border-box;min-width:0}.academy-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,300px);gap:24px;align-items:center;padding:28px;overflow:hidden}.academy-hero h1{font-size:clamp(2rem,4vw,4.2rem);line-height:.95;margin:6px 0 12px;max-width:850px}.academy-hero p{max-width:760px;font-size:1.02rem;color:var(--muted,#a8a8a8)}.academy-hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.academy-hero-actions form{margin:0}.academy-level-card{border:1px solid rgba(255,205,40,.28);background:linear-gradient(145deg,rgba(255,205,40,.12),rgba(255,255,255,.025));border-radius:18px;padding:22px;display:flex;flex-direction:column;gap:6px}.academy-level-number{font-size:2.1rem;font-weight:900;color:#ffd027}.academy-level-card strong{font-size:1.15rem}.academy-level-card span,.academy-level-card small{color:var(--muted,#aaa)}.academy-xp-track,.academy-quiz-progress{height:8px;background:rgba(255,255,255,.09);border-radius:99px;overflow:hidden}.academy-xp-track i,.academy-quiz-progress i{display:block;height:100%;background:linear-gradient(90deg,#f0b900,#ffe86d);border-radius:inherit}
.academy-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:18px 0}.academy-kpi{padding:18px;display:flex;flex-direction:column;gap:3px}.academy-kpi b{font-size:1.7rem;color:#ffd027}.academy-kpi span{color:var(--muted,#aaa);font-size:.85rem}.academy-section-title{margin-top:30px}.academy-mode-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.academy-mode-card{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:20px;min-height:220px}.academy-mode-card h3{font-size:1.2rem;margin:8px 0}.academy-mode-card p{color:var(--muted,#aaa);flex:1}.academy-mode-card .button{width:100%;margin-top:12px}.academy-mode-icon{font-size:2rem}.academy-two-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px}.academy-category-list{display:grid;gap:7px}.academy-category-row{margin:0}.academy-category-row button{width:100%;display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.025);color:inherit;border-radius:12px;padding:12px;text-align:left;cursor:pointer}.academy-category-row button:hover{border-color:rgba(255,205,40,.35);background:rgba(255,205,40,.06)}.academy-category-row button>span:first-child{font-size:1.35rem;text-align:center}.academy-category-row strong,.academy-category-row small{display:block}.academy-category-row small{color:var(--muted,#999);margin-top:2px}.academy-category-row b{color:#ffd027}.academy-learning-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.academy-learning-cards a{display:flex;flex-direction:column;gap:5px;padding:18px;border:1px solid rgba(255,205,40,.2);border-radius:14px;background:rgba(255,205,40,.04);text-decoration:none;color:inherit}.academy-learning-cards a>span{font-size:2rem}.academy-learning-cards a strong{font-size:1.1rem}.academy-learning-cards a small{color:var(--muted,#aaa)}.academy-learning-cards a em{font-style:normal;color:#ffd027;font-size:.8rem;margin-top:8px}.academy-duel-form{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:10px;align-items:end}.academy-duel-form .button{grid-column:1/-1}.academy-duel-form label,.academy-library-filters label,.academy-admin-question-form label{display:flex;flex-direction:column;gap:6px}.academy-challenge-list{display:grid;gap:8px;margin-top:16px}.academy-challenge-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border-bottom:1px solid rgba(255,255,255,.07)}.academy-challenge-row>span{font-size:1.35rem}.academy-challenge-row strong,.academy-challenge-row small{display:block}.academy-challenge-row small{color:var(--muted,#999)}.academy-leaderboard{display:grid;gap:6px}.academy-rank-row{display:grid;grid-template-columns:36px 38px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.06)}.academy-rank-row>img{width:36px;height:36px;border-radius:50%;object-fit:cover}.academy-rank-row span strong,.academy-rank-row span small{display:block}.academy-rank-row small{color:var(--muted,#999)}.academy-rank-row em{font-style:normal;color:#ffd027;font-weight:800}.segmented-mini{display:flex;gap:4px}.segmented-mini a{font-size:.75rem;padding:5px 7px;border:1px solid rgba(255,255,255,.1);border-radius:8px;text-decoration:none;color:inherit}.academy-badges-panel{margin-top:18px}.academy-badge-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.academy-badge{border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:4px}.academy-badge>span{font-size:1.65rem}.academy-badge strong{font-size:.9rem}.academy-badge small{color:var(--muted,#999);font-size:.75rem}.academy-badge.locked{opacity:.38;filter:grayscale(1)}.academy-badge.earned{border-color:rgba(255,205,40,.34);background:rgba(255,205,40,.05)}.academy-admin-link{text-align:right;margin-top:18px}.academy-duel-result{margin-top:18px}.academy-duel-score{display:grid;grid-template-columns:1fr auto 1fr;gap:20px;align-items:center;text-align:center}.academy-duel-score strong{display:block;font-size:2.2rem;color:#ffd027}.academy-duel-score span{display:block;color:var(--muted,#aaa)}

/* Quiz */
.academy-quiz-page{max-width:980px;padding-top:24px;padding-bottom:48px}.academy-quiz-top{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px;color:var(--muted,#aaa);font-size:.85rem}.academy-quiz-top a{color:#ffd027;text-decoration:none}.academy-quiz-progress{margin-bottom:18px}.academy-question-card{padding:28px}.academy-question-meta{display:flex;justify-content:space-between;gap:10px;color:#ffd027;font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.academy-question-card h1{font-size:clamp(1.45rem,3vw,2.4rem);line-height:1.16;margin:18px 0 24px}.academy-answers-form{display:grid;gap:10px}.academy-answer-choice{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:12px;border:1px solid rgba(255,255,255,.11);border-radius:14px;padding:13px 15px;cursor:pointer;background:rgba(255,255,255,.025)}.academy-answer-choice:hover,.academy-answer-choice:has(input:checked){border-color:#ffd027;background:rgba(255,205,40,.07)}.academy-answer-choice input{position:absolute;opacity:0;pointer-events:none}.academy-answer-letter{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:rgba(255,255,255,.08);font-weight:900;color:#ffd027}.academy-answer-submit{margin-top:10px;min-height:48px}.academy-feedback{margin-bottom:12px;border-width:1px;padding:18px}.academy-feedback strong{font-size:1.1rem}.academy-feedback p{margin:8px 0}.academy-feedback a{font-size:.82rem}.academy-result-card{text-align:center;padding:36px}.academy-result-icon{font-size:4rem;display:block}.academy-result-card h1{font-size:4rem;margin:8px 0;color:#ffd027}.academy-result-card p{color:var(--muted,#aaa)}.academy-result-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:20px}.academy-answer-review{margin-top:16px}.academy-answer-review details{border-top:1px solid rgba(255,255,255,.08);padding:12px 0}.academy-answer-review summary{display:flex;gap:10px;cursor:pointer}.academy-answer-review details p{padding-left:28px;color:var(--muted,#bbb)}

/* Library */
.academy-library-filters{display:grid;grid-template-columns:minmax(220px,2fr) minmax(150px,1fr) minmax(150px,1fr) auto;gap:10px;align-items:end;margin:18px 0}.academy-library-summary{color:var(--muted,#aaa);margin-bottom:10px}.academy-library-summary strong{color:#ffd027}.academy-lesson-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.academy-lesson-card{text-decoration:none;color:inherit;padding:20px;display:flex;flex-direction:column;min-height:240px;transition:transform .15s ease,border-color .15s ease}.academy-lesson-card:hover{transform:translateY(-2px);border-color:rgba(255,205,40,.35)}.academy-lesson-card.learned{box-shadow:inset 0 0 0 1px rgba(70,200,120,.18)}.academy-lesson-card-top{display:flex;justify-content:space-between;align-items:center}.academy-lesson-card-top>span:first-child{font-size:2rem}.academy-lesson-card h2{font-size:1.25rem;margin:12px 0 8px}.academy-lesson-card p{color:var(--muted,#aaa);flex:1}.academy-lesson-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.academy-lesson-tags span,.difficulty-pill{font-size:.72rem;border:1px solid rgba(255,255,255,.1);padding:4px 7px;border-radius:99px;color:var(--muted,#bbb)}.difficulty-1{border-color:rgba(80,210,120,.35);color:#8ae3a4}.difficulty-2{border-color:rgba(70,160,255,.35);color:#80bbff}.difficulty-3{border-color:rgba(255,190,60,.38);color:#ffd36e}.difficulty-4{border-color:rgba(255,90,90,.4);color:#ff9696}

/* Lesson */
.academy-lesson-layout{display:grid;grid-template-columns:minmax(240px,320px) minmax(0,1fr);gap:18px;align-items:start}.academy-lesson-sidebar{position:sticky;top:90px;padding:22px}.academy-lesson-icon{font-size:3rem;margin-bottom:10px}.academy-lesson-sidebar dl{margin:18px 0 0}.academy-lesson-sidebar dt{font-size:.72rem;text-transform:uppercase;color:#ffd027;font-weight:800;margin-top:12px}.academy-lesson-sidebar dd{margin:3px 0;color:var(--muted,#bbb);line-height:1.45}.academy-lesson-main{display:grid;gap:14px}.academy-material-list{display:flex;flex-wrap:wrap;gap:8px}.academy-material-list span{border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.03);padding:8px 10px;border-radius:10px}.academy-step-form{padding:22px}.academy-steps{display:grid;gap:8px}.academy-step{display:grid;grid-template-columns:24px 36px minmax(0,1fr);gap:10px;align-items:center;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:11px 12px}.academy-step.done{border-color:rgba(80,210,120,.28);background:rgba(80,210,120,.04)}.academy-step input{width:20px;height:20px;accent-color:#ffd027}.academy-step-number{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:rgba(255,205,40,.1);color:#ffd027;font-weight:900}.academy-progress-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:18px}.academy-favorite-check,.academy-learned-check{display:flex;gap:7px;align-items:center}.academy-progress-actions .button{margin-left:auto}.academy-tip-list,.academy-error-list{margin:0;padding-left:20px}.academy-tip-list li,.academy-error-list li{margin:8px 0;line-height:1.45}.academy-tip-list li::marker{color:#5fd18a}.academy-error-list li::marker{color:#ff7777}.academy-source-note{font-size:.82rem;color:var(--muted,#999)}.academy-lesson-quiz-cta{text-align:right}

/* Admin Academy */
.admin-academy-page .academy-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.academy-admin-layout{display:grid;grid-template-columns:minmax(320px,.85fr) minmax(0,1.4fr);gap:16px;align-items:start}.academy-admin-question-form{display:grid;grid-template-columns:1fr 1fr;gap:10px}.academy-admin-question-form .full{grid-column:1/-1}.academy-admin-question-form textarea{min-height:90px}.academy-admin-question-form .button{grid-column:1/-1}.academy-admin-filter{display:grid;grid-template-columns:minmax(160px,1fr) 1fr 1fr auto;gap:8px;margin-bottom:14px}.academy-admin-question-list{display:grid;gap:8px;max-height:900px;overflow:auto;padding-right:4px}.academy-admin-question-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid rgba(255,255,255,.07);border-radius:10px;padding:10px}.academy-admin-question-row small,.academy-admin-question-row strong{display:block}.academy-admin-question-row small{color:var(--muted,#999);margin-bottom:3px}.academy-admin-question-row>div:last-child{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.academy-admin-question-row form{margin:0}

@media(max-width:1100px){.academy-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.academy-badge-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.academy-mode-grid,.academy-lesson-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.academy-admin-layout{grid-template-columns:1fr}.academy-admin-question-list{max-height:none}}
@media(max-width:760px){.academy-page{padding-top:14px;overflow-x:clip}.academy-hero{grid-template-columns:minmax(0,1fr);padding:18px}.academy-hero h1{font-size:2.35rem}.academy-hero-actions,.academy-hero-actions form,.academy-hero-actions .button{width:100%}.academy-kpi-grid,.admin-academy-page .academy-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.academy-kpi{padding:14px}.academy-kpi b{font-size:1.4rem}.academy-mode-grid,.academy-two-columns,.academy-lesson-grid,.academy-learning-cards{grid-template-columns:minmax(0,1fr)}.academy-mode-card{min-height:0}.academy-duel-form{grid-template-columns:minmax(0,1fr)}.academy-duel-form .button{grid-column:auto}.academy-rank-row{grid-template-columns:30px 34px minmax(0,1fr);}.academy-rank-row em{grid-column:3}.academy-badge-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.academy-quiz-top{align-items:flex-start;flex-wrap:wrap}.academy-question-card{padding:18px}.academy-question-card h1{font-size:1.45rem}.academy-answer-choice{grid-template-columns:36px minmax(0,1fr);padding:11px}.academy-result-card{padding:24px 16px}.academy-result-card h1{font-size:3rem}.academy-library-filters{grid-template-columns:minmax(0,1fr)}.academy-lesson-layout{grid-template-columns:minmax(0,1fr)}.academy-lesson-sidebar{position:static}.academy-step{grid-template-columns:22px 32px minmax(0,1fr);padding:9px}.academy-progress-actions{align-items:flex-start;flex-direction:column}.academy-progress-actions .button{margin-left:0;width:100%}.academy-admin-question-form,.academy-admin-filter{grid-template-columns:minmax(0,1fr)}.academy-admin-question-form .full,.academy-admin-question-form .button{grid-column:auto}.academy-admin-question-row{grid-template-columns:minmax(0,1fr)}.academy-admin-question-row>div:last-child{justify-content:flex-start}.academy-duel-score{grid-template-columns:1fr}.academy-duel-score>b{font-size:.8rem}.academy-lesson-quiz-cta .button{width:100%}}
@media(max-width:420px){.academy-kpi-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.academy-badge-grid{grid-template-columns:minmax(0,1fr)}.academy-hero h1{font-size:2rem}.academy-question-meta{flex-direction:column;gap:4px}.academy-answer-letter{width:28px;height:28px}.academy-challenge-row{grid-template-columns:30px minmax(0,1fr)}.academy-challenge-row form,.academy-challenge-row>a{grid-column:2}}


/* ================================================================
   V3.8.1 — Académie : reconnaissance photo + formations guidées
   ================================================================ */
.academy-question-media{margin:18px 0 8px;border:1px solid rgba(255,255,255,.1);border-radius:16px;overflow:hidden;background:rgba(0,0,0,.16);display:flex;justify-content:center;align-items:center;min-height:220px;max-height:480px}
.academy-question-media img{display:block;width:100%;height:auto;max-height:480px;object-fit:contain;background:#111}
.academy-course-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}
.academy-course-kpis>.panel{padding:18px;display:flex;flex-direction:column;gap:4px}.academy-course-kpis b{font-size:1.75rem;color:#ffd027}.academy-course-kpis span{color:var(--muted,#aaa);font-size:.86rem}
.academy-course-filters{display:grid;grid-template-columns:minmax(220px,2fr) minmax(150px,1fr) minmax(180px,1.2fr) auto;gap:10px;align-items:end;margin:18px 0}
.academy-course-filters label{display:flex;flex-direction:column;gap:6px}
.academy-course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.academy-course-card{text-decoration:none;color:inherit;padding:20px;display:flex;flex-direction:column;min-height:310px;transition:transform .15s ease,border-color .15s ease}.academy-course-card:hover{transform:translateY(-2px);border-color:rgba(255,205,40,.35)}.academy-course-card.completed{box-shadow:inset 0 0 0 1px rgba(70,200,120,.22)}
.academy-course-card-top{display:flex;justify-content:space-between;align-items:center}.academy-course-card-top>span:first-child{font-size:2.2rem}.academy-course-card>small{margin-top:12px;color:#ffd027;font-weight:800}.academy-course-card h2{font-size:1.25rem;margin:6px 0 8px}.academy-course-card p{color:var(--muted,#aaa);flex:1;line-height:1.5}
.academy-course-card-progress,.academy-course-progress-line{height:8px;border-radius:99px;background:rgba(255,255,255,.08);overflow:hidden}.academy-course-card-progress i,.academy-course-progress-line i{display:block;height:100%;background:#ffd027;border-radius:inherit}.academy-course-card-meta{display:flex;justify-content:space-between;gap:10px;margin-top:8px;font-size:.78rem;color:var(--muted,#aaa)}.academy-course-card-meta b{color:#ffd027}
.academy-course-overview{padding:20px;margin:16px 0}.academy-course-overview>div:first-child{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.academy-course-overview>div:first-child>span:not(.difficulty-pill){font-size:.78rem;border:1px solid rgba(255,255,255,.1);padding:4px 8px;border-radius:99px;color:var(--muted,#bbb)}.academy-course-progress-line{margin:15px 0 8px}.academy-course-overview>strong{font-size:.9rem}.academy-course-overview .access-alert{margin-top:16px}
.academy-course-lessons{display:grid;gap:12px}.academy-course-lesson{padding:0;overflow:hidden}.academy-course-lesson.completed{border-color:rgba(70,200,120,.25)}.academy-course-lesson>summary{list-style:none;display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;padding:18px;cursor:pointer}.academy-course-lesson>summary::-webkit-details-marker{display:none}.academy-course-lesson-number{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:rgba(255,205,40,.1);color:#ffd027;font-weight:900}.academy-course-lesson summary small,.academy-course-lesson summary strong,.academy-course-lesson summary em{display:block}.academy-course-lesson summary small{font-size:.72rem;color:#ffd027;font-weight:800}.academy-course-lesson summary strong{margin-top:2px;font-size:1.08rem}.academy-course-lesson summary em{font-style:normal;color:var(--muted,#999);font-size:.85rem;margin-top:4px;line-height:1.4}.academy-course-lesson-body{border-top:1px solid rgba(255,255,255,.07);padding:18px 18px 20px 72px}.academy-course-lesson-body h3{margin-top:0}.academy-course-lesson-body li{margin:8px 0;line-height:1.5}.academy-course-exercise{margin:16px 0;padding:14px;border-radius:12px;background:rgba(255,205,40,.06);border:1px solid rgba(255,205,40,.16)}.academy-course-exercise span{font-size:.78rem;color:#ffd027;font-weight:900}.academy-course-exercise p{margin:6px 0 0}.academy-course-lesson-body form{text-align:right}
.academy-course-quiz-cta{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:18px}.academy-course-quiz-cta h2{margin:4px 0}.academy-course-quiz-cta p{margin:0;color:var(--muted,#aaa)}.academy-course-quiz-cta form{flex:0 0 auto}
@media(max-width:1100px){.academy-learning-cards,.academy-course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.academy-question-media{min-height:180px;max-height:360px}.academy-question-media img{max-height:360px}.academy-course-kpis{grid-template-columns:minmax(0,1fr)}.academy-course-filters,.academy-course-grid{grid-template-columns:minmax(0,1fr)}.academy-course-lesson>summary{grid-template-columns:36px minmax(0,1fr) auto;padding:14px}.academy-course-lesson-number{width:34px;height:34px}.academy-course-lesson-body{padding:15px}.academy-course-lesson-body form .button{width:100%}.academy-course-quiz-cta{align-items:stretch;flex-direction:column}.academy-course-quiz-cta form,.academy-course-quiz-cta .button{width:100%}}
/* V3.8.2 — Dictionnaire & lexique interactif */
.academy-glossary-term{appearance:none;border:0;border-bottom:1px dotted currentColor;background:color-mix(in srgb,var(--accent,#5ab9ff) 10%,transparent);color:inherit;font:inherit;padding:0 .12em;border-radius:.18em;cursor:help;text-decoration:none}.academy-glossary-term:hover,.academy-glossary-term:focus-visible{background:color-mix(in srgb,var(--accent,#5ab9ff) 22%,transparent);outline:2px solid color-mix(in srgb,var(--accent,#5ab9ff) 45%,transparent);outline-offset:2px}.academy-header-actions{display:flex;gap:.55rem;flex-wrap:wrap}.academy-glossary-home-card{display:grid;grid-template-columns:auto 1fr auto;gap:.15rem .75rem;align-items:center;margin-top:.85rem;padding:.9rem 1rem;border:1px solid var(--border-color,#d8dee6);border-radius:14px;text-decoration:none;color:inherit}.academy-glossary-home-card>span{font-size:1.7rem;grid-row:1/3}.academy-glossary-home-card strong{align-self:end}.academy-glossary-home-card small{grid-column:2;color:var(--muted,#6b7280)}.academy-glossary-home-card b{grid-column:3;grid-row:1/3}.academy-glossary-filters{display:grid;grid-template-columns:minmax(220px,1fr) minmax(210px,.7fr) auto auto;gap:.75rem;align-items:end}.academy-glossary-filters label{display:grid;gap:.35rem;font-weight:700}.academy-glossary-alphabet{display:flex;flex-wrap:wrap;gap:.35rem;margin:1rem 0}.academy-glossary-alphabet a{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 .4rem;border:1px solid var(--border-color,#d8dee6);border-radius:9px;text-decoration:none;color:inherit;background:var(--panel-bg,#fff)}.academy-glossary-alphabet a.active{font-weight:800;border-color:var(--accent,#5ab9ff);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent,#5ab9ff) 18%,transparent)}.academy-glossary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.academy-glossary-card{display:block;text-decoration:none;color:inherit}.academy-glossary-card small{color:var(--muted,#6b7280);font-weight:700}.academy-glossary-card h2{font-size:1.15rem;margin:.35rem 0}.academy-glossary-card p{margin:0;color:inherit}.academy-glossary-card span{display:block;margin-top:.65rem;color:var(--muted,#6b7280);font-size:.86rem}.academy-glossary-focus{margin-bottom:1rem;border-left:4px solid var(--accent,#5ab9ff)}.academy-glossary-focus-top{display:flex;justify-content:space-between;gap:1rem;color:var(--muted,#6b7280);font-weight:700}.academy-glossary-focus h2{font-size:clamp(1.5rem,3vw,2.25rem);margin:.5rem 0}.academy-glossary-lead{font-size:1.08rem;font-weight:700}.academy-glossary-aliases{margin-top:.8rem}.academy-glossary-tip{margin-top:1rem;padding:.8rem 1rem;border-radius:12px;background:color-mix(in srgb,var(--accent,#5ab9ff) 9%,transparent)}.academy-glossary-popover{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:1rem;opacity:0;transition:opacity .16s ease}.academy-glossary-popover.open{opacity:1}.academy-glossary-popover[hidden]{display:none}.academy-glossary-popover-backdrop{position:absolute;inset:0;background:rgba(8,15,24,.55);backdrop-filter:blur(2px)}.academy-glossary-popover section{position:relative;z-index:1;width:min(520px,100%);max-height:min(76vh,620px);overflow:auto;background:var(--panel-bg,#fff);color:var(--text-color,#111827);border:1px solid var(--border-color,#d8dee6);border-radius:18px;padding:1.25rem;box-shadow:0 22px 80px rgba(0,0,0,.25);transform:translateY(10px);transition:transform .16s ease}.academy-glossary-popover.open section{transform:none}.academy-glossary-popover-close{position:absolute;right:.75rem;top:.6rem;width:36px;height:36px;border:0;border-radius:50%;background:var(--soft-bg,#eef2f6);color:inherit;font-size:1.45rem;cursor:pointer}.academy-glossary-popover h2{margin:.35rem 2.5rem .5rem 0}.academy-glossary-popover p{line-height:1.6}.glossary-popover-open{overflow:hidden}@media(max-width:900px){.academy-glossary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.academy-glossary-filters{grid-template-columns:1fr 1fr}}@media(max-width:640px){.academy-glossary-grid{grid-template-columns:1fr}.academy-glossary-filters{grid-template-columns:1fr}.academy-glossary-alphabet{gap:.28rem}.academy-glossary-alphabet a{min-width:31px;height:31px}.academy-glossary-popover{align-items:end;padding:0}.academy-glossary-popover section{width:100%;border-radius:20px 20px 0 0;max-height:72vh}.academy-glossary-term{cursor:pointer}}

/* V3.8.2.2 — Fiabilisation des défis / duels Académie */
.academy-duel-help{margin:-4px 0 14px;line-height:1.5}.academy-challenge-actions{display:flex;gap:7px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.academy-challenge-actions form{margin:0}.academy-challenge-row.is-expired{opacity:.62}.academy-challenge-row small b{color:#ffd027;font-weight:800}.academy-duel-result-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.academy-duel-result-head h2{margin-bottom:4px}.academy-duel-status{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border:1px solid rgba(255,205,40,.28);background:rgba(255,205,40,.07);color:#ffd027;border-radius:999px;padding:7px 10px;font-size:.78rem;font-weight:850}.academy-duel-status.status-complete{border-color:rgba(77,207,121,.35);background:rgba(77,207,121,.09);color:#8ee9aa}.academy-duel-status.status-expired{border-color:rgba(255,255,255,.12);background:rgba(255,255,255,.04);color:var(--muted,#aaa)}.academy-duel-score>div{border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:16px 12px;background:rgba(255,255,255,.02)}.academy-duel-score>div.winner{border-color:rgba(255,205,40,.46);background:rgba(255,205,40,.08);box-shadow:0 0 0 1px rgba(255,205,40,.06) inset}.academy-duel-score small{display:block;color:var(--muted,#999);margin-top:4px}.academy-duel-verdict{margin-top:16px;padding:13px 15px;border:1px solid rgba(255,205,40,.2);border-radius:12px;background:rgba(255,205,40,.05);font-weight:800;text-align:center}.academy-duel-primary-action{margin:16px 0 0;text-align:center}.academy-quiz-duel-summary{display:flex;flex-direction:column;gap:5px;margin:14px auto 18px;max-width:620px;padding:13px 15px;border:1px solid rgba(255,205,40,.22);border-radius:12px;background:rgba(255,205,40,.055)}.academy-quiz-duel-summary strong{color:#ffd027}.academy-quiz-duel-summary span{color:var(--muted,#aaa);font-size:.9rem;line-height:1.45}
@media(max-width:760px){.academy-duel-result-head{flex-direction:column}.academy-duel-status{align-self:flex-start}.academy-challenge-actions{grid-column:2;justify-content:flex-start}.academy-challenge-actions .button{width:auto}.academy-challenge-row{align-items:start}}
@media(max-width:420px){.academy-challenge-actions{grid-column:2}.academy-challenge-actions .button{width:100%}.academy-challenge-actions a,.academy-challenge-actions form{flex:1 1 120px}.academy-challenge-actions form button{width:100%}}


/* V3.10.1 — Quiz par catégorie : réussite + achèvement */
.academy-category-row button > span:nth-child(2){min-width:0}
.academy-category-metrics{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}
.academy-category-metrics em{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:999px;font-style:normal;font-size:11px;font-weight:850;line-height:1}
.academy-category-metrics .is-success{color:#c9f7d5;background:rgba(62,191,105,.12);border:1px solid rgba(62,191,105,.2)}
.academy-category-metrics .is-completion{color:#ffe18a;background:rgba(245,180,0,.1);border:1px solid rgba(245,180,0,.2)}
@media(max-width:650px){.academy-category-row button{grid-template-columns:32px minmax(0,1fr) auto}.academy-category-metrics{gap:5px}.academy-category-metrics em{font-size:10px;padding-inline:7px}}


/* V3.11.1 — Badges Académie recalibrés pour l'Académie XXL */
.academy-badge-heading{align-items:center}
.academy-badge-heading p{margin:5px 0 0;color:var(--muted,#999);font-size:.9rem}
.academy-badge-overall{min-width:104px;padding:10px 13px;border:1px solid rgba(255,205,40,.25);border-radius:12px;background:rgba(255,205,40,.05);text-align:center}
.academy-badge-overall strong{display:block;color:#ffd027;font-size:1.45rem;line-height:1}
.academy-badge-overall span{display:block;margin-top:4px;color:var(--muted,#999);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;font-weight:800}
.academy-badge-group{margin-top:24px}
.academy-badge-group-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.07)}
.academy-badge-group-title h3{margin:0;font-size:1rem}
.academy-badge-group-title span{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:28px;padding:0 9px;border-radius:999px;background:rgba(255,255,255,.055);color:var(--muted,#aaa);font-size:.78rem;font-weight:900}
.academy-badge-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.academy-badge{min-height:170px;padding:16px;gap:7px;position:relative;overflow:hidden}
.academy-badge-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.academy-badge-icon{font-size:1.8rem;line-height:1}
.academy-badge-state{font-size:.66rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em;color:var(--muted,#999)}
.academy-badge.earned .academy-badge-state{color:#ffd027}
.academy-badge strong{font-size:.96rem;line-height:1.25}
.academy-badge small{line-height:1.45}
.academy-badge.locked{opacity:.72;filter:none;background:rgba(255,255,255,.015)}
.academy-badge.locked .academy-badge-icon{filter:grayscale(1);opacity:.55}
.academy-badge.earned{border-color:rgba(255,205,40,.42);background:linear-gradient(145deg,rgba(255,205,40,.08),rgba(255,205,40,.025))}
.academy-badge.earned::after{content:"";position:absolute;inset:auto -34px -34px auto;width:90px;height:90px;border-radius:50%;background:rgba(255,205,40,.055);pointer-events:none}
.academy-badge-progress{height:7px;margin-top:auto;overflow:hidden;border-radius:999px;background:rgba(255,255,255,.08)}
.academy-badge-progress>span{display:block;height:100%;border-radius:inherit;background:#ffd027}
.academy-badge-progress-label{color:#d7d7d7!important;font-size:.7rem!important;font-weight:800}
.academy-badge-earned-label{margin-top:auto;color:#ffd027!important;font-size:.7rem!important;font-weight:900}
@media(max-width:1100px){.academy-badge-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.academy-badge-heading{align-items:flex-start}.academy-badge-overall{min-width:88px}.academy-badge-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.academy-badge{min-height:160px}}
@media(max-width:470px){.academy-badge-grid{grid-template-columns:minmax(0,1fr)}.academy-badge{min-height:0}.academy-badge-overall{min-width:82px;padding:9px}.academy-badge-heading .section-heading{align-items:flex-start}}


/* V3.11.2 — Identité Académie, rangs et badges sociaux */
.ranked-avatar-shell{position:relative;display:inline-grid;place-items:center;flex:0 0 auto;line-height:1;text-decoration:none;color:inherit;overflow:visible}
.ranked-avatar-shell>img{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover}
.avatar-rank-level{position:absolute;right:-5px;bottom:-5px;z-index:3;display:flex;align-items:center;justify-content:center;min-width:24px;height:18px;padding:0 5px;border:2px solid #080a07;border-radius:999px;background:#ffc400;color:#090a08;font-size:8px;font-weight:1000;letter-spacing:-.02em;box-shadow:0 3px 10px rgba(0,0,0,.35)}
.member-rank-chip{display:inline-flex;align-items:center;min-height:28px;padding:4px 10px;border:1px solid rgba(255,196,0,.35);border-radius:999px;background:rgba(255,196,0,.09);color:#ffd027;font-size:.75rem;font-weight:900;white-space:nowrap}
.account-avatar{overflow:visible!important}.account-avatar .ranked-avatar-shell{width:100%;height:100%}.account-name{display:flex;flex-direction:column;align-items:flex-start;line-height:1.05}.account-name b{font:inherit}.account-name small{margin-top:3px;color:var(--muted,#999);font-size:8px;font-weight:800;white-space:nowrap}
.social-feed-avatar.ranked-avatar-shell,.social-feed-card-head>.ranked-avatar-shell{width:44px;height:44px}.social-feed-card-head>.ranked-avatar-shell>img{border:2px solid rgba(246,201,0,.42);background:#111}
.social-feed-author strong a,.social-feed-comment-line strong a,.academy-rank-row strong a,.dashboard-member-row strong a{color:inherit;text-decoration:none}.social-feed-author strong a:hover,.social-feed-comment-line strong a:hover,.academy-rank-row strong a:hover,.dashboard-member-row strong a:hover{color:#ffd027}
.social-feed-comment>.ranked-avatar-shell{width:34px;height:34px;align-self:flex-start}.social-feed-comment>.ranked-avatar-shell>img{border:1px solid rgba(246,201,0,.25)}
.notification-row>.ranked-avatar-shell{width:42px;height:42px}.notification-row>.ranked-avatar-shell .notification-avatar{width:42px;height:42px}
.academy-rank-row>.ranked-avatar-shell{width:36px;height:36px}.academy-rank-row>.ranked-avatar-shell>img{width:36px;height:36px;border-radius:50%;object-fit:cover}
.dashboard-member-row>.ranked-avatar-shell{width:38px;height:38px}.dashboard-member-row>.ranked-avatar-shell>img{width:38px;height:38px;border:1px solid rgba(246,201,0,.35);background:#111}
.academy-feed-achievement{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;margin-top:12px;padding:18px;border:1px solid rgba(255,196,0,.26);border-radius:16px;background:linear-gradient(135deg,rgba(255,196,0,.11),rgba(255,255,255,.018));color:inherit;text-decoration:none}.academy-feed-achievement:hover{border-color:rgba(255,196,0,.55);transform:translateY(-1px)}.academy-feed-trophy{display:grid;place-items:center;width:52px;height:52px;border-radius:14px;background:rgba(255,196,0,.13);font-size:1.7rem}.academy-feed-achievement strong,.academy-feed-achievement small{display:block}.academy-feed-achievement strong{margin:3px 0 4px;font-size:1.05rem}.academy-feed-achievement small{color:var(--muted,#aaa);line-height:1.5}.academy-feed-open{color:#ffd027;font-size:.78rem;font-weight:900;white-space:nowrap}.social-feed-kind.academy{color:#ffd027;border-color:rgba(255,196,0,.28);background:rgba(255,196,0,.08)}
.member-profile-hero-inner{display:flex;align-items:center;gap:22px}.member-profile-avatar-wrap>.ranked-avatar-shell{width:112px;height:112px}.member-profile-avatar{width:112px!important;height:112px!important;border:3px solid rgba(255,196,0,.55);box-shadow:0 10px 36px rgba(0,0,0,.35)}.member-profile-avatar-wrap .avatar-rank-level{right:1px;bottom:2px;min-width:35px;height:24px;font-size:10px}.member-profile-hero h1{margin-bottom:3px}.member-profile-hero p{margin:0;color:var(--muted,#aaa)}.member-profile-rank-line{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px}.member-profile-rank-line>span:not(.member-rank-chip){color:var(--muted,#aaa);font-size:.78rem;font-weight:800}.member-profile-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:18px}.member-profile-kpis>.panel{padding:16px}.member-profile-kpis span,.member-profile-kpis strong,.member-profile-kpis small{display:block}.member-profile-kpis span{color:var(--muted,#999);font-size:.72rem;text-transform:uppercase;font-weight:900}.member-profile-kpis strong{margin:4px 0;color:#ffd027;font-size:1.45rem}.member-profile-kpis small{color:var(--muted,#aaa);font-size:.72rem}.member-profile-badges{margin-top:18px}.member-earned-badges .academy-badge{min-height:145px}
.avatar-current>.ranked-avatar-shell{width:64px;height:64px}.avatar-current>.ranked-avatar-shell>img{width:64px;height:64px}
@media(max-width:1000px){.member-profile-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.account-name small{display:none}.academy-feed-achievement{grid-template-columns:auto minmax(0,1fr)}.academy-feed-open{grid-column:2}.member-profile-hero-inner{align-items:flex-start}.member-profile-avatar-wrap>.ranked-avatar-shell,.member-profile-avatar{width:84px!important;height:84px!important}.member-profile-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:440px){.member-profile-hero-inner{gap:14px}.member-profile-avatar-wrap>.ranked-avatar-shell,.member-profile-avatar{width:70px!important;height:70px!important}.member-profile-kpis{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.academy-feed-achievement{padding:14px}.academy-feed-trophy{width:44px;height:44px}}

.group-post-head>.ranked-avatar-shell,.group-post-composer-head>.ranked-avatar-shell{width:42px;height:42px}.group-comment>.ranked-avatar-shell{width:34px;height:34px}.share-member-row>.ranked-avatar-shell{width:42px;height:42px}.share-member-row>.ranked-avatar-shell .share-member-avatar{width:42px;height:42px}.share-member-main strong a,.group-post-head strong a{color:inherit;text-decoration:none}.share-member-main strong a:hover,.group-post-head strong a:hover{color:#ffd027}


/* V3.11.3 — Profil pêcheur enrichi + correction affichage badges historiques */
.member-profile-section-heading{margin:0 0 14px}.member-profile-section-heading p{margin-top:4px}.member-profile-fishing-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:18px}.member-profile-fishing-kpis>.panel{padding:16px;min-width:0}.member-profile-fishing-kpis span,.member-profile-fishing-kpis strong,.member-profile-fishing-kpis small{display:block}.member-profile-fishing-kpis span{color:var(--muted,#999);font-size:.72rem;text-transform:uppercase;font-weight:900}.member-profile-fishing-kpis strong{margin:4px 0;color:#ffd027;font-size:1.45rem;overflow-wrap:anywhere}.member-profile-fishing-kpis small{color:var(--muted,#aaa);font-size:.72rem;line-height:1.35}
.member-profile-fishing-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:14px;margin:14px 0}.member-profile-fishing-grid.two-equal{grid-template-columns:repeat(2,minmax(0,1fr))}.member-profile-fishing-grid.three-equal{grid-template-columns:repeat(3,minmax(0,1fr))}.member-profile-fishing-grid>.panel,.member-profile-records-panel,.member-profile-recent-panel{min-width:0}.member-profile-panel-title{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.member-profile-panel-title h3,.member-profile-top-panel h3{margin:3px 0 0}.member-profile-panel-title .text-link{white-space:nowrap}
.member-profile-record-card{display:grid;grid-template-columns:132px minmax(0,1fr);gap:16px;align-items:center;color:inherit;text-decoration:none}.member-profile-record-photo{display:grid;place-items:center;width:132px;aspect-ratio:4/3;overflow:hidden;border:1px solid rgba(255,196,0,.25);border-radius:14px;background:#0b0d0a;color:#ffd027;font-size:2rem}.member-profile-record-photo img{width:100%;height:100%;object-fit:cover}.member-profile-record-card strong,.member-profile-record-card span,.member-profile-record-card small{display:block}.member-profile-record-card strong{color:#ffd027;font-size:2rem;line-height:1}.member-profile-record-card span{margin-top:7px;font-weight:800}.member-profile-record-card small{margin-top:5px;color:var(--muted,#aaa)}
.member-profile-ranking-list{display:grid;gap:8px;margin-top:13px}.member-profile-ranking-row{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;align-items:center;padding:10px 0;border-top:1px solid rgba(255,255,255,.07)}.member-profile-ranking-row:first-child{border-top:0}.member-profile-ranking-row>b{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:rgba(255,196,0,.1);color:#ffd027;font-size:.72rem}.member-profile-ranking-row strong,.member-profile-ranking-row small{display:block}.member-profile-ranking-row small{margin-top:2px;color:var(--muted,#aaa);font-size:.72rem}.member-profile-ranking-list.compact .member-profile-ranking-row{padding:8px 0}
.member-profile-records-panel,.member-profile-recent-panel{margin-top:14px}.member-species-record-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.member-species-record-grid article{padding:14px;border:1px solid rgba(255,196,0,.18);border-radius:14px;background:rgba(255,255,255,.018)}.member-species-record-grid span,.member-species-record-grid strong,.member-species-record-grid small{display:block}.member-species-record-grid span{font-weight:900}.member-species-record-grid strong{margin:5px 0;color:#ffd027;font-size:1.25rem}.member-species-record-grid small{color:var(--muted,#aaa);font-size:.7rem;line-height:1.4}
.member-profile-recent-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.member-profile-capture-card{display:grid;grid-template-columns:86px minmax(0,1fr);gap:11px;align-items:center;padding:9px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(255,255,255,.015);color:inherit;text-decoration:none}.member-profile-capture-card:hover{border-color:rgba(255,196,0,.45);transform:translateY(-1px)}.member-profile-capture-photo{display:grid;place-items:center;width:86px;height:72px;overflow:hidden;border-radius:10px;background:#0b0d0a;color:#ffd027;font-weight:1000}.member-profile-capture-photo img{width:100%;height:100%;object-fit:cover}.member-profile-capture-card small,.member-profile-capture-card strong,.member-profile-capture-card span{display:block}.member-profile-capture-card small{color:var(--muted,#999);font-size:.68rem}.member-profile-capture-card strong{margin:2px 0}.member-profile-capture-card span{color:var(--muted,#aaa);font-size:.72rem;line-height:1.35}.member-profile-academy-heading{margin-top:30px}.member-profile-no-catches{margin-bottom:24px}
@media(max-width:1100px){.member-profile-fishing-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.member-species-record-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.member-profile-recent-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.member-profile-fishing-grid.three-equal{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){.member-profile-fishing-grid,.member-profile-fishing-grid.two-equal,.member-profile-fishing-grid.three-equal{grid-template-columns:minmax(0,1fr)}.member-profile-record-card{grid-template-columns:100px minmax(0,1fr)}.member-profile-record-photo{width:100px}.member-profile-record-card strong{font-size:1.55rem}.member-profile-recent-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:520px){.member-profile-fishing-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.member-species-record-grid{grid-template-columns:minmax(0,1fr)}.member-profile-panel-title{align-items:flex-start;flex-direction:column}.member-profile-record-card{grid-template-columns:84px minmax(0,1fr)}.member-profile-record-photo{width:84px}.member-profile-capture-card{grid-template-columns:76px minmax(0,1fr)}.member-profile-capture-photo{width:76px;height:66px}}


/* V3.12.0 — multi-prise, concours, présence et Carp Assistant */
.presence-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#7b8490;border:2px solid var(--surface,#fff);box-shadow:0 0 0 1px rgba(0,0,0,.1)}
.presence-dot.is-online{background:#31c66b;box-shadow:0 0 0 2px rgba(49,198,107,.15)}.presence-dot.is-away{background:#e6ad35}.presence-dot.is-hidden,.presence-dot.is-offline{background:#8d949d}
.ranked-avatar-shell>.presence-dot{position:absolute;right:-1px;bottom:2px;z-index:3;width:11px;height:11px}.presence-label{display:inline-flex;gap:.4rem;align-items:center;color:var(--muted,#68707a);font-size:.84rem}.presence-label.is-hidden{opacity:.7}
.presence-privacy-setting{margin:1rem 0;padding:.85rem;border:1px solid var(--border);border-radius:12px}.presence-privacy-setting span{display:grid}.presence-privacy-setting small{font-weight:400;color:var(--muted)}
.multicatch-explain{display:grid;gap:.35rem;padding:1rem;border-radius:14px;background:rgba(31,132,99,.08);margin-bottom:1rem}.multicatch-fish-list{display:grid;gap:.55rem}.multicatch-fish-list a{display:grid;grid-template-columns:45px 1fr auto 20px;gap:.7rem;align-items:center;padding:.75rem;border:1px solid var(--border);border-radius:12px;text-decoration:none;color:inherit}
.competition-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.competition-card{text-decoration:none;color:inherit;display:grid;gap:.7rem}.competition-card-top{display:flex;justify-content:space-between;gap:.75rem;align-items:center}.competition-status{display:inline-flex;padding:.25rem .65rem;border-radius:99px;background:rgba(30,130,90,.12);font-weight:800;font-size:.78rem}.competition-status.is-completed,.competition-status.is-cancelled{background:rgba(120,125,135,.14)}.competition-status.is-running{background:rgba(48,185,90,.16)}.competition-invite-chip{color:#c47a00;font-size:.82rem}.competition-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:1rem}.competition-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem}.competition-standing-row{display:grid;grid-template-columns:38px 48px 1fr auto;gap:.75rem;align-items:center;padding:.8rem 0;border-bottom:1px solid var(--border)}.competition-standing-row>span{display:grid}.competition-standing-row em{font-style:normal;font-weight:900}.competition-members{display:grid;gap:.65rem}.competition-members>div{display:flex;gap:.6rem;align-items:center}.competition-members>div>span{display:grid}.member-check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.6rem}.member-check{display:grid;grid-template-columns:auto 42px 1fr;gap:.5rem;align-items:center;padding:.65rem;border:1px solid var(--border);border-radius:12px}
.assistant-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:1rem}.assistant-sidebar{align-self:start}.assistant-thread-list{display:grid;gap:.35rem}.assistant-thread-list a{display:grid;padding:.65rem;border-radius:10px;text-decoration:none;color:inherit}.assistant-thread-list a.active{background:rgba(31,132,99,.1)}.assistant-thread-list small{color:var(--muted)}.assistant-engine{display:flex;gap:.5rem;align-items:center;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.assistant-chat{min-height:560px;display:flex;flex-direction:column}.assistant-suggestions{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.8rem}.assistant-suggestions button{border:1px solid var(--border);background:var(--surface);border-radius:99px;padding:.45rem .7rem;cursor:pointer}.assistant-messages{display:flex;flex-direction:column;gap:.8rem;overflow:auto;min-height:360px;max-height:62vh;padding:.5rem}.assistant-message{max-width:min(82%,760px);padding:.8rem 1rem;border-radius:16px;background:rgba(120,125,135,.09)}.assistant-message.is-user{align-self:flex-end;background:rgba(31,132,99,.13)}.assistant-message strong{display:block;font-size:.78rem;margin-bottom:.25rem}.assistant-compose{display:grid;grid-template-columns:1fr auto;gap:.6rem;margin-top:auto;padding-top:.8rem}.assistant-compose textarea{resize:vertical;min-height:52px}.assistant-status{min-height:1.2rem;color:var(--muted);font-size:.8rem;margin-top:.35rem}.assistant-empty{text-align:center;padding:4rem 1rem;color:var(--muted)}.assistant-empty span{font-size:3rem}.carp-assistant-fab{position:fixed;right:18px;bottom:84px;z-index:80;display:flex;gap:.4rem;align-items:center;padding:.6rem .8rem;border-radius:999px;background:#163b2f;color:white;text-decoration:none;box-shadow:0 10px 30px rgba(0,0,0,.24)}.carp-assistant-fab span{font-size:1.15rem}
@media(max-width:800px){.competition-layout,.assistant-layout{grid-template-columns:1fr}.competition-head{display:grid}.assistant-sidebar{order:2}.assistant-chat{min-height:70vh}.assistant-message{max-width:94%}.assistant-compose{grid-template-columns:1fr}.carp-assistant-fab{right:12px;bottom:82px}.carp-assistant-fab b{display:none}}

/* V3.12.0 — multi-prises dans le carnet */
.catch-card.is-multicatch-card{position:relative}
.multicatch-card-badge{position:absolute;left:.7rem;bottom:.7rem;z-index:2;display:inline-flex;align-items:center;gap:.3rem;max-width:calc(100% - 1.4rem);padding:.38rem .58rem;border-radius:999px;background:rgba(16,30,26,.88);color:#fff;font-size:.72rem;font-weight:800;line-height:1.1;box-shadow:0 4px 14px rgba(0,0,0,.18)}
.multicatch-card-metrics{flex-wrap:wrap}.multicatch-card-metrics strong,.multicatch-card-metrics span{white-space:nowrap}
.multicatch-actions{margin-top:1.1rem;display:flex;gap:.65rem;align-items:center;flex-wrap:wrap}.multicatch-actions form{margin:0}
.competition-invite-more{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}
@media (max-width:640px){.multicatch-card-badge{font-size:.68rem}.multicatch-actions{align-items:stretch}.multicatch-actions>a,.multicatch-actions form,.multicatch-actions button{width:100%}}

/* V3.12.0.1 — correctif superposition statut de présence / niveau Académie.
   Convention : présence en haut à droite, niveau en bas à droite. */
.ranked-avatar-shell > .presence-dot {
    top: -2px;
    right: -2px;
    bottom: auto;
    z-index: 4;
    width: 11px;
    height: 11px;
    box-sizing: border-box;
}
.member-profile-avatar-wrap .ranked-avatar-shell > .presence-dot {
    top: 4px;
    right: 4px;
    width: 14px;
    height: 14px;
    border-width: 2px;
}
.account-avatar .ranked-avatar-shell > .presence-dot {
    top: -3px;
    right: -3px;
}
.social-feed-comment > .ranked-avatar-shell > .presence-dot,
.group-comment > .ranked-avatar-shell > .presence-dot {
    top: -1px;
    right: -1px;
    width: 10px;
    height: 10px;
}
@media (max-width: 760px) {
    .member-profile-avatar-wrap .ranked-avatar-shell > .presence-dot {
        top: 2px;
        right: 2px;
        width: 12px;
        height: 12px;
    }
}

/* V3.13.0 — Concours Pro / règles de points avancées */
.competition-form-layout{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(280px,.8fr);gap:1.25rem;align-items:start}.competition-pro-form{display:grid;gap:1.1rem}.competition-form-section{border:1px solid var(--border);border-radius:16px;padding:1rem;background:color-mix(in srgb,var(--surface) 96%,transparent)}details.competition-form-section{padding:.2rem 1rem 1rem}details.competition-form-section>summary{cursor:pointer;display:grid;grid-template-columns:auto 1fr;gap:.2rem .6rem;align-items:center;padding:.85rem 0;font-weight:800}details.competition-form-section>summary>span{grid-row:1/3;font-size:1.35rem}details.competition-form-section>summary>small{grid-column:2;color:var(--muted);font-weight:500}.preset-help-grid{display:grid}.preset-help{display:flex;gap:.75rem;align-items:center;padding:.75rem .9rem;border-radius:12px;background:rgba(36,143,82,.09);border:1px solid rgba(36,143,82,.18)}.preset-help span{color:var(--muted)}.competition-score-explainer{display:grid;gap:.2rem;padding:.8rem 1rem;border-radius:12px;background:rgba(48,111,200,.08);border:1px solid rgba(48,111,200,.18)}.competition-score-explainer span{color:var(--muted)}.competition-checkbox-stack{display:grid;gap:.55rem;align-content:start;padding:.4rem 0}.competition-checkbox-stack label{display:flex;gap:.55rem;align-items:center}.competition-checkbox-stack input[type=checkbox]{width:auto}.competition-rule-table-wrap{overflow:auto;margin-top:.75rem}.competition-rule-table{width:100%;min-width:920px;border-collapse:collapse}.competition-rule-table th,.competition-rule-table td{padding:.35rem;border-bottom:1px solid var(--border);text-align:left}.competition-rule-table th{font-size:.78rem;color:var(--muted)}.competition-rule-table input{min-width:90px;margin:0}.competition-rule-table td:first-child input{min-width:180px}.competition-inline-rule{display:grid;grid-template-columns:1fr auto 1fr;gap:.5rem;align-items:center;margin:.45rem 0}.competition-round-builder{overflow:auto}.competition-round-head,.competition-round-row{display:grid;grid-template-columns:1.2fr 1.2fr 1.2fr 1fr .55fr;gap:.5rem;min-width:900px;align-items:center}.competition-round-head{font-size:.76rem;color:var(--muted);font-weight:800;padding:.3rem 0}.competition-round-row{padding:.3rem 0;border-top:1px solid var(--border)}.competition-round-row input,.competition-round-row select{margin:0}.competition-rules-guide{position:sticky;top:90px;display:grid;gap:1rem}.competition-guide-list{display:grid;gap:.65rem}.competition-guide-list article{padding:.7rem;border:1px solid var(--border);border-radius:12px}.competition-guide-list article p{margin:.15rem 0 0;color:var(--muted);font-size:.88rem}.sticky-form-actions{position:sticky;bottom:10px;padding:.7rem;border-radius:14px;background:color-mix(in srgb,var(--surface) 90%,transparent);backdrop-filter:blur(10px);z-index:5;border:1px solid var(--border)}
.competition-main-column,.competition-sidebar-column{display:grid;gap:1rem;align-content:start}.competition-sidebar-column{position:relative}.competition-head-chips{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.75rem}.competition-head-chips span,.competition-feature-strip span{display:inline-flex;align-items:center;padding:.34rem .6rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);font-size:.8rem}.competition-feature-strip{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}.competition-card-title{display:flex;gap:.65rem;align-items:center}.competition-card-title>span{font-size:1.5rem}.competition-card-title h2{margin:0}.competition-card-meta{display:flex;gap:.5rem;flex-wrap:wrap;color:var(--muted);font-size:.85rem}.competition-hidden-ranking{display:flex;gap:.85rem;align-items:center;padding:1rem;border:1px dashed var(--border);border-radius:14px}.competition-hidden-ranking>span{font-size:1.7rem}.competition-team-standings{display:grid}.competition-team-row{display:grid;grid-template-columns:42px 1fr auto;gap:.7rem;align-items:center;padding:.8rem 0;border-bottom:1px solid var(--border)}.competition-team-row>div{display:grid}.competition-team-row small{color:var(--muted)}.competition-team-row em{font-style:normal;font-weight:900}.competition-round-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:.8rem}.competition-round-card{border:1px solid var(--border);border-radius:14px;overflow:hidden}.competition-round-card>header{display:flex;justify-content:space-between;gap:.7rem;padding:.8rem;background:rgba(80,90,100,.05)}.competition-round-card>header>div{display:grid}.competition-round-card>header small{color:var(--muted)}.competition-round-mini-table{display:grid;padding:0 .75rem}.competition-round-mini-table>div{display:grid;grid-template-columns:32px 1fr auto auto;gap:.5rem;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--border);font-size:.84rem}.competition-round-mini-table em{font-style:normal;font-weight:800}.competition-review-list{display:grid;gap:.65rem}.competition-review-list article{display:grid;grid-template-columns:72px minmax(0,1fr) minmax(260px,.9fr);gap:.7rem;align-items:center;padding:.7rem;border:1px solid var(--border);border-radius:14px}.competition-review-photo{width:72px;height:72px;border-radius:12px;overflow:hidden;background:rgba(120,130,140,.08);display:grid;place-items:center}.competition-review-photo img{width:100%;height:100%;object-fit:cover}.competition-review-list article>div:nth-child(2){display:grid}.competition-review-list small{color:var(--muted)}.competition-review-actions{display:grid;grid-template-columns:1fr auto auto;gap:.35rem}.competition-review-actions input{grid-column:1/-1}.competition-admin-grid{display:grid;grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr);gap:1rem}.competition-adjustment-form{align-self:start;border:1px solid var(--border);border-radius:14px;padding:.8rem}.competition-member-admin-list{display:grid;gap:.5rem}.competition-member-admin-row{display:grid;grid-template-columns:minmax(130px,1.2fr) minmax(110px,.8fr) 90px 90px auto minmax(140px,1fr) auto;gap:.35rem;align-items:center;padding:.55rem;border:1px solid var(--border);border-radius:12px}.competition-member-admin-row input,.competition-member-admin-row select{margin:0;min-width:0}.competition-dq{display:flex;gap:.3rem;align-items:center;white-space:nowrap}.competition-dq input{width:auto}.competition-adjustment-history{margin-top:1rem;display:grid;gap:.45rem}.competition-adjustment-history>div{display:grid;grid-template-columns:auto 1fr auto;gap:.55rem;align-items:center;padding:.5rem;border-top:1px solid var(--border)}.competition-adjustment-type{font-weight:900}.competition-adjustment-type.is-bonus{color:#18884d}.competition-adjustment-type.is-penalty{color:#b13b3b}.competition-rule-summary{display:grid;gap:.4rem;padding-left:1.1rem}.competition-species-rule-summary{display:grid;gap:.45rem;margin-top:.6rem}.competition-species-rule-summary>div{display:grid;padding:.45rem;border:1px solid var(--border);border-radius:10px}.competition-species-rule-summary small{color:var(--muted)}.competition-integrity-card{background:linear-gradient(145deg,rgba(48,111,200,.07),rgba(36,143,82,.07))}.competition-standing-row.is-disqualified{opacity:.6;text-decoration:line-through}.competition-card .competition-invite-chip{justify-self:start}
@media(max-width:1100px){.competition-form-layout{grid-template-columns:1fr}.competition-rules-guide{position:static}.competition-admin-grid{grid-template-columns:1fr}.competition-member-admin-row{grid-template-columns:1fr 1fr 1fr}.competition-member-admin-row strong,.competition-member-admin-row input[name=organizer_note]{grid-column:1/-1}.competition-review-list article{grid-template-columns:64px 1fr}.competition-review-actions{grid-column:1/-1}.competition-review-photo{width:64px;height:64px}}
@media(max-width:760px){.competition-form-section{padding:.75rem}.competition-feature-strip{overflow:auto;flex-wrap:nowrap;padding-bottom:.3rem}.competition-feature-strip span{white-space:nowrap}.competition-round-cards{grid-template-columns:1fr}.competition-standing-row{grid-template-columns:32px 42px 1fr}.competition-standing-row em{grid-column:3;justify-self:start}.competition-team-row{grid-template-columns:32px 1fr}.competition-team-row em{grid-column:2}.competition-review-list article{grid-template-columns:52px 1fr}.competition-review-photo{width:52px;height:52px}.competition-review-actions{grid-template-columns:1fr 1fr}.competition-review-actions input{grid-column:1/-1}.competition-review-actions button{width:100%}.competition-member-admin-row{grid-template-columns:1fr 1fr}.competition-member-admin-row>*{min-width:0}.competition-member-admin-row strong,.competition-member-admin-row input[name=organizer_note]{grid-column:1/-1}.competition-adjustment-history>div{grid-template-columns:1fr}.competition-round-mini-table>div{grid-template-columns:28px 1fr auto}.competition-round-mini-table em{grid-column:2/4}.sticky-form-actions{bottom:70px}}

/* V3.13.0 — Gestion avancée des équipes de concours */
.competition-team-row{grid-template-columns:42px 14px minmax(0,1fr) auto}
.competition-team-color{display:inline-block;width:12px;height:12px;border-radius:999px;background:var(--team-color,#1e88e5);box-shadow:0 0 0 3px color-mix(in srgb,var(--team-color,#1e88e5) 18%,transparent)}
.competition-team-admin{display:grid;gap:1rem}
.competition-team-tools{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr);gap:.8rem;align-items:end}
.competition-team-create{display:grid;grid-template-columns:minmax(0,1fr) 48px auto;gap:.45rem;align-items:center}
.competition-team-create input[type=color]{width:48px;height:42px;padding:3px;border-radius:10px}
.competition-team-distribute{display:flex;gap:.45rem;flex-wrap:wrap;align-items:center;justify-content:flex-end}
.competition-team-distribute>span{font-size:.82rem;color:var(--muted);width:100%;text-align:right}
.competition-team-distribute form{margin:0}
.competition-team-editor{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:.75rem}
.competition-team-editor>article{border:1px solid var(--border);border-top:4px solid var(--team-color,#1e88e5);border-radius:14px;padding:.75rem;display:grid;gap:.7rem;background:var(--surface)}
.competition-team-editor>article>header{display:flex;gap:.55rem;align-items:center}
.competition-team-editor>article>header>div{display:grid}
.competition-team-editor>article>header small{color:var(--muted)}
.competition-team-editor input[type=color]{min-height:42px;padding:3px}
.competition-team-members-mini{display:flex;flex-wrap:wrap;gap:.4rem}
.competition-team-members-mini>span{display:inline-flex;align-items:center;gap:.35rem;padding:.28rem .48rem;border:1px solid var(--border);border-radius:999px;font-size:.8rem}
.competition-team-members-mini .ranked-avatar-shell{--avatar-size:24px}
@media(max-width:760px){.competition-team-row{grid-template-columns:32px 12px 1fr}.competition-team-row em{grid-column:3}.competition-team-tools{grid-template-columns:1fr}.competition-team-distribute{justify-content:flex-start}.competition-team-distribute>span{text-align:left}.competition-team-create{grid-template-columns:minmax(0,1fr) 46px}.competition-team-create .button{grid-column:1/-1}.competition-team-editor{grid-template-columns:1fr}}

/* V3.14.0 — Multi-prise Pro */
.multicatch-pro-layout,.multicatch-view-layout{max-width:1180px;margin:0 auto}.multicatch-pro-form{display:grid;gap:1.15rem}.multicatch-pro-intro{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.multicatch-pro-intro>div{display:grid;gap:.3rem;padding:.9rem 1rem;border:1px solid var(--border-color,#dbe2ea);border-radius:14px;background:var(--surface-soft,#f7f9fb)}.multicatch-pro-intro span{font-size:.88rem;line-height:1.45;color:var(--text-muted,#64748b)}.multicatch-pro-section{border:1px solid var(--border-color,#dbe2ea);border-radius:16px;padding:1rem;margin:0}.multicatch-pro-section>legend{padding:0 .5rem;font-weight:800;font-size:1rem}.multicatch-species-toolbar{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem}.multicatch-species-toolbar>div:first-child{display:grid;gap:.2rem}.multicatch-species-toolbar small{color:var(--text-muted,#64748b)}.multicatch-quick-species{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.4rem}.multicatch-quick-species button{border:1px solid var(--border-color,#dbe2ea);background:var(--surface,#fff);color:inherit;border-radius:999px;padding:.42rem .7rem;font:inherit;font-size:.82rem;cursor:pointer}.multicatch-quick-species button:hover{border-color:var(--accent,#1f7a5c)}.multicatch-species-list{display:grid;gap:.8rem}.multicatch-species-row{position:relative;border:1px solid var(--border-color,#dbe2ea);border-radius:14px;padding:.85rem;background:var(--surface-soft,#f8fafc)}.multicatch-species-main{display:grid;grid-template-columns:minmax(220px,2fr) minmax(130px,.7fr) auto;gap:.7rem;align-items:end}.multicatch-species-measures{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;margin-top:.7rem}.multicatch-qty-control{display:grid;grid-template-columns:42px 1fr 42px;border:1px solid var(--border-color,#dbe2ea);border-radius:10px;overflow:hidden;background:var(--surface,#fff)}.multicatch-qty-control input{border:0!important;text-align:center;border-radius:0!important}.multicatch-qty-control button{border:0;background:transparent;font-size:1.3rem;cursor:pointer}.multicatch-qty-control button:hover{background:rgba(15,118,110,.08)}.multicatch-remove-species{width:40px;height:40px;border:1px solid #f1b6b6;color:#b42318;background:#fff5f5;border-radius:10px;font-size:1.25rem;cursor:pointer}.multicatch-individual-details{margin-top:.75rem;border-top:1px dashed var(--border-color,#dbe2ea);padding-top:.7rem}.multicatch-individual-details summary{cursor:pointer;font-weight:700}.multicatch-individual-details summary span{font-weight:400;color:var(--text-muted,#64748b);font-size:.85rem}.multicatch-individual-details[open] summary{margin-bottom:.75rem}.multicatch-live-summary{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1rem}.multicatch-live-summary span{padding:.45rem .7rem;border-radius:999px;background:var(--surface-soft,#f1f5f9);font-size:.86rem}.multicatch-weighing-help{display:grid;gap:.35rem;align-content:center;padding:.8rem 1rem;border-radius:12px;background:var(--surface-soft,#f8fafc);border:1px dashed var(--border-color,#cbd5e1)}.multicatch-weighing-help span{font-size:.88rem;line-height:1.45;color:var(--text-muted,#64748b)}.multicatch-photo-picker{display:grid;gap:.45rem;padding:1rem;border:2px dashed var(--border-color,#cbd5e1);border-radius:14px;background:var(--surface-soft,#f8fafc);cursor:pointer}.multicatch-photo-picker>span{font-weight:800}.multicatch-photo-picker input[type=file]{width:100%}.multicatch-photo-preview,.multicatch-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.65rem;margin-top:.75rem}.multicatch-photo-preview figure,.multicatch-photo-grid figure{margin:0;position:relative;border-radius:12px;overflow:hidden;background:#0f172a}.multicatch-photo-preview img,.multicatch-photo-grid img{display:block;width:100%;height:150px;object-fit:cover}.multicatch-photo-preview figcaption,.multicatch-photo-grid figcaption{padding:.35rem .5rem;background:rgba(15,23,42,.85);color:#fff;font-size:.75rem}.multicatch-photo-grid figure.is-primary{outline:3px solid #eab308}.multicatch-photo-actions{display:flex;gap:.35rem;padding:.35rem;background:var(--surface,#fff)}.multicatch-photo-actions form{margin:0;flex:1}.multicatch-photo-actions button{width:100%;border:1px solid var(--border-color,#dbe2ea);border-radius:8px;background:var(--surface,#fff);padding:.35rem .45rem;font:inherit;font-size:.75rem;cursor:pointer}.multicatch-photo-actions button.danger{color:#b42318}.multicatch-photo-add{display:flex;justify-content:space-between;align-items:center;gap:1rem}.multicatch-photo-add h2,.multicatch-photo-add p{margin:.15rem 0}.multicatch-photo-add form{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.multicatch-species-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:.75rem}.multicatch-species-summary-grid article{padding:.9rem;border:1px solid var(--border-color,#dbe2ea);border-radius:13px;background:var(--surface-soft,#f8fafc)}.multicatch-species-summary-grid header{display:flex;justify-content:space-between;gap:.5rem;align-items:center}.multicatch-species-summary-grid header>strong{font-size:1.02rem}.multicatch-species-summary-grid header>span{font-size:.78rem;padding:.25rem .5rem;border-radius:999px;background:var(--surface,#fff)}.multicatch-species-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin-top:.7rem}.multicatch-species-stats span{display:grid;gap:.1rem;font-size:.74rem;color:var(--text-muted,#64748b)}.multicatch-species-stats b{font-size:.88rem;color:var(--text,#0f172a)}.multicatch-fish-list.pro{display:grid;gap:.45rem}.multicatch-fish-row{display:flex;align-items:center;gap:.65rem;padding:.5rem;border:1px solid var(--border-color,#e2e8f0);border-radius:12px}.multicatch-fish-main{display:flex;align-items:center;gap:.65rem;min-width:0;flex:1;color:inherit;text-decoration:none}.multicatch-fish-main img,.multicatch-fish-no-photo{width:52px;height:52px;border-radius:10px;object-fit:cover;flex:0 0 auto}.multicatch-fish-no-photo{display:grid;place-items:center;background:var(--surface-soft,#f1f5f9)}.multicatch-fish-main>span:last-child{display:grid;min-width:0}.multicatch-fish-main small{color:var(--text-muted,#64748b)}.multicatch-fish-photo-button{white-space:nowrap}.multicatch-context .profile-stat-grid.compact{margin-top:.5rem}.catch-card.is-multicatch-card .catch-card-photo img.is-batch-photo{object-fit:cover}.social-feed-batch .social-capture-photo img{width:100%;height:100%;object-fit:cover}.empty-state{padding:1rem;text-align:center;color:var(--text-muted,#64748b)}
@media(max-width:850px){.multicatch-pro-intro{grid-template-columns:1fr}.multicatch-species-toolbar{display:grid}.multicatch-quick-species{justify-content:flex-start}.multicatch-species-main{grid-template-columns:1fr 145px auto}.multicatch-species-measures{grid-template-columns:1fr 1fr}.multicatch-species-measures label:last-child{grid-column:1/-1}.multicatch-photo-add{display:grid}.multicatch-photo-add form{display:grid}.multicatch-species-stats{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:600px){.multicatch-pro-section{padding:.8rem}.multicatch-species-main{grid-template-columns:1fr auto}.multicatch-species-main>label:first-child{grid-column:1/-1}.multicatch-species-measures{grid-template-columns:1fr}.multicatch-species-measures label:last-child{grid-column:auto}.multicatch-quick-species{max-height:112px;overflow:auto}.multicatch-photo-preview,.multicatch-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.multicatch-photo-preview img,.multicatch-photo-grid img{height:125px}.multicatch-fish-row{align-items:stretch;flex-direction:column}.multicatch-fish-photo-button{width:100%;justify-content:center}.multicatch-species-stats{grid-template-columns:1fr}.multicatch-live-summary{display:grid;grid-template-columns:1fr 1fr}.multicatch-live-summary span:last-child{grid-column:1/-1}.multicatch-photo-add form input[type=file]{max-width:100%}}

/* =========================================================
   CARP SESSION V3.15 — Concours pots, Assistant intégré,
   harmonisation Multi-Prise Pro
   ========================================================= */

/* --- Concours : pots de tirage --- */
.competition-team-tools{display:grid;gap:.8rem;margin-bottom:1rem}.competition-team-create,.competition-team-distribute{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.competition-team-create input[type="text"],.competition-team-create input:not([type]){min-width:180px;flex:1}.competition-team-create input[type="color"]{width:46px;min-width:46px;height:40px;padding:3px}.competition-team-distribute>span{color:var(--muted);font-size:.82rem;font-weight:800}.competition-team-distribute form{margin:0}.competition-pot-status{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin:.75rem 0 1rem;padding:.8rem .9rem;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}.competition-pot-status>div:first-child{display:grid;gap:.15rem}.competition-pot-status small{color:var(--muted)}.competition-pot-chips{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:flex-end}.competition-pot-chips span{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .55rem;border:1px solid rgba(246,201,0,.28);border-radius:999px;background:rgba(246,201,0,.06);color:var(--cream);font-size:.78rem}.competition-pot-chips span b{color:var(--yellow)}.competition-pot-chips span.is-warning{border-color:rgba(229,107,107,.45);background:rgba(229,107,107,.08);color:#ffb3b3}.competition-member-admin-row{grid-template-columns:minmax(135px,1.15fr) minmax(105px,.82fr) minmax(105px,.82fr) 78px 78px auto minmax(130px,1fr) auto}.competition-member-admin-row select[name="draw_pot"]{border-color:rgba(246,201,0,.26)}

/* --- Carp Assistant : vrai panneau intégré à la page --- */
.carp-assistant-fab{right:18px;bottom:84px;z-index:1260;border:1px solid rgba(246,201,0,.52);background:var(--yellow);color:#111;box-shadow:0 12px 34px rgba(0,0,0,.42);font:inherit;font-weight:900;cursor:pointer}.carp-assistant-fab:hover{transform:translateY(-1px);box-shadow:0 15px 38px rgba(0,0,0,.48)}.carp-assistant-backdrop{position:fixed;inset:0;z-index:1270;background:rgba(0,0,0,.56);backdrop-filter:blur(2px)}.carp-assistant-backdrop[hidden],.carp-assistant-widget[hidden]{display:none!important}.carp-assistant-widget{position:fixed;right:18px;bottom:82px;z-index:1280;width:min(440px,calc(100vw - 28px));height:min(690px,calc(100dvh - 112px));display:grid;grid-template-rows:auto auto auto auto minmax(0,1fr) auto auto;overflow:hidden;border:1px solid rgba(246,201,0,.34);border-radius:20px;background:var(--surface);color:var(--cream);box-shadow:0 24px 70px rgba(0,0,0,.62)}.carp-assistant-widget-head{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem .9rem;border-bottom:1px solid var(--line);background:linear-gradient(135deg,rgba(246,201,0,.13),rgba(246,201,0,.025))}.carp-assistant-widget-head>div:first-child{display:flex;align-items:center;gap:.65rem;min-width:0}.assistant-widget-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:var(--yellow);color:#111;font-size:19px;flex:0 0 auto}.carp-assistant-widget-head>div:first-child>div{display:grid;min-width:0}.carp-assistant-widget-head strong{font-size:1rem}.carp-assistant-widget-head small{color:var(--muted);font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assistant-widget-head-actions{display:flex;gap:.35rem}.assistant-widget-head-actions button{display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);color:var(--cream);font:inherit;font-size:1.15rem;cursor:pointer}.assistant-widget-head-actions button:hover{border-color:var(--yellow);color:var(--yellow)}.assistant-widget-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.55rem;padding:.55rem .75rem;border-bottom:1px solid var(--line);background:var(--surface-2)}.assistant-widget-toolbar select{width:100%;min-width:0;margin:0}.assistant-widget-toolbar span{color:var(--muted);font-size:.68rem;white-space:nowrap}.assistant-widget-context{display:grid;gap:.08rem;padding:.55rem .75rem;border-bottom:1px solid var(--line);background:rgba(90,185,255,.045)}.assistant-widget-context strong{font-size:.75rem;color:#9ed8ff}.assistant-widget-context span{font-size:.69rem;color:var(--muted)}.assistant-widget-suggestions{padding:.55rem .65rem .25rem;margin:0;overflow-x:auto;flex-wrap:nowrap}.assistant-widget-suggestions button{flex:0 0 auto;max-width:260px;border-color:var(--line);background:var(--surface-2);color:var(--cream);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assistant-widget-suggestions button:hover{border-color:var(--yellow);color:var(--yellow)}.assistant-widget-messages{min-height:0;max-height:none;padding:.65rem .7rem;overscroll-behavior:contain}.carp-assistant-widget .assistant-message{max-width:88%;padding:.65rem .75rem;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);color:var(--cream);font-size:.86rem;line-height:1.45}.carp-assistant-widget .assistant-message.is-user{border-color:rgba(246,201,0,.3);background:rgba(246,201,0,.09)}.carp-assistant-widget .assistant-message strong{color:var(--yellow)}.carp-assistant-widget .assistant-message.is-user strong{color:var(--cream)}.assistant-message-actions{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.6rem;padding-top:.5rem;border-top:1px solid var(--line)}.assistant-message-actions a{display:inline-flex;align-items:center;padding:.34rem .5rem;border:1px solid rgba(246,201,0,.3);border-radius:999px;color:var(--yellow);background:rgba(246,201,0,.045);text-decoration:none;font-size:.72rem;font-weight:850}.assistant-message-actions a:hover{background:rgba(246,201,0,.11)}.assistant-widget-compose{grid-template-columns:minmax(0,1fr) auto;margin:0;padding:.65rem;border-top:1px solid var(--line);background:var(--surface-2)}.assistant-widget-compose textarea{min-height:46px;max-height:120px;margin:0;resize:none}.assistant-widget-compose .button{align-self:stretch;margin:0}.carp-assistant-widget .assistant-status{min-height:auto;margin:0;padding:.35rem .7rem .55rem;border-top:1px solid rgba(255,255,255,.025);color:var(--muted);background:var(--surface-2);font-size:.68rem}.carp-assistant-widget .assistant-empty{display:grid;place-items:center;align-content:center;min-height:250px;padding:2rem 1rem;text-align:center}.carp-assistant-widget .assistant-empty span{font-size:2.2rem}.carp-assistant-widget .assistant-empty h2{margin:.4rem 0 .15rem;font-size:1rem}.carp-assistant-widget .assistant-empty p{max-width:320px;margin:0;color:var(--muted);font-size:.78rem}.assistant-widget-open{overflow:hidden}

/* --- Multi-Prise Pro : thème Carp Session, contrastes clair/sombre cohérents --- */
.multicatch-pro-layout,.multicatch-view-layout{color:var(--cream)}.multicatch-pro-form{background:var(--surface);color:var(--cream)}.multicatch-pro-form small,.multicatch-pro-form .form-help,.multicatch-view-layout small{color:var(--muted)}.multicatch-pro-intro>div{border-color:var(--line);background:var(--surface-2);color:var(--cream)}.multicatch-pro-intro>div strong{color:var(--cream)}.multicatch-pro-intro span{color:var(--muted)}.multicatch-pro-section{border-color:var(--line);background:rgba(255,255,255,.012)}.multicatch-pro-section>legend{color:var(--yellow);background:var(--surface);border-radius:8px}.multicatch-pro-section label{color:var(--cream)}.multicatch-pro-section input,.multicatch-pro-section select,.multicatch-pro-section textarea{color:var(--cream);background:var(--surface-2);border-color:var(--line)}.multicatch-pro-section input::placeholder,.multicatch-pro-section textarea::placeholder{color:color-mix(in srgb,var(--muted) 78%,transparent)}.multicatch-pro-section input:focus,.multicatch-pro-section select:focus,.multicatch-pro-section textarea:focus{border-color:var(--yellow);outline-color:rgba(246,201,0,.28)}.multicatch-species-toolbar small{color:var(--muted)}.multicatch-quick-species button{border-color:var(--line);background:var(--surface-2);color:var(--cream)}.multicatch-quick-species button:hover{border-color:var(--yellow);color:var(--yellow);background:rgba(246,201,0,.06)}.multicatch-species-row{border-color:var(--line);background:var(--surface-2);box-shadow:inset 3px 0 0 rgba(246,201,0,.18)}.multicatch-qty-control{border-color:var(--line);background:var(--surface)}.multicatch-qty-control input{color:var(--cream)!important;background:var(--surface)!important}.multicatch-qty-control button{color:var(--cream)}.multicatch-qty-control button:hover{background:rgba(246,201,0,.08);color:var(--yellow)}.multicatch-remove-species{border-color:rgba(229,107,107,.45);color:#ff9e9e;background:rgba(177,59,59,.12)}.multicatch-remove-species:hover{background:rgba(177,59,59,.22)}.multicatch-individual-details{border-top-color:var(--line)}.multicatch-individual-details summary{color:var(--cream)}.multicatch-individual-details summary span{color:var(--muted)}.multicatch-live-summary span{border:1px solid var(--line);background:var(--surface-2);color:var(--cream)}.multicatch-live-summary strong{color:var(--yellow)}.multicatch-weighing-help{border-color:rgba(246,201,0,.28);background:rgba(246,201,0,.045)}.multicatch-weighing-help strong{color:var(--yellow)}.multicatch-weighing-help span{color:var(--muted)}.multicatch-photo-picker{border-color:rgba(246,201,0,.35);background:var(--surface-2);color:var(--cream)}.multicatch-photo-picker:hover{border-color:var(--yellow);background:rgba(246,201,0,.045)}.multicatch-photo-picker>span{color:var(--cream)}.multicatch-photo-picker small{color:var(--muted)}.multicatch-photo-preview figure,.multicatch-photo-grid figure{border:1px solid var(--line);background:#090a07}.multicatch-photo-grid figure.is-primary{outline-color:var(--yellow)}.multicatch-photo-actions{background:var(--surface-2)}.multicatch-photo-actions button{border-color:var(--line);background:var(--surface);color:var(--cream)}.multicatch-photo-actions button:hover{border-color:var(--yellow);color:var(--yellow)}.multicatch-photo-actions button.danger{color:#ff9e9e}.multicatch-species-summary-grid article{border-color:var(--line);background:var(--surface-2);color:var(--cream)}.multicatch-species-summary-grid header>span{border:1px solid var(--line);background:var(--surface);color:var(--cream)}.multicatch-species-stats span{color:var(--muted)}.multicatch-species-stats b{color:var(--cream)}.multicatch-fish-row{border-color:var(--line);background:var(--surface-2)}.multicatch-fish-no-photo{background:var(--surface)}.multicatch-fish-main small{color:var(--muted)}.multicatch-view-layout .panel,.multicatch-view-layout .card{color:var(--cream)}.multicatch-view-layout .empty-state{color:var(--muted)}

@media(max-width:1100px){.competition-member-admin-row{grid-template-columns:1fr 1fr 1fr}.competition-member-admin-row strong,.competition-member-admin-row input[name="organizer_note"]{grid-column:1/-1}.competition-pot-status{align-items:flex-start;flex-direction:column}.competition-pot-chips{justify-content:flex-start}}
@media(max-width:760px){.carp-assistant-fab{right:12px;bottom:82px;padding:.58rem;width:46px;height:46px;justify-content:center}.carp-assistant-fab b{display:none}.carp-assistant-widget{left:8px;right:8px;bottom:72px;width:auto;height:min(76dvh,720px);border-radius:18px}.assistant-widget-toolbar{grid-template-columns:1fr}.assistant-widget-toolbar span{display:none}.assistant-widget-context{display:none}.assistant-widget-suggestions{padding-top:.45rem}.assistant-widget-compose{grid-template-columns:1fr auto}.assistant-widget-compose .button{padding-inline:.65rem}.competition-team-create{display:grid;grid-template-columns:1fr 48px auto;width:100%}.competition-team-distribute{align-items:stretch}.competition-team-distribute>span{width:100%}.competition-team-distribute form{flex:1}.competition-team-distribute button{width:100%}.competition-pot-chips{width:100%}.competition-member-admin-row{grid-template-columns:1fr 1fr}.competition-member-admin-row strong,.competition-member-admin-row input[name="organizer_note"]{grid-column:1/-1}}
@media(max-width:480px){.carp-assistant-widget{left:0;right:0;bottom:66px;height:calc(100dvh - 66px);border-left:0;border-right:0;border-bottom:0;border-radius:18px 18px 0 0}.assistant-widget-compose textarea{min-height:44px}.competition-team-create{grid-template-columns:1fr 44px}.competition-team-create button{grid-column:1/-1}.multicatch-pro-section>legend{font-size:.92rem}.multicatch-species-row{padding:.7rem}.multicatch-live-summary{grid-template-columns:1fr}.multicatch-live-summary span,.multicatch-live-summary span:last-child{grid-column:auto}}
/* V3.15 lisibilité Multi-Prise : le jaune sert d'accent, jamais de texte seul sur une surface claire. */
.multicatch-pro-section>legend{padding:.32rem .65rem;color:#111;background:var(--yellow);box-shadow:0 0 0 3px var(--surface);font-weight:900}
.multicatch-quick-species button:hover{border-color:var(--yellow);color:#111;background:var(--yellow)}
.multicatch-live-summary strong{color:var(--cream)}
.multicatch-weighing-help strong{display:inline-flex;width:max-content;padding:.18rem .42rem;border-radius:7px;background:var(--yellow);color:#111}
.multicatch-photo-actions button:hover{border-color:var(--yellow);color:var(--cream);background:rgba(246,201,0,.08)}
.assistant-widget-suggestions button{border:1px solid var(--line)}

/* =========================================================
   CARP SESSION V3.15.2 — UI mobile + formulaires + diagnostic IA
   ========================================================= */

/* Cases à cocher : taille homogène sur tous les formulaires.
   La zone tactile reste portée par le label ; seule la case visuelle est réduite. */
input[type="checkbox"]{
    box-sizing:border-box!important;
    width:18px!important;
    height:18px!important;
    min-width:18px!important;
    max-width:18px!important;
    min-height:18px!important;
    max-height:18px!important;
    padding:0!important;
    margin:0!important;
    flex:0 0 18px!important;
    vertical-align:middle;
    accent-color:var(--yellow);
}
.checkbox-row,.check-row,.competition-checkbox-stack label,.notification-pref-item,.competition-dq{
    gap:.55rem;
    align-items:center;
}
.member-check input[type="checkbox"]{align-self:center}

/* Diagnostic OpenAI */
.assistant-diagnostic-panel{display:grid;gap:1rem}
.assistant-diagnostic-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.assistant-diagnostic-heading h2,.assistant-diagnostic-heading p{margin:.15rem 0}
.assistant-test-form{margin:0;flex:0 0 auto}
.assistant-config-health{display:flex;flex-wrap:wrap;gap:.45rem}
.assistant-config-health span{display:inline-flex;align-items:center;min-height:32px;padding:.35rem .6rem;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);font-size:.78rem;font-weight:800}
.assistant-config-health span.is-ok{border-color:rgba(73,191,115,.45);color:#a8efbf;background:rgba(73,191,115,.08)}
.assistant-config-health span.is-bad{border-color:rgba(229,107,107,.45);color:#ffb3b3;background:rgba(229,107,107,.08)}
.assistant-diagnostic-result{display:grid;gap:.75rem;padding:.85rem;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}
.assistant-diagnostic-result.is-success{border-color:rgba(73,191,115,.45)}
.assistant-diagnostic-result.is-error{border-color:rgba(229,107,107,.45)}
.assistant-diagnostic-steps{display:grid;gap:.45rem}
.assistant-diagnostic-step{display:grid;grid-template-columns:24px minmax(0,1fr);gap:.5rem;align-items:start;padding:.5rem .6rem;border-radius:10px;background:rgba(255,255,255,.025)}
.assistant-diagnostic-step>span{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;font-weight:900}
.assistant-diagnostic-step>div{display:grid;gap:.12rem;min-width:0}
.assistant-diagnostic-step small{color:var(--muted);overflow-wrap:anywhere}
.assistant-diagnostic-step.is-ok>span{background:rgba(73,191,115,.15);color:#a8efbf}
.assistant-diagnostic-step.is-bad>span{background:rgba(229,107,107,.15);color:#ffb3b3}

/* Assistant intégré : le champ de réponse doit toujours rester visible. */
.carp-assistant-widget{max-height:calc(var(--assistant-visual-height,100dvh) - 104px)}
.assistant-widget-messages{overflow-y:auto!important;scrollbar-gutter:stable}
.assistant-widget-compose{position:relative;z-index:3;min-width:0}
.assistant-widget-compose textarea{width:100%;min-width:0;box-sizing:border-box}

/* Multi-Prise Pro : neutralise les min-width implicites des fieldset/grilles et
   empêche toute largeur intrinsèque de provoquer un scroll horizontal. */
.multicatch-pro-layout,.multicatch-pro-form,.multicatch-pro-section,.multicatch-pro-intro,.multicatch-species-list,.multicatch-species-row,.multicatch-species-main,.multicatch-species-measures,.multicatch-individual-details,.multicatch-live-summary,.multicatch-photo-picker,.multicatch-photo-preview{
    min-width:0;
    max-width:100%;
    box-sizing:border-box;
}
.multicatch-pro-layout{width:100%;overflow-x:clip}
.multicatch-pro-form{width:100%;overflow:hidden}
.multicatch-pro-section{width:100%;min-inline-size:0}
.multicatch-pro-section *{box-sizing:border-box}
.multicatch-pro-section label,.multicatch-pro-section .form-grid,.multicatch-species-toolbar>div{min-width:0;max-width:100%}
.multicatch-pro-section input:not([type="checkbox"]):not([type="radio"]),.multicatch-pro-section select,.multicatch-pro-section textarea{
    width:100%;
    min-width:0!important;
    max-width:100%!important;
}
.multicatch-pro-section input[type="file"]{overflow:hidden;font-size:.82rem}
.multicatch-pro-form .form-grid.two-columns{grid-template-columns:repeat(2,minmax(0,1fr));min-width:0}
.multicatch-qty-control{width:100%;min-width:0;max-width:100%}
.multicatch-quick-species{min-width:0;max-width:100%}
.multicatch-quick-species button{max-width:100%;overflow:hidden;text-overflow:ellipsis}
.multicatch-individual-details summary{max-width:100%;overflow-wrap:anywhere}

@media(max-width:760px){
    .assistant-diagnostic-heading{display:grid}
    .assistant-test-form,.assistant-test-form .button{width:100%}
    .carp-assistant-widget{
        left:8px;
        right:8px;
        bottom:72px;
        width:auto;
        height:min(66dvh,560px);
        max-height:calc(var(--assistant-visual-height,100dvh) - 92px);
        border-radius:18px;
    }
    .carp-assistant-widget.is-compact-viewport{bottom:8px;height:calc(var(--assistant-visual-height,100dvh) - 16px);max-height:none}
    .assistant-widget-suggestions{max-height:44px;padding:.35rem .55rem .2rem}
    .assistant-widget-messages{padding:.55rem .6rem}
    .assistant-widget-compose{padding:.5rem;grid-template-columns:minmax(0,1fr) auto}
    .assistant-widget-compose textarea{min-height:42px;max-height:82px;padding:.55rem .65rem}
    .assistant-widget-compose .button{min-width:74px;padding:.55rem .65rem}
    .carp-assistant-widget .assistant-status{padding:.28rem .6rem .4rem;white-space:normal;overflow-wrap:anywhere}
    .multicatch-pro-form .form-grid.two-columns{grid-template-columns:1fr}
    .multicatch-species-main{grid-template-columns:minmax(0,1fr) 126px 40px}
    .multicatch-species-main>label:first-child{grid-column:1/-1}
    .multicatch-species-measures{grid-template-columns:1fr}
    .multicatch-species-toolbar{min-width:0;max-width:100%}
}

@media(max-width:480px){
    .carp-assistant-widget{
        left:8px;
        right:8px;
        bottom:70px;
        height:min(64dvh,520px);
        max-height:calc(var(--assistant-visual-height,100dvh) - 88px);
        border:1px solid rgba(246,201,0,.34);
        border-radius:16px;
    }
    .carp-assistant-widget-head{padding:.6rem .7rem}
    .assistant-widget-icon{width:32px;height:32px;font-size:17px}
    .assistant-widget-toolbar{padding:.4rem .55rem}
    .assistant-widget-toolbar select{min-height:40px}
    .assistant-widget-suggestions{display:none}
    .carp-assistant-widget .assistant-message{max-width:94%;font-size:.83rem}
    .assistant-widget-compose{grid-template-columns:minmax(0,1fr) auto;align-items:stretch}
    .assistant-widget-compose .button{min-width:68px;padding-inline:.5rem;font-size:.82rem}
    .multicatch-pro-layout{padding-left:0!important;padding-right:0!important}
    .multicatch-pro-form{border-radius:14px}
    .multicatch-pro-section{padding:.72rem}
    .multicatch-species-row{padding:.65rem}
    .multicatch-species-main{grid-template-columns:minmax(0,1fr) 40px;gap:.5rem}
    .multicatch-species-main>label:first-child,.multicatch-species-main>label:nth-child(2){grid-column:1/-1}
    .multicatch-remove-species{grid-column:2;grid-row:1;justify-self:end}
    .multicatch-photo-preview,.multicatch-photo-grid{grid-template-columns:1fr 1fr}
    .multicatch-live-summary{grid-template-columns:1fr}
    .multicatch-live-summary span,.multicatch-live-summary span:last-child{grid-column:auto}
    input[type="checkbox"]{width:17px!important;height:17px!important;min-width:17px!important;max-width:17px!important;min-height:17px!important;max-height:17px!important;flex-basis:17px!important}
}

/* V3.16.0 — Administration / Santé du système */
.system-health-layout{display:grid;gap:18px}.system-health-summary{display:flex;align-items:center;justify-content:space-between;gap:22px}.system-health-summary-main{display:flex;align-items:center;gap:16px;min-width:0}.system-health-summary h2{margin:3px 0 5px}.system-health-summary p{margin:0}.system-health-overall-icon,.system-health-status-icon{display:grid;place-items:center;flex:0 0 auto;border:1px solid var(--line);font-weight:950}.system-health-overall-icon{width:58px;height:58px;border-radius:18px;font-size:28px}.system-health-summary-ok .system-health-overall-icon,.system-health-row.is-ok .system-health-status-icon{border-color:rgba(71,190,112,.58);color:#8ee5aa;background:rgba(71,190,112,.10)}.system-health-summary-warning .system-health-overall-icon,.system-health-row.is-warning .system-health-status-icon{border-color:rgba(242,185,0,.58);color:#ffe39a;background:rgba(242,185,0,.10)}.system-health-summary-error .system-health-overall-icon,.system-health-row.is-error .system-health-status-icon{border-color:rgba(226,77,77,.62);color:#ff9a9a;background:rgba(226,77,77,.10)}.system-health-row.is-info .system-health-status-icon{border-color:rgba(90,185,255,.48);color:#9fd8ff;background:rgba(90,185,255,.09)}.system-health-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.system-health-metric{padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.system-health-metric span,.system-health-metric strong,.system-health-metric small{display:block}.system-health-metric span{color:var(--muted);font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.system-health-metric strong{margin:5px 0 2px;font-size:32px;line-height:1;color:var(--cream)}.system-health-metric small{color:var(--muted)}.system-health-metric.is-ok{border-color:rgba(71,190,112,.28)}.system-health-metric.is-warning{border-color:rgba(242,185,0,.28)}.system-health-metric.is-error{border-color:rgba(226,77,77,.28)}.system-health-metric.is-info{border-color:rgba(90,185,255,.25)}.system-health-heading{margin-bottom:14px}.system-health-list{display:grid;gap:9px}.system-health-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:13px;align-items:start;padding:13px 14px;border:1px solid rgba(255,255,255,.07);border-radius:14px;background:var(--surface-2)}.system-health-status-icon{width:32px;height:32px;border-radius:10px;font-size:16px}.system-health-copy{min-width:0}.system-health-row-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.system-health-row-title strong{color:var(--cream)}.system-health-row p{margin:5px 0 0;color:var(--muted);font-size:13px;overflow-wrap:anywhere}.system-health-badge{display:inline-flex;align-items:center;min-height:24px;padding:4px 8px;border:1px solid var(--line);border-radius:999px;font-size:9px;font-weight:950;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}.system-health-badge.is-ok{border-color:rgba(71,190,112,.45);color:#8ee5aa}.system-health-badge.is-warning{border-color:rgba(242,185,0,.45);color:#ffe39a}.system-health-badge.is-error{border-color:rgba(226,77,77,.5);color:#ff9a9a}.system-health-badge.is-info{border-color:rgba(90,185,255,.42);color:#9fd8ff}.system-health-note p{margin-bottom:0}.system-health-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:16px}
@media(max-width:850px){.system-health-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.system-health-summary{align-items:flex-start;flex-direction:column}.system-health-summary>.button{width:100%;text-align:center}}
@media(max-width:520px){.system-health-metrics{grid-template-columns:1fr 1fr;gap:8px}.system-health-metric{padding:13px}.system-health-metric strong{font-size:27px}.system-health-row{padding:11px}.system-health-row-title{align-items:flex-start;flex-direction:column;gap:6px}.system-health-summary-main{align-items:flex-start}.system-health-overall-icon{width:48px;height:48px;border-radius:15px;font-size:24px}.system-health-actions{display:grid;grid-template-columns:1fr}.system-health-actions .button{width:100%;text-align:center}}

/* V3.16.0.2 — actions du résumé Santé du système. */
.system-health-summary>.system-health-actions{margin-top:0;justify-content:flex-end}
@media(max-width:850px){.system-health-summary>.system-health-actions{width:100%;justify-content:stretch}.system-health-summary>.system-health-actions .button{flex:1;text-align:center}}
@media(max-width:520px){.system-health-summary>.system-health-actions .button{width:100%}}

/* V3.16.2 — sauvegardes vérifiées et rotation */
.backup-retention-form{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.backup-retention-form label{display:grid;gap:5px;min-width:120px}.backup-retention-form label span{font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.backup-retention-form input{width:120px}.backup-integrity{font-weight:700}.backup-integrity.is-protected{color:#76d99a}.backup-integrity.is-legacy{color:var(--muted)}.access-alert.info{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
@media (max-width:760px){.backup-retention-form{width:100%;display:grid;grid-template-columns:1fr 1fr}.backup-retention-form label,.backup-retention-form input{width:100%}.backup-retention-form .button{grid-column:1/-1;width:100%}.backup-actions{grid-template-columns:1fr 1fr}}

/* V3.16.5 — Journal technique */
.technical-log-page{display:grid;gap:18px}.technical-log-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:22px}.technical-log-intro h2{margin:4px 0 6px}.technical-log-intro p{margin:0;color:var(--muted);max-width:820px}.technical-log-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.technical-log-metric{padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.technical-log-metric span,.technical-log-metric strong,.technical-log-metric small{display:block}.technical-log-metric span{font-size:10px;font-weight:900;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.technical-log-metric strong{margin:5px 0 2px;font-size:28px;line-height:1;color:var(--cream)}.technical-log-metric small{color:var(--muted)}.technical-log-metric.is-critical{border-color:rgba(226,77,77,.48)}.technical-log-metric.is-error{border-color:rgba(255,117,77,.38)}.technical-log-metric.is-warning{border-color:rgba(242,185,0,.34)}.technical-log-filters{display:grid;gap:12px}.technical-log-list{display:grid;gap:9px}.technical-log-row{padding:0;overflow:hidden}.technical-log-row>summary{display:grid;grid-template-columns:auto minmax(220px,1.5fr) minmax(140px,.75fr) minmax(90px,.45fr);gap:10px;align-items:center;padding:13px 14px;cursor:pointer;list-style:none}.technical-log-row>summary::-webkit-details-marker{display:none}.technical-log-row>summary:hover{background:rgba(255,255,255,.025)}.technical-log-row[open]>summary{border-bottom:1px solid var(--line)}.technical-log-level{display:inline-grid;place-items:center;min-width:72px;padding:5px 8px;border-radius:999px;font-size:9px;font-weight:950;letter-spacing:.04em;text-transform:uppercase;background:rgba(255,255,255,.08)}.technical-log-level.is-critical{background:rgba(226,77,77,.18);color:#ff9a9a}.technical-log-level.is-error{background:rgba(255,117,77,.14);color:#ffb19b}.technical-log-level.is-warning{background:rgba(242,185,0,.14);color:#ffe39a}.technical-log-level.is-info{background:rgba(90,185,255,.14);color:#a9dcff}.technical-log-detail{display:grid;gap:14px;padding:15px}.technical-log-context h3{margin:0 0 6px;font-size:12px}.technical-log-context pre{max-height:460px;margin:0;padding:10px;overflow:auto;border:1px solid var(--line);border-radius:10px;background:#080906;color:#dfe6d7;font-size:10px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.technical-log-heading h2{margin:4px 0 0}.technical-log-heading p{margin:5px 0 0;color:var(--muted)}
@media(max-width:900px){.technical-log-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.technical-log-intro{flex-direction:column}.technical-log-intro>.system-health-actions{width:100%}.technical-log-row>summary{grid-template-columns:auto 1fr}.technical-log-row>summary span:nth-last-child(-n+2){grid-column:1/-1;font-size:10px}}
@media(max-width:560px){.technical-log-metrics{grid-template-columns:1fr 1fr;gap:8px}.technical-log-metric{padding:13px}.technical-log-metric strong{font-size:24px}.technical-log-row>summary{padding:11px}.technical-log-meta{grid-template-columns:1fr 1fr}.technical-log-intro>.system-health-actions{display:grid;grid-template-columns:1fr;width:100%}.technical-log-intro>.system-health-actions .button{width:100%;text-align:center}}

/* V3.17.2 — Multi-prises liées à Session Live */
.multicatch-session-banner,.multicatch-session-linked-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:1rem;align-items:center;padding:1rem 1.05rem;border:1px solid rgba(246,201,0,.38);border-radius:16px;background:linear-gradient(135deg,rgba(246,201,0,.10),rgba(246,201,0,.025));color:var(--cream)}
.multicatch-session-banner-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:13px;background:var(--yellow);color:#111;font-size:1.35rem;box-shadow:0 8px 24px rgba(246,201,0,.12)}
.multicatch-session-banner>div:nth-child(2),.multicatch-session-linked-card>div{display:grid;gap:.22rem;min-width:0}
.multicatch-session-banner .eyebrow,.multicatch-session-linked-card .eyebrow{margin:0;color:var(--yellow)}
.multicatch-session-banner strong,.multicatch-session-linked-card h2{margin:0;color:var(--cream)}
.multicatch-session-banner small,.multicatch-session-banner p,.multicatch-session-linked-card p,.multicatch-session-linked-card small{margin:0;color:var(--muted);line-height:1.45}
.multicatch-session-linked-card{margin-bottom:1rem}
.multicatch-live-summary [data-rate-summary]{border-color:rgba(246,201,0,.35);background:rgba(246,201,0,.07)}
.event-detail{display:block;margin-top:.28rem;max-width:320px;color:var(--muted);font-size:.72rem;line-height:1.35}
.event-badge.multicatch{border-color:rgba(246,201,0,.45);background:rgba(246,201,0,.10);color:var(--yellow)}
@media(max-width:700px){.multicatch-session-banner,.multicatch-session-linked-card{grid-template-columns:42px minmax(0,1fr);padding:.85rem;gap:.75rem}.multicatch-session-banner>.button,.multicatch-session-linked-card>.button{grid-column:1/-1;width:100%;justify-content:center}.multicatch-session-banner-icon{width:42px;height:42px}.multicatch-pro-form.is-session-linked .multicatch-live-summary{position:sticky;bottom:max(8px,env(safe-area-inset-bottom));z-index:12;padding:.55rem;border:1px solid rgba(246,201,0,.3);border-radius:14px;background:rgba(10,11,8,.94);backdrop-filter:blur(8px);box-shadow:0 10px 28px rgba(0,0,0,.28)}}

/* V3.17.2 — détail des prises issues des multi-prises dans les lignes Session Live */
.rod-main-count small{display:block;margin-top:.18rem;color:var(--muted);font-size:.68rem;font-weight:700;line-height:1.3}

/* V3.19.0 — Centre de retours, suggestions, roadmap participative et pack support */
.feedback-hero .container,.roadmap-hero .container{display:grid;gap:10px}.feedback-hero p,.roadmap-hero p{max-width:880px;margin:0;color:var(--muted);line-height:1.65}.feedback-layout,.roadmap-layout,.support-center-layout{display:grid;gap:18px}.feedback-action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.feedback-action-card{display:grid;gap:8px;padding:20px;text-decoration:none;color:inherit;transition:transform .16s ease,border-color .16s ease,background .16s ease}.feedback-action-card:hover{transform:translateY(-2px);border-color:rgba(246,201,0,.6);background:rgba(246,201,0,.045)}.feedback-action-card strong{font-size:1.08rem;color:var(--cream)}.feedback-action-card span{color:var(--muted);line-height:1.5}.feedback-kpi-grid,.support-overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.feedback-kpi,.support-kpi{padding:17px 18px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.feedback-kpi span,.feedback-kpi strong,.feedback-kpi small,.support-kpi span,.support-kpi strong,.support-kpi small{display:block}.feedback-kpi span,.support-kpi span{font-size:.66rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.feedback-kpi strong,.support-kpi strong{margin:.32rem 0 .18rem;font-size:1.8rem;line-height:1;color:var(--yellow)}.feedback-kpi small,.support-kpi small{color:var(--muted)}.feedback-section{padding:20px}.feedback-list{display:grid;gap:10px}.feedback-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 16px;align-items:center;padding:14px 15px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.018);color:inherit;text-decoration:none}.feedback-row:hover:not(.static){border-color:rgba(246,201,0,.42);background:rgba(246,201,0,.03)}.feedback-row h3{margin:0 0 4px;font-size:.98rem}.feedback-row p,.feedback-row small{margin:0;color:var(--muted);line-height:1.45}.feedback-empty{padding:18px;border:1px dashed var(--line);border-radius:14px;color:var(--muted);text-align:center}.feedback-admin-reply{grid-column:1/-1;padding:10px 12px;border-left:3px solid var(--yellow);border-radius:8px;background:rgba(246,201,0,.055);line-height:1.5}.feedback-two-columns{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,.65fr);gap:18px;align-items:start}.suggestion-form-panel,.suggestion-guide{padding:22px}.suggestion-form-panel h2,.suggestion-guide h2{margin:.3rem 0 .8rem}.suggestion-guide{display:grid;gap:12px}.suggestion-guide ul{margin:0;padding-left:1.2rem;color:var(--muted);line-height:1.6}.suggestion-status,.academy-feedback-status,.roadmap-status,.roadmap-category{display:inline-flex;align-items:center;width:max-content;padding:5px 8px;border:1px solid var(--line);border-radius:999px;font-size:.62rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.suggestion-status.status-new,.suggestion-status.status-reviewing{border-color:rgba(90,185,255,.4);color:#a9dcff}.suggestion-status.status-accepted,.suggestion-status.status-planned,.suggestion-status.status-in_progress{border-color:rgba(246,201,0,.45);color:var(--yellow)}.suggestion-status.status-delivered{border-color:rgba(76,190,120,.45);color:#8ee6ad}.suggestion-status.status-rejected,.suggestion-status.status-closed{color:var(--muted)}.academy-feedback-status.status-open{color:#ffcf70}.academy-feedback-status.status-resolved{color:#8ee6ad}.feedback-roadmap-link{display:grid;gap:8px;padding:14px;border:1px solid rgba(246,201,0,.38);border-radius:14px;background:rgba(246,201,0,.045)}
.roadmap-vote-legend{display:flex;gap:12px 18px;align-items:center;flex-wrap:wrap;padding:14px 16px}.roadmap-vote-legend strong{color:var(--cream)}.roadmap-vote-legend span{color:var(--muted);font-size:.83rem}.roadmap-group{display:grid;gap:12px}.roadmap-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.roadmap-card{display:grid;gap:13px;padding:19px;border-left:3px solid var(--line)}.roadmap-card.status-in_progress{border-left-color:#59b9ff}.roadmap-card.status-testing{border-left-color:#9b8cff}.roadmap-card.status-planned{border-left-color:var(--yellow)}.roadmap-card.status-delivered{border-left-color:#4cbe78}.roadmap-card>header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.roadmap-card h3{margin:5px 0 0;font-size:1.08rem}.roadmap-category{color:var(--yellow);border-color:rgba(246,201,0,.34)}.roadmap-summary{margin:0;color:var(--cream);line-height:1.55}.roadmap-details{padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.018)}.roadmap-details summary{cursor:pointer;font-weight:850}.roadmap-details div{padding-top:9px;color:var(--muted);line-height:1.55}.roadmap-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.roadmap-meta span{display:grid;gap:2px;padding:9px 10px;border-radius:10px;background:rgba(255,255,255,.025);color:var(--muted);font-size:.78rem}.roadmap-meta b{color:var(--cream);font-size:.64rem;text-transform:uppercase;letter-spacing:.05em}.roadmap-vote-bars{display:flex;gap:8px;flex-wrap:wrap}.roadmap-vote-bars span{padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.04);font-size:.72rem;color:var(--muted)}.roadmap-votes{display:flex;gap:8px;flex-wrap:wrap;padding-top:3px}.roadmap-vote{display:inline-flex;align-items:center;gap:5px;padding:8px 10px;border:1px solid var(--line);border-radius:11px;background:#10110e;color:var(--cream);cursor:pointer}.roadmap-vote:hover,.roadmap-vote.is-selected{border-color:var(--yellow);background:rgba(246,201,0,.09)}.roadmap-vote span{font-size:1rem}.roadmap-vote strong{font-size:.7rem}.roadmap-vote.remove{color:var(--muted)}.roadmap-admin-list{display:grid;gap:9px}.roadmap-admin-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;padding:13px;border:1px solid var(--line);border-radius:12px;text-decoration:none;color:inherit}.roadmap-admin-row.active,.roadmap-admin-row:hover{border-color:rgba(246,201,0,.46);background:rgba(246,201,0,.035)}.roadmap-admin-row h3{margin:0 0 3px}.roadmap-admin-row p{margin:0;color:var(--muted)}.roadmap-visible-check{align-items:center}.suggestion-roadmap-promote{margin-top:15px;padding-top:15px;border-top:1px solid var(--line)}
.support-export-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;padding:24px;border-color:rgba(246,201,0,.42);background:linear-gradient(135deg,rgba(246,201,0,.07),rgba(255,255,255,.012))}.support-export-card h2{margin:.3rem 0 .5rem}.support-export-card p{margin:0;color:var(--muted);line-height:1.58}.support-safety-note{display:flex;gap:10px;align-items:flex-start;margin-top:14px;padding:11px 12px;border:1px solid rgba(76,190,120,.3);border-radius:11px;background:rgba(76,190,120,.055)}.support-safety-note strong{white-space:nowrap;color:#8ee6ad}.support-safety-note span{color:var(--muted);font-size:.8rem;line-height:1.45}.support-export-button{min-height:52px;white-space:nowrap}.support-report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.support-report-grid>div{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.018)}.support-report-grid small{color:var(--muted);line-height:1.4}.support-links{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:900px){.feedback-action-grid{grid-template-columns:1fr}.feedback-kpi-grid,.support-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.feedback-two-columns,.support-export-card{grid-template-columns:1fr}.roadmap-grid{grid-template-columns:1fr}.support-export-button{width:100%}.support-export-card form{width:100%}}
@media(max-width:600px){.feedback-kpi-grid,.support-overview-grid{grid-template-columns:1fr 1fr;gap:8px}.feedback-kpi,.support-kpi{padding:13px}.feedback-row{grid-template-columns:1fr}.feedback-section,.suggestion-form-panel,.suggestion-guide,.roadmap-card,.support-export-card{padding:15px}.roadmap-card>header{display:grid}.roadmap-meta{grid-template-columns:1fr}.roadmap-votes{display:grid;grid-template-columns:1fr 1fr}.roadmap-vote{justify-content:center}.roadmap-vote.remove{grid-column:1/-1}.support-report-grid{grid-template-columns:1fr}.support-safety-note{display:grid}.support-links{display:grid;grid-template-columns:1fr}.support-links .button{width:100%;justify-content:center}.roadmap-vote-legend{display:grid}.feedback-hero .hero-actions,.roadmap-hero .hero-actions{display:grid;grid-template-columns:1fr}.feedback-hero .button,.roadmap-hero .button{width:100%;justify-content:center}}

/* =========================================================
   CARP SESSION V3.19.2.0 — accueil personnel en priorité
   ========================================================= */
.dashboard-personal-first{padding-top:16px}
.dashboard-personal-first .dashboard-overview-card{border-color:rgba(245,180,0,.34);background:linear-gradient(145deg,rgba(245,180,0,.055),rgba(255,255,255,.018))}
.dashboard-home-shortcuts{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-top:12px}
.dashboard-home-shortcut{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:10px;align-items:center;min-width:0;padding:13px 14px;border:1px solid var(--line);border-radius:15px;background:var(--surface-2);transition:transform .18s ease,border-color .18s ease,background .18s ease}
.dashboard-home-shortcut:hover{transform:translateY(-2px);border-color:rgba(245,180,0,.58);background:rgba(245,180,0,.045)}
.dashboard-home-shortcut>span{grid-row:1/3;display:grid;width:38px;height:38px;place-items:center;border:1px solid rgba(245,180,0,.2);border-radius:12px;background:rgba(245,180,0,.06);font-size:19px}
.dashboard-home-shortcut strong{overflow:hidden;color:var(--cream);font-size:12px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}
.dashboard-home-shortcut small{overflow:hidden;margin-top:2px;color:var(--muted);font-size:9px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}
.dashboard-home-shortcut.is-primary{border-color:rgba(245,180,0,.58);background:rgba(245,180,0,.075)}
.dashboard-home-shortcut.is-primary>span{color:#0a0b08;background:var(--yellow);border-color:var(--yellow);font-weight:950}
.dashboard-today-section{padding-top:22px}
.dashboard-activity-section{padding-top:10px;padding-bottom:18px}
.dashboard-academy-section{padding-top:28px}
@media(max-width:1180px){.dashboard-home-shortcuts{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){
  .dashboard-personal-first{padding-top:8px}
  .dashboard-home-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .dashboard-home-shortcut{padding:11px}.dashboard-home-shortcut>span{width:34px;height:34px;font-size:17px}
}
@media(max-width:430px){
  .dashboard-home-shortcuts{grid-template-columns:1fr}
  .dashboard-home-shortcut strong,.dashboard-home-shortcut small{white-space:normal}
}


/* =========================================================
   CARP SESSION V3.19.4.0 — suggestion #8 : retour en haut
   ========================================================= */
.back-to-top{
  position:fixed;z-index:1250;left:max(18px,env(safe-area-inset-left));bottom:22px;
  display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:52px;height:46px;padding:0 14px;
  border:1px solid rgba(246,201,0,.55);border-radius:999px;background:rgba(10,11,8,.94);color:var(--cream);
  box-shadow:0 10px 28px rgba(0,0,0,.38);backdrop-filter:blur(10px);font:inherit;font-weight:900;cursor:pointer;
  transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease
}
.back-to-top[hidden]{display:none!important}
.back-to-top>span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--yellow);color:#111;font-size:18px;line-height:1}
.back-to-top>b{font-size:12px;letter-spacing:.02em}
.back-to-top:hover{transform:translateY(-2px);border-color:var(--yellow);background:#10110e;box-shadow:0 13px 32px rgba(0,0,0,.46)}
.back-to-top:focus-visible{outline:3px solid rgba(246,201,0,.34);outline-offset:3px}
@media(max-width:760px){
  .back-to-top{left:max(12px,env(safe-area-inset-left));bottom:calc(78px + env(safe-area-inset-bottom));width:46px;min-width:46px;height:46px;padding:0;border-radius:50%}
  .back-to-top>b{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  .back-to-top>span{width:28px;height:28px;font-size:20px}
}
@media(prefers-reduced-motion:reduce){.back-to-top{transition:none}}

/* V3.22.0 — alerte horaire légale globale (Session Live / proximité) */
.legal-fishing-alert-toast{position:fixed;z-index:1600;right:max(16px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 14px;width:min(520px,calc(100vw - 32px));padding:15px 16px;border:1px solid rgba(246,201,0,.58);border-radius:15px;background:rgba(10,11,8,.97);box-shadow:0 16px 42px rgba(0,0,0,.45);backdrop-filter:blur(12px);opacity:0;pointer-events:none;transform:translateY(18px);transition:opacity .2s ease,transform .2s ease;color:var(--cream)}
.legal-fishing-alert-toast.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}.legal-fishing-alert-toast strong{grid-column:1/-1;font-size:.92rem}.legal-fishing-alert-toast span{color:var(--muted);font-size:.78rem;line-height:1.45}.legal-fishing-alert-toast a{align-self:center;color:var(--yellow);font-size:.74rem;font-weight:900;text-decoration:none;white-space:nowrap}.legal-fishing-alert-toast a:hover{text-decoration:underline}
@media(max-width:620px){.legal-fishing-alert-toast{right:12px;bottom:calc(76px + env(safe-area-inset-bottom));width:calc(100vw - 24px);grid-template-columns:1fr}.legal-fishing-alert-toast strong,.legal-fishing-alert-toast span,.legal-fishing-alert-toast a{grid-column:1}.legal-fishing-alert-toast a{margin-top:5px}}
@media(prefers-reduced-motion:reduce){.legal-fishing-alert-toast{transition:none}}
