/* SmartLands — Destinazioni urbanistiche
 * Linea grafica allineata al portale: blu istituzionale come colore primario,
 * ambra come solo accento. I nomi delle variabili storiche sono mantenuti
 * perché alcuni stili inline del frontend li usano.
 */

.sld{
  /* palette del portale */
  --blue:#084B6D;
  --blue-dark:#063A54;
  --blue-soft:#F2F7F9;
  --blue-line:rgba(8,75,109,0.10);
  --amber:#C97F1E;
  --amber-dim:rgba(201,127,30,0.12);
  --coral:#C85A42;
  --coral-dim:rgba(200,90,66,0.10);

  /* alias storici usati dal markup generato via JS */
  --blue-deep:#0A3348;
  --blue-mid:#12536F;
  --paper:#16303F;
  --paper-dim:rgba(22,48,63,0.66);
  --teal:#084B6D;
  --teal-dim:rgba(8,75,109,0.08);

  --line:rgba(22,48,63,0.14);
  --line-strong:rgba(22,48,63,0.26);
  --panel-bg:#FFFFFF;
  --field-bg:#FBFCFD;
  --radius:3px;
  --font-display:'Titillium Web','Titillium Web Fallback',sans-serif;
  --font-body:'Titillium Web','Titillium Web Fallback',sans-serif;
  --font-mono:'Titillium Web','Titillium Web Fallback',sans-serif;

  color:var(--paper);
  font-family:var(--font-body);
  background:none;
  padding:0;
}
.sld *{box-sizing:border-box;}
.sld a{color:var(--blue);}
.sld .wrap{max-width:100%;margin:0;padding:0;}
.sld :focus-visible{outline:3px solid var(--amber);outline-offset:2px;}
.sld .visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
.sld ::selection{background:var(--amber);color:#fff;}

/* ------------------------------------------------------------ pulsanti
   Stessa forma dei pulsanti Elementor del portale: pieno blu, testo chiaro,
   angoli appena smussati, Titillium 600. */
.sld .sld-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--font-display);
  font-size:15px;
  font-weight:600;
  line-height:1.2;
  padding:13px 26px;
  border-radius:var(--radius);
  border:1px solid transparent;
  cursor:pointer;
  text-decoration:none;
  white-space:nowrap;
  transition:background .15s ease,border-color .15s ease,color .15s ease;
}
.sld .sld-btn-primary{background:var(--blue);color:#FDFDFD;}
.sld .sld-btn-primary:hover{background:var(--blue-dark);color:#fff;}
.sld .sld-btn-ghost{background:#fff;color:var(--blue);border-color:rgba(8,75,109,0.35);}
.sld .sld-btn-ghost:hover{background:var(--blue-soft);border-color:var(--blue);}
.sld .sld-btn[disabled]{opacity:.55;cursor:progress;}
.sld .sld-btn-sm{font-size:13.5px;padding:9px 18px;}
.sld .sld-link-btn{
  background:none;border:none;padding:0;cursor:pointer;
  font-family:var(--font-body);font-size:13px;color:var(--blue);text-decoration:underline;
}

/* ------------------------------------------------------------ pannelli */
.sld header.top{padding:0 0 18px;}
.sld .search-panel,
.sld .map-panel{
  margin:0 0 18px;
  padding:22px 24px;
  background:var(--panel-bg);
  border:1px solid var(--line);
  border-top:3px solid var(--blue);
  border-radius:var(--radius);
}
.sld .search-panel .label-row,
.sld .map-panel .label-row{
  font-family:var(--font-display);
  font-size:11px;
  font-weight:600;
  letter-spacing:.11em;
  text-transform:uppercase;
  color:var(--blue);
  margin:0 0 14px;
}
.sld .search-grid{display:grid;grid-template-columns:1fr 1fr auto;gap:14px;align-items:end;}
@media (max-width:640px){.sld .search-grid{grid-template-columns:1fr;}}
.sld .field label{
  display:block;font-size:12.5px;color:var(--paper-dim);margin-bottom:6px;
  font-family:var(--font-body);letter-spacing:.02em;
}
.sld .field select,.sld .field input{
  width:100%;
  background:var(--field-bg);
  border:1px solid var(--line-strong);
  color:var(--paper);
  font-family:var(--font-body);
  font-size:15px;
  padding:11px 12px;
  border-radius:var(--radius);
  appearance:none;
  outline:none;
}
.sld .field select:focus,.sld .field input:focus{border-color:var(--blue);}
.sld .field select{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M0 0L5 6L10 0Z' fill='%23084B6D'/></svg>");
  background-repeat:no-repeat;
  background-position:right 12px center;
}
.sld .hint{margin:12px 0 0;font-size:13px;color:var(--paper-dim);}

/* combobox particella */
.sld .combo{position:relative;}
.sld .combo ul{
  position:absolute;z-index:900;top:100%;left:0;right:0;max-height:240px;overflow:auto;
  margin:2px 0 0;padding:0;list-style:none;background:#fff;
  border:1px solid var(--line-strong);border-radius:var(--radius);
  box-shadow:0 8px 20px rgba(8,75,109,.14);
}
.sld .combo ul[hidden]{display:none;}
.sld .combo li{padding:8px 11px;font-size:14px;cursor:pointer;}
.sld .combo li[aria-selected="true"],.sld .combo li:hover{background:var(--blue-soft);}
.sld .combo-empty{padding:8px 11px;font-size:13px;color:var(--paper-dim);}

/* ------------------------------------------------------------ selezione */
.sld .chips-wrap{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);}
.sld .chips-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;}
.sld .btn-clear{
  background:#fff;border:1px solid rgba(200,90,66,.5);color:var(--coral);
  font-family:var(--font-body);font-size:12px;padding:6px 13px;border-radius:14px;cursor:pointer;
}
.sld .btn-clear:hover{background:var(--coral-dim);border-color:var(--coral);}
.sld .chips-list{display:flex;flex-wrap:wrap;gap:8px;}
.sld .selchip{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--blue-soft);
  border:1px solid rgba(8,75,109,.28);
  border-radius:16px;
  padding:6px 8px 6px 14px;
  font-size:13px;color:var(--paper);
}
.sld .selchip .x{
  width:18px;height:18px;border-radius:50%;background:rgba(8,75,109,.09);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;font-size:13px;line-height:1;color:var(--blue);border:none;
}
.sld .selchip .x:hover{background:var(--coral);color:#fff;}

/* ------------------------------------------------------------ barra azioni */
.sld .toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:18px 0 4px;}
.sld #sld-toolbar-msg{font-size:13.5px;color:var(--blue);font-weight:600;}
.sld .loading{font-size:13.5px;color:var(--paper-dim);padding:8px 0;}

