/* =====================================================================
   NC Luxury Building — tema del gestionale
   Colori e stile dal sito ncluxurybuilding.it: oro #C6A664 su nero/antracite,
   titoli con grazie (Cormorant Garamond, simile a Ivy Mode del sito).
   ===================================================================== */
:root {
    --ncl-oro: #c6a664;
    --ncl-oro-chiaro: #e3cc96;
    --ncl-oro-scuro: #9c7d3f;
    --ncl-nero: #0f0f11;
    --ncl-antracite: #1e1e22;
    --ncl-avorio: #f7f4ee;
    --ncl-serif: 'Cormorant Garamond', 'Times New Roman', serif;
    --ncl-ease: cubic-bezier(.2, .8, .2, 1);
    --ncl-ombra: 0 1px 2px rgba(30, 30, 34, .04), 0 10px 30px -14px rgba(30, 30, 34, .18);
    --ncl-ombra-su: 0 2px 4px rgba(30, 30, 34, .05), 0 22px 40px -18px rgba(156, 125, 63, .45);
}

/* ---------- Fondo e tipografia ---------- */
html:not(.dark) .fi-body { background: var(--ncl-avorio) !important; }
.dark .fi-body {
    background:
        radial-gradient(1200px 500px at 85% -10%, rgba(198, 166, 100, .10), transparent 60%),
        radial-gradient(900px 400px at -10% 110%, rgba(198, 166, 100, .06), transparent 60%),
        #0b0b0d !important;
}
.fi-header-heading, .fi-simple-header-heading, .fi-section-header-heading, .fi-modal-heading,
.fi-wi-stats-overview-stat-value, .ncl-scheda__valore, .ncl-serif {
    font-family: var(--ncl-serif) !important;
    letter-spacing: -.01em;
    font-variant-numeric: lining-nums tabular-nums; font-feature-settings: "lnum" 1, "tnum" 1;
}
.fi-header-heading { font-size: 2.35rem !important; line-height: 1.1 !important; font-weight: 600 !important; }
.fi-header-heading::after {
    content: ''; display: block; width: 64px; height: 2px; margin-top: .6rem; border-radius: 2px;
    background: linear-gradient(90deg, var(--ncl-oro), transparent);
    animation: ncl-linea .9s var(--ncl-ease) both .15s;
}
.fi-header-subheading { letter-spacing: .02em; }
.fi-section-header-heading { font-size: 1.3rem !important; font-weight: 600 !important; }
.fi-wi-stats-overview-stat-value { font-size: 2.1rem !important; font-weight: 600 !important; }
.fi-breadcrumbs a, .fi-breadcrumbs span { letter-spacing: .03em; }

