/* Percorso dimostrativo: usa i token del tema della presentazione. */
.demo-launch { display:flex; flex-wrap:wrap; align-items:center; gap:16px; margin:24px 0; }
.demo-launch>span { font-size:13px; color:var(--muted); }
.demo-primary,.demo-secondary { font:600 14px var(--sans); padding:12px 18px; border:1px solid var(--line); cursor:pointer; min-height:44px; }
.demo-primary { background:var(--primary); color:var(--on-primary); border-color:var(--primary); }
.demo-primary:hover { background:var(--primary-hover); }
.demo-secondary { background:var(--bg); color:var(--ink); }
.demo-secondary:hover { background:var(--surface); }
.explore-dialog { width:min(1060px,calc(100% - 40px)); max-height:calc(100dvh - 40px); padding:0; border:1px solid var(--line); color:var(--ink); background:var(--bg); box-shadow:var(--frame-shadow); font-family:var(--sans); }
.explore-dialog::backdrop { background:var(--bar-bg); opacity:.86; }
.explore-head { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:28px 32px 20px; }
.demo-eyebrow { color:var(--muted); text-transform:uppercase; letter-spacing:.12em; font-size:11px; margin:0 0 8px; }
.explore-head h2 { font:500 clamp(26px,4vw,38px) var(--serif); margin:0; }
.demo-disclaimer { margin:0 32px; padding:12px 16px; border-left:3px solid var(--primary); background:var(--surface); color:var(--muted); font-size:12px; line-height:1.6; }
.demo-progress { display:grid; grid-template-columns:repeat(4,1fr); list-style:none; margin:24px 32px 0; padding:0; counter-reset:demo-step; gap:8px; }
.demo-progress li { counter-increment:demo-step; padding:12px 0; border-bottom:2px solid var(--line); font-size:12px; color:var(--muted); }
.demo-progress li::before { content:'0' counter(demo-step) ' / '; }
.demo-progress li[aria-current="step"] { border-color:var(--primary); color:var(--ink); font-weight:600; }
.demo-progress li.demo-done { border-color:var(--accent); }
#explore-content { padding:28px 32px; min-height:290px; }
#explore-content h3 { font:500 clamp(23px,3vw,30px) var(--serif); margin:0 0 12px; }
#explore-content p { line-height:1.7; }
.demo-intro { color:var(--muted); max-width:65ch; margin:0 0 24px; font-size:14px; }
.demo-search label { display:block; font-weight:600; margin-bottom:8px; font-size:14px; }
.demo-search-row { display:flex; gap:8px; }
.demo-search input { min-width:0; flex:1; background:var(--bg); border:1px solid var(--line); color:var(--ink); padding:14px; font:16px var(--sans); }
.demo-example { margin-top:16px; font-size:13px; color:var(--muted); }
.demo-example button { color:var(--accent); border:0; padding:8px; background:transparent; text-decoration:underline; cursor:pointer; font:inherit; }
.demo-results { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.demo-card { border:1px solid var(--line); padding:22px; background:var(--surface); }
.demo-card h4 { font:500 22px var(--serif); margin:14px 0 8px; }
.demo-card p { font-size:14px; color:var(--muted); }
.demo-label { font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--accent); }
.demo-dossier { display:grid; grid-template-columns:1.2fr 1fr; gap:28px; }
.demo-facts { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:24px 0; }
.demo-facts dt { font-size:12px; color:var(--muted); margin-bottom:6px; }
.demo-facts dd { margin:0; font-size:14px; }
.demo-timeline { list-style:none; padding:0 0 0 18px; border-left:2px solid var(--line); }
.demo-timeline li { margin:0 0 20px; font-size:14px; line-height:1.6; }
.demo-timeline time { display:block; color:var(--accent); font-size:12px; }
.demo-document { padding:24px; border:1px solid var(--line); background:var(--surface); }
.demo-document h4 { font:500 23px var(--serif); margin:16px 0; }
.demo-document p { font-size:14px; }
.demo-success { border-left:3px solid var(--accent); padding-left:16px; margin-top:24px; }
.explore-footer { display:flex; gap:16px; align-items:center; justify-content:space-between; padding:16px 32px; border-top:1px solid var(--line); }
#explore-status { color:var(--muted); font-size:12px; text-align:center; }
.explore-dialog :focus-visible,.demo-launch :focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
@media(max-width:650px) {
 .explore-dialog { width:calc(100% - 16px); max-height:calc(100dvh - 16px); }
 .explore-head { align-items:flex-start; padding:20px 16px; gap:12px; flex-direction:column; }
 .demo-disclaimer { margin:0 16px; }
 .demo-progress { margin:16px 16px 0; grid-template-columns:1fr 1fr; }
 #explore-content { padding:24px 16px; }
 .demo-results,.demo-dossier { grid-template-columns:1fr; }
 .demo-search-row { flex-direction:column; }
 .explore-footer { padding:16px; flex-wrap:wrap; }
 #explore-status { order:3; flex-basis:100%; }
}