/* ------------------------------------------------------------ riepilogo */
.sld .agg-card{
  border:1px solid var(--line);
  border-left:4px solid var(--amber);
  border-radius:var(--radius);
  background:var(--blue-soft);
  padding:22px 24px;
  margin-bottom:20px;
}
.sld .agg-title{font-family:var(--font-display);font-weight:600;font-size:19px;color:var(--paper);margin-bottom:4px;}
.sld .agg-sub{font-size:13px;color:var(--paper-dim);margin-bottom:16px;}
.sld .agg-stats{display:flex;gap:32px;flex-wrap:wrap;margin-bottom:16px;}
.sld .agg-list-title{
  font-family:var(--font-display);font-size:11px;font-weight:600;text-transform:uppercase;
  letter-spacing:.1em;color:var(--blue);margin:14px 0 8px;
}
.sld .agg-tag{
  display:inline-flex;align-items:center;gap:7px;
  background:#fff;border:1px solid var(--line-strong);
  border-radius:var(--radius);padding:6px 11px;margin:0 7px 7px 0;font-size:13px;
}
.sld .agg-tag .cnt{
  font-size:11px;background:var(--blue);color:#fff;border-radius:9px;padding:2px 7px;font-weight:600;
}

/* ------------------------------------------------------------ risultati */
.sld #sld-results{margin-top:20px;display:flex;flex-direction:column;gap:20px;}
.sld .empty-state{text-align:center;padding:48px 20px;color:var(--paper-dim);}
.sld .empty-state p{font-size:14.5px;max-width:460px;margin:0 auto;line-height:1.6;}
.sld .not-found{padding:22px;border:1px dashed var(--coral);border-radius:var(--radius);background:var(--coral-dim);}

