/* ==========================================================================
   PRONTUARIO DELLE VOCI DI BILANCIO — SCHEDA MONOGRAFICA OPERATIVA
   Studio Pizzano · Visual Identity, Blueprint Texture & Luxury Editorial System
   ========================================================================== */

:root {
    --sp-navy-deep: #0b1727;
    --sp-navy-mid: #10233b;
    --sp-navy-light: #183354;
    --sp-gold: #d4a359;
    --sp-gold-light: rgba(212, 163, 89, 0.12);
    --sp-gold-border: rgba(212, 163, 89, 0.35);
    --sp-gold-glow: rgba(212, 163, 89, 0.25);
    --sp-bg-soft: #f8fafc;
    --sp-text: #1e293b;
    --sp-text-muted: #64748b;
    --sp-border-card: rgba(11, 23, 39, 0.08);
}

/* Base Wrapper con Texture Istituzionale Studio Pizzano (stessa degli Header Articoli) */
.prontuario-scheda-page {
    background-color: #fdfdfe;
    background-image:
        linear-gradient(180deg, rgba(19, 36, 58, 0.0018) 0%, rgba(19, 36, 58, 0.016) 100%),
        linear-gradient(rgba(19, 36, 58, 0.053) 1px, transparent 1px),
        linear-gradient(90deg, rgba(19, 36, 58, 0.053) 1px, transparent 1px),
        radial-gradient(circle at 1px 1px, rgba(19, 36, 58, 0.022) 1px, transparent 0);
    background-size: 100% 100%, 26px 26px, 26px 26px, 13px 13px;
    min-height: 100vh;
    padding-bottom: 90px;
    color: var(--sp-text);
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
}

/* --------------------------------------------------------------------------
   HERO DOSSIER MONOGRAFICO (Signature Dark Navy & Gold Studio Pizzano)
   -------------------------------------------------------------------------- */
.ps-hero-dossier {
    background: linear-gradient(135deg, var(--sp-navy-deep) 0%, var(--sp-navy-mid) 55%, var(--sp-navy-light) 100%);
    position: relative;
    color: #ffffff;
    padding: 44px 24px 52px;
    border-bottom: 3px solid var(--sp-gold);
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(11, 23, 39, 0.12);
}

.ps-hero-dossier::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        radial-gradient(circle at 90% 15%, rgba(212, 163, 89, 0.22), transparent 45%),
        linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
    background-size: 100% 100%, 32px 32px, 32px 32px;
}

.ps-hero-inner {
    max-width: 1200px;
    margin: 0 auto;
    position: relative;
    z-index: 2;
}

/* Breadcrumb integrato nel dark header */
.ps-breadcrumb {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.8rem;
    color: #94a3b8;
    margin-bottom: 24px;
    flex-wrap: wrap;
}
.ps-breadcrumb a {
    color: #cbd5e1;
    text-decoration: none;
    transition: color 0.15s ease;
}
.ps-breadcrumb a:hover {
    color: var(--sp-gold);
}
.ps-breadcrumb .sep {
    color: rgba(255, 255, 255, 0.3);
}
.ps-breadcrumb .current {
    color: var(--sp-gold);
    font-weight: 600;
}

/* Top bar con Eyebrow e Status */
.ps-header-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
    flex-wrap: wrap;
}
.ps-series-tag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--sp-gold-light);
    color: var(--sp-gold);
    border: 1px solid var(--sp-gold-border);
    padding: 5px 14px;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}
.ps-status-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.78rem;
    color: #6ee7b7;
    background: rgba(16, 185, 129, 0.14);
    border: 1px solid rgba(16, 185, 129, 0.35);
    padding: 5px 14px;
    border-radius: 20px;
    font-weight: 600;
    letter-spacing: 0.02em;
}
.ps-status-pill::before {
    content: '';
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #10b981;
    box-shadow: 0 0 8px #10b981;
}
.ps-updated-pill {
    display: inline-flex;
    align-items: center;
    font-size: 0.78rem;
    color: #cbd5e1;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.14);
    padding: 5px 14px;
    border-radius: 20px;
    font-weight: 600;
    letter-spacing: 0.02em;
}

/* Titolo e Standfirst nel Dark Header */
.ps-title {
    font-family: 'Fraunces', Georgia, serif;
    font-size: clamp(2.2rem, 4.2vw, 3.4rem);
    font-weight: 600;
    line-height: 1.15;
    color: #ffffff;
    margin: 0 0 16px;
    letter-spacing: -0.02em;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}
.ps-standfirst {
    font-size: 1.1rem;
    line-height: 1.65;
    color: #cbd5e1;
    margin: 0 0 28px;
    max-width: 980px;
    text-align: justify !important;
    text-justify: inter-word !important;
}

/* Cartiglio Bento Glassmorfico (4 Metadati Chiave) */
.ps-cartiglio-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-top: 24px;
}
.ps-cartiglio-item {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.14);
    backdrop-filter: blur(12px);
    border-radius: 10px;
    padding: 16px 20px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    transition: all 0.2s ease;
}
.ps-cartiglio-item:hover {
    border-color: rgba(212, 163, 89, 0.5);
    background: rgba(255, 255, 255, 0.09);
    transform: translateY(-2px);
}
.ps-cartiglio-label {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--sp-gold);
    display: flex;
    align-items: center;
    gap: 6px;
}
.ps-cartiglio-value {
    font-size: 0.92rem;
    font-weight: 600;
    color: #ffffff;
    line-height: 1.35;
}

/* Toolbar Azioni Rapide integrata nel Dark Hero */
.ps-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    flex-wrap: wrap;
}
.ps-tool-group {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
.ps-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.82rem;
    font-weight: 600;
    padding: 9px 18px;
    border-radius: 8px;
    cursor: pointer;
    text-decoration: none !important;
    transition: all 0.2s ease;
    border: 1px solid transparent;
}
.ps-btn-glass {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.18);
    color: #ffffff;
}
.ps-btn-glass:hover {
    background: rgba(255, 255, 255, 0.15);
    border-color: var(--sp-gold);
    color: #ffffff;
    transform: translateY(-1px);
}
.ps-btn-gold {
    background: var(--sp-gold);
    color: var(--sp-navy-deep);
    border-color: var(--sp-gold);
    font-weight: 700;
    box-shadow: 0 4px 14px rgba(212, 163, 89, 0.35);
}
.ps-btn-gold:hover {
    background: #ffffff;
    color: var(--sp-navy-deep);
    border-color: #ffffff;
    transform: translateY(-1px);
}
.ps-btn svg {
    width: 16px;
    height: 16px;
}

/* --------------------------------------------------------------------------
   BARRA A TAB FLOTTANTE (Sticky Luxury Bar)
   -------------------------------------------------------------------------- */
.ps-nav-tabs-wrapper {
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(11, 23, 39, 0.94);
    backdrop-filter: blur(16px);
    border-bottom: 2px solid var(--sp-gold);
    box-shadow: 0 4px 20px rgba(11, 23, 39, 0.18);
    padding: 8px 0;
}
.ps-nav-tabs-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}
.ps-tabs-list {
    display: flex;
    align-items: center;
    gap: 8px;
    overflow-x: auto;
    padding: 4px 0;
    scrollbar-width: none;
}
.ps-tabs-list::-webkit-scrollbar {
    display: none;
}
.ps-tab-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 16px;
    border-radius: 8px;
    font-size: 0.84rem;
    font-weight: 600;
    color: #cbd5e1;
    background: transparent;
    border: 1px solid transparent;
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.2s ease;
}
.ps-tab-btn:hover {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.08);
}
.ps-tab-btn.active {
    color: var(--sp-navy-deep);
    background: var(--sp-gold);
    border-color: var(--sp-gold);
    font-weight: 700;
    box-shadow: 0 2px 10px rgba(212, 163, 89, 0.4);
}
.ps-tab-btn.active .ps-tab-icon {
    filter: brightness(0.2);
}
.ps-view-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.78rem;
    font-weight: 600;
    color: #cbd5e1;
    padding: 8px 14px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.08);
    cursor: pointer;
    border: 1px solid rgba(255, 255, 255, 0.16);
    white-space: nowrap;
    transition: all 0.2s ease;
}
.ps-view-toggle:hover {
    background: rgba(255, 255, 255, 0.14);
    color: #ffffff;
    border-color: var(--sp-gold);
}

/* --------------------------------------------------------------------------
   AREA CONTENUTI & CARD BENTO (Massima densità e rifinitura editoriale)
   -------------------------------------------------------------------------- */
.ps-main-container {
    max-width: 1200px;
    margin: 36px auto 0;
    padding: 0 20px;
}

/* Regola Fondamentale: TESTI A TUTTA LARGHEZZA E SEMPRE GIUSTIFICATI */
.prontuario-scheda-page .prose,
.ps-main-container .prose,
.ps-card .prose {
    max-width: 100% !important;
    width: 100% !important;
}

.ps-panel p,
.ps-panel li,
.ps-card p,
.ps-card li,
.ps-card .prose p,
.ps-card .prose li,
.prose p,
.prose li {
    max-width: 100% !important;
    width: 100% !important;
    text-align: justify !important;
    text-justify: inter-word !important;
    hyphens: auto !important;
    -webkit-hyphens: auto !important;
    line-height: 1.82;
    color: #27364b;
    font-size: 1.02rem;
}


