:root{font-family:"Segoe UI",Arial,sans-serif;color:#203039;background:#fff;font-synthesis:none;color-scheme:light}
*{box-sizing:border-box}
body{margin:0}
button,summary{-webkit-tap-highlight-color:transparent}
.app{display:grid;grid-template-columns:minmax(0,1fr) min(24vw,360px);height:100vh;height:100dvh;overflow:hidden}
.map-surface{min-width:0;min-height:0;display:flex;background:#fff;overflow:hidden}
#map{width:100%;height:100%;display:block}
.sidebar{min-width:0;min-height:0;border-left:1px solid #dfe5e4;background:#f5f7f5;display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:#bbc8bf transparent;scrollbar-gutter:stable}
.intro{padding:28px 23px 19px;flex-shrink:0}
.eyebrow{font-size:10px;letter-spacing:2.1px;font-weight:750;display:flex;gap:9px;align-items:center;color:#61716e}
.flag{display:flex;width:18px;height:12px;border-radius:2px;overflow:hidden}
.flag i{width:6px;background:#151515}.flag i:nth-child(2){background:#f4d250}.flag i:nth-child(3){background:#d84c4c}
h1{font-size:31px;font-weight:750;letter-spacing:-1.3px;line-height:1.06;margin:18px 0 13px}
h1 span{display:block;font-size:21px;letter-spacing:-.5px;color:#67756e;font-weight:450;margin-top:5px}
.intro p{font-size:13px;line-height:1.55;color:#61716c;margin:0;max-width:270px}
.selection-status{margin:0 18px 20px;padding:13px 14px 12px;background:#eaf0eb;border:1px solid #dde6df;border-radius:10px;min-height:93px;flex-shrink:0;--active-color:#61766a}
.status-top{display:flex;justify-content:space-between;align-items:center;color:#65766b;font-size:9px;letter-spacing:1.2px;font-weight:700}
#countdown{font-size:12px;letter-spacing:0;font-variant-numeric:tabular-nums;color:var(--active-color);background:#fff9;border-radius:5px;padding:2px 6px}
#current-name{font-size:14px;font-weight:650;line-height:1.3;margin:7px 0 11px;min-height:18px;color:#34453a}
.time-track{height:3px;border-radius:3px;background:#d5dfd7;overflow:hidden}
#time-progress{width:100%;height:100%;background:var(--active-color);transform:scaleX(0);transform-origin:left}
.selection-status.active{background:#fff;border-color:#dce2df}
.selection-status.active #current-name{color:var(--active-color)}
.categories{flex:1 0 auto;min-height:0;padding:0 14px 18px}
details{margin-bottom:9px;background:#fff;border:1px solid #e0e6e1;border-radius:10px;overflow:hidden}
summary{display:flex;align-items:center;gap:10px;padding:17px 13px;cursor:pointer;list-style:none;user-select:none;font-size:15px;font-weight:650;color:var(--category-color)}
summary::-webkit-details-marker{display:none}
summary .symbol{width:22px;height:20px;flex:none}
.category-name{flex:1}
.category-count{font-size:11px;font-weight:500;color:#819087;font-variant-numeric:tabular-nums}
.chevron{width:14px;height:14px;flex:none;color:#94a299;transition:transform .16s ease}
details[open] .chevron{transform:rotate(180deg)}
details[open] summary{border-bottom:1px solid #eef1ee}
summary:hover{background:#f8faf8}
.element-list{padding:7px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3px}
details[data-category="canaux"] .element-list,details[data-category="regions"] .element-list{grid-template-columns:minmax(0,1fr)}
.element-button{font:inherit;font-size:12px;line-height:1.35;color:#405047;background:transparent;border:1px solid transparent;border-radius:5px;text-align:left;padding:9px 7px;min-height:35px;cursor:pointer;overflow-wrap:anywhere;display:flex;gap:7px;align-items:baseline;position:relative}
.element-button:hover{background:#f1f5f1;color:var(--category-color)}
.element-button[aria-pressed="true"]{color:var(--category-color);background:color-mix(in srgb,var(--category-color) 7%,white);border-color:color-mix(in srgb,var(--category-color) 28%,white);font-weight:700}
.element-button .alias{display:block;font-size:10px;color:#89958f;font-weight:400;margin-top:2px}
.region-number{font-size:10px;flex:0 0 26px;text-align:right;color:#84968a;white-space:nowrap}
.element-button.subregion{padding-left:20px}
.element-button.parent-region{font-weight:650;background:#f6f9f6}
button:focus-visible,summary:focus-visible{outline:3px solid #6a92b9;outline-offset:-3px}
.limit-note{display:block;color:#7f8b83;font-size:9px;font-weight:400;margin-top:3px}
footer{display:flex;flex-direction:column;gap:4px;padding:15px 22px 17px;border-top:1px solid #e2e8e2;color:#89968d;font-size:10px;flex-shrink:0;letter-spacing:.1px}
footer strong{font-weight:650;color:#53685a}
.selected-water{fill:none;stroke:var(--selection-color);stroke-width:6;stroke-linecap:round;stroke-linejoin:round}
.selected-region{fill:var(--selection-color);fill-opacity:.25;stroke:var(--selection-color);stroke-width:2.5;stroke-linejoin:round}
.selected-region.indicative{stroke-dasharray:9 5}
.region-boundary{fill:none;stroke:var(--selection-color);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.selected-city .outer{fill:white;fill-opacity:.85;stroke:#161616;stroke-width:2.5}
.selected-city .inner{fill:#161616;stroke:white;stroke-width:2.5}
.map-label text{font-family:"Segoe UI",Arial,sans-serif;font-size:22px;font-weight:650;fill:var(--selection-color)}
.map-label rect{fill:#fff;fill-opacity:.96;stroke:var(--selection-color);stroke-opacity:.2;stroke-width:1.5}
.map-label .label-note{font-size:15px;font-weight:450;fill:#6f7a73}
.landmark{fill:var(--selection-color);stroke:white;stroke-width:2.5}
.landmark-label{font:17px "Segoe UI",Arial,sans-serif;fill:var(--selection-color);stroke:#fff;stroke-width:6px;paint-order:stroke;stroke-linejoin:round}
@media(max-height:800px){.intro{padding:19px 20px 14px}h1{font-size:28px;margin:13px 0 11px}h1 span{font-size:19px}.intro p{font-size:12px}.selection-status{margin-bottom:14px;min-height:88px}.categories{padding-bottom:10px}summary{padding:14px 11px}footer{padding:10px 20px;font-size:9px}}
@media(max-width:1150px){.intro{padding-left:16px;padding-right:14px}h1{font-size:26px}h1 span{font-size:17px}.selection-status{margin-left:10px;margin-right:10px}.categories{padding-left:8px;padding-right:5px}summary{gap:6px;font-size:13px;padding-left:9px;padding-right:9px}.element-list{grid-template-columns:minmax(0,1fr)}.element-button{font-size:12px}footer{padding-left:15px}}
@media(max-width:800px),(max-width:1000px) and (pointer:coarse){
 .app{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,2fr) minmax(0,1fr)}
 .sidebar{border-left:0;border-top:1px solid #dfe5e4}
 .intro,footer{display:none}
 .selection-status{margin:6px 8px;padding:7px 10px 6px;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;border-radius:7px}
 .status-top{grid-column:2;grid-row:1}
 #status-caption{display:none}
 #countdown{font-size:13px}
 #current-name{grid-column:1;grid-row:1;align-self:center;font-size:14px;margin:0;overflow-wrap:anywhere}
 .time-track{grid-column:1 / -1}
 .categories{padding:0 8px max(8px,env(safe-area-inset-bottom))}
 details{margin-bottom:6px;border-radius:7px}
 summary{min-height:44px;padding:10px 12px;gap:10px;font-size:15px}
 .category-count{font-size:12px}
 .element-list{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 .element-button{min-height:44px;font-size:14px;padding:11px 8px}
 .element-button .alias{font-size:11px}
 .region-number{font-size:11px}
 .limit-note{font-size:11px}
}
@media(prefers-reduced-motion:reduce){.chevron{transition:none}}