.sld .rcard{
  border:1px solid var(--line-strong);
  border-radius:var(--radius);
  overflow:hidden;
  background:#fff;
}
.sld .rcard-head{
  display:flex;justify-content:space-between;align-items:flex-start;gap:20px;
  padding:20px 24px;
  background:var(--blue);
  color:#FDFDFD;
  flex-wrap:wrap;
}
.sld .rcard-id{font-size:12px;letter-spacing:.09em;color:rgba(255,255,255,.75);margin-bottom:4px;}
.sld .rcard-title{font-family:var(--font-display);font-weight:600;font-size:26px;line-height:1.1;}
.sld .rcard-stats{display:flex;gap:26px;flex-wrap:wrap;align-items:flex-start;}
.sld .rcard-head .stat{text-align:right;}
.sld .rcard-head .stat .n{font-size:20px;font-weight:600;color:#fff;}
.sld .rcard-head .stat .l{font-size:10.5px;color:rgba(255,255,255,.72);text-transform:uppercase;letter-spacing:.08em;margin-top:2px;}
.sld .stat .n{font-size:20px;font-weight:600;color:var(--blue);}
.sld .stat .l{font-size:10.5px;color:var(--paper-dim);text-transform:uppercase;letter-spacing:.08em;margin-top:2px;}
.sld .rcard-remove{
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.45);color:#fff;
  font-size:11.5px;padding:6px 12px;border-radius:14px;cursor:pointer;flex-shrink:0;
}
.sld .rcard-remove:hover{background:#fff;color:var(--blue);}

.sld .section{padding:20px 24px;border-top:1px solid var(--line);}
.sld .rcard .section:first-of-type{border-top:none;}
.sld .section-title{
  font-family:var(--font-display);font-size:11px;font-weight:600;
  letter-spacing:.11em;text-transform:uppercase;color:var(--blue);
  margin:0 0 13px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;
}
.sld .section-title .count{color:var(--paper-dim);font-weight:400;text-transform:none;letter-spacing:0;}

.sld .ambito-chip{
  display:inline-flex;align-items:baseline;gap:8px;
  background:var(--blue-soft);border:1px solid rgba(8,75,109,.24);color:var(--paper);
  padding:9px 14px;border-radius:var(--radius);margin:0 8px 8px 0;font-size:13.5px;
}
.sld .ambito-chip .code{color:var(--blue);font-weight:600;font-size:12.5px;}

/* vincoli */
.sld .layer-stack{display:flex;flex-direction:column;gap:8px;}
.sld .layer-row{
  border:1px solid var(--line);
  border-left:3px solid var(--amber);
  border-radius:var(--radius);
  background:#FCFDFD;
  transition:background .15s ease;
}
.sld .layer-row.marginal{border-left-color:var(--coral);}
.sld .layer-row:hover{background:var(--blue-soft);}
.sld .layer-row-head{
  display:flex;justify-content:space-between;align-items:center;gap:14px;
  padding:12px 14px;width:100%;background:none;border:0;font:inherit;color:inherit;
  text-align:left;cursor:pointer;
}
.sld .layer-row-head::after{content:"▾";font-size:12px;color:var(--paper-dim);margin-left:8px;transition:transform .15s;}
.sld .layer-row.open .layer-row-head::after{transform:rotate(180deg);display:inline-block;}
.sld .layer-row-head .chev{display:none;}
.sld .layer-name{font-weight:600;font-size:14px;}
.sld .layer-name .flag{
  font-size:10px;color:var(--coral);border:1px solid var(--coral);border-radius:2px;
  padding:1px 5px;margin-left:8px;text-transform:uppercase;letter-spacing:.05em;
}
.sld .layer-meta{display:flex;gap:16px;align-items:center;margin-left:auto;font-size:13px;color:var(--paper-dim);}
.sld .layer-meta .pct{color:var(--blue);font-weight:600;}
.sld .layer-detail{max-height:0;overflow:hidden;transition:max-height .25s ease;padding:0 14px;}
.sld .layer-row.open .layer-detail{max-height:420px;padding:0 14px 14px;}
.sld .detail-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));
  gap:10px 16px;border-top:1px solid var(--line);padding-top:12px;font-size:13px;
}
.sld .detail-grid .k{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--paper-dim);margin-bottom:3px;}
.sld .detail-grid .v{color:var(--paper);}
.sld .detail-grid .v small{display:block;color:var(--blue);font-size:11.5px;margin-top:2px;}

