:root{
    --ink:#122B3D; --ink-soft:#4C6577; --chalk:#F6F8F4; --chalk-dim:#EAEEE6;
    --mint:#B9F3E2; --mint-deep:#12B892; --blue:#2E6FF2; --blue-deep:#1F4FC4; --blue-pale:#E1EAFD;
    --white:#FFFFFF; --red:#D64545; --red-pale:#FDECEC; --gold:#E8A93B;
    --line: rgba(18,43,61,0.13); --radius:14px; --shadow:0 10px 30px rgba(18,43,61,0.08);
    --display:'Bebas Neue', sans-serif; --body:'Inter', sans-serif;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{margin:0; min-height:100vh; font-family:var(--body); background:var(--chalk); color:var(--ink); line-height:1.5;}
  a{color:inherit; cursor:pointer;}

  .btn{display:inline-flex; align-items:center; justify-content:center; padding:11px 20px; border-radius:999px; font-weight:700; font-size:14px; border:none; cursor:pointer; text-decoration:none; transition:transform .15s, box-shadow .15s; white-space:nowrap;}
  .btn:active{transform:scale(0.97);}
  .btn-primary{background:var(--ink); color:var(--chalk);}
  .btn-primary:hover{box-shadow:0 8px 20px rgba(18,43,61,0.25); transform:translateY(-2px);}
  .btn-accent{background:var(--blue); color:var(--white);}
  .btn-accent:hover{box-shadow:0 8px 20px rgba(46,111,242,0.35); transform:translateY(-2px);}
  .btn-ghost{background:transparent; color:var(--ink); border:1.5px solid var(--line);}
  .btn-ghost:hover{border-color:var(--ink); transform:translateY(-1px);}
  .btn-danger{background:var(--red-pale); color:var(--red);}
  .btn-danger:hover{box-shadow:0 6px 16px rgba(214,69,69,0.25);}
  .btn-sm{padding:8px 15px; font-size:13px;}
  .btn-block{width:100%;}
  .btn:disabled{opacity:0.55; cursor:not-allowed;}

  /* TOPBAR */
  .topbar{display:flex; align-items:center; gap:16px; padding:14px 24px; border-bottom:1px solid var(--line); flex-wrap:wrap; background:var(--white); position:sticky; top:0; z-index:20;}
  .logo{font-family:var(--display); font-size:26px; flex-shrink:0;}
  .logo span{color:var(--blue);}
  .search-filters{display:flex; gap:10px; flex:1; min-width:240px; flex-wrap:wrap;}
  .app-search{flex:1; min-width:160px; display:flex; align-items:center; gap:8px; background:var(--chalk); border:1.5px solid var(--line); border-radius:999px; padding:10px 16px;}
  .app-search input{border:none; background:transparent; outline:none; font-family:var(--body); font-size:14px; width:100%;}
  .icon-btn{width:38px; height:38px; border-radius:50%; border:1.5px solid var(--line); background:var(--white); cursor:pointer; font-size:16px; display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:border-color .15s;}
  .icon-btn:hover{border-color:var(--blue);}
  .app-plus{width:40px; height:40px; border-radius:50%; background:var(--blue); color:var(--white); border:none; font-size:20px; font-weight:700; cursor:pointer; flex-shrink:0; display:flex; align-items:center; justify-content:center; transition:transform .15s, box-shadow .15s;}
  .app-plus:hover{box-shadow:0 6px 16px rgba(46,111,242,0.4);}
  select.filter-select{padding:9px 14px; border-radius:999px; border:1.5px solid var(--line); background:var(--white); font-family:var(--body); font-size:13px; font-weight:600; color:var(--ink-soft);}
  .auth-area{display:flex; align-items:center; gap:8px; flex-shrink:0;}
  .app-pseudo{font-size:13px; font-weight:700; cursor:pointer; padding:8px 14px; border-radius:999px; background:var(--chalk); transition:background .15s;}
  .app-pseudo:hover{background:var(--blue-pale);}
  .app-city{font-size:13px; color:var(--ink-soft); white-space:nowrap;}

  .feed-header{padding:64px 24px 16px; max-width:1080px; margin:0 auto; position:relative;}
  .feed-header h1{font-family:var(--display); font-size:clamp(44px,6vw,64px); margin:0 0 12px; position:relative; display:inline-block;}
  .feed-header h1::after{content:""; position:absolute; left:2px; bottom:6px; width:64px; height:10px; background:var(--mint); z-index:-1; border-radius:3px;}
  .feed-header h1 span{color:var(--blue);}
  .feed-header p{font-size:16px; color:var(--ink-soft); margin:0; max-width:56ch;}

  .fallback-banner{max-width:1080px; margin:18px auto 0; padding:12px 16px; background:var(--blue-pale); border-radius:12px; font-size:13px; color:var(--ink); display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap;}

  .feed{padding:22px 24px 48px; display:grid; grid-template-columns:repeat(3,1fr); gap:16px; max-width:1080px; margin:0 auto;}
  .activity-card{background:var(--white); border:1.5px solid var(--line); border-radius:var(--radius); padding:18px; transition:border-color .18s, transform .18s, box-shadow .18s; cursor:pointer; position:relative;}
  .activity-card:hover{border-color:var(--blue); transform:translateY(-4px); box-shadow:0 16px 32px rgba(18,43,61,0.12);}
  .reco-badge{position:absolute; top:-9px; left:14px; background:var(--mint-deep); color:var(--white); font-size:10px; font-weight:800; padding:3px 9px; border-radius:999px;}
  .cert-badge{position:absolute; top:-9px; right:14px; background:var(--blue); color:var(--white); font-size:10px; font-weight:800; padding:3px 9px; border-radius:999px;}
  .activity-card-tournoi{border-color:var(--red); background:var(--red-pale);}
  .activity-card-tournoi:hover{border-color:var(--red); box-shadow:0 16px 32px rgba(214,69,69,0.18);}
  .tournoi-badge{background:var(--red);}
  .activity-card .row1{display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:10px;}
  .activity-card .sport{font-family:var(--display); font-size:23px;}
  .tag{font-size:11px; font-weight:800; padding:4px 10px; border-radius:999px; white-space:nowrap;}
  .tag-open{background:var(--mint); color:var(--ink);}
  .tag-full{background:var(--chalk-dim); color:var(--ink-soft);}
  .tag-joined{background:var(--blue-pale); color:var(--blue-deep);}
  .activity-meta{font-size:13px; color:var(--ink-soft); margin-bottom:4px; display:flex; gap:6px; align-items:center;}
  .activity-foot{display:flex; justify-content:space-between; align-items:center; margin-top:14px;}
  .spots{font-size:13px; font-weight:700;}
  .empty-feed{grid-column:1/-1; text-align:center; padding:56px 20px; color:var(--ink-soft); font-size:14px; background:var(--white); border:1.5px dashed var(--line); border-radius:var(--radius);}
  .empty-emoji{font-size:40px; margin-bottom:10px;}
  .empty-feed h3{font-family:var(--display); font-size:24px; color:var(--ink); margin:0 0 6px; font-weight:400; letter-spacing:0.3px;}
  .empty-feed p{margin:0 0 18px;}

  /* MODALS */
  .modal-overlay{display:none; position:fixed; inset:0; background:rgba(18,43,61,0.4); backdrop-filter:blur(2px); align-items:center; justify-content:center; padding:20px; z-index:100;}
  .modal-overlay.active{display:flex;}
  .modal{background:var(--white); border-radius:18px; padding:30px; width:100%; max-width:440px; max-height:90vh; overflow:auto; position:relative; box-shadow:0 24px 60px rgba(18,43,61,0.25);}
  .modal.wide{max-width:760px;}
  .modal h3{font-family:var(--display); font-size:26px; margin:0 0 6px; padding-right:20px;}
  .modal-row2{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
  .modal-close{position:absolute; top:20px; right:20px; background:none; border:none; font-size:20px; cursor:pointer; color:var(--ink-soft);}

  .field{margin-bottom:14px;}
  .field label{display:block; font-size:13px; font-weight:700; margin-bottom:6px;}
  .field input, .field select, .field textarea{width:100%; padding:12px 14px; border-radius:10px; border:1.5px solid var(--line); font-family:var(--body); font-size:14px; background:var(--chalk);}
  .field textarea{resize:vertical; min-height:70px;}
  .field input:focus, .field select:focus, .field textarea:focus{outline:2px solid var(--blue); outline-offset:1px; border-color:var(--blue);}
  .field-hint{font-size:12px; color:var(--ink-soft); margin-top:6px;}

  .interest-grid{display:flex; flex-wrap:wrap; gap:8px; margin-top:6px;}
  .interest-chip{padding:6px 13px; border-radius:999px; border:1.5px solid var(--line); font-size:12px; font-weight:600; cursor:pointer; user-select:none; background:var(--chalk); transition:all .12s;}
  .interest-chip.selected{background:var(--mint); border-color:var(--mint-deep); color:var(--ink);}

  .auth-tabs{display:flex; gap:6px; background:var(--chalk); border-radius:999px; padding:4px; margin-bottom:20px;}
  .auth-tab{flex:1; text-align:center; padding:9px; border-radius:999px; font-size:13px; font-weight:700; cursor:pointer; color:var(--ink-soft);}
  .auth-tab.active{background:var(--white); color:var(--ink); box-shadow:0 2px 6px rgba(18,43,61,0.1);}

  .form-error-banner{background:var(--red-pale); color:var(--red); font-size:13px; font-weight:600; border-radius:8px; padding:10px 12px; margin-bottom:14px; display:none;}
  .form-error-banner.active{display:block;}
  .form-error-banner.info{background:var(--blue-pale); color:var(--blue-deep);}
  .autocomplete-list{position:absolute; left:0; right:0; top:100%; margin-top:4px; background:var(--white); border:1.5px solid var(--line); border-radius:12px; box-shadow:var(--shadow); max-height:220px; overflow-y:auto; z-index:30; display:none;}
  .autocomplete-item{padding:10px 14px; font-size:13px; cursor:pointer; display:flex; justify-content:space-between; gap:8px;}
  .autocomplete-item:hover{background:var(--chalk);}
  .autocomplete-empty{padding:10px 14px; font-size:13px; color:var(--ink-soft);}
  .demo-hint{font-size:12px; color:var(--ink-soft); background:var(--chalk); border-radius:8px; padding:10px 12px; margin-top:14px;}
  .demo-hint b{color:var(--ink);}

  .detail-sport{font-family:var(--display); font-size:32px; margin-bottom:6px;}
  .detail-meta{font-size:14px; color:var(--ink-soft); margin-bottom:8px; display:flex; gap:8px; align-items:center;}
  .detail-organizer{font-size:13px; color:var(--ink-soft); margin:16px 0 6px; padding-top:16px; border-top:1px solid var(--line);}
  .stars{color:var(--gold); font-size:13px; letter-spacing:1px;}
  .review-box{background:var(--chalk); border-radius:12px; padding:14px; margin-top:12px;}
  .review-box .field{margin-bottom:10px;}

  .profile-item{display:flex; gap:12px; padding:12px 0; border-bottom:1px solid var(--line);}
  .profile-item:last-child{border-bottom:none;}
  .profile-badge{flex-shrink:0; font-size:10px; font-weight:800; padding:4px 9px; border-radius:999px; height:fit-content; white-space:nowrap;}
  .profile-badge.created{background:var(--mint); color:var(--ink);}
  .profile-badge.joined{background:var(--blue-pale); color:var(--blue-deep);}
  .profile-item .info .sport{font-weight:800; font-size:14px;}
  .profile-item .info .meta{font-size:12px; color:var(--ink-soft);}
  .profile-empty{text-align:center; padding:20px 10px; color:var(--ink-soft); font-size:14px;}
  .profile-head{display:flex; align-items:center; gap:14px; margin-bottom:18px;}
  .profile-avatar{width:56px; height:56px; border-radius:50%; background:var(--blue-pale); color:var(--blue-deep); display:flex; align-items:center; justify-content:center; font-family:var(--display); font-size:24px; flex-shrink:0;}
  .profile-bio{font-size:13px; color:var(--ink-soft); margin:0 0 4px;}
  .section-label{font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:0.4px; color:var(--ink-soft); margin:18px 0 8px;}
  .review-item{padding:10px 0; border-bottom:1px solid var(--line); font-size:13px;}
  .review-item:last-child{border-bottom:none;}
  .review-item .top{display:flex; justify-content:space-between; align-items:center;}
  .auto-tag{font-size:10px; color:var(--ink-soft); font-style:italic;}

  #toast{position:fixed; bottom:24px; left:50%; transform:translateX(-50%) translateY(20px); background:var(--ink); color:var(--chalk); padding:13px 22px; border-radius:999px; font-size:14px; font-weight:600; opacity:0; pointer-events:none; transition:all .25s; z-index:200; box-shadow:0 10px 30px rgba(18,43,61,0.3);}
  #toast.show{opacity:1; transform:translateX(-50%) translateY(0);}

  /* ADMIN */
  #screen-admin{display:none; min-height:100vh;}
  .admin-topbar{display:flex; align-items:center; gap:16px; padding:14px 24px; border-bottom:1px solid var(--line); background:var(--ink); color:var(--chalk); flex-wrap:wrap;}
  .admin-topbar .logo{color:var(--chalk);}
  .admin-topbar .logo span{color:var(--mint);}
  .admin-topbar .btn-ghost{color:var(--chalk); border-color:rgba(246,248,244,0.4);}
  .admin-topbar .btn-ghost:hover{border-color:var(--chalk);}
  .admin-flag{background:var(--mint); color:var(--ink); font-size:11px; font-weight:800; padding:4px 10px; border-radius:999px;}
  .admin-layout{display:flex; align-items:flex-start; max-width:1240px; margin:0 auto;}
  .admin-sidebar{width:220px; flex-shrink:0; padding:20px 12px; position:sticky; top:0; align-self:flex-start;}
  .admin-nav-item{padding:12px 14px; border-radius:10px; font-size:14px; font-weight:700; cursor:pointer; color:var(--ink-soft); margin-bottom:4px;}
  .admin-nav-item:hover{background:var(--white);}
  .admin-nav-item.active{background:var(--blue-pale); color:var(--blue-deep);}
  .admin-content{flex:1; min-width:0; padding:20px 24px 48px;}
  .stat-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:16px; margin-bottom:8px;}
  .stat-card{background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:20px;}
  .stat-card .stat-value{font-family:var(--display); font-size:36px; color:var(--blue-deep); letter-spacing:.5px;}
  .stat-card.mint .stat-value{color:var(--mint-deep);}
  .stat-card .stat-label{font-size:13px; color:var(--ink-soft); font-weight:600; margin-top:4px;}
  .messages-layout{display:flex; height:calc(100vh - 61px);}
  .messages-list{width:320px; flex-shrink:0; border-right:1px solid var(--line); overflow-y:auto; background:var(--white);}
  .conversation-row{padding:14px 16px; border-bottom:1px solid var(--line); cursor:pointer;}
  .conversation-row:hover{background:var(--chalk);}
  .conversation-row.active{background:var(--blue-pale);}
  .conversation-row .subject{font-weight:700; font-size:14px;}
  .conversation-row .with{font-size:12px; color:var(--ink-soft); margin-top:2px;}
  .conversation-row .preview{font-size:12px; color:var(--ink-soft); margin-top:4px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
  .messages-thread{flex:1; display:flex; flex-direction:column; min-width:0;}
  .thread-header{padding:16px 20px; border-bottom:1px solid var(--line); background:var(--white);}
  .thread-messages{flex:1; overflow-y:auto; padding:20px; display:flex; flex-direction:column; gap:10px;}
  .message-bubble{max-width:70%; padding:10px 14px; border-radius:14px; background:var(--white); border:1px solid var(--line); font-size:13px; align-self:flex-start;}
  .message-bubble.mine{align-self:flex-end; background:var(--blue); color:var(--white); border-color:var(--blue);}
  .message-bubble .meta{font-size:10px; opacity:.7; margin-top:4px;}
  .thread-reply{padding:14px 20px; border-top:1px solid var(--line); display:flex; gap:10px; background:var(--white);}
  .thread-reply textarea{flex:1; resize:none; height:44px; border-radius:12px; border:1.5px solid var(--line); padding:10px 14px; font-family:var(--body); font-size:13px;}
  @media (max-width:720px){
    .messages-layout{flex-direction:column; height:auto;}
    .messages-list{width:100%; max-height:240px;}
  }
  .account-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:14px;}
  .account-card{background:var(--white); border:1.5px solid var(--line); border-radius:var(--radius); padding:16px; text-align:center; cursor:pointer; transition:border-color .18s, transform .18s;}
  .account-card:hover{border-color:var(--blue); transform:translateY(-2px);}
  .account-card .pseudo{font-weight:700; margin-top:8px;}
  .admin-search{margin-bottom:16px;}
  .admin-search input{width:100%; box-sizing:border-box; padding:10px 14px; border-radius:999px; border:1.5px solid var(--line); font-family:var(--body); font-size:13px;}
  .msg-badge{font-size:10px; font-weight:800; padding:3px 9px; border-radius:999px; margin-right:8px;}
  .msg-badge.contact{background:var(--blue-pale); color:var(--blue-deep);}
  .msg-badge.report{background:var(--red-pale); color:var(--red);}
  @media (max-width:720px){
    .admin-layout{flex-direction:column;}
    .admin-sidebar{width:100%; display:flex; gap:6px; overflow-x:auto; position:static; padding:12px;}
    .admin-nav-item{white-space:nowrap; margin-bottom:0;}
  }
  .admin-row{display:flex; align-items:center; justify-content:space-between; gap:12px; background:var(--white); border:1px solid var(--line); border-radius:12px; padding:14px 16px; margin-bottom:10px; flex-wrap:wrap;}
  .admin-row .info{font-size:13px; color:var(--ink-soft);}
  .admin-row .info b{color:var(--ink);}
  .banned-tag{background:var(--red-pale); color:var(--red); font-size:10px; font-weight:800; padding:3px 9px; border-radius:999px;}

  .nav-how{flex-shrink:0;}

  .how{background:var(--ink); color:var(--chalk); margin-top:32px;}
  .how-inner{max-width:1080px; margin:0 auto; padding:64px 24px;}
  .how h2{font-family:var(--display); font-size:clamp(30px,4vw,42px); margin:0 0 40px; letter-spacing:0.3px;}
  .how-steps{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
  .how-step{background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.08); border-radius:16px; padding:26px 22px; transition:transform .2s, background .2s;}
  .how-step:hover{transform:translateY(-6px); background:rgba(255,255,255,0.07);}
  .how-icon{position:relative; display:inline-flex; align-items:center; justify-content:center; width:56px; height:56px; border-radius:50%; background:rgba(185,243,226,0.12); font-size:26px;}
  .how-num{position:absolute; bottom:-6px; right:-6px; width:22px; height:22px; border-radius:50%; background:var(--mint); color:var(--ink); font-family:var(--display); font-size:13px; display:flex; align-items:center; justify-content:center;}
  .how-step h3{font-size:17px; margin:16px 0 6px;}
  .how-step p{font-size:14px; color:#9FB4C4; margin:0;}

  @media (max-width: 860px){
    .feed{grid-template-columns:1fr;}
    .topbar{gap:10px;}
    .search-filters{order:3; width:100%;}
    .auth-area{margin-left:auto;}
    .nav-how{order:4; width:100%;}
    .how-steps{grid-template-columns:1fr; gap:24px;}
  }

  /* ============================================================
     RESPONSIVE (ajout pur, ne modifie aucune règle existante ci-dessus —
     gagne par ordre de cascade grâce à sa position en fin de fichier)
     ============================================================ */
  html, body{overflow-x:hidden;}
  #messages-unread-dot{position:absolute; top:4px; right:4px; width:9px; height:9px; border-radius:50%; background:var(--red); border:2px solid var(--white);}

  @media (max-width:860px){
    .auth-area{flex-wrap:wrap; justify-content:flex-end; row-gap:8px;}
    .admin-topbar{gap:10px;}
    .admin-topbar .auth-area{flex-wrap:wrap;}
    .modal{padding:24px;}
    .account-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));}
  }

  @media (max-width:600px){
    .app-city{display:none;}
    .modal{padding:20px; border-radius:14px;}
    .modal h3{font-size:22px;}
    .modal-row2{grid-template-columns:1fr;}
    .feed-header{padding:40px 16px 12px;}
    .feed{padding:16px 16px 40px;}
    .how-inner{padding:40px 16px;}
    .admin-content{padding:16px;}
    .account-grid{grid-template-columns:repeat(2,1fr);}
    .stat-grid{grid-template-columns:1fr;}
    .icon-btn{width:42px; height:42px;}
    .app-plus{width:44px; height:44px;}
    .thread-header{padding:12px 14px;}
    .thread-messages{padding:14px;}
    .thread-reply{padding:10px 14px;}
    .message-bubble{max-width:85%;}
  }

  @media (max-width:430px){
    .topbar{padding:10px 14px;}
    .logo{font-size:22px;}
    .btn{padding:10px 16px; font-size:13px;}
    .search-filters{gap:8px;}
    .app-search input{font-size:13px;}
    select.filter-select{font-size:12px; padding:8px 12px;}
    .account-grid{grid-template-columns:1fr 1fr;}
    .modal{padding:16px;}
  }

  /* ============================================================
     RESPONSIVE v2 — vrai design mobile (écrit après tout ce qui
     précède : gagne par ordre de cascade, ne modifie aucune règle
     existante, ne s'applique qu'à <=720px sauf mention contraire)
     ============================================================ */

  /* filtres repliables : sur desktop, le wrapper est invisible pour le
     layout (display:contents) donc rien ne change visuellement */
  .filters-extra{display:contents;}
  .filters-toggle-btn{display:none;}
  .thread-back-btn{display:none;}

  @media (max-width:720px){
    /* ---- en-tête compact une rangée ---- */
    .nav-how{display:none;}
    .app-city{display:none;}
    .logout-btn-header{display:none;}
    .topbar{padding:10px 14px; gap:8px; row-gap:8px;}
    .logo{font-size:22px;}
    .auth-area{gap:6px;}
    .app-pseudo{max-width:88px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; display:inline-block; padding:8px 10px;}
    .icon-btn{width:40px; height:40px; font-size:15px;}
    .app-plus{width:42px; height:42px;}

    /* ---- recherche + filtres repliables ---- */
    .search-filters{gap:8px; margin-top:2px;}
    .app-search{min-width:0; flex:1 1 auto;}
    .filters-toggle-btn{display:inline-flex; flex-shrink:0;}
    .filters-extra{display:none; width:100%; flex-direction:column; gap:8px; margin-top:8px;}
    .filters-extra.open{display:flex;}
    .filters-extra .app-search{max-width:none !important;}

    /* ---- bandeau d'accueil resserré ---- */
    .feed-header{padding:18px 16px 6px;}
    .feed-header h1{font-size:32px; margin:0 0 4px;}
    .feed-header h1::after{width:38px; height:7px; bottom:3px;}
    .feed-header p{font-size:13px;}
    .fallback-banner{margin:10px 16px 0;}
    .feed{padding:12px 16px 32px; gap:14px;}
    .activity-card{padding:16px;}

    /* ---- modales quasi plein écran, cibles tactiles >=44px ---- */
    .modal-overlay{padding:8px;}
    .modal{width:100%; max-width:none; max-height:96vh; border-radius:16px; padding:18px;}
    .modal h3{font-size:22px;}
    .modal-close{width:42px; height:42px; display:flex; align-items:center; justify-content:center; font-size:22px; top:8px; right:8px;}
    .btn{min-height:44px;}
    .field input, .field select, .field textarea{min-height:44px;}
    .field textarea{min-height:84px;}

    /* ---- messagerie : une seule vue à la fois, plein écran ---- */
    .messages-layout{flex-direction:column; height:calc(100vh - 57px);}
    .messages-list{width:100%; max-height:none; flex:1; display:flex; flex-direction:column;}
    .messages-thread{display:none;}
    .messages-layout.thread-open .messages-list{display:none;}
    .messages-layout.thread-open .messages-thread{display:flex;}
    .thread-back-btn{display:flex; width:fit-content; margin-bottom:8px;}
    .thread-header{padding:10px 14px;}
    .thread-reply{padding:10px 14px;}
    .thread-reply textarea{min-height:44px; height:auto;}

    /* ---- admin : cartes en une colonne ---- */
    .account-grid{grid-template-columns:1fr;}
  }