/* Titoli interni: gerarchia editoriale comune a tutti i tab del prontuario. */
.prontuario-scheda-page .ps-panel .prose h3,
.prontuario-scheda-page .prose h3,
.ps-card .prose h3 {
    position: relative;
    margin: 2.25rem 0 0.875rem;
    padding: 0;
    border: 0;
    border-bottom: none !important;
    color: var(--sp-navy-mid, #0b1727);
    font-family: 'Fraunces', Georgia, serif;
    font-size: 1.375rem;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: -0.015em;
    text-align: left;
    text-transform: none;
    text-wrap: balance;
    overflow-wrap: break-word;
    break-after: avoid;
}
.prontuario-scheda-page .ps-panel .prose h3::after,
.prontuario-scheda-page .prose h3::after,
.ps-card .prose h3::after {
    content: "";
    display: block;
    width: 48px;
    height: 2.8px;
    border-radius: 2px;
    background: linear-gradient(90deg, #163c78 0%, rgba(22, 79, 156, 0.15) 100%);
    margin-top: 10px;
}
.prontuario-scheda-page .ps-panel .prose h3:first-child,
.prontuario-scheda-page .prose h3:first-child,
.ps-card .prose h3:first-child {
    margin-top: 0;
}
@media (max-width: 600px) {
    .prontuario-scheda-page .ps-panel .prose h3,
    .prontuario-scheda-page .prose h3,
    .ps-card .prose h3 {
        margin-top: 1.75rem;
        font-size: 1.25rem;
    }
    .prontuario-scheda-page .ps-panel .prose h3:first-child,
    .prontuario-scheda-page .prose h3:first-child,
    .ps-card .prose h3:first-child {
        margin-top: 0;
    }
}

.ps-panel {
    display: none;
    animation: psPanelFade 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}
.ps-panel.active {
    display: block;
}
.ps-view-continuous .ps-panel {
    display: block !important;
    margin-bottom: 40px;
}

@keyframes psPanelFade {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Card Bento Principale */
.ps-card {
    background: #ffffff;
    border: 1px solid var(--sp-border-card);
    border-top: 4px solid var(--sp-navy-deep);
    border-radius: 12px;
    padding: 36px 42px;
    margin-bottom: 28px;
    box-shadow: 0 4px 20px rgba(11, 23, 39, 0.04);
    position: relative;
}
.ps-card::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 60px;
    height: 4px;
    background: var(--sp-gold);
}

.ps-card-header {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    border-bottom: 2px solid #f1f5f9;
    padding-bottom: 18px;
    margin-bottom: 26px;
}
.ps-card-title-group {
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
}
.ps-card-title {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    font-family: 'Fraunces', Georgia, serif;
    font-size: 1.55rem;
    font-weight: 700;
    color: var(--sp-navy-deep);
    margin: 0;
    line-height: 1.25;
}
.ps-card-title-icon {
    width: 38px;
    height: 38px;
    border-radius: 8px;
    background: var(--sp-gold-light);
    color: var(--sp-gold);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.15rem;
    border: 1px solid var(--sp-gold-border);
    flex-shrink: 0;
}
.ps-card-subtitle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: 'Outfit', -apple-system, sans-serif;
    font-size: 0.92rem;
    font-weight: 600;
    color: #475569;
    padding: 6px 14px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-left: 3.5px solid var(--sp-gold);
    border-radius: 4px 8px 8px 4px;
    margin-top: 4px;
    width: fit-content;
    line-height: 1.35;
}
.ps-card-subtitle svg {
    color: var(--sp-gold);
    flex-shrink: 0;
}
.ps-card-tag {
    font-size: 0.74rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #475569;
    background: #f8fafc;
    padding: 5px 12px;
    border-radius: 6px;
    border: 1px solid #e2e8f0;
    white-space: nowrap;
}

/* Disabilita dropcaps artificiali nei pannelli tecnici per un testo fluido e pulito */
.ps-panel .prose > p:first-of-type::first-letter,
.ps-card .prose > p:first-of-type::first-letter,
.ps-main-container p::first-letter {
    font-size: inherit !important;
    font-family: inherit !important;
    float: none !important;
    line-height: inherit !important;
    padding: 0 !important;
    color: inherit !important;
    font-weight: inherit !important;
    margin: 0 !important;
}

.ps-scritture-disclaimer {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 12px 16px;
    margin-bottom: 24px;
    font-size: 0.86rem;
    line-height: 1.5;
    color: #475569;
}
.ps-scritture-disclaimer svg {
    flex-shrink: 0;
    margin-top: 2px;
    color: #94a3b8;
}

/* Callout Box - Regola Fondamentale & Ratio (Signature Gold Box) */
.ps-callout-gold {
    background: linear-gradient(135deg, #fdfbf7 0%, #f9f5ed 100%);
    border: 1px solid rgba(212, 163, 89, 0.4);
    border-left: 5px solid var(--sp-gold);
    border-radius: 0 10px 10px 0;
    padding: 24px 28px;
    margin: 28px 0;
    color: var(--sp-navy-deep);
    box-shadow: 0 4px 16px rgba(212, 163, 89, 0.09);
    position: relative;
}
.ps-callout-gold-title {
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #996e24;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.ps-callout-gold p {
    margin: 0;
    font-size: 1.05rem !important;
    line-height: 1.65 !important;
    font-weight: 500;
    color: #10233b !important;
}

/* --------------------------------------------------------------------------
   STRUTTURA GRAFICA: QUANDO SI APPLICA / COME PROCEDERE / RATIO NORMATIVA
   (Ampi spazi, separazione chiara e massima leggibilità)
   -------------------------------------------------------------------------- */
.ps-fw-intro {
    font-size: 1.06rem !important;
    line-height: 1.75 !important;
    color: #1e293b !important;
    font-weight: 500 !important;
    margin: 0 0 28px 0 !important;
    padding: 14px 22px !important;
    background: #f8fafc !important;
    border-left: 3.5px solid var(--sp-navy-deep) !important;
    border-radius: 0 8px 8px 0 !important;
    box-shadow: 0 2px 8px rgba(11, 23, 39, 0.02) !important;
}

.ps-framework-group {
    display: flex;
    flex-direction: column;
    gap: 28px;
    margin: 28px 0 36px;
}
.ps-fw-item {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    overflow: hidden;
    margin-top: 36px !important;
    margin-bottom: 28px !important;
    box-shadow: 0 4px 18px rgba(11, 23, 39, 0.04);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    clear: both;
}
.ps-fw-item:first-of-type,
.ps-fw-item.ps-fw-quando {
    margin-top: 48px !important; /* Ampio respiro verticale tra testo introduttivo e box */
}
.ps-fw-item:last-child {
    margin-bottom: 12px !important;
}
.ps-fw-item:hover {
    box-shadow: 0 6px 22px rgba(11, 23, 39, 0.07);
    transform: translateY(-2px);
}
.ps-fw-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 15px 24px;
    border-bottom: 1px solid #e2e8f0;
}
.ps-fw-title {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-family: 'Outfit', sans-serif;
    font-size: 0.84rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}
.ps-fw-icon {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}
.ps-fw-badge {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 4px 12px;
    border-radius: 6px;
    white-space: nowrap;
}
.ps-fw-body {
    padding: 24px 28px;
}
.ps-fw-body p {
    margin: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    text-align: justify !important;
    text-justify: inter-word !important;
    font-size: 1.01rem !important;
    line-height: 1.84 !important;
    color: #1e293b !important;
}

/* 1. QUANDO: Cool Cyan/Sky */
.ps-fw-quando {
    border-left: 5px solid #0284c7;
}
.ps-fw-quando .ps-fw-header {
    background: #f0f9ff;
    border-bottom-color: #e0f2fe;
}
.ps-fw-quando .ps-fw-title {
    color: #0369a1;
}
.ps-fw-quando .ps-fw-badge {
    background: #e0f2fe;
    color: #0369a1;
    border: 1px solid #bae6fd;
}

/* 2. COME: Signature Gold */
.ps-fw-come {
    border-left: 4px solid var(--sp-gold);
}
.ps-fw-come .ps-fw-header {
    background: #fdfbf7;
    border-bottom-color: rgba(212, 163, 89, 0.25);
}
.ps-fw-come .ps-fw-title {
    color: #996e24;
}
.ps-fw-come .ps-fw-badge {
    background: rgba(212, 163, 89, 0.12);
    color: #855b14;
    border: 1px solid rgba(212, 163, 89, 0.3);
}

/* 3. RATIO: Slate/Deep Navy */
.ps-fw-ratio {
    border-left: 4px solid var(--sp-navy-deep);
}
.ps-fw-ratio .ps-fw-header {
    background: #f8fafc;
    border-bottom-color: #f1f5f9;
}
.ps-fw-ratio .ps-fw-title {
    color: var(--sp-navy-deep);
}
.ps-fw-ratio .ps-fw-badge {
    background: #f1f5f9;
    color: #334155;
    border: 1px solid #e2e8f0;
}

/* --------------------------------------------------------------------------
   PARTITA DOPPIA & MASTRINI CONTABILI (Scheda di Prima Nota)
   -------------------------------------------------------------------------- */
.ps-case-narrative {
    background: #ffffff;
    border: 1px solid #cbd5e1;
    border-left: 4px solid var(--sp-navy-deep);
    border-radius: 6px;
    padding: 20px 24px;
    margin-bottom: 26px;
    font-size: 0.93rem;
    line-height: 1.65;
    color: #1e293b;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.03);
}
.ps-case-narrative .prose p,
.ps-case-narrative p {
    border: none !important;
    border-left: none !important;
    background: transparent !important;
    padding: 0 !important;
    box-shadow: none !important;
    margin: 0 !important;
}
.ps-case-badge {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: 'Fraunces', Georgia, serif;
    font-size: 1.45rem;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: -0.015em;
    color: var(--sp-navy-deep, #0b1727);
    margin-bottom: 16px;
    padding-bottom: 10px;
    border-bottom: 2px solid rgba(161, 123, 66, 0.35);
    width: 100%;
}
.ps-case-badge svg {
    width: 21px;
    height: 21px;
    color: var(--sp-gold);
    flex-shrink: 0;
}
.ps-case-badge span {
    font-family: 'Fraunces', Georgia, serif;
    font-size: 1.45rem;
    font-weight: 700;
    letter-spacing: -0.015em;
    color: var(--sp-navy-deep, #0b1727);
}

/* ==========================================================================
   REGISTRO CONTABILE PROFESSIONALE: SCRITTURA DI PRIMA NOTA
   Sfondo bianco con leggerissima texture contabile, rigatura grigio-ardesia
   ========================================================================== */
.ps-pn-box,
.ps-pd-box {
    margin: 28px 0 36px;
    background-color: #ffffff;
    background-image:
        linear-gradient(rgba(19, 36, 58, 0.032) 1px, transparent 1px),
        linear-gradient(90deg, rgba(19, 36, 58, 0.032) 1px, transparent 1px),
        radial-gradient(circle at 1px 1px, rgba(19, 36, 58, 0.022) 1px, transparent 0);
    background-size: 20px 20px, 20px 20px, 10px 10px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(15, 23, 42, 0.04);
}

.ps-pn-head,
.ps-pd-head {
    background: rgba(248, 250, 252, 0.94);
    backdrop-filter: blur(4px);
    border-bottom: 1.5px solid #cbd5e1;
    padding: 14px 22px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.ps-pn-head-title,
.ps-pd-head-title {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.ps-pn-kicker,
.ps-pd-kicker {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    color: #64748b;
}
.ps-pn-title,
.ps-pd-head-text,
.ps-pd-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.98rem;
    font-weight: 700;
    color: #0f172a;
    margin: 0;
    line-height: 1.35;
}
.ps-pn-head-meta,
.ps-pd-head-meta {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}
.ps-pn-meta-badge,
.ps-pd-meta-stamp {
    font-family: 'Inter', sans-serif;
    font-size: 0.76rem;
    font-weight: 600;
    color: #475569;
    background: #ffffff;
    border: 1px solid #cbd5e1;
    padding: 4px 11px;
    border-radius: 4px;
    white-space: nowrap;
    letter-spacing: 0.01em;
}

.ps-pn-table-wrap,
.ps-pd-table-wrap {
    overflow-x: auto;
    background: transparent;
}

/* Tabella di Prima Nota Contabile a 4 colonne */
.ps-pn-table,
.ps-pd-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.90rem;
    background: transparent;
}
.ps-pn-table th,
.ps-pd-table th {
    background: rgba(241, 245, 249, 0.92);
    backdrop-filter: blur(4px);
    color: #1e293b;
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    font-size: 0.70rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 11px 18px;
    border-bottom: 1.5px solid #cbd5e1;
    border-right: 1px solid #e2e8f0;
    text-align: left;
}
.ps-pn-table th:last-child,
.ps-pd-table th:last-child {
    border-right: none;
}
.ps-pn-th-code {
    width: 95px;
    text-align: center !important;
}
.ps-pn-table th.col-amount,
.ps-pd-table th.col-amount {
    text-align: right;
    width: 155px;
}

.ps-pn-table td,
.ps-pd-table td {
    padding: 11px 18px;
    border-bottom: 1px solid #f1f5f9;
    border-right: 1px solid #f1f5f9;
    color: #0f172a;
    vertical-align: middle;
    font-size: 0.90rem;
    background: rgba(255, 255, 255, 0.65);
}
.ps-pn-table td:last-child,
.ps-pd-table td:last-child {
    border-right: none;
}
.ps-pn-table tr:nth-child(even) td,
.ps-pd-table tr:nth-child(even) td {
    background: rgba(248, 250, 252, 0.72);
}

/* Colonna Codice Conto */
.ps-pn-col-code {
    text-align: center;
    width: 95px;
}
.ps-pn-code-tag {
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.82rem;
    font-weight: 700;
    color: #0f172a;
    background: #f1f5f9;
    padding: 2px 7px;
    border-radius: 3px;
    border: 1px solid #e2e8f0;
    display: inline-block;
}
.ps-pn-code-empty {
    color: #cbd5e1;
}

/* Colonna Descrizione Conto */
.ps-pn-col-desc,
.ps-pd-cell-account {
    line-height: 1.45;
}
.ps-pn-acc-name,
.ps-pd-acc-main {
    font-weight: 600;
    color: #0f172a;
}
.ps-pn-acc-ref,
.ps-pd-acc-sub {
    font-weight: 400;
    font-size: 0.83rem;
    color: #64748b;
    margin-left: 4px;
}

/* Colonne Importi Dare e Avere */
.ps-pn-table td.col-amount,
.ps-pd-table td.col-amount {
    text-align: right;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    font-size: 0.94rem;
    color: #0f172a;
    letter-spacing: 0.01em;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.ps-pn-dash,
.ps-pd-null {
    color: #cbd5e1;
    font-weight: 400;
}

/* Totale a pareggio: Chiusura classica con doppio filetto */
.ps-pn-table tr.ps-pn-total td,
.ps-pd-table tr.ps-pd-total td {
    background: #f8fafc;
    color: #0f172a;
    border-top: 1.5px solid #0f172a;
    border-bottom: 3px double #0f172a;
}
.ps-pn-total-label,
.ps-pd-total-label {
    font-family: 'Montserrat', sans-serif;
    font-weight: 800;
    font-size: 0.76rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #0f172a;
}
.ps-pn-table tr.ps-pn-total td.col-amount,
.ps-pd-table tr.ps-pd-total td.col-amount {
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.96rem;
    font-weight: 800;
    color: #0f172a;
}

/* Nota in calce alla scrittura */
.ps-pn-note,
.ps-pd-note {
    padding: 11px 20px;
    background: #ffffff;
    border-top: 1px solid #e2e8f0;
    font-size: 0.84rem;
    color: #475569;
    display: flex;
    align-items: center;
    gap: 10px;
    line-height: 1.45;
}
.ps-pn-note svg,
.ps-pd-note svg {
    color: #0284c7;
    flex-shrink: 0;
}
.ps-pn-note-text,
.ps-pd-note-text {
    flex: 1;
}
.ps-pn-note-lead {
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    font-size: 0.70rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #334155;
    margin-right: 4px;
}

/* ==========================================================================
   TABELLE DI RIEPILOGO & SCHEMI OPERATIVI (EXECUTIVE REFERENCE MATRIX)
   Allineamento naturale a sinistra, rigatura chiara, colonna elemento distinta e leggibile
   ========================================================================== */
.ps-card .prose-table,
.prose-table {
    margin: 28px 0 34px !important;
    border: 1px solid #cbd5e1 !important;
    border-top: 3px solid var(--sp-navy-deep, #0b1727) !important;
    border-radius: 8px !important;
    background: #ffffff !important;
    box-shadow: 0 4px 18px rgba(11, 23, 39, 0.04) !important;
    overflow: hidden !important;
}

.ps-card .prose-table-scroll,
.prose-table-scroll {
    overflow-x: auto;
    background: #ffffff;
}

.ps-card .prose-table table,
.prose-table table,
.ps-card .prose table {
    width: 100% !important;
    border-collapse: collapse !important;
    font-size: 0.92rem !important;
    line-height: 1.6 !important;
    background: #ffffff !important;
    margin: 0 !important;
    border: none !important;
}

/* Intestazione Tabella */
.ps-card .prose-table thead th,
.prose-table thead th,
.ps-card .prose thead th {
    background: #f8fafc !important;
    color: #0b1727 !important;
    font-family: 'Montserrat', sans-serif !important;
    font-weight: 800 !important;
    font-size: 0.74rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.07em !important;
    padding: 14px 22px !important;
    border-bottom: 2px solid #0b1727 !important;
    border-right: 1px solid #e2e8f0 !important;
    text-align: left !important;
    vertical-align: middle !important;
}
.ps-card .prose-table thead th:last-child,
.prose-table thead th:last-child,
.ps-card .prose thead th:last-child {
    border-right: none !important;
}

/* Celle Tabella */
.ps-card .prose-table tbody td,
.prose-table tbody td,
.ps-card .prose-table tbody th,
.prose-table tbody th,
.ps-card .prose tbody td {
    padding: 14px 22px !important;
    border-bottom: 1px solid #e2e8f0 !important;
    border-right: 1px solid #e2e8f0 !important;
    color: #334155 !important;
    text-align: left !important; /* Allineamento rigoroso a sinistra, mai centrato */
    vertical-align: middle !important;
    font-size: 0.92rem !important;
    background: transparent;
}
.ps-card .prose-table tbody td:last-child,
.prose-table tbody td:last-child,
.ps-card .prose tbody td:last-child {
    border-right: none !important;
}

/* Prima nota: intestazioni, importi e totali Dare/Avere centrati; conti invariati. */
.prose-table.prose-table-ledger table tr > :nth-last-child(-n+2),
.ps-pn-table tr > .col-amount,
.ps-pd-table tr > .col-amount {
    text-align: center !important;
}

/* Righe alternate */
.ps-card .prose-table tbody tr:nth-child(even) td,
.prose-table tbody tr:nth-child(even) td,
.ps-card .prose tbody tr:nth-child(even) td {
    background: #fbfcfd !important;
}
.ps-card .prose-table:not(.prose-table-ledger) tbody tr:hover td,
.prose-table:not(.prose-table-ledger) tbody tr:hover td,
.ps-card .prose tbody tr:hover td {
    background: #f1f5f9 !important;
}

/* Prima Colonna (Elemento / Fattispecie) */
.ps-card .prose-table tbody td:first-child,
.prose-table tbody td:first-child,
.ps-card .prose tbody td:first-child {
    font-weight: 700 !important;
    color: #0b1727 !important;
    width: 38% !important;
    background: rgba(248, 250, 252, 0.55) !important;
    border-right: 1.5px solid #cbd5e1 !important;
}

/* Ultima riga */
.ps-card .prose-table tbody tr:last-child td,
.prose-table tbody tr:last-child td,
.ps-card .prose tbody tr:last-child td {
    border-bottom: none !important;
}

/* ==========================================================================
   SCRITTURE DI PARTITA DOPPIA / PRIMA NOTA
   ESEMPIO 3: MODELLO ARCHITETTURALE (MASTRINO A «T» CON CARTIGLIO)
   - Cartiglio superiore in Deep Navy con dicitura e badge normativo
   - Asse a «T» geometrico rinforzato (2px solid #94a3b8)
   - Testata con sfumature tenui Dare (carta da zucchero) e Avere (avorio/oro)
   - Colonne Dare e Avere a fondo bianco uniforme senza zebratura
   - Riga del Totale con badge verde di convalida "✓ PAREGGIO"
   - Nessuna texture di sfondo, nessun effetto hover
   ========================================================================== */
.ps-card .prose-table.prose-table-ledger,
.prose-table.prose-table-ledger {
    margin: 2.2em 0 !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 18px rgba(11, 23, 39, 0.05) !important;
    overflow: hidden !important;
    background-color: #ffffff !important;
    background-image: none !important;
}

.ps-card .prose-table.prose-table-ledger:not(:has(.prose-table-ledger-top)),
.prose-table.prose-table-ledger:not(:has(.prose-table-ledger-top)) {
    border-top: 3.5px solid #0b1727 !important;
}

/* Cartiglio Superiore Esecutivo */
.prose-table-ledger-top {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 10px 18px !important;
    background: #0b1727 !important;
    color: #ffffff !important;
    font-size: 0.78rem !important;
    border-bottom: 1px solid #1e293b !important;
}

.prose-table-ledger-label {
    font-family: 'Montserrat', var(--sans) !important;
    font-weight: 700 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    color: #ffffff !important;
}

.prose-table-ledger-label svg {
    color: #a17b42 !important;
    flex-shrink: 0 !important;
}

.prose-table-ledger-tag {
    display: none !important;
}

.ps-card .prose-table.prose-table-ledger .prose-table-scroll,
.prose-table.prose-table-ledger .prose-table-scroll,
.ps-card .prose-table.prose-table-ledger table,
.prose-table.prose-table-ledger table {
    background-color: #ffffff !important;
    background-image: none !important;
    border: none !important;
    width: 100% !important;
    border-collapse: collapse !important;
}

/* ==========================================================================
   THEAD / INTESTAZIONE — Struttura a T con sfumature semantiche e divisori coerenti
   ========================================================================== */
.ps-card .prose-table.prose-table-ledger th,
.prose-table.prose-table-ledger th,
.ps-card .prose-table.prose-table-ledger thead th,
.prose-table.prose-table-ledger thead th {
    font-family: 'Montserrat', var(--sans) !important;
    font-size: 0.72rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    padding: 12px 18px !important;
    border-top: none !important;
    border-bottom: 1.5px solid #cbd5e1 !important;
    vertical-align: middle !important;
}

/* Thead Colonna Conto */
.ps-card .prose-table.prose-table-ledger th:first-child,
.prose-table.prose-table-ledger th:first-child,
.ps-card .prose-table.prose-table-ledger thead th:first-child,
.prose-table.prose-table-ledger thead th:first-child,
.ps-card .prose-table.prose-table-ledger th.th-account,
.prose-table.prose-table-ledger th.th-account {
    background: #f1f5f9 !important;
    color: #0b1727 !important;
    text-align: left !important;
    border-left: none !important;
    border-right: 1.5px solid #cbd5e1 !important;
    width: 44% !important;
}

/* Thead Colonna Dare: Carta da zucchero tenue */
.ps-card .prose-table.prose-table-ledger th:nth-last-child(2),
.prose-table.prose-table-ledger th:nth-last-child(2),
.ps-card .prose-table.prose-table-ledger thead th:nth-last-child(2),
.prose-table.prose-table-ledger thead th:nth-last-child(2),
.ps-card .prose-table.prose-table-ledger th.th-dare,
.prose-table.prose-table-ledger th.th-dare {
    background: #edf3fa !important;
    color: #163c78 !important;
    text-align: center !important;
    border-right: 1.5px solid #cbd5e1 !important;
    width: 28% !important;
}

/* Thead Colonna Avere: Ocra/Avorio tenue */
.ps-card .prose-table.prose-table-ledger th:last-child,
.prose-table.prose-table-ledger th:last-child,
.ps-card .prose-table.prose-table-ledger thead th:last-child,
.prose-table.prose-table-ledger thead th:last-child,
.ps-card .prose-table.prose-table-ledger th.th-avere,
.prose-table.prose-table-ledger th.th-avere {
    background: #faf3e8 !important;
    color: #7a5724 !important;
    text-align: center !important;
    border-right: none !important;
    width: 28% !important;
}

/* ==========================================================================
   TBODY CELLE — Divisori verticali coerenti (#cbd5e1) e sfondo bianco pulito
   ========================================================================== */
.ps-card .prose-table.prose-table-ledger td,
.prose-table.prose-table-ledger td,
.ps-card .prose-table.prose-table-ledger tbody td,
.prose-table.prose-table-ledger tbody td {
    padding: 13px 18px !important;
    border-bottom: 1px solid #e2e8f0 !important;
    vertical-align: middle !important;
    font-size: 0.92rem !important;
}

/* Colonna Conto: linea destra coerente a 1.5px solid #cbd5e1 */
.ps-card .prose-table.prose-table-ledger td:first-child,
.prose-table.prose-table-ledger td:first-child,
.ps-card .prose-table.prose-table-ledger tbody td:first-child,
.prose-table.prose-table-ledger tbody td:first-child,
.ps-card .prose-table.prose-table-ledger tbody tr:nth-child(even) td:first-child,
.prose-table.prose-table-ledger tbody tr:nth-child(even) td:first-child {
    background: #ffffff !important;
    color: #0b1727 !important;
    font-weight: 700 !important;
    text-align: left !important;
    border-left: none !important;
    border-right: 1.5px solid #cbd5e1 !important;
    width: 44% !important;
}

/* Colonna Dare: Sfondo bianco candido e asse divisorio a 1.5px solid #cbd5e1 */
.ps-card .prose-table.prose-table-ledger td:nth-last-child(2),
.prose-table.prose-table-ledger td:nth-last-child(2),
.ps-card .prose-table.prose-table-ledger tbody tr td:nth-last-child(2),
.prose-table.prose-table-ledger tbody tr td:nth-last-child(2),
.ps-card .prose-table.prose-table-ledger tbody tr:nth-child(even) td:nth-last-child(2),
.prose-table.prose-table-ledger tbody tr:nth-child(even) td:nth-last-child(2) {
    background: #ffffff !important;
    color: #334155 !important;
    text-align: center !important;
    font-variant-numeric: tabular-nums !important;
    border-right: 1.5px solid #cbd5e1 !important;
    width: 28% !important;
}

/* Colonna Avere: Sfondo bianco candido senza bordo destro */
.ps-card .prose-table.prose-table-ledger td:last-child,
.prose-table.prose-table-ledger td:last-child,
.ps-card .prose-table.prose-table-ledger tbody tr td:last-child,
.prose-table.prose-table-ledger tbody tr td:last-child,
.ps-card .prose-table.prose-table-ledger tbody tr:nth-child(even) td:last-child,
.prose-table.prose-table-ledger tbody tr:nth-child(even) td:last-child {
    background: #ffffff !important;
    color: #334155 !important;
    text-align: center !important;
    font-variant-numeric: tabular-nums !important;
    border-right: none !important;
    width: 28% !important;
}

/* Disattivazione HOVER per preservare il mastrino statico */
.ps-card .prose-table.prose-table-ledger tbody tr:hover td,
.prose-table.prose-table-ledger tbody tr:hover td,
.ps-card .prose-table.prose-table-ledger tr:hover td,
.prose-table.prose-table-ledger tr:hover td {
    background: inherit !important;
}

.ps-card .prose-table.prose-table-ledger tbody tr:not(:last-child):not(.row-total):hover td:first-child,
.prose-table.prose-table-ledger tbody tr:not(:last-child):not(.row-total):hover td:first-child,
.ps-card .prose-table.prose-table-ledger tr:not(:last-child):not(.row-total):hover td:first-child,
.prose-table.prose-table-ledger tr:not(:last-child):not(.row-total):hover td:first-child {
    background: #ffffff !important;
}

.ps-card .prose-table.prose-table-ledger tbody tr:not(:last-child):not(.row-total):hover td:nth-last-child(-n+2),
.prose-table.prose-table-ledger tbody tr:not(:last-child):not(.row-total):hover td:nth-last-child(-n+2),
.ps-card .prose-table.prose-table-ledger tr:not(:last-child):not(.row-total):hover td:nth-last-child(-n+2),
.prose-table.prose-table-ledger tr:not(:last-child):not(.row-total):hover td:nth-last-child(-n+2) {
    background: #ffffff !important;
}

/* ==========================================================================
   RIGA DEL TOTALE: Barra superiore 1.5px solid #0b1727, divisori coerenti,
   sfondo #f1f5f9 leggermente più scuro, badge ✓ PAREGGIO
   ========================================================================== */
.ps-card .prose-table.prose-table-ledger tbody tr:last-child td,
.prose-table.prose-table-ledger tbody tr:last-child td,
.ps-card .prose-table.prose-table-ledger tbody tr.row-total td,
.prose-table.prose-table-ledger tbody tr.row-total td,
.ps-card .prose-table.prose-table-ledger tr:last-child td,
.prose-table.prose-table-ledger tr:last-child td,
.ps-card .prose-table.prose-table-ledger tr.row-total td,
.prose-table.prose-table-ledger tr.row-total td,
.ps-card .prose-table.prose-table-ledger tbody tr:last-child:hover td,
.prose-table.prose-table-ledger tbody tr:last-child:hover td,
.ps-card .prose-table.prose-table-ledger tbody tr.row-total:hover td,
.prose-table.prose-table-ledger tbody tr.row-total:hover td,
.ps-pn-table tr.ps-pn-total td,
.ps-pd-table tr.ps-pd-total td,
.ps-pn-table tr.ps-pn-total:hover td,
.ps-pd-table tr.ps-pd-total:hover td {
    background: #f1f5f9 !important;
    color: #0b1727 !important;
    font-weight: 800 !important;
    border-top: 1.5px solid #0b1727 !important;
    border-bottom: none !important;
}

.ps-card .prose-table.prose-table-ledger tbody tr:last-child td:first-child,
.prose-table.prose-table-ledger tbody tr:last-child td:first-child,
.ps-card .prose-table.prose-table-ledger tbody tr.row-total td:first-child,
.prose-table.prose-table-ledger tbody tr.row-total td:first-child,
.ps-card .prose-table.prose-table-ledger tr:last-child td:first-child,
.prose-table.prose-table-ledger tr:last-child td:first-child,
.ps-card .prose-table.prose-table-ledger tr.row-total td:first-child,
.prose-table.prose-table-ledger tr.row-total td:first-child,
.ps-card .prose-table.prose-table-ledger tbody tr:last-child:hover td:first-child,
.prose-table.prose-table-ledger tbody tr:last-child:hover td:first-child,
.ps-card .prose-table.prose-table-ledger tbody tr.row-total:hover td:first-child,
.prose-table.prose-table-ledger tbody tr.row-total:hover td:first-child {
    background: #f1f5f9 !important;
    color: #0b1727 !important;
    font-family: 'Montserrat', var(--sans) !important;
    font-size: 0.74rem !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    border-left: none !important;
    border-right: 1.5px solid #cbd5e1 !important;
}

/* Badge di quadratura ✓ PAREGGIO inserito automaticamente dopo l'etichetta Totale */
.ps-card .prose-table.prose-table-ledger tbody tr:last-child td:first-child::after,
.prose-table.prose-table-ledger tbody tr:last-child td:first-child::after,
.ps-card .prose-table.prose-table-ledger tbody tr.row-total td:first-child::after,
.prose-table.prose-table-ledger tbody tr.row-total td:first-child::after,
.ps-card .prose-table.prose-table-ledger tr:last-child td:first-child::after,
.prose-table.prose-table-ledger tr:last-child td:first-child::after,
.ps-card .prose-table.prose-table-ledger tr.row-total td:first-child::after,
.prose-table.prose-table-ledger tr.row-total td:first-child::after {
    content: "✓ PAREGGIO";
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-family: 'Montserrat', var(--sans);
    font-size: 0.64rem;
    color: #047857;
    background: #ecfdf5;
    border: 1px solid #a7f3d0;
    padding: 1px 7px;
    border-radius: 4px;
    font-weight: 700;
    letter-spacing: 0.04em;
    margin-left: 10px;
    vertical-align: middle;
    text-transform: uppercase;
}

.ps-card .prose-table.prose-table-ledger tbody tr:last-child td:nth-last-child(2),
.prose-table.prose-table-ledger tbody tr:last-child td:nth-last-child(2),
.ps-card .prose-table.prose-table-ledger tbody tr.row-total td:nth-last-child(2),
.prose-table.prose-table-ledger tbody tr.row-total td:nth-last-child(2),
.ps-card .prose-table.prose-table-ledger tr:last-child td:nth-last-child(2),
.prose-table.prose-table-ledger tr:last-child td:nth-last-child(2),
.ps-card .prose-table.prose-table-ledger tr.row-total td:nth-last-child(2),
.prose-table.prose-table-ledger tr.row-total td:nth-last-child(2),
.ps-card .prose-table.prose-table-ledger tbody tr:last-child:hover td:nth-last-child(2),
.prose-table.prose-table-ledger tbody tr:last-child:hover td:nth-last-child(2),
.ps-card .prose-table.prose-table-ledger tbody tr.row-total:hover td:nth-last-child(2),
.prose-table.prose-table-ledger tbody tr.row-total:hover td:nth-last-child(2),
.ps-pn-table tr.ps-pn-total td.col-amount:nth-last-child(2),
.ps-pd-table tr.ps-pd-total td.col-amount:nth-last-child(2) {
    background: #f1f5f9 !important;
    font-weight: 800 !important;
    font-size: 0.95rem !important;
    color: #0b1727 !important;
    text-align: center !important;
    font-variant-numeric: tabular-nums !important;
    border-right: 1.5px solid #cbd5e1 !important;
}

.ps-card .prose-table.prose-table-ledger tbody tr:last-child td:last-child,
.prose-table.prose-table-ledger tbody tr:last-child td:last-child,
.ps-card .prose-table.prose-table-ledger tbody tr.row-total td:last-child,
.prose-table.prose-table-ledger tbody tr.row-total td:last-child,
.ps-card .prose-table.prose-table-ledger tr:last-child td:last-child,
.prose-table.prose-table-ledger tr:last-child td:last-child,
.ps-card .prose-table.prose-table-ledger tr.row-total td:last-child,
.prose-table.prose-table-ledger tr.row-total td:last-child,
.ps-card .prose-table.prose-table-ledger tbody tr:last-child:hover td:last-child,
.prose-table.prose-table-ledger tbody tr:last-child:hover td:last-child,
.ps-card .prose-table.prose-table-ledger tbody tr.row-total:hover td:last-child,
.prose-table.prose-table-ledger tbody tr.row-total:hover td:last-child,
.ps-pn-table tr.ps-pn-total td.col-amount:last-child,
.ps-pd-table tr.ps-pd-total td.col-amount:last-child {
    background: #f1f5f9 !important;
    font-weight: 800 !important;
    font-size: 0.95rem !important;
    color: #0b1727 !important;
    text-align: center !important;
    font-variant-numeric: tabular-nums !important;
    border-right: none !important;
}

/* Prospetto di Riconciliazione e Sintesi */
.ps-reconcile-card {
    background: #ffffff;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    overflow: hidden;
    margin-top: 32px;
    box-shadow: 0 4px 16px rgba(15, 23, 42, 0.04);
}
.ps-reconcile-head {
    background: #f8fafc;
    color: #0f172a;
    padding: 14px 22px;
    display: flex;
    align-items: center;
    justify-content: flex-start !important;
    text-align: left !important;
    gap: 10px;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border-bottom: 1.5px solid #cbd5e1;
}
.ps-reconcile-head span {
    text-align: left !important;
}
.ps-reconcile-icon {
    font-size: 1.05rem;
}
.ps-reconcile-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    background: #ffffff;
}
.ps-reconcile-col {
    padding: 20px 22px;
    border-right: 1px solid #e2e8f0;
    display: flex;
    flex-direction: column;
    align-items: center !important;
    text-align: center !important;
    gap: 10px;
}
.ps-reconcile-col:last-child {
    border-right: none;
}
.ps-rec-label {
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: #64748b;
    font-family: 'Montserrat', sans-serif;
    text-align: center !important;
    width: 100%;
}
.ps-rec-val {
    font-size: 0.90rem;
    line-height: 1.6;
    color: #0f172a;
    font-weight: 500;
    text-align: center !important;
    width: 100%;
}

/* --------------------------------------------------------------------------
   CHECKLIST & ERRORI: EXECUTIVE RISK MATRIX (PROFILI DI RISCHIO E CRITICITÀ)
   -------------------------------------------------------------------------- */
.ps-risk-matrix {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-top: 24px;
}
.ps-risk-card {
    background: #ffffff;
    border: 1px solid #fee2e2;
    border-left: 5px solid #dc2626;
    border-radius: 10px;
    padding: 20px 24px;
    box-shadow: 0 4px 16px rgba(220, 38, 38, 0.05);
    transition: all 0.2s ease;
}
.ps-risk-card:hover {
    box-shadow: 0 6px 24px rgba(220, 38, 38, 0.1);
}
.ps-risk-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
    text-align: left !important;
}
.ps-risk-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: 'Outfit', sans-serif;
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #b91c1c;
    background: #fef2f2;
    padding: 4px 12px;
    border-radius: 6px;
    border: 1px solid #fecaca;
    text-align: left !important;
}
.ps-risk-badge svg {
    color: #dc2626;
    flex-shrink: 0;
}
.ps-risk-severity {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #991b1b;
    background: #fee2e2;
    padding: 3px 10px;
    border-radius: 4px;
    text-align: left !important;
}
.ps-risk-title,
.prontuario-scheda-page .prose h3.ps-risk-title {
    font-family: 'Fraunces', Georgia, serif;
    font-size: 1.15rem;
    font-weight: 600;
    color: #0b1727;
    margin: 0 0 8px;
    padding: 0;
    line-height: 1.4;
    text-align: left !important;
    hyphens: none !important;
    -webkit-hyphens: none !important;
}
.prontuario-scheda-page .prose h3.ps-risk-title::before,
.prontuario-scheda-page .prose h3.ps-risk-title::after {
    display: none;
}
.ps-risk-body {
    padding: 0;
}
.ps-risk-row {
    display: flex;
    flex-direction: column;
    gap: 6px;
    text-align: justify !important;
    text-justify: inter-word !important;
}
.ps-risk-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.74rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: #dc2626;
    text-align: left !important;
}
.ps-risk-label svg {
    flex-shrink: 0;
}
.ps-risk-row p,
.ps-risk-body p,
.ps-risk-card p,
.ps-risk-card li,
#panel-errori p,
#panel-errori li,
#panel-errori .prose p,
#panel-errori .prose li {
    margin: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    text-align: justify !important;
    text-justify: inter-word !important;
    hyphens: auto !important;
    -webkit-hyphens: auto !important;
    font-size: 0.98rem !important;
    line-height: 1.75 !important;
    color: #334155 !important;
}