/* ---------- Menu laterale: sempre scuro, come il sito ---------- */
.fi-sidebar {
    background: linear-gradient(180deg, #151518 0%, #0d0d0f 100%) !important;
    border-right: 1px solid rgba(198, 166, 100, .14);
}
.fi-sidebar-header {
    background: transparent !important; box-shadow: none !important;
    border-bottom: 1px solid rgba(198, 166, 100, .12) !important;
}
.fi-sidebar .ncl-logo, .fi-sidebar-header .ncl-logo { color: #f3ecdd; }
.fi-sidebar-nav { scrollbar-color: rgba(198, 166, 100, .35) transparent; }
.fi-sidebar-group-label { color: rgba(214, 190, 138, .8) !important; text-transform: uppercase; letter-spacing: .16em; font-size: .68rem !important; }
.fi-sidebar-group-icon, .fi-sidebar-group-collapse-button { color: rgba(214, 190, 138, .6) !important; }
.fi-sidebar-item-button { position: relative; transition: background .25s var(--ncl-ease), transform .25s var(--ncl-ease) !important; }
.fi-sidebar-item-label { color: #d9d2c3 !important; transition: color .2s; }
.fi-sidebar-item-icon { color: #8f8677 !important; transition: color .2s, transform .3s var(--ncl-ease); }
.fi-sidebar-item-button:hover { background: rgba(198, 166, 100, .09) !important; }
.fi-sidebar-item-button:hover .fi-sidebar-item-label { color: #fff !important; }
.fi-sidebar-item-button:hover .fi-sidebar-item-icon { color: var(--ncl-oro-chiaro) !important; transform: scale(1.08); }
.fi-sidebar-item-active .fi-sidebar-item-button {
    background: linear-gradient(90deg, rgba(198, 166, 100, .24), rgba(198, 166, 100, .03)) !important;
}
.fi-sidebar-item-active .fi-sidebar-item-label { color: var(--ncl-oro-chiaro) !important; font-weight: 600; }
.fi-sidebar-item-active .fi-sidebar-item-icon { color: var(--ncl-oro) !important; }
.fi-sidebar-item-active .fi-sidebar-item-button::before {
    content: ''; position: absolute; left: -.55rem; top: 18%; bottom: 18%; width: 3px; border-radius: 3px;
    background: var(--ncl-oro); box-shadow: 0 0 14px 1px rgba(198, 166, 100, .8);
    animation: ncl-indicatore .45s var(--ncl-ease) both;
}
.fi-sidebar-item-grouped-border > * { background-color: rgba(198, 166, 100, .25) !important; }
.ncl-sidebar-piede {
    display: flex; flex-direction: column; gap: .1rem; padding: 1rem 1.5rem 1.25rem;
    border-top: 1px solid rgba(198, 166, 100, .12);
    font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; color: rgba(214, 190, 138, .55);
}

/* ---------- Barra in alto: vetro ---------- */
.fi-topbar > nav {
    background: rgba(247, 244, 238, .72) !important;
    -webkit-backdrop-filter: saturate(160%) blur(14px); backdrop-filter: saturate(160%) blur(14px);
    box-shadow: 0 1px 0 rgba(30, 30, 34, .06) !important;
}
.dark .fi-topbar > nav { background: rgba(13, 13, 15, .72) !important; box-shadow: 0 1px 0 rgba(198, 166, 100, .12) !important; }
.fi-topbar .ncl-logo { color: var(--ncl-antracite); }
.dark .fi-topbar .ncl-logo { color: #f3ecdd; }
.ncl-logo { display: block; height: 100%; width: auto; overflow: visible; }

/* ---------- Riquadri, sezioni, tabelle ---------- */
.fi-section, .fi-ta-ctn, .fi-wi-stats-overview-stat, .ncl-scheda, .fi-fo-tabs, .fi-in-tabs {
    border-radius: 1rem !important;
}
html:not(.dark) .fi-section, html:not(.dark) .fi-ta-ctn, html:not(.dark) .fi-wi-stats-overview-stat, html:not(.dark) .ncl-scheda {
    box-shadow: var(--ncl-ombra) !important;
}
.dark .fi-section, .dark .fi-ta-ctn, .dark .fi-wi-stats-overview-stat, .dark .ncl-scheda {
    background: linear-gradient(180deg, #17171a, #131316) !important;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, .06), 0 20px 40px -24px rgba(0, 0, 0, .8) !important;
}
.fi-wi-stats-overview-stat, .ncl-scheda {
    position: relative; overflow: hidden;
    transition: transform .4s var(--ncl-ease), box-shadow .4s var(--ncl-ease) !important;
}
.fi-wi-stats-overview-stat::before, .ncl-scheda::before {
    content: ''; position: absolute; inset: 0 0 auto 0; height: 3px;
    background: linear-gradient(90deg, var(--ncl-oro-scuro), var(--ncl-oro-chiaro), var(--ncl-oro-scuro));
    transform: scaleX(0); transform-origin: left; transition: transform .5s var(--ncl-ease);
}
.fi-wi-stats-overview-stat:hover, .ncl-scheda:hover { transform: translateY(-4px); box-shadow: var(--ncl-ombra-su) !important; }
.fi-wi-stats-overview-stat:hover::before, .ncl-scheda:hover::before { transform: scaleX(1); }
.fi-ta-header-cell { text-transform: uppercase; letter-spacing: .08em; font-size: .7rem !important; }
.fi-ta-row { transition: background-color .2s ease; }
html:not(.dark) .fi-ta-row:hover { background-color: rgba(198, 166, 100, .07) !important; }
.dark .fi-ta-row:hover { background-color: rgba(198, 166, 100, .06) !important; }
.fi-badge { border-radius: 999px !important; }

/* ---------- Pulsanti ---------- */
.fi-btn.fi-color-primary:not(.fi-btn-outlined) {
    position: relative; overflow: hidden;
    background: linear-gradient(135deg, #dcc38d 0%, #c6a664 45%, #a8874a 100%) !important;
    box-shadow: 0 8px 20px -10px rgba(156, 125, 63, .9) !important;
    transition: transform .25s var(--ncl-ease), box-shadow .25s var(--ncl-ease) !important;
}
.fi-btn.fi-color-primary:not(.fi-btn-outlined), .fi-btn.fi-color-primary:not(.fi-btn-outlined) .fi-btn-label, .fi-btn.fi-color-primary:not(.fi-btn-outlined) .fi-btn-icon { color: #1d160a !important; }
.fi-btn.fi-color-primary:not(.fi-btn-outlined)::after {
    content: ''; position: absolute; top: 0; bottom: 0; left: -60%; width: 40%;
    background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .55), transparent);
    transform: skewX(-20deg); transition: left .7s var(--ncl-ease);
}
.fi-btn.fi-color-primary:not(.fi-btn-outlined):hover { transform: translateY(-1px); box-shadow: 0 12px 26px -10px rgba(156, 125, 63, 1) !important; }
.fi-btn.fi-color-primary:not(.fi-btn-outlined):hover::after { left: 130%; }
.fi-btn { border-radius: .7rem !important; }

/* ---------- Schede (tabs), campi, finestre ---------- */
.fi-tabs { border-radius: 999px !important; }
.fi-tabs-item { border-radius: 999px !important; transition: background .25s, color .25s; }
.fi-tabs-item-active {
    background: linear-gradient(135deg, #dcc38d, #c6a664) !important;
    box-shadow: 0 6px 16px -8px rgba(156, 125, 63, .9);
}
.fi-tabs-item-active .fi-tabs-item-label, .fi-tabs-item-active .fi-tabs-item-icon { color: #1d160a !important; }
.fi-input-wrp { transition: box-shadow .2s ease !important; }
.fi-input-wrp:focus-within { box-shadow: 0 0 0 3px rgba(198, 166, 100, .28) !important; }
.fi-modal-window { border-radius: 1.25rem !important; animation: ncl-modale .35s var(--ncl-ease) backwards; }
.fi-modal-close-overlay { -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px); }
.fi-dropdown-panel { border-radius: .9rem !important; animation: ncl-entra .25s var(--ncl-ease) backwards; }
.fi-no-notification { border-radius: 1rem !important; }

/* ---------- Comparsa animata degli elementi della pagina ---------- */
.fi-header, .fi-section, .fi-ta-ctn, .fi-wi-widget, .ncl-scheda, .ncl-fase, .fi-wi-stats-overview-stat, .fi-tabs, .ncl-benvenuto {
    animation: ncl-entra .7s var(--ncl-ease) backwards;
}
.fi-page .fi-section:nth-of-type(2), .fi-wi-widget:nth-child(2), .ncl-scheda:nth-child(2), .fi-wi-stats-overview-stat:nth-child(2) { animation-delay: .06s; }
.fi-page .fi-section:nth-of-type(3), .fi-wi-widget:nth-child(3), .ncl-scheda:nth-child(3), .fi-wi-stats-overview-stat:nth-child(3) { animation-delay: .12s; }
.fi-page .fi-section:nth-of-type(4), .fi-wi-widget:nth-child(4), .ncl-scheda:nth-child(4), .fi-wi-stats-overview-stat:nth-child(4) { animation-delay: .18s; }
.fi-wi-widget:nth-child(5), .ncl-scheda:nth-child(5) { animation-delay: .24s; }
.fi-wi-widget:nth-child(6), .ncl-scheda:nth-child(6) { animation-delay: .3s; }
.fi-wi-widget:nth-child(n+7), .ncl-scheda:nth-child(n+7) { animation-delay: .36s; }

@keyframes ncl-entra { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes ncl-modale { from { opacity: 0; transform: translateY(10px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes ncl-linea { from { width: 0; opacity: 0; } to { width: 64px; opacity: 1; } }
@keyframes ncl-indicatore { from { transform: scaleY(0); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes ncl-cresci { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes ncl-kenburns { from { transform: scale(1.04) translate(0, 0); } to { transform: scale(1.14) translate(-1.5%, -1%); } }
@keyframes ncl-luccichio { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } }
@keyframes ncl-respiro { 0%, 100% { opacity: .55; } 50% { opacity: 1; } }

/* ---------- Scrollbar sottili ---------- */
* { scrollbar-width: thin; scrollbar-color: rgba(198, 166, 100, .45) transparent; }
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-thumb { background: rgba(198, 166, 100, .45); border-radius: 8px; }
::-webkit-scrollbar-track { background: transparent; }
::selection { background: rgba(198, 166, 100, .35); }

/* ---------- Pagina di accesso: render delle Ville Ogliastro Cilento ---------- */
.ncl-accesso { position: fixed; inset: 0 44% 0 0; overflow: hidden; z-index: -1; background: #0b0b0d; }
.ncl-accesso__foto {
    position: absolute; inset: -4%; background-size: cover; background-position: center 60%;
    animation: ncl-kenburns 28s ease-in-out infinite alternate;
}
.ncl-accesso__velo {
    position: absolute; inset: 0;
    background:
        linear-gradient(180deg, rgba(11, 11, 13, .15) 0%, rgba(11, 11, 13, .05) 40%, rgba(11, 11, 13, .88) 100%),
        linear-gradient(90deg, rgba(11, 11, 13, .55), transparent 55%);
}
.ncl-accesso__testo { position: absolute; left: 3.5rem; right: 3.5rem; bottom: 3.25rem; color: #f3ecdd; animation: ncl-entra 1s var(--ncl-ease) backwards .2s; }
.ncl-accesso__logo { height: 3.6rem; margin-bottom: 2rem; }
.ncl-accesso__logo .ncl-logo { color: #f3ecdd; }
.ncl-accesso__titolo { font-family: var(--ncl-serif); font-size: clamp(2.2rem, 3.4vw, 3.6rem); line-height: 1.05; font-weight: 500; }
.ncl-accesso__titolo em { color: var(--ncl-oro-chiaro); font-style: italic; }
.ncl-accesso__sotto { margin-top: 1rem; font-size: .72rem; letter-spacing: .22em; text-transform: uppercase; color: rgba(227, 204, 150, .85); }
.fi-simple-layout:has(.ncl-accesso) .fi-simple-main-ctn {
    position: relative; z-index: 1; margin-left: 56%; width: 44%; min-height: 100vh;
    display: flex; align-items: center; justify-content: center;
}
html:not(.dark) .fi-simple-layout:has(.ncl-accesso) { background: var(--ncl-avorio); }
.fi-simple-layout:has(.ncl-accesso) .fi-simple-main {
    background: transparent !important; box-shadow: none !important; --tw-ring-shadow: 0 0 #0000 !important;
    max-width: 25rem !important; animation: ncl-entra .8s var(--ncl-ease) backwards .1s;
}
.fi-simple-layout:has(.ncl-accesso) .fi-simple-header .fi-logo { display: none; }
.fi-simple-layout:has(.ncl-accesso) .fi-simple-header-heading { font-size: 2.4rem !important; font-weight: 600 !important; }
@media (max-width: 1023px) {
    .ncl-accesso { inset: 0; }
    .ncl-accesso__testo { left: 1.5rem; right: 1.5rem; top: 2rem; bottom: auto; }
    .ncl-accesso__titolo, .ncl-accesso__sotto { display: none; }
    .ncl-accesso__logo { height: 2.8rem; margin: 0; }
    .ncl-accesso__velo { background: linear-gradient(180deg, rgba(11, 11, 13, .55), rgba(11, 11, 13, .9)); }
    .fi-simple-layout:has(.ncl-accesso) .fi-simple-main-ctn { margin-left: 0; width: 100%; padding: 6rem 1rem 2rem; }
    .fi-simple-layout:has(.ncl-accesso) .fi-simple-main {
        background: rgba(247, 244, 238, .97) !important; border-radius: 1.25rem; box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .6) !important; padding: 2rem 1.5rem !important;
    }
    .dark .fi-simple-layout:has(.ncl-accesso) .fi-simple-main { background: rgba(19, 19, 22, .92) !important; }
}

/* ---------- Dashboard: benvenuto ---------- */
.ncl-benvenuto {
    position: relative; overflow: hidden; border-radius: 1.5rem; min-height: 15rem; color: #f3ecdd;
    background: #0b0b0d; box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .55);
}
.ncl-benvenuto__foto {
    position: absolute; inset: -6%; background-size: cover; background-position: center 62%;
    transition: transform .9s var(--ncl-ease); will-change: transform;
}
.ncl-benvenuto__velo {
    position: absolute; inset: 0;
    background: linear-gradient(100deg, rgba(11, 11, 13, .94) 0%, rgba(11, 11, 13, .72) 45%, rgba(11, 11, 13, .15) 100%);
}
.ncl-benvenuto__contenuto { position: relative; padding: 2.25rem 2.5rem; display: flex; flex-direction: column; gap: 1.1rem; max-width: 46rem; }
.ncl-benvenuto__data { font-size: .72rem; letter-spacing: .22em; text-transform: uppercase; color: var(--ncl-oro-chiaro); }
.ncl-benvenuto__saluto { font-family: var(--ncl-serif); font-size: clamp(2rem, 3.2vw, 3.1rem); line-height: 1.05; font-weight: 500; }
.ncl-benvenuto__saluto em {
    font-style: italic;
    background: linear-gradient(90deg, #c6a664, #f1dfb2, #c6a664); background-size: 200% 100%;
    -webkit-background-clip: text; background-clip: text; color: transparent;
    animation: ncl-luccichio 6s linear infinite;
}
.ncl-benvenuto__frase { font-size: .95rem; color: rgba(243, 236, 221, .82); line-height: 1.6; }
.ncl-benvenuto__frase strong { color: #fff; }
.ncl-benvenuto__azioni { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: .25rem; }
.ncl-azione {
    display: inline-flex; align-items: center; gap: .45rem; padding: .55rem 1rem; border-radius: 999px;
    font-size: .82rem; font-weight: 600; color: #f3ecdd; text-decoration: none;
    background: rgba(255, 255, 255, .08); box-shadow: inset 0 0 0 1px rgba(227, 204, 150, .35);
    -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
    transition: background .25s, transform .25s var(--ncl-ease), box-shadow .25s;
}
.ncl-azione svg { width: 1rem; height: 1rem; color: var(--ncl-oro-chiaro); }
.ncl-azione:hover { background: rgba(198, 166, 100, .28); transform: translateY(-2px); box-shadow: inset 0 0 0 1px rgba(227, 204, 150, .7); }
.ncl-azione--principale { background: linear-gradient(135deg, #dcc38d, #c6a664); color: #1d160a; box-shadow: none; }
.ncl-azione--principale svg { color: #1d160a; }
.ncl-azione--principale:hover { background: linear-gradient(135deg, #e6d09f, #cfb071); }
.ncl-punto { display: inline-block; width: .5rem; height: .5rem; border-radius: 999px; background: var(--ncl-oro); margin-right: .4rem; animation: ncl-respiro 2.4s ease-in-out infinite; }
@media (max-width: 640px) { .ncl-benvenuto__contenuto { padding: 1.6rem 1.4rem; } }

/* ---------- Grafici: barre che crescono ---------- */
.ncl-gantt__barra, .ncl-barra__pieno { transform-origin: left center; animation: ncl-cresci 1s var(--ncl-ease) both .2s; }

/* ---------- Meno animazioni se richiesto dal sistema ---------- */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* =====================================================================
   Viste personalizzate (progetti, budget, cronoprogramma, confronto)
   ===================================================================== */
/* Stili delle viste personalizzate del gestionale (in aggiunta a Filament). */
.ncl-fasi { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.ncl-fase { display: flex; align-items: center; gap: .5rem; padding: .5rem .75rem; border-radius: .5rem; font-size: .875rem; font-weight: 500;
    background: #fff; color: rgb(var(--gray-400)); box-shadow: 0 0 0 1px rgb(var(--gray-200)); }
.ncl-fase svg { width: 1.25rem; height: 1.25rem; }
.ncl-fase--fatta { color: rgb(var(--gray-700)); }
.ncl-fase--fatta svg { color: rgb(var(--success-600)); }
.ncl-fase--attuale { background: rgba(var(--primary-500), .1); color: rgb(var(--primary-700)); box-shadow: 0 0 0 1px rgb(var(--primary-600)); }
.ncl-freccia { width: 1rem; height: 1rem; color: rgb(var(--gray-400)); }

.ncl-schede { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
.ncl-scheda { background: #fff; border-radius: .75rem; padding: 1rem; box-shadow: 0 1px 2px rgba(0,0,0,.05), 0 0 0 1px rgba(3,7,18,.05); }
.ncl-scheda__titolo { font-size: .875rem; font-weight: 500; color: rgb(var(--gray-500)); }
.ncl-scheda__valore { margin-top: .25rem; font-size: 1.5rem; line-height: 2rem; font-weight: 600; letter-spacing: -.02em; color: rgb(var(--gray-950)); font-variant-numeric: tabular-nums; }
.ncl-scheda__valore--negativo { color: rgb(var(--danger-600)); }
.ncl-scheda__nota { margin-top: .25rem; font-size: .75rem; color: rgb(var(--gray-500)); }

.ncl-tabella-wrap { overflow-x: auto; }
.ncl-tabella { width: 100%; font-size: .875rem; border-collapse: collapse; }
.ncl-tabella th { text-align: left; font-weight: 500; color: rgb(var(--gray-500)); padding: .5rem 1rem .5rem 0; white-space: nowrap; }
.ncl-tabella td { padding: .5rem 1rem .5rem 0; border-top: 1px solid rgb(var(--gray-100)); color: rgb(var(--gray-950)); }
.ncl-num { text-align: right !important; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ncl-rosso { color: rgb(var(--danger-600)) !important; }
.ncl-grigio { color: rgb(var(--gray-500)) !important; }
.ncl-barra { display: flex; align-items: center; gap: .5rem; min-width: 160px; }
.ncl-barra__fondo { flex: 1; height: .5rem; border-radius: 9999px; background: rgb(var(--gray-100)); overflow: hidden; }
.ncl-barra__pieno { height: 100%; border-radius: 9999px; }
.ncl-barra__testo { min-width: 3rem; text-align: right; font-size: .75rem; color: rgb(var(--gray-500)); font-variant-numeric: tabular-nums; }
.ncl-vuoto { font-size: .875rem; color: rgb(var(--gray-500)); }

.ncl-gantt { overflow-x: auto; }
.ncl-gantt__interno { min-width: 760px; }
.ncl-gantt__riga { display: flex; align-items: center; border-top: 1px solid rgb(var(--gray-100)); padding: .25rem 0; font-size: .875rem; }
.ncl-gantt__riga--testata { border-top: 0; font-size: .75rem; color: rgb(var(--gray-500)); }
.ncl-gantt__nome { flex: 0 0 260px; width: 260px; padding-right: .75rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: rgb(var(--gray-700)); }
.ncl-gantt__area { position: relative; flex: 1; height: 1.25rem; }
.ncl-gantt__mese { position: absolute; top: 0; white-space: nowrap; }
.ncl-gantt__barra { position: absolute; top: 3px; height: 14px; border-radius: .25rem; overflow: hidden; }
.ncl-gantt__oggi { position: absolute; top: -4px; bottom: -4px; width: 2px; background: rgb(var(--danger-500)); opacity: .6; }
.ncl-legenda { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: .75rem; font-size: .75rem; color: rgb(var(--gray-500)); }
.ncl-legenda span { display: inline-flex; align-items: center; gap: .25rem; }
.ncl-legenda i { display: inline-block; width: .75rem; height: .75rem; border-radius: .2rem; }

.dark .ncl-fase { background: rgba(255,255,255,.05); color: rgb(var(--gray-500)); box-shadow: 0 0 0 1px rgba(255,255,255,.1); }
.dark .ncl-fase--fatta { color: rgb(var(--gray-300)); }
.dark .ncl-fase--attuale { background: rgba(var(--primary-400), .1); color: rgb(var(--primary-400)); box-shadow: 0 0 0 1px rgb(var(--primary-400)); }
.dark .ncl-scheda { background: rgb(var(--gray-900)); box-shadow: 0 0 0 1px rgba(255,255,255,.1); }
.dark .ncl-scheda__valore { color: #fff; }
.dark .ncl-scheda__titolo, .dark .ncl-scheda__nota, .dark .ncl-tabella th, .dark .ncl-vuoto, .dark .ncl-legenda, .dark .ncl-barra__testo, .dark .ncl-gantt__riga--testata { color: rgb(var(--gray-400)); }
.dark .ncl-tabella td { color: #fff; border-top-color: rgba(255,255,255,.05); }
.dark .ncl-gantt__riga { border-top-color: rgba(255,255,255,.05); }
.dark .ncl-gantt__nome { color: rgb(var(--gray-300)); }
.dark .ncl-barra__fondo { background: rgba(255,255,255,.1); }

@media (max-width: 640px) {
    .ncl-gantt__interno { min-width: 560px; }
    .ncl-gantt__nome { flex-basis: 150px; width: 150px; font-size: .8rem; }
}

/* Confronto preventivi */
.ncl-riquadro { border-radius: .75rem; padding: .75rem 1rem; margin-bottom: 1rem; font-size: .875rem; background: rgb(var(--gray-50)); box-shadow: 0 0 0 1px rgb(var(--gray-200)); color: rgb(var(--gray-700)); }
.ncl-riquadro--ok { background: rgba(var(--success-500), .08); box-shadow: 0 0 0 1px rgba(var(--success-600), .35); }
.ncl-riquadro__titolo { font-weight: 600; color: rgb(var(--gray-950)); margin-bottom: .25rem; }
.ncl-elenco { list-style: disc; padding-left: 1.25rem; }
.ncl-elenco li { margin: .15rem 0; }
.ncl-confronto th, .ncl-confronto td { vertical-align: top; }
.ncl-confronto td.ncl-migliore { background: rgba(var(--success-500), .12); }
.ncl-confronto__riepilogo td { border-top: 1px solid rgb(var(--gray-200)); }
.ncl-confronto__riepilogo tr:first-child td { border-top: 2px solid rgb(var(--gray-300)); }
.ncl-condizione { font-size: .8rem; color: rgb(var(--gray-700)); min-width: 140px; max-width: 260px; }
.ncl-mancante { color: rgb(var(--danger-600)); font-size: .8rem; }
.ncl-etichetta { display: inline-block; margin-top: .2rem; padding: 0 .4rem; border-radius: .3rem; font-size: .7rem; background: rgba(var(--primary-500), .15); color: rgb(var(--primary-700)); }
.dark .ncl-riquadro { background: rgba(255,255,255,.04); box-shadow: 0 0 0 1px rgba(255,255,255,.1); color: rgb(var(--gray-300)); }
.dark .ncl-riquadro__titolo { color: #fff; }
.dark .ncl-condizione { color: rgb(var(--gray-300)); }
.dark .ncl-confronto__riepilogo td { border-top-color: rgba(255,255,255,.1); }

/* ---------- Documenti: cosa manca ---------- */
.ncl-doc-mancanti { display: grid; gap: .6rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 22rem), 1fr)); }
.ncl-doc-mancante {
    display: flex; align-items: center; gap: .85rem; padding: .75rem .9rem; border-radius: .9rem;
    border: 1px solid rgba(198, 166, 100, .22); background: rgba(198, 166, 100, .05);
    transition: transform .25s var(--ncl-ease), border-color .25s, box-shadow .25s;
}
.ncl-doc-mancante:hover { transform: translateY(-2px); border-color: rgba(198, 166, 100, .55); box-shadow: 0 10px 24px -14px rgba(156, 125, 63, .5); }
.ncl-doc-mancante__icona { width: 1.6rem; height: 1.6rem; flex: none; color: var(--ncl-oro); }
.ncl-doc-mancante__testo { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.3; }
.ncl-doc-mancante__testo strong { font-size: .9rem; }
.ncl-doc-mancante__testo span { font-size: .8rem; opacity: .8; }
.ncl-doc-mancante__testo small { font-size: .72rem; opacity: .6; }
[x-cloak] { display: none !important; }

/* ---------- Pipeline vendite ---------- */
.ncl-pipeline-filtri { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.ncl-pipeline-cerca { min-width: 16rem; flex: 1; max-width: 22rem; }
.ncl-pipeline-spunta { display: inline-flex; gap: .45rem; align-items: center; font-size: .85rem; cursor: pointer; }
.ncl-pipeline {
    display: grid; grid-auto-flow: column; grid-auto-columns: minmax(16.5rem, 1fr); gap: 1rem;
    overflow-x: auto; padding: .25rem .25rem 1rem; scroll-snap-type: x proximity; align-items: start;
}
.ncl-colonna {
    scroll-snap-align: start; border-radius: 1.1rem; padding: .85rem .7rem .7rem; min-height: 14rem;
    background: rgba(255, 255, 255, .55); border: 1px solid rgba(198, 166, 100, .16);
    transition: background .2s, border-color .2s, transform .2s var(--ncl-ease);
}
.dark .ncl-colonna { background: rgba(255, 255, 255, .03); border-color: rgba(198, 166, 100, .12); }
.ncl-colonna--sopra { background: rgba(198, 166, 100, .14) !important; border-color: var(--ncl-oro) !important; transform: scale(1.01); }
.ncl-colonna__testa { display: flex; align-items: center; gap: .5rem; padding: 0 .3rem .35rem; }
.ncl-colonna__icona { width: 1.15rem; height: 1.15rem; color: var(--ncl-oro); }
.ncl-colonna--danger .ncl-colonna__icona { color: rgb(var(--danger-500)); }
.ncl-colonna--success .ncl-colonna__icona { color: rgb(var(--success-500)); }
.ncl-colonna__titolo { font-family: var(--ncl-serif); font-size: 1.12rem; font-weight: 600; flex: 1; }
.ncl-colonna__conta { font-size: .72rem; font-weight: 700; min-width: 1.6rem; text-align: center; padding: .1rem .45rem; border-radius: 999px; background: rgba(198, 166, 100, .18); color: var(--ncl-oro-scuro); }
.dark .ncl-colonna__conta { color: var(--ncl-oro-chiaro); }
.ncl-colonna__totale { font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; opacity: .6; padding: 0 .3rem .5rem; }
.ncl-colonna__schede { display: flex; flex-direction: column; gap: .6rem; }
.ncl-colonna__vuota { font-size: .8rem; opacity: .45; text-align: center; padding: 1.5rem 0; border: 1px dashed rgba(198, 166, 100, .3); border-radius: .9rem; }
.ncl-card {
    background: #fff; border-radius: .95rem; padding: .75rem .8rem .6rem; cursor: grab;
    box-shadow: 0 1px 2px rgba(15, 15, 17, .06), 0 6px 16px -10px rgba(15, 15, 17, .25);
    border: 1px solid rgba(15, 15, 17, .05);
    transition: transform .2s var(--ncl-ease), box-shadow .2s, opacity .2s;
    animation: ncl-entra .45s var(--ncl-ease) backwards;
}
.dark .ncl-card { background: #18181b; border-color: rgba(255, 255, 255, .06); }
.ncl-card:hover { transform: translateY(-2px); box-shadow: 0 14px 28px -16px rgba(156, 125, 63, .55); }
.ncl-card--presa { opacity: .45; transform: rotate(-2deg) scale(.98); }
.ncl-card__nome { display: flex; align-items: center; gap: .55rem; font-weight: 600; font-size: .92rem; }
.ncl-card__nome:hover span:last-child { color: var(--ncl-oro-scuro); }
.ncl-card__avatar {
    flex: none; width: 2rem; height: 2rem; border-radius: 999px; display: grid; place-items: center;
    font-size: .7rem; font-weight: 700; letter-spacing: .04em; color: #1b1407;
    background: linear-gradient(135deg, var(--ncl-oro-chiaro), var(--ncl-oro-scuro));
}
.ncl-card__riga { display: flex; align-items: center; gap: .3rem; margin-top: .45rem; font-size: .78rem; opacity: .8; }
.ncl-card__budget { margin-left: auto; font-weight: 600; }
.ncl-card__mini { width: .9rem; height: .9rem; flex: none; }
.ncl-card__azione { display: flex; gap: .3rem; align-items: center; margin-top: .4rem; font-size: .76rem; padding: .3rem .45rem; border-radius: .55rem; background: rgba(198, 166, 100, .1); }
.ncl-card__azione--ritardo { background: rgba(var(--danger-500), .1); color: rgb(var(--danger-600)); }
.ncl-card__piede { display: flex; align-items: center; margin-top: .55rem; gap: .4rem; }
.ncl-card__chi { font-size: .7rem; opacity: .55; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ncl-card__tasti { display: flex; gap: .15rem; }
.ncl-card__tasto { display: grid; place-items: center; width: 1.85rem; height: 1.85rem; border-radius: .55rem; color: rgb(var(--gray-500)); transition: background .15s, color .15s; }
.ncl-card__tasto svg { width: 1rem; height: 1rem; }
.ncl-card__tasto:hover { background: rgba(198, 166, 100, .15); color: var(--ncl-oro-scuro); }
@media (max-width: 640px) { .ncl-pipeline { grid-auto-columns: 85%; } }

/* ---------- Diario di cantiere: galleria e lightbox ---------- */
.ncl-galleria__griglia { display: grid; gap: .6rem; grid-template-columns: repeat(auto-fill, minmax(min(46%, 11rem), 1fr)); }
.ncl-galleria__foto { margin: 0; border-radius: .85rem; overflow: hidden; background: rgba(198, 166, 100, .08); position: relative; animation: ncl-entra .5s var(--ncl-ease) backwards; }
.ncl-galleria__apri { display: block; width: 100%; aspect-ratio: 4 / 3; overflow: hidden; cursor: zoom-in; }
.ncl-galleria__apri img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ncl-ease), filter .3s; }
.ncl-galleria__foto:hover img { transform: scale(1.06); filter: saturate(1.1); }
.ncl-galleria__foto figcaption { display: flex; align-items: center; gap: .3rem; padding: .35rem .55rem; font-size: .72rem; opacity: .85; min-height: 2rem; }
.ncl-galleria__foto figcaption > span:first-child { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ncl-galleria__tasti { display: flex; gap: .15rem; }
.ncl-galleria__tasti button { width: 1.6rem; height: 1.6rem; display: grid; place-items: center; border-radius: .45rem; color: rgb(var(--gray-500)); }
.ncl-galleria__tasti button:hover { background: rgba(198, 166, 100, .15); color: var(--ncl-oro-scuro); }
.ncl-galleria__tasti svg { width: .95rem; height: .95rem; }
.ncl-galleria__vuota { display: flex; flex-direction: column; align-items: center; gap: .5rem; padding: 2rem; font-size: .85rem; opacity: .55; border: 1px dashed rgba(198, 166, 100, .35); border-radius: 1rem; }
.ncl-galleria__vuota-icona { width: 2rem; height: 2rem; color: var(--ncl-oro); }
.ncl-lightbox { position: fixed; inset: 0; z-index: 60; background: rgba(8, 8, 10, .94); display: grid; place-items: center; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.ncl-lightbox__contenuto { display: flex; flex-direction: column; align-items: center; max-width: 94vw; max-height: 92vh; }
.ncl-lightbox__img { max-width: 94vw; max-height: calc(92vh - 4rem); object-fit: contain; border-radius: .6rem; box-shadow: 0 30px 80px -20px rgba(0, 0, 0, .8); animation: ncl-modale .35s var(--ncl-ease) backwards; }
.ncl-lightbox__info { display: flex; align-items: center; gap: 1rem; width: 100%; padding: .8rem .2rem 0; color: #e9e2d2; font-size: .85rem; }
.ncl-lightbox__info > div { flex: 1; display: flex; flex-direction: column; }
.ncl-lightbox__info strong { font-family: var(--ncl-serif); font-size: 1.15rem; font-weight: 600; color: var(--ncl-oro-chiaro); }
.ncl-lightbox__info span { opacity: .7; }
.ncl-lightbox__tasto, .ncl-lightbox__nav, .ncl-lightbox__chiudi { display: grid; place-items: center; border-radius: 999px; color: #f3ecdd; background: rgba(255, 255, 255, .08); transition: background .2s; }
.ncl-lightbox__tasto { width: 2.2rem; height: 2.2rem; }
.ncl-lightbox__tasto svg { width: 1.1rem; height: 1.1rem; }
.ncl-lightbox__nav { position: absolute; top: 50%; translate: 0 -50%; width: 3rem; height: 3rem; }
.ncl-lightbox__nav svg, .ncl-lightbox__chiudi svg { width: 1.5rem; height: 1.5rem; }
.ncl-lightbox__nav--sx { left: 1rem; } .ncl-lightbox__nav--dx { right: 1rem; }
.ncl-lightbox__chiudi { position: absolute; top: 1rem; right: 1rem; width: 2.75rem; height: 2.75rem; }
.ncl-lightbox__tasto:hover, .ncl-lightbox__nav:hover, .ncl-lightbox__chiudi:hover { background: rgba(198, 166, 100, .35); }
@media (max-width: 640px) { .ncl-lightbox__nav { display: none; } }
.ncl-mesi { display: flex; flex-wrap: wrap; gap: .4rem; }
.ncl-mese { padding: .35rem .85rem; border-radius: 999px; font-size: .8rem; border: 1px solid rgba(198, 166, 100, .3); transition: all .2s; }
.ncl-mese:hover { border-color: var(--ncl-oro); }
.ncl-mese--attivo { background: linear-gradient(135deg, var(--ncl-oro-chiaro), var(--ncl-oro-scuro)); color: #1b1407; border-color: transparent; font-weight: 600; }
.ncl-giorno-foto__titolo { font-family: var(--ncl-serif); font-size: 1.3rem; font-weight: 600; margin-bottom: .6rem; }
.ncl-giorno-foto__titolo span { font-family: inherit; font-size: .8rem; opacity: .55; margin-left: .4rem; }

/* ---------- Dashboard: dal cantiere ---------- */
.ncl-dal-cantiere { display: grid; gap: 1.25rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1024px) { .ncl-dal-cantiere { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); } }
.ncl-dal-cantiere__meta { display: flex; flex-wrap: wrap; gap: .5rem; margin: .3rem 0 .7rem; }
.ncl-dal-cantiere__pill { font-size: .75rem; padding: .2rem .65rem; border-radius: 999px; background: rgba(198, 166, 100, .12); }
.ncl-dal-cantiere__testo { font-size: .9rem; line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }

/* ---------- Pulsanti a scelta (es. meteo): solo quello selezionato è dorato ---------- */
input.peer:not(:checked) + .fi-btn.fi-color-primary {
    background: #fff !important; box-shadow: inset 0 0 0 1px rgba(198, 166, 100, .35) !important;
}
.dark input.peer:not(:checked) + .fi-btn.fi-color-primary { background: rgba(255, 255, 255, .04) !important; }
input.peer:not(:checked) + .fi-btn.fi-color-primary,
input.peer:not(:checked) + .fi-btn.fi-color-primary .fi-btn-label,
input.peer:not(:checked) + .fi-btn.fi-color-primary .fi-btn-icon { color: rgb(var(--gray-600)) !important; }
.dark input.peer:not(:checked) + .fi-btn.fi-color-primary .fi-btn-label,
.dark input.peer:not(:checked) + .fi-btn.fi-color-primary .fi-btn-icon { color: rgb(var(--gray-300)) !important; }
input.peer:not(:checked) + .fi-btn.fi-color-primary::after { display: none; }
input.peer:not(:checked) + .fi-btn.fi-color-primary:hover { box-shadow: inset 0 0 0 1px var(--ncl-oro) !important; transform: none; }

/* ---------- Personalizzazioni: configuratore ---------- */
.ncl-conf-riepilogo {
    position: sticky; top: 4.5rem; z-index: 5; display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem;
    padding: 1rem 1.25rem; border-radius: 1.1rem; color: #f3ecdd;
    background: linear-gradient(135deg, #151518, #22201c); box-shadow: 0 18px 40px -22px rgba(0, 0, 0, .7);
    border: 1px solid rgba(198, 166, 100, .25);
}
.ncl-conf-riepilogo__voce { display: flex; flex-direction: column; }
.ncl-conf-riepilogo__voce span { font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; opacity: .65; }
.ncl-conf-riepilogo__voce strong { font-family: var(--ncl-serif); font-size: 1.6rem; font-weight: 600; font-variant-numeric: lining-nums; animation: ncl-entra .4s var(--ncl-ease) backwards; }
.ncl-conf-riepilogo__voce--oro strong { color: var(--ncl-oro-chiaro); }
.ncl-conf-riepilogo__segno { font-size: 1.4rem; opacity: .45; }
.ncl-conf-riepilogo__stato { margin-left: auto; display: flex; flex-direction: column; align-items: flex-end; gap: .35rem; min-width: 12rem; }
.ncl-conf-progresso { width: 100%; height: .4rem; border-radius: 999px; background: rgba(255, 255, 255, .12); overflow: hidden; }
.ncl-conf-progresso__barra { height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--ncl-oro-scuro), var(--ncl-oro-chiaro)); transition: width .6s var(--ncl-ease); }
.ncl-conf-progresso__testo { font-size: .74rem; opacity: .7; }
@media (max-width: 640px) { .ncl-conf-riepilogo { top: 4rem; } .ncl-conf-riepilogo__voce strong { font-size: 1.2rem; } .ncl-conf-riepilogo__stato { margin-left: 0; align-items: flex-start; width: 100%; } }
.ncl-conf-voce { border-radius: 1.1rem; padding: 1.1rem 1.2rem 1.25rem; background: #fff; box-shadow: var(--ncl-ombra, 0 10px 30px -18px rgba(0, 0, 0, .25)); animation: ncl-entra .5s var(--ncl-ease) backwards; }
.dark .ncl-conf-voce { background: rgb(var(--gray-900)); }
.ncl-conf-voce__testa { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1rem; margin-bottom: .9rem; }
.ncl-conf-voce__testa h3 { font-family: var(--ncl-serif); font-size: 1.35rem; font-weight: 600; }
.ncl-conf-voce__testa p { font-size: .82rem; opacity: .65; max-width: 46rem; }
.ncl-conf-opzioni { display: grid; gap: .8rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 13.5rem), 1fr)); }
.ncl-opzione {
    position: relative; display: flex; flex-direction: column; text-align: left; border-radius: .95rem; overflow: hidden;
    border: 1.5px solid rgba(15, 15, 17, .08); background: rgba(247, 244, 238, .6);
    transition: transform .25s var(--ncl-ease), box-shadow .25s, border-color .25s;
}
.dark .ncl-opzione { background: rgba(255, 255, 255, .03); border-color: rgba(255, 255, 255, .08); }
button.ncl-opzione:not(:disabled):hover { transform: translateY(-3px); box-shadow: 0 16px 30px -18px rgba(156, 125, 63, .7); border-color: rgba(198, 166, 100, .6); }
.ncl-opzione--scelta { border-color: var(--ncl-oro) !important; box-shadow: 0 0 0 3px rgba(198, 166, 100, .22), 0 16px 30px -20px rgba(156, 125, 63, .8); }
.ncl-opzione--bloccata { cursor: default; }
.ncl-opzione__immagine { position: relative; display: grid; place-items: center; aspect-ratio: 16 / 10; background: linear-gradient(135deg, rgba(198, 166, 100, .16), rgba(198, 166, 100, .04)); overflow: hidden; }
.ncl-opzione__immagine img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ncl-ease); }
button.ncl-opzione:hover .ncl-opzione__immagine img { transform: scale(1.05); }
.ncl-opzione__segnaposto { width: 2.2rem; height: 2.2rem; color: var(--ncl-oro); opacity: .7; }
.ncl-opzione__spunta { position: absolute; top: .55rem; right: .55rem; width: 1.8rem; height: 1.8rem; border-radius: 999px; display: grid; place-items: center; color: #1b1407; background: linear-gradient(135deg, var(--ncl-oro-chiaro), var(--ncl-oro-scuro)); box-shadow: 0 4px 12px rgba(0, 0, 0, .3); animation: ncl-modale .3s var(--ncl-ease) backwards; }
.ncl-opzione__spunta svg { width: 1.1rem; height: 1.1rem; }
.ncl-opzione__testo { display: flex; flex-direction: column; gap: .15rem; padding: .7rem .8rem .2rem; flex: 1; }
.ncl-opzione__testo strong { font-size: .92rem; }
.ncl-opzione__testo small { font-size: .76rem; opacity: .65; line-height: 1.35; }
.ncl-opzione__prezzo { display: flex; align-items: center; justify-content: space-between; gap: .4rem; padding: .3rem .8rem .75rem; font-weight: 700; font-size: .88rem; color: var(--ncl-oro-scuro); }
.dark .ncl-opzione__prezzo { color: var(--ncl-oro-chiaro); }
.ncl-opzione__togli { width: 1.6rem; height: 1.6rem; display: grid; place-items: center; border-radius: .45rem; color: rgb(var(--gray-500)); }
.ncl-opzione__togli:hover { background: rgba(var(--danger-500), .12); color: rgb(var(--danger-600)); }
.ncl-opzione__togli svg { width: 1rem; height: 1rem; }
.ncl-opzione--nuova { align-items: center; justify-content: center; gap: .4rem; min-height: 10rem; border-style: dashed; border-color: rgba(198, 166, 100, .45); background: transparent; text-align: center; }
.ncl-opzione--nuova .ncl-opzione__testo { align-items: center; flex: 0; padding: 0 .8rem; }

/* ---------- Finanza ---------- */
.ncl-avviso-cassa { display: flex; gap: .8rem; align-items: flex-start; padding: .9rem 1.1rem; border-radius: 1rem; background: rgba(var(--danger-500), .08); border: 1px solid rgba(var(--danger-500), .3); color: rgb(var(--danger-700)); font-size: .9rem; }
.dark .ncl-avviso-cassa { color: rgb(var(--danger-300)); }
.ncl-avviso-cassa__icona { width: 1.5rem; height: 1.5rem; flex: none; }
.ncl-tabella-scorre { overflow-x: auto; }
.ncl-tabella--cassa { min-width: 56rem; font-size: .82rem; }
.ncl-tabella--cassa th { font-size: .66rem; white-space: normal; vertical-align: bottom; }
.ncl-num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ncl-forte { font-weight: 700; }
.ncl-negativo { color: rgb(var(--danger-600)); }
.ncl-riga-passata td { opacity: .6; }
.ncl-riga-corrente td { background: rgba(198, 166, 100, .1); font-weight: 600; }
.ncl-kpi { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 12rem), 1fr)); }
.ncl-due-colonne { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr)); }
.ncl-tabella td small { opacity: .6; }

/* ---------- Terreni: fattibilità e mappa ---------- */
.ncl-fattibilita { display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1024px) { .ncl-fattibilita { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); } }
.ncl-fattibilita__righe { display: grid; grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); gap: .5rem 1.25rem; }
.ncl-fattibilita__righe div { display: flex; justify-content: space-between; gap: .5rem; padding: .35rem 0; border-bottom: 1px dashed rgba(198, 166, 100, .25); font-size: .85rem; }
.ncl-fattibilita__righe span { opacity: .7; }
.ncl-fattibilita__esito { display: grid; gap: .75rem; grid-template-columns: 1fr 1fr; }
.ncl-fattibilita__margine, .ncl-fattibilita__massimo { display: flex; flex-direction: column; gap: .15rem; padding: 1rem; border-radius: 1rem; }
.ncl-fattibilita__margine { background: linear-gradient(135deg, rgba(16, 185, 129, .14), rgba(16, 185, 129, .04)); }
.ncl-fattibilita__margine--no { background: linear-gradient(135deg, rgba(244, 63, 94, .16), rgba(244, 63, 94, .04)); }
.ncl-fattibilita__massimo { background: linear-gradient(135deg, rgba(198, 166, 100, .22), rgba(198, 166, 100, .05)); }
.ncl-fattibilita__esito span { font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; opacity: .7; }
.ncl-fattibilita__esito strong { font-family: var(--ncl-serif); font-size: 1.7rem; font-weight: 600; font-variant-numeric: lining-nums; }
.ncl-fattibilita__esito em { font-style: normal; font-size: .75rem; opacity: .65; }
.ncl-mappa { height: 26rem; border-radius: 1rem; overflow: hidden; background: rgba(198, 166, 100, .08); z-index: 0; }
.ncl-mappa--piccola { height: 16rem; }
.ncl-mappa__vuota { display: grid; place-items: center; height: 100%; font-size: .85rem; opacity: .6; text-align: center; padding: 1rem; }
.ncl-mappa .leaflet-popup-content-wrapper { border-radius: .8rem; }
.ncl-segnaposto { width: 18px; height: 18px; border-radius: 999px; border: 3px solid #fff; box-shadow: 0 3px 10px rgba(0, 0, 0, .35); }
.ncl-galleria__tasti button.ncl-galleria__visibile { color: var(--ncl-oro-scuro); }

/* Richiesta bloccante della direzione */
.ncl-richiesta-banner {
    display: flex;
    gap: .9rem;
    align-items: flex-start;
    padding: 1rem 1.2rem;
    border-radius: 1rem;
    border: 1px solid rgb(245 158 11 / .45);
    background: linear-gradient(135deg, rgb(254 243 199 / .9), rgb(255 251 235 / .9));
    color: #78350f;
    animation: ncl-entra .4s ease both;
}
.dark .ncl-richiesta-banner {
    background: linear-gradient(135deg, rgb(120 53 15 / .35), rgb(69 26 3 / .35));
    color: #fde68a;
}
.ncl-modifiche { font-size: .8rem; line-height: 1.5; }
.ncl-modifiche del { color: rgb(225 29 72); text-decoration: line-through; }
.ncl-modifiche ins { color: rgb(5 150 105); text-decoration: none; font-weight: 600; }

/* Installare l'app sul telefono e attivare le notifiche */
.ncl-app-qr { display: flex; flex-wrap: wrap; gap: 1.5rem; align-items: center; }
.ncl-app-qr > div:last-child { max-width: 26rem; display: grid; gap: .6rem; justify-items: start; }
.ncl-app-codice svg { width: 200px; height: 200px; background: #fff; padding: 8px; border-radius: 14px; box-shadow: 0 8px 24px -14px rgba(0,0,0,.4); }
.ncl-app-titolo { font-size: 1.05rem; font-weight: 600; margin-bottom: .25rem; }
.ncl-app-nota { font-size: .85rem; opacity: .7; }
.ncl-app-passi { display: grid; gap: .9rem; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); margin: .6rem 0 1rem; }
.ncl-app-passo { border: 1px solid rgba(198,166,100,.35); border-radius: 1rem; padding: .9rem; text-align: center; font-size: .9rem; line-height: 1.4; }
.ncl-app-passo > span { display: inline-flex; width: 26px; height: 26px; border-radius: 999px; align-items: center; justify-content: center; background: #0f0f11; color: var(--ncl-oro-chiaro); font-weight: 700; font-size: .8rem; }
.ncl-app-figura { min-height: 92px; display: flex; align-items: center; justify-content: center; margin: .6rem 0 .5rem; color: var(--ncl-oro-scuro); }
.ncl-app-telefono { width: 74px; height: 92px; border: 3px solid #0f0f11; border-radius: 14px; position: relative; background: #f7f4ee; }
.dark .ncl-app-telefono { border-color: #d6be8a; background: #1d1c20; }
.ncl-app-barra { position: absolute; left: 6px; right: 6px; bottom: 6px; height: 22px; border-radius: 6px; background: #fff; display: flex; align-items: center; justify-content: center; }
.ncl-app-puntini { position: absolute; right: 8px; top: 2px; font-size: 1.3rem; font-weight: 700; }
.ncl-app-menu { width: 160px; border-radius: 12px; background: #fff; box-shadow: 0 6px 18px rgba(0,0,0,.15); padding: 6px; text-align: left; font-size: .75rem; color: #6b6458; }
.dark .ncl-app-menu { background: #26242a; color: #b8b0a2; }
.ncl-app-menu div { padding: 5px 7px; border-radius: 7px; }
.ncl-app-menu div.on { background: rgba(198,166,100,.2); color: var(--ncl-oro-scuro); font-weight: 700; }
.dark .ncl-app-menu div.on { color: var(--ncl-oro-chiaro); }
.ncl-app-icona { width: 62px; height: 62px; border-radius: 15px; box-shadow: 0 4px 12px rgba(0,0,0,.25); }
.ncl-app-notifiche { display: grid; justify-items: center; gap: .6rem; text-align: center; max-width: 28rem; margin: 0 auto; color: inherit; }
.ncl-app-notifiche > svg { color: var(--ncl-oro); }
.ncl-app-errore { color: rgb(225 29 72); font-size: .85rem; }
.ncl-app-pulsa { animation: ncl-pulsa 1.6s ease-in-out infinite; }
@keyframes ncl-pulsa { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.12); } }
@media (prefers-reduced-motion: reduce) { .ncl-app-pulsa { animation: none; } }
