figure{margin:0 0 12px;background:var(--surface);border:1px solid var(--border);
  border-radius:14px;padding:12px;overflow-x:auto}
svg{width:100%;height:auto;min-width:700px;display:block}
svg path{stroke:var(--bg);stroke-width:.6;cursor:pointer;transition:fill .5s ease}
svg path:hover{stroke:var(--accent-2);stroke-width:1.4}
figcaption{font-family:var(--font-sans);font-size:13px;color:var(--dim);
  margin-top:10px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
figcaption .scala{flex:1;min-width:150px;max-width:320px;height:11px;border-radius:6px}
.viste{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.viste button{font-family:var(--font-sans);font-size:13.5px;cursor:pointer;
  padding:8px 13px;border-radius:9px;border:1px solid var(--border);
  background:transparent;color:var(--dim)}
.viste button:hover{border-color:var(--accent);color:var(--accent)}
.viste button.acceso{background:var(--accent);color:var(--accent-on);
  border-color:var(--accent);font-weight:600}

.film{margin:0 0 14px}
.film button.attivo{background:var(--accent-2);color:var(--accent-on);
  border-color:var(--accent-2);font-weight:600}
.film button[disabled]{opacity:.45;cursor:not-allowed}
figure{position:relative}
#targa-film{position:absolute;top:18px;left:50%;transform:translateX(-50%);
  z-index:5;font-family:var(--font-sans);font-size:34px;font-weight:800;
  color:var(--accent);display:none;font-variant-numeric:tabular-nums;
  text-shadow:0 0 22px var(--bg);pointer-events:none}
.lampo{position:absolute;pointer-events:none;z-index:6;
  font-family:var(--font-sans);font-size:12.5px;color:var(--text);
  background:var(--surface);white-space:nowrap;border:1px solid var(--border);
  border-radius:8px;padding:3px 9px;box-shadow:var(--sh-md);
  animation:svanisci 2.85s ease-out forwards}
.lampo small{color:var(--dim)}
.lampo.paese{border-color:var(--accent-2);color:var(--accent-2)}
svg path.acceso{stroke:var(--accent-2);stroke-width:2.2}
.filo{stroke:var(--accent-2);stroke-width:1.5;fill:none;opacity:.75;
  transition:stroke-dashoffset 1.3s ease,opacity 1s ease}
@keyframes svanisci{0%{opacity:0;margin-top:6px}5%{opacity:1;margin-top:0}
  80%{opacity:.92}100%{opacity:0;margin-top:-12px}}
@media (prefers-reduced-motion: reduce){.film{display:none}}
@media print{.film,#targa-film,.lampo{display:none}}
#velo{position:fixed;z-index:20;background:var(--surface);border:1px solid var(--accent);
  border-radius:10px;padding:9px 13px;font-family:var(--font-sans);font-size:13.5px;
  pointer-events:none;max-width:300px;box-shadow:var(--sh-md);color:var(--text)}
#velo b{color:var(--accent)}
#velo small{display:block;color:var(--dim);margin-top:3px}
.paesi-nuovi{font-family:var(--font-sans);font-size:14px;color:var(--accent);
  line-height:1.9;word-spacing:.2em}
ol.istituti{font-family:var(--font-sans);font-size:14.5px;padding-left:0;
  list-style:none;counter-reset:i;margin:0}
ol.istituti li{counter-increment:i;padding:6px 0;border-top:1px solid var(--border);
  display:flex;gap:10px;align-items:baseline}
ol.istituti li:first-child{border-top:0}
ol.istituti li::before{content:counter(i);color:var(--muted);font-size:12px;
  min-width:1.4em;text-align:right}
ol.istituti .n{color:var(--accent);font-weight:700;min-width:3.6em;text-align:right}
ol.istituti a{text-decoration:none;color:var(--text)}
ol.istituti a:hover{color:var(--accent);text-decoration:underline}