/* --------------------------------------------------------------------------
   NAVIGATORE A FONDO PAGINA (Tra Voci della Serie)
   -------------------------------------------------------------------------- */
.ps-nav-bottom {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 20px;
    align-items: center;
    margin-top: 56px;
    padding-top: 36px;
    border-top: 2px solid #e2e8f0;
}
.ps-nav-card {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 20px 24px;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    text-decoration: none !important;
    transition: all 0.2s ease;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.02);
}
.ps-nav-card:hover {
    border-color: var(--sp-gold);
    box-shadow: 0 6px 18px rgba(11, 23, 39, 0.07);
    transform: translateY(-2px);
}
.ps-nav-card.next {
    text-align: right;
}
.ps-nav-label {
    font-size: 0.74rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #996e24;
}
.ps-nav-title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--sp-navy-deep);
    line-height: 1.35;
}
.ps-nav-hub-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--sp-navy-deep);
    color: #ffffff;
    padding: 14px 24px;
    border-radius: 10px;
    font-size: 0.85rem;
    font-weight: 700;
    text-decoration: none !important;
    transition: all 0.2s ease;
    white-space: nowrap;
    border: 1px solid var(--sp-gold-border);
}
.ps-nav-hub-btn:hover {
    background: var(--sp-gold);
    color: var(--sp-navy-deep);
    border-color: var(--sp-gold);
    transform: translateY(-2px);
}

