#carte-app,#carte-app *{box-sizing:border-box;margin:0;padding:0}
#carte-app{height:78vh !important;min-height:900px !important;max-height:1080px !important;overflow:hidden !important}
#carte-app{font-family:system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;background:#0f172a;color:#e2e8f0;overflow:hidden;-webkit-font-smoothing:antialiased}
#carte-app button{font:inherit;cursor:pointer}
#carte-app .ic{width:16px;height:16px;flex:none;vertical-align:-3px}
#carte-app{display:flex;flex-direction:column}

/* ---------- barre du haut ---------- */
#carte-app header{display:flex;align-items:center;gap:14px;padding:12px 20px;background:#ffffff;flex:none;flex-wrap:wrap;z-index:20}

#carte-app .brand p{
  font-size:17px;
  font-weight:700;
  line-height: normal;
  hyphens: none;
  color: #0a0a35;	
  letter-spacing:-.01em;
  white-space:normal;
  overflow-wrap:anywhere;
  margin:0;
  max-width:100%;
}

#carte-app #searchwrap{flex:1;min-width:240px;max-width:520px;position:relative}
#carte-app #searchwrap .ic{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#94a3b8;pointer-events:none;}
#carte-app #q{width:100%;padding:8px 10px 8px 38px;border:1.5px solid #334155;border-radius:12px;font-size:12px;background:#ffffff;outline:none;color:#1e293b;}
#carte-app #q:focus{border-color:#5919CF;background:#F5F4FF}
#carte-app #cntw{font-size:12.5px;color:#94a3b8;white-space:nowrap;margin-left:auto}
#carte-app #cnt{font-weight:750;color:#94a3b8;font-size:14px}

/* ---------- chips catégories (multi-lignes) ---------- */
#carte-app #chipsbar{display:flex;align-items:center;gap:8px;padding:8px 20px 10px;background:#fff;flex:none;flex-wrap:wrap;row-gap:6px}
#carte-app #chips{display:flex;gap:6px;flex-wrap:wrap}
#carte-app .chip{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;padding:5px 11px;border-radius:999px;border:1px solid #334155;background:#061460;font-size:12px;color:#ffffff;transition:all .15s}
#carte-app .chip .dot{width:9px;height:9px;border-radius:50%;background:var(--c)}
#carte-app .chip .lb{max-width:220px;overflow:hidden;text-overflow:ellipsis}
#carte-app .chip .ct{min-width:16px;text-align:center;padding:0 5px;border-radius:999px;font-size:10px;background:rgba(51,65,85,.6);color:#cbd5e1}
#carte-app .chip.on{border-color:var(--c);background:#061460;color:#fff;font-weight:600}
#carte-app .chip:not(.on){opacity:1}
#carte-app #comchip{display:none;align-items:center;gap:6px;white-space:nowrap;padding:5px 11px;border-radius:999px;background:#5919cf;color:#fff;font-size:12px}
#carte-app #comchip.on{display:inline-flex}
#carte-app #comchip b{font-weight:600;max-width:180px;overflow:hidden;text-overflow:ellipsis}
#carte-app #comchip button{border:0;background:transparent;color:#cbd5e1;font-size:12px;padding:0 0 0 2px}
#carte-app #comchip button:hover{color:#fff}
#carte-app .tbtn{padding:5px 11px;border-radius:999px;border:1px solid #334155;background:transparent;color:#94a3b8;font-size:12px;white-space:nowrap;margin-left:auto}
#carte-app .tbtn:hover{color:#fff;border-color:#475569}

