@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
:root { --map-label-size: 11px; }
#active-svg text { display: none !important; }
#active-svg #cad-labels-layer text { display: block !important; }
body { font-family: 'Inter', sans-serif; overflow: hidden; user-select: none; }
.area-floating-bar, #area-actions-bar, .print-actions-bar {
    display: none !important;
}
#svg-container { width: 100%; height: 100%; cursor: grab; overflow: hidden; background-color: #ffffff; position: relative; }
#map-area-actions, .map-area-controls { display: none !important; }
#svg-container.dark-bg { background-color: #0f172a !important; }
#svg-container:active { cursor: grabbing; }
#planimetry-main { flex: 1 1 0%; min-width: 0; min-height: 0; display: flex; flex-direction: column; position: relative; overflow: hidden; }
.cad-room { transition: fill-opacity 0.15s ease, stroke 0.15s ease; cursor: pointer; }
/* Locale con bordo colorato */
.cad-room.has-border { stroke-linejoin: round; stroke-linecap: round; }
.cad-room:hover { 
    stroke: #0284c7 !important; 
    stroke-width: 2px !important; 
    vector-effect: non-scaling-stroke; 
}
/* Durante la misura, disabilita l'hover sui locali */
.measure-mode-active .cad-room {
    pointer-events: none !important;
}

