  :root{
    color-scheme: light dark;
    /* V3 — palette chaude, sans cyan */
    --blue:#2d6ead;        /* bleu chaud, non cyan */
    --acad-color:var(--blue);  /* couleur académie — surchargée par data-academy */
    --blue-dark:#1c4e82;   /* bleu profond chaud */
    --indigo:#4a67a8;      /* indigo doux, non électrique */
    --red:#e04040;
    --red-dark:#b83030;
    --orange:#e8872a;      /* orange chaud */
    --orange-dark:#c96c18;
    --yellow:#f5b942;      /* jaune doré */
    --yellow-soft:#fff7e6; /* fond jaune très doux */
    --green:#27ae60;
    --green-dark:#1e8449;
    --purple:#8e44ad;
    --pink:#ec407a;
    --bg:#f7f3ed;          /* fond légèrement plus chaud */
    --card:#ffffff;
    --text:#1a2a3d;
    --muted:#6b7a8d;
    --border:#e2dbd0;      /* bordure plus douce */
    --shadow:0 1px 4px rgba(15,25,45,.05),0 3px 10px rgba(15,25,45,.04);
    --shadow-lg:0 5px 20px rgba(15,25,45,.1),0 2px 6px rgba(15,25,45,.06);
    --radius:18px;
  }
  *{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
  html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;line-height:1.5;font-size:16px}
  body{padding-bottom:80px;min-height:100vh}

  /* HEADER — V3 ultra-compact, premium */
  header.app-header{
    background: linear-gradient(158deg, #1a3c6e 0%, #265f9a 100%);
    color:#fff;padding:8px 14px 10px;position:relative;z-index:100;
    box-shadow:0 1px 8px rgba(18,45,90,.15);
  }
  header.app-header::before{
    content:"";position:absolute;top:-24px;right:-16px;width:90px;height:90px;
    background:radial-gradient(circle, rgba(255,255,255,.07) 0%, transparent 70%);
    border-radius:50%;pointer-events:none;
  }
  /* Bloc titre : livre à gauche couvrant la hauteur des 2 lignes (titre + auteurs) */
  .header-title{display:flex;align-items:center;gap:9px}
  .header-title-text{flex:1 1 auto;min-width:0}
  .header-title .h1-ico{flex:0 0 auto;display:flex;align-items:center}
  .header-title .h1-ico svg{width:56px;height:56px;display:block;filter:drop-shadow(0 2px 5px rgba(15,30,45,.32))}
  header h1{margin:0;font-size:.97rem;font-weight:800;letter-spacing:-.2px;position:relative;line-height:1.25}
  header h1 .h1-title .acr{font-size:1.08em}
  header h1 .h1-title em{font-style:italic;font-size:.75em;vertical-align:baseline}
  @media(min-width:1180px){
    header h1{font-size:1.15rem}
    header h1 .h1-title{white-space:nowrap}
  }
  .header-meta{display:flex;flex-direction:column;margin-top:3px}
  @media(min-width:760px){
    .header-meta{flex-direction:row;align-items:center;gap:10px}
    .header-meta .app-authors{flex:1 1 auto;min-width:0}
  }
  header .subtitle{font-size:.78rem;opacity:.88;margin-top:3px;font-weight:500;position:relative}
  /* Auteurs : visibles sur tablette+, masqués sur mobile (présents sur onglet Accueil) */
  header .app-authors{font-size:.76rem;opacity:.78;font-weight:500;position:relative;line-height:1.3}
  @media(max-width:599px){header .app-authors{display:none}}

  /* SWITCH MULTI-ÉTABLISSEMENTS */
  .multi-switch{
    display:flex;align-items:center;gap:7px;cursor:pointer;flex:0 0 auto;
    font-size:.72rem;font-weight:600;color:#fff;opacity:.92;
    user-select:none;
  }
  .multi-switch input{position:absolute;opacity:0;width:0;height:0}
  .multi-switch .switch-track{
    width:34px;height:18px;border-radius:10px;
    background:rgba(255,255,255,.32);position:relative;
    transition:background .18s;flex:0 0 auto;
  }
  .multi-switch .switch-track::after{
    content:"";position:absolute;top:2px;left:2px;
    width:14px;height:14px;border-radius:50%;background:#fff;
    transition:transform .18s;box-shadow:0 1px 3px rgba(0,0,0,.3);
  }
  .multi-switch input:checked + .switch-track{background:rgba(255,255,255,.85)}
  .multi-switch input:checked + .switch-track::after{transform:translateX(16px);background:var(--blue)}
  .multi-switch input:focus-visible + .switch-track{outline:2px solid #fff;outline-offset:2px}

  /* BARRE DE SÉLECTION D'ÉTABLISSEMENT (mode multi) */
  .etab-bar{
    margin-top:10px;position:relative;z-index:150;
    display:none;flex-direction:column;gap:6px;
    background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);
    border-radius:12px;padding:10px 12px;
  }
  .etab-bar.visible{display:flex}
  /* Nom de l'établissement actif — très visible */
  .etab-active-name{
    display:none;font-size:1.02rem;font-weight:800;color:#fff;
    letter-spacing:-.2px;line-height:1.2;margin-bottom:2px;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  .etab-active-name.visible{display:block}
  .etab-active-name-hint{
    font-size:.68rem;font-weight:500;opacity:.72;color:#fff;
    display:none;margin-bottom:4px;
  }
  .etab-active-name-hint.visible{display:block}
  /* Ligne sélecteur */
  .etab-select-row{display:flex;align-items:center;gap:8px}
  .etab-bar label{font-size:.72rem;font-weight:700;color:#fff;opacity:.88;white-space:nowrap}
  .etab-bar select{
    flex:1;min-width:0;font-family:inherit;font-size:.84rem;
    padding:6px 10px;border-radius:8px;border:none;
    background:rgba(255,255,255,.95);color:var(--text);
  }
  .etab-bar select:focus{outline:none;background:#fff}
  .etab-manage-btn{
    flex-shrink:0;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.32);
    color:#fff;border-radius:8px;padding:6px 9px;font-size:.88rem;cursor:pointer;
    white-space:nowrap;line-height:1;
  }
  .etab-manage-btn:hover{background:rgba(255,255,255,.30)}
  /* Liste dans la modale de gestion */
  .etab-mgr-list{list-style:none;margin:0 0 4px;padding:0;display:flex;flex-direction:column;gap:6px}
  .etab-mgr-list li{
    display:flex;align-items:center;gap:8px;
    background:var(--surface);border:1px solid var(--border);border-radius:8px;
    padding:8px 10px;
  }
  .etab-mgr-list--ro li{opacity:.7}
  .etab-mgr-nom{flex:1;font-size:.90rem;font-weight:600;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .etab-mgr-actions{display:flex;gap:4px;flex-shrink:0}
  .etab-mgr-badge{font-size:.82rem;flex-shrink:0}
  .etab-mgr-empty{color:var(--muted);font-size:.88rem;margin:0 0 12px}
  .etab-mgr-ro-label{color:var(--muted);font-size:.78rem;margin:12px 0 4px}
  .btn-sm{font-size:.78rem!important;padding:4px 8px!important;min-height:auto!important}

  /* LIGNE RECHERCHE + HAMBURGER */
  .search-ham-row{
    display:flex;align-items:center;gap:8px;margin-top:10px;
  }
  /* QUICK GLOBAL SEARCH (header) */
  .quick-search{
    position:relative;flex:1;min-width:0;z-index:200;
  }
  .quick-search-input{
    width:100%;padding:9px 16px 9px 40px;border-radius:24px;
    border:none;background:rgba(255,255,255,.95);color:var(--text);
    font-size:.95rem;font-family:inherit;
    box-shadow:0 4px 14px rgba(0,0,0,.12);
    transition:all .2s;
  }
  .quick-search-input:focus{
    outline:none;background:#fff;
    box-shadow:0 6px 20px rgba(0,0,0,.18);
  }
  .quick-search-input::placeholder{color:#7a8696}
  .quick-search::before{
    content:"🔍";position:absolute;left:13px;top:50%;
    transform:translateY(-50%);font-size:.78rem;opacity:.55;pointer-events:none;
  }
  .quick-search-clear{
    position:absolute;right:8px;top:50%;transform:translateY(-50%);
    background:transparent;border:none;color:var(--muted);font-size:1.3rem;
    cursor:pointer;padding:4px 10px;border-radius:50%;line-height:1;
    display:none;
  }
  .quick-search-clear.visible{display:block}
  .quick-search-clear:hover{background:#f0f0f0;color:var(--red)}
  .quick-search-results{
    position:absolute;top:calc(100% + 6px);left:0;right:0;
    background:#fff;border-radius:14px;
    box-shadow:0 10px 40px rgba(0,0,0,.18);
    max-height:60vh;overflow-y:auto;
    border:1px solid var(--border);
    display:none;
  }
  .quick-search-results.visible{display:block}
  .qs-section{padding:6px 0}
  .qs-section + .qs-section{border-top:1px solid var(--border)}
  .qs-section-title{
    padding:8px 14px 4px;font-size:.72rem;font-weight:700;
    color:var(--muted);text-transform:uppercase;letter-spacing:.5px;
  }
  .qs-result{
    display:flex;align-items:center;gap:10px;padding:10px 14px;
    cursor:pointer;border:none;background:transparent;width:100%;text-align:left;
    font-family:inherit;color:var(--text);transition:background .12s;
  }
  .qs-result:hover, .qs-result.active{background:#f0f7ff}
  .qs-result .qs-ico{
    flex:0 0 auto;width:28px;height:28px;border-radius:8px;
    display:flex;align-items:center;justify-content:center;font-size:.85rem;
    background:var(--yellow-soft);
  }
  .qs-result.qs-acronym .qs-ico{background:#fdf0ee;color:var(--red)}
  .qs-result.qs-site .qs-ico{background:#e8f3ff;color:var(--blue-dark)}
  .qs-result .qs-text{flex:1;min-width:0}
  .qs-result .qs-name{font-weight:700;font-size:.92rem;color:var(--text)}
  .qs-result.qs-acronym .qs-name{color:var(--red);font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
  .qs-result.qs-site .qs-name{color:var(--blue-dark)}
  .qs-result .qs-desc{
    font-size:.78rem;color:var(--muted);margin-top:1px;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  .qs-result .qs-arrow{flex:0 0 auto;color:var(--muted);font-size:.9rem}
  .qs-row{display:flex;align-items:stretch}
  .qs-row .qs-result{flex:1;min-width:0}
  /* Outils ⚙️ / ↺ inline dans la suggestion (pour les sites) */
  .qs-tools{
    flex:0 0 auto;display:flex;align-items:center;gap:2px;
    padding:0 8px;border-left:1px solid var(--border);
  }
  .qs-tool{
    background:transparent;border:none;cursor:pointer;
    width:30px;height:30px;border-radius:50%;
    font-size:.95rem;line-height:1;padding:0;color:var(--muted);
    opacity:.65;transition:opacity .12s, background .12s, transform .12s;
  }
  .qs-tool:hover{opacity:1;background:#f0f0f0;color:var(--blue)}
  .qs-tool:active{transform:scale(.92)}
  .qs-tool.is-muted{opacity:.25;cursor:default}
  .qs-tool.is-muted:hover{background:transparent;color:var(--muted)}
  /* Méta + catégorie sous la description */
  .qs-result .qs-meta{margin-top:3px;display:flex;flex-wrap:wrap;gap:6px}
  .qs-cat{
    display:inline-block;padding:1px 7px;border-radius:8px;
    background:var(--yellow-soft);color:var(--text);
    font-size:.7rem;font-weight:600;
  }
  .qs-local-badge{
    display:inline-block;padding:1px 6px;border-radius:6px;margin-left:6px;
    background:#fff3cd;color:#7a5b00;font-size:.65rem;font-weight:700;
    letter-spacing:.2px;
  }
  .qs-url-hint{
    display:inline-block;padding:1px 6px;margin-left:4px;border-radius:4px;
    background:#e8f3ff;color:var(--blue-dark);font-size:.7rem;font-weight:600;
  }
  .qs-empty{padding:18px 14px;text-align:center;color:var(--muted);font-size:.88rem;font-style:italic}
  @media (prefers-color-scheme: dark){
    .quick-search-results{background:#262a2e}
    .qs-result:hover, .qs-result.active{background:#33383d}
    .qs-result.qs-acronym .qs-ico{background:#3a2624}
    .qs-result.qs-site .qs-ico{background:#1f2e3d}
    .qs-tools{border-left-color:#33383d}
    .qs-tool:hover{background:#33383d;color:#9ec7f0}
    .qs-cat{background:#33383d;color:var(--text)}
    .qs-local-badge{background:#4a3a0d;color:#ffd76b}
    .qs-url-hint{background:#1f2e3d;color:#9ec7f0}
    /* La barre de recherche garde un fond clair même en mode sombre du système
       (voir bloc "LISIBILITÉ DES CHAMPS" plus bas qui force le rendu clair). */
  }

  /* TABS — V3 mobile-native */
  nav.tabs{
    display:flex;overflow-x:auto;gap:5px;padding:8px 12px;
    background:#fff;border-bottom:1px solid rgba(0,0,0,.07);
    position:sticky;top:0;z-index:99;
    scrollbar-width:none;-ms-overflow-style:none;
    box-shadow:0 1px 4px rgba(0,0,0,.05);
  }
  nav.tabs::-webkit-scrollbar{display:none}
  nav.tabs button{
    flex:0 0 auto;background:#f0ece3;border:none;color:var(--muted);
    padding:6px 13px;border-radius:20px;font-size:.79rem;font-weight:600;
    cursor:pointer;transition:all .22s cubic-bezier(.2,.8,.2,1);white-space:nowrap;
  }
  nav.tabs button.active{
    background:var(--acad-color,var(--blue));
    color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.22);
    transform:translateY(-1px);
  }
  nav.tabs button:hover:not(.active){background:#e6e1d6;color:var(--text);transform:translateY(-1px)}

  main{max-width:900px;margin:0 auto;padding:14px 15px}
  @media(max-width:380px){main{padding:10px 12px}}

  /* SECTIONS */
  .section{display:none;animation:fadeIn .3s ease}
  .section.active{display:block}
  @keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

  /* CARTES — V3 légères, aérées */
  .card{
    background:var(--card);border-radius:var(--radius);padding:18px 18px 16px;
    margin-bottom:12px;box-shadow:var(--shadow);border:1px solid rgba(0,0,0,.055);
  }
  .card h2{
    margin:0 0 14px;font-size:1.02rem;display:flex;align-items:center;gap:9px;
    padding-bottom:10px;border-bottom:1.5px solid rgba(0,0,0,.07);
    font-weight:700;
  }
  .card h2 .ico{font-size:1.3rem}
  .card.accent-blue h2{color:var(--blue);border-bottom-color:rgba(45,110,173,.2)}
  .card.accent-red h2{color:var(--red);border-bottom-color:rgba(224,64,64,.2)}
  .card.accent-orange h2{color:var(--orange);border-bottom-color:rgba(232,135,42,.2)}
  .card.accent-yellow h2{color:#9a7000;border-bottom-color:rgba(245,185,66,.3)}
  .card.accent-green h2{color:var(--green);border-bottom-color:rgba(39,174,96,.2)}

  /* TODO LIST */
  .todo-list{list-style:none;padding:0;margin:0}
  .todo-list li{
    display:flex;align-items:flex-start;gap:12px;padding:11px 8px;
    border-radius:8px;transition:background .15s;cursor:pointer;
  }
  .todo-list li:hover{background:#fef9e8}
  .todo-list input[type=checkbox]{
    flex:0 0 auto;width:22px;height:22px;margin-top:1px;cursor:pointer;
    accent-color:var(--orange);
  }
  .todo-list .todo-content{flex:1;min-width:0}
  .todo-list .todo-label{font-weight:600;font-size:.95rem}
  .todo-list .todo-where{font-size:.82rem;color:var(--muted);margin-top:1px}
  .todo-list li.done .todo-label{text-decoration:line-through;color:var(--muted);font-weight:500}
  .todo-progress{
    background:#f4f1e8;border-radius:20px;height:8px;overflow:hidden;margin:10px 0 16px;
  }
  .todo-progress > div{
    height:100%;background:linear-gradient(90deg,var(--orange),var(--yellow));
    transition:width .4s ease;border-radius:20px;
  }
  .todo-progress-label{font-size:.82rem;color:var(--muted);text-align:center;margin-bottom:6px}

  /* NOTES */
  textarea.notes{
    width:100%;min-height:200px;padding:14px;border:2px solid var(--border);
    border-radius:10px;font-family:inherit;font-size:.95rem;line-height:1.55;
    resize:vertical;background:#fffdf6;color:var(--text);
  }
  textarea.notes:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(45,110,173,.15)}
  .notes-meta{font-size:.78rem;color:var(--muted);margin-top:6px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}

  /* INPUTS PERSONNALISABLES */
  .field{margin-bottom:12px}
  .field label{display:block;font-size:.85rem;font-weight:600;color:var(--text);margin-bottom:4px}
  .field label .hint{font-weight:400;color:var(--muted);font-size:.78rem;margin-left:6px}
  .field input[type=text], .field input[type=url], .field input[type=tel], .field input[type=email], .field textarea{
    width:100%;padding:9px 12px;border:1.5px solid var(--border);border-radius:8px;
    font-family:inherit;font-size:.93rem;background:#fffdf6;color:var(--text);
  }
  .field input:focus, .field textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(45,110,173,.12)}
  .field textarea{min-height:54px;resize:vertical}

  /* LINKS GRID */
  .links-grid{display:grid;grid-template-columns:1fr;gap:10px}
  @media(min-width:600px){.links-grid{grid-template-columns:1fr 1fr}}
  .link-item{
    display:block;padding:12px 14px;background:var(--yellow-soft);
    border-radius:10px;text-decoration:none;color:var(--text);
    border:1px solid #f1e6b8;transition:all .15s;
  }
  .link-item:hover{transform:translateY(-1px);box-shadow:var(--shadow);background:#fdf0c2}
  .link-item .name{font-weight:700;color:var(--blue-dark);display:flex;align-items:center;gap:6px}
  .link-item .name::after{content:"↗";font-size:.85em;opacity:.6}
  .link-item .desc{font-size:.83rem;color:var(--muted);margin-top:3px}

  /* PRONOTE / ENT BIG BUTTONS */
  .access-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
  @media(max-width:480px){.access-buttons{grid-template-columns:1fr}}

  /* Wrappers pour gros boutons éditables (Pronote / ENT) :
     le clic sur le bouton ouvre toujours le lien ; les petits outils
     ⚙️ et ↺ sont superposés discrètement dans le coin haut-droit. */
  .big-btn-row{position:relative;display:block;min-width:0}
  .big-btn-row > .big-btn{width:100%}
  .big-btn-tools{
    position:absolute;top:6px;right:6px;display:flex;gap:2px;z-index:2;
  }
  .link-edit-btn, .link-reset-btn{
    background:rgba(255,255,255,.18);border:none;cursor:pointer;
    width:28px;height:28px;border-radius:50%;
    color:#fff;font-size:.9rem;line-height:1;padding:0;
    opacity:.72;transition:opacity .12s, background .12s, transform .12s;
  }
  .link-edit-btn:hover, .link-reset-btn:hover{
    opacity:1;background:rgba(255,255,255,.36);
  }
  .link-edit-btn:active, .link-reset-btn:active{transform:scale(.92)}
  .link-edit-btn:focus-visible, .link-reset-btn:focus-visible{
    outline:2px solid #fff;outline-offset:2px;opacity:1;
  }
  .link-reset-btn.is-muted{opacity:.28}
  .link-reset-btn.is-muted:hover{opacity:.7}
  /* badge discret « URL locale » sur un gros bouton dont l'URL a été personnalisée */
  .big-btn-row.is-customized > .big-btn::after{
    content:"🔒 URL locale";position:absolute;left:8px;bottom:6px;
    background:rgba(255,255,255,.18);color:#fff;font-size:.62rem;
    font-weight:700;padding:2px 6px;border-radius:8px;letter-spacing:.3px;
  }

  /* Variante outils sur .link-item (fond clair) */
  .link-item-row{display:flex;align-items:stretch;gap:6px}
  .link-item-row > .link-item{flex:1;min-width:0}
  .link-item-tools{display:flex;flex-direction:column;gap:4px;justify-content:center;padding:2px}
  .link-item-tools .link-edit-btn, .link-item-tools .link-reset-btn{
    background:transparent;color:var(--muted);
    width:30px;height:30px;
  }
  .link-item-tools .link-edit-btn:hover{background:#f0f0f0;color:var(--blue)}
  .link-item-tools .link-reset-btn:hover{background:#f0f0f0;color:var(--blue)}
  @media (prefers-color-scheme: dark){
    .link-item-tools .link-edit-btn:hover,
    .link-item-tools .link-reset-btn:hover{background:#33383d}
  }
  .link-item-row.is-customized > .link-item .name::after{
    content:" 🔒";font-size:.72em;opacity:.8;
  }

  .big-btn{
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    padding:16px;border-radius:12px;text-decoration:none;color:#fff;
    font-weight:700;text-align:center;border:none;cursor:pointer;
    box-shadow:var(--shadow);transition:transform .15s;font-size:1rem;
  }
  .big-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
  .big-btn.pronote{background:linear-gradient(135deg,var(--acad-color,var(--blue)),color-mix(in srgb,var(--acad-color,var(--blue)) 80%,#000))}
  .big-btn.ent{background:linear-gradient(135deg,var(--acad-color,var(--blue)),color-mix(in srgb,var(--acad-color,var(--blue)) 80%,#000))}
  .big-btn .ico{font-size:1.6rem;margin-bottom:4px}
  .big-btn .label-small{font-size:.75rem;font-weight:500;opacity:.9;margin-top:2px}

  /* ACRONYMES */
  .search-box{
    position:relative;margin-bottom:12px;
  }
  .search-box input{
    width:100%;padding:10px 14px 10px 38px;border:1.5px solid var(--border);
    border-radius:25px;font-size:.95rem;background:#fff;font-family:inherit;
  }
  .search-box input:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(192,57,43,.12)}
  .search-box::before{
    content:"🔍";position:absolute;left:13px;top:50%;transform:translateY(-50%);font-size:1rem;
  }
  .acronym-list{display:flex;flex-direction:column;gap:0}
  .acronym-meta{font-size:.82rem;color:var(--muted);margin-bottom:10px;text-align:right}

  /* Alphabet quick nav */
  .alphabet-nav{
    display:flex;flex-wrap:wrap;gap:5px;margin:0 0 14px;padding:10px;
    background:linear-gradient(135deg,#fdf0ee 0%,#fde8e5 100%);border-radius:12px;
    border:1px solid #f5d4cf;
  }
  .alphabet-nav button{
    flex:1 1 auto;min-width:30px;padding:7px 4px;border:none;
    background:#fff;color:var(--red);font-weight:700;border-radius:6px;
    font-size:.85rem;cursor:pointer;transition:all .15s;font-family:inherit;
  }
  .alphabet-nav button:hover{background:var(--red);color:#fff;transform:translateY(-1px)}
  .alphabet-nav button.disabled{opacity:.3;cursor:not-allowed;background:transparent}
  .alphabet-nav button.disabled:hover{background:transparent;color:var(--red);transform:none}

  /* Letter group accordion */
  .letter-group{margin-bottom:8px;border-radius:10px;overflow:hidden;border:1px solid var(--border);background:#fff}
  .letter-group.hidden{display:none}
  .letter-header{
    display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;
    background:linear-gradient(90deg,#fef0ed 0%,#fff5f3 100%);
    border:none;cursor:pointer;font-family:inherit;text-align:left;
    transition:background .15s;
  }
  .letter-header:hover{background:linear-gradient(90deg,#fde0db 0%,#feeae6 100%)}
  .letter-header .letter-letter{
    font-size:1.4rem;font-weight:900;color:var(--red);
    width:34px;height:34px;display:flex;align-items:center;justify-content:center;
    background:#fff;border-radius:50%;box-shadow:0 1px 4px rgba(192,57,43,.15);
  }
  .letter-header .letter-count{
    flex:1;color:var(--muted);font-size:.85rem;font-weight:500;
  }
  .letter-header .letter-arrow{
    color:var(--red);font-size:1.1rem;transition:transform .25s;font-weight:700;
  }
  .letter-group.open .letter-arrow{transform:rotate(180deg)}
  .letter-content{
    display:none;padding:8px 10px 12px;background:#fff;
    flex-direction:column;gap:5px;
  }
  .letter-group.open .letter-content{display:flex;animation:fadeIn .25s}
  .acronym-item{
    display:block;padding:9px 12px;background:#fdf0ee;border-left:3px solid var(--red);
    border-radius:6px;font-size:.92rem;cursor:pointer;transition:background .15s;
  }
  .acronym-item:hover{background:#fce8e5}
  .acronym-head{display:flex;gap:10px;align-items:flex-start}
  .acronym-item .key{
    font-weight:800;color:var(--red);flex:0 0 auto;min-width:80px;
    font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.95rem;
  }
  .acronym-item .val{flex:1;font-weight:500;line-height:1.45}
  .acronym-item .toggle{flex:0 0 auto;color:var(--muted);font-size:.8rem;margin-left:4px;opacity:.6;transition:transform .2s}
  .acronym-item.expanded .toggle{transform:rotate(180deg)}
  .acronym-item .detail{
    display:none;margin-top:8px;padding-top:8px;border-top:1px dashed #f0c4be;font-size:.85rem;
  }
  .acronym-item.expanded .detail{display:block;animation:fadeIn .2s}
  .acronym-item .ctx{color:var(--text);margin-bottom:8px;line-height:1.5;opacity:.9}
  .acronym-item .cat{
    display:inline-block;background:rgba(192,57,43,.15);color:var(--red);
    padding:3px 10px;border-radius:12px;font-size:.72rem;font-weight:700;
    text-transform:uppercase;letter-spacing:.3px;
  }
  .acronym-empty{text-align:center;padding:24px;color:var(--muted);font-size:.9rem;font-style:italic}
  @media(max-width:480px){
    .acronym-item .key{min-width:70px;font-size:.88rem}
    .acronym-item{font-size:.88rem}
  }

  /* TEL / MAIL */
  .contact-list{display:flex;flex-direction:column;gap:8px}
  .contact-row{
    display:flex;align-items:center;gap:10px;padding:10px 12px;background:#fff;
    border:1px solid var(--border);border-radius:10px;
  }
  .contact-row .role{flex:0 0 auto;font-weight:700;min-width:160px;color:var(--text);font-size:.92rem}
  .contact-row input{flex:1;border:none;padding:6px 8px;border-radius:6px;background:#f9f6ed;font-family:inherit;font-size:.9rem;color:var(--text);min-width:0}
  .contact-row input:focus{outline:none;background:#fff;box-shadow:0 0 0 2px rgba(45,110,173,.2)}
  .contact-row a.action{
    flex:0 0 auto;padding:6px 10px;background:var(--blue);color:#fff;
    border-radius:6px;text-decoration:none;font-size:.82rem;font-weight:600;
  }
  .contact-row a.action.mail{background:var(--orange)}
  .contact-row a.action:hover{filter:brightness(1.1)}
  @media(max-width:560px){
    .contact-row{flex-wrap:wrap}
    .contact-row .role{flex:1 0 100%;min-width:0}
  }

  /* DATES */
  .date-row{
    display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px dashed var(--border);
  }
  .date-row:last-child{border-bottom:none}
  .date-row .when{
    flex:0 0 auto;background:var(--red);color:#fff;padding:5px 10px;border-radius:14px;
    font-size:.78rem;font-weight:700;min-width:90px;text-align:center;white-space:nowrap;
  }
  .date-row.career .when{background:var(--orange)}
  .date-row .what{flex:1;min-width:0;position:relative}
  .date-row .what strong{display:block;font-size:.95rem}
  .date-row .what input{
    width:100%;border:none;padding:4px 30px 4px 0;background:transparent;font-family:inherit;
    font-size:.88rem;color:var(--text);border-bottom:1px dotted var(--border);
  }
  .date-row .what input::placeholder{color:var(--muted)}
  .date-row .what input:focus{outline:none;border-bottom-color:var(--blue);color:var(--text)}
  .date-row .what .reset-field-btn{
    position:absolute;right:-2px;bottom:0;margin-left:0;
  }

  /* INFO BANNER */
  .info-banner{
    background:linear-gradient(135deg,#fef5d4 0%,#fff8e1 100%);
    border-left:4px solid var(--yellow);padding:12px 16px;border-radius:8px;
    margin-bottom:14px;font-size:.88rem;
  }
  .info-banner strong{color:#b7950b}

  /* CODE inline — style de base (mode clair) */
  code{background:rgba(45,110,173,.09);color:var(--blue-dark);padding:1px 5px;border-radius:3px;font-size:.92em;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}

  /* FOOTER */
  footer{text-align:center;padding:24px 16px;font-size:.75rem;color:var(--muted);max-width:900px;margin:0 auto}
  footer a{color:var(--blue);text-decoration:none}

  /* RESET BUTTON */
  .ghost-btn{
    background:transparent;border:1.5px solid var(--border);color:var(--muted);
    padding:7px 14px;border-radius:20px;font-size:.82rem;cursor:pointer;font-family:inherit;
  }
  .ghost-btn:hover{background:#fff;color:var(--red);border-color:var(--red)}
  #exportDataBtn{background:var(--acad-color,var(--blue));color:#fff;border-color:var(--acad-color,var(--blue))}
  #exportDataBtn:hover{background:var(--acad-color,var(--blue));color:#fff;filter:brightness(1.08)}
  #restoreDataBtn{color:var(--acad-color,var(--blue));border-color:var(--acad-color,var(--blue))}
  #restoreDataBtn:hover{background:transparent;color:var(--acad-color,var(--blue));border-color:var(--acad-color,var(--blue))}
  .row-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}
  .footer-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}
  .danger-btn{border-color:#e0b8b8;color:#a13b3b}
  .danger-btn:hover{background:#fff;color:#fff;background:var(--red);border-color:var(--red)}

  /* RESET LOCAL PAR CHAMP — petit bouton discret ↺ */
  .reset-field-btn{
    flex:0 0 auto;background:transparent;border:none;cursor:pointer;
    width:28px;height:28px;border-radius:50%;
    font-size:.95rem;line-height:1;padding:0;
    color:var(--muted);opacity:.55;
    transition:opacity .12s, background .12s, color .12s, transform .12s;
  }
  .reset-field-btn:hover{opacity:1;background:#f0f0f0;color:var(--blue)}
  .reset-field-btn:active{transform:scale(.92)}
  .reset-field-btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px;opacity:1}
  .reset-field-btn.is-muted{opacity:.28}
  .reset-field-btn.is-muted:hover{opacity:.85}
  /* Variantes contextuelles : centré sur la ligne (date, field) */
  .field .reset-field-btn{vertical-align:middle;margin-left:6px}
  .date-row .what .reset-field-btn{vertical-align:middle;margin-left:6px}
  /* Conteneur input + ↺ pour les .field (établissement, ENT) */
  .field-with-reset{display:flex;align-items:flex-start;gap:6px}
  .field-with-reset > input,
  .field-with-reset > textarea{flex:1;min-width:0}
  .field-with-reset > .reset-field-btn{margin-top:4px}
  @media (prefers-color-scheme: dark){
    .reset-field-btn:hover{background:#33383d}
  }

  /* CHAMPS SENSIBLES — masquage par défaut + bouton œil */
  .reveal-wrap{position:relative;display:block}
  .reveal-wrap > input{
    width:100%;padding:9px 44px 9px 12px;
    border:1.5px solid var(--border);border-radius:8px;
    font-family:inherit;font-size:.93rem;
  }
  .reveal-wrap > input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(45,110,173,.12)}
  .reveal-btn{
    position:absolute;right:5px;top:50%;transform:translateY(-50%);
    background:transparent;border:none;cursor:pointer;
    font-size:1.05rem;line-height:1;padding:6px 9px;border-radius:50%;
    color:var(--muted);transition:background .12s;
  }
  .reveal-btn:hover{background:#f0f0f0;color:var(--text)}
  .reveal-btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
  .reveal-btn[aria-pressed="true"]{color:var(--blue)}
  @media (prefers-color-scheme: dark){
    .reveal-btn:hover{background:#33383d}
  }

  /* CAREER STEPS (onglet Carrière) */
  .career-step{
    margin-bottom:18px;padding:14px 14px 16px;
    background:linear-gradient(135deg,#f6f9ff 0%,#fff 100%);
    border-radius:14px;border:1px solid #dde6f5;
    position:relative;
  }
  .career-step + .career-step{margin-top:14px}
  .career-step-header{
    display:flex;align-items:center;gap:14px;margin-bottom:12px;
    padding-bottom:10px;border-bottom:1.5px dashed #d4dff0;
  }
  .career-step-num{
    flex:0 0 auto;width:36px;height:36px;border-radius:50%;
    background:var(--blue);
    color:#fff;font-weight:800;font-size:1.05rem;
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 2px 7px rgba(45,110,173,.28);
  }
  .career-step-header h3{
    margin:0;font-size:1.02rem;color:var(--blue-dark);font-weight:700;
  }
  .career-step-sub{
    font-size:.82rem;color:var(--muted);font-weight:500;margin-top:2px;
  }
  @media (prefers-color-scheme: dark){
    .career-step{background:linear-gradient(135deg,#262e3d 0%,#1f2326 100%);border-color:#3a4860}
    .career-step-header{border-bottom-color:#3a4860}
  }

  /* PODCAST CARDS */
  .podcast-list{display:flex;flex-direction:column;gap:14px}
  .podcast-card{
    display:flex;gap:14px;padding:16px;border-radius:14px;
    background:linear-gradient(135deg,#fff5e8 0%,#fff8d4 100%);
    border:1px solid #f5e1a8;box-shadow:var(--shadow);
    transition:transform .15s, box-shadow .15s;
  }
  .podcast-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
  .podcast-card .pcicon{
    flex:0 0 auto;width:60px;height:60px;border-radius:14px;
    background:linear-gradient(135deg,var(--purple) 0%,var(--pink) 100%);
    color:#fff;font-size:1.8rem;display:flex;align-items:center;justify-content:center;
    box-shadow:0 4px 12px rgba(142,68,173,.3);
  }
  .podcast-card.official .pcicon{background:linear-gradient(135deg,var(--blue) 0%,var(--blue-dark) 100%);box-shadow:0 4px 12px rgba(45,110,173,.3)}
  .podcast-card .pcbody{flex:1;min-width:0}
  .podcast-card .pctitle{font-size:1.05rem;font-weight:700;color:var(--text);margin-bottom:2px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .podcast-card .pcbadge{
    display:inline-block;padding:2px 8px;border-radius:10px;
    font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px;
    background:var(--green);color:#fff;
  }
  .podcast-card .pcbadge.indie{background:var(--purple)}
  .podcast-card .pcprod{font-size:.78rem;color:var(--muted);margin-bottom:6px}
  .podcast-card .pcdesc{font-size:.88rem;line-height:1.5;color:var(--text);margin-bottom:10px}
  .podcast-card .pclinks{display:flex;flex-wrap:wrap;gap:6px}
  .podcast-card .pclink{
    display:inline-flex;align-items:center;gap:5px;
    padding:6px 12px;border-radius:18px;background:#fff;color:var(--text);
    text-decoration:none;font-size:.8rem;font-weight:600;
    border:1.5px solid var(--border);transition:all .15s;
  }
  .podcast-card .pclink:hover{background:var(--blue);color:#fff;border-color:var(--blue);transform:translateY(-1px)}
  .podcast-card .pclink.primary{background:var(--blue);color:#fff;border-color:var(--blue)}
  .podcast-card .pclink.primary:hover{background:var(--blue-dark);border-color:var(--blue-dark)}
  @media(max-width:480px){
    .podcast-card{flex-direction:column}
    .podcast-card .pcicon{width:48px;height:48px;font-size:1.4rem;border-radius:12px}
  }

  /* PRINT */
  @media print{
    nav.tabs, header.app-header, .row-actions, footer{display:none}
    .section{display:block !important}
    body{background:#fff;padding:0}
    .card{break-inside:avoid;box-shadow:none;border:1px solid #ccc}
  }

  /* DARK MODE — V3 bleu nuit chaud */
  @media (prefers-color-scheme: dark){
    :root{
      --bg:#15192a;--card:#1d2238;--text:#e4e2db;--muted:#96a8bc;
      --border:#272d46;--yellow-soft:#1c1b0f;
    }
    nav.tabs{background:#191d2e;border-bottom-color:#23283e}
    nav.tabs button{background:#222641;color:var(--muted)}
    nav.tabs button.active{background:var(--acad-color,var(--blue));color:#fff}
    .card{border-color:rgba(255,255,255,.07)}
    .card h2{border-bottom-color:rgba(255,255,255,.09)}
    .contact-row{background:#1d2238}
    .acronym-item{background:#2e2220}
    .info-banner{background:linear-gradient(135deg,#28251a,#221f14)}
    .link-item{background:#28251a;border-color:#453d20}
    /* Mentions légales — h3 et code lisibles sur fond sombre */
    #tab-legal h3{color:#7ab8e8 !important;border-bottom-color:#2a3450 !important}
    #tab-legal code{background:rgba(255,255,255,.10);padding:1px 5px;border-radius:3px;font-size:.92em}
    /* Multi-appareils — h3 lisibles sur fond sombre */
    #tab-multiappareils h3{color:#7ab8e8 !important;border-bottom-color:#2a3450 !important}
    #tab-multiappareils code{background:rgba(255,255,255,.10);padding:1px 5px;border-radius:3px;font-size:.92em}
    /* Ghost-btn hover lisible en dark */
    .ghost-btn:hover{background:#252c45;color:var(--red);border-color:var(--red)}
  }
  /* Même correction pour la bascule manuelle dark */
  html[data-theme="dark"] #tab-legal h3{color:#7ab8e8 !important;border-bottom-color:#2a3450 !important}
  html[data-theme="dark"] #tab-legal code{background:rgba(255,255,255,.10);padding:1px 5px;border-radius:3px;font-size:.92em}
  html[data-theme="dark"] #tab-multiappareils h3{color:#7ab8e8 !important;border-bottom-color:#2a3450 !important}
  html[data-theme="dark"] #tab-multiappareils code{background:rgba(255,255,255,.10);padding:1px 5px;border-radius:3px;font-size:.92em}
  html[data-theme="dark"] .ghost-btn:hover{background:#252c45}

  /* ================================================================== */
  /* LISIBILITÉ DES CHAMPS DE SAISIE — règle globale                     */
  /* ------------------------------------------------------------------ */
  /* Objectif : pendant la saisie (même mode sombre du système, même    */
  /* sur iPhone / Safari / Android Chrome / autofill), le texte tapé    */
  /* doit toujours apparaître foncé sur fond clair, avec un curseur     */
  /* visible et un placeholder discret. Aucune inversion automatique.   */
  /* S'applique à TOUS les champs du site : recherche, contacts,        */
  /* notes, formulaires d'ajout/modification, établissement, etc.       */
  /* ================================================================== */
  input, textarea, select{
    color-scheme:light;                                /* empêche l'inversion native (iOS/Safari/Android) */
    background-color:#fffdf6 !important;
    color:#1f2d3d !important;
    -webkit-text-fill-color:#1f2d3d !important;
    caret-color:#1f2d3d !important;
  }
  input:focus, textarea:focus, select:focus,
  input:active, textarea:active, select:active,
  input:hover, textarea:hover, select:hover{
    background-color:#ffffff !important;
    color:#1f2d3d !important;
    -webkit-text-fill-color:#1f2d3d !important;
    caret-color:#1f2d3d !important;
  }
  input::placeholder, textarea::placeholder{
    color:#7a8693 !important;
    -webkit-text-fill-color:#7a8693 !important;
    opacity:1 !important;
  }
  /* Autofill Safari / iOS / Chrome : neutralise le fond bleu et conserve
     fond clair + texte foncé + curseur visible. */
  input:-webkit-autofill,
  input:-webkit-autofill:hover,
  input:-webkit-autofill:focus,
  input:-webkit-autofill:active,
  textarea:-webkit-autofill,
  select:-webkit-autofill{
    -webkit-text-fill-color:#1f2d3d !important;
    -webkit-box-shadow:0 0 0 1000px #fffdf6 inset !important;
    box-shadow:0 0 0 1000px #fffdf6 inset !important;
    caret-color:#1f2d3d !important;
    transition:background-color 9999s ease-in-out 0s;
  }
  /* En mode sombre du système, on garde explicitement le rendu clair :
     aucune règle ne doit ré-assombrir un champ éditable. */
  @media (prefers-color-scheme: dark){
    input, textarea, select,
    input:focus, textarea:focus, select:focus,
    input:active, textarea:active, select:active,
    input:hover, textarea:hover, select:hover{
      background-color:#fffdf6 !important;
      color:#1f2d3d !important;
      -webkit-text-fill-color:#1f2d3d !important;
      caret-color:#1f2d3d !important;
    }
    input::placeholder, textarea::placeholder{
      color:#7a8693 !important;
      -webkit-text-fill-color:#7a8693 !important;
      opacity:1 !important;
    }
  }

  /* ============ V11 — COMPOSANTS AJOUTÉS ============ */

  /* Barre d'outils de liste (compteur + bouton ajouter) */
  .list-toolbar{
    display:flex;align-items:center;justify-content:space-between;
    gap:10px;flex-wrap:wrap;margin:4px 0 12px;
  }
  .list-toolbar .acronym-meta{margin:0;text-align:left}
  .add-btn{
    flex:0 0 auto;border:none;cursor:pointer;font-family:inherit;
    font-weight:700;font-size:.86rem;padding:9px 16px;border-radius:22px;
    color:#fff;background:linear-gradient(135deg,var(--red),var(--red-dark));
    box-shadow:0 3px 10px rgba(192,57,43,.28);transition:transform .15s,box-shadow .15s;
  }
  .add-btn:hover{transform:translateY(-1px);box-shadow:0 5px 14px rgba(192,57,43,.36)}
  .add-btn:active{transform:translateY(0)}
  .add-btn.add-btn-blue{
    background:var(--blue);
    box-shadow:0 2px 8px rgba(45,110,173,.25);
  }
  .add-btn.add-btn-blue:hover{box-shadow:0 4px 12px rgba(45,110,173,.35);filter:brightness(1.06)}

  /* Badge « Personnel » + cadenas */
  .perso-badge{
    display:inline-flex;align-items:center;gap:3px;
    padding:1px 7px;border-radius:10px;font-size:.66rem;font-weight:700;
    text-transform:uppercase;letter-spacing:.3px;
    background:rgba(142,68,173,.14);color:var(--purple);
    border:1px solid rgba(142,68,173,.28);vertical-align:middle;
  }
  @media (prefers-color-scheme: dark){
    .perso-badge{background:rgba(142,68,173,.25);color:#d6a8e8}
  }

  /* Badge « URL locale » : indique une URL modifiée localement sur un site officiel */
  .url-local-badge{
    display:inline-flex;align-items:center;gap:3px;
    padding:1px 7px;border-radius:10px;font-size:.66rem;font-weight:700;
    text-transform:uppercase;letter-spacing:.3px;
    background:rgba(243,156,18,.15);color:var(--orange-dark);
    border:1px solid rgba(243,156,18,.35);vertical-align:middle;
  }
  @media (prefers-color-scheme: dark){
    .url-local-badge{background:rgba(243,156,18,.22);color:#f1c40f;border-color:rgba(243,156,18,.5)}
  }
  .site-card.is-url-local{border-left:3px solid var(--orange)}

  /* Bouton favori (étoile) */
  .fav-star{
    flex:0 0 auto;background:transparent;border:none;cursor:pointer;
    font-size:1.15rem;line-height:1;padding:2px 4px;border-radius:8px;
    filter:grayscale(1);opacity:.4;transition:all .15s;font-family:inherit;
  }
  .fav-star:hover{opacity:.85;transform:scale(1.12)}
  .fav-star.on{filter:none;opacity:1}

  /* Actions personnelles (modifier/supprimer) sur les cartes */
  .item-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
  .mini-btn{
    border:1.5px solid var(--border);background:#fff;color:var(--muted);
    font-family:inherit;font-size:.76rem;font-weight:600;cursor:pointer;
    padding:4px 10px;border-radius:14px;transition:all .15s;
  }
  .mini-btn:hover{border-color:var(--blue);color:var(--blue-dark)}
  .mini-btn.danger:hover{border-color:var(--red);color:var(--red)}
  @media (prefers-color-scheme: dark){ .mini-btn{background:#1f2326} }

  /* Acronyme personnel : liseré violet */
  .acronym-item.is-perso{border-left-color:var(--purple);background:#f6effb}
  .acronym-item.is-perso:hover{background:#efe4f7}
  .acronym-item.is-perso .key{color:var(--purple)}
  @media (prefers-color-scheme: dark){
    .acronym-item.is-perso{background:#2e2440}
  }

  /* Filtre par catégorie (chips) */
  .cat-filter{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
  .cat-chip{
    border:1.5px solid var(--border);background:#fff;color:var(--text);
    font-family:inherit;font-size:.8rem;font-weight:600;cursor:pointer;
    padding:6px 12px;border-radius:18px;transition:all .15s;white-space:nowrap;
  }
  .cat-chip:hover{border-color:var(--blue);transform:translateY(-1px)}
  .cat-chip.active{
    background:var(--blue);
    color:#fff;border-color:transparent;box-shadow:0 2px 6px rgba(45,110,173,.22);
  }
  @media (prefers-color-scheme: dark){ .cat-chip{background:#33383d} }

  /* Liste des sites — cartes */
  .site-list{display:grid;grid-template-columns:1fr;gap:12px}
  @media(min-width:620px){.site-list{grid-template-columns:1fr 1fr}}
  .site-card{
    background:#fff;border:1px solid var(--border);border-radius:14px;
    padding:14px 15px;box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s;
    display:flex;flex-direction:column;
  }
  .site-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
  .site-card.is-perso{border-left:3px solid var(--purple)}
  .site-card-top{display:flex;align-items:flex-start;gap:8px}
  .site-card .site-name{
    flex:1;min-width:0;font-weight:800;font-size:1rem;color:var(--blue-dark);
    text-decoration:none;display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  }
  .site-card .site-name .site-link-ico{font-size:.85em;opacity:.6}
  .site-card .site-name:hover{text-decoration:underline}
  .site-card .site-cat{
    display:inline-block;margin-top:7px;align-self:flex-start;
    background:rgba(45,110,173,.12);color:var(--blue-dark);
    padding:3px 10px;border-radius:12px;font-size:.7rem;font-weight:700;
    text-transform:uppercase;letter-spacing:.3px;
  }
  .site-card .site-desc{font-size:.86rem;color:var(--text);opacity:.92;margin-top:8px;line-height:1.5}
  .site-card .site-keywords{font-size:.74rem;color:var(--muted);margin-top:6px}
  @media (prefers-color-scheme: dark){ .site-card{background:#262a2e} }

  /* Ressources associées à un site */
  .site-resources{margin-top:10px;border-top:1px dashed var(--border);padding-top:9px}
  .site-resources-title{font-size:.72rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:6px}
  .resource-row{
    display:flex;align-items:flex-start;gap:8px;padding:6px 8px;border-radius:8px;
    background:#f8f6ef;text-decoration:none;color:var(--text);margin-bottom:5px;transition:background .12s;
  }
  .resource-row:hover{background:#f0ece0}
  .resource-row .res-ico{flex:0 0 auto;font-size:1rem;margin-top:1px}
  .resource-row .res-body{flex:1;min-width:0}
  .resource-row .res-title{font-weight:700;font-size:.83rem;color:var(--blue-dark)}
  .resource-row .res-desc{font-size:.76rem;color:var(--muted);margin-top:1px}
  .resource-row .res-type{font-size:.68rem;color:var(--muted);font-style:italic}
  @media (prefers-color-scheme: dark){ .resource-row{background:#1f2326} .resource-row:hover{background:#2a2f33} }

  /* État vide */
  .empty-state{text-align:center;padding:26px 16px;color:var(--muted);font-size:.9rem;font-style:italic}

  /* Outils données personnelles (export/import) */
  .perso-tools{
    margin-top:16px;padding:12px 14px;border-radius:10px;
    background:linear-gradient(135deg,#f6effb,#faf5fd);border:1px solid #e6d6f0;
    font-size:.82rem;
  }
  .perso-tools .pt-title{font-weight:700;color:var(--purple);margin-bottom:4px;display:flex;align-items:center;gap:6px}
  .perso-tools .pt-note{color:var(--muted);font-size:.78rem;line-height:1.5;margin-bottom:9px}
  .perso-tools .pt-buttons{display:flex;gap:8px;flex-wrap:wrap}
  @media (prefers-color-scheme: dark){
    .perso-tools{background:linear-gradient(135deg,#2e2440,#241c33);border-color:#3f315a}
  }

  /* Avertissement stockage local */
  .local-notice{
    background:linear-gradient(135deg,#eaf4fb,#f0f8ff);
    border-left:4px solid var(--blue);padding:10px 14px;border-radius:8px;
    font-size:.8rem;color:var(--text);margin-bottom:14px;line-height:1.5;
  }
  .local-notice strong{color:var(--blue-dark)}
  @media (prefers-color-scheme: dark){
    .local-notice{background:linear-gradient(135deg,#1f2e3d,#1a2530)}
  }

  /* MODALE (formulaire ajout/édition) */
  .modal-overlay{
    position:fixed;inset:0;z-index:1000;background:rgba(20,30,50,.55);
    display:none;align-items:flex-start;justify-content:center;
    padding:20px 14px;overflow-y:auto;-webkit-overflow-scrolling:touch;
  }
  .modal-overlay.open{display:flex}
  .modal{
    background:var(--card);border-radius:16px;width:100%;max-width:480px;
    box-shadow:var(--shadow-lg);border:1px solid var(--border);
    margin:auto;animation:fadeIn .2s ease;
  }
  .modal-head{
    display:flex;align-items:center;justify-content:space-between;gap:10px;
    padding:16px 18px;border-bottom:2px solid var(--border);
  }
  .modal-head h3{margin:0;font-size:1.08rem;color:var(--text)}
  .modal-close{
    background:transparent;border:none;font-size:1.5rem;line-height:1;
    color:var(--muted);cursor:pointer;padding:2px 8px;border-radius:50%;
  }
  .modal-close:hover{background:#f0f0f0;color:var(--red)}
  @media (prefers-color-scheme: dark){ .modal-close:hover{background:#33383d} }
  .modal-body{padding:16px 18px}
  .modal-body .field-error{color:var(--red);font-size:.76rem;margin-top:3px;display:none}
  .modal-body .field.has-error input,.modal-body .field.has-error textarea,.modal-body .field.has-error select{
    border-color:var(--red);
  }
  .modal-body .field.has-error .field-error{display:block}
  .modal-body select{
    width:100%;padding:9px 12px;border:1.5px solid var(--border);border-radius:8px;
    font-family:inherit;font-size:.93rem;background:#fffdf6;color:var(--text);
  }
  .modal-body select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(45,110,173,.12)}
  @media (prefers-color-scheme: dark){ .modal-body select{background:#1f2326} }
  .modal-foot{
    display:flex;gap:10px;justify-content:flex-end;padding:14px 18px;
    border-top:1px solid var(--border);flex-wrap:wrap;
  }
  .btn{
    border:none;cursor:pointer;font-family:inherit;font-weight:700;font-size:.88rem;
    padding:10px 18px;border-radius:22px;transition:transform .15s,box-shadow .15s;
  }
  .btn:active{transform:translateY(1px)}
  .btn-primary{color:#fff;background:var(--acad-color,var(--blue));box-shadow:0 2px 8px rgba(0,0,0,.20)}
  .btn-primary:hover{box-shadow:0 4px 12px rgba(0,0,0,.28);filter:brightness(1.06)}
  .btn-ghost{background:transparent;border:1.5px solid var(--border);color:var(--muted)}
  .btn-ghost:hover{color:var(--text);border-color:var(--muted)}
  .modal .resource-editor{border:1px dashed var(--border);border-radius:10px;padding:10px;margin-bottom:8px;position:relative}
  .modal .resource-editor .rm-resource{position:absolute;top:6px;right:6px}

  /* Favoris & récents */
  .fav-line,.recent-line{
    display:flex;align-items:center;gap:10px;padding:11px 12px;
    background:#fff;border:1px solid var(--border);border-radius:10px;
    margin-bottom:8px;text-decoration:none;color:var(--text);transition:all .15s;
  }
  .fav-line:hover,.recent-line:hover{transform:translateY(-1px);box-shadow:var(--shadow);border-color:var(--blue)}
  .fav-line .fl-ico,.recent-line .fl-ico{
    flex:0 0 auto;width:34px;height:34px;border-radius:9px;font-size:1rem;
    display:flex;align-items:center;justify-content:center;background:var(--yellow-soft);
  }
  .fav-line .fl-body,.recent-line .fl-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
  .fav-line .fl-name,.recent-line .fl-name{font-weight:700;font-size:.92rem;display:block;line-height:1.25}
  .fav-line .fl-desc,.recent-line .fl-desc{font-size:.78rem;color:var(--muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3;border-top:1px solid var(--border);padding-top:4px}
  .fav-line .fl-arrow,.recent-line .fl-arrow{flex:0 0 auto;color:var(--muted)}
  @media (prefers-color-scheme: dark){ .fav-line,.recent-line{background:#262a2e} }

  /* Toast de confirmation */
  .toast{
    position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);
    background:var(--text);color:#fff;padding:11px 20px;border-radius:24px;
    font-size:.86rem;font-weight:600;box-shadow:var(--shadow-lg);
    opacity:0;pointer-events:none;transition:all .25s;z-index:1200;max-width:90vw;text-align:center;
  }
  .toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
  .toast.error{background:var(--red-dark)}
  .toast.success{background:var(--green-dark)}

  /* ================================================================== */
  /* V3 — BOUSSOLE RENO                                                 */
  /* ================================================================== */
  .reno-compass { display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto }
  .reno-compass svg { display:block;filter:drop-shadow(0 1px 4px rgba(0,0,0,.22)) }

  /* ================================================================== */
  /* V3+ — HEADER MARQUE COMPACTE                                        */
  /* ================================================================== */
  .header-brand-block { flex:1;min-width:0 }
  .header-reno-name {
    display:block;font-size:1.05rem;font-weight:900;
    letter-spacing:-.5px;line-height:1;color:#fff;
  }
  .header-reno-desc {
    display:block;font-size:.65rem;opacity:.62;
    font-weight:500;margin-top:1px;color:#fff;letter-spacing:.1px;
  }
  /* Sous-titre et auteurs dans le header (RENO supprimé — sous-titre devient le titre principal) */
  .header-reno-sub {
    display:block;font-size:.80rem;opacity:.94;font-weight:700;
    margin-top:0;color:#fff;line-height:1.35;letter-spacing:-.1px;
  }
  .header-reno-authors-hdr {
    display:block;font-size:.63rem;opacity:.68;font-weight:400;
    margin-top:4px;color:#fff;line-height:1.4;
  }
  /* Lettres acrostiche RENO dans les sous-titres */
  .reno-acr { font-size:1.22em; font-weight:800; }
  /* Label multi-établissement (deux lignes) */
  .multi-lbl { line-height:1.15; text-align:center; font-size:.65rem; }
  @media(max-width:380px){
    .header-reno-sub { font-size:.60rem }
    .header-reno-authors-hdr { display:none }
  }

  /* ================================================================== */
  /* V3+ — ACCUEIL MINIMALISTE                                           */
  /* ================================================================== */

  /* Hero zone — aucune carte, espace blanc premium */
  .acc-hero {
    text-align:center;padding:8px 20px 4px;
  }
  .acc-compass {
    display:inline-block;margin-bottom:4px;
  }
  /* Boussole hero : bleu chaud en clair, bleu lumineux en sombre */
  .reno-hero-svg { color:var(--acad-color,var(--blue)) }
  @media(prefers-color-scheme:dark){
    .reno-hero-svg { color:#5b9fd4 }
  }
  html[data-theme="dark"] .reno-hero-svg { color:#5b9fd4 !important }
  html[data-theme="light"] .reno-hero-svg { color:var(--acad-color,var(--blue)) !important }
  .acc-subtitle {
    font-size:1.00rem;font-weight:700;color:var(--text);
    margin:0 auto 4px;line-height:1.5;
    max-width:300px;
  }
  .acc-authors {
    font-size:.70rem;color:var(--muted);opacity:.60;line-height:1.5;
    margin-top:2px;
  }

  /* Bloc accès rapide — label + grid, sans carte */
  .acc-block { margin:0 0 12px }
  .acc-block-label {
    font-size:.63rem;font-weight:700;color:var(--muted);opacity:.65;
    text-transform:uppercase;letter-spacing:.8px;
    margin:0 2px 8px;display:block;
  }

  /* Override des qa-btn dans le contexte Accueil : app-mobile, légers */
  .acc-block .qa-btn {
    background:#fff;
    border:1px solid rgba(0,0,0,.08);
    box-shadow:0 1px 4px rgba(0,0,0,.06);
    min-height:84px;padding:14px 6px 12px;gap:7px;
  }
  .acc-block .qa-btn .qa-ico { font-size:1.90rem }
  .acc-block .qa-btn .qa-label { font-size:.96rem;font-weight:700 }
  .acc-block .qa-btn:hover {
    background:#fafcff;border-color:var(--blue);
    box-shadow:0 2px 10px rgba(45,110,173,.12);transform:translateY(-2px);
  }
  @media(prefers-color-scheme:dark){
    .acc-block .qa-btn { background:#1d2238;border-color:rgba(255,255,255,.08) }
    .acc-block .qa-btn:hover { background:#252c45;border-color:var(--acad-color,var(--blue)) }
  }
  html[data-theme="dark"] .acc-block .qa-btn { background:#1d2238 !important;border-color:rgba(255,255,255,.08) !important }
  html[data-theme="dark"] .acc-block .qa-btn:hover { background:#252c45 !important;border-color:var(--acad-color,var(--blue)) !important }
  html[data-theme="light"] .acc-block .qa-btn { background:#fff !important }

  /* BLOC LIENS DIRECTS — Pronote / ENT / Webmail */
  .acc-liens {
    margin:0 0 12px;
  }
  .acc-liens-label {
    font-size:.63rem;font-weight:700;color:var(--muted);opacity:.65;
    text-transform:uppercase;letter-spacing:.8px;
    margin:0 2px 8px;display:block;
  }
  .acc-liens-grid {
    display:grid;grid-template-columns:repeat(3,1fr);gap:8px;
  }
  .acc-lien-btn {
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:5px;padding:12px 6px 10px;
    background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:14px;
    box-shadow:0 1px 4px rgba(0,0,0,.06);
    text-decoration:none;color:inherit;
    transition:all .18s;min-height:76px;
    font-family:inherit;cursor:pointer;
  }
  .acc-lien-btn .al-ico { font-size:1.75rem;line-height:1 }
  .acc-lien-btn .al-label { font-size:.86rem;font-weight:700;color:var(--muted);line-height:1.2;text-align:center }
  .acc-lien-btn .al-sub { font-size:.65rem;color:var(--muted);opacity:.65;text-align:center;line-height:1.2 }
  .acc-lien-btn:hover {
    background:#fafcff;border-color:var(--blue);
    box-shadow:0 3px 12px rgba(45,110,173,.15);transform:translateY(-1px);
  }
  .acc-lien-btn:hover .al-label { color:var(--blue-dark) }
  .acc-lien-btn.is-customized .al-sub { color:var(--green);opacity:1 }
  .acc-lien-btn.not-configured .al-label { opacity:.55 }
  .acc-lien-btn.not-configured { border-style:dashed }
  @media(prefers-color-scheme:dark){
    .acc-lien-btn { background:#1d2238;border-color:rgba(255,255,255,.08) }
    .acc-lien-btn:hover { background:#252c45;border-color:var(--blue) }
    .acc-lien-btn .al-label { color:rgba(255,255,255,.82);font-weight:700 }
    .acc-lien-btn .al-sub { color:rgba(255,255,255,.52);opacity:1 }
  }
  html[data-theme="dark"] .acc-lien-btn { background:#1d2238 !important;border-color:rgba(255,255,255,.08) !important }
  html[data-theme="dark"] .acc-lien-btn:hover { background:#252c45 !important;border-color:var(--blue) !important }
  html[data-theme="dark"] .acc-lien-btn .al-label { color:rgba(255,255,255,.82) !important;font-weight:700 !important }
  html[data-theme="dark"] .acc-lien-btn .al-sub { color:rgba(255,255,255,.52) !important;opacity:1 !important }
  html[data-theme="light"] .acc-lien-btn { background:#fff !important }
  /* Champ ENT inline dans accueil */
  .acc-ent-field {
    margin-top:8px;display:flex;align-items:center;gap:8px;
    background:#fff;border:1px solid var(--border);border-radius:12px;
    padding:8px 10px;font-size:.8rem;
  }
  .acc-ent-field label { color:var(--muted);font-weight:600;white-space:nowrap;flex:0 0 auto }
  .acc-ent-field input {
    flex:1;min-width:0;border:none;background:transparent;
    font-family:inherit;font-size:.8rem;color:var(--text);
    outline:none;
  }
  .acc-ent-field input::placeholder { color:var(--muted);opacity:.55 }
  @media(prefers-color-scheme:dark){
    .acc-ent-field { background:#1d2238;border-color:rgba(255,255,255,.08) }
  }
  html[data-theme="dark"] .acc-ent-field { background:#1d2238 !important;border-color:rgba(255,255,255,.08) !important }

  /* Checklist mini-barre */
  .checklist-mini {
    display:flex;align-items:center;gap:12px;width:100%;
    padding:12px 15px;background:#fff;
    border:1px solid rgba(0,0,0,.065);border-radius:14px;
    cursor:pointer;font-family:inherit;text-align:left;
    box-shadow:0 1px 3px rgba(0,0,0,.04);
    margin-bottom:8px;color:var(--text);transition:all .15s;
  }
  .checklist-mini:hover {
    box-shadow:0 3px 12px rgba(0,0,0,.08);
    transform:translateY(-1px);border-color:rgba(232,135,42,.35);
  }
  .checklist-mini:active { transform:none }
  .cm-ico { font-size:1.2rem;flex:0 0 auto }
  .cm-body { flex:1;min-width:0 }
  .cm-title { display:block;font-size:.88rem;font-weight:700;color:var(--text) }
  .cm-sub { display:block;font-size:.72rem;color:var(--muted);margin-top:1px }
  .cm-progress { width:60px;flex:0 0 auto }
  .cm-bar { background:#f0ece3;border-radius:10px;height:3px;overflow:hidden }
  .cm-fill { height:100%;background:linear-gradient(90deg,var(--orange),var(--yellow));border-radius:10px;transition:width .4s }
  .cm-arrow { flex:0 0 auto;color:var(--muted);font-size:1.1rem;font-weight:300 }
  @media(prefers-color-scheme:dark){
    .checklist-mini { background:#1d2238;border-color:rgba(255,255,255,.08) }
    .cm-bar { background:#252c45 }
  }
  html[data-theme="dark"] .checklist-mini { background:#1d2238 !important;border-color:rgba(255,255,255,.08) !important }
  html[data-theme="dark"] .cm-bar { background:#252c45 }
  html[data-theme="light"] .checklist-mini { background:#fff !important;border-color:rgba(0,0,0,.07) !important }

  /* Accordéons natifs (details/summary) — Conseils & Sécurité */
  .acc-expandables { display:flex;flex-direction:column;gap:7px;margin-top:2px }
  .acc-details {
    background:#fff;border:1px solid rgba(0,0,0,.065);
    border-radius:13px;overflow:hidden;
  }
  .acc-details summary {
    padding:11px 15px;cursor:pointer;
    font-size:.85rem;font-weight:600;color:var(--text);
    display:flex;align-items:center;gap:7px;
    list-style:none;user-select:none;transition:background .12s;
  }
  .acc-details summary::-webkit-details-marker { display:none }
  .acc-details summary::marker { content:"" }
  .acc-details summary:hover { background:#f9f7f3 }
  .acc-sum-arrow {
    margin-left:auto;color:var(--muted);font-size:.9rem;
    transition:transform .22s;display:inline-block;opacity:.55;
  }
  .acc-details[open] .acc-sum-arrow { transform:rotate(90deg) }
  .acc-details-body {
    padding:0 15px 14px;
    border-top:1px solid rgba(0,0,0,.055);
  }
  @media(prefers-color-scheme:dark){
    .acc-details { background:#1d2238;border-color:rgba(255,255,255,.08) }
    .acc-details summary:hover { background:#252c45 }
    .acc-details-body { border-top-color:rgba(255,255,255,.08) }
  }
  html[data-theme="dark"] .acc-details { background:#1d2238 !important;border-color:rgba(255,255,255,.08) !important }
  html[data-theme="dark"] .acc-details summary:hover { background:#252c45 !important }
  html[data-theme="dark"] .acc-details-body { border-top-color:rgba(255,255,255,.08) !important }
  html[data-theme="light"] .acc-details { background:#fff !important }
  html[data-theme="light"] .acc-details summary:hover { background:#f9f7f3 !important }

  /* ================================================================== */
  /* V3 — TOGGLE THÈME (Clair / Sombre / Auto)                          */
  /* ================================================================== */
  .theme-toggle {
    display:inline-flex;align-items:center;gap:4px;
    background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.28);
    border-radius:18px;padding:5px 11px;
    font-size:.72rem;font-weight:700;color:#fff;
    cursor:pointer;font-family:inherit;transition:background .15s;
    white-space:nowrap;flex:0 0 auto;line-height:1;
  }
  .theme-toggle:hover { background:rgba(255,255,255,.27) }
  .theme-toggle:focus-visible { outline:2px solid #fff;outline-offset:2px }

  /* Bouton taille de texte — même style que theme-toggle */
  .font-size-btn {
    display:inline-flex;align-items:center;gap:4px;
    background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.28);
    border-radius:18px;padding:5px 11px;
    font-size:.72rem;font-weight:700;color:#fff;
    cursor:pointer;font-family:inherit;transition:background .15s;
    white-space:nowrap;flex:0 0 auto;line-height:1;
  }
  .font-size-btn:hover { background:rgba(255,255,255,.27) }
  .font-size-btn:focus-visible { outline:2px solid #fff;outline-offset:2px }

  /* ================================================================== */
  /* V3 — HEADER COMPACT                                                */
  /* ================================================================== */
  .header-top-row {
    display:flex;align-items:flex-start;gap:8px;
  }
  .header-brand { display:flex;align-items:center;gap:9px;flex:1 1 auto;min-width:0 }
  .header-brand-text { flex:1;min-width:0 }
  .header-controls {
    display:flex;align-items:center;gap:6px;flex:0 0 auto;padding-top:2px;
  }
  @media(max-width:480px) {
    header.app-header { padding:7px 13px 10px }
    header h1 { font-size:1rem }
    .header-meta { margin-top:3px }
    .header-meta .app-authors { font-size:.8rem }
  }

  /* ================================================================== */
  /* V3 — ACCUEIL : CARTE BIENVENUE                                     */
  /* ================================================================== */
  .welcome-card {
    background:linear-gradient(150deg,#eaf3fb 0%,#ffffff 45%,#fef8ee 100%);
    border:1px solid rgba(0,0,0,.055);border-radius:var(--radius);
    padding:22px 20px 18px;margin-bottom:12px;
    box-shadow:0 1px 4px rgba(15,25,45,.05),0 4px 16px rgba(15,25,45,.06);
    text-align:center;
  }
  .welcome-reno-badge {
    display:inline-flex;align-items:center;gap:8px;
    background:linear-gradient(135deg,#1b3e72,#2d6ead);color:#fff;
    padding:6px 16px 6px 10px;border-radius:22px;
    font-size:.74rem;font-weight:800;letter-spacing:.8px;margin-bottom:14px;
    box-shadow:0 2px 8px rgba(28,78,130,.25);
  }
  .welcome-card .wc-title {
    margin:0 0 10px;font-size:1.02rem;font-weight:800;color:var(--blue-dark);line-height:1.45;
  }
  .welcome-card .wc-authors {
    font-size:.81rem;color:var(--muted);line-height:1.65;
  }
  @media(prefers-color-scheme:dark){
    .welcome-card {
      background:linear-gradient(135deg,#192838 0%,#1f2326 55%,#1f2418 100%);
      border-color:#2a4058;
    }
    .welcome-card .wc-title { color:#9ec7f0 }
  }
  html[data-theme="dark"] .welcome-card {
    background:linear-gradient(135deg,#192838 0%,#1f2326 55%,#1f2418 100%);
    border-color:#2a4058;
  }
  html[data-theme="dark"] .welcome-card .wc-title { color:#9ec7f0 }
  html[data-theme="light"] .welcome-card {
    background:linear-gradient(135deg,#e8f4fc 0%,#ffffff 55%,#fffde8 100%) !important;
    border-color:#cce4f5 !important;
  }
  html[data-theme="light"] .welcome-card .wc-title { color:var(--blue-dark) !important }

  /* ================================================================== */
  /* V3 — GRILLE ACCÈS RAPIDE                                           */
  /* ================================================================== */
  .quick-access-grid {
    display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px;
  }
  @media(max-width:360px) { .quick-access-grid { grid-template-columns:repeat(2,1fr) } }
  @media(min-width:361px) and (max-width:520px) { .quick-access-grid { grid-template-columns:repeat(4,1fr) } }
  .qa-btn {
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:6px;padding:14px 6px 12px;
    background:#f8f5ed;border:1.5px solid #eae4d0;border-radius:14px;
    cursor:pointer;font-family:inherit;color:var(--text);
    transition:all .18s cubic-bezier(.2,.8,.2,1);
    text-align:center;min-height:78px;
  }
  .qa-btn .qa-ico { font-size:1.80rem;line-height:1 }
  .qa-btn .qa-label { font-size:.92rem;font-weight:700;color:var(--muted);line-height:1.2 }
  .qa-btn:hover {
    background:#fff;border-color:var(--acad-color,var(--blue));
    transform:translateY(-2px);box-shadow:0 4px 14px rgba(0,0,0,.18);
  }
  .qa-btn:hover .qa-label { color:var(--acad-color,var(--blue-dark)) }
  .qa-btn:active { transform:translateY(0);box-shadow:none }
  @media(prefers-color-scheme:dark){
    .qa-btn { background:#2a2e33;border-color:#3a3f44 }
    .qa-btn:hover { background:#32383e;border-color:var(--acad-color,var(--blue)) }
    .qa-btn .qa-label { color:rgba(255,255,255,.82);font-weight:700 }
  }
  html[data-theme="dark"] .qa-btn { background:#1e2338;border-color:#2d3450 }
  html[data-theme="dark"] .qa-btn:hover { background:#252c45;border-color:var(--acad-color,var(--blue)) }
  html[data-theme="dark"] .qa-btn .qa-label { color:rgba(255,255,255,.82) !important;font-weight:700 !important }
  html[data-theme="light"] .qa-btn { background:#f8f5ed !important;border-color:#eae4d0 !important }
  html[data-theme="light"] .qa-btn:hover { background:#fff !important;border-color:var(--acad-color,var(--blue)) !important }

  /* ================================================================== */
  /* V3 — CHECKLIST PREVIEW (accueil)                                   */
  /* ================================================================== */
  .checklist-preview-btn {
    display:flex;align-items:center;gap:14px;width:100%;
    background:linear-gradient(135deg,#fff8ed,#fffdf6);
    border:1.5px solid #f0dba8;border-radius:14px;
    padding:14px 16px;cursor:pointer;font-family:inherit;color:var(--text);
    transition:all .15s;text-align:left;margin-top:0;
  }
  .checklist-preview-btn:hover { border-color:var(--orange);box-shadow:0 4px 14px rgba(243,156,18,.2);transform:translateY(-1px) }
  .checklist-preview-btn:active { transform:translateY(0) }
  .cpb-icon { font-size:1.9rem;flex:0 0 auto }
  .cpb-body { flex:1;min-width:0 }
  .cpb-title { font-weight:800;font-size:.95rem;color:var(--orange-dark) }
  .cpb-sub { font-size:.8rem;color:var(--muted);margin-top:2px }
  .cpb-bar { background:#f4f1e8;border-radius:20px;height:5px;overflow:hidden;margin-top:7px }
  .cpb-bar-fill { height:100%;background:linear-gradient(90deg,var(--orange),var(--yellow));border-radius:20px;transition:width .4s }
  .cpb-arrow { flex:0 0 auto;font-size:1.3rem;color:var(--muted) }
  @media(prefers-color-scheme:dark){
    .checklist-preview-btn { background:linear-gradient(135deg,#2a2218,#1f2326);border-color:#4a3820 }
  }
  html[data-theme="dark"] .checklist-preview-btn { background:linear-gradient(135deg,#2a2218,#1f2326);border-color:#4a3820 }
  html[data-theme="light"] .checklist-preview-btn { background:linear-gradient(135deg,#fff8ed,#fffdf6) !important;border-color:#f0dba8 !important }

  /* ================================================================== */
  /* V3 — CONSEILS UTILES                                               */
  /* ================================================================== */
  .conseil-list { display:flex;flex-direction:column;gap:9px;margin-top:4px }
  .conseil-item {
    display:flex;align-items:flex-start;gap:11px;padding:11px 13px;
    background:linear-gradient(135deg,#fffde8,#fffbf0);
    border:1px solid #f0e2a0;border-left:3px solid var(--yellow);
    border-radius:9px;font-size:.88rem;line-height:1.5;
  }
  .conseil-item .ci-ico { flex:0 0 auto;font-size:1.15rem;margin-top:1px }
  .conseil-item .ci-body { flex:1 }
  .conseil-item .ci-title { font-weight:700;color:#8a6e00;margin-bottom:2px;font-size:.9rem }
  @media(prefers-color-scheme:dark){
    .conseil-item { background:linear-gradient(135deg,#2a2518,#1f2420);border-color:#4a3e15;border-left-color:var(--yellow) }
    .conseil-item .ci-title { color:#e0b940 }
  }
  html[data-theme="dark"] .conseil-item { background:linear-gradient(135deg,#2a2518,#1f2420);border-color:#4a3e15;border-left-color:var(--yellow) }
  html[data-theme="dark"] .conseil-item .ci-title { color:#e0b940 }
  html[data-theme="light"] .conseil-item { background:linear-gradient(135deg,#fffde8,#fffbf0) !important;border-color:#f0e2a0 !important }
  html[data-theme="light"] .conseil-item .ci-title { color:#8a6e00 !important }

  /* ================================================================== */
  /* V3 — RUBRIQUE SÉCURITÉ                                             */
  /* ================================================================== */
  .security-list { display:flex;flex-direction:column;gap:10px;margin-top:6px }
  .security-item {
    display:flex;align-items:flex-start;gap:12px;padding:11px 13px;
    background:#fdf7f7;border:1px solid #f0d0d0;border-left:3px solid var(--red);
    border-radius:9px;font-size:.88rem;line-height:1.5;
  }
  .security-item .si-ico { flex:0 0 auto;font-size:1.25rem;margin-top:1px }
  .security-item .si-body { flex:1 }
  .security-item .si-title { font-weight:700;color:var(--red-dark);margin-bottom:3px;font-size:.9rem }
  .security-item kbd {
    display:inline-block;padding:1px 5px;border-radius:4px;
    background:#f4f4f4;border:1px solid #ccc;font-size:.8em;
    font-family:ui-monospace,SFMono-Regular,Consolas,monospace;
    color:var(--text);
  }
  @media(prefers-color-scheme:dark){
    .security-item { background:#2a1f1f;border-color:#4a2828;border-left-color:var(--red) }
    .security-item kbd { background:#333;border-color:#555;color:#e8e6e1 }
  }
  html[data-theme="dark"] .security-item { background:#2a1f1f;border-color:#4a2828;border-left-color:var(--red) }
  html[data-theme="dark"] .security-item kbd { background:#333;border-color:#555;color:#e8e6e1 }
  html[data-theme="light"] .security-item { background:#fdf7f7 !important;border-color:#f0d0d0 !important }

  /* ================================================================== */
  /* V3 — DARK MODE FORCÉ (data-theme="dark")                           */
  /* ================================================================== */
  html[data-theme="dark"] {
    --bg:#15192a;--card:#1d2238;--text:#e4e2db;--muted:#96a8bc;
    --border:#272d46;--yellow-soft:#1c1b0f;
  }
  html[data-theme="dark"] nav.tabs { background:#191d2e !important;border-bottom-color:#23283e !important }
  html[data-theme="dark"] nav.tabs button { background:#222641 !important;color:var(--muted) !important }
  html[data-theme="dark"] nav.tabs button.active { background:var(--acad-color,var(--blue)) !important;color:#fff !important }
  html[data-theme="dark"] .card { border-color:rgba(255,255,255,.07) }
  html[data-theme="dark"] .card h2 { border-bottom-color:rgba(255,255,255,.09) }
  html[data-theme="dark"] .contact-row { background:#1d2238 }
  html[data-theme="dark"] .acronym-item { background:#2e2220 }
  html[data-theme="dark"] .info-banner { background:linear-gradient(135deg,#28251a,#221f14) }
  html[data-theme="dark"] .link-item { background:#28251a;border-color:#453d20 }
  html[data-theme="dark"] .quick-search-results { background:#1c2136 }
  html[data-theme="dark"] .qs-result:hover,html[data-theme="dark"] .qs-result.active { background:#252c45 }
  html[data-theme="dark"] .qs-result.qs-acronym .qs-ico { background:#382220 }
  html[data-theme="dark"] .qs-result.qs-site .qs-ico { background:#1a2840 }
  html[data-theme="dark"] .qs-tools { border-left-color:#252c45 }
  html[data-theme="dark"] .qs-tool:hover { background:#252c45;color:#8bbfe0 }
  html[data-theme="dark"] .qs-cat { background:#252c45 }
  html[data-theme="dark"] .qs-local-badge { background:#3a2c08;color:#ffd76b }
  html[data-theme="dark"] .qs-url-hint { background:#1a2840;color:#8bbfe0 }
  html[data-theme="dark"] .link-item-tools .link-edit-btn:hover,
  html[data-theme="dark"] .link-item-tools .link-reset-btn:hover { background:#252c45 }
  html[data-theme="dark"] .reset-field-btn:hover { background:#252c45 }
  html[data-theme="dark"] .reveal-btn:hover { background:#252c45 }
  html[data-theme="dark"] .career-step { background:linear-gradient(135deg,#1e2640,#1a1e30);border-color:#303860 }
  html[data-theme="dark"] .career-step-header { border-bottom-color:#303860 }
  html[data-theme="dark"] .perso-badge { background:rgba(142,68,173,.25);color:#d6a8e8 }
  html[data-theme="dark"] .url-local-badge { background:rgba(243,156,18,.22);color:#f1c40f;border-color:rgba(243,156,18,.5) }
  html[data-theme="dark"] .mini-btn { background:#1a1e30 }
  html[data-theme="dark"] .acronym-item.is-perso { background:#281e3c }
  html[data-theme="dark"] .cat-chip { background:#252c45 }
  html[data-theme="dark"] .site-card { background:#1d2238 }
  html[data-theme="dark"] .resource-row { background:#181c2c }
  html[data-theme="dark"] .resource-row:hover { background:#1e2338 }
  html[data-theme="dark"] .perso-tools { background:linear-gradient(135deg,#2e2440,#241c33);border-color:#3f315a }
  html[data-theme="dark"] .local-notice { background:linear-gradient(135deg,#1f2e3d,#1a2530) }
  html[data-theme="dark"] .modal-close:hover { background:#33383d }
  html[data-theme="dark"] .modal-body select { background:#1f2326 }
  html[data-theme="dark"] .fav-line,html[data-theme="dark"] .recent-line { background:#262a2e }
  html[data-theme="dark"] .letter-group { background:#262a2e }
  html[data-theme="dark"] .letter-header { background:linear-gradient(90deg,#3a2624,#2e2020) }
  html[data-theme="dark"] .letter-header:hover { background:linear-gradient(90deg,#4a302a,#3a2626) }
  html[data-theme="dark"] .letter-content { background:#262a2e }
  html[data-theme="dark"] .podcast-card { background:linear-gradient(135deg,#2a2010,#1f2120);border-color:#4a3820 }
  html[data-theme="dark"] .modal { background:#262a2e }

  /* ================================================================== */
  /* V3 — LIGHT MODE FORCÉ (annule le media dark)                        */
  /* ================================================================== */
  @media(prefers-color-scheme:dark) {
    html[data-theme="light"] {
      --bg:#f8f4ea !important;--card:#ffffff !important;--text:#1f2d3d !important;
      --muted:#778591 !important;--border:#ece7d9 !important;--yellow-soft:#fff5d4 !important;
    }
    html[data-theme="light"] nav.tabs { background:#fff !important }
    html[data-theme="light"] nav.tabs button { background:#f4f1e8 !important;color:#1f2d3d !important }
    html[data-theme="light"] .contact-row { background:#fff !important }
    html[data-theme="light"] .acronym-item { background:#fdf0ee !important }
    html[data-theme="light"] .info-banner { background:linear-gradient(135deg,#fef5d4,#fff8e1) !important }
    html[data-theme="light"] .link-item { background:#fff5d4 !important;border-color:#f1e6b8 !important }
    html[data-theme="light"] .quick-search-results { background:#fff !important }
    html[data-theme="light"] .qs-result:hover,html[data-theme="light"] .qs-result.active { background:#f0f7ff !important }
    html[data-theme="light"] .career-step { background:linear-gradient(135deg,#f6f9ff,#fff) !important;border-color:#dde6f5 !important }
    html[data-theme="light"] .career-step-header { border-bottom-color:#d4dff0 !important }
    html[data-theme="light"] .site-card { background:#fff !important }
    html[data-theme="light"] .resource-row { background:#f8f6ef !important }
    html[data-theme="light"] .resource-row:hover { background:#f0ece0 !important }
    html[data-theme="light"] .perso-tools { background:linear-gradient(135deg,#f6effb,#faf5fd) !important;border-color:#e6d6f0 !important }
    html[data-theme="light"] .local-notice { background:linear-gradient(135deg,#eaf4fb,#f0f8ff) !important }
    html[data-theme="light"] .modal-body select { background:#fffdf6 !important }
    html[data-theme="light"] .fav-line,html[data-theme="light"] .recent-line { background:#fff !important }
    html[data-theme="light"] .letter-group { background:#fff !important }
    html[data-theme="light"] .letter-header { background:linear-gradient(90deg,#fef0ed,#fff5f3) !important }
    html[data-theme="light"] .podcast-card { background:linear-gradient(135deg,#fff5e8,#fff8d4) !important;border-color:#f5e1a8 !important }
    html[data-theme="light"] .modal { background:#fff !important }
    html[data-theme="light"] .modal-close:hover { background:#f0f0f0 !important }
    html[data-theme="light"] .mini-btn { background:#fff !important }
    html[data-theme="light"] .cat-chip { background:#fff !important }
    html[data-theme="light"] .acronym-item.is-perso { background:#f6effb !important }
    html[data-theme="light"] .security-item { background:#fdf7f7 !important }
    html[data-theme="light"] .conseil-item { background:linear-gradient(135deg,#fffde8,#fffbf0) !important }
    html[data-theme="light"] .qa-btn { background:#f8f5ed !important }
  }

  /* ================================================================= */
  /* MOBILE — éléments de base (masqués sur desktop, affichés sur mob) */
  /* ================================================================= */

  /* Hamburger — masqué desktop, affiché mobile/tablette */
  .mobile-menu-btn{
    display:none;flex:0 0 44px;align-items:center;justify-content:center;
    background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.28);
    color:#fff;border-radius:8px;padding:7px 9px;cursor:pointer;line-height:1;
  }
  .mobile-menu-btn:hover{background:rgba(255,255,255,.30)}
  .mobile-menu-btn svg{display:block}

  /* Bottom navigation — masquée desktop */
  .mobile-bottom-nav{
    display:none;
    position:fixed;bottom:0;left:0;right:0;z-index:300;
    background:var(--card);border-top:1px solid var(--border);
    box-shadow:0 -2px 12px rgba(15,25,45,.08);
  }
  .mbn-inner{
    display:flex;align-items:stretch;height:58px;
    padding-left:env(safe-area-inset-left,0px);
    padding-right:env(safe-area-inset-right,0px);
  }
  .mbn-item{
    flex:1;display:flex;flex-direction:column;align-items:center;
    justify-content:center;gap:3px;padding:6px 4px 4px;
    background:none;border:none;cursor:pointer;
    color:var(--muted);font-family:inherit;font-size:.62rem;font-weight:600;
    min-width:0;transition:color .15s;-webkit-tap-highlight-color:transparent;
  }
  .mbn-item.active{color:var(--blue)}
  .mbn-item svg{width:22px;height:22px;stroke-width:2;transition:transform .15s}
  .mbn-item.active svg{transform:scale(1.12)}
  .mbn-item span{line-height:1;white-space:nowrap}
  .mbn-safearea{
    height:env(safe-area-inset-bottom,0px);
    background:var(--card);
  }

  /* Sélecteur de département — toutes les académies */
  .academy-dept-card{display:none}
  html[data-academy] .academy-dept-card{display:block}
  .dept-select-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
  .dept-select-row label{font-size:.82rem;font-weight:600;color:var(--text);white-space:nowrap}
  .dept-select{
    flex:1;min-width:0;padding:7px 10px;border:1.5px solid var(--border);
    border-radius:9px;background:var(--bg);color:var(--text);
    font-family:inherit;font-size:.85rem;cursor:pointer;
  }
  .dept-select:focus{outline:2px solid var(--blue);outline-offset:1px}
  .dept-dsden-info{
    font-size:.8rem;color:var(--muted);padding:8px 10px;
    background:var(--bg);border-radius:8px;border:1px solid var(--border);
    display:none;gap:6px;flex-direction:column;
  }
  .dept-dsden-info.visible{display:flex}
  .dept-dsden-info strong{color:var(--text);font-weight:600}
  .dept-dsden-info a{color:var(--blue);text-decoration:none}
  .dept-dsden-info a:hover{text-decoration:underline}

  /* Drawer — masqué par défaut */
  .mobile-drawer{display:none;position:fixed;inset:0;z-index:400}
  .mobile-drawer.open{display:block}
  .drawer-overlay{
    position:absolute;inset:0;background:rgba(15,25,45,.48);
    animation:mDrawFade .22s ease;
  }
  .drawer-panel{
    position:absolute;top:0;right:0;bottom:0;width:min(82vw,300px);
    background:var(--card);
    box-shadow:-4px 0 28px rgba(15,25,45,.22);
    display:flex;flex-direction:column;overflow:hidden;
    animation:mDrawSlideIn .25s ease forwards;
    padding-top:env(safe-area-inset-top,0px);
    padding-bottom:env(safe-area-inset-bottom,0px);
    /* Safari : z-index explicite pour garantir la priorité sur .drawer-overlay */
    z-index:1;
  }
  .mobile-drawer.closing .drawer-panel{animation:mDrawSlideOut .22s ease forwards}
  .mobile-drawer.closing .drawer-overlay{animation:mDrawFade .22s ease reverse}
  @keyframes mDrawFade{from{opacity:0}to{opacity:1}}
  @keyframes mDrawSlideIn{from{transform:translateX(100%)}to{transform:translateX(0)}}
  @keyframes mDrawSlideOut{from{transform:translateX(0)}to{transform:translateX(100%)}}

  .drawer-head{
    display:flex;align-items:center;gap:10px;padding:12px 14px;
    background:linear-gradient(158deg,#1a3c6e 0%,#265f9a 100%);
    flex-shrink:0;
  }
  .drawer-head-compass{flex-shrink:0;opacity:.90}
  .drawer-head-title{font-size:.84rem;font-weight:800;color:#fff;flex:1;line-height:1.3}
  .drawer-head-sub{font-size:.64rem;color:rgba(255,255,255,.72);font-weight:500;display:block;margin-top:1px}
  .drawer-close{
    background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.28);
    color:#fff;border-radius:8px;padding:6px 10px;font-size:1.1rem;
    cursor:pointer;line-height:1;flex-shrink:0;
    touch-action:manipulation;-webkit-tap-highlight-color:transparent;
  }
  .drawer-close:hover{background:rgba(255,255,255,.30)}
  .drawer-body{flex:1;overflow-y:auto;padding:6px 0 8px}
  .drawer-section-label{
    font-size:.64rem;font-weight:800;color:var(--muted);text-transform:uppercase;
    letter-spacing:.07em;padding:12px 16px 4px;
  }
  .drawer-tab-btn{
    display:flex;align-items:center;gap:12px;width:100%;
    padding:11px 16px;border:none;background:none;
    font-family:inherit;font-size:.90rem;font-weight:600;color:var(--text);
    cursor:pointer;text-align:left;transition:background .12s;
    -webkit-tap-highlight-color:transparent;
    touch-action:manipulation;
  }
  .drawer-tab-btn:hover,.drawer-tab-btn:active{background:rgba(0,0,0,.04)}
  .drawer-tab-btn.active{color:var(--blue);background:rgba(45,110,173,.07)}
  .drawer-tab-btn .dtb-ico{font-size:1.25rem;width:26px;text-align:center;flex-shrink:0}
  .drawer-divider{height:1px;background:var(--border);margin:6px 16px}
  .drawer-foot{border-top:1px solid var(--border);padding:12px 16px;flex-shrink:0}
  .drawer-theme-row{display:flex;align-items:center;justify-content:space-between;gap:8px}
  .drawer-theme-label{font-size:.80rem;font-weight:600;color:var(--muted)}

  /* Multi-étab dans le drawer */
  .drawer-multi-row{
    display:flex;align-items:center;gap:12px;
    padding:9px 16px;
    touch-action:manipulation;
  }
  .drawer-multi-label{
    display:flex;align-items:center;gap:12px;flex:1;
    font-family:inherit;font-size:.90rem;font-weight:600;color:var(--text);
  }
  .drawer-multi-switch{
    cursor:pointer;user-select:none;flex-shrink:0;
    touch-action:manipulation;-webkit-tap-highlight-color:transparent;
  }
  .drawer-etab-select-wrap{padding:0 16px 10px}
  .drawer-etab-select{
    width:100%;padding:8px 10px;border-radius:8px;
    border:1.5px solid var(--border);
    background:var(--bg);color:var(--text);
    font-family:inherit;font-size:.86rem;
  }

  /* Contrôle taille texte A− / A+ dans le drawer */
  .drawer-font-ctrl{
    display:flex;align-items:center;gap:4px;
  }
  .dfc-btn{
    display:flex;align-items:center;justify-content:center;
    min-width:36px;height:32px;padding:0 8px;
    border-radius:8px;cursor:pointer;
    font-family:inherit;font-size:.88rem;font-weight:800;
    border:2px solid var(--blue);
    background:var(--bg);color:var(--blue);
    transition:background .12s,color .12s,box-shadow .12s;
    box-shadow:0 1px 3px rgba(0,0,0,.12);
    line-height:1;
    touch-action:manipulation;-webkit-tap-highlight-color:transparent;
  }
  .dfc-btn:hover:not(:disabled){
    background:var(--blue);color:#fff;
    box-shadow:0 2px 8px rgba(37,99,235,.35);
  }
  .dfc-btn:disabled{
    opacity:.35;cursor:not-allowed;
    border-color:var(--border);color:var(--muted);
    background:transparent;box-shadow:none;
  }
  .dfc-level{
    min-width:48px;text-align:center;
    font-size:.78rem;font-weight:700;color:var(--muted);
    padding:0 4px;
  }
  /* Dark mode: contraste renforcé */
  html[data-theme="dark"] .dfc-btn{
    border-color:#5a8df0;color:#5a8df0;background:#1a1f3a;
  }
  html[data-theme="dark"] .dfc-btn:hover:not(:disabled){
    background:#5a8df0;color:#fff;
  }

  /* Heading mobile accueil ACCÈS RAPIDES — masqué desktop */
  .mob-section-hd{
    display:none;font-size:.66rem;font-weight:800;color:var(--muted);
    text-transform:uppercase;letter-spacing:.08em;margin:0 0 10px;
    display:flex;align-items:center;gap:6px;
  }
  /* Boutons export/import dans accueil — masqués desktop */
  .acc-data-actions{display:none}
  .acc-data-btn{
    display:flex;align-items:center;justify-content:center;gap:7px;
    width:100%;padding:12px 14px;border-radius:12px;
    border:1.5px solid var(--border);background:var(--card);
    font-family:inherit;font-size:.86rem;font-weight:700;color:var(--text);
    cursor:pointer;box-shadow:var(--shadow);
    -webkit-tap-highlight-color:transparent;transition:background .12s,box-shadow .12s;
  }
  .acc-data-btn:active{background:var(--bg);box-shadow:none}
  .acc-data-btn svg{flex-shrink:0;stroke:var(--acad-color,var(--blue))}
  #mobileExportBtn{background:var(--acad-color,var(--blue));color:#fff;border-color:var(--acad-color,var(--blue))}
  #mobileExportBtn svg{stroke:#fff}
  #mobileRestoreBtn{color:var(--acad-color,var(--blue));border-color:var(--acad-color,var(--blue))}
  #mobileRestoreBtn svg{stroke:var(--acad-color,var(--blue))}

  /* ================================================================= */
  /* @media SMARTPHONE — ≤767px                                        */
  /* ================================================================= */
  @media(max-width:767px){

    body{padding-bottom:calc(60px + env(safe-area-inset-bottom,0px))}

    /* Header : réorganisation compacte mobile */
    header.app-header{
      padding:8px 12px 8px;
      position:sticky;top:0;z-index:200;
    }
    .header-title .h1-ico svg{width:64px;height:64px}
    .header-reno-sub{
      font-size:.76rem;line-height:1.35;
    }
    .header-reno-authors-hdr{
      display:block;font-size:.57rem;opacity:.78;margin-top:2px;
    }
    .header-controls{gap:5px}
    /* Thème + Multi-étab + Taille texte : masqués dans le header, présents dans le drawer */
    #themeBtn{display:none}
    #fontSizeBtn{display:none}
    #desktopAcademyBtn{display:none}
    header .multi-switch{display:none}
    /* Nav basse — 6 items */
    .mbn-item{font-size:.55rem}
    .mbn-item svg{width:20px;height:20px}
    .mobile-menu-btn{display:flex}

    /* Search bar */
    .search-ham-row{margin-top:8px}
    .quick-search-input{padding:11px 36px 11px 38px;font-size:.90rem;border-radius:12px}

    /* etab-bar */
    .etab-bar{padding:8px 10px}

    /* Desktop tabs nav : masquée */
    nav.tabs{display:none}

    /* Bottom nav : visible */
    .mobile-bottom-nav{display:block}

    /* Main */
    main{padding-top:0}
    .section{padding:14px 14px 28px}

    /* ---- ACCUEIL MOBILE ---- */
    .acc-hero{display:none}
    .mob-section-hd{display:flex}
    .acc-block{margin:0 0 14px}
    .acc-block-label{display:none}
    .quick-access-grid{
      display:grid;grid-template-columns:repeat(4,1fr);gap:8px;
    }
    .acc-block .qa-btn{
      min-height:78px;padding:10px 4px 8px;gap:5px;
      flex-direction:column;align-items:center;
      background:var(--card) !important;
      border:1px solid var(--border);border-radius:14px;
      box-shadow:var(--shadow);
    }
    .acc-block .qa-btn .qa-ico{font-size:1.90rem;line-height:1}
    .acc-block .qa-btn .qa-label{
      font-size:.64rem;font-weight:700;color:var(--text) !important;
      white-space:nowrap;text-align:center;
    }
    html[data-theme="dark"] .acc-block .qa-btn .qa-label{color:rgba(255,255,255,.88) !important}

    /* acc-liens */
    .acc-liens{margin:0 0 14px}
    .acc-liens-grid{gap:8px}
    .acc-lien-btn{min-height:72px;border-radius:14px;padding:10px 6px}
    .acc-lien-btn .al-ico{font-size:1.65rem}
    .acc-lien-btn .al-label{font-size:.72rem}
    .acc-lien-btn .al-sub{font-size:.60rem}
    .acc-ent-field label{font-size:.72rem}

    /* Checklist + accordéons */
    .checklist-mini{border-radius:14px;box-shadow:var(--shadow)}
    .acc-expandables{gap:8px;display:flex;flex-direction:column}
    .acc-details{border-radius:14px;box-shadow:var(--shadow)}
    .acc-details summary{padding:14px 16px;font-size:.92rem}

    /* Export/import mobile */
    .acc-data-actions{
      display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;
    }

    /* Footer : masqué mobile */
    footer{display:none}

    /* Sections générales */
    .section h2{font-size:1.05rem;margin-bottom:12px}
    .field label{font-size:.82rem}
    .field input,.field textarea,.field select{font-size:.92rem;padding:10px 12px}

    /* Dark mode */
    html[data-theme="dark"] .drawer-tab-btn:hover{background:rgba(255,255,255,.06)}
    html[data-theme="dark"] .acc-data-btn{background:var(--card);border-color:var(--border)}
  }

  /* ================================================================= */
  /* @media TABLETTE — 768px à 1023px                                  */
  /* ================================================================= */
  @media(min-width:768px) and (max-width:1023px){

    body{padding-bottom:calc(66px + env(safe-area-inset-bottom,0px))}

    header.app-header{position:sticky;top:0;z-index:200}
    .mobile-menu-btn{display:flex}
    nav.tabs{display:none}
    .mobile-bottom-nav{display:block}
    main{padding-top:0}
    .section{padding:20px 20px 36px}

    /* Accueil tablette */
    .acc-hero{
      display:flex;align-items:flex-start;gap:16px;
      padding:16px 20px 10px;text-align:left;
    }
    .acc-compass svg{width:80px;height:80px}
    .acc-subtitle{font-size:1.05rem;margin:0 0 4px}
    .acc-authors{font-size:.76rem}
    .mob-section-hd{display:flex;padding:0 0 10px}
    .acc-block-label{display:none}

    /* Grille 4 colonnes tablette */
    .quick-access-grid{grid-template-columns:repeat(4,1fr);gap:14px}
    .acc-block .qa-btn{
      min-height:96px;border-radius:16px;
      background:var(--card) !important;
      border:1px solid var(--border);
      box-shadow:var(--shadow);
    }
    .acc-block .qa-btn .qa-ico{font-size:2.2rem}
    .acc-block .qa-btn .qa-label{font-size:.78rem;font-weight:700;color:var(--text) !important}
    html[data-theme="dark"] .acc-block .qa-btn .qa-label{color:rgba(255,255,255,.88) !important}

    /* acc-liens tablette */
    .acc-liens-grid{gap:12px}
    .acc-lien-btn{min-height:84px;border-radius:16px}

    /* Checklist + accordéons tablette */
    .checklist-mini{border-radius:16px;box-shadow:var(--shadow)}
    .acc-expandables{gap:10px;display:flex;flex-direction:column}
    .acc-details{border-radius:16px;box-shadow:var(--shadow)}
    .acc-details summary{padding:16px 18px;font-size:.96rem}

    /* Export/import tablette */
    .acc-data-actions{
      display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px;
    }
    .acc-data-btn{font-size:.90rem;padding:14px 16px;border-radius:14px}

    /* Footer masqué tablette */
    footer{display:none}
    /* Mentions légales : lisibilité sur iPad */
    #tab-legal p{font-size:.93rem !important;line-height:1.7}
    #tab-legal h3{font-size:1.00rem}
    /* Multi-appareils : lisibilité sur iPad */
    #tab-multiappareils p{font-size:.93rem !important;line-height:1.7}
    #tab-multiappareils h3{font-size:1.00rem}
  }

  /* ================================================================== */
  /* OVERLAY ONBOARDING v4 — saisie département + carte optionnelle     */
  /* ================================================================== */
  .academy-picker-overlay{
    position:fixed;inset:0;z-index:2000;
    background:rgba(10,20,40,.85);backdrop-filter:blur(5px);
    display:flex;align-items:center;justify-content:center;
    padding:20px 16px;overflow-y:auto;
    opacity:0;pointer-events:none;transition:opacity .25s;
  }
  .academy-picker-overlay.visible{opacity:1;pointer-events:auto}
  .academy-picker-card{
    background:var(--card);border-radius:22px;width:100%;max-width:440px;
    box-shadow:0 10px 48px rgba(0,0,0,.38);border:1px solid var(--border);
    padding:28px 24px 20px;animation:fadeIn .22s ease;
  }
  .academy-picker-card h2{
    margin:0 0 4px;font-size:1.18rem;font-weight:800;color:var(--text);text-align:center;
  }
  .academy-picker-card > p{
    margin:0 0 18px;font-size:.87rem;color:var(--muted);text-align:center;line-height:1.55;
  }

  /* Badge "Aucune géolocalisation" */
  .no-geoloc-badge{
    display:flex;align-items:center;gap:7px;justify-content:center;
    background:rgba(39,174,96,.1);border:1px solid rgba(39,174,96,.35);
    border-radius:100px;padding:5px 14px;margin:0 auto 18px;
    font-size:.77rem;font-weight:600;color:#1e8449;max-width:fit-content;
  }
  html[data-theme="dark"] .no-geoloc-badge{background:rgba(39,174,96,.12);color:#2ecc71}

  /* Zone de saisie département */
  .dept-input-row{display:flex;gap:8px;margin-bottom:6px}
  .dept-input-row input{
    flex:1;padding:11px 14px;border:2px solid var(--border);border-radius:12px;
    font-family:inherit;font-size:1rem;background:var(--bg);color:var(--text);
    outline:none;transition:border-color .15s;
  }
  .dept-input-row input:focus{border-color:var(--blue)}
  .dept-input-row input::placeholder{color:var(--muted);font-size:.92rem}
  .dept-confirm-btn{
    padding:11px 18px;background:var(--blue);color:#fff;
    border:none;border-radius:12px;cursor:pointer;
    font-family:inherit;font-size:.95rem;font-weight:700;
    transition:background .15s;white-space:nowrap;flex-shrink:0;
  }
  .dept-confirm-btn:hover{background:var(--blue-dark)}
  .dept-error{font-size:.82rem;color:var(--red);margin-bottom:8px;padding:0 2px}

  /* Choix Corse */
  .corse-choice{
    background:rgba(37,99,235,.06);border:1px solid rgba(37,99,235,.2);
    border-radius:12px;padding:12px 14px;margin-bottom:10px;text-align:center;
  }
  .corse-choice p{margin:0 0 10px;font-size:.86rem;font-weight:600;color:var(--text)}
  .corse-choice-btns{display:flex;gap:8px;justify-content:center}
  .corse-choice-btns button{
    padding:8px 18px;border:2px solid var(--blue);border-radius:10px;
    background:transparent;color:var(--blue);font-family:inherit;
    font-size:.9rem;font-weight:700;cursor:pointer;transition:background .15s,color .15s;
  }
  .corse-choice-btns button:hover{background:var(--blue);color:#fff}

  /* Confirmation académie */
  .onboarding-confirm{
    background:rgba(37,99,235,.06);border:1px solid rgba(37,99,235,.25);
    border-radius:14px;padding:16px 18px;margin-bottom:10px;text-align:center;
  }
  .onboarding-confirm p{margin:0 0 6px;font-size:.84rem;color:var(--muted)}
  .onboarding-academy-name{font-size:1.12rem;font-weight:800;color:var(--text);margin-bottom:14px}
  .onboarding-confirm-btns{display:flex;gap:10px;justify-content:center}
  .onboarding-ok-btn{
    padding:10px 24px;background:var(--blue);color:#fff;
    border:none;border-radius:10px;cursor:pointer;
    font-family:inherit;font-size:.95rem;font-weight:700;
    transition:background .15s;
  }
  .onboarding-ok-btn:hover{background:var(--blue-dark)}
  .onboarding-back-btn{
    padding:10px 14px;background:none;border:2px solid var(--border);
    color:var(--muted);border-radius:10px;cursor:pointer;
    font-family:inherit;font-size:.88rem;transition:border-color .15s,color .15s;
  }
  .onboarding-back-btn:hover{border-color:var(--blue);color:var(--blue)}

  /* Bouton carte */
  .map-toggle-btn{
    display:block;width:100%;background:none;border:none;
    color:var(--blue);font-family:inherit;font-size:.84rem;font-weight:600;
    padding:8px 4px;cursor:pointer;text-align:center;margin-bottom:4px;
    border-top:1px solid var(--border);margin-top:8px;padding-top:12px;
  }
  .map-toggle-btn:hover{text-decoration:underline}

  /* Bouton retour académie par défaut */
  .academy-reset-btn{
    display:none;width:100%;background:none;border:none;
    color:var(--muted);font-family:inherit;font-size:.78rem;
    padding:8px 8px 2px;cursor:pointer;text-align:center;
  }
  .academy-reset-btn:hover{color:var(--blue);text-decoration:underline}

  /* Anciens boutons académie (compatibilité / carte) */
  .academy-btn{
    display:flex;align-items:center;gap:14px;padding:12px 16px;
    border-radius:12px;border:2px solid var(--border);background:var(--bg);
    cursor:pointer;font-family:inherit;text-align:left;transition:border-color .15s,background .15s;
  }
  .academy-btn:hover,.academy-btn:focus{border-color:var(--blue);background:rgba(37,99,235,.05);outline:none}
  .academy-btn-emoji{font-size:1.6rem;flex-shrink:0;line-height:1}
  .academy-btn-text{display:flex;flex-direction:column;gap:2px}
  .academy-btn-name{font-size:.92rem;font-weight:700;color:var(--text)}
  .academy-btn-sub{font-size:.74rem;color:var(--muted)}

  /* ================================================================== */
  /* SKYLINE ACADÉMIQUE — header                                         */
  /* ================================================================== */
  /* SKYLINE ACADÉMIQUE — décor desktop uniquement, derrière le contenu */
  .header-skyline{
    position:absolute;right:0;top:0;bottom:0;
    display:none;
    pointer-events:none;z-index:-1;
    overflow:hidden;align-items:flex-end;
  }
  .skyline-img{
    display:block;height:100%;width:auto;
    filter:brightness(0) invert(1);
    opacity:.22;
  }
  /* Masqué sous 1024px — mobile et tablette strictement inchangés */
  @media(max-width:1023px){.header-skyline{display:none !important}}
  /* 1024-1199px : 50 % réduit, très discret */
  @media(min-width:1024px) and (max-width:1199px){
    .header-skyline{display:flex}
    .skyline-img{height:50%;opacity:.17}
  }
  /* 1200-1399px : 75 %, discret */
  @media(min-width:1200px) and (max-width:1399px){
    .header-skyline{display:flex}
    .skyline-img{height:75%;opacity:.20}
  }
  /* ≥1400px : pleine hauteur */
  @media(min-width:1400px){
    .header-skyline{display:flex}
    .skyline-img{height:100%;opacity:.22}
  }

  /* Skyline : opacité renforcée sur fonds clairs (orangé/ocre) */
  html[data-academy="orleans-tours"] .skyline-img { opacity:.22 }
  html[data-academy="dijon"]         .skyline-img { opacity:.22 }

  /* ================================================================== */
  /* COULEURS ACADÉMIE — header et drawer (30 académies)                 */
  /* ================================================================== */

  /* -- Couleur d'accent par academie (--acad-color) -- */
  html[data-academy="bordeaux"]              { --acad-color:#8B1A3C }
  html[data-academy="lyon"]                  { --acad-color:#991B1B }
  html[data-academy="toulouse"]              { --acad-color:#B91C1C }
  html[data-academy="paris"]                 { --acad-color:#1E3A8A }
  html[data-academy="versailles"]            { --acad-color:#C89B0A }
  html[data-academy="creteil"]               { --acad-color:#6D28D9 }
  html[data-academy="nice"]                  { --acad-color:#0369A1 }
  html[data-academy="aix-marseille"]         { --acad-color:#1E40AF }
  html[data-academy="grenoble"]              { --acad-color:#1D4E8F }
  html[data-academy="normandie"]             { --acad-color:#1E4D7A }
  html[data-academy="nantes"]                { --acad-color:#15803D }
  html[data-academy="rennes"]                { --acad-color:#166534 }
  html[data-academy="limoges"]               { --acad-color:#16A34A }
  html[data-academy="strasbourg"]            { --acad-color:#1565C0 }
  html[data-academy="lille"]                 { --acad-color:#1D4ED8 }
  html[data-academy="montpellier"]           { --acad-color:#0F766E }
  html[data-academy="nancy-metz"]            { --acad-color:#7C3AED }
  html[data-academy="dijon"]                 { --acad-color:#D97706 }
  html[data-academy="reims"]                 { --acad-color:#DB2777 }
  html[data-academy="poitiers"]              { --acad-color:#0891B2 }
  html[data-academy="clermont"]              { --acad-color:#78350F }
  html[data-academy="amiens"]                { --acad-color:#0E7490 }
  html[data-academy="besancon"]              { --acad-color:#166534 }
  html[data-academy="corse"]                 { --acad-color:#B91C1C }
  html[data-academy="orleans-tours"]         { --acad-color:#B45309 }
  html[data-academy="guadeloupe"]            { --acad-color:#0D9488 }
  html[data-academy="guyane"]                { --acad-color:#15803D }
  html[data-academy="martinique"]            { --acad-color:#0369A1 }
  html[data-academy="mayotte"]               { --acad-color:#0E7490 }
  html[data-academy="la-reunion"]            { --acad-color:#DC2626 }

  html[data-academy="bordeaux"] header.app-header,html[data-academy="bordeaux"] .drawer-head{background:linear-gradient(158deg,#6C142E 0%,#8B1A3C 100%)}
  html[data-academy="lyon"] header.app-header,html[data-academy="lyon"] .drawer-head{background:linear-gradient(158deg,#771515 0%,#991B1B 100%)}
  html[data-academy="paris"] header.app-header,html[data-academy="paris"] .drawer-head{background:linear-gradient(158deg,#172D6B 0%,#1E3A8A 100%)}
  html[data-academy="versailles"] header.app-header,html[data-academy="versailles"] .drawer-head{background:linear-gradient(158deg,#9C7807 0%,#C89B0A 100%)}
  html[data-academy="creteil"] header.app-header,html[data-academy="creteil"] .drawer-head{background:linear-gradient(158deg,#551FA9 0%,#6D28D9 100%)}
  html[data-academy="toulouse"] header.app-header,html[data-academy="toulouse"] .drawer-head{background:linear-gradient(158deg,#901515 0%,#B91C1C 100%)}
  html[data-academy="strasbourg"] header.app-header,html[data-academy="strasbourg"] .drawer-head{background:linear-gradient(158deg,#104E95 0%,#1565C0 100%)}
  html[data-academy="aix-marseille"] header.app-header,html[data-academy="aix-marseille"] .drawer-head{background:linear-gradient(158deg,#173188 0%,#1E40AF 100%)}
  html[data-academy="nice"] header.app-header,html[data-academy="nice"] .drawer-head{background:linear-gradient(158deg,#02517D 0%,#0369A1 100%)}
  html[data-academy="montpellier"] header.app-header,html[data-academy="montpellier"] .drawer-head{background:linear-gradient(158deg,#0B5C55 0%,#0F766E 100%)}
  html[data-academy="grenoble"] header.app-header,html[data-academy="grenoble"] .drawer-head{background:linear-gradient(158deg,#163C6F 0%,#1D4E8F 100%)}
  html[data-academy="clermont"] header.app-header,html[data-academy="clermont"] .drawer-head{background:linear-gradient(158deg,#5D290B 0%,#78350F 100%)}
  html[data-academy="nantes"] header.app-header,html[data-academy="nantes"] .drawer-head{background:linear-gradient(158deg,#10632F 0%,#15803D 100%)}
  html[data-academy="rennes"] header.app-header,html[data-academy="rennes"] .drawer-head{background:linear-gradient(158deg,#114E28 0%,#166534 100%)}
  html[data-academy="lille"] header.app-header,html[data-academy="lille"] .drawer-head{background:linear-gradient(158deg,#163CA8 0%,#1D4ED8 100%)}
  html[data-academy="amiens"] header.app-header,html[data-academy="amiens"] .drawer-head{background:linear-gradient(158deg,#0A5A70 0%,#0E7490 100%)}
  html[data-academy="reims"] header.app-header,html[data-academy="reims"] .drawer-head{background:linear-gradient(158deg,#AA1E5C 0%,#DB2777 100%)}
  html[data-academy="nancy-metz"] header.app-header,html[data-academy="nancy-metz"] .drawer-head{background:linear-gradient(158deg,#602DB8 0%,#7C3AED 100%)}
  html[data-academy="dijon"] header.app-header,html[data-academy="dijon"] .drawer-head{background:linear-gradient(158deg,#A95C04 0%,#D97706 100%)}
  html[data-academy="besancon"] header.app-header,html[data-academy="besancon"] .drawer-head{background:linear-gradient(158deg,#114E28 0%,#166534 100%)}
  html[data-academy="orleans-tours"] header.app-header,html[data-academy="orleans-tours"] .drawer-head{background:linear-gradient(158deg,#8C4007 0%,#B45309 100%)}
  html[data-academy="normandie"] header.app-header,html[data-academy="normandie"] .drawer-head{background:linear-gradient(158deg,#173C5F 0%,#1E4D7A 100%)}
  html[data-academy="poitiers"] header.app-header,html[data-academy="poitiers"] .drawer-head{background:linear-gradient(158deg,#06718A 0%,#0891B2 100%)}
  html[data-academy="limoges"] header.app-header,html[data-academy="limoges"] .drawer-head{background:linear-gradient(158deg,#117F39 0%,#16A34A 100%)}
  html[data-academy="corse"] header.app-header,html[data-academy="corse"] .drawer-head{background:linear-gradient(158deg,#901515 0%,#B91C1C 100%)}
  html[data-academy="guadeloupe"] header.app-header,html[data-academy="guadeloupe"] .drawer-head{background:linear-gradient(158deg,#0A736A 0%,#0D9488 100%)}
  html[data-academy="martinique"] header.app-header,html[data-academy="martinique"] .drawer-head{background:linear-gradient(158deg,#02517D 0%,#0369A1 100%)}
  html[data-academy="guyane"] header.app-header,html[data-academy="guyane"] .drawer-head{background:linear-gradient(158deg,#10632F 0%,#15803D 100%)}
  html[data-academy="la-reunion"] header.app-header,html[data-academy="la-reunion"] .drawer-head{background:linear-gradient(158deg,#AB1D1D 0%,#DC2626 100%)}
  html[data-academy="mayotte"] header.app-header,html[data-academy="mayotte"] .drawer-head{background:linear-gradient(158deg,#0A5A70 0%,#0E7490 100%)}

  /* Étiquette académie sous la boussole dans le drawer */
  .drawer-head-compass-wrap{
    display:flex;flex-direction:column;align-items:center;flex-shrink:0;gap:2px;
  }
  .drawer-academy-label{
    font-size:.58rem;font-style:italic;font-weight:500;
    color:rgba(255,255,255,.75);text-align:center;line-height:1;
    min-height:.8em;letter-spacing:.02em;
  }

  /* Étiquette académie sous la boussole dans le header principal */
  .reno-compass{
    flex-direction:column !important;align-items:center;gap:2px;
  }
  .header-academy-label{
    font-size:.58rem;font-style:italic;font-weight:500;
    color:rgba(255,255,255,.85);text-align:center;line-height:1;
    display:block;min-height:.7em;letter-spacing:.02em;
  }

/* ================================================================== */
/* PATCH RENO 2026-05-30 — palettes academiques + focus coherents      */
/* ================================================================== */
:root{--focus-acad:var(--acad-color,#2d6ead)}

/* Cadres de selection : plus de bleu generique, couleur academie */
:where(button,a,input,textarea,select,[tabindex]):focus-visible{
  outline:2px solid var(--focus-acad) !important;
  outline-offset:2px !important;
}
input:focus,textarea:focus,select:focus,
.quick-search-input:focus,.search-box input:focus,.field input:focus,.field textarea:focus,
.contact-row input:focus,.reveal-wrap>input:focus,.modal-body select:focus,.dept-input-row input:focus{
  border-color:var(--focus-acad) !important;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--focus-acad) 22%,transparent) !important;
}
.nav-tabs button.active,.bottom-nav button.active,.qa-btn:focus-visible,.academy-btn:hover,.academy-btn:focus{
  border-color:var(--focus-acad) !important;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--focus-acad) 18%,transparent) !important;
}
.fav-line:hover,.recent-line:hover{border-color:var(--focus-acad) !important;}
.dept-select:focus,.reset-field-btn:focus-visible,.reveal-btn:focus-visible{outline-color:var(--focus-acad) !important;}

/* Boussole centrale retiree partout sur la page d'accueil */
.acc-compass{display:none !important;}
.acc-hero{padding-top:.35rem !important;}

/* Palettes academiques plus differenciees */
html[data-academy="bordeaux"]{--acad-color:#8B1A3C;--acad-color-2:#D8B071}
html[data-academy="lyon"]{--acad-color:#1E4D7A;--acad-color-2:#C89B3C}
html[data-academy="paris"]{--acad-color:#172D6B;--acad-color-2:#C8A24A}
html[data-academy="versailles"]{--acad-color:#2F5D3A;--acad-color-2:#C89B0A}
html[data-academy="creteil"]{--acad-color:#2A6F73;--acad-color-2:#8FB339}
html[data-academy="toulouse"]{--acad-color:#B24A5A;--acad-color-2:#7B2CBF}
html[data-academy="strasbourg"]{--acad-color:#7C3F58;--acad-color-2:#C85C5C}
html[data-academy="aix-marseille"]{--acad-color:#D97706;--acad-color-2:#0369A1}
html[data-academy="nice"]{--acad-color:#0284C7;--acad-color-2:#14B8A6}
html[data-academy="montpellier"]{--acad-color:#0E7490;--acad-color-2:#F97366}
html[data-academy="grenoble"]{--acad-color:#2563A6;--acad-color-2:#2E7D32}
html[data-academy="clermont"]{--acad-color:#27272A;--acad-color-2:#B42318}
html[data-academy="nantes"]{--acad-color:#047857;--acad-color-2:#1D4E89}
html[data-academy="rennes"]{--acad-color:#2B2B2B;--acad-color-2:#B91C1C}
html[data-academy="lille"]{--acad-color:#1D4ED8;--acad-color-2:#B91C1C}
html[data-academy="amiens"]{--acad-color:#2F6F7E;--acad-color-2:#8BC6C2}
html[data-academy="reims"]{--acad-color:#B08D2A;--acad-color-2:#172D6B}
html[data-academy="nancy-metz"]{--acad-color:#F2C94C;--acad-color-2:#1E3A8A}
html[data-academy="dijon"]{--acad-color:#D97706;--acad-color-2:#7C4A03}
html[data-academy="besancon"]{--acad-color:#1B5E45;--acad-color-2:#334155}
html[data-academy="orleans-tours"]{--acad-color:#5B8C3A;--acad-color-2:#D6A84F}
html[data-academy="normandie"]{--acad-color:#2F7D57;--acad-color-2:#2D6F9F}
html[data-academy="poitiers"]{--acad-color:#A33A2B;--acad-color-2:#D8C6A1}
html[data-academy="limoges"]{--acad-color:#B91C1C;--acad-color-2:#1D4ED8}
html[data-academy="corse"]{--acad-color:#0369A1;--acad-color-2:#4D7C0F}
html[data-academy="guadeloupe"]{--acad-color:#0D9488;--acad-color-2:#FACC15}
html[data-academy="guyane"]{--acad-color:#15803D;--acad-color-2:#D9A21B}
html[data-academy="martinique"]{--acad-color:#15803D;--acad-color-2:#0284C7}
html[data-academy="mayotte"]{--acad-color:#0E7490;--acad-color-2:#D9B26C}
html[data-academy="la-reunion"]{--acad-color:#DC2626;--acad-color-2:#0E7490}

html[data-academy] header.app-header,html[data-academy] .drawer-head{
  background:linear-gradient(158deg,var(--acad-color) 0%,color-mix(in srgb,var(--acad-color) 78%,var(--acad-color-2)) 100%) !important;
}
.skyline-img{opacity:.30 !important;}


/* === RENO FIX FINAL - couleurs et skylines conformes a la maquette fournie === */
html[data-academy="aix-marseille"]{--acad-color:#E59B00;--acad-color-2:#F6C15A;}
html[data-academy="amiens"]{--acad-color:#3F7C4A;--acad-color-2:#70A773;}
html[data-academy="besancon"]{--acad-color:#6D4A8A;--acad-color-2:#A18AB8;}
html[data-academy="bordeaux"]{--acad-color:#8B0D2F;--acad-color-2:#B63155;}
html[data-academy="clermont"]{--acad-color:#5B8A4B;--acad-color-2:#86A96F;}
html[data-academy="corse"]{--acad-color:#008C95;--acad-color-2:#37BAC2;}
html[data-academy="creteil"]{--acad-color:#C84F8A;--acad-color-2:#E889B7;}
html[data-academy="dijon"]{--acad-color:#D99800;--acad-color-2:#F0BC45;}
html[data-academy="grenoble"]{--acad-color:#386CB0;--acad-color-2:#6FA1D6;}
html[data-academy="lille"]{--acad-color:#0E4F86;--acad-color-2:#3D7FBB;}
html[data-academy="limoges"]{--acad-color:#27743F;--acad-color-2:#5CA66B;}
html[data-academy="lyon"]{--acad-color:#0E5A99;--acad-color-2:#3D86C5;}
html[data-academy="montpellier"]{--acad-color:#0697B6;--acad-color-2:#42C2D9;}
html[data-academy="nancy-metz"]{--acad-color:#7D4A8D;--acad-color-2:#B28AC0;}
html[data-academy="nantes"]{--acad-color:#5A9A50;--acad-color-2:#8BBE7E;}
html[data-academy="nice"]{--acad-color:#31A9C8;--acad-color-2:#78D2E2;}
html[data-academy="normandie"]{--acad-color:#506F93;--acad-color-2:#7F9BB9;}
html[data-academy="orleans-tours"]{--acad-color:#F28705;--acad-color-2:#FFB84A;}
html[data-academy="paris"]{--acad-color:#082F66;--acad-color-2:#315D98;}
html[data-academy="poitiers"]{--acad-color:#0692A0;--acad-color-2:#4BBBC5;}
html[data-academy="reims"]{--acad-color:#E45D78;--acad-color-2:#F19AAB;}
html[data-academy="rennes"]{--acad-color:#427F42;--acad-color-2:#72A871;}
html[data-academy="strasbourg"]{--acad-color:#2B78C8;--acad-color-2:#69A6E4;}
html[data-academy="toulouse"]{--acad-color:#CC6A48;--acad-color-2:#E79B7D;}
html[data-academy="versailles"]{--acad-color:#D8A33A;--acad-color-2:#EAC36C;}
html[data-academy="guadeloupe"]{--acad-color:#0D9488;--acad-color-2:#FACC15;}
html[data-academy="guyane"]{--acad-color:#15803D;--acad-color-2:#D9A21B;}
html[data-academy="martinique"]{--acad-color:#15803D;--acad-color-2:#0284C7;}
html[data-academy="mayotte"]{--acad-color:#0E7490;--acad-color-2:#D9B26C;}
html[data-academy="la-reunion"]{--acad-color:#DC2626;--acad-color-2:#0E7490;}
html[data-academy="aix-marseille"] header.app-header,html[data-academy="aix-marseille"] .drawer-head{background:linear-gradient(158deg,#E59B00 0%,#F6C15A 100%) !important;}
html[data-academy="amiens"] header.app-header,html[data-academy="amiens"] .drawer-head{background:linear-gradient(158deg,#3F7C4A 0%,#70A773 100%) !important;}
html[data-academy="besancon"] header.app-header,html[data-academy="besancon"] .drawer-head{background:linear-gradient(158deg,#6D4A8A 0%,#A18AB8 100%) !important;}
html[data-academy="bordeaux"] header.app-header,html[data-academy="bordeaux"] .drawer-head{background:linear-gradient(158deg,#8B0D2F 0%,#B63155 100%) !important;}
html[data-academy="clermont"] header.app-header,html[data-academy="clermont"] .drawer-head{background:linear-gradient(158deg,#5B8A4B 0%,#86A96F 100%) !important;}
html[data-academy="corse"] header.app-header,html[data-academy="corse"] .drawer-head{background:linear-gradient(158deg,#008C95 0%,#37BAC2 100%) !important;}
html[data-academy="creteil"] header.app-header,html[data-academy="creteil"] .drawer-head{background:linear-gradient(158deg,#C84F8A 0%,#E889B7 100%) !important;}
html[data-academy="dijon"] header.app-header,html[data-academy="dijon"] .drawer-head{background:linear-gradient(158deg,#D99800 0%,#F0BC45 100%) !important;}
html[data-academy="grenoble"] header.app-header,html[data-academy="grenoble"] .drawer-head{background:linear-gradient(158deg,#386CB0 0%,#6FA1D6 100%) !important;}
html[data-academy="lille"] header.app-header,html[data-academy="lille"] .drawer-head{background:linear-gradient(158deg,#0E4F86 0%,#3D7FBB 100%) !important;}
html[data-academy="limoges"] header.app-header,html[data-academy="limoges"] .drawer-head{background:linear-gradient(158deg,#27743F 0%,#5CA66B 100%) !important;}
html[data-academy="lyon"] header.app-header,html[data-academy="lyon"] .drawer-head{background:linear-gradient(158deg,#0E5A99 0%,#3D86C5 100%) !important;}
html[data-academy="montpellier"] header.app-header,html[data-academy="montpellier"] .drawer-head{background:linear-gradient(158deg,#0697B6 0%,#42C2D9 100%) !important;}
html[data-academy="nancy-metz"] header.app-header,html[data-academy="nancy-metz"] .drawer-head{background:linear-gradient(158deg,#7D4A8D 0%,#B28AC0 100%) !important;}
html[data-academy="nantes"] header.app-header,html[data-academy="nantes"] .drawer-head{background:linear-gradient(158deg,#5A9A50 0%,#8BBE7E 100%) !important;}
html[data-academy="nice"] header.app-header,html[data-academy="nice"] .drawer-head{background:linear-gradient(158deg,#31A9C8 0%,#78D2E2 100%) !important;}
html[data-academy="normandie"] header.app-header,html[data-academy="normandie"] .drawer-head{background:linear-gradient(158deg,#506F93 0%,#7F9BB9 100%) !important;}
html[data-academy="orleans-tours"] header.app-header,html[data-academy="orleans-tours"] .drawer-head{background:linear-gradient(158deg,#F28705 0%,#FFB84A 100%) !important;}
html[data-academy="paris"] header.app-header,html[data-academy="paris"] .drawer-head{background:linear-gradient(158deg,#082F66 0%,#315D98 100%) !important;}
html[data-academy="poitiers"] header.app-header,html[data-academy="poitiers"] .drawer-head{background:linear-gradient(158deg,#0692A0 0%,#4BBBC5 100%) !important;}
html[data-academy="reims"] header.app-header,html[data-academy="reims"] .drawer-head{background:linear-gradient(158deg,#E45D78 0%,#F19AAB 100%) !important;}
html[data-academy="rennes"] header.app-header,html[data-academy="rennes"] .drawer-head{background:linear-gradient(158deg,#427F42 0%,#72A871 100%) !important;}
html[data-academy="strasbourg"] header.app-header,html[data-academy="strasbourg"] .drawer-head{background:linear-gradient(158deg,#2B78C8 0%,#69A6E4 100%) !important;}
html[data-academy="toulouse"] header.app-header,html[data-academy="toulouse"] .drawer-head{background:linear-gradient(158deg,#CC6A48 0%,#E79B7D 100%) !important;}
html[data-academy="versailles"] header.app-header,html[data-academy="versailles"] .drawer-head{background:linear-gradient(158deg,#D8A33A 0%,#EAC36C 100%) !important;}
html[data-academy="guadeloupe"] header.app-header,html[data-academy="guadeloupe"] .drawer-head{background:linear-gradient(158deg,#0D9488 0%,#FACC15 100%) !important;}
html[data-academy="guyane"] header.app-header,html[data-academy="guyane"] .drawer-head{background:linear-gradient(158deg,#15803D 0%,#D9A21B 100%) !important;}
html[data-academy="martinique"] header.app-header,html[data-academy="martinique"] .drawer-head{background:linear-gradient(158deg,#15803D 0%,#0284C7 100%) !important;}
html[data-academy="mayotte"] header.app-header,html[data-academy="mayotte"] .drawer-head{background:linear-gradient(158deg,#0E7490 0%,#D9B26C 100%) !important;}
html[data-academy="la-reunion"] header.app-header,html[data-academy="la-reunion"] .drawer-head{background:linear-gradient(158deg,#DC2626 0%,#0E7490 100%) !important;}

header.app-header{overflow:hidden !important;}
header.app-header > *{position:relative;z-index:2;}
.header-skyline{
  display:flex !important;
  position:absolute !important;
  z-index:1 !important;
  right:110px !important;
  top:6px !important;
  bottom:44px !important;
  width:46vw !important;
  max-width:620px !important;
  min-width:360px !important;
  align-items:flex-end !important;
  justify-content:flex-end !important;
  pointer-events:none !important;
  overflow:hidden !important;
}
.skyline-img{
  display:block !important;
  height:100% !important;
  width:auto !important;
  max-width:100% !important;
  opacity:.50 !important;
  filter:none !important;
}
@media(max-width:1023px){.header-skyline{display:none !important;}}
@media(min-width:1024px) and (max-width:1199px){.header-skyline{right:70px !important;width:38vw !important;min-width:300px !important;bottom:42px !important}.skyline-img{opacity:.38 !important}}
.nav-tabs button.active,.bottom-nav button.active,.qa-btn:focus-visible,.academy-btn:hover,.academy-btn:focus,.quick-card:focus-visible,.quick-card.active{
  border-color:var(--acad-color) !important;
  box-shadow:0 0 0 1px color-mix(in srgb,var(--acad-color) 26%,transparent) !important;
  outline:none !important;
}


/* ================================================================== */
/* PATCH FINAL RENO 2026-05-30 — skylines visibles + couleurs academies */
/* ================================================================== */

/* La zone titre centrale de l'accueil est retirée : le titre reste uniquement dans le bandeau. */
.acc-hero{display:none !important;}

/* Header : skyline visible, boutons regroupés à droite. */
.app-header{position:relative;overflow:hidden;}
.header-title{position:relative;z-index:2;}
.header-title-text{position:relative;flex:1;min-width:0;}
.header-top-row{position:relative;min-height:72px;padding-right:440px;}
.header-brand-block{position:relative;z-index:4;max-width:660px;}
.header-controls{
  position:absolute !important;
  right:22px;top:14px;
  z-index:6;
  display:flex;align-items:center;justify-content:flex-end;gap:8px;
  margin-left:0 !important;
}
.header-skyline{
  position:absolute !important;
  right:22px;top:28px;bottom:auto;
  width:min(54vw,760px);height:82px;
  display:flex !important;align-items:flex-end;justify-content:flex-end;
  pointer-events:none;z-index:2;overflow:hidden;
}
.skyline-img{
  display:block !important;
  width:100% !important;height:82px !important;
  object-fit:contain;object-position:right bottom;
  filter:drop-shadow(0 1px 0 rgba(255,255,255,.18));
  opacity:.92 !important;
}
.search-ham-row{position:relative;z-index:5;}

/* Tablette : skyline plus petite, sans gêner les boutons. */
@media(max-width:1199px){
  .header-top-row{padding-right:350px;}
  .header-skyline{right:18px;top:34px;width:46vw;height:58px;opacity:.85;}
  .skyline-img{height:58px !important;}
}
@media(max-width:900px){
  .header-top-row{padding-right:0;min-height:auto;}
  .header-controls{position:static !important;margin-left:auto !important;}
  .header-skyline{display:none !important;}
}

/* Grands boutons : au survol/focus, seul le POURTOUR prend la couleur du bandeau. */
.acc-block .qa-btn:hover,
.acc-block .qa-btn:focus-visible{
  background:#fff !important;
  border-color:var(--acad-color) !important;
  box-shadow:0 0 0 1px color-mix(in srgb,var(--acad-color) 40%,transparent),0 2px 10px rgba(0,0,0,.08) !important;
  transform:translateY(-1px);
  color:inherit !important;
}
/* Le survol ne colore pas le fond ni le texte : uniquement le contour. */
.acc-block .qa-btn:hover .qa-label,
.acc-block .qa-btn:focus-visible .qa-label{color:inherit !important;}
html[data-theme="dark"] .acc-block .qa-btn:hover,
html[data-theme="dark"] .acc-block .qa-btn:focus-visible{background:#1d2238 !important;}

/* Onglet actif et contours coherents avec l'academie. */
.nav-tabs button.active,.bottom-nav button.active{
  background:var(--acad-color) !important;
  border-color:var(--acad-color) !important;
  color:#fff !important;
  box-shadow:0 2px 8px color-mix(in srgb,var(--acad-color) 26%,transparent) !important;
}
:where(button,a,input,textarea,select,[tabindex]):focus-visible{
  outline-color:var(--acad-color) !important;
}

/* Couleurs reprises du tableau valide par académie. */
html[data-academy="aix-marseille"]{--acad-color:#E89600;--acad-color-2:#F4B23C;}
html[data-academy="amiens"]{--acad-color:#4F8A54;--acad-color-2:#75A978;}
html[data-academy="besancon"]{--acad-color:#7B5397;--acad-color-2:#9B75B5;}
html[data-academy="bordeaux"]{--acad-color:#9B0D2E;--acad-color-2:#B93452;}
html[data-academy="clermont"]{--acad-color:#4F8A45;--acad-color-2:#75A86B;}
html[data-academy="corse"]{--acad-color:#168D91;--acad-color-2:#36AEB1;}
html[data-academy="creteil"]{--acad-color:#C8568C;--acad-color-2:#DF7EAA;}
html[data-academy="dijon"]{--acad-color:#E4A000;--acad-color-2:#F0BE42;}
html[data-academy="grenoble"]{--acad-color:#2E67B1;--acad-color-2:#5C8ED0;}
html[data-academy="lille"]{--acad-color:#22477E;--acad-color-2:#3E679F;}
html[data-academy="limoges"]{--acad-color:#2E8A55;--acad-color-2:#58A979;}
html[data-academy="lyon"]{--acad-color:#2C6FAE;--acad-color-2:#5992CB;}
html[data-academy="montpellier"]{--acad-color:#169FB5;--acad-color-2:#4CBACB;}
html[data-academy="nancy-metz"]{--acad-color:#7A4C96;--acad-color-2:#9B70B5;}
html[data-academy="nantes"]{--acad-color:#5C9650;--acad-color-2:#80B277;}
html[data-academy="nice"]{--acad-color:#2BA8BF;--acad-color-2:#60C2D2;}
html[data-academy="normandie"]{--acad-color:#416B94;--acad-color-2:#668AAE;}
html[data-academy="orleans-tours"]{--acad-color:#F47C13;--acad-color-2:#F8A152;}
html[data-academy="paris"]{--acad-color:#0B2B60;--acad-color-2:#294D87;}
html[data-academy="poitiers"]{--acad-color:#0E8B9A;--acad-color-2:#3CADB9;}
html[data-academy="reims"]{--acad-color:#E65B75;--acad-color-2:#F08296;}
html[data-academy="rennes"]{--acad-color:#477C45;--acad-color-2:#6FA46C;}
html[data-academy="strasbourg"]{--acad-color:#2C77C7;--acad-color-2:#5A98DA;}
html[data-academy="toulouse"]{--acad-color:#C86245;--acad-color-2:#DA856C;}
html[data-academy="versailles"]{--acad-color:#D8A13A;--acad-color-2:#E5BE68;}
html[data-academy="guadeloupe"]{--acad-color:#0D9488;--acad-color-2:#45B8AE;}
html[data-academy="guyane"]{--acad-color:#15803D;--acad-color-2:#48A868;}
html[data-academy="martinique"]{--acad-color:#2BA8BF;--acad-color-2:#67C3D2;}
html[data-academy="mayotte"]{--acad-color:#0E8B9A;--acad-color-2:#3BAEBB;}
html[data-academy="la-reunion"]{--acad-color:#D94A37;--acad-color-2:#E87863;}

html[data-academy] header.app-header,html[data-academy] .drawer-head{
  background:linear-gradient(158deg,color-mix(in srgb,var(--acad-color) 84%,#000 16%) 0%,var(--acad-color) 58%,color-mix(in srgb,var(--acad-color-2) 72%,var(--acad-color) 28%) 100%) !important;
}


/* === RENO PATCH 2026-05-30 — suppression totale des skylines === */
.header-skyline,
.skyline-img,
#academySkyline{
  display:none !important;
  visibility:hidden !important;
  opacity:0 !important;
}

/* ================================================================== */
/* ÉTABLISSEMENT PARTAGÉ — V1 (ajout 2026-06)                        */
/* ================================================================== */

/* Badge "Optionnel" dans le titre */
.etab-partage-badge {
  display: inline-block;
  font-size: .65rem;
  font-weight: 600;
  background: var(--blue);
  color: #fff;
  border-radius: 20px;
  padding: 1px 8px;
  margin-left: 8px;
  vertical-align: middle;
  opacity: .82;
}

/* Liste de résultats de recherche */
.etab-partage-results {
  border-radius: var(--radius);
  overflow: hidden;
  margin-top: 4px;
}
.etab-partage-item {
  padding: 9px 12px;
  cursor: pointer;
  border-bottom: 1px solid var(--border);
  transition: background .12s;
}
.etab-partage-item:last-child { border-bottom: none; }
.etab-partage-item:hover,
.etab-partage-item:focus {
  background: var(--yellow-soft);
  outline: none;
}
[data-theme="dark"] .etab-partage-item:hover,
[data-theme="dark"] .etab-partage-item:focus {
  background: rgba(255,255,255,.07);
}
.etab-partage-nom {
  display: block;
  font-size: .9rem;
  font-weight: 600;
  color: var(--text);
}
.etab-partage-sub2 {
  display: block;
  font-size: .78rem;
  color: var(--muted);
  margin-top: 1px;
}
.etab-partage-noresult {
  padding: 10px 12px;
  font-size: .84rem;
  color: var(--muted);
  font-style: italic;
}

/* Bloc infos établissement chargé */
.etab-partage-header {
  background: rgba(45,110,173,.07);
  border-radius: 10px;
  padding: 10px 13px;
  margin-bottom: 12px;
}
[data-theme="dark"] .etab-partage-header {
  background: rgba(255,255,255,.07);
}
.etab-partage-name {
  font-size: 1rem;
  font-weight: 700;
  color: var(--blue-dark);
}
[data-theme="dark"] .etab-partage-name { color: #8ab4e8; }
.etab-partage-sub {
  font-size: .8rem;
  color: var(--muted);
  margin-top: 2px;
}

/* Lignes de détail (téléphone, mail, etc.) */
.etab-partage-details {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 14px;
}
.etab-detail-row {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  font-size: .87rem;
  line-height: 1.5;
}
.etab-detail-ico {
  flex: 0 0 1.4em;
  text-align: center;
}
.etab-detail-val {
  flex: 1 1 auto;
  min-width: 0;
  word-break: break-word;
}
.etab-detail-val a {
  color: var(--blue);
  word-break: break-all;
}
.etab-detail-list {
  margin: 4px 0 0 14px;
  padding: 0;
  font-size: .85rem;
}
.etab-detail-list li { margin-bottom: 2px; }

/* Boutons d'action établissement */
.etab-partage-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

/* Boîte de partage */
.etab-partage-share-box {
  background: var(--yellow-soft);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 12px 14px;
  margin-top: 4px;
}
[data-theme="dark"] .etab-partage-share-box {
  background: rgba(255,255,255,.05);
}
.etab-share-label {
  font-size: .82rem;
  color: var(--muted);
  margin-bottom: 7px;
}
.etab-share-row {
  display: flex;
  gap: 8px;
  align-items: center;
}
.etab-share-input {
  flex: 1 1 auto;
  font-size: .78rem;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 7px;
  padding: 6px 9px;
  color: var(--text);
  min-width: 0;
}
.etab-share-hint {
  font-size: .75rem;
  color: var(--muted);
  margin-top: 7px;
  line-height: 1.4;
}

/* Boutons génériques .btn .btn-sm (si pas déjà définis) */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  font-size: .85rem;
  font-weight: 600;
  padding: 7px 14px;
  transition: background .14s, opacity .14s;
  white-space: nowrap;
}
.btn-sm { font-size: .78rem; padding: 5px 11px; border-radius: 7px; }
.btn-primary {
  background: var(--blue);
  color: #fff;
}
.btn-primary:hover { background: var(--blue-dark); }
.btn-ghost {
  background: transparent;
  color: var(--blue);
  border: 1px solid var(--border);
}
.btn-ghost:hover { background: rgba(45,110,173,.06); }

/* ---- Zone résiduelle établissement partagé ---- */
.etab-detail-horaires {
  font-size: .85rem;
  color: var(--muted);
  font-style: italic;
  margin-bottom: 4px;
}
.etab-detail-horaires-label {
  font-weight: 600;
  color: var(--text);
  font-style: normal;
}
.etab-detail-section {
  margin-bottom: 4px;
}
.etab-detail-section-title {
  font-size: .8rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--muted);
  margin-bottom: 4px;
}