/* Checklist & Errori: rende visivamente riconoscibile la lista di controlli come
   checklist (icona, card, etichetta risaltata) invece di prosa giustificata continua. */
#panel-errori .prose ul {
    list-style: none;
    margin: 20px 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
#panel-errori .prose li {
    text-align: left !important;
    hyphens: none !important;
    -webkit-hyphens: none !important;
    position: relative;
    background: #fffdf8;
    border: 1px solid rgba(212, 163, 89, 0.35);
    border-left: 3px solid var(--sp-gold);
    border-radius: 0 8px 8px 0;
    padding: 14px 18px 14px 46px;
    line-height: 1.65;
}
#panel-errori .prose li::before {
    content: '';
    position: absolute;
    left: 16px;
    top: 17px;
    width: 18px;
    height: 18px;
    background: var(--sp-gold);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5'%3E%3Cpath d='M9 11l3 3L22 4'/%3E%3Cpath d='M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5'%3E%3Cpath d='M9 11l3 3L22 4'/%3E%3Cpath d='M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11'/%3E%3C/svg%3E") center / contain no-repeat;
    border-radius: 5px;
}
#panel-errori .prose li strong {
    display: block;
    color: #996e24;
    font-weight: 700;
    font-size: 0.92rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    margin-bottom: 3px;
}
/* Il paragrafo introduttivo prima della lista resta prosa normale, non una card. */
#panel-errori .prose > p {
    text-align: justify !important;
}