/* Scheda sito completa. */
.dossier-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; }
.dossier-update { max-width:230px; padding-left:16px; border-left:2px solid var(--primary); font-size:12px; line-height:1.6; }
.dossier-update span,.dossier-update small,.dossier-update time { display:block; }
.dossier-update span,.dossier-update small { color:var(--muted); }
.dossier-update time { font-weight:600; font-size:15px; margin:5px 0; }
.dossier-nav { display:flex; flex-wrap:wrap; gap:8px; margin:8px 0 24px; }
.dossier-nav a { padding:12px; font-size:12px; text-decoration:none; color:var(--ink); border:1px solid var(--line); background:var(--surface); }
.dossier-nav a:hover { border-color:var(--accent); }
.dossier-section { border-top:1px solid var(--line); padding:24px 0; scroll-margin-top:16px; min-width:0; }
.dossier-section h4 { font:500 24px var(--serif); margin:10px 0 16px; }
.dossier-section p { font-size:14px; }
.dossier-note { padding:14px 16px; background:var(--surface); border-left:2px solid var(--line); color:var(--muted); font-size:12px !important; line-height:1.7; }
.dossier-state { display:inline-block; margin:0; padding:8px 12px; border:1px solid var(--line); color:var(--accent); font-weight:600; }
.dossier-map { margin:0; border:1px solid var(--line); background:var(--surface); }
.dossier-map svg { width:100%; height:auto; display:block; }
.dossier-map .map-grid { stroke:var(--line); fill:none; stroke-width:1; }
.dossier-map .map-road { stroke:var(--bg); fill:none; stroke-width:18; }
.dossier-map .map-area { fill:var(--accent-soft); stroke:var(--accent); stroke-width:2; stroke-dasharray:5 4; }
.dossier-map .map-point { fill:var(--primary); stroke:var(--ink); stroke-width:2; }
.dossier-map text { fill:var(--muted); font:10px var(--sans); letter-spacing:1px; }
.dossier-map figcaption { padding:10px 14px; font-size:11px; color:var(--muted); border-top:1px solid var(--line); }
.dossier-source-link { padding:8px 0; background:none; border:0; text-decoration:underline; color:var(--accent); cursor:pointer; font:13px var(--sans); min-height:44px; }
.dossier-documents { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.dossier-documents .demo-card { padding:18px; display:flex; flex-direction:column; align-items:flex-start; }
.dossier-documents h5 { font:500 20px var(--serif); margin:12px 0; }
.dossier-documents .demo-primary { margin-top:auto; }
.dossier-document-id { font-size:11px !important; overflow-wrap:anywhere; }
@media(max-width:760px) {
 .dossier-heading { flex-direction:column; }
 .dossier-update { max-width:none; margin-bottom:20px; }
 .dossier-documents { grid-template-columns:1fr; }
 .dossier-nav { gap:6px; }
}

/* Atlante: lo stesso insieme filtrato alimenta punti ed elenco. */
.atlas-filters { display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:12px; align-items:end; }
.atlas-filters>div { min-width:0; }
.atlas-filters label { display:block; font-size:12px; font-weight:600; margin-bottom:8px; }
.atlas-filters input,.atlas-filters select { width:100%; min-width:0; min-height:46px; padding:10px; border:1px solid var(--line); background:var(--bg); color:var(--ink); font:14px var(--sans); box-sizing:border-box; }
#atlas-reset { grid-column:1/-1; justify-self:start; }
.atlas-summary { color:var(--muted); font-size:13px; margin:20px 0 14px; }
.atlas-layout { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:20px; align-items:start; }
.atlas-map-panel { border:1px solid var(--line); background:var(--surface); min-width:0; }
.atlas-map-head { padding:16px; display:flex; flex-wrap:wrap; gap:12px; }
.atlas-controls { display:flex; gap:4px; align-items:center; flex-wrap:wrap; }
.atlas-controls .demo-secondary { padding:8px 12px; }
.atlas-controls output { font-size:12px; padding:0 6px; min-width:42px; text-align:center; }
.atlas-map-viewport { position:relative; overflow:auto; height:340px; border-block:1px solid var(--line); }
.atlas-map-canvas { position:relative; width:100%; height:100%; transform-origin:center; }
.atlas-map-canvas svg { position:absolute; inset:0; width:100%; height:100%; }
.atlas-grid { stroke:var(--line); stroke-width:1; fill:none; }
.atlas-road { stroke:var(--bg); stroke-width:18; fill:none; }
.atlas-water { stroke:var(--accent-soft); stroke-width:20; fill:none; }
.atlas-boundary { stroke:var(--muted); fill:none; stroke-width:1; stroke-dasharray:4 3; }
.atlas-area-label { position:absolute; color:var(--muted); font-size:10px; text-transform:uppercase; letter-spacing:.05em; }
.atlas-north { left:6%; top:7%; }
.atlas-east { right:5%; bottom:5%; }
.atlas-marker { position:absolute; transform:translate(-50%,-50%); display:flex; flex-direction:column; align-items:center; gap:6px; border:0; background:transparent; color:var(--ink); cursor:pointer; min-width:44px; min-height:44px; padding:4px; z-index:1; }
.atlas-marker[hidden] { display:none; }
.atlas-marker-0 { left:26.36%; top:28.18%; }
.atlas-marker-1 { left:73.18%; top:67.27%; }
.atlas-pin { display:grid; place-items:center; width:36px; height:36px; border:2px solid var(--ink); border-radius:50%; background:var(--primary); color:var(--on-primary); font:700 12px var(--sans); }
.atlas-marker-name { background:var(--bg); border:1px solid var(--line); padding:5px 7px; font:600 11px var(--sans); white-space:nowrap; }
.atlas-marker.atlas-highlight { z-index:2; }
.atlas-marker.atlas-highlight .atlas-pin { outline:3px solid var(--accent); outline-offset:3px; }
.atlas-marker.atlas-highlight .atlas-marker-name { border-color:var(--accent); }
.atlas-map-caption { padding:14px 16px; margin:0; color:var(--muted); font-size:11px; }
.atlas-map-empty { position:absolute; inset:auto 12px 12px; padding:12px; background:var(--bg); border:1px solid var(--line); font-size:13px; }
.atlas-list { display:grid; gap:12px; min-width:0; }
.atlas-result,.atlas-empty { border:1px solid var(--line); padding:18px; background:var(--bg); }
.atlas-result h4,.atlas-empty h4 { font:500 22px var(--serif); margin:12px 0; }
.atlas-result p,.atlas-empty p { color:var(--muted); font-size:13px; }
.atlas-result.atlas-highlight { border-color:var(--accent); background:var(--surface); }
.atlas-result .demo-primary { font-size:12px; width:100%; text-align:left; }
#dossier-return-map { margin:0 0 12px; }
.demo-secondary:disabled { opacity:.5; cursor:default; }
@media(max-width:800px) {
 .atlas-layout { grid-template-columns:1fr; }
 .atlas-filters { grid-template-columns:1fr 1fr; }
 .atlas-filters>div:first-child { grid-column:1/-1; }
 .atlas-map-viewport { height:300px; }
}
@media(max-width:420px) {
 .atlas-filters { grid-template-columns:1fr; }
 .atlas-marker-name { font-size:10px; white-space:normal; max-width:100px; }
 .atlas-map-viewport { height:280px; }
}

/* Provenienza e stato di verifica accanto ai dati. */
.info-evidence { display:flex; flex-direction:column; align-items:flex-start; gap:8px; margin:12px 0 18px; padding:12px; border-left:2px solid var(--line); background:var(--surface); color:var(--muted); font:11px/1.6 var(--sans); overflow-wrap:anywhere; }
.info-evidence p { font-size:11px !important; margin:0; }
.evidence-ref { display:flex; flex-direction:column; gap:3px; width:100%; }
.evidence-ref+.evidence-ref { padding-top:10px; border-top:1px solid var(--line); }
.verify-badge { display:inline-block; padding:5px 8px; border:1px solid var(--line); color:var(--ink); background:var(--bg); font:600 10px/1.5 var(--sans); letter-spacing:.01em; }
.verify-conflict { color:var(--human); background:var(--human-soft); border-color:var(--human-line); }
.evidence-link { display:inline; padding:4px 0; border:0; background:transparent; color:var(--accent); text-decoration:underline; text-align:left; font:inherit; cursor:pointer; }
.evidence-link:focus-visible { outline-offset:2px; }
.verification-key { font-size:12px !important; color:var(--muted); padding:16px; border:1px solid var(--line); line-height:1.7; }
.conflict-comparison { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:20px 0; }
.conflict-source { padding:18px; border:1px solid var(--human-line); min-width:0; }
.conflict-source h5 { margin:0 0 10px; font:500 28px var(--serif); }
.conflict-source .info-evidence { margin-bottom:0; }
.evidence-review { font-size:11px !important; }
.source-verification { border-top:1px solid var(--line); padding-top:16px; margin-top:24px; }
.atlas-evidence { margin:12px 0; }
.atlas-evidence summary { font-size:12px; color:var(--accent); cursor:pointer; padding:10px 0; }
.demo-facts:has(.info-evidence) { gap:20px; }
.dossier-update .info-evidence { padding:8px; font-size:10px; margin-bottom:0; }
.dossier-update .info-evidence span { color:var(--muted); }
@media(max-width:650px) {
 .conflict-comparison { grid-template-columns:1fr; }
 .demo-facts:has(.info-evidence) { grid-template-columns:1fr; }
}
