
:root{
  --sidebar-w: 360px;
  --muted: #9fb2c7;
  --accent: #60a5fa;
  --stroke: #1f2a44;
  --text: #0b1320;
  --panel-scroll-margin: 120px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{ margin:0; font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial; background: transparent; color: var(--text); }
a{ color: var(--accent); text-decoration: none; }
a:hover{ text-decoration: underline; }

.layout{ display:grid; grid-template-columns: var(--sidebar-w) 1fr; min-height:100vh; }
aside#sidebar{ padding: 18px 18px 28px; overflow:auto; background: transparent; }
main#mapwrap{ position:relative; background: transparent; overflow:hidden; padding-top:0; }
#mapwrap::-webkit-scrollbar{ display:none; }

/* Map sizing */
svg{ width:100%; height:80vh; display:block; background: transparent; margin-top:-10px; }
.mapstage{ transform: scale(0.9); transform-origin: center center; transition: transform 120ms ease; }

/* Departments */
a.dept-clear{ display:none; }
path.dept{
  fill: #F2F2F2;
  stroke: #89B6FF;
  stroke-width: 1200;
  transition: fill 120ms ease;
}
path.dept:hover{ fill:#E0E0E0 !important; }

/* Cities */
.city-dot{ fill:#0A2A6B; opacity:.95; r:7000; }
.city:hover .city-dot{ opacity:1; fill:#F5A623; }
.city-label{ font-size: 18000px; fill: #0b1320; text-anchor: middle; }
#mapwrap a, #mapwrap a:hover, #mapwrap a:focus, #mapwrap a:active{ text-decoration:none !important; }

/* Panels */
#panels .panel{ display:none; scroll-margin-top: var(--panel-scroll-margin); }
#panels .panel#welcome{ display:block; }
#panels:has(.panel:target) .panel#welcome{ display:none; }
#panels .panel:target{ display:block; }

.panel header.panel-header{
  display:flex; justify-content: space-between; align-items: baseline; gap: 12px;
  border-bottom: 1px solid var(--stroke); padding-bottom: 8px; margin-bottom: 8px;
}
.panel h2{ margin:0 0 6px; font-size: 20px; }
.panel .reset{ color: #7c8aa1; font-size:12px; font-style: italic; }
.panel .muted{ color: #9fb2c7; }
.panel .italic{ font-style: italic; }

/* Headings */
#panels .panel h3.section-sites{ font-size: 14px; margin: 10px 0 6px; }
#panels .panel h3.section-actors,
#panels .panel h3.section-disciplines,
#panels .panel h3.section-actions{ text-transform: uppercase; font-size: 16px; letter-spacing: .02em; margin: 12px 0 6px; }

/* Category summaries */
details{ border:none; }
summary{ cursor:pointer; list-style:none; display:flex; justify-content: space-between; align-items:center; gap: 8px; color:#000; font-size:14px; font-weight:500; }
summary::-webkit-details-marker{ display:none; }
summary::after{ content:'▸'; transition: transform 120ms ease; }
details[open] summary::after{ transform: rotate(90deg); }

/* Items (rattachements) */
.items{ list-style:none; padding:8px 0 0; margin:0; display:grid; grid-template-columns: 1fr; gap:6px; }
.items li{ display:grid; grid-template-columns: 1fr; gap:4px; padding:6px 0; border:none; border-radius:0; }
.items li .org{ color:#6C7A89; font-size: 13px; }
.items.items-agg{ gap: 2px !important; padding-top: 4px !important; }
.items.items-agg li{ padding: 2px 0 !important; }
.items.items-agg li .org{ line-height: 1.25 !important; }
.items.items-agg li .org::before{ content:"• "; margin-right:6px; color:#6C7A89; }
/* disciplines: no bullets (we use icons) */
.items.items-disc li .org::before{ content:'' !important; margin:0 !important; }

/* Space between categories */
#panels .panel details{ margin: 16px 0 !important; }
#panels .panel details[open]{ margin-bottom: 20px !important; }

/* Sites list */
ul.sites{ list-style:none; margin:6px 0 10px; padding:0; display:flex; flex-wrap:wrap; gap:6px; }
ul.sites li a{ display:inline-block; padding:0; border:none; border-radius:0; color: var(--accent); }
ul.sites li a:hover{ text-decoration: underline; }

/* Responsive */
@media (max-width: 980px){
  :root{ --sidebar-w: 100vw; }
  .layout{ grid-template-columns: 1fr; }
  aside#sidebar{ order:2; height: 45vh; }
  svg{ height: 55vh; }
}

/* Generated */
.layout:has(#panels #dept-16:target) #mapwrap a.dept-clear[data-code="16"]{ display:inline; }
.layout:has(#panels #dept-16:target) #mapwrap a.dept-select[data-code="16"]{ display:none; }
.layout:has(#panels #dept-16:target) #mapwrap a.dept-clear[data-code="16"] .dept{ fill:#E0E0E0 !important; }
.layout:has(#panels #dept-17:target) #mapwrap a.dept-clear[data-code="17"]{ display:inline; }
.layout:has(#panels #dept-17:target) #mapwrap a.dept-select[data-code="17"]{ display:none; }
.layout:has(#panels #dept-17:target) #mapwrap a.dept-clear[data-code="17"] .dept{ fill:#E0E0E0 !important; }
.layout:has(#panels #dept-19:target) #mapwrap a.dept-clear[data-code="19"]{ display:inline; }
.layout:has(#panels #dept-19:target) #mapwrap a.dept-select[data-code="19"]{ display:none; }
.layout:has(#panels #dept-19:target) #mapwrap a.dept-clear[data-code="19"] .dept{ fill:#E0E0E0 !important; }
.layout:has(#panels #dept-23:target) #mapwrap a.dept-clear[data-code="23"]{ display:inline; }
.layout:has(#panels #dept-23:target) #mapwrap a.dept-select[data-code="23"]{ display:none; }
.layout:has(#panels #dept-23:target) #mapwrap a.dept-clear[data-code="23"] .dept{ fill:#E0E0E0 !important; }
.layout:has(#panels #dept-24:target) #mapwrap a.dept-clear[data-code="24"]{ display:inline; }
.layout:has(#panels #dept-24:target) #mapwrap a.dept-select[data-code="24"]{ display:none; }
.layout:has(#panels #dept-24:target) #mapwrap a.dept-clear[data-code="24"] .dept{ fill:#E0E0E0 !important; }
.layout:has(#panels #dept-33:target) #mapwrap a.dept-clear[data-code="33"]{ display:inline; }
.layout:has(#panels #dept-33:target) #mapwrap a.dept-select[data-code="33"]{ display:none; }
.layout:has(#panels #dept-33:target) #mapwrap a.dept-clear[data-code="33"] .dept{ fill:#E0E0E0 !important; }
.layout:has(#panels #dept-40:target) #mapwrap a.dept-clear[data-code="40"]{ display:inline; }
.layout:has(#panels #dept-40:target) #mapwrap a.dept-select[data-code="40"]{ display:none; }
.layout:has(#panels #dept-40:target) #mapwrap a.dept-clear[data-code="40"] .dept{ fill:#E0E0E0 !important; }
.layout:has(#panels #dept-47:target) #mapwrap a.dept-clear[data-code="47"]{ display:inline; }
.layout:has(#panels #dept-47:target) #mapwrap a.dept-select[data-code="47"]{ display:none; }
.layout:has(#panels #dept-47:target) #mapwrap a.dept-clear[data-code="47"] .dept{ fill:#E0E0E0 !important; }
.layout:has(#panels #dept-64:target) #mapwrap a.dept-clear[data-code="64"]{ display:inline; }
.layout:has(#panels #dept-64:target) #mapwrap a.dept-select[data-code="64"]{ display:none; }
.layout:has(#panels #dept-64:target) #mapwrap a.dept-clear[data-code="64"] .dept{ fill:#E0E0E0 !important; }
.layout:has(#panels #dept-79:target) #mapwrap a.dept-clear[data-code="79"]{ display:inline; }
.layout:has(#panels #dept-79:target) #mapwrap a.dept-select[data-code="79"]{ display:none; }
.layout:has(#panels #dept-79:target) #mapwrap a.dept-clear[data-code="79"] .dept{ fill:#E0E0E0 !important; }
.layout:has(#panels #dept-86:target) #mapwrap a.dept-clear[data-code="86"]{ display:inline; }
.layout:has(#panels #dept-86:target) #mapwrap a.dept-select[data-code="86"]{ display:none; }
.layout:has(#panels #dept-86:target) #mapwrap a.dept-clear[data-code="86"] .dept{ fill:#E0E0E0 !important; }
.layout:has(#panels #dept-87:target) #mapwrap a.dept-clear[data-code="87"]{ display:inline; }
.layout:has(#panels #dept-87:target) #mapwrap a.dept-select[data-code="87"]{ display:none; }
.layout:has(#panels #dept-87:target) #mapwrap a.dept-clear[data-code="87"] .dept{ fill:#E0E0E0 !important; }
.layout:has(#panels #city-bordeaux:target) #mapwrap a.city-select[data-slug="bordeaux"]{ display:inline; }
.layout:has(#panels #city-bordeaux:target) #mapwrap a.city-select[data-slug="bordeaux"] .city-dot{ fill:#F5A623 !important; opacity:1 !important; }
.layout:has(#panels #city-la-rochelle:target) #mapwrap a.city-select[data-slug="la-rochelle"]{ display:inline; }
.layout:has(#panels #city-la-rochelle:target) #mapwrap a.city-select[data-slug="la-rochelle"] .city-dot{ fill:#F5A623 !important; opacity:1 !important; }
.layout:has(#panels #city-limoges:target) #mapwrap a.city-select[data-slug="limoges"]{ display:inline; }
.layout:has(#panels #city-limoges:target) #mapwrap a.city-select[data-slug="limoges"] .city-dot{ fill:#F5A623 !important; opacity:1 !important; }
.layout:has(#panels #city-pau:target) #mapwrap a.city-select[data-slug="pau"]{ display:inline; }
.layout:has(#panels #city-pau:target) #mapwrap a.city-select[data-slug="pau"] .city-dot{ fill:#F5A623 !important; opacity:1 !important; }
.layout:has(#panels #city-poitiers:target) #mapwrap a.city-select[data-slug="poitiers"]{ display:inline; }
.layout:has(#panels #city-poitiers:target) #mapwrap a.city-select[data-slug="poitiers"] .city-dot{ fill:#F5A623 !important; opacity:1 !important; }

/* v1.4.2 — actors styled like disciplines; dotted separators */
.actors-list summary{ color:#6C7A89; font-size:13px; font-weight:500; }
.actors-list details{ border-bottom:1px dotted #C9D3DF; padding-bottom:10px; margin:12px 0 14px; }
.actors-list details:last-child{ margin-bottom:18px; }
.actors-list summary::after{ color:#9fb2c7; }

/* v1.4.3 — actions: no bullets (icons act as bullets) */
.items.items-actions li .org::before{ content:'' !important; margin:0 !important; }


/* Step 4 — details for Actions menées */
.items.items-actions li .org::before{ content:'' !important; } /* no bullets */
.items.items-actions{ margin: 4px 0 8px; }
.items.items-actions li{ display:flex; align-items:baseline; gap:8px; margin:2px 0; }
.pill{ display:inline-block; font-size: 11px; line-height: 1; padding:4px 6px; border-radius: 10px; background:#EFF3F8; color:#44566C; }
.pill-status{ background:#EEF7EE; color:#2B7A2E; }
.group-title{ margin: 6px 0 2px; font-size:12px; font-weight:600; color:#6C7A89; }

/* Filters panel */
.panel.filters-panel .panel-head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:6px; }
.panel.filters-panel .panel-head h2{ margin:0; font-size:16px; }
.panel.filters-panel .panel-head a.reset{ font-size:12px; font-style: italic; color:#7c8aa1; text-decoration:none; }
.panel.filters-panel .panel-head a.reset:hover{ text-decoration:underline; }
.panel.filters-panel .filters-block{ margin:8px 0 10px; }
.panel.filters-panel .filters-block h3{ margin:4px 0 6px; font-size:13px; color:#333; }
.panel.filters-panel .filters-group{ display:block; }
.panel.filters-panel .filters-group label{ display:inline-flex; gap:6px; align-items:center; font-size:13px; }
#filters-results .res-city{ margin:10px 0 12px; }
#filters-results h4{ margin:0 0 4px; font-size:14px; color:#2b3a50; }
#filters-results .res-cat{ margin:4px 0; }
#filters-results .res-cat-title{ font-size:12px; font-weight:600; color:#6C7A89; text-transform:uppercase; margin:2px 0 2px; }
#filters-results .res-list{ list-style:none; margin:0; padding:0; }
#filters-results .res-list li{ margin:1px 0; }
.link-filters{ text-decoration: underline; }

/* v1.5.4 — vertical checkboxes */
.panel.filters-panel .filters-group label{ display:flex; align-items:center; gap:6px; margin:4px 0; }

.panel.filters-panel .filters-sep{ border:0; border-top:1px dashed #C9D3DF; margin:8px 0; height:0; }

.panel.filters-panel .btn.btn-apply{ margin-top:6px; font-size:13px; padding:6px 10px; border:1px solid #ccd6e0; background:#f7f9fc; border-radius:6px; }


/* v1.5.13 — Filters results design aligned with panel lists */
#filters-results { margin: 6px 0 10px; }
#filters-results .res-city h4{ margin:4px 0 2px; font-size:14px; color:#2b3a50; font-weight:600; }
#filters-results .res-cat-title{ font-size:13px; font-weight:600; color:#6C7A89; text-transform:uppercase; margin:3px 0 4px; display:flex; align-items:center; gap:6px; }
#filters-results .items.items-agg li{ margin: 1px 0; }
#filters-results .items.items-agg li .org{ color:#51627a; } /* same grey as panels */


/* v1.5.16 — Force Actions menées sub-cats to match Actors design */
#panels .panel h3.section-actions + .actors-list summary{ color:#6C7A89; font-size:13px; font-weight:500; }
#panels .panel h3.section-actions + .actors-list details{ border-bottom:1px dotted #C9D3DF; padding-bottom:10px; margin:12px 0 14px; }
#panels .panel h3.section-actions + .actors-list details:last-child{ margin-bottom:18px; }
#panels .panel h3.section-actions + .actors-list summary::after{ color:#9fb2c7; }


/* v1.5.17 — Actions menées styled like Actors & bullets */
#panels .panel .actors-list summary{ color:#6C7A89; font-size:13px; font-weight:500; }
#panels .panel .actors-list details{ border-bottom:1px dotted #C9D3DF; padding-bottom:10px; margin:12px 0 14px; }
#panels .panel .actors-list details:last-child{ margin-bottom:18px; }
#panels .panel .actors-list summary::after{ color:#9fb2c7; }
#panels .panel .actors-list .items.items-actions li .org::before{ content:"• " !important; margin-right:6px !important; color:#6C7A89 !important; }


/* v1.5.18 — Force Actions summaries (same as Actors) with !important */
#panels .panel .actors-list summary,
#panels .panel .actors-list summary .org{
  color:#6C7A89 !important;
  font-size:13px !important;
  font-weight:500 !important;
}
#panels .panel .actors-list details{
  border-bottom:1px dotted #C9D3DF !important;
  padding-bottom:10px !important;
  margin:12px 0 14px !important;
}
#panels .panel .actors-list details:last-child{ margin-bottom:18px !important; }
#panels .panel .actors-list summary::after{ color:#9fb2c7 !important; }


/* v1.5.19 — Hard override exactly on summary .org (user request) */
#panels .panel .actors-list summary .org{
  color:#6C7A89 !important;
  font-size:13px !important;
  font-weight:500 !important;
}
/* keep arrow tint aligned */
#panels .panel .actors-list summary::after{ color:#9fb2c7 !important; }
/* ensure dotted separators for actions/actors lists */
#panels .panel .actors-list details{
  border-bottom:1px dotted #C9D3DF !important;
  padding-bottom:10px !important;
  margin:12px 0 14px !important;
}
#panels .panel .actors-list details:last-child{ margin-bottom:18px !important; }


/* v1.5.26 — site separators for dept panels */
#panels .panel ul.sites{ display:flex; flex-wrap:wrap; gap:0; }
#panels .panel ul.sites li+li::before{
  content:"|";
  margin: 0 6px;
  color:#9fb2c7;
}


/* v1.6.1 — updated line: smaller & grey */
#panels #welcome .muted.small{
  color:#6C7A89 !important;
  font-size:12px !important;
  margin-top:6px;
}

.items-agg .org a{ text-decoration:none; cursor:pointer; } .items-agg .org a:hover{ text-decoration:underline; }

.items-agg .org a.org-link{ text-decoration:none; } .items-agg .org a.org-link:hover{ text-decoration:underline; }

/* Static category (non-expandable) */
.actors-list .cat-static{ margin:12px 0 14px; border-bottom:1px dotted #C9D3DF; padding-bottom:10px; }
.actors-list .cat-static .org{ color:#6C7A89; font-size:13px; font-weight:500; }