/* Voci correlate: schede con numero, titolo, sottotitolo e invito alla lettura (19/09/2026). */
.ps-related {
    margin-top: 56px;
    padding: 34px 34px 28px;
    background: linear-gradient(180deg, var(--sp-bg-soft) 0%, #ffffff 100%);
    border: 1px solid var(--sp-border-card);
    border-top: 4px solid var(--sp-gold);
    border-radius: 14px;
}
.ps-related-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px 20px;
    margin-bottom: 22px;
}
.ps-related-kicker {
    display: block;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--sp-text-muted);
    margin-bottom: 4px;
}
.ps-related-heading h2 {
    font-family: 'Fraunces', Georgia, serif;
    font-size: 1.55rem;
    font-weight: 700;
    line-height: 1.15;
    color: var(--sp-navy-deep);
    margin: 0;
}
.ps-related-heading .ps-related-cat {
    display: inline-block;
    padding: 6px 12px;
    border-radius: 999px;
    background: var(--sp-gold-light);
    border: 1px solid var(--sp-gold-border);
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #8a611d;
}
.ps-related-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}
.ps-related-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 20px 20px 18px;
    background: #ffffff;
    border: 1px solid var(--sp-border-card);
    border-radius: 12px;
    text-decoration: none !important;
    color: var(--sp-navy-deep);
    box-shadow: 0 2px 10px rgba(11, 23, 39, 0.04);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
    overflow: hidden;
}
.ps-related-card::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: var(--sp-gold);
    transform: scaleY(0);
    transform-origin: top;
    transition: transform 0.25s ease;
}
.ps-related-num {
    font-family: 'Fraunces', Georgia, serif;
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--sp-gold);
    letter-spacing: 0.04em;
}
.ps-related-body {
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1;
}
.ps-related-title {
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--sp-navy-deep);
}
.ps-related-sub {
    font-size: 0.84rem;
    line-height: 1.45;
    color: var(--sp-text-muted);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.ps-related-go {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding-top: 12px;
    border-top: 1px solid #eef2f6;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--sp-navy-light);
}
.ps-related-go svg,
.ps-related-foot svg {
    width: 14px;
    height: 14px;
    transition: transform 0.2s ease;
}
.ps-related-card:hover,
.ps-related-card:focus-visible {
    border-color: var(--sp-gold-border);
    box-shadow: 0 10px 26px rgba(11, 23, 39, 0.09);
    transform: translateY(-3px);
}
.ps-related-card:hover::before,
.ps-related-card:focus-visible::before {
    transform: scaleY(1);
}
.ps-related-card:hover .ps-related-go {
    color: #8a611d;
}
.ps-related-card:hover .ps-related-go svg,
.ps-related-foot a:hover svg {
    transform: translateX(3px);
}
.ps-related-card:focus-visible {
    outline: 2px solid var(--sp-gold);
    outline-offset: 2px;
}
.ps-related-foot {
    margin-top: 20px;
    text-align: right;
}
.ps-related-foot a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--sp-navy-deep) !important;
    text-decoration: none !important;
    border-bottom: 1px solid var(--sp-gold-border);
    padding-bottom: 2px;
}
@media (max-width: 960px) {
    .ps-related-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 640px) {
    .ps-related {
        padding: 24px 18px 20px;
    }
    .ps-related-heading h2 {
        font-size: 1.3rem;
    }
    .ps-related-grid {
        grid-template-columns: 1fr;
    }
    .ps-related-foot {
        text-align: left;
    }
}
@media (prefers-reduced-motion: reduce) {
    .ps-related-card,
    .ps-related-card::before,
    .ps-related-go svg,
    .ps-related-foot svg {
        transition: none;
    }
    .ps-related-card:hover,
    .ps-related-card:focus-visible {
        transform: none;
    }
}

