:root{
  --blue:#12395b; --blue2:#0b253d; --blue3:#1c5d8f;
  --gold:#c8a24a; --gold2:#e5c878;
  --paper:#fbf8f2; --ink:#1e293b; --muted:#64748b; --line:#e7e0d3;
  --card:#fffdf8; --white:#fff; --shadow:0 18px 45px rgba(15,23,42,.12);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:linear-gradient(180deg,#f6f1e8,#fffdf8 34%,#f8fafc);color:var(--ink);line-height:1.55}
a{color:var(--blue);text-decoration:none} a:hover{text-decoration:underline}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:white;padding:.7rem 1rem;z-index:99;border-radius:.6rem}
.muted{color:var(--muted)}

.topbar{position:sticky;top:0;z-index:50;background:rgba(255,253,248,.9);backdrop-filter:blur(14px);border-bottom:1px solid rgba(231,224,211,.75)}
.nav{max-width:1240px;margin:auto;display:flex;align-items:center;gap:1rem;padding:.78rem 1rem}
.brandmark{width:42px;height:42px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(135deg,var(--blue2),var(--blue3));color:var(--gold2);font-weight:950;box-shadow:0 10px 22px rgba(18,57,91,.22);letter-spacing:-.06em}
.brand{font-weight:900;color:var(--blue);letter-spacing:.02em;font-size:1.02rem}
.navlinks{margin-left:auto;display:flex;gap:.45rem;flex-wrap:wrap}.navlinks a{padding:.55rem .8rem;border-radius:999px;color:var(--blue2);font-weight:750}.navlinks a.active,.navlinks a:hover{background:#eef4fb;text-decoration:none;transform:translateY(-1px)}

.hero{position:relative;overflow:hidden;background:radial-gradient(circle at 18% 12%,rgba(229,200,120,.38),transparent 25%),linear-gradient(135deg,var(--blue2),var(--blue));color:white}
.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,37,61,.9),rgba(18,57,91,.72)),url('../images/sfondo.png') center/cover no-repeat;opacity:.38;mix-blend-mode:screen}
.hero-inner{position:relative;max-width:1240px;margin:auto;display:grid;grid-template-columns:1.05fr .95fr;gap:2rem;align-items:center;padding:4.4rem 1rem 4.9rem}
.eyebrow{color:#f1d78d;font-weight:900;letter-spacing:.13em;text-transform:uppercase;font-size:.76rem}.eyebrow.dark{color:var(--gold);font-size:.72rem}
.hero h1{font-size:clamp(2.5rem,5vw,5.4rem);line-height:.92;margin:.35rem 0 1rem;letter-spacing:-.06em}.hero p{font-size:1.1rem;max-width:760px;color:#edf5ff}.hero strong{color:#fff}
.btns{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.45rem}.btn{display:inline-flex;align-items:center;gap:.45rem;border-radius:999px;padding:.88rem 1.18rem;font-weight:900;border:1px solid transparent;box-shadow:0 12px 24px rgba(0,0,0,.12);transition:.18s ease}.btn:hover{text-decoration:none;transform:translateY(-2px)}.btn-primary{background:linear-gradient(135deg,var(--gold2),var(--gold));color:#1f2937}.btn-secondary{border-color:rgba(255,255,255,.38);color:white;background:rgba(255,255,255,.08)}
.hero-card{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.24);border-radius:32px;padding:.85rem;box-shadow:var(--shadow);transform:rotate(1deg)}.hero-card img{width:100%;border-radius:24px;display:block;object-fit:cover;max-height:390px;min-height:300px}.hero-note{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;margin-top:.9rem}.hero-note span{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.18);padding:.7rem;border-radius:16px;font-weight:800;text-align:center;color:#fff}

.wrap{max-width:1240px;margin:auto;padding:2rem 1rem}.stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem;margin-top:-3.3rem;position:relative;z-index:2}.stat{background:rgba(255,253,248,.97);border:1px solid var(--line);border-radius:24px;padding:1rem;box-shadow:var(--shadow);transition:.18s ease}.stat:hover{transform:translateY(-3px)}.stat b{display:block;color:var(--blue);font-size:2rem;line-height:1}.stat span{display:block;font-weight:850;margin-top:.25rem}.stat small{color:var(--muted)}
.panel{background:var(--card);border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow);padding:1rem;margin:1rem 0}.panel h2,.panel h3{color:var(--blue2)}
.toolbar{display:grid;grid-template-columns:2fr repeat(3,1fr) auto;gap:.8rem;align-items:end}.field label{display:block;font-size:.78rem;font-weight:900;color:var(--blue2);margin-bottom:.25rem}input,select{width:100%;padding:.82rem .9rem;border:1px solid #d8d0c2;border-radius:15px;background:white;color:var(--ink);outline:none}input:focus,select:focus{border-color:var(--blue3);box-shadow:0 0 0 4px rgba(28,93,143,.12)}
.count-badge{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;background:#eef4fb;color:var(--blue);border:1px solid #dbe9f7;border-radius:999px;padding:.75rem 1rem;font-weight:900}.resetbtn{border:1px solid var(--line);background:#fff;border-radius:15px;padding:.82rem .9rem;cursor:pointer;font-weight:850;color:var(--blue2)}.resetbtn:hover{background:#f8fafc}
.grid{display:grid;grid-template-columns:minmax(320px,410px) 1fr;gap:1rem;align-items:start}.record-list{display:flex;flex-direction:column;gap:.75rem;max-height:790px;overflow:auto;padding-right:.35rem}.record-list::-webkit-scrollbar{width:10px}.record-list::-webkit-scrollbar-thumb{background:#d7cdbd;border-radius:999px}
.rec-card{border:1px solid var(--line);border-radius:20px;padding:.9rem;background:white;cursor:pointer;transition:.18s ease;animation:rise .28s ease both;animation-delay:var(--delay,0ms)}.rec-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(15,23,42,.1)}.rec-card.active{outline:3px solid rgba(200,162,74,.35);border-color:var(--gold);background:linear-gradient(180deg,#fff,#fff9e8)}.rec-top{display:flex;align-items:center;justify-content:space-between;gap:.7rem}.rec-id{font-weight:950;color:var(--blue);letter-spacing:.01em}.rec-title{font-weight:900;color:var(--blue2);font-size:1.03rem;margin-top:.18rem}.rec-meta{color:var(--muted);font-size:.9rem}.mini-dot{font-size:.72rem;background:#eaf7ed;color:#166534;border:1px solid #bbf7d0;padding:.15rem .45rem;border-radius:999px;font-weight:850;text-transform:uppercase}
.chips{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.45rem}.bigchips{margin:.8rem 0 1rem}.chip{background:#eef4fb;color:#12395b;border:1px solid #dbe9f7;border-radius:999px;padding:.2rem .55rem;font-size:.75rem;font-weight:800}
.detail{min-height:420px}.detail-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.detail h2{color:var(--blue);font-size:clamp(1.55rem,2.5vw,2.2rem);line-height:1.05;margin:.2rem 0;letter-spacing:-.03em}.detail-actions{display:flex;gap:.45rem;flex-wrap:wrap;justify-content:flex-end}.detail-section{border-top:1px solid var(--line);padding-top:.8rem;margin-top:.9rem}.detail-section summary{cursor:pointer;font-size:1.05rem;font-weight:950;color:var(--blue2);list-style:none;display:flex;align-items:center;gap:.5rem}.detail-section summary::-webkit-details-marker{display:none}.detail-section summary:before{content:'+';display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:#eef4fb;color:var(--blue);font-weight:950}details[open] summary:before{content:'–';background:#fff4d2;color:#7a5a11}.section-body{padding-top:.65rem}.kv{display:grid;grid-template-columns:minmax(150px,220px) 1fr;gap:.45rem .9rem}.kv dt{font-weight:900;color:var(--blue2)}.kv dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.subcard{border:1px solid var(--line);background:#fff;border-radius:18px;padding:.9rem;margin:.6rem 0}.subcard h4{margin:.1rem 0 .45rem;color:var(--blue)}.caption{font-style:italic;color:#475569}.media-card{background:linear-gradient(180deg,#fff,#fffaf0)}.missing{color:#9a3412;background:#fff7ed;border:1px solid #fed7aa;border-radius:14px;padding:.7rem;margin-top:.5rem}.media-img{max-width:100%;border-radius:14px;border:1px solid var(--line);margin-top:.4rem}
.tablewrap{overflow:auto;border:1px solid var(--line);border-radius:20px;background:white;max-height:70vh}table{width:100%;border-collapse:collapse;font-size:.92rem}th,td{border-bottom:1px solid #eee7dc;padding:.68rem;text-align:left;vertical-align:top}th{position:sticky;top:0;background:#f6f1e8;color:var(--blue2);z-index:1;white-space:nowrap}tr:hover td{background:#fffaf0}.pagination{display:flex;gap:.5rem;align-items:center;justify-content:flex-end;margin-top:.8rem}.pagination button,.smallbtn{border:1px solid var(--line);background:white;border-radius:12px;padding:.6rem .8rem;cursor:pointer;font-weight:850;color:var(--blue2)}.pagination button:hover,.smallbtn:hover{background:#eef4fb;text-decoration:none}.pagination button:disabled{opacity:.45;cursor:not-allowed}.smallbtn.primary{background:var(--blue);color:white}.map{height:720px;border-radius:28px;border:1px solid var(--line);box-shadow:var(--shadow);overflow:hidden}.leaflet-popup-content-wrapper{border-radius:16px}.popup b{color:var(--blue)}
.notice{background:#fff8df;border:1px solid #f1d78d;border-radius:18px;padding:1rem;color:#4b3a14}.loading-dot:after{content:' ';animation:dots 1.2s steps(4,end) infinite}.footer{margin-top:3rem;background:linear-gradient(135deg,var(--blue2),#071a2c);color:white}.footer-inner{max-width:1240px;margin:auto;padding:2rem 1rem}.footer p{color:#dbeafe}.footer a{color:#f1d78d}
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes dots{0%,20%{content:''}40%{content:'.'}60%{content:'..'}80%,100%{content:'...'}}
@media(max-width:1000px){.hero-inner,.grid{grid-template-columns:1fr}.toolbar{grid-template-columns:1fr 1fr}.stats{grid-template-columns:repeat(2,1fr)}.detail-head{flex-direction:column}.map{height:560px}}
@media(max-width:620px){.nav{align-items:flex-start;flex-wrap:wrap}.navlinks{margin-left:0}.hero-inner{padding:3rem 1rem}.hero-note{grid-template-columns:1fr}.stats{grid-template-columns:1fr}.toolbar{grid-template-columns:1fr}.kv{grid-template-columns:1fr}.hero-card img{min-height:220px}.map{height:480px}}
@media print{.topbar,.hero,.stats,.record-list,.toolbar,.pagination,.footer,.detail-actions{display:none!important}.grid{display:block}.panel,.detail{box-shadow:none;border:0}.wrap{padding:0}}

.toolbar-production{grid-template-columns:2fr 1.4fr 1fr auto}
.production-focus{border-color:rgba(200,162,74,.55);background:linear-gradient(180deg,#fffdf8,#fff7df)}
.footer-logos{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:center;margin-top:1.25rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.16)}
.footer-logos img{display:block;max-width:150px;max-height:64px;object-fit:contain;background:#fff;border-radius:14px;padding:.55rem;box-shadow:0 10px 24px rgba(0,0,0,.16)}
@media (max-width:900px){.toolbar-production{grid-template-columns:1fr}.footer-logos img{max-width:125px;max-height:58px}}
@media print{.footer-logos img{box-shadow:none;border:1px solid #ddd}.topbar,.btns,.toolbar,.pagination{display:none!important}}


/* TYPO v4 – leggibilità, testi espandibili, media e popup mappa */
.text-collapsed{max-width:100%}.text-more{margin-top:.45rem}.text-more summary{display:inline-flex;align-items:center;gap:.35rem;cursor:pointer;color:var(--blue);font-weight:900;background:#eef4fb;border:1px solid #dbe9f7;border-radius:999px;padding:.28rem .7rem;font-size:.82rem}.text-more div{margin-top:.55rem;padding:.75rem;border-radius:14px;background:#fbf8f1;border:1px solid var(--line);white-space:pre-wrap;line-height:1.55}.caption .text-more summary{font-style:normal}
.media-info-panel{display:grid;grid-template-columns:1.1fr 1.5fr;gap:1rem;align-items:start}.media-info-panel h2{margin-top:.15rem}.media-help{background:#fffaf0;border:1px solid #ead9a9;border-radius:18px;padding:1rem}.media-help code{background:#fff;border:1px solid #ead9a9;border-radius:8px;padding:.1rem .28rem}.media-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem}.landing-gallery{min-height:170px}.landing-media-card{border:1px solid var(--line);border-radius:18px;padding:.7rem;background:#fff;display:flex;flex-direction:column;gap:.35rem}.landing-media-card>b{color:var(--blue2)}.landing-media-card>span{color:var(--muted);font-size:.9rem}.media-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-bottom:.8rem}.media-card-grid.single{grid-template-columns:minmax(0,1fr)}.media-thumb{display:block;border-radius:16px;overflow:hidden;border:1px solid var(--line);background:#f8fafc;min-height:150px}.media-thumb img{width:100%;height:170px;object-fit:cover;display:block}.media-placeholder{min-height:150px;border:1.5px dashed #d8c496;border-radius:16px;background:linear-gradient(180deg,#fffaf0,#fff);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:.25rem;padding:.9rem;color:var(--blue2)}.media-placeholder .media-icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:#eef4fb;color:var(--blue);font-weight:950}.media-placeholder span{font-size:.88rem;color:var(--muted)}.media-placeholder small{font-size:.76rem;color:#8a6a19}.media-link:hover{text-decoration:none;transform:translateY(-2px)}
.fk-list{display:flex;flex-wrap:wrap;gap:.35rem}.fk-chip{border:1px solid #cfe0f3;background:#eef4fb;color:var(--blue);border-radius:999px;padding:.28rem .58rem;font-weight:800;font-size:.78rem;cursor:pointer;text-align:left;max-width:100%}.fk-chip:hover{background:#dbeafe;transform:translateY(-1px)}
.leaflet-popup-content{margin:0!important}.leaflet-popup-content-wrapper{border-radius:22px!important;padding:0!important;overflow:hidden;box-shadow:0 18px 46px rgba(15,23,42,.18)!important}.map-popup{min-width:240px;max-width:300px;background:#fff}.map-popup:before{content:"";display:block;height:7px;background:linear-gradient(90deg,var(--blue),var(--gold))}.popup-kicker{padding:.85rem 1rem 0;color:var(--gold);font-weight:950;letter-spacing:.12em;text-transform:uppercase;font-size:.68rem}.map-popup h3{margin:.15rem 1rem .25rem;color:var(--blue);font-size:1.12rem;line-height:1.1}.map-popup p{margin:0 1rem .65rem;color:var(--muted)}.popup-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin:0 1rem .8rem}.popup-tags span,.popup-more{background:#eef4fb;color:#12395b;border:1px solid #dbe9f7;border-radius:999px;padding:.18rem .48rem;font-size:.72rem;font-weight:800}.popup-btn{display:block;margin:.75rem 1rem 1rem;text-align:center;border-radius:12px;background:var(--blue);color:#fff!important;padding:.58rem .8rem;font-weight:900}.popup-btn:hover{text-decoration:none;background:var(--blue2)}
@media(max-width:900px){.media-info-panel{grid-template-columns:1fr}.media-gallery{grid-template-columns:1fr 1fr}.media-card-grid{grid-template-columns:1fr}}
@media(max-width:620px){.media-gallery{grid-template-columns:1fr}}


/* TYPO v5 – correzioni richieste */
.text-collapsed{display:inline}.text-more{display:inline}.text-more summary{display:inline-flex;align-items:center;gap:.35rem;margin-left:.25rem;padding:.25rem .55rem;border-radius:999px;border:1px solid #d7e4f3;background:#eef6ff;color:var(--blue);font-weight:900;font-size:.82rem;cursor:pointer;list-style:none}.text-more summary::-webkit-details-marker{display:none}.text-more[open] summary{margin-right:.35rem;background:#fff4d2;border-color:#ead9a9;color:#7a5a11}.text-more[open] summary::after{content:' richiudi';font-weight:700}.text-more span{display:block;margin-top:.35rem;line-height:1.65;color:inherit}
.media-info-panel{grid-template-columns:minmax(330px,.9fr) minmax(520px,1.4fr);overflow:hidden}.media-info-panel>div:first-child{min-width:0}.landing-gallery{grid-template-columns:repeat(3,minmax(160px,1fr));align-items:stretch}.landing-media-card{text-decoration:none;color:inherit;min-width:0}.landing-media-card:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(11,37,61,.12)}.landing-media-card .media-placeholder{min-height:125px;padding:.7rem}.landing-media-card .media-placeholder b{font-size:1rem}.landing-media-card .media-placeholder span{font-size:.78rem;overflow-wrap:anywhere}.landing-media-card>span,.landing-media-card>b{overflow-wrap:anywhere}.media-placeholder small{display:none}.fk-chip{display:inline-flex;align-items:center;gap:.25rem;border:1px solid #cfe0f2;background:#eef6ff;color:var(--blue);border-radius:999px;padding:.28rem .55rem;font-weight:850;font-size:.86rem;text-decoration:none;margin:.12rem}.fk-chip:hover{background:#dfeeff;text-decoration:none}.fk-list{display:flex;flex-wrap:wrap;gap:.2rem}.media-help{display:none!important}
@media(max-width:1100px){.media-info-panel{grid-template-columns:1fr}.landing-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.landing-gallery{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.landing-gallery{grid-template-columns:1fr}}

/* TYPO v7 – gallery, filtri avanzati, footer linkato, media stabili */
.toolbar-production{grid-template-columns:1.6fr 1.15fr .9fr 1fr 1.2fr auto}
.toolbar-database{grid-template-columns:1fr 1.6fr 1fr 1fr 1.2fr auto}
.toolbar-gallery{grid-template-columns:1.5fr 1fr 1fr}
.gallery-teaser{display:flex;align-items:center;justify-content:space-between;gap:1.2rem}
.gallery-teaser h2{margin:.1rem 0 .3rem}.bigtext{font-size:1.05rem;max-width:900px}.btn-inline{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--blue);color:white!important;padding:.8rem 1rem;font-weight:900;box-shadow:0 12px 24px rgba(11,37,61,.16)}.btn-inline:hover{text-decoration:none;background:var(--blue2);transform:translateY(-1px)}
.mini-dot{display:inline-flex;align-items:center;border:1px solid #bde3c7;background:#eaf9ee;color:#17612c;border-radius:999px;padding:.16rem .5rem;font-size:.7rem;font-weight:900;text-transform:uppercase;text-decoration:none}.mini-dot:hover{background:#d9f5e1;text-decoration:none}
.footer-logos a{display:flex;align-items:center;justify-content:center;background:#fff;border-radius:14px;padding:.55rem;box-shadow:0 10px 24px rgba(0,0,0,.16);transition:.16s ease}.footer-logos a:hover{transform:translateY(-2px);text-decoration:none}.footer-logos img{box-shadow:none;background:transparent;padding:0;border-radius:0}.footer-logos .typo-logo-card-wide img{max-width:190px}.footer-logos .logo-medium img{max-width:155px}
.media-thumb{position:relative;min-height:170px;display:block}.media-fallback{display:none;position:absolute;inset:0;padding:.9rem;align-items:center;justify-content:center;flex-direction:column;text-align:center;gap:.25rem;background:linear-gradient(180deg,#fffaf0,#fff);color:var(--blue2)}.media-thumb.is-missing .media-fallback{display:flex}.media-thumb.is-missing{border-style:dashed}.media-fallback .media-icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:#eef4fb;color:var(--blue);font-weight:950}.media-fallback small{color:var(--muted);overflow-wrap:anywhere}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.gallery-card{border:1px solid var(--line);background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 12px 28px rgba(15,23,42,.08);display:flex;flex-direction:column}.gallery-card .media-thumb{border:0;border-radius:0;min-height:220px}.gallery-card .media-thumb img{height:240px}.gallery-body{padding:1rem}.gallery-body h3{margin:.2rem 0 .35rem;color:var(--blue2)}.gallery-body p{margin:.3rem 0}.gallery-body .caption{font-style:normal;color:#334155;background:#fbf8f2;border:1px solid var(--line);border-radius:14px;padding:.65rem;margin:.65rem 0}
.map-popup{min-width:275px}.map-popup h3{font-size:1.18rem}.popup-btn{letter-spacing:.01em}
@media(max-width:1200px){.toolbar-production,.toolbar-database{grid-template-columns:1fr 1fr}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.toolbar-production,.toolbar-database,.toolbar-gallery{grid-template-columns:1fr}.gallery-grid{grid-template-columns:1fr}.gallery-teaser{align-items:flex-start;flex-direction:column}.footer-logos a{width:145px}.footer-logos .typo-logo-card-wide{width:190px}}

/* TYPO v8 – alleggerimento grafico, filtri applicati, gallery pulita e footer istituzionale */
:root{
  --paper:#f7f4ed;
  --card:#fffefa;
  --shadow:0 10px 26px rgba(15,23,42,.075);
  --line:#e5dfd4;
}
body{background:#f7f4ed;color:#1f2937}
.topbar{background:rgba(255,255,255,.94);border-bottom:1px solid #e8e2d6}.nav{padding:.58rem 1rem}.brandmark{width:36px;height:36px;border-radius:11px;box-shadow:none}.navlinks a{padding:.42rem .72rem}.navlinks a.active{background:#edf4fb}
.hero{background:#12395b}.hero:before{opacity:.22;mix-blend-mode:normal}.hero-inner{padding:3rem 1rem 3.35rem;grid-template-columns:1.15fr .85fr}.hero h1{font-size:clamp(2.3rem,4vw,4.4rem)}.hero p{font-size:1rem}.hero-card{border-radius:20px;box-shadow:0 12px 30px rgba(0,0,0,.15);transform:none}.hero-card img{border-radius:15px;min-height:240px;max-height:315px}.hero-note{display:none}
.wrap{padding:1.35rem 1rem}.stats{gap:.75rem;margin-top:-2.6rem}.stat{border-radius:18px;padding:.85rem;box-shadow:0 8px 20px rgba(15,23,42,.06)}.stat:hover{transform:none}.stat b{font-size:1.7rem}.stat span{font-size:.94rem}.stat small{font-size:.78rem}.panel{border-radius:18px;padding:1rem;box-shadow:0 8px 22px rgba(15,23,42,.055);background:#fffdf9}.panel h1,.panel h2,.panel h3{letter-spacing:-.02em}.grid{gap:.9rem}.rec-card{border-radius:15px;padding:.85rem;box-shadow:none}.rec-card:hover{box-shadow:0 8px 18px rgba(15,23,42,.075);transform:translateY(-1px)}.rec-card.active{outline:2px solid rgba(200,162,74,.30)}.detail h2{font-size:clamp(1.35rem,2.1vw,1.95rem)}.subcard{border-radius:14px}.detail-section summary:before{width:21px;height:21px;border-radius:7px}.map{border-radius:18px;height:680px}
.toolbar-production{grid-template-columns:1.35fr 1fr .85fr .95fr .95fr 1fr auto}.toolbar-database{grid-template-columns:.85fr 1.25fr .95fr .95fr .95fr 1.1fr auto}.toolbar-gallery{grid-template-columns:1.3fr 1fr .9fr .9fr auto}.toolbar-map{grid-template-columns:1.25fr 1fr .95fr .95fr auto}.actions-field{min-width:max-content}.btn-row{display:flex;gap:.45rem;align-items:center}.applybtn{border:1px solid #12395b;background:#12395b;color:white;border-radius:14px;padding:.82rem .9rem;cursor:pointer;font-weight:900}.applybtn:hover{background:#0b253d}.resetbtn{background:#fff}.field input,.field select{border-radius:12px;background:#fff}
.fk-list{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem}.fk-item{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;max-width:100%}.fk-key{display:inline-flex;border:1px solid #bdd5ee;background:#eef6ff;color:#12395b;border-radius:999px;padding:.18rem .5rem;font-weight:900;font-size:.82rem;text-decoration:none}.fk-key:hover{background:#dbeafe;text-decoration:none}.fk-label{font-size:.86rem;color:#64748b;line-height:1.25}.compact-links .fk-label{display:block;width:100%;padding-left:.3rem}.kv dd .fk-list{margin:.1rem 0}.fk-chip{display:none!important}
.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.gallery-card{border-radius:18px;box-shadow:0 8px 20px rgba(15,23,42,.065)}.gallery-media-pair{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;padding:.65rem;background:#f8fafc;border-bottom:1px solid var(--line)}.gallery-media-pair .media-thumb,.gallery-media-pair .media-placeholder{border-radius:12px;min-height:220px;background:#fff}.gallery-media-pair .media-thumb img{width:100%;height:220px;object-fit:contain;background:#fff;display:block}.gallery-card .media-thumb{border:1px solid var(--line)}.gallery-card .media-placeholder{display:none}.gallery-card.media-empty{display:none}.media-thumb.is-missing{display:none}.media-thumb.is-missing + .media-thumb.is-missing{display:none}.media-card-grid .media-thumb img{object-fit:contain;background:#fff}.media-thumb img{object-fit:contain;background:#fff}.gallery-body{padding:.85rem}.gallery-body .caption{font-style:normal;background:#faf7ef}
.map-panel h1{margin:.15rem 0 .75rem}.map-popup{min-width:280px;max-width:340px}.popup-help{font-size:.84rem;color:#64748b;margin:.1rem 1rem .45rem!important}.popup-choices{display:flex;flex-direction:column;gap:.35rem;margin:.5rem 1rem 1rem}.popup-choice{display:block;border:1px solid #dbe9f7;background:#eef6ff;color:#12395b!important;border-radius:12px;padding:.5rem .65rem;font-weight:850;text-decoration:none}.popup-choice:hover{background:#dbeafe;text-decoration:none}.leaflet-control-layers{border-radius:12px!important;overflow:hidden}.leaflet-control-layers-toggle{width:34px!important;height:34px!important}
.footer{background:#102f4c}.footer-inner{padding:1.6rem 1rem}.footer-logos{gap:.75rem}.footer-logos a{box-shadow:none;border:1px solid rgba(255,255,255,.22);border-radius:10px;padding:.45rem;background:#fff}.footer-logos img{max-height:52px;max-width:130px}.footer-logos .prin-logo-card{flex-basis:100%;max-width:380px;margin:0 auto .35rem;padding:.7rem 1rem}.footer-logos .prin-logo-card img{max-width:340px;max-height:115px;width:100%;height:auto}.footer-logos .typo-logo-card-wide img{max-width:170px}.footer-logos .logo-medium img{max-width:135px}
@media(max-width:1200px){.toolbar-production,.toolbar-database,.toolbar-gallery,.toolbar-map{grid-template-columns:1fr 1fr}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-inner{grid-template-columns:1fr}.hero-card{max-width:780px}}
@media(max-width:760px){.toolbar-production,.toolbar-database,.toolbar-gallery,.toolbar-map{grid-template-columns:1fr}.btn-row{flex-direction:column;align-items:stretch}.gallery-grid{grid-template-columns:1fr}.gallery-media-pair{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.grid{grid-template-columns:1fr}.footer-logos .prin-logo-card img{max-width:285px}}
.gallery-card.pending-media{display:none}.gallery-card.pending-media.media-ready{display:flex}.gallery-card.pending-media.media-empty{display:none!important}


/* TYPO FIX CONSERVATIVO 2026-05-07
   Ripristina lo stile originario e interviene solo sulla gallery:
   le chiavi restano linkate alle tabelle, ma non si sovrappongono. */
.gallery-card .gallery-body {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 0 !important;
}

.gallery-card .gallery-body > p {
  margin: .35rem 0 !important;
}

.gallery-card .gallery-body .caption {
  margin: .65rem 0 .75rem !important;
}

.gallery-card .gallery-body .fk-list.compact-links {
  width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: .45rem !important;
  margin-top: .8rem !important;
  padding-top: .75rem !important;
  border-top: 1px solid var(--line) !important;
  clear: both !important;
}

.gallery-card .gallery-body .fk-list.compact-links .fk-list {
  width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  gap: .35rem !important;
}

.gallery-card .gallery-body .fk-list.compact-links .fk-item {
  width: 100% !important;
  display: grid !important;
  grid-template-columns: max-content minmax(0, 1fr) !important;
  column-gap: .5rem !important;
  row-gap: .15rem !important;
  align-items: start !important;
  margin: 0 !important;
}

.gallery-card .gallery-body .fk-list.compact-links .fk-key {
  white-space: nowrap !important;
}

.gallery-card .gallery-body .fk-list.compact-links .fk-label {
  min-width: 0 !important;
  overflow-wrap: anywhere !important;
  padding-left: 0 !important;
}

@media (max-width: 520px) {
  .gallery-card .gallery-body .fk-list.compact-links .fk-item {
    grid-template-columns: 1fr !important;
  }
}

/* TYPO update 2026-07-02 – mappa puntuale, satellite e carosello gallery */
.media-carousel-panel{overflow:hidden}
.carousel-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.75rem}
.carousel-panel-head h2{margin:.15rem 0 .35rem}
.carousel-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}
.carousel-btn{width:42px;height:42px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--blue);font-weight:950;cursor:pointer;box-shadow:0 8px 18px rgba(15,23,42,.07)}
.carousel-btn:hover{background:#eef6ff;transform:translateY(-1px)}
.media-carousel{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(245px,300px);gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:.25rem .15rem .8rem;scrollbar-width:thin}
.media-carousel::-webkit-scrollbar{height:10px}.media-carousel::-webkit-scrollbar-thumb{background:#d7cdbd;border-radius:999px}
.carousel-card{scroll-snap-align:start;border:1px solid var(--line);background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 10px 24px rgba(15,23,42,.075);display:flex;flex-direction:column;min-height:100%}
.carousel-media .media-thumb,.carousel-media .media-placeholder{border:0;border-radius:0;min-height:185px;background:#f8fafc}
.carousel-media .media-thumb img{width:100%;height:185px;object-fit:contain;background:#fff;display:block}
.carousel-body{display:flex;flex-direction:column;gap:.45rem;padding:.85rem;min-height:190px}.carousel-body h3{font-size:1rem;line-height:1.15;margin:.15rem 0;color:var(--blue2)}.carousel-body p{margin:0;color:var(--muted);font-size:.9rem}.carousel-body small{color:#8a6a19;font-weight:850}.carousel-body .smallbtn{margin-top:auto;text-align:center}
.class-badge{align-self:flex-start;border:1px solid #dbe9f7;background:#eef6ff;color:#12395b;border-radius:999px;padding:.22rem .6rem;font-size:.78rem;font-weight:950}
.gallery-card.pending-media,.carousel-card.pending-media{display:flex!important}
.typo-marker-icon{position:relative;background:transparent;border:0!important}
.typo-marker-icon:before{content:"";position:absolute;left:50%;top:2px;width:26px;height:26px;transform:translateX(-50%) rotate(45deg);background:linear-gradient(135deg,var(--gold2),var(--gold));border:3px solid #12395b;border-radius:16px 16px 16px 4px;box-shadow:0 10px 22px rgba(11,37,61,.28)}
.typo-marker-icon:after{content:"";position:absolute;left:50%;top:10px;width:8px;height:8px;transform:translateX(-50%);background:#12395b;border-radius:999px;box-shadow:0 0 0 3px rgba(255,255,255,.72)}
.typo-marker-icon span{position:absolute;left:50%;top:-8px;min-width:22px;height:22px;display:grid;place-items:center;transform:translateX(2px);background:#12395b;color:#fff;border:2px solid #fff;border-radius:999px;font-size:.72rem;font-weight:950;box-shadow:0 8px 18px rgba(15,23,42,.22)}
.typo-marker-icon span:empty{display:none}.typo-marker-icon.is-hover:before{filter:brightness(1.08);box-shadow:0 14px 28px rgba(11,37,61,.36);transform:translateX(-50%) rotate(45deg) scale(1.08)}
.popup-record-group{border-top:1px solid var(--line);padding:.65rem 0 .25rem}.popup-record-title{margin:0 1rem .35rem;font-weight:950;color:var(--blue2);line-height:1.15}.compact-tags{margin-bottom:.45rem!important}.popup-record-group .popup-choices{margin-top:.35rem!important}
.leaflet-tooltip{border:1px solid #dbe9f7!important;border-radius:999px!important;color:#12395b!important;font-weight:850!important;box-shadow:0 8px 18px rgba(15,23,42,.12)!important}
@media(max-width:760px){.carousel-panel-head{flex-direction:column}.carousel-actions{justify-content:flex-start}.media-carousel{grid-auto-columns:minmax(230px,82vw)}}

/* TYPO update 2026-07-06 – media mancanti puliti e filtri deduplicati */
.gallery-card .media-placeholder,
.carousel-card .media-placeholder,
.media-card .media-placeholder,
.media-thumb.is-missing,
.media-thumb.is-missing .media-fallback{
  display:none!important;
}
.gallery-card.media-empty,
.carousel-card.media-empty{
  display:none!important;
}
.gallery-card.no-media{
  display:flex!important;
}
.gallery-media-pair.single-media,
.media-card-grid.single-media{
  grid-template-columns:1fr!important;
}
.gallery-media-pair.single-media .media-thumb img,
.media-card-grid.single-media .media-thumb img{
  width:100%;
}
.media-unavailable{
  margin:.65rem;
  padding:1rem;
  border:1px dashed #d8c496;
  border-radius:14px;
  background:#fffaf0;
  color:#12395b;
  display:flex;
  flex-direction:column;
  gap:.25rem;
}
.media-card .media-unavailable{
  margin:0 0 .8rem;
}
.media-unavailable b{
  font-size:.95rem;
}
.media-unavailable span{
  color:#64748b;
  font-size:.86rem;
  line-height:1.35;
}
.media-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.45rem;
  margin-top:.75rem;
}
.map-results-panel{
  margin-top:.65rem;
  padding:.75rem .9rem;
}
.map-results-head{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  align-items:center;
}
.map-results-panel h2{
  margin:.08rem 0 0;
  font-size:1.02rem;
}
#mapResultsSummary{
  margin:.35rem 0 .45rem;
  font-size:.88rem;
}
.map-results-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.5rem;
  max-height:160px;
  overflow:auto;
  padding-right:.2rem;
}
.map-results-panel.is-expanded .map-results-list{
  max-height:58vh;
}
.map-results-panel.is-collapsed .map-result-tags span:nth-child(n+4){
  display:none;
}
.map-result-card{
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  padding:.55rem .65rem;
  display:flex;
  justify-content:space-between;
  gap:.65rem;
  align-items:flex-start;
}
.map-result-card h3{
  margin:0 0 .15rem;
  color:#12395b;
  font-size:.93rem;
}
.map-result-card p{
  margin:0;
  color:#64748b;
  font-size:.8rem;
  line-height:1.3;
}
.map-result-tags{
  display:flex;
  flex-wrap:wrap;
  gap:.2rem;
  margin-top:.35rem;
}
.map-result-tags span{
  border:1px solid #dbe9f7;
  background:#eef6ff;
  color:#12395b;
  border-radius:999px;
  padding:.12rem .42rem;
  font-size:.7rem;
  font-weight:850;
}
.map-result-actions{
  display:flex;
  flex-direction:column;
  gap:.3rem;
  min-width:96px;
}
.map-result-actions .smallbtn{
  padding:.45rem .55rem;
  font-size:.78rem;
}
@media(max-width:900px){
  .map-results-list{
    grid-template-columns:1fr;
  }
  .map-result-card{
    flex-direction:column;
  }
  .map-result-actions{
    flex-direction:row;
    flex-wrap:wrap;
  }
}

/* === Selezione record sulla mappa (marker evidenziato) === */
.typo-marker-icon.is-selected:before{background:linear-gradient(135deg,#ffdf8e,#e4b13e);border-color:#b3261e;transform:translateX(-50%) rotate(45deg) scale(1.18);box-shadow:0 0 0 6px rgba(179,38,30,.18),0 14px 30px rgba(11,37,61,.4);animation:typoPulse 1.6s ease-in-out infinite}
.typo-marker-icon.is-selected:after{background:#b3261e}
.typo-marker-icon.is-selected span{background:#b3261e}
@keyframes typoPulse{0%,100%{box-shadow:0 0 0 5px rgba(179,38,30,.16),0 14px 30px rgba(11,37,61,.4)}50%{box-shadow:0 0 0 11px rgba(179,38,30,.05),0 14px 30px rgba(11,37,61,.4)}}
@media (prefers-reduced-motion: reduce){.typo-marker-icon.is-selected:before{animation:none}}

/* === Carosello: card della scheda selezionata === */
.carousel-card.is-current{border:2px solid var(--gold,#e4b13e);box-shadow:0 12px 30px rgba(228,177,62,.35)}
.carousel-card .current-badge{display:inline-block;margin:.15rem 0 .1rem;padding:.14rem .55rem;background:#12395b;color:#fff;border-radius:999px;font-size:.66rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}

/* === Legenda mappa === */
.typo-map-legend{background:rgba(255,255,255,.94);border:1px solid var(--line,#dbe2ea);border-radius:14px;padding:.55rem .75rem;font-size:.72rem;line-height:1.45;color:#22303f;box-shadow:0 8px 20px rgba(15,23,42,.14);max-width:240px}
.typo-map-legend b{display:block;margin-bottom:.25rem;font-size:.74rem}
.typo-map-legend span{display:flex;align-items:center;gap:.45rem;margin:.14rem 0}
.typo-map-legend i{flex:0 0 auto;display:inline-block}
.typo-map-legend .lg-marker{width:12px;height:12px;background:linear-gradient(135deg,var(--gold2,#ffdf8e),var(--gold,#e4b13e));border:2px solid #12395b;border-radius:10px 10px 10px 2px;transform:rotate(45deg)}
.typo-map-legend .lg-marker.lg-selected{border-color:#b3261e;box-shadow:0 0 0 3px rgba(179,38,30,.2)}
.typo-map-legend .lg-area{width:16px;height:12px;background:rgba(216,180,95,.35);border:2px solid #12395b;border-radius:3px}
.typo-map-legend .lg-area.lg-dashed{border-style:dashed}

/* === Miniature schede fotografiche nel database e allegati analisi (v4) === */
.fk-item-media{display:inline-flex;align-items:center;gap:.45rem}
.fk-thumb{flex:0 0 auto;width:46px;height:46px;border-radius:10px;overflow:hidden;border:1px solid var(--line,#dbe2ea);box-shadow:0 4px 10px rgba(15,23,42,.12);display:block}
.fk-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.analisi-attachment{display:flex;flex-direction:column;gap:.25rem}
.analisi-attachment .attachment-label{color:#5b6675;font-size:.7rem;line-height:1.3;text-align:center}


