
  :root{
    --bg: #0a0c10;
    --panel: #10131a;
    --line: #252a35;
    --text: #e2e8f0;
    --muted: #7c8798;
    --accent: #e8ff47;
    --accent-dim: #9aa832;
    --grad0:#c0392b; --grad1:#e0632e; --grad2:#f0a929;
    --grad3:#d6d436; --grad4:#8bc34a; --grad5:#1e8449;
  }
  *{box-sizing:border-box;}
  html,body{margin:0;height:100%;background:var(--bg);color:var(--text);
    font-family: ui-monospace, "SF Mono", "Cascadia Code", "Roboto Mono", Consolas, monospace;
    font-size:13px;}
  #app{display:flex;flex-direction:column;height:100vh;}

  /*  fenetre terminal  */
  .titlebar{display:flex;align-items:center;gap:8px;padding:10px 14px;
    background:#0d0f14;border-bottom:1px solid var(--line);flex-shrink:0;}
  .dot{width:10px;height:10px;border-radius:50%;display:inline-block;}
  .dot.r{background:#ff5f56;} .dot.y{background:#ffbd2e;} .dot.g{background:#27c93f;}
  .titlebar .path{margin-left:10px;color:var(--muted);font-size:12px;}
  .titlebar .path b{color:var(--text);}

  /*  barre d'onglets (comme des sous-commandes CLI)  */
  .tabs{display:flex;gap:2px;padding:0 14px;background:#0d0f14;
    border-bottom:1px solid var(--line);flex-shrink:0;}
  .tab{padding:9px 16px;color:var(--muted);cursor:pointer;font-size:12px;
    border-bottom:2px solid transparent;user-select:none;white-space:nowrap;}
  .tab:hover{color:var(--text);}
  .tab.active{color:var(--accent);border-bottom-color:var(--accent);}
  .tab.disabled{opacity:.35;cursor:not-allowed;}
  .tab .flag{color:var(--accent-dim);}

  /*  barre de commande / controles  */
  .cmdbar{display:flex;flex-wrap:wrap;gap:18px;align-items:center;
    padding:12px 14px;background:var(--panel);border-bottom:1px solid var(--line);flex-shrink:0;}
  .flag-group{display:flex;align-items:center;gap:6px;}
  .flag-group .flag{color:var(--accent-dim);font-size:12px;}
  select, input[type=text]{
    background:#0d0f14;color:var(--text);border:1px solid var(--line);
    padding:5px 8px;font-family:inherit;font-size:12px;border-radius:3px;outline:none;
  }
  select:focus, input:focus{border-color:var(--accent-dim);}
  .toggle-label{display:flex;align-items:center;gap:6px;cursor:pointer;color:var(--muted);font-size:12px;}
  .toggle-label input[type=checkbox]{accent-color:var(--accent);width:13px;height:13px;cursor:pointer;}

  /*  corps : carte + panneau console  */
  .body{flex:1;display:flex;min-height:0;}
  #map{flex:1;background:#0a0c10;}
  #mapRegions{flex:1;background:#0a0c10;}
  .leaflet-container{background:#0a0c10 !important;}
  .console{width:340px;flex-shrink:0;border-left:1px solid var(--line);
    background:var(--panel);display:flex;flex-direction:column;overflow:hidden;}
  .console-head{padding:12px 14px;border-bottom:1px solid var(--line);color:var(--muted);
    font-size:11px;letter-spacing:.04em;}
  .console-body{flex:1;overflow-y:auto;padding:12px 14px;}
  .prompt{color:var(--accent-dim);}
  .call-line{color:var(--text);margin-bottom:14px;line-height:1.6;word-break:break-all;}
  .call-line b{color:var(--accent);}
  .rank-title{color:var(--muted);font-size:11px;margin:14px 0 6px;letter-spacing:.03em;}
  .rank-row{display:flex;justify-content:space-between;gap:8px;padding:3px 0;
    border-bottom:1px dotted #1a1e27;font-size:12px;}
  .rank-row .name{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .rank-row .val{color:var(--accent);flex-shrink:0;}
  .empty-hint{color:var(--muted);line-height:1.7;}
  .empty-hint code{color:var(--accent-dim);}

  /*  legende  */
  .legend{position:absolute;left:14px;bottom:14px;background:rgba(13,15,20,.9);
    border:1px solid var(--line);border-radius:4px;padding:10px 12px;z-index:1000;
    font-size:11px;color:var(--muted);}
  .legend .bar{width:180px;height:10px;border-radius:2px;margin:6px 0;
    background:linear-gradient(90deg,var(--grad0),var(--grad1),var(--grad2),var(--grad3),var(--grad4),var(--grad5));}
  .legend .scale{display:flex;justify-content:space-between;}

  /*  encart DOM (971-976), place fixe façon carte administrative  */
  .dom-inset{position:absolute;left:14px;top:14px;background:rgba(13,15,20,.9);
    border:1px solid var(--line);border-radius:4px;padding:8px;z-index:1000;}
  .dom-inset-title{font-size:10px;color:var(--muted);letter-spacing:.06em;
    text-align:center;margin-bottom:6px;}
  .dom-inset-grid{display:flex;flex-direction:column;gap:3px;}
  .dom-box{width:42px;height:24px;display:flex;align-items:center;justify-content:center;
    font-size:10px;border-radius:2px;cursor:pointer;border:1px solid #0a0c10;}
  .dom-box:hover{filter:brightness(1.15);}
  .dom-box.selected{border-color:var(--accent);border-width:2px;font-weight:bold;}

  /*  vue heatmap annees (pour onglets 2 et 3)  */
  .heatmap-view{flex:1;display:flex;flex-direction:column;align-items:center;
    justify-content:center;overflow:auto;padding:24px;gap:16px;}
  .heatmap-grid{display:grid;gap:2px;}
  .hcell{width:46px;height:46px;display:flex;align-items:center;justify-content:center;
    font-size:10px;border-radius:2px;cursor:default;}
  .hlabel{font-size:10px;color:var(--muted);display:flex;align-items:center;justify-content:center;}
  .hidden{display:none !important;}

  ::-webkit-scrollbar{width:8px;height:8px;}
  ::-webkit-scrollbar-thumb{background:#232733;border-radius:4px;}
  ::-webkit-scrollbar-track{background:transparent;}

  .leaflet-popup-content-wrapper{background:#10131a;color:var(--text);
    font-family:inherit;border:1px solid var(--line);}
  .leaflet-popup-tip{background:#10131a;}