/* Responsività */
@media (max-width: 960px) {
    .ps-cartiglio-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .ps-nav-bottom {
        grid-template-columns: 1fr;
    }
    .ps-nav-card.next {
        text-align: left;
    }
}
@media (max-width: 640px) {
    .ps-risk-card {
        padding: 16px 16px 16px 18px;
    }
    .ps-risk-card p,
    #panel-errori .ps-risk-card p,
    #panel-errori .prose .ps-risk-card p {
        text-align: left !important;
        hyphens: none !important;
        -webkit-hyphens: none !important;
    }
    #panel-errori .prose li {
        padding: 12px 14px 12px 40px;
    }
    #panel-errori .prose li::before {
        left: 12px;
        top: 15px;
    }
    .ps-cartiglio-grid {
        grid-template-columns: 1fr;
    }
    .ps-hero-dossier {
        padding: 32px 18px;
    }
    .ps-card {
        padding: 24px 20px;
    }
}

/* ==========================================================================
   VIEW MODE SWITCHER (SCHEDE / SCORRIMENTO / FORMATO ARTICOLO)
   ========================================================================== */
.ps-view-mode-group {
    display: inline-flex;
    align-items: center;
    background: #f1f5f9;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    padding: 3px;
    gap: 2px;
    flex-shrink: 0;
}

.ps-vm-btn {
    border: none;
    background: transparent;
    color: #475569;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.76rem;
    font-weight: 700;
    padding: 6px 12px;
    border-radius: 6px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: all 0.18s ease;
    white-space: nowrap;
}

.ps-vm-btn svg {
    display: block;
    width: 13px;
    height: 13px;
    flex-shrink: 0;
}

.ps-vm-btn:hover {
    color: #0b1727;
    background: rgba(11, 23, 39, 0.05);
}

.ps-vm-btn.active {
    background: #0b1727 !important;
    color: #ffffff !important;
    box-shadow: 0 2px 6px rgba(11, 23, 39, 0.18);
}

.ps-tabs-list.ps-tabs-faded {
    opacity: 0.35;
    pointer-events: none;
    filter: grayscale(1);
    transition: all 0.2s ease;
}

/* ==========================================================================
   VISTA ORIGINARIA IN FORMATO ARTICOLO EDITORIALE (.ps-article-view)
   ========================================================================== */
.ps-article-view {
    max-width: 1240px;
    margin: 0 auto 60px;
    padding: 0 24px;
}