/* Ma mantieni il puntatore crosshair sul container */
.measure-mode-active #svg-container {
    cursor: crosshair !important;
}
.cad-label text { font-family: 'Inter', sans-serif; pointer-events: none; font-weight: 600; }
.force-black-lines path:not(.has-border),
.force-black-lines polyline:not(.has-border),
.force-black-lines polygon:not(.has-border),
.force-black-lines line:not(.has-border),
.force-black-lines rect:not(.has-border),
.force-black-lines circle:not(.has-border) {
    stroke: #000000 !important;
}
#area-selection-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; width: 100%; height: 100%; pointer-events: none; z-index: 50; display: none; }
#area-selection-overlay.active { pointer-events: auto; display: block; }
.font-controls { opacity: 0.6; transition: opacity 0.2s ease; }
.font-controls:hover { opacity: 1; }
.edificio-group { margin-bottom: 4px; }
.edificio-header { display: flex; align-items: center; justify-content: space-between; padding: 9px 11px; border-radius: 6px; background: rgba(15, 23, 42, 0.5); border: 1px solid #1e293b; cursor: pointer; user-select: none; transition: background 0.15s ease, border-color 0.15s ease; }
.edificio-header:hover { background: rgba(30, 41, 59, 0.6); border-color: #334155; }
.edificio-header.expanded { background: rgba(14, 165, 233, 0.1); border-color: #0284c7; }
.edificio-header .edificio-name { font-size: 13px; font-weight: 700; color: #e2e8f0; }
.edificio-header .edificio-count { font-size: 10px; font-family: monospace; color: #64748b; }
.piani-container { margin-left: 14px; margin-top: 3px; padding-left: 8px; border-left: 1px solid #1e293b; }
.piano-row { display: flex; align-items: center; justify-content: space-between; padding: 7px 10px; border-radius: 6px; cursor: pointer; user-select: none; margin-bottom: 2px; background: rgba(2, 6, 23, 0.4); border: 1px solid transparent; transition: background 0.15s ease, border-color 0.15s ease; }
.piano-row:hover { background: rgba(30, 41, 59, 0.6); border-color: #334155; }
.piano-row.selected { background: rgba(14, 165, 233, 0.15); border-color: #0284c7; }
.piano-code { font-size: 12px; font-weight: 600; color: #cbd5e1; }
.piano-filename { font-size: 9px; font-family: monospace; color: #64748b; margin-top: 2px; word-break: break-all; }
.piano-badge-active { font-size: 9px; font-weight: 700; color: #38bdf8; background: rgba(14, 165, 233, 0.2); padding: 1px 5px; border-radius: 3px; }
/* Maniglie di ridimensionamento area planimetria */
#area-selection-overlay .area-handle {
    cursor: pointer;
    transition: fill 0.15s ease;
}
#area-selection-overlay .area-handle:hover {
    fill: #fbbf24;
    r: 8;
}
#area-rect {
    transition: stroke-dashoffset 0.5s linear;
    animation: marchingAnts 1s linear infinite;
}
@keyframes marchingAnts {
    from { stroke-dashoffset: 0; }
    to { stroke-dashoffset: -20; }
}

/* ========================================================= */
/* STRUMENTO MISURA                                          */
/* ========================================================= */
.measure-cursor #svg-container {
    cursor: crosshair !important;
}

.measure-cursor #svg-container.dragging-middle {
    cursor: grabbing !important;
}


/* Punti di ancoraggio */
.measure-point {
    fill: #f59e0b;
    stroke: #000000;
    stroke-width: 1;
    pointer-events: none;
}

/* Linea di misura */
.measure-line {
    fill: none;
    stroke: #f59e0b;
    /* stroke-width rimosso: viene da inline (2 px) */
    stroke-dasharray: 6,3;
    pointer-events: none;
}

/* Linea di anteprima (mentre muovi il mouse) */
.measure-preview-line {
    fill: none;
    stroke: #f59e0b;
    /* stroke-width rimosso: viene da inline (1.5 px) */
    stroke-dasharray: 3,3;
    opacity: 0.6;
    pointer-events: none;
}

/* Etichetta della misura */
.measure-label {
    font-family: 'Inter', Arial, sans-serif;
    font-size: 12px;
    font-weight: 700;
    fill: #000000;
    paint-order: stroke;
    stroke: #ffffff;
    stroke-width: 3;
    stroke-linejoin: round;
    pointer-events: none;
    text-anchor: middle;
}

/* Anteprima etichetta (mentre muovi il mouse) */
.measure-preview-label {
    font-family: 'Inter', Arial, sans-serif;
    font-size: 11px;
    font-weight: 700;
    fill: #b45309;
    paint-order: stroke;
    stroke: #ffffff;
    stroke-width: 2.5;
    stroke-linejoin: round;
    pointer-events: none;
    text-anchor: middle;
    opacity: 0.85;
}

/* Vertice snap evidenziato */
.measure-snap-highlight {
    fill: rgba(245, 158, 11, 0.25);
    stroke: #f59e0b;
    stroke-width: 2;
    pointer-events: none;
    animation: snapPulse 0.8s ease-in-out infinite;
    vector-effect: non-scaling-stroke;
}

.measure-snap-tooltip {
    font-family: 'Inter', Arial, sans-serif;
    font-weight: 700;
    fill: #b45309;
    paint-order: stroke;
    stroke: #ffffff;
    stroke-width: 3;
    stroke-linejoin: round;
    pointer-events: none;
    text-anchor: start;
    white-space: nowrap;
}
@keyframes snapPulse {
    0%, 100% { stroke-opacity: 1; }
    50% { stroke-opacity: 0.3; }
}

/* Area poligonale (riempimento) */
.measure-area-shape {
    fill: rgba(245, 158, 11, 0.15);
    stroke: none;
    pointer-events: none;
}

#shortcut-toast { position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%) translateY(100px); background: rgba(15, 23, 42, 0.95); color: #e2e8f0; padding: 10px 18px; border-radius: 8px; border: 1px solid #334155; font-size: 12px; font-weight: 500; z-index: 99999; box-shadow: 0 10px 30px rgba(0,0,0,0.5); transition: transform 0.25s ease, opacity 0.25s ease; opacity: 0; pointer-events: none; display: flex; align-items: center; gap: 10px; }
#shortcut-toast.visible { transform: translateX(-50%) translateY(0); opacity: 1; }
#shortcut-toast kbd { background: #1e293b; border: 1px solid #334155; border-bottom-width: 2px; padding: 2px 6px; border-radius: 4px; font-family: monospace; font-size: 11px; color: #38bdf8; }
#map-container { background: #0f172a; }
.leaflet-popup-content-wrapper { background: #f8fafc !important; color: #0f172a !important; border-radius: 8px !important; }
.edificio-popup .leaflet-popup-content-wrapper {
    background: #f8fafc !important;
    color: #0f172a !important;
    border-radius: 8px !important;
    box-shadow: 0 10px 30px rgba(0,0,0,0.25) !important;
    border: 1px solid #cbd5e1 !important;
}
.edificio-popup .leaflet-popup-content {
    margin: 12px 14px !important;
}
.edificio-popup .leaflet-popup-tip {
    background: #f8fafc !important;
    border: 1px solid #cbd5e1 !important;
}
/* Popup particelle catastali */
.particella-popup .leaflet-popup-content-wrapper {
    background: #f8fafc !important;
    color: #0f172a !important;
    border-radius: 8px !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25) !important;
    border: 1px solid #c4b5fd !important;
}
.particella-popup .leaflet-popup-content {
    margin: 12px 14px !important;
}
.particella-popup .leaflet-popup-tip {
    background: #f8fafc !important;
    border: 1px solid #c4b5fd !important;
}
.leaflet-popup-content { margin: 12px 14px !important; }
.leaflet-popup-tip { background: #f8fafc !important; }
.leaflet-control-zoom a { background: #1e293b !important; color: #e2e8f0 !important; border-color: #334155 !important; }
.leaflet-control-zoom a:hover { background: #334155 !important; }
.leaflet-control-attribution { background: rgba(15,23,42,0.75) !important; color: #94a3b8 !important; }
.leaflet-control-attribution a { color: #38bdf8 !important; }
.leaflet-tooltip.gis-tooltip { background: #0f172a; color: #e2e8f0; border: 1px solid #334155; border-radius: 6px; font-family: Inter, sans-serif; font-size: 11px; padding: 6px 10px; box-shadow: 0 4px 20px rgba(0,0,0,0.4); }
.leaflet-tooltip.gis-tooltip::before { border-top-color: #334155; }
.leaflet-tooltip.gis-label { background: transparent; border: none; box-shadow: none; color: #0f172a; font-family: Inter, sans-serif; font-size: var(--map-label-size, 11px); font-weight: 700; padding: 0; text-shadow: -1px -1px 0 #ffffff, 1px -1px 0 #ffffff, -1px 1px 0 #ffffff, 1px 1px 0 #ffffff, -2px 0 0 #ffffff, 2px 0 0 #ffffff, 0 -2px 0 #ffffff, 0 2px 0 #ffffff; pointer-events: none; white-space: nowrap; }
.leaflet-tooltip.gis-label::before { display: none; }
.leaflet-tooltip.gis-cluster-label { background: transparent; border: none; box-shadow: none; color: #ffffff; font-family: Inter, sans-serif; font-size: 13px; font-weight: 800; padding: 0; text-shadow: -1px -1px 0 #0f172a, 1px -1px 0 #0f172a, -1px 1px 0 #0f172a, 1px 1px 0 #0f172a; pointer-events: none; white-space: nowrap; }
.leaflet-tooltip.gis-cluster-label::before { display: none; }

/* Popup terreni */
.terreno-popup .leaflet-popup-content-wrapper {
    background: #f8fafc !important;
    color: #0f172a !important;
    border-radius: 8px !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25) !important;
    border: 1px solid #a3e635 !important;
}
.terreno-popup .leaflet-popup-tip {
    background: #f8fafc !important;
    border: 1px solid #a3e635 !important;
}
@media print {
    @page { size: A4 landscape; margin: 0; }

    /* =========================================================
    1. RESET E NASCONDIMENTO ELEMENTI INTERFACCIA
    ========================================================= */
    header, #session-banner, #svg-placeholder, #legend-search, #layer-search, #folder-search,
    .flex.border-b, #tab-content-diagnostica, #tab-content-file,
    #legend-count-badge, #folder-count-badge,
    #legend-items-list input, #legend-items-list button,
    input[type="checkbox"], input[type="color"], .absolute,
    .font-controls, .color-mode-controls, #area-selection-overlay, #shortcut-toast,
    #btn-float-layer, #float-layer-panel, #settings-modal, #assignments-modal,
    #map-main-view, #map-legend, #map-area-overlay,
    #print-split-modal { display: none !important; }

    #legend-items-list .legend-gradient-info,
    #legend-items-list .legend-pattern-info { display: none !important; }

    html, body {
        background-color: white !important;
        /* ❌ RIMUOVI QUESTA RIGA: color: black !important; */
        overflow: hidden !important;
        margin: 0 !important;
        padding: 0 !important;
        width: 297mm !important;
        height: 210mm !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    /* =========================================================
    2. MODALITÀ STANDARD (Foglio Unico - Il tuo layout originale)
    ========================================================= */
    #print-wrapper {
        display: block !important;
        position: relative !important;
        width: 297mm !important;
        height: 210mm !important;
        margin: 0 !important;
        padding: 0 !important;
        background-color: white !important;
        box-sizing: border-box !important;
        overflow: hidden !important;
    }

    #print-wrapper::before {
        content: "";
        position: absolute;
        top: 5mm; left: 5mm; right: 5mm; bottom: 5mm;
        border: 0.75pt solid #000000;
        pointer-events: none;
        z-index: 100;
        box-sizing: border-box;
    }

    #print-wrapper::after {
        content: "";
        position: absolute;
        left: 5mm; right: 5mm; top: 165mm;
        height: 7mm;
        background-color: #c00000;
        pointer-events: none;
        z-index: 101;
        box-sizing: border-box;
        display: none !important;
    }

    .striscia-rossa-testo {
                    position: absolute !important;  /* ⬅️ CAMBIATO DA fixed */
                    left: 5mm !important;
                    top: 165mm !important;
                    width: 287mm !important;
                    height: 7mm !important;
                    display: flex !important;
                    align-items: center !important;
                    padding-left: 12mm !important;
                    z-index: 300 !important;
                    pointer-events: none !important;
                    box-sizing: border-box !important;
                    background-color: #c00000 !important;  /* ⬅️ AGGIUNTO: sfondo diretto */
                    color: #ffffff !important;
                    -webkit-print-color-adjust: exact !important;
                    print-color-adjust: exact !important;
                }

                .striscia-rossa-testo span {
                    font-family: 'Trajan Pro', 'Cinzel', 'Times New Roman', serif !important;
                    font-size: 11pt !important;
                    font-weight: bold !important;
                    color: #ffffff !important;
                    -webkit-text-fill-color: #ffffff !important;  /* ⬅️ AGGIUNTO: forza il bianco */
                    letter-spacing: 2px !important;
                    text-transform: uppercase !important;
                    text-shadow: none !important;
                    -webkit-print-color-adjust: exact !important;
                    print-color-adjust: exact !important;
                }

    aside {
        position: absolute !important;
        left: 5mm !important;
        top: 176mm !important;
        width: 287mm !important;
        height: 29mm !important;
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
        padding: 0 !important;
        margin: 0 !important;
        display: block !important;
        z-index: 10 !important;
        box-sizing: border-box !important;
        overflow: hidden !important;
    }
    aside > * { display: none !important; }

    #print-cartiglio-top {
        display: grid !important;
        grid-template-columns: 30mm 0.6fr 0.8fr 1.6fr !important;
        grid-template-rows: 1fr 1fr 1fr !important;
        column-gap: 3mm !important;
        row-gap: 0 !important;
        font-family: Arial, sans-serif !important;
        font-size: 9pt !important;
        color: #000000 !important;
        line-height: 1.35 !important;
        padding: 0 !important;
        margin: 0 !important;
        box-sizing: border-box !important;
        width: 100% !important;
        height: 100% !important;
        align-content: stretch !important;
    }
    
    .print-data-stampa {
                    display: block !important;
                    position: absolute !important;
                    bottom: 3mm !important;
                    right: 10mm !important;
                    font-family: Arial, sans-serif !important;
                    font-size: 8pt !important;
                    font-weight: bold !important;
                    color: #000000 !important;
                    z-index: 999 !important;
                }
    
    #print-data-stampa {
                    display: block !important;
                    position: absolute !important;
                    bottom: 8mm !important;
                    right: 10mm !important;
                    font-family: Arial, sans-serif !important;
                    font-size: 8pt !important;
                    font-weight: bold !important;
                    color: #000000 !important;
                    z-index: 999 !important;
                    background: transparent !important;
                }
                
                #print-data-stampa-val {
                    font-weight: bold !important;
                }

    .logo-container {
        grid-column: 1 !important;
        grid-row: 1 / span 3 !important;
        display: flex !important;
        align-items: flex-start !important;
        justify-content: flex-start !important;
        padding: 3.0mm 0 0 0 !important;
        margin: 0 !important;
        box-sizing: border-box !important;
        overflow: hidden !important;
        height: 100% !important;
    }
    #print-logo {
        max-width: 100% !important;
        max-height: 25.7mm !important;
        width: auto !important;
        height: auto !important;
        object-fit: contain !important;
        display: block !important;
        margin: 0 !important;
    }

    .cartiglio-section-1, .cartiglio-section-2 { display: contents !important; }
    .cartiglio-row {
        display: grid !important;
        grid-template-columns: auto 1fr !important;
        align-items: center !important;
        gap: 1mm !important;
        padding: 0 !important;
        margin: 0 !important;
        width: 100% !important;
        height: 100% !important;
        font-size: 9pt !important;
        line-height: 1.35 !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
    }
    .cartiglio-row .label {
        display: block !important;
        width: auto !important;
        font-weight: bold !important;
        text-transform: uppercase !important;
        color: #000000 !important;
        font-size: 8pt !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        padding: 0 !important;
        box-sizing: border-box !important;
        max-width: 100% !important;
    }
    .cartiglio-row .val {
        display: block !important;
        font-weight: bold !important;
        color: #000000 !important;
        font-size: 8pt !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
        width: auto !important;
        box-sizing: border-box !important;
        min-width: 0 !important;
        max-width: 100% !important;
        word-break: break-all !important;
    }
    .legend-title { display: none !important; }

    /* Planimetria Standard */
    #planimetry-main {
        position: absolute !important;
        left: 5mm !important;
        top: 5mm !important;
        width: 218mm !important;
        height: 159mm !important;
        background-color: white !important;
        border: none !important;
        outline: none !important;
        box-shadow: none !important;
        overflow: hidden !important;
        z-index: 10 !important;
        box-sizing: border-box !important;
        padding: 3mm !important;
        margin: 0 !important;
        display: block !important;
        flex: none !important;
    }
    #svg-container {
        width: 100% !important;
        height: 100% !important;
        background: transparent !important;
        display: block !important;
        overflow: hidden !important;
        position: relative !important;
        box-sizing: border-box !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    #active-svg {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100% !important;
        max-width: 100% !important;
        max-height: 100% !important;
        display: block !important;
        overflow: hidden !important;
        transform: none !important;
        transform-origin: 0 0 !important;
    }

    /* Scala Planimetria */
    #print-wrapper #planimetry-scale-bar,
    #planimetry-main #planimetry-scale-bar {
        position: absolute !important;
        right: 2mm !important;
        bottom: 1mm !important;
        left: auto !important;
        top: auto !important;
        transform: none !important;
        background: transparent !important;
        box-shadow: none !important;
        border: none !important;
        padding: 0 !important;
        z-index: 500 !important;
        color: #000000 !important;
        font-family: Arial, sans-serif !important;
    }
    #print-wrapper #planimetry-scale-bar *,
    #planimetry-main #planimetry-scale-bar * {
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }
    #print-wrapper #planimetry-scale-bar > div > div:last-child,
    #planimetry-main #planimetry-scale-bar > div > div:last-child {
        font-size: 7pt !important;
        margin-top: 0.5mm !important;
        color: #000000 !important;
        font-weight: bold !important;
    }

    /* Legenda */
    #tab-content-legenda {
        display: block !important;
        position: fixed !important;
        left: 224mm !important;
        top: 5mm !important;
        width: 68mm !important;
        height: 159mm !important;
        padding: 3mm 3mm 3mm 5mm !important;
        margin: 0 !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
        font-family: Arial, sans-serif !important;
        color: #000000 !important;
        border-left: 0.5pt solid #000000 !important;
        background-color: white !important;
        z-index: 200 !important;
    }
    #tab-content-legenda h2 { display: none !important; }
    #tab-content-legenda > div:first-child { display: none !important; }
    #tab-content-legenda > div:last-child { display: block !important; }
    #tab-content-legenda::before {
        content: "LEGENDA";
        display: block !important;
        font-size: 9pt !important;
        font-weight: bold !important;
        text-transform: uppercase !important;
        margin: 0 0 3mm 0 !important;
        padding-bottom: 1.5mm !important;
        border-bottom: 0.5pt solid #000000 !important;
        color: #000000 !important;
        font-family: Arial, sans-serif !important;
        letter-spacing: 0.5px !important;
    }
    #legend-items-list {
        display: flex !important;
        flex-direction: column !important;
        gap: 2.5mm !important;
        padding: 0 !important;
        margin: 0 !important;
        list-style: none !important;
    }
    #legend-items-list > div {
        background: transparent !important;
        border: none !important;
        padding: 0 !important;
        margin: 0 !important;
        box-shadow: none !important;
        font-family: Arial, sans-serif !important;
        color: #000000 !important;
        font-size: 7.5pt !important;
        line-height: 1.3 !important;
    }
    #legend-items-list > div[data-hidden="true"] { display: none !important; }
    #legend-items-list i, #legend-items-list .fa-solid, #legend-items-list [class*="fa-"] { display: none !important; }
    #legend-items-list input[type="checkbox"], #legend-items-list input[type="color"] { display: none !important; }
    #legend-items-list > div > div:last-child {
        border-top: none !important;
        padding-top: 0 !important;
        margin-top: 0 !important;
        color: #000000 !important;
        font-family: Arial, sans-serif !important;
    }
    #legend-items-list span, #legend-items-list div {
        color: #000000 !important;
        font-family: Arial, sans-serif !important;
        font-size: 7.5pt !important;
        font-weight: normal !important;
    }
    #legend-items-list > div > div:first-child span:last-child {
        font-weight: bold !important;
        color: #000000 !important;
        display: block !important;
        max-width: 55mm !important;
        white-space: normal !important;
        overflow: visible !important;
        text-overflow: clip !important;
        line-height: 1.2 !important;
    }
    #legend-items-list span.w-4.h-4 {
        width: 3mm !important;
        height: 3mm !important;
        display: inline-block !important;
        vertical-align: middle !important;
        margin-right: 1.5mm !important;
        flex-shrink: 0 !important;
        border-width: 0.4mm !important;
        border-style: solid !important;
        border-color: #000000;
        box-sizing: border-box !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }
    #legend-items-list .text-amber-400 { color: #000000 !important; font-weight: normal !important; }
    .legend-details-row {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        border-top: none !important;
        padding-top: 0 !important;
        margin-top: 0 !important;
        color: #000000 !important;
        font-family: Arial, sans-serif !important;
        font-size: 7pt !important;
    }
    .legend-count, .legend-area {
        color: #000000 !important;
        font-weight: normal !important;
        font-family: Arial, sans-serif !important;
        font-size: 7pt !important;
    }

    /* =========================================================
    3. MODALITÀ MULTI-TAVOLA (Pagine separate)
    ========================================================= */

    /* Nasconde l'interfaccia standard quando stampiamo in multi-tavola */
    body.printing-multi-tiles #planimetry-main,
    body.printing-multi-tiles aside,
    body.printing-multi-tiles #tab-content-legenda {
        display: none !important;
    }

    /* Il wrapper principale fa spazio alle tavole */
    body.printing-multi-tiles #print-wrapper {
        display: block !important;
        height: auto !important;
        min-height: 100% !important;
        overflow: visible !important;
        position: relative !important;
        border: none !important; 
    }

    body.printing-multi-tiles #print-wrapper::before,
    body.printing-multi-tiles #print-wrapper::after {
        display: none !important;
    }

    /* Contenitore delle tavole */
    #print-multi-page-container {
        display: block !important;
        width: 297mm !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* Ogni tavola è una pagina fisica */
    .print-page-wrapper {
        page-break-after: always !important;
        break-after: page !important;
        position: relative !important;
        width: 297mm !important;
        height: 210mm !important;
        overflow: hidden !important;
        background: white !important;
        display: block !important;
        box-sizing: border-box !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    .print-page-wrapper:last-child {
        page-break-after: auto !important;
        break-after: auto !important;
    }

    /* Bordo nero della pagina */
    .print-page-wrapper::before {
        content: "";
        position: absolute;
        top: 5mm; left: 5mm; right: 5mm; bottom: 5mm;
        border: 0.75pt solid #000000;
        pointer-events: none;
        z-index: 9999;
        box-sizing: border-box;
    }

    /* Striscia rossa della pagina */
    .print-page-wrapper::after {
        content: "";
        position: absolute;
        left: 5mm; right: 5mm; top: 165mm;
        height: 7mm;
        background-color: #c00000;
        pointer-events: none;
        z-index: 9998;
        box-sizing: border-box;
    }

    /* Area planimetria */
    .print-page-wrapper .planimetry-area {
        position: absolute !important;
        left: 5mm !important;
        top: 5mm !important;
        width: 218mm !important;
        height: 159mm !important;
        padding: 3mm !important;
        box-sizing: border-box !important;
        overflow: hidden !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        z-index: 10 !important;
    }
    .print-page-wrapper .planimetry-area svg {
        width: 100% !important;
        height: 100% !important;
        max-width: 100% !important;
        max-height: 100% !important;
        transform: none !important;
        display: block !important;
    }

    /* =========================================================
    COLONNA DESTRA (Miniatura in alto, Legenda sotto)
    ========================================================= */

    /* Wrapper colonna destra con linea verticale unica */
    .print-page-wrapper .right-column {
        position: absolute !important;
        left: 224mm !important;
        top: 5mm !important;
        width: 68mm !important;
        height: 159mm !important;
        background: white !important;
        z-index: 150 !important;
        display: flex !important;
        flex-direction: column !important;
        box-sizing: border-box !important;
        border-left: none !important; /* Togliamo il border-left nativo per usare lo pseudo-elemento */
    }

    /* MINIATURA IN ALTO */
    .print-page-wrapper .minimap-box {
        position: relative !important;
        flex: 0 0 50mm !important; /* Altezza fissa: 50mm */
        width: 100% !important;
        padding: 2mm !important;
        background: #ffffff !important;
        border-bottom: 0.5pt solid #000 !important;
        width: calc(100% + 0.5pt) !important; /* ← Compensa il bordo sinistro */
        margin-left: -0.5pt !important;       /* ← Sposta a sinistra di 0.5pt */
        box-sizing: border-box !important;
        display: flex !important;
        flex-direction: column !important;
        overflow: hidden !important; /* Taglia tutto ciò che esce */
    }

    /* Titolo miniatura */
    .print-page-wrapper .minimap-title {
        font-family: Arial, sans-serif !important;
        font-size: 6pt !important;
        font-weight: bold !important;
        text-transform: uppercase !important;
        text-align: center !important;
        margin-bottom: 1mm !important;
        border-bottom: 0.3pt solid #ccc !important;
        padding-bottom: 0.5mm !important;
        color: #000000 !important;
        flex-shrink: 0 !important;
    }

    /* Container immagine miniatura */
    .print-page-wrapper .minimap-img-container {
        position: relative !important;
        width: 100% !important;
        height: 100% !important; /* Prende tutto lo spazio disponibile */
        flex: 1 1 auto !important;
        background: #ffffff !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        overflow: hidden !important;
    }

    /* L'IMMAGINE deve essere ASSOLUTAMENTE contenuta */
    .print-page-wrapper .minimap-img-container img {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100% !important;
        max-width: 100% !important;
        max-height: 100% !important;
        object-fit: contain !important; /* Mantiene proporzioni, non sfonda */
        display: block !important;
        margin: 0 !important;
    }

    /* Il rettangolino rosso */
    .print-page-wrapper .minimap-rect {
        position: absolute !important;
        border: 1pt solid #ff0000 !important;
        background: rgba(255,0,0,0.15) !important;
        pointer-events: none !important;
        box-sizing: border-box !important;
        max-width: 100% !important;
        max-height: 100% !important;
    }

    /* LEGENDA IN BASSO */
    .print-page-wrapper .legend-box {
        position: relative !important;
        flex: 1 1 auto !important; /* Prende tutto lo spazio rimanente sotto la miniatura */
        width: 100% !important;
        padding: 3mm 3mm 3mm 5mm !important;
        overflow: hidden !important;
        background: white !important;
        box-sizing: border-box !important;
        border: none !important;
    }

    /* Titolo LEGENDA 
    .print-page-wrapper .legend-box::before {
        content: "LEGENDA";
        display: block !important;
        font-size: 9pt !important;
        font-weight: bold !important;
        text-transform: uppercase !important;
        margin: 0 0 3mm 0 !important;
        padding-bottom: 1.5mm !important;
        border-bottom: 0.5pt solid #000000 !important;
        color: #000000 !important;
        letter-spacing: 0.5px !important;
    }*/

    /* Se è un foglio unico (1x1), la legenda si prende tutto lo spazio (niente miniatura) */
    .print-page-wrapper .legend-box.legend-top {
        flex: 1 1 100% !important; 
        border-bottom: none !important;
    }

    /* Forza la linea verticale con un elemento separato, indistruttibile */
    .print-page-wrapper .right-column::before {
        content: "" !important;
        position: absolute !important;
        left: 0 !important; /* Attaccata al bordo sinistro del right-column */
        top: 0 !important;
        width: 0 !important;
        height: 100% !important;
        border-left: 1pt solid #000000 !important; /* Spessore aumentato a 1pt, colore nero pieno */
        z-index: 9999 !important; /* Sopra tutto */
        pointer-events: none !important;
    }

    /* =========================================================
    PROTEZIONE PORTE E FINESTRE
    ========================================================= */
    .print-page-wrapper .planimetry-area svg symbol,
    .print-page-wrapper .planimetry-area svg use,
    .print-page-wrapper .planimetry-area svg defs {
        display: block !important;
        visibility: visible !important;
    }

    .print-page-wrapper .planimetry-area svg g[id*="layer-"],
    .print-page-wrapper .planimetry-area svg g[class*="layer"] {
        display: block !important;
        visibility: visible !important;
    }


    /* Cartiglio */
    .print-page-wrapper .cartiglio-wrap {
        position: absolute !important;
        left: 5mm !important;
        top: 176mm !important;
        width: 287mm !important;
        height: 29mm !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
        z-index: 200 !important;
    }

    /* =========================================================
    FORZA VISIBILITÀ ETICHETTE
    ========================================================= */
    .print-page-wrapper .planimetry-area svg [id*="cad-labels-layer"] {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

    .print-page-wrapper .planimetry-area svg [id*="cad-labels-layer"] text {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        fill: #000000 !important;
        font-weight: bold !important;
        font-family: Arial, sans-serif !important;
    }

    .print-page-wrapper .planimetry-area svg text {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        fill: #000000 !important;
        stroke: none !important;
        font-family: Arial, sans-serif !important;
        font-weight: bold !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    /* =========================================================
    STILI CARTIGLIO (GRID)
    ========================================================= */
    .print-page-wrapper .cartiglio-wrap .cartiglio-grid {
        display: grid !important; 
        grid-template-columns: 30mm 0.6fr 0.8fr 1.6fr !important; 
        grid-template-rows: 1fr 1fr 1fr !important; 
        column-gap: 3mm !important; 
        row-gap: 0 !important; 
        font-family: Arial, sans-serif !important; 
        font-size: 9pt !important; 
        color: #000000 !important; 
        line-height: 1.35 !important; 
        width: 100% !important; 
        height: 100% !important; 
    }
    .print-page-wrapper .cartiglio-wrap .logo-container {
        grid-column: 1 !important; 
        grid-row: 1 / span 3 !important; 
        display: flex !important; 
        align-items: flex-start !important; 
        justify-content: flex-start !important; 
        padding: 3mm 0 0 0 !important; 
        overflow: hidden !important; 
        height: 100% !important; 
    }
    .print-page-wrapper .cartiglio-wrap .logo-container img {
        max-width: 100% !important; 
        max-height: 25.7mm !important; 
        width: auto !important; 
        height: auto !important; 
        object-fit: contain !important; 
        display: block !important; 
        margin: 0 !important; 
    }
    .print-page-wrapper .cartiglio-wrap .cartiglio-row {
        display: grid !important; 
        grid-template-columns: auto 1fr !important; 
        align-items: center !important; 
        gap: 1mm !important; 
        width: 100% !important; 
        height: 100% !important; 
        font-size: 9pt !important; 
        overflow: hidden !important; 
    }
    .print-page-wrapper .cartiglio-wrap .cartiglio-row .label {
        font-weight: bold !important; 
        text-transform: uppercase !important; 
        font-size: 8pt !important; 
        white-space: nowrap !important; 
        overflow: hidden !important; 
        text-overflow: ellipsis !important; 
    }
    .print-page-wrapper .cartiglio-wrap .cartiglio-row .val {
        font-weight: bold !important; 
        font-size: 8pt !important; 
        overflow: hidden !important; 
        text-overflow: ellipsis !important; 
        white-space: nowrap !important; 
        word-break: break-all !important; 
    }

    /* =========================================================
    STILI LEGENDA (LISTA)
    ========================================================= */
    .print-page-wrapper .legend-box .print-legend-list {
        display: flex !important;
        flex-direction: column !important;
        gap: 2.5mm !important;
        padding: 0 !important;
        margin: 0 !important;
        list-style: none !important;
    }
    .print-page-wrapper .legend-box .print-legend-list > div {
        background: transparent !important;
        border: none !important;
        padding: 0 !important;
        margin: 0 !important;
        font-family: Arial, sans-serif !important;
        color: #000000 !important;
        font-size: 7.5pt !important;
        line-height: 1.3 !important;
    }
    .print-page-wrapper .legend-box .print-legend-list > div > div:first-child span:last-child {
        font-weight: bold !important;
        color: #000000 !important;
        display: block !important;
        max-width: 55mm !important;
        white-space: normal !important;
        line-height: 1.2 !important;
    }
    .print-page-wrapper .legend-box .print-legend-list span.w-4.h-4 {
        width: 3mm !important;
        height: 3mm !important;
        display: inline-block !important;
        vertical-align: middle !important;
        margin-right: 1.5mm !important;
        flex-shrink: 0 !important;
        border-width: 0.4mm !important;
        border-style: solid !important;
        border-color: #000000 !important;
        box-sizing: border-box !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }
    .print-page-wrapper .legend-box .print-legend-list .legend-details-row {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        font-size: 7pt !important;
    }
    .print-page-wrapper .legend-box .print-legend-list input,
    .print-page-wrapper .legend-box .print-legend-list i,
    .print-page-wrapper .legend-box .print-legend-list [class*="fa-"] {
        display: none !important;
    }

    /* =========================================================
    SBLOCCO ALTEZZA BODY MULTI-TAVOLA
    ========================================================= */
    body.printing-multi-tiles,
    body.printing-multi-tiles html {
        height: auto !important;
        min-height: 100% !important;
        overflow: visible !important;
        width: 297mm !important;
    }

    body.printing-multi-tiles #print-multi-page-container {
        height: auto !important;
        overflow: visible !important;
        position: relative !important;
    }
}
#kpi-filter-panel {
    transition: max-height 0.3s ease, opacity 0.3s ease;
    overflow: hidden;
}
