/* 35°C à l'école — feuille de styles (extraite de index.html, v1 étape 2). */
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:Arial,sans-serif;background:#f5f5f0;color:#222;height:100vh;height:100dvh;overflow:hidden;display:flex;flex-direction:column}

/* ── NAV ── */
nav{background:#1a1a2e;display:flex;flex-direction:column;flex-shrink:0;border-bottom:2px solid #e07b00;position:relative;z-index:100}
.nav-brand{color:#fff;padding:10px 16px;display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700}
.nav-brand span{font-size:18px}
.nav-ig{margin-left:auto;display:inline-flex;align-items:center;color:rgba(255,255,255,.82);text-decoration:none;padding:0 2px}
.nav-ig:hover{color:#fff}
.nav-tabs{display:flex;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.nav-tabs::-webkit-scrollbar{display:none}
.tab-btn{background:none;border:none;color:rgba(255,255,255,.6);padding:11px 16px;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;border-bottom:3px solid transparent;transition:all .15s;flex-shrink:0;-webkit-tap-highlight-color:rgba(224,123,0,.3);touch-action:manipulation}
.tab-btn:hover{color:#fff;background:rgba(255,255,255,.06)}
.tab-btn.active{color:#fff;border-bottom-color:#e07b00}
.tab-ico{margin-right:5px}      /* desktop : icône + libellé sur une ligne */
.t-short{display:none}          /* libellé court réservé au mobile */
@media(min-width:600px){
  nav{flex-direction:row;align-items:stretch}
  .nav-brand{border-right:1px solid rgba(255,255,255,.12)}
  .tab-btn{height:44px;padding:0 18px;font-size:13px}
}

/* ── PAGES ── */
.page{display:none;flex:1;flex-direction:column;min-height:0}
.page.active{display:flex;flex-direction:column}

/* ══════ PAGE MAP ══════ */
/* Bandeau de couverture (carte) — remplace l'ancienne légende + barre de stats */
.coverage-bar{background:#f0f4f8;border-bottom:1px solid #ddd;padding:8px 14px;display:flex;flex-direction:column;gap:7px;flex-shrink:0}
.cov-counts{font-size:12px;color:#1a1a2e;line-height:1.45}
.cov-counts .nw{white-space:nowrap}
.cov-counts b{color:#e07b00;font-weight:800}
.cov-counts .cov-temp-c b{color:#c0392b}
.cov-track{display:flex;width:100%;height:10px;border-radius:5px;overflow:hidden;background:#e3e8ee}
.cov-seg{height:100%}
.cov-chips{display:flex;gap:7px 14px;flex-wrap:wrap}
.cov-chip{display:flex;align-items:center;gap:5px;font-size:11px;color:#555}
.cov-chip b{color:#1a1a2e}
.map-controls{background:#fff;border-bottom:1px solid #ddd;padding:7px 12px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;flex-shrink:0}
.map-controls input{padding:5px 9px;border:1px solid #ccc;border-radius:4px;font-size:12px;width:190px}
.map-controls select{padding:5px 8px;border:1px solid #ccc;border-radius:4px;font-size:12px}
.btn{padding:5px 12px;border:none;border-radius:4px;cursor:pointer;font-size:12px;font-weight:600}
.btn-export{background:#2a9d5c;color:#fff}.btn-export:hover{background:#217a48}
.btn-tbl{background:#1a5fa8;color:#fff}.btn-tbl:hover{background:#14468a}
.map-wrap{flex:1;position:relative;overflow:hidden}
#map{width:100%;height:100%}

#loading{position:absolute;inset:0;background:rgba(255,255,255,.93);z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}
#loading-bar-wrap{width:260px;height:8px;background:#eee;border-radius:4px;overflow:hidden}
#loading-bar{height:100%;background:#2a9d5c;width:0%;transition:width .3s}

.dot{width:11px;height:11px;border-radius:50%;display:inline-block}
.dot-grey{background:#9aa0a6}.dot-blue{background:#1a5fa8}.dot-orange{background:#e07b00}.dot-green{background:#2a9d5c}.dot-red{background:#c0392b}

#info-panel{position:absolute;top:10px;right:10px;background:#fff;border-radius:8px;border:1px solid #ddd;box-shadow:0 2px 12px rgba(0,0,0,.12);width:234px;z-index:1000;display:none}
#info-panel.open{display:block}
.ip-header{background:#1a1a2e;color:#fff;padding:8px 11px;border-radius:8px 8px 0 0;display:flex;justify-content:space-between;align-items:flex-start}
.ip-name{font-size:12px;font-weight:600;line-height:1.3;max-width:186px}
.ip-link{margin-left:auto;margin-right:7px;font-size:12px;line-height:1;text-decoration:none;opacity:.5;flex-shrink:0;transition:opacity .15s}
.ip-link:hover{opacity:1}
.ip-close{cursor:pointer;opacity:.7;font-size:16px;line-height:1;flex-shrink:0}
.ip-close:hover{opacity:1}
.ip-body{padding:9px 11px}
.ip-row{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:6px;font-size:11px;gap:8px}
.ip-lbl{color:#888;white-space:nowrap}.ip-val{font-weight:600;text-align:right}
.ip-update{display:block;margin-top:7px;font-size:11px;font-weight:600;color:#8a8f96;text-decoration:none}
.ip-update:hover{color:#1a5fa8}
.ip-detail{font-size:10px;max-width:150px}
#ip-email a{color:#1a5fa8;text-decoration:none;word-break:break-all}
#ip-email a:hover{text-decoration:underline}
.ip-grip{display:none}
.ip-title{display:inline-flex;align-items:baseline;gap:5px;flex-wrap:wrap;max-width:190px}
.ip-type-h{font-size:11px;font-weight:400;opacity:.72}
.ip-block{margin-top:10px;padding-top:10px;border-top:1px solid #eee}
.ip-temp-empty{color:#999;font-weight:400;font-style:italic;font-size:12px}
.ip-temp-val{color:#c0392b;font-weight:700;font-size:14px}
.ip-temp-meta{color:#999;font-weight:400;font-size:10px}
.ip-status-line{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:9px}
.ip-engage-msg{font-size:12px;font-weight:400;color:#555;line-height:1.3}
.ip-cta{display:block;text-align:center;background:#e07b00;color:#fff;text-decoration:none;font-weight:700;font-size:13px;padding:10px 12px;border-radius:6px;line-height:1.25}
.ip-cta:hover{background:#c46a00}
.ip-cta-2{display:block;text-align:center;margin-top:7px;background:#fff;color:#1a1a2e;border:1.5px solid #cbd2d9;text-decoration:none;font-weight:700;font-size:13px;padding:9px 12px;border-radius:6px;line-height:1.25}
.ip-cta-2:hover{background:#f4f6f8;border-color:#aab3bd}

/* table modal */
#table-view{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:2000;overflow-y:auto;padding:28px 14px}
#table-view.open{display:block}
.tbl-box{background:#fff;border-radius:8px;max-width:980px;margin:0 auto;padding:16px}
.tbl-title{font-size:14px;font-weight:700;margin-bottom:11px;display:flex;justify-content:space-between;align-items:center}
table{width:100%;border-collapse:collapse;font-size:12px}
th{background:#1a1a2e;color:#fff;padding:7px 9px;text-align:left;font-weight:500;white-space:nowrap}
td{padding:6px 9px;border-bottom:1px solid #eee;vertical-align:middle}
tr:hover td{background:#f5f9f5}
.badge{padding:2px 7px;border-radius:9px;font-size:10px;font-weight:700}
.bt{background:#e8f0fe;color:#1a4fa8}
/* Statuts pipeline (5 libellés) */
.st-grey{background:#eceff1;color:#555}
.st-blue{background:#e3eefb;color:#16467f}
.st-orange{background:#fff3cd;color:#854500}
.st-green{background:#d4edda;color:#1a6632}
.st-red{background:#fde8e8;color:#8b1a1a}

/* ══════ PAGE ACTIONS ══════ */
.page-actions{flex:1;overflow-y:auto;padding:24px;min-height:0}
.actions-inner{max-width:900px;margin:0 auto}
.page-title{font-size:20px;font-weight:700;margin-bottom:4px;color:#1a1a2e}
.page-sub{font-size:13px;color:#666;margin-bottom:20px}
.sheet-badge{display:inline-flex;align-items:center;gap:6px;background:#e8f5e9;color:#2a7a4e;border:1px solid #b7dfca;border-radius:6px;padding:5px 12px;font-size:12px;font-weight:600;margin-bottom:18px}
.sheet-badge a{color:#2a7a4e;text-decoration:none;border-bottom:1px dotted #2a7a4e}
.sheet-badge a:hover{text-decoration:none;border-bottom-color:transparent}
.actions-loading{text-align:center;padding:40px;color:#aaa;font-size:13px}

/* ── ACTION CARDS ── */
.actions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;max-width:900px;margin:0 auto;align-items:start}
.action-encart{background:#fff;border-radius:10px;border:1px solid #e8e8e8;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.action-encart-header{padding:14px 18px 10px;display:flex;align-items:center;gap:10px}
.action-encart-icon{width:38px;height:38px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.ae-icon-petition{background:#fff3cd}
.ae-icon-courrier{background:#e8f0fe}
.ae-icon-presse{background:#fce8e8}
.ae-icon-partager{background:#e8f5e9}
.ae-icon-ressources{background:#eef1f5}
.action-encart-title{font-size:14px;font-weight:700;color:#1a1a2e;line-height:1.3}
.action-encart-body{padding:0 18px 18px;flex:1;display:flex;flex-direction:column;gap:12px}
.action-encart-desc{font-size:13px;color:#555;line-height:1.6}
.ae-btn{display:inline-block;padding:9px 18px;border-radius:5px;font-size:13px;font-weight:700;text-decoration:none;border:none;cursor:pointer;text-align:center;transition:opacity .15s}
.ae-btn:hover{opacity:.85}
.ae-btn-orange{background:#e07b00;color:#fff}
.ae-btn-blue{background:#1a5fa8;color:#fff}
.ae-btn-red{background:#c0392b;color:#fff}
.ae-btn-green{background:#2a9d5c;color:#fff}
.ae-btn-ig{background:#c13584;color:#fff}
.ae-btn-outline{background:#fff;color:#1a1a2e;border:2px solid #1a1a2e}
.pdf-viewer{width:100%;height:320px;border:1px solid #ddd;border-radius:6px;background:#f5f5f5}
/* Presse : liste d'articles cliquables */
.press-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.press-list li{border-bottom:1px solid #f0f0f0}
.press-list li:last-child{border-bottom:none}
.press-list a{display:block;padding:9px 2px;font-size:13px;line-height:1.45;color:#1a1a2e;text-decoration:none}
.press-list a:hover{color:#c0392b}
.press-list strong{color:#c0392b}
.press-date{color:#999;font-weight:400;font-size:11px;white-space:nowrap}
.press-list li.press-audio-item{padding:9px 2px}
.press-audio-label{font-size:13px;line-height:1.45;color:#1a1a2e;margin-bottom:6px}
.press-audio-label strong{color:#c0392b}
.press-audio{display:block;width:100%}
.actions-error{background:#fde8e8;color:#8b1a1a;border-radius:8px;padding:14px 16px;font-size:13px;margin-bottom:16px}
.actions-list{display:flex;flex-direction:column;gap:10px}
.action-card{background:#fff;border-radius:8px;border:1px solid #ddd;padding:14px 16px;display:flex;gap:14px;align-items:flex-start}
.action-status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;margin-top:4px}
.as-lancee{background:#2a9d5c}.as-encours{background:#e07b00}.as-terminee{background:#888}
.action-body{flex:1}
.action-title{font-size:14px;font-weight:700;color:#1a1a2e;margin-bottom:2px}
.action-desc{font-size:12px;color:#555;margin-bottom:6px;line-height:1.5}
.action-meta{display:flex;gap:10px;flex-wrap:wrap}
.ameta{font-size:11px;color:#888}
.ameta strong{color:#555}
.action-del{background:none;border:none;cursor:pointer;color:#ccc;font-size:16px;line-height:1;flex-shrink:0;padding:0 2px}
.action-del:hover{color:#c0392b}
.empty-state{text-align:center;padding:40px;color:#aaa;font-size:13px}
.btn-refresh{background:#1a1a2e;color:#fff;border:none;border-radius:4px;padding:6px 14px;font-size:12px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:6px}
.btn-refresh:hover{background:#2d2d4e}
.btn-refresh.spinning svg{animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ══════ PAGE CONTACT ══════ */
.page-contact{flex:1;overflow-y:auto;padding:24px;min-height:0}
.contact-inner{max-width:680px;margin:0 auto}
.li-cta{display:block;margin-top:8px}  /* CTA (bouton .ae-btn) sur sa propre ligne sous une puce / un paragraphe */
.contact-card{background:#fff;border-radius:10px;border:1px solid #ddd;overflow:hidden;margin-bottom:18px}
.contact-card-header{background:#1a1a2e;color:#fff;padding:14px 18px;font-size:14px;font-weight:700}
.contact-card-body{padding:18px}
.contact-edit-row{display:flex;gap:10px;align-items:center;margin-bottom:12px}
.contact-edit-row label{font-size:12px;font-weight:600;color:#555;width:120px;flex-shrink:0}
.contact-edit-row input{flex:1;padding:7px 10px;border:1px solid #ccc;border-radius:4px;font-size:13px}
.btn-save{background:#2a9d5c;color:#fff;padding:7px 18px;border:none;border-radius:4px;cursor:pointer;font-size:13px;font-weight:700}
.btn-save:hover{background:#217a48}
.preview-card{background:#f8f9fa;border-radius:8px;padding:16px;border:1px solid #eee}
.preview-card h3{font-size:13px;font-weight:700;color:#444;margin-bottom:14px;text-transform:uppercase;letter-spacing:.5px}
.contact-link-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #eee}
.contact-link-row:last-child{border-bottom:none;padding-bottom:0}
.contact-icon{width:38px;height:38px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.icon-email{background:#e8f0fe}.icon-wa{background:#dcf8c6}
.contact-link-info{flex:1}
.contact-link-label{font-size:11px;color:#888;margin-bottom:1px}
.contact-link-val{font-size:14px;font-weight:600;color:#1a1a2e}
.contact-link-btn{padding:6px 14px;border-radius:4px;border:none;cursor:pointer;font-size:12px;font-weight:600;text-decoration:none;display:inline-block}
.btn-email-action{background:#1a5fa8;color:#fff}
.btn-wa-action{background:#25d366;color:#fff}
.edit-hint{font-size:11px;color:#aaa;margin-top:10px;font-style:italic}

/* ══════ PAGE ACCUEIL ══════ */
.page-home{flex:1;overflow-y:auto;background:#f5f5f0;display:flex;flex-direction:column}
.home-hero{background:#1a1a2e;color:#fff;padding:32px 20px 28px;text-align:center;position:relative;flex-shrink:0}
.home-hero::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,rgba(224,123,0,.07) 0px,rgba(224,123,0,.07) 1px,transparent 1px,transparent 40px);pointer-events:none}
.hero-temp{font-size:clamp(48px,12vw,80px);font-weight:900;color:#e07b00;line-height:1.1;margin-bottom:6px;position:relative}
.hero-tagline{font-size:clamp(16px,4vw,22px);font-weight:700;margin-bottom:10px;position:relative}
.hero-sub{font-size:clamp(13px,3.5vw,14px);opacity:.8;max-width:560px;margin:0 auto;position:relative;line-height:1.6}
.home-body{max-width:800px;margin:0 auto;padding:32px 20px 60px;width:100%}
.petition-banner{background:#fff;border:2px solid #e07b00;border-radius:10px;padding:20px 22px;margin-bottom:32px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.petition-banner-left{flex:1;min-width:200px}
.petition-banner-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:#e07b00;margin-bottom:4px}
.petition-banner-title{font-size:17px;font-weight:800;color:#1a1a2e;line-height:1.3}
.petition-banner-sub{font-size:12px;color:#666;margin-top:5px}
.btn-petition{background:#e07b00;color:#fff;border:none;border-radius:6px;padding:12px 24px;font-size:14px;font-weight:800;cursor:pointer;white-space:nowrap;text-decoration:none;display:inline-block;transition:background .15s}
.btn-petition:hover{background:#c46a00}
@media(max-width:500px){.petition-banner{flex-direction:column;text-align:center}.btn-petition{width:100%;text-align:center;padding:14px}}
.home-section{margin-bottom:36px}
.home-section h2{font-size:18px;font-weight:700;color:#1a1a2e;border-left:4px solid #e07b00;padding-left:12px;margin-bottom:14px}
.home-section h3{font-size:14px;font-weight:700;color:#1a1a2e;margin:16px 0 8px}
.home-section p{font-size:14px;line-height:1.75;color:#333;margin-bottom:10px}
.home-section ul{padding-left:20px;margin-bottom:10px}
.home-section ul li{font-size:14px;line-height:1.75;color:#333;margin-bottom:5px}
.home-edit-bar{background:#fff;border:1.5px dashed #e07b00;border-radius:8px;padding:14px 16px;margin-bottom:24px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.home-edit-bar span{font-size:12px;color:#854500;font-weight:600}
.btn-edit-home{background:#e07b00;color:#fff;border:none;padding:6px 14px;border-radius:4px;font-size:12px;font-weight:700;cursor:pointer}
.btn-edit-home:hover{background:#c46a00}
.source-link{color:#1a5fa8;font-size:12px;text-decoration:none}
.source-link:hover{text-decoration:underline}
.demand-card{background:#fff;border-radius:8px;border-left:4px solid #2a9d5c;padding:14px 16px;margin-bottom:10px}
.demand-card h3{font-size:13px;font-weight:700;color:#1a1a2e;margin-bottom:5px}
.demand-card p{font-size:13px;color:#555;line-height:1.65;margin:0}
.sources-list{background:#fff;border-radius:8px;border:1px solid #eee;padding:14px 16px}
.sources-list li{font-size:12px;color:#555;line-height:1.7;margin-bottom:3px}
.sources-list li a{color:#1a5fa8}
.cta-band{background:#e07b00;color:#fff;border-radius:8px;padding:20px 22px;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:28px}
.cta-band p{font-size:14px;font-weight:600;margin:0;flex:1}
.cta-btns{display:flex;gap:8px;flex-wrap:wrap}
.cta-btn{padding:8px 18px;border-radius:4px;border:none;cursor:pointer;font-size:13px;font-weight:700;white-space:nowrap}
.cta-btn-map{background:#fff;color:#e07b00}
.cta-btn-join{background:#1a1a2e;color:#fff}

/* ══════ MOBILE / CARTE AU POUCE (C1) ══════ */
@media(max-width:600px){
  /* Contrôles : recherche seule (statut/type/tableau/export masqués) */
  .hide-mobile{display:none !important}
  .map-controls{gap:6px;padding:8px 10px}
  .map-controls input{flex:1;min-width:0;width:auto;font-size:16px;padding:9px 11px}  /* 16px : évite le zoom auto iOS au focus */

  /* Bandeau de couverture : on garde le résumé + la barre de progression,
     on masque la légende (chips) — le statut de chaque école est lu dans la fiche. */
  .coverage-bar{padding:7px 12px;gap:6px}
  .cov-chips{display:none}

  /* Page Actions : marges réduites au pouce */
  .page-actions{padding:14px 12px 20px}
  .actions-grid{gap:14px}
  .action-encart-header{padding:12px 14px 8px}
  .action-encart-body{padding:0 14px 14px}

  /* Onglets en barre fixe en bas d'écran (pleine largeur, type appli mobile) */
  .nav-tabs{position:fixed;left:0;right:0;bottom:0;z-index:1500;height:56px;
    background:#1a1a2e;border-top:2px solid #e07b00;display:flex;overflow:visible;
    box-shadow:0 -2px 10px rgba(0,0,0,.18)}
  .tab-btn{flex:1;min-width:0;height:100%;padding:5px 3px;font-size:10px;line-height:1.12;
    white-space:nowrap;text-align:center;display:flex;flex-direction:column;align-items:center;
    justify-content:center;gap:3px;border-bottom:none;border-top:3px solid transparent}
  .tab-btn.active{border-top-color:#e07b00;color:#fff}
  .tab-ico{margin-right:0;font-size:20px;line-height:1}  /* icône au-dessus */
  .t-full{display:none}                                  /* libellé long masqué sur mobile */
  .t-short{display:block}                                /* libellé court (1 mot) sous l'icône */
  body{padding-bottom:56px}  /* réserve la hauteur de la barre fixe */

  /* Fiche école → feuille qui glisse depuis le bas */
  /* position:fixed + z-index élevé : la feuille passe AU-DESSUS de la recherche
     et du bandeau de couverture (sinon rognée par .map-wrap → croix cachée).
     Ancrée juste au-dessus de la barre d'onglets fixe (56px). */
  #info-panel{position:fixed;top:auto;left:0;right:0;bottom:56px;width:auto;z-index:1400;
    border:none;border-top:1px solid #ddd;border-radius:16px 16px 0 0;box-shadow:0 -3px 18px rgba(0,0,0,.2);
    display:block;transform:translateY(140%);transition:transform .25s ease;
    max-height:72vh;overflow-y:auto;-webkit-overflow-scrolling:touch}
  #info-panel.open{transform:translateY(0)}
  .ip-grip{display:block;width:42px;height:4px;border-radius:2px;background:#ccc;margin:8px auto 0}
  .ip-header{border-radius:0}
  .ip-name{font-size:14px;max-width:none}
  .ip-title{max-width:none;flex:1}      /* pleine largeur dispo : le type reste sur la même ligne */
  .ip-link{display:none}                /* lien direct : desktop uniquement (évite de surcharger le mobile) */
  .ip-close{font-size:24px;padding:0 6px;margin:-2px -2px 0 0}  /* cible tactile plus large */
  .ip-body{padding:12px 16px 22px}
  .ip-row{font-size:13px;margin-bottom:10px}
  .ip-detail{font-size:12px;max-width:60%}
  .ip-update{font-size:13px;padding:10px}
}
