/* Interface de consultation. Les données et la symbologie cartographique restent inchangées. */
:root { --ui-border:#dedfe1; --ui-muted:#626467; --ui-radius:14px; }
body { font-size:15px; }
button, input, select { -webkit-tap-highlight-color:transparent; }
button:focus-visible,a:focus-visible,summary:focus-visible,select:focus-visible,input:focus-visible { outline:3px solid var(--brand-red); outline-offset:3px; }
.content { padding:36px clamp(24px,3vw,48px) 60px; }
.topbar { height:76px; }
.nav-button { min-height:48px; font-size:14px; }
.nav-button.active:hover { background:#fff0f0; color:var(--brand-red-dark); }
.nav-label,.brand-sub,.eyebrow { font-size:11px; }
.user-info { font-size:14px; }.user-info span,.breadcrumb,.top-pill { font-size:12px; }
.page-heading { align-items:flex-start; }.page-heading h1 { font-size:30px; }.page-heading p { font-size:15px; line-height:1.6; }
.button,.button.small { min-height:44px; font-size:14px; padding:11px 16px; }
.button .icon { width:18px; height:18px; }
.hero { border-radius:var(--ui-radius); border-color:var(--ui-border); }
.hero h2 { font-size:clamp(28px,2.5vw,38px); }.hero p { font-size:15px; line-height:1.7; }
.hero-text { padding:32px; }.hero-map-wrap { margin:16px 16px 16px 0; border-radius:10px; }
.search-box { flex-wrap:wrap; padding:6px; gap:8px; }
.search-box:focus-within { border-color:var(--brand-red); box-shadow:0 0 0 3px #e0000010; }
.search-field { flex:1 1 240px; }.search-field input { font-size:16px; min-height:46px; }
.search-box .button { min-height:46px; font-size:14px; padding:12px 16px; flex-grow:1; }
.search-options { gap:12px 20px; }.search-options label { font-size:13px; gap:8px; }
.search-options select,.search-options input { min-height:44px; font-size:16px; width:108px; padding:9px; }
.text-link { font-size:13px; min-height:44px; }.form-help { font-size:13px; color:var(--ui-muted); }
.suggestions { min-width:0; width:max(100%,300px); max-width:calc(100vw - 64px); }.suggestion { font-size:15px; min-height:56px; }.suggestion small { font-size:12px; }
.category-row { gap:16px; }.category { padding:22px; border-color:var(--ui-border); border-radius:12px; }
.category strong { font-size:15px; line-height:1.4; }.category span { font-size:13px; line-height:1.55; }.category-icon { margin-bottom:16px; }
.section-label { gap:16px; }.section-label h2 { font-size:21px; }.section-label p { font-size:13px; }
.recent { border-color:var(--ui-border); }.recent-row { padding:20px 22px; }.recent-icon { flex-shrink:0; }.recent-info { min-width:0; }.recent-info strong { font-size:15px; line-height:1.5; }.recent-info p { font-size:13px; line-height:1.5; }
.page-note { font-size:13px; line-height:1.75; }.page-note .icon { width:18px; height:18px; }
.report-head { padding:28px; border-color:var(--ui-border); border-radius:var(--ui-radius); gap:24px; }
.report-head h1 { font-size:clamp(24px,2.3vw,32px); line-height:1.25; }.report-meta { font-size:14px; }
.report-actions { max-width:310px; }.stat { border-color:var(--ui-border); padding:20px; }.stat-value { font-size:30px; }.stat-label { font-size:14px; line-height:1.5; }
.report-limit-note { font-size:13px; color:#71562f; line-height:1.7; padding:16px 20px; }
.report-navigation { position:sticky; top:0; z-index:600; background:#f6f6f6f5; border-bottom:1px solid var(--ui-border); padding:12px 0; margin:20px 0 24px; backdrop-filter:blur(12px); }
.report-filter { flex-wrap:nowrap; overflow-x:auto; margin:0 0 12px; padding:3px 3px 6px; gap:8px; scrollbar-width:thin; }
.report-filter .filter-button { flex-shrink:0; min-height:44px; font-size:14px; color:#55585b; padding:10px 14px; border-color:var(--ui-border); }
.report-filter .filter-button.active { color:#fff; border-color:var(--brand-black); }.filter-count { font-size:12px; opacity:1; margin-left:8px; }
.card-jump { display:flex; align-items:center; gap:12px; font-size:13px; font-weight:600; }
.card-jump select { min-height:44px; padding:9px 36px 9px 12px; border:1px solid #c8c9cb; border-radius:7px; background:#fff; color:var(--brand-ink); font-size:14px; max-width:100%; flex:1; }
.cards { gap:24px; }.map-card { border-color:var(--ui-border); border-radius:var(--ui-radius); scroll-margin-top:150px; min-width:0; }
.map-card:focus-visible { outline:3px solid var(--brand-red); outline-offset:3px; }
.card-header { display:grid; grid-template-columns:36px minmax(0,1fr); gap:8px 12px; padding:22px 24px 18px; }
.card-icon { grid-row:1 / 3; padding:9px; }.card-title h3 { font-size:18px; line-height:1.4; margin:0 0 6px; }.card-title p { font-size:13px; color:var(--ui-muted); }
.card-header>.status { grid-column:2; justify-self:start; margin:0; white-space:normal; }
.status { font-size:12px; padding:5px 9px; line-height:1.5; }.status.hit { color:#92451d; }.status.nearby { color:#765a20; }.status.clear { color:#326752; }.status.info { color:#315f86; }.status.unknown,.status.outside { color:#795728; }.status.unverified,.status.unavailable { color:#5c6268; }
.map-toolbar { display:flex; justify-content:flex-end; border-top:1px solid #ececec; background:#fafafa; padding:0 12px; }.map-toolbar .button { font-size:13px; }
.map-frame { height:340px; }.map-frame .map-stamp { font-size:10px; bottom:24px; color:#445f51; }
.legend { padding:16px 24px; gap:10px 18px; }.legend-item { font-size:12px; color:#53575b; gap:8px; }.legend-swatch { width:12px; height:12px; }
.card-body { padding:20px 24px; }.card-headline { font-size:16px; font-weight:600; }.card-note { font-size:14px; line-height:1.75; }.card-note+.card-note { margin-top:12px; }
.card-warning { font-size:13px; color:#7c5c30; }.source-date { font-size:12px; color:var(--ui-muted); border-top:1px solid #eee; padding-top:12px; margin-top:16px; }
.results-toggle summary { min-height:44px; font-size:14px; padding:12px 0; }.results-toggle[open]>summary .icon { transform:rotate(180deg); }
.detail-row { padding:16px 0; }.detail-row strong { font-size:14px; color:var(--brand-ink); }.distance { font-size:12px; color:var(--ui-muted); }.properties { font-size:12px; color:var(--ui-muted); gap:6px 12px; }.properties span:nth-child(even) { color:#3f484d; }.detail-links { font-size:13px; gap:10px 16px; }
.card-footer { padding:14px 24px; gap:12px; flex-wrap:wrap; background:#fcfcfc; }.card-footer a { font-size:13px; min-height:44px; }.card-footer>span { font-size:12px!important; color:var(--ui-muted)!important; }
.export-menu summary { min-height:44px; padding:11px 12px; font-size:13px; color:var(--brand-ink); }.export-options button { font-size:14px; min-height:44px; color:var(--brand-ink); }.export-menu .export-options { min-width:220px; }
.map-unavailable p { font-size:14px; color:var(--ui-muted); }
.leaflet-control-attribution { font-size:10px!important; }.leaflet-control-zoom a { width:36px!important; height:36px!important; line-height:36px!important; font-size:22px!important; }.leaflet-popup-content { font-size:14px; }.leaflet-popup-content div { font-size:12px!important; }
.geology-controls { font:13px var(--brand-sans); padding:8px 12px; max-width:240px; }.geology-controls label { min-height:30px; }.geology-controls input[type=checkbox] { width:18px; height:18px; }.geology-controls input[type=range] { height:30px; }
.pyrite-context>p,.pyrite-context dt,.pyrite-context dd,.pyrite-context .form-help { font-size:13px; }.pyrite-context .section-eyebrow { font-size:11px; }.radon-metric dt,.radon-threshold { font-size:13px; color:var(--ui-muted); }
.table-wrap { border-color:var(--ui-border); }table { font-size:14px; }th { font-size:13px; }td,th { padding:18px 20px; }td span[style] { font-size:13px!important; color:var(--ui-muted)!important; }td strong { color:var(--brand-ink); }.sources-intro { font-size:14px; }
.form-field { font-size:14px; }.form-field input,.form-field select { font-size:16px; min-height:46px; }.auth-form .intro { font-size:15px; }.setup-badge { font-size:13px; }
dialog { color:var(--brand-ink); max-height:calc(100dvh - 32px); }.modal-header { gap:16px; }.modal-header h2 { font-size:22px; line-height:1.3; }.close-button { width:44px; height:44px; flex-shrink:0; font-size:26px; color:#444; }
.pdf-card-choice { padding:16px 0; }.pdf-card-choice strong { font-size:15px; }.pdf-card-choice small { font-size:13px; }.pdf-card-list { max-height:43dvh; }.modal-actions { flex-wrap:wrap; }
#map-viewer { width:min(1400px,calc(100% - 32px)); height:calc(100dvh - 32px); overflow:hidden; }
#map-viewer[open] { display:flex; flex-direction:column; }.map-viewer-open { overflow:hidden; }
#map-viewer .modal-header { padding:18px 24px; flex-shrink:0; border-bottom:1px solid var(--ui-border); }#map-viewer .modal-header p { font-size:13px; color:var(--ui-muted); margin:6px 0 0; }
.map-viewer-content { flex:1; min-height:100px; }.map-viewer-content .map-frame { height:100%; }
#map-viewer>.legend { max-height:25%; overflow:auto; flex-shrink:0; border-top:1px solid var(--ui-border); }
@media(max-width:1200px) { .cards { grid-template-columns:1fr; }.category-row { grid-template-columns:repeat(2,minmax(0,1fr)); }.report-head { flex-direction:column; }.report-actions { max-width:none; justify-content:flex-start; }.hero { grid-template-columns:1fr; }.hero-map-wrap { display:none; } }
@media(min-width:651px) and (max-width:900px) { .sidebar { width:112px; padding-inline:8px; }.workspace { margin-left:112px; }.sidebar .nav-text { display:block; font-size:11px; line-height:1.4; }.nav-button { flex-direction:column; gap:6px; text-align:center; padding:12px 5px; }.sidebar .nav { gap:10px; } }
@media(max-width:650px) {
 .sidebar { height:auto; min-height:78px; padding:6px 6px calc(6px + env(safe-area-inset-bottom)); }.sidebar .nav { align-items:stretch; }.sidebar .nav-text { display:block; font-size:10px; line-height:1.3; }.nav-button { flex:1; flex-direction:column; justify-content:flex-start; gap:5px; padding:7px 3px; min-width:0; text-align:center; border-radius:7px; }.nav-button .icon { width:20px; height:20px; }.nav-button.active { box-shadow:inset 0 3px 0 var(--brand-red); }
 .workspace { margin:0 0 calc(88px + env(safe-area-inset-bottom)); }.content { padding:24px 16px 36px; }.topbar { height:64px; }
 .page-heading { flex-wrap:wrap; gap:12px; }.page-heading h1 { font-size:27px; }.page-heading p { font-size:14px; }.page-heading .button { font-size:14px; }
 .hero-text { padding:24px 20px; }.hero h2 { font-size:28px; }.hero p { font-size:15px; }.search-box { flex-direction:column; }.search-field { flex-basis:auto; }.search-box .button { font-size:14px; }.search-box .button .icon { display:block; }.search-options { gap:12px; }.search-options label { font-size:13px; }.suggestions { width:100%; max-width:none; }.form-help { font-size:13px; }
 .category { padding:18px; }.category strong { font-size:15px; }.category span { font-size:13px; }.section-label { flex-wrap:wrap; gap:10px; }.section-label p { display:block; }.section-label h2 { font-size:20px; }
 .recent-row { flex-wrap:wrap; padding:18px 16px; gap:10px; }.recent-icon { display:none; }.recent-info { flex-basis:calc(100% - 110px); }
 .report-head { padding:22px 20px; }.report-head h1 { font-size:26px; }.report-actions { gap:8px; width:100%; }.report-actions .button { font-size:13px; min-height:44px; padding:10px 12px; }#full-pdf { flex-basis:100%; }.report-meta { font-size:13px; }
 .stat { padding:16px; }.stat-value { font-size:28px; }.stat-label { font-size:13px; }.report-limit-note { padding:16px; }.report-navigation { padding:8px 0; margin-bottom:20px; }.card-jump { display:block; font-size:12px; }.card-jump select { display:block; width:100%; margin-top:6px; font-size:16px; }.report-filter { margin-bottom:6px; }.report-filter .filter-button { font-size:13px; }.map-card { scroll-margin-top:150px; }
 .card-header { padding:20px; gap:8px 10px; }.card-title h3 { font-size:18px; }.map-frame { height:320px; }.legend,.card-body { padding:18px 20px; }.card-footer { padding:12px 20px; }.card-footer .button { font-size:13px; }.card-footer a,.export-menu summary { font-size:13px; }.map-frame .map-stamp { bottom:35px; }
 .modal-header { padding:20px 18px 12px; }.modal-body { padding:8px 18px 20px; }.modal-header h2 { font-size:20px; }.pdf-card-choice strong { font-size:15px; }.pdf-card-choice small { font-size:13px; }.modal-actions .button { flex:1; }
 #map-viewer { width:100%; max-height:100dvh; height:100dvh; margin:0; border:0; border-radius:0; }#map-viewer .modal-header { padding:16px; }#map-viewer .modal-header h2 { font-size:18px; }#map-viewer>.legend { padding:12px 16px; }
 #toast { bottom:calc(100px + env(safe-area-inset-bottom)); font-size:14px; }
}
/* Keep mobile navigation above the report toolbar and card controls. */
.sidebar { z-index:1000; }
.report-navigation { z-index:30; }

@media(max-width:650px){#map-viewer{max-width:100vw}}