/* ---------- carte ---------- */
#carte-app #main{flex:1;position:relative;min-height:0}
#carte-app #mapwrap{position:absolute;inset:0}
#carte-app svg#map{width:100%;height:100%;display:block;cursor:grab;touch-action:none;background:#0a0a35}
#carte-app svg#map.drag{cursor:grabbing}
#carte-app .com{fill:#F5F4FF;stroke:#91a9ca;stroke-width:.8;transition:fill .15s}
#carte-app .com:hover{fill:#2a3f63}
#carte-app .com.pickd{fill:#5919cf}
#carte-app .mk{stroke:#0f172a;stroke-width:1.4}
#carte-app .mk.sel{stroke:#fff;stroke-width:2.2}
#carte-app .mk.dim{display:none}
#carte-app .hit{fill:transparent;cursor:pointer}
#carte-app #tip{position:absolute;background:rgba(226,232,240,.95);color:#0f172a;padding:6px 10px;border-radius:8px;font-size:12px;pointer-events:none;opacity:0;transition:opacity .13s;max-width:260px;z-index:60;line-height:1.4}
#carte-app #alluc{fill:#3b82f6}
#carte-app .allut{font-size:11px;fill:#94a3b8}
#carte-app .ringc{fill:none;stroke:#475569;stroke-width:.6;stroke-dasharray:3 4}
#carte-app .ringt{font-size:10px;fill:#64748b}

/* boutons carte */
#carte-app #mapbtns{position:absolute;right:14px;top:14px;display:flex;flex-direction:column;gap:7px;z-index:20}
#carte-app .mbtn{width:38px;height:38px;border-radius:11px;border:1px solid #334155;background:#1e293be6;display:flex;align-items:center;justify-content:center;color:#e2e8f0;backdrop-filter:blur(4px)}
#carte-app .mbtn:hover{background:#0A0A35}
#carte-app .mbtn.act{background:#5919cf;border-color:#5919cf}

/* cantons*/
#cantPanel summary{cursor:pointer;list-style:revert;margin:0}
#cantPanel[open] summary{margin-bottom:8px}

/* Limites des cantons */
#carte-app .cb {
  fill: none;
  stroke: #ffffff;
  stroke-width: 1.5;
  stroke-linejoin: round;
  pointer-events: none;
}

/* Contour extérieur */
#carte-app .co {
  fill: none;
  stroke: #64748b;
  stroke-width: 2;
  stroke-linejoin: round;
  pointer-events: none;
}

/* Noms des cantons */
#carte-app .clab {
  fill: #263238;
  stroke: #ffffff;
  stroke-width: 2px;
  paint-order: stroke;
  text-anchor: middle;
  font-weight: 700;
  pointer-events: none;
}


/* Liste des cantons */
#carte-app #cantPanel {
  background-color: #fff;
}
#cantPanel summary{
	margin-left: 15px;
	margin-bottom: 20px;
}

#carte-app #cantPanel {
  color: #061460;
}

#carte-app #cantList {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 6px;
  margin: 8px;
}

#carte-app #cantList .cl-i {
  display: inline-flex;
  align-items: center;
  width: auto;
  max-width: 100%;
  box-sizing: border-box;
  padding: 2px 16px;
  border: 1px solid #5919cf;
  border-radius: 50px;
  background: #5919cf;
  color: #fff;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

#carte-app #cantList .cl-i:hover,
#carte-app #cantList .cl-i.on {
  background: #e8eff7;
  border-color: #1B3358;
}
/* Survol du bandeau des cantons */

#carte-app #cantList .cl-i:hover {
  background-color: #fff;  
  border-color: #5919cf;
	color: #5919cf;
}

/* ---------- suggestions de recherche ---------- */
#carte-app #sugg{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#0b1220;border:1px solid #334155;border-radius:12px;box-shadow:0 16px 40px rgba(0,0,0,.55);z-index:70;display:none;max-height:320px;overflow-y:auto}
#carte-app #sugg.on{display:block}
#carte-app .sg{display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:10px 13px;border:0;background:transparent;color:#e2e8f0;font-size:13.5px}
#carte-app .sg:hover{background:#1e293b}
#carte-app .sg small{color:#94a3b8}
#carte-app .sg.com{color:#93c5fd}
#carte-app .sg .dot{width:9px;height:9px;border-radius:50%;flex:none}