/* statistiche */
.sld .stats-toggle{
  display:inline-flex;align-items:center;gap:8px;
  background:#fff;border:1px solid rgba(8,75,109,.35);color:var(--blue);
  font-family:var(--font-body);font-size:13px;padding:9px 16px;border-radius:20px;
  cursor:pointer;margin-top:24px;
}
.sld .stats-toggle:hover{background:var(--blue-soft);border-color:var(--blue);}
.sld #sld-stats{display:none;margin-top:16px;}
.sld #sld-stats.show{display:block;}
.sld .bar-row{display:flex;align-items:center;gap:12px;margin-bottom:9px;font-size:13px;}
.sld .bar-label{width:230px;flex-shrink:0;color:var(--paper-dim);font-size:12.5px;}
.sld .bar-track{flex:1;background:rgba(8,75,109,.08);border-radius:2px;height:16px;overflow:hidden;}
.sld .bar-fill{height:100%;background:linear-gradient(90deg,var(--blue),var(--amber));}
.sld .bar-n{width:56px;text-align:right;font-size:12.5px;color:var(--paper-dim);}

/* nota e piede */
.sld .cdu-note{
  margin:22px 0 0;padding:14px 16px;border-left:3px solid var(--coral);
  background:var(--coral-dim);font-size:13.5px;line-height:1.55;border-radius:var(--radius);
}
.sld .cdu-note strong{color:var(--paper);}
.sld footer{
  margin:28px 0 0;padding:16px 0 0;border-top:1px solid var(--line);
  font-size:12.5px;color:var(--paper-dim);line-height:1.6;
}
.sld footer strong{color:var(--paper);}

/* ------------------------------------------------------------ mappa */
.sld .map-hint{font-size:13px;color:var(--paper-dim);margin:0 0 14px;line-height:1.5;}
.sld .map-search-row{display:flex;gap:10px;margin-bottom:12px;flex-wrap:wrap;}
.sld .map-search-row input{
  flex:1;min-width:200px;background:var(--field-bg);border:1px solid var(--line-strong);
  color:var(--paper);font-family:var(--font-body);font-size:15px;padding:11px 12px;
  border-radius:var(--radius);outline:none;
}
.sld .map-search-row input:focus{border-color:var(--blue);}
.sld #sld-map-status{font-size:13px;color:var(--blue);min-height:16px;margin:0 0 8px;}
.sld #sld-map{height:440px;width:100%;border-radius:var(--radius);border:1px solid var(--line-strong);background:#E7EEF0;}
.sld .map-legend{display:flex;gap:18px;flex-wrap:wrap;margin:12px 0 0;font-size:12.5px;color:var(--paper-dim);}
.sld .map-legend span{display:inline-flex;align-items:center;gap:6px;}
.sld .map-legend i{width:12px;height:12px;border-radius:2px;display:inline-block;border:1px solid rgba(22,48,63,.25);}
.sld .leaflet-popup-content-wrapper{
  background:#fff;color:var(--paper);border-radius:var(--radius);border:1px solid var(--line-strong);
  font-family:var(--font-body);font-size:13px;
}
.sld .leaflet-popup-tip{background:#fff;}
.sld .leaflet-popup-content b{color:var(--blue);}
.sld .parcel-tooltip{
  background:var(--blue);color:#EAF3F2;border:1px solid var(--blue);
  font-size:11.5px;padding:2px 6px;
}

@media (max-width:767px){
  .sld #sld-map{height:320px;}
  .sld .layer-row-head{flex-wrap:wrap;gap:6px;}
  .sld .layer-meta{margin-left:0;gap:10px;}
  .sld .rcard-stats{gap:14px;}
  .sld .sld-btn{width:100%;}
  .sld .toolbar{gap:8px;}
}

/* ------------------------------------------------------------ stampa
   Per il documento da archiviare c'è la scheda PDF; qui si ripulisce la
   pagina così anche la stampa diretta dal browser resta leggibile. */
@media print{
  .sld .search-panel,
  .sld .map-panel,
  .sld .toolbar,
  .sld .stats-toggle,
  .sld #sld-stats,
  .sld .rcard-remove,
  .sld .selchip .x,
  .sld .hint,
  .sld .leaflet-control-container{display:none!important;}
  .sld .layer-detail{max-height:none!important;overflow:visible!important;padding:0 14px 14px!important;}
  .sld .layer-row-head::after{display:none!important;}
  .sld .rcard{break-inside:avoid;page-break-inside:avoid;border:1px solid #999;}
  .sld .rcard-head{background:#084B6D!important;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .sld .agg-card{break-inside:avoid;page-break-inside:avoid;}
  .sld{background:#fff;}
  .sld #sld-results{gap:14px;}
}