.ps-article-view-banner {
    background: linear-gradient(135deg, #f8fafc 0%, #edf2f7 100%);
    border: 1px solid #cbd5e1;
    border-left: 4px solid var(--sp-gold, #b69256);
    border-radius: 8px;
    padding: 12px 18px;
    margin: 24px 0 32px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    box-shadow: 0 2px 8px rgba(11, 23, 39, 0.03);
}

.ps-avb-info {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 0.86rem;
    color: #334155;
}

.ps-avb-info svg {
    color: #b69256;
    flex-shrink: 0;
}

.ps-avb-info strong {
    color: #0b1727;
}

.ps-avb-switch-btn {
    background: #0b1727;
    border: 1px solid #0b1727;
    color: #ffffff;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.74rem;
    font-weight: 700;
    padding: 6px 14px;
    border-radius: 6px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: all 0.15s ease;
    white-space: nowrap;
}

.ps-avb-switch-btn:hover {
    background: #1e3a8a;
    border-color: #1e3a8a;
}

.ps-classic-article-wrap article {
    background: #ffffff;
    border: 1px solid #cbd5e1;
    border-radius: 12px;
    padding: 40px 48px;
    box-shadow: 0 4px 20px rgba(11, 23, 39, 0.04);
}

/* ==========================================================================
   MATRICE DECISIONALE A TESSERE (EXECUTIVE DECISION DECK)
   Impostazione innovativa e creativa per schemi operativi e riepilogo normativo
   ========================================================================== */
.ps-decision-deck {
    margin: 34px 0 40px !important;
    border: 1px solid #cbd5e1 !important;
    border-top: 3.5px solid var(--sp-gold, #b69256) !important;
    border-radius: 12px !important;
    background: #ffffff !important;
    box-shadow: 0 8px 30px rgba(11, 23, 39, 0.06) !important;
    overflow: hidden !important;
}

.ps-deck-header {
    background: linear-gradient(135deg, #0b1727 0%, #15273f 100%) !important;
    padding: 22px 26px 18px !important;
    color: #ffffff !important;
}

.ps-deck-header-main {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
    margin-bottom: 16px;
    flex-wrap: wrap;
}

.ps-deck-headline {
    flex: 1;
    min-width: 280px;
}

.ps-deck-kicker {
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #d4a359;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 6px;
}

.ps-deck-kicker svg {
    display: block;
    color: #d4a359;
}

.ps-deck-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 1.25rem;
    font-weight: 800;
    color: #ffffff;
    margin: 0 0 4px;
    letter-spacing: -0.01em;
    line-height: 1.3;
}

.ps-deck-subtitle {
    font-size: 0.84rem;
    color: #cbd5e1;
    margin: 0;
    line-height: 1.45;
}

.ps-deck-badge-wrap {
    flex-shrink: 0;
}

.ps-deck-count-badge {
    background: rgba(212, 163, 89, 0.16);
    border: 1px solid rgba(212, 163, 89, 0.38);
    color: #f8fafc;
    font-size: 0.78rem;
    font-weight: 700;
    padding: 6px 14px;
    border-radius: 999px;
    letter-spacing: 0.04em;
    white-space: nowrap;
    display: inline-block;
}

.ps-deck-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    padding-top: 14px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.ps-deck-search {
    position: relative;
    flex: 1;
    min-width: 260px;
}

.ps-deck-search-icon {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: #94a3b8;
    pointer-events: none;
}

.ps-deck-input {
    width: 100%;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 7px;
    padding: 8px 14px 8px 36px;
    font-size: 0.84rem;
    color: #ffffff;
    outline: none;
    transition: all 0.2s ease;
    box-sizing: border-box;
}

.ps-deck-input:focus {
    background: rgba(255, 255, 255, 0.15);
    border-color: #d4a359;
    box-shadow: 0 0 0 3px rgba(212, 163, 89, 0.22);
}

.ps-deck-input::placeholder {
    color: #94a3b8;
}

.ps-deck-view-switcher {
    display: inline-flex;
    gap: 4px;
    background: rgba(0, 0, 0, 0.25);
    padding: 3px;
    border-radius: 7px;
    border: 1px solid rgba(255, 255, 255, 0.12);
}

.ps-deck-btn {
    border: none;
    background: transparent;
    color: #cbd5e1;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.74rem;
    font-weight: 700;
    padding: 5px 12px;
    border-radius: 5px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: all 0.15s ease;
    white-space: nowrap;
}

.ps-deck-btn:hover {
    color: #ffffff;
}

.ps-deck-btn.active {
    background: #d4a359 !important;
    color: #0b1727 !important;
    font-weight: 800 !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
}

/* Griglia Tessere Decisionali */
.ps-deck-cards {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 22px;
    background: #f8fafc;
}

.ps-deck-card {
    background: #ffffff;
    border: 1.5px solid #e2e8f0;
    border-radius: 10px;
    padding: 18px 22px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    transition: all 0.22s ease;
    box-shadow: 0 2px 6px rgba(11, 23, 39, 0.02);
}

.ps-deck-card:hover {
    border-color: #cbd5e1;
    box-shadow: 0 8px 24px rgba(11, 23, 39, 0.07);
    transform: translateY(-1px);
}

.ps-deck-col-case {
    flex: 0 0 42%;
    max-width: 42%;
}

.ps-deck-case-top {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
    flex-wrap: wrap;
}

.ps-deck-num {
    background: #0b1727;
    color: #ffffff;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.68rem;
    font-weight: 800;
    padding: 3px 8px;
    border-radius: 4px;
    letter-spacing: 0.06em;
}

.ps-deck-cat {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 0.72rem;
    font-weight: 700;
    color: #1e3a8a;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    padding: 2px 9px;
    border-radius: 4px;
}

.ps-deck-cat-icon {
    font-size: 0.82rem;
}

.ps-deck-case-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.98rem;
    font-weight: 700;
    color: #0b1727;
    margin: 0;
    line-height: 1.45;
}

.ps-deck-connector {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    flex-shrink: 0;
    width: 60px;
    color: #94a3b8;
}

.ps-deck-flow-line {
    width: 24px;
    height: 2px;
    background: #cbd5e1;
}

.ps-deck-flow-badge {
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #64748b;
    display: inline-flex;
    align-items: center;
    gap: 3px;
    white-space: nowrap;
}

.ps-deck-flow-badge svg {
    color: #94a3b8;
}

.ps-deck-col-rule {
    flex: 1;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-left: 4px solid var(--sp-gold, #b69256);
    border-radius: 8px;
    padding: 14px 18px;
    position: relative;
}

.ps-deck-rule-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 6px;
}

.ps-deck-rule-label {
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #997332;
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.ps-deck-copy-btn {
    border: 1px solid #cbd5e1;
    background: #ffffff;
    color: #475569;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.7rem;
    font-weight: 700;
    padding: 3px 8px;
    border-radius: 4px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: all 0.15s ease;
}

.ps-deck-copy-btn:hover {
    border-color: #0b1727;
    color: #0b1727;
    background: #f1f5f9;
}

.ps-deck-copy-btn.copied {
    background: #10b981;
    border-color: #10b981;
    color: #ffffff;
}

.ps-deck-rule-body p {
    margin: 0;
    font-size: 0.94rem;
    line-height: 1.58;
    color: #1e293b;
    font-weight: 500;
}

/* Evidenziatori Semantici Regole */
.ps-deck-val {
    background: #fef3c7 !important;
    color: #78350f !important;
    font-weight: 800 !important;
    padding: 2px 7px !important;
    border-radius: 4px !important;
    border: 1px solid #fde68a !important;
    display: inline-block;
}

.ps-deck-key {
    font-weight: 700;
    color: #0b1727;
}

.ps-deck-badge-status {
    background: #dbeafe;
    color: #1e40af;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 4px;
    border: 1px solid #bfdbfe;
    display: inline-block;
}

/* Vista Tabellare Sinottica (.ps-deck-table-wrap) */
.ps-deck-table-wrap {
    padding: 18px 24px 24px;
    background: #ffffff;
    overflow-x: auto;
}

.ps-deck-table {
    width: 100% !important;
    border-collapse: collapse !important;
    font-size: 0.92rem !important;
    line-height: 1.6 !important;
    margin: 0 !important;
}

.ps-deck-table thead th {
    background: #f8fafc !important;
    color: #0b1727 !important;
    font-family: 'Montserrat', sans-serif !important;
    font-weight: 800 !important;
    font-size: 0.74rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.07em !important;
    padding: 13px 20px !important;
    border-bottom: 2px solid #0b1727 !important;
    border-right: 1px solid #e2e8f0 !important;
    text-align: left !important;
}

.ps-deck-table thead th:last-child {
    border-right: none !important;
}

.ps-deck-table tbody td {
    padding: 14px 20px !important;
    border-bottom: 1px solid #e2e8f0 !important;
    border-right: 1px solid #e2e8f0 !important;
    color: #334155 !important;
    text-align: left !important;
}

.ps-deck-table tbody td:last-child {
    border-right: none !important;
}

.ps-deck-table tbody tr:nth-child(even) td {
    background: #fbfcfd !important;
}

.ps-deck-table tbody tr:hover td {
    background: #f1f5f9 !important;
}

.ps-deck-td-case {
    font-weight: 700 !important;
    color: #0b1727 !important;
    background: rgba(248, 250, 252, 0.55) !important;
}

.ps-deck-td-num {
    display: inline-block;
    background: #0b1727;
    color: #ffffff;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.66rem;
    font-weight: 800;
    padding: 2px 6px;
    border-radius: 3px;
    margin-right: 8px;
    vertical-align: middle;
}

.ps-deck-empty {
    padding: 42px 20px;
    text-align: center;
    color: #64748b;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    font-size: 0.94rem;
    font-weight: 600;
    background: #ffffff;
}

.ps-deck-empty svg {
    color: #94a3b8;
}

@media (max-width: 860px) {
    .ps-deck-card {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }
    .ps-deck-col-case {
        max-width: 100%;
        flex: 1;
    }
    .ps-deck-connector {
        width: auto;
        flex-direction: row;
        justify-content: flex-start;
    }
    .ps-deck-flow-line {
        display: none;
    }
    .ps-deck-col-rule {
        width: 100%;
    }
    .ps-view-mode-group {
        margin-top: 8px;
        width: 100%;
        justify-content: center;
    }
    .ps-nav-tabs-inner {
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
    }
    .ps-classic-article-wrap article {
        padding: 24px 18px;
    }
}

/* ==========================================================================
   STAMPA PERFETTA & DOSSIER PDF ELEGANTE (A4)
   Studio Pizzano · Prontuario delle Voci di Bilancio 2026
   ========================================================================== */
@media print {
    @page {
        size: A4 portrait;
        margin: 14mm 12mm 14mm 12mm;
    }

    /* Reset di pagina per la massima resa tipografica e risparmio inchiostro */
    html, body, #page, .site, .prontuario-scheda-page, .ps-main-container, .ps-main-content {
        background: #ffffff !important;
        color: #0b1727 !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        font-size: 9.5pt !important;
        line-height: 1.55 !important;
        box-shadow: none !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    /* Elementi Web da nascondere completamente nella stampa */
    .site-header,
    .site-footer,
    .ps-toolbar,
    .ps-nav-tabs-wrapper,
    .ps-nav-bottom,
    .ps-breadcrumb,
    .ps-view-toggle,
    .ps-header-top,
    #cookie-banner,
    .sp-newsletter-bar,
    .newsletter-box,
    .sp-doc-feedback,
    .sp-floating-chat,
    .sp-floating-trigger,
    [id*="chat"],
    .no-print {
        display: none !important;
    }

    /* Testata Dossier Istituzionale (Cartiglio Ufficiale Studio Pizzano) */
    .ps-hero-dossier {
        background: #ffffff !important;
        color: #0b1727 !important;
        padding: 0 0 14pt 0 !important;
        margin: 0 0 16pt 0 !important;
        border: none !important;
        border-bottom: 2.5pt solid #0b1727 !important;
        position: relative !important;
        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }

    .ps-hero-inner {
        max-width: 100% !important;
        padding: 0 !important;
    }

    .ps-hero-dossier::before {
        content: "STUDIO SABATINO PIZZANO · DOTTORI COMMERCIALISTI & REVISORI LEGALI";
        display: block !important;
        font-family: 'Montserrat', sans-serif !important;
        font-size: 7.5pt !important;
        font-weight: 800 !important;
        letter-spacing: 0.12em !important;
        text-transform: uppercase !important;
        color: #997332 !important;
        margin-bottom: 4pt !important;
    }

    .ps-title {
        color: #0b1727 !important;
        font-family: 'Cinzel', serif, Georgia !important;
        font-size: 20pt !important;
        line-height: 1.18 !important;
        letter-spacing: -0.01em !important;
        margin: 4pt 0 8pt 0 !important;
        text-shadow: none !important;
    }

    .ps-hero-dossier::after {
        content: "Prontuario delle Voci di Bilancio 2026 · Scheda Monografica Ufficiale OIC & TUIR · www.studiopizzano.it";
        display: block !important;
        font-family: 'Montserrat', sans-serif !important;
        font-size: 7pt !important;
        font-weight: 600 !important;
        text-transform: uppercase !important;
        letter-spacing: 0.08em !important;
        color: #64748b !important;
        border-top: 0.5pt solid #cbd5e1 !important;
        padding-top: 4pt !important;
        margin-top: 6pt !important;
    }

    /* TUTTI I PANNELLI RENDERIZZATI IN SEQUENZA */
    .ps-panel {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        margin-bottom: 20pt !important;
        break-inside: auto !important;
        page-break-inside: auto !important;
    }

    /* Intestazioni di Sezione con Interruzione di Pagina Pulita */
    #panel-sintesi::before {
        content: "SEZIONE I · INQUADRAMENTO OPERATIVO & SINTESI DELLA REGOLA";
        display: block;
        font-family: 'Montserrat', sans-serif;
        font-size: 8.5pt;
        font-weight: 800;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        color: #0b1727;
        background: #f8fafc;
        border-left: 3.5pt solid #997332;
        border-top: 1pt solid #cbd5e1;
        border-right: 1pt solid #cbd5e1;
        border-bottom: 1pt solid #cbd5e1;
        padding: 5pt 10pt;
        margin: 10pt 0 12pt 0;
        break-after: avoid;
        page-break-after: avoid;
    }

    #panel-civilistico::before {
        content: "SEZIONE II · QUADRO NORMATIVO CIVILISTICO & PRINCIPI CONTABILI OIC";
        display: block;
        font-family: 'Montserrat', sans-serif;
        font-size: 8.5pt;
        font-weight: 800;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        color: #0b1727;
        background: #f8fafc;
        border-left: 3.5pt solid #1e40af;
        border-top: 1pt solid #cbd5e1;
        border-right: 1pt solid #cbd5e1;
        border-bottom: 1pt solid #cbd5e1;
        padding: 5pt 10pt;
        margin: 18pt 0 12pt 0;
        break-before: page;
        page-break-before: always;
        break-after: avoid;
        page-break-after: avoid;
    }

    #panel-fiscale::before {
        content: "SEZIONE III · DISCIPLINA TRIBUTARIA, DEDUCIBILITÀ IRES/IRAP & TUIR";
        display: block;
        font-family: 'Montserrat', sans-serif;
        font-size: 8.5pt;
        font-weight: 800;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        color: #0b1727;
        background: #f8fafc;
        border-left: 3.5pt solid #0d9488;
        border-top: 1pt solid #cbd5e1;
        border-right: 1pt solid #cbd5e1;
        border-bottom: 1pt solid #cbd5e1;
        padding: 5pt 10pt;
        margin: 18pt 0 12pt 0;
        break-before: page;
        page-break-before: always;
        break-after: avoid;
        page-break-after: avoid;
    }

    #panel-scritture::before {
        content: "SEZIONE IV · CASO PRATICO & RILEVAZIONI IN PARTITA DOPPIA (LIBRO GIORNALE)";
        display: block;
        font-family: 'Montserrat', sans-serif;
        font-size: 8.5pt;
        font-weight: 800;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        color: #0b1727;
        background: #f8fafc;
        border-left: 3.5pt solid #0b1727;
        border-top: 1pt solid #cbd5e1;
        border-right: 1pt solid #cbd5e1;
        border-bottom: 1pt solid #cbd5e1;
        padding: 5pt 10pt;
        margin: 18pt 0 12pt 0;
        break-before: page;
        page-break-before: always;
        break-after: avoid;
        page-break-after: avoid;
    }

    #panel-caso::before {
        content: "SEZIONE V · CASO APPLICATIVO & SIMULAZIONE NUMERICA";
        display: block;
        font-family: 'Montserrat', sans-serif;
        font-size: 8.5pt;
        font-weight: 800;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        color: #0b1727;
        background: #f8fafc;
        border-left: 3.5pt solid #d97706;
        border-top: 1pt solid #cbd5e1;
        border-right: 1pt solid #cbd5e1;
        border-bottom: 1pt solid #cbd5e1;
        padding: 5pt 10pt;
        margin: 18pt 0 12pt 0;
        break-before: page;
        page-break-before: always;
        break-after: avoid;
        page-break-after: avoid;
    }

    #panel-errori::before {
        content: "SEZIONE VI · CHECKLIST OPERATIVA, ANOMALIE & MATRICE DEI RISCHI FISCALI";
        display: block;
        font-family: 'Montserrat', sans-serif;
        font-size: 8.5pt;
        font-weight: 800;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        color: #0b1727;
        background: #f8fafc;
        border-left: 3.5pt solid #b91c1c;
        border-top: 1pt solid #cbd5e1;
        border-right: 1pt solid #cbd5e1;
        border-bottom: 1pt solid #cbd5e1;
        padding: 5pt 10pt;
        margin: 18pt 0 12pt 0;
        break-before: page;
        page-break-before: always;
        break-after: avoid;
        page-break-after: avoid;
    }

    /* Protezione dei Blocchi da Spezzature a Metà Pagina */
    .ps-card,
    .ps-fw-item,
    .ps-pd-box,
    .ps-case-narrative,
    .ps-reconcile-card,
    .ps-callout-gold,
    .ps-risk-card,
    table,
    tr {
        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }

    .ps-card-header,
    .ps-pd-head,
    .ps-fw-header,
    h2, h3, h4 {
        break-after: avoid !important;
        page-break-after: avoid !important;
    }

    /* Struttura Card & Contenitori */
    .ps-card {
        background: #ffffff !important;
        border: 1pt solid #cbd5e1 !important;
        border-top: 2.5pt solid #0b1727 !important;
        border-radius: 4pt !important;
        padding: 14pt 16pt !important;
        margin-bottom: 14pt !important;
        box-shadow: none !important;
    }

    .ps-card-header {
        border-bottom: 0.5pt solid #e2e8f0 !important;
        padding-bottom: 8pt !important;
        margin-bottom: 10pt !important;
    }

    .ps-card-title {
        font-size: 13pt !important;
        color: #0b1727 !important;
    }

    .ps-card-subtitle {
        font-size: 8pt !important;
        color: #64748b !important;
    }

    /* Tipografia e Giustificazione Testo */
    .prose, .prose p, .ps-panel p, .ps-fw-item p {
        text-align: justify !important;
        text-justify: inter-word !important;
        font-size: 9.5pt !important;
        line-height: 1.55 !important;
        color: #1e293b !important;
        margin-bottom: 8pt !important;
    }

    /* Framework Tripartito in Stampa */
    .ps-fw-item {
        background: #ffffff !important;
        border: 1pt solid #cbd5e1 !important;
        border-left: 3pt solid #1e40af !important;
        border-radius: 3pt !important;
        padding: 10pt 12pt !important;
        margin-bottom: 12pt !important;
        box-shadow: none !important;
    }

    .ps-fw-item-quando { border-left-color: #0284c7 !important; }
    .ps-fw-item-come { border-left-color: #0d9488 !important; }
    .ps-fw-item-ratio { border-left-color: #b45309 !important; }

    /* Tabelle Prima Nota / Libro Giornale in Stampa */
    .ps-pn-box,
    .ps-pd-box {
        background: #ffffff !important;
        border: 1pt solid #0f172a !important;
        border-radius: 2pt !important;
        margin: 12pt 0 !important;
        box-shadow: none !important;
        page-break-inside: avoid !important;
        break-inside: avoid !important;
    }

    .ps-pn-head,
    .ps-pd-head {
        background: #f8fafc !important;
        border-bottom: 1.5pt solid #0f172a !important;
        color: #0f172a !important;
        padding: 5pt 8pt !important;
    }

    .ps-pn-kicker,
    .ps-pd-kicker {
        color: #475569 !important;
        font-size: 6.5pt !important;
        font-weight: 700 !important;
    }

    .ps-pn-title,
    .ps-pd-head-text {
        font-size: 9pt !important;
        font-weight: 800 !important;
        color: #000000 !important;
    }

    .ps-pn-meta-badge,
    .ps-pd-meta-stamp {
        background: #ffffff !important;
        color: #334155 !important;
        font-size: 7pt !important;
        border: 0.5pt solid #cbd5e1 !important;
    }

    .ps-pn-table,
    .ps-pd-table {
        width: 100% !important;
        border-collapse: collapse !important;
    }

    .ps-pn-table th,
    .ps-pd-table th {
        background: #f1f5f9 !important;
        color: #000000 !important;
        font-size: 7pt !important;
        font-weight: 800 !important;
        border-bottom: 1.5pt solid #0f172a !important;
        border-right: 0.5pt solid #cbd5e1 !important;
        padding: 3pt 5pt !important;
    }
    .ps-pn-table th:last-child,
    .ps-pd-table th:last-child {
        border-right: none !important;
    }

    .ps-pn-table td,
    .ps-pd-table td {
        font-size: 7.5pt !important;
        color: #1e293b !important;
        border-bottom: 0.5pt solid #e2e8f0 !important;
        border-right: 0.5pt solid #e2e8f0 !important;
        padding: 3pt 5pt !important;
    }
    .ps-pn-table td:last-child,
    .ps-pd-table td:last-child {
        border-right: none !important;
    }

    .ps-pn-code-tag {
        font-weight: 700 !important;
        color: #000000 !important;
    }

    .ps-pn-total td,
    .ps-pd-total td {
        background: #f8fafc !important;
        font-weight: 800 !important;
        border-top: 1.5pt solid #0f172a !important;
        border-bottom: 3pt double #0f172a !important;
        color: #000000 !important;
    }

    .ps-pn-note,
    .ps-pd-note {
        background: #ffffff !important;
        border-top: 0.5pt solid #cbd5e1 !important;
        color: #475569 !important;
        font-size: 7pt !important;
        padding: 3pt 6pt !important;
    }

    /* Prospetto di Sintesi Riconciliazione in Stampa */
    .ps-reconcile-card {
        background: #ffffff !important;
        border: 1pt solid #997332 !important;
        border-radius: 4pt !important;
        margin: 12pt 0 !important;
        padding: 10pt 12pt !important;
        box-shadow: none !important;
    }

    .ps-reconcile-head {
        border-bottom: 1pt solid #e2e8f0 !important;
        padding-bottom: 4pt !important;
        margin-bottom: 8pt !important;
        color: #997332 !important;
        font-size: 8pt !important;
        font-weight: 800 !important;
    }

    .ps-reconcile-grid {
        display: grid !important;
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 8pt !important;
    }

    .ps-reconcile-col {
        border: 0.5pt solid #e2e8f0 !important;
        padding: 6pt !important;
        background: #f8fafc !important;
    }

    .ps-rec-label {
        font-size: 7pt !important;
        font-weight: 800 !important;
        color: #0b1727 !important;
    }

    .ps-rec-val {
        font-size: 7.5pt !important;
        line-height: 1.35 !important;
    }

    /* Callout & Matrice Rischi */
    .ps-callout-gold {
        background: #fefce8 !important;
        border: 1pt solid #fde047 !important;
        border-left: 3.5pt solid #ca8a04 !important;
        padding: 8pt 10pt !important;
        margin: 10pt 0 !important;
    }

    .ps-risk-card {
        background: #ffffff !important;
        border: 1pt solid #fca5a5 !important;
        border-left: 3.5pt solid #dc2626 !important;
        border-radius: 3pt !important;
        padding: 8pt 10pt !important;
        margin-bottom: 8pt !important;
    }
}