/* ---------- fiche (panneau flottant droit) ---------- */
#carte-app #fiche {
  position: absolute;
  left: 20px;
  right: auto;
  top: 24px;
  bottom: 14px;
  width: 340px;
  background: #fff;
  border: 1px solid #5919cf;
  border-radius: 8px;
  box-shadow: 0 20px 60px rgba(0,0,0,.5);
  display: none;
  flex-direction: column;
  z-index: 25;
  overflow: hidden;
  backdrop-filter: blur(8px);
}

#carte-app #fiche.on {
  display: flex;
}
#carte-app .fhead{display:flex;align-items:flex-start;gap:8px;padding:16px 16px 12px;border-bottom:1px solid #5919cf;flex:none}
#carte-app .fhead .ft{flex:1;min-width:0}
#carte-app .cat{font-size:10.5px;font-weight:750;text-transform:uppercase;letter-spacing:.07em}
#carte-app .fhead h2{font-size:16.5px;font-weight:750;letter-spacing:-.01em;margin-top:4px;line-height:1.3;color:0a0a35}
#carte-app .fcom{font-size:12px;color:#061460;margin-top:3px}
#carte-app .iconbtn{border:0;background:transparent;font-size:16px;color:#061460;padding:4px;border-radius:8px}
#carte-app .iconbtn:hover{background:#1e293b;color:#fff}
#carte-app .fbody{padding:14px 16px;overflow-y:auto;flex:1}
#carte-app .fbody::-webkit-scrollbar{width:8px}
#carte-app .fbody::-webkit-scrollbar-thumb{background:#334155;border-radius:4px}
#carte-app .frow{display:flex;gap:9px;align-items:flex-start;font-size:13.5px;margin-bottom:9px;color:#061460}
#carte-app .frow .ic{margin-top:2px;color:#5919cf}
#carte-app .fdesc{font-size:13px;color:#061460;line-height:1.55;margin-bottom:12px}
#carte-app .ln{display:flex;align-items:center;gap:10px;padding:10px 11px;border-radius:11px;text-decoration:none;color:#061460;border:1px solid #061460;margin-bottom:7px}
#carte-app .ln:hover{background:#e6dbfb;border-color:#e6dbfb}
#carte-app .ln .k{display:flex;align-items:center;gap:6px;font-size:11px;color:#5919cf;width:92px;flex:none}
#carte-app .ln .v{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#carte-app .act{margin-top:8px}
#carte-app .btn{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;padding:4px 6px;margin:0 0 6px 0;border-radius:4px;border:1px solid #5919CF;background:#5919CF;font-size:12px;font-weight:600;color:#fff}
#carte-app .btn:hover{background:#37107f}
#carte-app .btn.ghost{background:transparent;color:#e6dbfb}
#carte-app .btn.ghost:hover{background:#0a0a35}
#carte-app .btn.ok{background:#17b890;border-color:#17b890}

/* ---------- plein écran & responsive ---------- */
#carte-app:fullscreen{background:#0a0a35}
/* ---------- toggle catégories (mobile) ---------- */
#carte-app #chipstog{display:none;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;border:1px solid #061460;background:#061460;color:#e2e8f0;font-size:12.5px;font-weight:600}
#carte-app #chipstog.act{background:#5919cf;border-color:#5919cf}

@media (max-width:760px){
  #carte-app header{padding:10px 12px;gap:10px}
  #carte-app .brand p{font-size:14.5px}
  #carte-app #chipsbar{padding:6px 12px 8px}
	
  #carte-app{height:92vh !important;min-height:700px !important}
  #carte-app #fiche{left:10px;right:10px;top:auto;bottom:10px;width:auto;max-height:75%}
	
  #carte-app #cntw{display:none}
  #carte-app #chipstog{display:inline-flex}
  #carte-app #chipsbar #chips,#chipsbar #comchip,#chipsbar .tbtn{display:none}
  #carte-app #chipsbar.open #chips{display:flex;flex-direction:column;align-items:flex-start;width:100%}
  #carte-app #chipsbar.open #comchip,#chipsbar.open .tbtn{display:inline-flex}
  #carte-app #chipsbar.open{flex-direction:column;align-items:stretch}
}
