.gs-prev-entry-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    margin-bottom: 1.5rem;
}

@media (max-width: 768px) {
    .gs-prev-entry-grid {
        grid-template-columns: 1fr;
    }
}

.gs-prev-entry-card {
    background: var(--gs-card-bg);
    border: 2px solid var(--gs-border);
    border-radius: var(--gs-radius-lg);
    padding: 24px;
    cursor: pointer;
    transition: all 0.2s ease;
    text-align: center;
}

.gs-prev-entry-card:hover:not(.gs-prev-entry-card--disabled) {
    border-color: var(--gs-accent-green);
    transform: translateY(-2px);
    box-shadow: var(--gs-card-shadow-hover);
}

.gs-prev-entry-card--disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.gs-prev-entry-icon {
    font-size: 2rem;
    margin-bottom: 12px;
}

.gs-prev-entry-title {
    font-weight: 700;
    font-size: 15px;
    margin-bottom: 6px;
    color: var(--gs-text-primary, var(--gs-gray-900));
}

.gs-prev-entry-desc {
    color: var(--gs-text-secondary);
    font-size: 11.5px;
    line-height: 1.5;
}

.gs-prev-entry-info {
    background: var(--gs-prev-info-bg);
    border: 1px solid var(--gs-prev-info-border);
    border-radius: var(--gs-card-radius-sm);
    padding: 12px 16px;
    font-size: var(--gs-font-xs);
    line-height: 1.45;
    color: var(--gs-text-primary, var(--gs-gray-800));
}

.gs-prev-entry-badge {
    display: inline-block;
    margin-top: 10px;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 9.5px;
    font-weight: 700;
}

.gs-prev-entry-badge--a {
    background: var(--gs-accent-light);
    color: var(--gs-accent-green);
}

.gs-prev-entry-badge--b {
    background: var(--gs-info-light);
    color: var(--gs-info-dark);
}

.gs-prev-entry-badge--c {
    background: var(--gs-purple-light);
    color: var(--gs-purple-dark);
}

/* CRM-31-LISTA — KPI strip + filtri lista preventivi */
.gs-prev-kpi-strip,
.gs-kpi-strip {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 20px;
}
@media (max-width: 991.98px) {
    .gs-prev-kpi-strip,
    .gs-kpi-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
    .gs-prev-kpi-strip,
    .gs-kpi-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.gs-prev-kpi {
    background: var(--gs-card-bg);
    border: 1px solid var(--gs-border);
    border-radius: var(--gs-card-radius-sm);
    padding: 14px 16px;
    box-shadow: var(--gs-card-shadow);
}
.gs-prev-kpi-val {
    font-size: var(--gs-font-2xl);
    font-weight: 700;
    line-height: 1.1;
    color: var(--gs-text-primary);
}
.gs-prev-kpi-val--totali {
    color: var(--gs-text);
}
.gs-prev-kpi-label {
    font-size: var(--gs-font-xs);
    color: var(--gs-text-secondary);
    margin-top: 4px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.gs-prev-kpi-val--bozza { color: var(--gs-text-secondary); }
.gs-prev-kpi-val--inviato,
.gs-prev-kpi-val--inviati { color: var(--gs-info); }
.gs-prev-kpi-val--accettato,
.gs-prev-kpi-val--accettati { color: var(--gs-success); }
.gs-prev-kpi-val--pipeline { color: var(--gs-accent); }

/* Mockup KPI card: solo dentro .gs-kpi-strip (evita conflitto con .gs-kpi Guardian) */
.gs-kpi-strip > .gs-kpi {
    background: var(--gs-card-bg);
    border: 1px solid var(--gs-border);
    border-radius: var(--gs-card-radius-sm);
    padding: 14px 16px;
    box-shadow: var(--gs-card-shadow);
}
.gs-kpi-strip .gs-kpi-val {
    font-size: var(--gs-font-2xl);
    font-weight: 700;
    line-height: 1.1;
    color: var(--gs-text-primary);
}
.gs-kpi-strip .gs-kpi-label {
    font-size: var(--gs-font-xs);
    color: var(--gs-text-secondary);
    margin-top: 4px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.gs-kpi-strip .gs-kpi-val--bozza { color: var(--gs-text-secondary); }
.gs-kpi-strip .gs-kpi-val--inviato { color: var(--gs-info); }
.gs-kpi-strip .gs-kpi-val--accettato { color: var(--gs-success); }
.gs-kpi-strip .gs-kpi-val--pipeline { color: var(--gs-accent); }

.gs-prev-filter-bar,
.gs-filter-bar {
    background: var(--gs-card-bg);
    border: 1px solid var(--gs-border);
    border-radius: var(--gs-card-radius-sm);
    padding: 12px 16px;
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    box-shadow: var(--gs-card-shadow);
}
.gs-prev-filter-pills,
.gs-filter-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    background: var(--gs-bg);
    border-radius: var(--gs-card-radius-sm);
    padding: 3px;
}
.gs-prev-filter-pill,
.gs-filter-pill {
    padding: 5px 12px;
    font-size: var(--gs-font-xs);
    font-weight: 500;
    border-radius: 6px;
    cursor: pointer;
    color: var(--gs-text-secondary);
    border: none;
    background: transparent;
    white-space: nowrap;
}
.gs-prev-filter-pill.active,
.gs-filter-pill.active {
    background: var(--gs-card-bg);
    color: var(--gs-text-primary);
    font-weight: 600;
    box-shadow: var(--gs-card-shadow);
}
.gs-prev-filter-pill .gs-badge {
    margin-left: 4px;
}
.gs-filter-pill .gs-badge-sm {
    margin-left: 4px;
    font-size: 9px;
    background: var(--gs-accent);
    color: var(--gs-card-bg);
    padding: 1px 5px;
    border-radius: 8px;
    font-weight: 600;
}
.gs-prev-filter-sep,
.gs-filter-sep {
    width: 1px;
    height: 24px;
    background: var(--gs-border);
    flex-shrink: 0;
}
.gs-prev-filter-search,
.gs-filter-search {
    flex: 1;
    min-width: 180px;
    position: relative;
}
.gs-prev-filter-search input,
.gs-filter-search input {
    width: 100%;
    padding: 6px 10px 6px 30px;
    border: 1px solid var(--gs-border);
    border-radius: var(--gs-card-radius-sm);
    font-size: var(--gs-font-sm);
    background: var(--gs-bg);
}
.gs-prev-filter-search input:focus,
.gs-filter-search input:focus {
    outline: none;
    border-color: var(--gs-accent);
    background: var(--gs-card-bg);
}
.gs-prev-filter-search i,
.gs-filter-search i {
    position: absolute;
    left: 9px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--gs-text-secondary);
    font-size: 13px;
    pointer-events: none;
}
.gs-prev-filter-dates {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: flex-end;
}
.gs-prev-filter-dates .form-label {
    margin-bottom: 2px;
}
.gs-prev-filter-dates input[type="date"] {
    min-width: 132px;
}

/* CRM-31-LISTA — tabella preventivi (layout ricco) */
.gs-prev-list-table,
.gs-list-table {
    width: 100%;
    border-collapse: collapse;
}
.gs-prev-list-table th,
.gs-list-table th {
    padding: 10px 12px;
    font-size: var(--gs-font-xs);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--gs-text-secondary);
    font-weight: 600;
    text-align: left;
    border-bottom: 1px solid var(--gs-border);
    background: var(--gs-bg);
}
.gs-prev-list-table td,
.gs-list-table td {
    padding: 10px 12px;
    font-size: var(--gs-font-sm);
    border-bottom: 1px solid var(--gs-border);
    vertical-align: middle;
}
.gs-prev-list-table tr:last-child td,
.gs-list-table tr:last-child td {
    border-bottom: none;
}
.gs-prev-list-table tbody tr:hover td,
.gs-list-table tbody tr:hover td {
    background: var(--gs-gray-50);
}
.gs-prev-list-table tbody tr,
.gs-list-table tbody tr {
    cursor: pointer;
}
a.gs-prev-cell-code {
    font-weight: 600;
    color: var(--gs-accent);
    font-size: var(--gs-font-sm);
    text-decoration: none;
    cursor: pointer;
}
a.gs-prev-cell-code:hover {
    text-decoration: underline;
}
.gs-prev-cell-client,
.gs-cell-client {
    display: flex;
    align-items: center;
    gap: 8px;
}
.gs-prev-cell-ava {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    color: var(--gs-card-bg);
    font-size: var(--gs-font-xs);
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.gs-cell-ava {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--gs-accent);
    color: var(--gs-card-bg);
    font-size: var(--gs-font-xs);
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.gs-prev-ava--0 { background: var(--gs-primary); }
.gs-prev-ava--1 { background: var(--gs-info); }
.gs-prev-ava--2 { background: var(--gs-success); }
.gs-prev-ava--3 { background: var(--gs-amber); }
.gs-prev-ava--4 { background: var(--gs-negoziazione); }
.gs-prev-ava--5 { background: var(--gs-gray-600); }
.gs-prev-cell-name,
.gs-cell-name {
    font-weight: 500;
    color: var(--gs-text-primary);
}
.gs-prev-cell-sub,
.gs-cell-sub {
    font-size: var(--gs-font-xs);
    color: var(--gs-text-secondary);
}
.gs-prev-cell-path,
.gs-cell-path {
    display: inline-block;
    font-size: var(--gs-font-xs);
    padding: 2px 8px;
    border-radius: 6px;
    font-weight: 600;
}
.gs-prev-cell-path--a {
    background: var(--gs-primary-50);
    color: var(--gs-primary);
}
.gs-prev-cell-path--b {
    background: var(--gs-info-light);
    color: var(--gs-info-dark);
}
.gs-prev-cell-path--c {
    background: var(--gs-amber-light);
    color: var(--gs-amber-dark);
}
.gs-cell-path--a {
    background: var(--gs-primary-50);
    color: var(--gs-accent);
}
.gs-cell-path--b {
    background: var(--gs-info-light);
    color: var(--gs-info-dark);
}
.gs-cell-path--c {
    background: var(--gs-warning-light);
    color: var(--gs-warning-dark);
}
.gs-prev-cell-amount,
.gs-cell-amount {
    font-weight: 600;
    text-align: right;
    font-variant-numeric: tabular-nums;
    color: var(--gs-text-primary);
}
.gs-prev-cell-date,
.gs-cell-date {
    font-size: var(--gs-font-xs);
    color: var(--gs-text-secondary);
    font-variant-numeric: tabular-nums;
}
.gs-prev-chip {
    display: inline-block;
    font-size: var(--gs-font-xs);
    padding: 2px 8px;
    border-radius: 8px;
    background: var(--gs-gray-100);
    color: var(--gs-text-secondary);
}

/* CRM-31-LISTA-FIX — pill stato + aree + scadenza */
.gs-prev-badge {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 10px;
    font-size: var(--gs-font-xs);
    font-weight: 600;
    white-space: nowrap;
    background: var(--gs-gray-100);
    color: var(--gs-text-secondary);
}
.gs-prev-badge--bozza {
    background: var(--gs-gray-100);
    color: var(--gs-text-secondary);
}
.gs-prev-badge--da_validare {
    background: var(--gs-warning-light);
    color: var(--gs-warning-dark);
}
.gs-prev-badge--validato,
.gs-prev-badge--validato_rt {
    background: var(--gs-success-light);
    color: var(--gs-success-dark);
}
.gs-prev-badge--inviato {
    background: var(--gs-info-light);
    color: var(--gs-info-dark);
}
.gs-prev-badge--visualizzato {
    background: var(--gs-purple-light);
    color: var(--gs-purple-dark);
}
.gs-prev-badge--in_valutazione,
.gs-prev-badge--valutazione {
    background: var(--gs-warning-light);
    color: var(--gs-warning-dark);
}
.gs-prev-badge--accettato {
    background: var(--gs-success-light);
    color: var(--gs-success-dark);
}
.gs-prev-badge--rifiutato {
    background: var(--gs-danger-light);
    color: var(--gs-danger-dark);
}
.gs-prev-badge--scaduto,
.gs-prev-badge--annullato {
    background: var(--gs-gray-100);
    color: var(--gs-gray-600);
}
.gs-prev-area-chip {
    display: inline-block;
    font-size: 14px;
    margin-right: 2px;
    cursor: default;
}
.gs-prev-area-chip--commessa {
    font-size: var(--gs-font-xs);
    padding: 1px 6px;
    border-radius: 4px;
    background: var(--gs-info-light);
    color: var(--gs-info-dark);
    font-weight: 600;
}
.gs-prev-muted {
    color: var(--gs-text-secondary);
    opacity: 0.9;
}
.gs-prev-scaduta {
    color: var(--gs-danger);
    font-weight: 600;
}
.gs-prev-kanban-meta {
    min-height: 1.25rem;
}
.gs-kanban-card a.gs-prev-cell-code {
    display: inline-block;
}

.gs-prev-cell-actions {
    display: flex;
    gap: 4px;
    justify-content: flex-end;
    opacity: 0.14;
    transition: opacity 0.18s ease;
}
.gs-cell-actions {
    display: flex;
    gap: 4px;
    justify-content: flex-end;
    opacity: 0.14;
    transition: opacity 0.18s ease;
}
.gs-prev-list-table tbody tr:hover .gs-prev-cell-actions,
.gs-list-table tbody tr:hover .gs-cell-actions,
.gs-list-table tbody tr:hover .gs-prev-cell-actions,
.gs-prev-list-table tbody tr:hover .gs-cell-actions {
    opacity: 1;
}
.gs-prev-list-table tbody tr:hover .gs-prev-btn-icon {
    color: var(--gs-primary);
}
.gs-prev-btn-icon {
    width: 30px;
    height: 30px;
    border: none;
    border-radius: 6px;
    background: transparent;
    color: var(--gs-text-secondary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    cursor: pointer;
}
.gs-prev-btn-icon:hover {
    background: var(--gs-gray-100);
    color: var(--gs-primary);
}
.gs-prev-btn-icon:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

/* CRM-31-LISTA Step 6 — mockup tabella (codice accent) + badge riga + kanban */
.gs-cell-code {
    font-weight: 600;
    color: var(--gs-accent);
    font-size: var(--gs-font-sm);
}
.gs-cell-badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 10px;
    font-size: var(--gs-font-xs);
    font-weight: 600;
}

.gs-prev-list-table .badge-bozza,
.gs-list-table .badge-bozza,
.gs-kanban-card .badge-bozza {
    background: var(--gs-gray-100);
    color: var(--gs-text-secondary);
}
.gs-prev-list-table .badge-validare,
.gs-list-table .badge-validare,
.gs-kanban-card .badge-validare {
    background: var(--gs-warning-light);
    color: var(--gs-warning-dark);
}
.gs-prev-list-table .badge-validato,
.gs-list-table .badge-validato,
.gs-kanban-card .badge-validato {
    background: var(--gs-success-light);
    color: var(--gs-success-dark);
}
.gs-prev-list-table .badge-inviato,
.gs-list-table .badge-inviato,
.gs-kanban-card .badge-inviato {
    background: var(--gs-info-light);
    color: var(--gs-info-dark);
}
.gs-prev-list-table .badge-visualizzato,
.gs-list-table .badge-visualizzato,
.gs-kanban-card .badge-visualizzato {
    background: var(--gs-purple-light);
    color: var(--gs-purple-dark);
}
.gs-prev-list-table .badge-valutazione,
.gs-list-table .badge-valutazione,
.gs-kanban-card .badge-valutazione {
    background: var(--gs-warning-light);
    color: var(--gs-warning-dark);
}
.gs-prev-list-table .badge-accettato,
.gs-list-table .badge-accettato,
.gs-kanban-card .badge-accettato {
    background: var(--gs-success-light);
    color: var(--gs-success-dark);
}
.gs-prev-list-table .badge-rifiutato,
.gs-list-table .badge-rifiutato,
.gs-kanban-card .badge-rifiutato {
    background: var(--gs-danger-light);
    color: var(--gs-danger-dark);
}
.gs-prev-list-table .badge-scaduto,
.gs-list-table .badge-scaduto,
.gs-kanban-card .badge-scaduto {
    background: var(--gs-gray-100);
    color: var(--gs-gray-600);
}

.gs-kanban-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 12px;
}
.gs-kanban-col {
    background: var(--gs-bg);
    border-radius: var(--gs-card-radius-sm);
    padding: 12px;
}
.gs-kanban-col-h {
    font-size: var(--gs-font-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 6px;
}
.gs-kanban-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
}
.gs-kanban-card {
    background: var(--gs-card-bg);
    border: 1px solid var(--gs-border);
    border-radius: var(--gs-card-radius-sm);
    padding: 10px;
    margin-bottom: 8px;
    cursor: pointer;
    transition: box-shadow 0.15s ease, transform 0.15s ease;
}
.gs-kanban-card:hover {
    box-shadow: var(--gs-shadow-md);
    transform: translateY(-1px);
}

/* ============================================================
   GigaSolarCRM - CSS Master Unificato (07B)
   Data: 10/04/2026 - gigasolar-theme.css fuso in app.css
   ============================================================ */

/* === :root - Variabili globali (unico blocco) === */
:root {
    --acc: #e8a838;
    --b: #e9ecef;
    --bg: #f5f6f8;
    --blu: #4a90d9;
    --c: #fff;
    --dng: #dc3545;
    --gs: #1a7a5a;
    --gs-accent: #f59e0b;
    --gs-accent-green: #2d8b6e;
    --gs-accent-green-hover: #247a5f;
    --gs-accent-light: #e8f5f0;
    --gs-accent-gold: #e8a838;
    --gs-accent-gold-light: #fef9e7;
    --gs-accent-gold-border: #f9e79f;
    --gs-lucio-gradient-start: #e67e22;
    --gs-lucio-gradient-end: #f39c12;
    --gs-prev-info-bg: #eaf2fd;
    --gs-prev-info-border: #aec6e8;
    --gs-prev-summary-shadow: 0 -2px 10px color-mix(in srgb, var(--gs-gray-900) 6%, transparent);
    --gs-ai-gradient: linear-gradient(135deg, #7c3aed 0%, #6d28d9 100%);
    --gs-ai-primary: #7c3aed;
    --gs-amber: #d97706;
    --gs-amber-dark: #78350f;
    --gs-amber-light: #fef3c7;
    --gs-bg: #f0f2f5;
    --gs-body-bg: #f3f4f6;
    --gs-border: #e2e8f0;
    --gs-card-bg: #ffffff;
    --gs-card-border: #e5e7eb;
    --gs-card-radius: 1rem;
    --gs-card-radius-sm: 8px;
    --gs-card-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
    --gs-card-shadow-hover: 0 4px 12px rgba(0,0,0,0.07), 0 2px 4px rgba(0,0,0,0.05);
    --gs-contattato: #f97316;
    --gsd: #145e45;
    --gs-danger: #dc2626;
    --gs-danger-dark: #991b1b;
    --gs-danger-light: #fee2e2;
    --gs-font: 'Segoe UI', sans-serif;
    --gs-font-2xl: 24px;
    --gs-font-base: 13px;
    --gs-font-lg: 15px;
    --gs-font-md: 14px;
    --gs-font-sm: 12px;
    --gs-font-xl: 18px;
    --gs-font-xs: 11px;
    --gs-gradient: linear-gradient(135deg, #0d9488 0%, #1e3a5f 100%);
    --gs-gray-100: #f3f4f6;
    --gs-gray-200: #e5e7eb;
    --gs-gray-300: #d1d5db;
    --gs-gray-400: #9ca3af;
    --gs-gray-50: #f9fafb;
    --gs-gray-500: #6b7280;
    --gs-gray-600: #4b5563;
    --gs-gray-700: #374151;
    --gs-gray-800: #1f2937;
    --gs-gray-900: #111827;
    --gs-info: #3b82f6;
    --gs-info-dark: #1e40af;
    --gs-info-light: #dbeafe;
    --gsl: #d4e8de;
    --gs-negoziazione: #ec4899;
    --gs-non-qualificato: #6b7280;
    --gs-nuovo: #ef4444;
    --gs-perso: #6b7280;
    --gs-preventivo: #8b5cf6;
    --gs-primary: #1a7a5a;
    --gs-primary-100: #d1fae5;
    --gs-primary-200: #a7f3d0;
    --gs-primary-50: #ecfdf5;
    --gs-primary-500: #10b981;
    --gs-primary-600: #059669;
    --gs-primary-700: #0F6E56;
    --gs-primary-800: #065f46;
    --gs-primary-900: #064e3b;
    --gs-primary-hover: #16a34a;
    --gs-primary-light: #1a6b4f;
    /* Sfondo tinta primaria leggera (card selezionate, highlight leggibili) */
    --gs-primary-bg: #ecfdf5;
    --gs-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.08);
    --gs-purple: #7c3aed;
    --gs-purple-dark: #5b21b6;
    --gs-purple-light: #ede9fe;
    --gs-qualificato: #22c55e;
    --gs-radius-lg: 16px;
    --gs-radius-md: 12px;
    --gs-radius-sm: 8px;
    --gs-right-panel-width: 340px;
    --gs-sidebar-active: #0F6E56;
    --gs-sidebar-active-bg: rgba(255, 255, 255, 0.25);
    --gs-sidebar-bg: #1a3a34;
    --gs-sidebar-border: rgba(255, 255, 255, 0.1);
    --gs-sidebar-collapsed-width: 56px;
    --gs-sidebar-gradient: linear-gradient(180deg, #0d9488 0%, #1e3a5f 100%);
    --gs-sidebar-hover: #234e45;
    --gs-sidebar-hover-bg: rgba(255, 255, 255, 0.15);
    --gs-sidebar-text: rgba(255, 255, 255, 0.9);
    --gs-sidebar-text-active: #ffffff;
    --gs-sidebar-text-muted: rgba(255, 255, 255, 0.7);
    --gs-sidebar-version-muted: rgba(255, 255, 255, 0.4);
    --gs-sidebar-logo-pad-lg: 1.5rem;
    --gs-sidebar-transition: all 0.3s ease;
    --gs-sidebar-width: 280px;
    --gs-sopralluogo: #f59e0b;
    --gs-success: #22c55e;
    /* Allineamento mockup comunicazioni v4 (hover anello header lead) */
    --gs-green: var(--gs-success);
    --gs-success-dark: #166534;
    --gs-success-light: #dcfce7;
    --gs-surface: #f8f9fa;
    --gs-surface-border: #e8e8e8;
    --gs-surface-hover: #f3f4f6;
    --gs-teal: #0d9488;
    --gs-teal-dark: #115e59;
    --gs-teal-light: #ccfbf1;
    --gs-text: #1a1a2e;
    --gs-text-light: #888888;
    --gs-text-link: #1a7a5a;
    --gs-text-muted: #666666;
    --gs-text-primary: #1f2937;
    --gs-text-secondary: #6b7280;
    --gs-text-tertiary: #9ca3af;
    --gs-transition: 0.15s ease;
    --gs-vinto: #10b981;
    --gs-warning: #f59e0b;
    --gs-warning-dark: #92400e;
    --gs-warning-light: #fef3c7;
    --warning-bg: var(--gs-warning-light);
    --acc-bg: var(--gs-amber-light);
    --inf: #17a2b8;
    --m: #6c757d;
    --pur: #7c5cbf;
    --r: 10px;
    --sb: #1b4a3e;
    --sh: 0 1px 3px rgba(0, 0, 0, 0.06);
    --suc: #28a745;
    --t: #2d3436;
    --wrn: #ffc107;
    --wa: #25d366;
    --wad: #1da851;
    /* CRM29 — COL2 composizione (canali, allineamento mock v5) */
    --gs-comm-wa: var(--wa);
    --gs-comm-wa-hover: var(--wad);
    --gs-comm-sms: var(--pur);
    --gs-comm-sms-hover: var(--gs-purple-dark);
    --gs-comm-nota: var(--gs-warning);
    --gs-comm-nota-hover: var(--gs-warning-dark);
    --gs-comm-email-action: var(--gs-info);
    --gs-comm-email-action-hover: var(--gs-info-dark);

    /* LucioAI cruscotto ambra (script 10) — primario = --gs-amber (#d97706), scuro = --gs-warning-dark */
    /* LucioAI v11 — tema chiaro / primario (no ambra) */
    --lucio-ai-bg-from: var(--gs-card-bg);
    --lucio-ai-border: var(--gs-card-border);
    --lucio-ai-amber-mid: var(--gs-text-secondary);
    --lucio-ai-primary: var(--gs-primary);
    --lucio-ai-dark: var(--gs-primary-800);
    --lucio-ai-gradient: var(--gs-card-bg);
    --lucio-ai-divider: var(--gs-gray-200);
    --lucio-ai-divider-soft: var(--gs-gray-100);
    --lucio-ai-ring-track: var(--gs-gray-200);
    --lucio-ai-footer-tint: var(--gs-gray-50);
    --lucio-ai-tool-line: var(--gs-gray-200);
    --lucio-ai-tool-hover-shadow: rgba(0, 0, 0, 0.08);
    --lucio-ai-bench-card: var(--gs-gray-50);
    --lucio-ai-tool-bg: var(--gs-gray-50);

    --gs-muted: #6b7a8d;

    /* CRM-31-NUOVO — token preventivatore pagina gs-pn-* */
    --gs-pn-done: #10b981;
    --gs-pn-cur: var(--gs-accent-green);
    --gs-pn-todo: var(--gs-border);
    --gs-accent-hover: var(--gs-accent-green-hover);
}

/* === THEME (ex gigasolar-theme.css, :root rimossi) === */
/* ================================================
   GIGASOLAR CRM THEME
   Coerente con Auth (Login/Register)
   ================================================ */

/* â•â•â• GS DESIGN SYSTEM v2 â•â•â• */
/* Source: GIGASOLAR-DESIGN-SYSTEM-v2-REFERENCE.html */

/* Griglia 5 colonne (KPI pipeline) */
.gs-grid-5 {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
}
@media (max-width: 991.98px) {
    .gs-grid-5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
    .gs-grid-5 { grid-template-columns: 1fr; }
}
.gs-detail-main-grid {
    display: grid;
    grid-template-columns: 1fr min(340px, 100%);
    gap: 16px;
    align-items: start;
}
@media (max-width: 991.98px) {
    .gs-detail-main-grid { grid-template-columns: 1fr; }
}
.gs-detail-title { font-size: 18px; font-weight: 500; color: var(--gs-text-primary); }

.gs-card {
    background: var(--gs-card-bg);
    border: 1px solid var(--gs-card-border);
    border-radius: var(--gs-card-radius);
    padding: 20px;
    box-shadow: var(--gs-card-shadow);
    transition: box-shadow var(--gs-transition), transform var(--gs-transition);
}
.gs-card-sm { padding: 14px 16px; border-radius: var(--gs-card-radius-sm); }
.gs-card-hover:hover { box-shadow: var(--gs-card-shadow-hover); transform: translateY(-1px); }
.gs-card-accent-left { border-left: 4px solid; border-radius: 4px var(--gs-card-radius-sm) var(--gs-card-radius-sm) 4px; }
.gs-card-flat { box-shadow: none; }
.gs-surface { background: var(--gs-surface); border-radius: 10px; padding: 16px; border: 1px solid var(--gs-surface-border); }
.gs-badge { display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px; border-radius: 20px; font-size: var(--gs-font-xs); font-weight: 500; white-space: nowrap; line-height: 1.4; }
.gs-badge-success { background: var(--gs-success-light); color: var(--gs-success-dark); }
.gs-badge-warning { background: var(--gs-warning-light); color: var(--gs-warning-dark); }
.gs-badge-danger { background: var(--gs-danger-light); color: var(--gs-danger-dark); }
.gs-badge-info { background: var(--gs-info-light); color: var(--gs-info-dark); }
.gs-badge-teal { background: var(--gs-teal-light); color: var(--gs-teal-dark); }
.gs-badge-purple { background: var(--gs-purple-light); color: var(--gs-purple-dark); }
.gs-badge-neutral { background: var(--gs-gray-100); color: var(--gs-gray-600); }
.gs-badge-amber { background: var(--gs-amber-light); color: var(--gs-amber-dark); }
.gs-badge-lg { padding: 5px 14px; font-size: var(--gs-font-sm); }
.gs-tabs { display: flex; align-items: center; background: var(--gs-surface); border-bottom: 1px solid var(--gs-surface-border); padding: 0 16px; gap: 0; }
.gs-tab { padding: 10px 16px; font-size: var(--gs-font-base); color: var(--gs-text-secondary); cursor: pointer; border: none; background: transparent; border-bottom: 2px solid transparent; display: flex; align-items: center; gap: 6px; transition: all var(--gs-transition); }
.gs-tab:hover { color: var(--gs-text-primary); }
.gs-tab.active { color: var(--gs-primary); font-weight: 500; border-bottom-color: var(--gs-primary); background: var(--gs-card-bg); }
.gs-tabs-spacer { flex: 1; }
.gs-toggle-group { display: inline-flex; border: 1px solid var(--gs-gray-200); border-radius: var(--gs-card-radius-sm); overflow: hidden; }
.gs-toggle-group.gs-toggle-wrap { flex-wrap: wrap; row-gap: 4px; }
.gs-toggle-item { padding: 5px 14px; font-size: var(--gs-font-sm); color: var(--gs-text-secondary); background: var(--gs-surface); cursor: pointer; border: none; border-right: 1px solid var(--gs-gray-200); transition: all var(--gs-transition); }
.gs-toggle-item:last-child { border-right: none; }
.gs-toggle-item.active { color: var(--gs-text-primary); font-weight: 500; background: var(--gs-card-bg); }
.gs-toggle-item:hover:not(.active) { background: var(--gs-surface-hover); }
.gs-toggle-count { background: var(--gs-danger-light); color: var(--gs-danger-dark); padding: 1px 6px; border-radius: 10px; font-size: 10px; margin-left: 4px; }
.gs-btn { display: inline-flex; align-items: center; gap: 6px; border-radius: var(--gs-card-radius-sm); cursor: pointer; font-size: var(--gs-font-base); font-weight: 500; transition: all var(--gs-transition); border: none; padding: 8px 20px; line-height: 1.4; }
.gs-btn-sm { padding: 5px 12px; font-size: var(--gs-font-sm); }
.gs-btn-primary { background: var(--gs-primary); color: #fff; }
.gs-btn-primary:hover { background: var(--gs-primary-800); }
.gs-btn-outline { background: var(--gs-card-bg); color: var(--gs-text-secondary); border: 1px solid var(--gs-gray-300); }
.gs-btn-outline:hover { background: var(--gs-surface); color: var(--gs-text-primary); }
.gs-btn-danger { background: var(--gs-card-bg); color: var(--gs-danger); border: 1px solid var(--gs-danger-light); }
.gs-btn-danger:hover { background: var(--gs-danger-light); }
.gs-btn-icon { padding: 6px 10px; }
.gs-field-row { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.gs-field-label { font-size: var(--gs-font-sm); color: var(--gs-text-tertiary); min-width: 70px; flex-shrink: 0; }
.gs-field-input { flex: 1; background: var(--gs-card-bg); border: 1px solid var(--gs-gray-200); border-radius: var(--gs-card-radius-sm); padding: 10px 14px; font-size: var(--gs-font-base); color: var(--gs-text-primary); transition: border-color var(--gs-transition); }
.gs-field-input:focus { border-color: var(--gs-primary); outline: none; box-shadow: 0 0 0 3px rgba(15,110,86,0.1); }
.gs-textarea { width: 100%; min-height: 140px; resize: vertical; background: var(--gs-card-bg); border: 1px solid var(--gs-gray-200); border-radius: var(--gs-card-radius-sm); padding: 12px 14px; font-size: var(--gs-font-base); font-family: var(--gs-font); color: var(--gs-text-primary); line-height: 1.7; transition: border-color var(--gs-transition); }
.gs-textarea:focus { border-color: var(--gs-primary); outline: none; box-shadow: 0 0 0 3px rgba(15,110,86,0.1); }
.gs-toolbar { display: flex; align-items: center; gap: 12px; background: var(--gs-surface); padding: 10px 16px; border-bottom: 1px solid var(--gs-surface-border); }
.gs-toolbar-spacer { flex: 1; }
.gs-avatar { width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: var(--gs-font-sm); color: #fff; flex-shrink: 0; }
.gs-avatar-sm { width: 32px; height: 32px; font-size: 11px; }
.gs-avatar-lg { width: 48px; height: 48px; font-size: var(--gs-font-md); }
.gs-list-item { padding: 12px 14px; border-bottom: 1px solid var(--gs-gray-100); cursor: pointer; transition: background var(--gs-transition); }
.gs-list-item:hover { background: var(--gs-surface-hover); }
.gs-list-item.selected { background: #eef6ff; border-left: 3px solid var(--gs-info); }
.gs-list-item.unread .gs-list-sender { font-weight: 600; color: var(--gs-text-primary); }
.gs-feed { display: flex; flex-direction: column; gap: 8px; }
.gs-feed-entry { display: flex; align-items: flex-start; gap: 10px; padding: 10px 14px; border-radius: var(--gs-card-radius-sm); border: 1px solid var(--gs-gray-100); border-left: 3px solid; background: var(--gs-card-bg); transition: background var(--gs-transition); }
.gs-feed-entry:hover { background: var(--gs-surface-hover); }
.gs-feed-email { border-left-color: var(--gs-info); }
.gs-feed-chiamata { border-left-color: var(--gs-success); }
.gs-feed-nota { border-left-color: var(--gs-gray-400); }
.gs-feed-richiamo { border-left-color: var(--gs-warning); }
.gs-feed-appuntamento { border-left-color: var(--gs-teal); }
.gs-feed-sistema { border-left-color: var(--gs-gray-300); background: #f8fafc; }
.gs-feed-ai { border-left-color: var(--gs-purple); background: #faf8ff; }
.gs-section-title { display: flex; align-items: center; gap: 8px; font-size: var(--gs-font-base); font-weight: 500; color: var(--gs-text-secondary); padding-bottom: 8px; border-bottom: 1px solid var(--gs-gray-100); margin-bottom: 12px; }
.gs-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 60px 20px; color: var(--gs-text-tertiary); }
.gs-form-check-accent { accent-color: var(--gs-primary); }
.gs-tabs-preventivi .gs-tab.active {
    background: var(--gs-primary);
    color: #fff;
    border-bottom-color: var(--gs-primary);
}
.gs-tabs-preventivi .gs-tab.active .gs-badge {
    background: rgba(255, 255, 255, 0.22);
    color: #fff;
}
.gs-table-preventivi tbody tr:hover {
    background: var(--gs-surface-hover);
}
.lead-section-title { font-size: var(--gs-font-sm); color: var(--gs-text-secondary); margin-bottom: 8px; }
.lead-card-compact { background: var(--gs-surface); border-radius: var(--gs-card-radius-sm); padding: 10px 12px; border: 1px solid var(--gs-gray-200); }
@keyframes gs-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
.gs-spin { animation: gs-spin 1s linear infinite; }
.gs-lead-row { display: flex; align-items: center; height: 72px; min-height: 72px; max-height: 72px; overflow: hidden; box-sizing: border-box; gap: 14px; padding: 8px 16px; background: var(--gs-card-bg) !important; border: 1px solid var(--gs-card-border); border-radius: 8px; box-shadow: var(--gs-card-shadow); border-left: 4px solid transparent; transition: all var(--gs-transition); cursor: pointer; }
.gs-lead-row:hover { box-shadow: var(--gs-card-shadow-hover); transform: translateY(-1px); }
/* Temperatura ultimo contatto: hot <48h verde, warm 48hâ€“14g ambra, cold >14g rosso, none NULL grigio */
.gs-lead-row.temp-hot { border-left-color: var(--gs-success); }
.gs-lead-row.temp-warm { border-left-color: var(--gs-warning); }
.gs-lead-row.temp-cold { border-left-color: var(--gs-danger); }
.gs-lead-row.temp-frozen { border-left-color: #991b1b; }
.gs-lead-row.temp-none { border-left-color: var(--gs-gray-300); }
.gs-lead-info { flex: 1; min-width: 0; max-width: min(420px, 42vw); }
.gs-lead-name { font-size: var(--gs-font-md); font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gs-lead-sub { font-size: var(--gs-font-xs); color: var(--gs-text-tertiary); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gs-lead-contact-line { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gs-lead-contact { display: inline-block; max-width: 46%; font-size: var(--gs-font-xs); color: var(--gs-info); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; vertical-align: middle; }
.gs-lead-meta { display: flex; align-items: center; gap: 12px; }
.gs-lead-score { display: flex; align-items: center; gap: 4px; font-size: var(--gs-font-sm); font-weight: 500; }
.gs-lead-score-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--gs-success); }
.gs-lead-icons { display: flex; gap: 6px; }
.gs-lead-icon-active { color: var(--gs-primary); font-size: 14px; }
.gs-lead-icon-inactive { color: var(--gs-gray-300); font-size: 14px; }
.gs-lead-date { font-size: var(--gs-font-xs); color: var(--gs-text-tertiary); min-width: 45px; text-align: right; }
.gs-lead-action { width: 32px; height: 32px; border-radius: 6px; display: flex; align-items: center; justify-content: center; color: var(--gs-gray-400); font-size: 18px; transition: all var(--gs-transition); }
.gs-lead-action:hover { background: var(--gs-primary-50); color: var(--gs-primary); }

/* KPI (reference sez. 4) */
.gs-kpi {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 18px 20px;
    background: var(--gs-card-bg);
    border: 1px solid var(--gs-card-border);
    border-radius: var(--gs-card-radius);
    box-shadow: var(--gs-card-shadow);
    transition: box-shadow var(--gs-transition), transform var(--gs-transition);
    cursor: default;
}
.gs-kpi.gs-kpi-clickable { cursor: pointer; }
.gs-kpi.gs-kpi-clickable:hover { box-shadow: var(--gs-card-shadow-hover); transform: translateY(-1px); }
.gs-kpi.gs-kpi-active { border-color: var(--gs-primary); box-shadow: var(--gs-card-shadow-hover); }
.gs-kpi-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    flex-shrink: 0;
}
.gs-kpi-body { flex: 1; min-width: 0; }
.gs-kpi-value { font-size: var(--gs-font-2xl); font-weight: 600; color: var(--gs-text-primary); line-height: 1.2; }
.gs-kpi-label { font-size: var(--gs-font-sm); color: var(--gs-text-secondary); margin-top: 2px; }
.gs-kpi-bar { height: 3px; border-radius: 2px; margin-top: 10px; width: 100%; overflow: hidden; background: var(--gs-gray-100); }
.gs-kpi-bar > .gs-kpi-bar-fill { height: 3px; border-radius: 2px; max-width: 100%; transition: width var(--gs-transition); }

/* Lead lista v11 — KPI (FASE B) */
.gs-lead-list-kpi-row {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 20px;
}
@media (max-width: 1199.98px) {
    .gs-lead-list-kpi-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
    .gs-lead-list-kpi-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
    .gs-lead-list-kpi-row { grid-template-columns: 1fr; }
}
.gs-lead-list-kpi-card {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    margin: 0;
    padding: 16px;
    background: var(--gs-card-bg);
    border: 2px solid transparent;
    border-radius: var(--gs-card-radius-sm);
    box-shadow: var(--gs-card-shadow);
    cursor: pointer;
    font-family: inherit;
    font-size: inherit;
    color: inherit;
    text-align: left;
    transition: border-color var(--gs-transition), box-shadow var(--gs-transition), transform var(--gs-transition), background var(--gs-transition);
}
.gs-lead-list-kpi-card:focus-visible {
    outline: 2px solid var(--gs-primary);
    outline-offset: 2px;
}
.gs-lead-list-kpi-card:hover {
    border-color: var(--gs-primary);
    transform: translateY(-2px);
    box-shadow: var(--gs-shadow-md);
}
.gs-lead-list-kpi-card.gs-lead-list-kpi-card-active {
    border-color: var(--gs-primary);
    background: var(--gs-primary-50);
    box-shadow: var(--gs-shadow-md);
}
.gs-lead-list-kpi-top {
    display: flex;
    align-items: center;
    gap: 10px;
}
.gs-lead-list-kpi-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    flex-shrink: 0;
}
.gs-lead-list-kpi-icon--green {
    background: var(--gs-success-light);
    color: var(--gs-success-dark);
}
.gs-lead-list-kpi-icon--blue {
    background: var(--gs-info-light);
    color: var(--gs-info-dark);
}
.gs-lead-list-kpi-icon--teal {
    background: var(--gs-teal-light);
    color: var(--gs-teal-dark);
}
.gs-lead-list-kpi-icon--amber {
    background: var(--gs-amber-light);
    color: var(--gs-amber-dark);
}
.gs-lead-list-kpi-icon--violet {
    background: var(--gs-purple-light);
    color: var(--gs-purple-dark);
}
.gs-lead-list-kpi-icon--rose {
    background: var(--gs-purple-light);
    color: var(--gs-purple);
}
.gs-lead-list-kpi-text { min-width: 0; }
.gs-lead-list-kpi-num {
    font-size: var(--gs-font-2xl);
    font-weight: 800;
    line-height: 1.15;
    color: var(--gs-text-primary);
}
.gs-lead-list-kpi-label {
    font-size: var(--gs-font-xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    color: var(--gs-text-tertiary);
    margin-top: 2px;
}
.gs-lead-list-filter-banner { border-left: 4px solid var(--gs-primary); }

.gs-lead-list-filter-banner-accent {
    border-left: 4px solid var(--gs-lead-filter-accent, var(--gs-primary));
}
.gs-lead-list-filter-banner-accent--green { --gs-lead-filter-accent: var(--gs-success-dark); }
.gs-lead-list-filter-banner-accent--blue { --gs-lead-filter-accent: var(--gs-info-dark); }
.gs-lead-list-filter-banner-accent--teal { --gs-lead-filter-accent: var(--gs-teal-dark); }
.gs-lead-list-filter-banner-accent--amber { --gs-lead-filter-accent: var(--gs-amber-dark); }
.gs-lead-list-filter-banner-accent--violet { --gs-lead-filter-accent: var(--gs-purple-dark); }
.gs-lead-list-filter-banner-accent--default { --gs-lead-filter-accent: var(--gs-primary); }

/* --- Lead lista v11 — filtri (FASE C) --- */
.gs-lead-list-filter-card {
    background: var(--gs-card-bg);
    border-radius: var(--gs-card-radius-sm);
    box-shadow: var(--gs-card-shadow);
    padding: 16px 20px;
    margin-bottom: 16px;
}
.gs-lead-list-pill-row {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: 12px;
}
.gs-lead-list-pill {
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 600;
    border: 1px solid var(--gs-gray-200);
    background: var(--gs-card-bg);
    color: var(--gs-text-secondary);
    cursor: pointer;
    transition: border-color var(--gs-transition), color var(--gs-transition), background var(--gs-transition);
    font-family: inherit;
}
.gs-lead-list-pill:hover {
    border-color: var(--gs-primary);
    color: var(--gs-primary);
}
.gs-lead-list-pill.gs-lead-list-pill--active {
    background: var(--gs-primary);
    border-color: var(--gs-primary);
    color: var(--gs-card-bg);
}
.gs-lead-list-filter-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: flex-end;
}
.gs-lead-list-filter-field {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}
.gs-lead-list-filter-label {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--gs-text-tertiary);
    letter-spacing: 0.02em;
}
.gs-lead-list-filter-input,
.gs-lead-list-filter-select {
    padding: 9px 14px;
    border-radius: var(--gs-radius-sm);
    border: 1px solid var(--gs-gray-200);
    font-size: 13px;
    color: var(--gs-text-primary);
    background: var(--gs-card-bg);
    min-width: 0;
}
.gs-lead-list-filter-input:focus,
.gs-lead-list-filter-select:focus {
    outline: none;
    border-color: var(--gs-primary);
}
.gs-lead-list-filter-input--nome { width: 160px; max-width: 100%; }
.gs-lead-list-filter-input--tel { width: 140px; max-width: 100%; }
.gs-lead-list-filter-input--email { width: 160px; max-width: 100%; }
.gs-lead-list-filter-input--cf { width: 140px; max-width: 100%; }
.gs-lead-list-filter-select--fonte,
.gs-lead-list-filter-select--data { width: 130px; max-width: 100%; }
.gs-lead-list-filter-actions {
    display: flex;
    gap: 6px;
    align-items: center;
    padding-top: 16px;
}
.gs-lead-list-filter-btn {
    padding: 9px 24px;
    border-radius: var(--gs-radius-sm);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    font-family: inherit;
    border: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.gs-lead-list-filter-btn--primary {
    background: var(--gs-primary);
    color: var(--gs-card-bg);
}
.gs-lead-list-filter-btn--primary:hover {
    filter: brightness(1.05);
}
.gs-lead-list-filter-btn--reset {
    background: var(--gs-card-bg);
    color: var(--gs-text-secondary);
    border: 1px solid var(--gs-gray-200);
}
.gs-lead-list-filter-btn--reset:hover {
    border-color: var(--gs-text-secondary);
}

/* --- Lead lista v11 — righe card (FASE D) --- */
.gs-lead-list-row {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) auto auto auto auto auto;
    align-items: center;
    gap: 14px;
    padding: 14px 20px;
    background: var(--gs-card-bg);
    border-radius: var(--gs-card-radius-sm);
    border: 1px solid var(--gs-card-border);
    box-shadow: var(--gs-card-shadow);
    cursor: pointer;
    transition: border-color var(--gs-transition), box-shadow var(--gs-transition), transform var(--gs-transition), background var(--gs-transition);
}
.gs-lead-list-row:hover {
    border-color: var(--gs-primary);
    background: var(--gs-primary-50);
    box-shadow: var(--gs-shadow-md);
    transform: translateY(-1px);
}
@media (max-width: 991.98px) {
    .gs-lead-list-row {
        grid-template-columns: 44px minmax(0, 1fr);
        grid-template-rows: auto auto;
    }
    .gs-lead-list-row .gs-lead-list-row-extras {
        grid-column: 1 / -1;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 10px;
    }
}
.gs-lead-list-row-avatar {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 15px;
    color: var(--gs-card-bg);
    flex-shrink: 0;
}
.gs-lead-list-row-avatar--v0 {
    background: linear-gradient(135deg, var(--gs-primary) 0%, var(--gs-primary-800) 100%);
}
.gs-lead-list-row-avatar--v1 {
    background: linear-gradient(135deg, var(--gs-info) 0%, var(--gs-info-dark) 100%);
}
.gs-lead-list-row-avatar--v2 {
    background: linear-gradient(135deg, var(--gs-teal) 0%, var(--gs-teal-dark) 100%);
}
.gs-lead-list-row-main { min-width: 0; }
.gs-lead-list-row-name {
    font-size: 15px;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.gs-lead-list-row-sub {
    font-size: 12px;
    color: var(--gs-text-tertiary);
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    min-width: 0;
}
.gs-lead-list-row-contact {
    color: var(--gs-info);
    font-size: 12px;
    text-decoration: none;
}
.gs-lead-list-row-contact:hover {
    text-decoration: underline;
}
.gs-lead-list-score {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 800;
    flex-shrink: 0;
}
.gs-lead-list-score--hot {
    background: var(--gs-success-light);
    color: var(--gs-success-dark);
    border: 2px solid var(--gs-primary-200);
}
.gs-lead-list-score--warm {
    background: var(--gs-amber-light);
    color: var(--gs-amber-dark);
    border: 2px solid var(--gs-amber);
}
.gs-lead-list-score--cold {
    background: var(--gs-danger-light);
    color: var(--gs-danger-dark);
    border: 2px solid var(--gs-danger);
}
.gs-lead-list-ind-row {
    display: flex;
    gap: 4px;
    align-items: center;
}
.gs-lead-list-ind {
    width: 24px;
    height: 24px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    transition: transform var(--gs-transition);
}
.gs-lead-list-ind--on {
    background: var(--gs-success-light);
    color: var(--gs-success-dark);
}
.gs-lead-list-ind--off {
    background: var(--gs-gray-100);
    color: var(--gs-gray-300);
}
.gs-lead-list-ind:hover {
    transform: scale(1.12);
}
.gs-lead-list-meta {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    min-width: 100px;
}
.gs-lead-list-meta-date {
    font-size: 12px;
    font-weight: 600;
    color: var(--gs-text-secondary);
}
.gs-lead-list-meta-fonte {
    font-size: 11px;
    color: var(--gs-text-tertiary);
}
.gs-lead-list-meta-gestore {
    font-size: 11px;
    font-weight: 600;
    color: var(--gs-primary);
}
.gs-lead-list-meta-gestore--missing {
    color: var(--gs-danger);
}
.gs-lead-list-row-urgent {
    font-size: 9px;
    line-height: 1;
}
.gs-lead-list-act-row {
    display: flex;
    gap: 4px;
}
.gs-lead-list-act {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
    border: 1px solid var(--gs-gray-200);
    background: var(--gs-card-bg);
    color: var(--gs-text-secondary);
    text-decoration: none;
    transition: border-color var(--gs-transition), color var(--gs-transition), background var(--gs-transition);
}
.gs-lead-list-act:hover {
    border-color: var(--gs-primary);
    color: var(--gs-primary);
    background: var(--gs-primary-50);
}
.gs-lead-list-act--wa:hover {
    border-color: var(--gs-success);
    color: var(--gs-success);
    background: var(--gs-success-light);
}

/* --- Lead lista v11 — paginazione (FASE E) --- */
.gs-lead-list-pag {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 20px;
}
.gs-lead-list-pag-btn {
    padding: 8px 16px;
    border-radius: var(--gs-radius-sm);
    border: 1px solid var(--gs-gray-200);
    background: var(--gs-card-bg);
    font-size: 13px;
    font-weight: 600;
    color: var(--gs-text-secondary);
    cursor: pointer;
    font-family: inherit;
    transition: border-color var(--gs-transition), color var(--gs-transition);
}
.gs-lead-list-pag-btn:hover:not(:disabled) {
    border-color: var(--gs-primary);
    color: var(--gs-primary);
}
.gs-lead-list-pag-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}
.gs-lead-list-pag-btn.gs-lead-list-pag-btn--active {
    background: var(--gs-primary);
    border-color: var(--gs-primary);
    color: var(--gs-card-bg);
}
.gs-lead-list-pag-info {
    font-size: 13px;
    color: var(--gs-text-tertiary);
}
.gs-lead-list-pag-summary {
    font-size: 13px;
    color: var(--gs-text-tertiary);
}

/* Lista lead â€” righe separate, no striping di sfondo */
.gs-lead-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 8px;
}
.gs-lead-name,
.gs-lead-sub {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
}
.gs-lead-contact-line {
    display: flex;
    flex-wrap: nowrap;
    gap: 8px;
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.gs-lead-contact-line .gs-lead-contact {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.gs-lead-bpo { display: flex; align-items: center; gap: 6px; }
.gs-lead-bpo i { font-size: 16px; }
.gs-lead-bpo .bi-lightning.gs-lead-bpo-on { color: var(--gs-amber); }
.gs-lead-bpo .bi-file-earmark-text.gs-lead-bpo-on { color: var(--gs-teal); }
.gs-lead-bpo .bi-box.gs-lead-bpo-on { color: var(--gs-info); }
.pagination .page-link.gs-page-link-active {
    background: var(--gs-primary);
    border-color: var(--gs-primary);
    color: #fff;
}


/* BODY */
body {
    background-color: var(--gs-body-bg);
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    color: var(--gs-text-primary);
    font-size: 15px;
}

/* CARD GIGASOLAR */
.gs-card {
    background: var(--gs-card-bg);
    border-radius: var(--gs-card-radius);
    box-shadow: var(--gs-card-shadow);
    border: none;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.gs-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

.gs-card-kpi {
    border-left: 4px solid var(--gs-primary, #1e3a5f);
    transition: transform 0.2s;
}
.gs-card-kpi:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

/* BOTTONI */
.btn-gs-primary {
    background-color: var(--gs-primary);
    border: none;
    border-radius: 0.5rem;
    color: #ffffff;
    font-weight: 600;
    padding: 0.625rem 1.25rem;
    transition: all 0.2s ease;
}

.btn-gs-primary:hover {
    background-color: var(--gs-primary-hover);
    color: white;
    transform: translateY(-1px);
}

.btn-gs-outline {
    background-color: transparent;
    border: 1px solid var(--gs-primary);
    border-radius: 0.5rem;
    color: var(--gs-primary);
    font-weight: 500;
    padding: 0.625rem 1.25rem;
    transition: all 0.2s ease;
}

.btn-gs-outline:hover {
    background-color: var(--gs-primary);
    color: white;
}

/* INPUT */
.form-control-gs {
    border-radius: 0.5rem;
    border: 1px solid #e5e7eb;
    padding: 0.75rem 1rem;
    transition: all 0.2s ease;
}

.form-control-gs:focus {
    border-color: var(--gs-primary);
    box-shadow: 0 0 0 3px var(--gs-primary-light);
    outline: none;
}

/* === Sidebar === */

/* SIDEBAR BASE */
.gs-sidebar {
    background: var(--gs-sidebar-gradient);
    min-height: 100vh;
    width: var(--gs-sidebar-width);
    position: fixed;
    left: 0;
    top: 0;
    z-index: 1000;
    transition: width 0.2s ease;
    display: flex;
    flex-direction: column;
    box-shadow: 4px 0 15px rgba(0, 0, 0, 0.1);
}

.gs-sidebar.gs-sidebar-resizing {
    transition: none !important;
}

@media (max-width: 991.98px) {
    .gs-sidebar {
        transition: transform 0.3s ease, width 0.2s ease;
    }
}

/* SIDEBAR COLLAPSED */
.gs-sidebar.collapsed {
    width: var(--gs-sidebar-collapsed-width);
}

.gs-sidebar.collapsed .gs-sidebar-text,
.gs-sidebar.collapsed .gs-sidebar-badge,
.gs-sidebar.collapsed .gs-sidebar-user-info,
.gs-sidebar.collapsed .gs-sidebar-logo-text {
    opacity: 0;
    width: 0;
    overflow: hidden;
    white-space: nowrap;
}

.gs-sidebar.collapsed .gs-sidebar-item {
    justify-content: center;
    padding: 0.75rem;
}

.gs-sidebar.collapsed .gs-sidebar-item i {
    margin: 0;
    font-size: 1.4rem;
}

.gs-sidebar.collapsed .gs-sidebar-accordion-arrow {
    opacity: 0;
    width: 0;
    overflow: hidden;
    white-space: nowrap;
}

.gs-sidebar.collapsed .gs-sidebar-group-label span:not(.gs-sidebar-accordion-arrow) {
    display: none;
}

.gs-sidebar.collapsed .gs-sidebar-logo {
    justify-content: center;
    padding: 1rem 0.5rem;
}

.gs-sidebar.collapsed .gs-sidebar-logo img {
    height: 35px;
    width: 35px;
    object-fit: contain;
}

.gs-sidebar.collapsed .gs-sidebar-user {
    justify-content: center;
    padding: 1rem 0.5rem;
}

.gs-sidebar.collapsed .gs-sidebar-user .user-avatar {
    margin: 0 auto;
}

/* TOGGLE BUTTON */
.gs-sidebar-toggle {
    position: absolute;
    top: 1rem;
    right: -12px;
    width: 24px;
    height: 24px;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    transition: var(--gs-sidebar-transition);
    z-index: 1001;
}

.gs-sidebar-toggle:hover {
    background: var(--gs-primary);
    color: white;
    border-color: var(--gs-primary);
}

.gs-sidebar-toggle i {
    font-size: 0.75rem;
    transition: transform 0.3s ease;
}

.gs-sidebar.collapsed .gs-sidebar-toggle i {
    transform: rotate(180deg);
}

/* SIDEBAR LOGO */
.gs-sidebar-logo {
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid var(--gs-sidebar-border);
    display: flex;
    align-items: center;
    gap: 0.75rem;
    transition: var(--gs-sidebar-transition);
}

.gs-sidebar-logo img {
    height: 40px;
    width: auto;
    transition: var(--gs-sidebar-transition);
}

.gs-sidebar-logo-text {
    transition: var(--gs-sidebar-transition);
}

.gs-sidebar-logo-text h5 {
    color: white;
    font-weight: 700;
    margin: 0;
    font-size: 1.25rem;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

.gs-sidebar-logo-text small {
    color: var(--gs-sidebar-text-muted);
    font-size: 0.7rem;
}

.gs-sidebar-logo.gs-sidebar-logo-pad-lg {
    padding: var(--gs-sidebar-logo-pad-lg);
}

.gs-sidebar-logo-brand-img {
    height: auto;
    width: auto;
    max-width: 100%;
}

.gs-sidebar-user-info .user-name.gs-sidebar-user-name-click {
    cursor: pointer;
}

.gs-sidebar-app-version {
    color: var(--gs-sidebar-version-muted);
    font-size: 0.6rem;
    margin: 0;
    margin-top: 4px;
}

/* SIDEBAR NAV */
.gs-sidebar-nav {
    padding: 1rem 0.75rem;
    flex-grow: 1;
    overflow-y: auto;
}

.gs-sidebar-group {
    border-radius: var(--gs-radius-sm);
}

.gs-sidebar-group.expanded {
    background: rgba(255, 255, 255, 0.08);
}

/* Gerarchia visiva: Livello 2 (gruppi sotto Impostazioni) = padding 1rem + linea */
.gs-sidebar-group .gs-sidebar-item-wrapper .gs-sidebar-accordion-toggle {
    padding-left: 1rem;
    border-left: 2px solid rgba(255, 255, 255, 0.12);
}

/* Gerarchia visiva: Livello 3 (pagine sotto gruppi) = padding 2rem + linea */
.gs-sidebar-group .gs-sidebar-item {
    padding-left: 2rem;
    border-left: 2px solid rgba(255, 255, 255, 0.12);
}

/* Livello 3: voci sotto accordion radice (Commerciale, Acquisti, ...) */
.gs-sidebar-l3 {
    padding-left: 68px !important;
    border-left: 2px solid rgba(255, 255, 255, 0.12);
}

.gs-sidebar.collapsed .gs-sidebar-l3,
.gs-sidebar.collapsed .gs-sidebar-group .gs-sidebar-item {
    padding-left: 0.5rem !important;
    border-left: none;
}

.gs-sidebar.collapsed .gs-sidebar-group .gs-sidebar-item-wrapper .gs-sidebar-accordion-toggle {
    padding-left: 0.5rem;
    border-left: none;
}

/* ÃƒÂ¢Ã¢â‚¬Â¢Ã‚ÂÃƒÂ¢Ã¢â‚¬Â¢Ã‚ÂÃƒÂ¢Ã¢â‚¬Â¢Ã‚Â Sidebar 3 livelli (L1/L2/L3) ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â aggiunte, convivono con classi esistenti ÃƒÂ¢Ã¢â‚¬Â¢Ã‚ÂÃƒÂ¢Ã¢â‚¬Â¢Ã‚ÂÃƒÂ¢Ã¢â‚¬Â¢Ã‚Â */
.gs-sidebar-l1 {
    padding: 10px 16px;
    padding-left: 16px;
    font-weight: 600;
    font-size: 0.95rem;
    color: #ffffff;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    transition: background-color 0.2s;
}
.gs-sidebar-l1:hover {
    background-color: rgba(255, 255, 255, 0.08);
}
.gs-sidebar-l1.active {
    background-color: rgba(255, 255, 255, 0.12);
}

.gs-sidebar-l2 {
    padding: 8px 16px 8px 36px;
    padding-left: 36px;
    font-weight: 500;
    font-size: 0.88rem;
    color: rgba(255, 255, 255, 0.85);
    border-left: 2px solid rgba(255, 255, 255, 0.15);
    margin-left: 12px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    transition: all 0.2s;
}
.gs-sidebar-l2:hover {
    background-color: rgba(255, 255, 255, 0.06);
    border-left-color: #f59e0b;
}
.gs-sidebar-l2.active {
    border-left-color: #f59e0b;
    color: #ffffff;
}

.gs-sidebar-l2-link {
    padding: 8px 16px 8px 24px;
    font-weight: 400;
    font-size: 0.88rem;
    color: rgba(255, 255, 255, 0.7);
    border-left: 2px solid transparent;
    margin-left: 12px;
    text-decoration: none;
    display: flex;
    align-items: center;
    transition: all 0.2s;
}
.gs-sidebar-l2-link:hover {
    color: #ffffff;
    background-color: rgba(255, 255, 255, 0.06);
}
.gs-sidebar-l2-link.active {
    color: #f59e0b;
    border-left-color: #f59e0b;
}

.gs-sidebar-l3 {
    padding: 6px 16px 6px 68px;
    padding-left: 68px;
    font-weight: 400;
    font-size: 0.84rem;
    color: rgba(255, 255, 255, 0.7);
    cursor: pointer;
    display: flex;
    align-items: center;
    transition: all 0.2s;
    text-decoration: none;
}
.gs-sidebar-l3::before {
    content: '\00B7';
    margin-right: 8px;
    color: rgba(255, 255, 255, 0.4);
    font-size: 1.2rem;
}
.gs-sidebar-l3:hover {
    color: #ffffff;
    background-color: rgba(255, 255, 255, 0.06);
}
.gs-sidebar-l3.active {
    color: #f59e0b;
    background-color: rgba(245, 158, 11, 0.1);
}
.gs-sidebar-l3.active::before {
    color: #f59e0b;
}
.gs-sidebar.collapsed .gs-sidebar-l3 {
    padding-left: 0.5rem !important;
}
.gs-sidebar.collapsed .gs-sidebar-l3::before {
    display: none;
}

.gs-sidebar-item {
    display: flex;
    align-items: center;
    padding: 8px 16px 8px 24px;
    color: rgba(255,255,255,0.7);
    text-decoration: none;
    font-size: 0.9rem;
    transition: all 0.2s ease;
    border-left: 3px solid transparent;
    border-radius: 0 var(--gs-radius-sm) var(--gs-radius-sm) 0;
    margin-bottom: 0.25rem;
    position: relative;
}

.gs-sidebar-item:hover {
    background: rgba(255,255,255,0.08);
    color: #fff;
    text-decoration: none;
}

.gs-sidebar-item.active {
    background: rgba(255,255,255,0.12);
    color: #fff;
    font-weight: 600;
    border-left: 3px solid var(--gs-accent, #f59e0b);
}

.gs-sidebar-item i,
.gs-sidebar-item .bi {
    width: 20px;
    margin-right: 10px;
    font-size: 1rem;
    opacity: 0.7;
}

.gs-sidebar-item.active i,
.gs-sidebar-item.active .bi {
    opacity: 1;
}

.gs-sidebar-text {
    transition: var(--gs-sidebar-transition);
    white-space: nowrap;
}

.gs-sidebar-badge {
    margin-left: auto;
    background-color: #ef4444;
    color: white;
    font-size: 0.7rem;
    padding: 0.15rem 0.5rem;
    border-radius: 9999px;
    font-weight: 600;
    transition: var(--gs-sidebar-transition);
}

/* ===== Accordion Impostazioni ===== */
.gs-sidebar-item-wrapper {
    margin-bottom: 0.25rem;
}

.gs-sidebar-accordion-toggle {
    cursor: pointer;
    display: flex;
    align-items: center;
    width: 100%;
    background: none;
    border: none;
    color: var(--gs-sidebar-text);
    font-size: inherit;
    padding: 0.75rem 1rem;
    border-radius: 0.5rem;
    text-align: left;
    transition: var(--gs-sidebar-transition);
    gap: 0.75rem;
}

.gs-sidebar-accordion-toggle:hover {
    background-color: var(--gs-sidebar-hover-bg);
    color: var(--gs-sidebar-text-active);
}

.gs-sidebar-accordion-toggle.expanded {
    background-color: var(--gs-sidebar-active-bg);
    color: var(--gs-sidebar-text-active);
}

/* Sidebar gruppi: unico colore blu scuro #1e3a5f (solo sfondo header, testo bianco, opacitÃƒÆ’Ã‚Â  leggera) */
.gs-sidebar-commerciale .gs-sidebar-accordion-toggle { background: rgba(30, 58, 95, 0.35); color: #fff; }
.gs-sidebar-commerciale .gs-sidebar-accordion-toggle:hover { background: rgba(30, 58, 95, 0.5); color: #fff; }
.gs-sidebar-commerciale .gs-sidebar-accordion-toggle.expanded { background: rgba(30, 58, 95, 0.5); color: #fff; }

.gs-sidebar-acquisti .gs-sidebar-accordion-toggle { background: rgba(30, 58, 95, 0.35); color: #fff; }
.gs-sidebar-acquisti .gs-sidebar-accordion-toggle:hover { background: rgba(30, 58, 95, 0.5); color: #fff; }
.gs-sidebar-acquisti .gs-sidebar-accordion-toggle.expanded { background: rgba(30, 58, 95, 0.5); color: #fff; }

.gs-sidebar-operativo .gs-sidebar-accordion-toggle { background: rgba(30, 58, 95, 0.35); color: #fff; }
.gs-sidebar-operativo .gs-sidebar-accordion-toggle:hover { background: rgba(30, 58, 95, 0.5); color: #fff; }
.gs-sidebar-operativo .gs-sidebar-accordion-toggle.expanded { background: rgba(30, 58, 95, 0.5); color: #fff; }

.gs-sidebar-personale .gs-sidebar-accordion-toggle { background: rgba(30, 58, 95, 0.35); color: #fff; }
.gs-sidebar-personale .gs-sidebar-accordion-toggle:hover { background: rgba(30, 58, 95, 0.5); color: #fff; }
.gs-sidebar-personale .gs-sidebar-accordion-toggle.expanded { background: rgba(30, 58, 95, 0.5); color: #fff; }

.gs-sidebar-amministrazione .gs-sidebar-accordion-toggle { background: rgba(30, 58, 95, 0.35); color: #fff; }
.gs-sidebar-amministrazione .gs-sidebar-accordion-toggle:hover { background: rgba(30, 58, 95, 0.5); color: #fff; }
.gs-sidebar-amministrazione .gs-sidebar-accordion-toggle.expanded { background: rgba(30, 58, 95, 0.5); color: #fff; }

.gs-sidebar-marketing .gs-sidebar-accordion-toggle { background: rgba(30, 58, 95, 0.35); color: #fff; }
.gs-sidebar-marketing .gs-sidebar-accordion-toggle:hover { background: rgba(30, 58, 95, 0.5); color: #fff; }
.gs-sidebar-marketing .gs-sidebar-accordion-toggle.expanded { background: rgba(30, 58, 95, 0.5); color: #fff; }

.gs-sidebar-impostazioni .gs-sidebar-accordion-toggle { background: rgba(30, 58, 95, 0.35); color: #fff; }
.gs-sidebar-impostazioni .gs-sidebar-accordion-toggle:hover { background: rgba(30, 58, 95, 0.5); color: #fff; }
.gs-sidebar-impostazioni .gs-sidebar-accordion-toggle.expanded { background: rgba(30, 58, 95, 0.5); color: #fff; }

.gs-sidebar-intelligenza-ai .gs-sidebar-accordion-toggle { background: rgba(30, 58, 95, 0.35); color: #fff; }
.gs-sidebar-intelligenza-ai .gs-sidebar-accordion-toggle:hover { background: rgba(30, 58, 95, 0.5); color: #fff; }
.gs-sidebar-intelligenza-ai .gs-sidebar-accordion-toggle.expanded { background: rgba(30, 58, 95, 0.5); color: #fff; }

/* Messaggi: indaco â€” distinto dal blu Commerciale / teal brand */
.gs-sidebar-messaggi .gs-sidebar-accordion-toggle { background: rgba(79, 70, 229, 0.42); color: #fff; }
.gs-sidebar-messaggi .gs-sidebar-accordion-toggle:hover { background: rgba(79, 70, 229, 0.58); color: #fff; }
.gs-sidebar-messaggi .gs-sidebar-accordion-toggle.expanded { background: rgba(79, 70, 229, 0.62); color: #fff; }

.gs-sidebar-accordion-arrow {
    font-size: 0.75rem;
    transition: transform 0.2s ease;
}

.gs-sidebar-item-disabled {
    color: var(--gs-sidebar-text-muted) !important;
    cursor: default;
    pointer-events: none;
    opacity: 0.6;
}

/* ÃƒÂ¢Ã¢â‚¬ÂÃ¢â€šÂ¬ÃƒÂ¢Ã¢â‚¬ÂÃ¢â€šÂ¬ Group Label L3 ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â etichetta separatrice sotto-sezioni ÃƒÂ¢Ã¢â‚¬ÂÃ¢â€šÂ¬ÃƒÂ¢Ã¢â‚¬ÂÃ¢â€šÂ¬ */
.gs-sidebar-group-label {
    padding: 0.5rem 1rem 0.5rem 1.2rem;
    font-size: 0.85rem;            /* UGUALE alle voci menu */
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: none;           /* NO uppercase */
    color: rgba(255,255,255,0.55);
    cursor: default;
    user-select: none;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background-color: rgba(0,0,0,0.15);  /* sfondo leggermente piÃƒÆ’Ã‚Â¹ scuro */
    border-left: 3px solid rgba(255,255,255,0.2);
    margin-top: 0.25rem;
    margin-bottom: 0.1rem;
}

.gs-sidebar-group-label .bi {
    font-size: 0.85rem;
    opacity: 0.7;
}

/* Group label cliccabile (accordion L3) */
.gs-sidebar-group-toggle {
    width: 100%;
    border: none;
    text-align: left;
    cursor: pointer;
    transition: background-color 0.2s;
}

.gs-sidebar-group-toggle:hover {
    background-color: rgba(0,0,0,0.25);
}

.gs-sidebar-group-toggle.expanded {
    background-color: rgba(0,0,0,0.20);
    border-left-color: rgba(255,255,255,0.4);
}

.gs-sidebar-group-toggle .gs-sidebar-accordion-arrow {
    font-size: 0.7rem;
    opacity: 0.6;
}

/* SIDEBAR USER - (removed ex L2 sub) ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â piÃƒÆ’Ã‚Â¹ indentati */
/* SIDEBAR USER */
.gs-sidebar-user {
    padding: 1rem 1.25rem;
    border-top: 1px solid var(--gs-sidebar-border);
    display: flex;
    align-items: center;
    gap: 0.75rem;
    transition: var(--gs-sidebar-transition);
}

.gs-sidebar-user .user-avatar {
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: 600;
    flex-shrink: 0;
    border: 2px solid rgba(255, 255, 255, 0.3);
}

.gs-sidebar-user-info {
    flex-grow: 1;
    overflow: hidden;
    transition: var(--gs-sidebar-transition);
}

.gs-sidebar-user-info p {
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gs-sidebar-user-info .user-name {
    color: white;
    font-weight: 500;
    font-size: 0.875rem;
}

.gs-sidebar-user-info .user-role {
    color: var(--gs-sidebar-text-muted);
    font-size: 0.75rem;
}

.gs-sidebar-user .btn-logout {
    background: transparent;
    border: none;
    color: var(--gs-sidebar-text-muted);
    padding: 0.5rem;
    border-radius: 0.375rem;
    transition: var(--gs-sidebar-transition);
    flex-shrink: 0;
}

.gs-sidebar-user .btn-logout:hover {
    background: rgba(255, 255, 255, 0.1);
    color: white;
}

/* MAIN CONTENT ADJUSTMENT */
.gs-main {
    flex: 1;
    min-width: 0;
    margin-left: var(--gs-sidebar-width);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: var(--gs-bg, #f0f2f5);
    transition: var(--gs-sidebar-transition);
}

.gs-main.sidebar-collapsed {
    margin-left: var(--gs-sidebar-collapsed-width);
}

/* RESPONSIVE */
@media (max-width: 991.98px) {
    .gs-sidebar {
        transform: translateX(-100%);
        width: var(--gs-sidebar-width) !important;
    }
    
    .gs-sidebar.show {
        transform: translateX(0);
    }
    
    .gs-sidebar.collapsed {
        width: var(--gs-sidebar-width) !important;
    }
    
    .gs-sidebar-toggle {
        display: none;
    }
    
    .gs-main {
        margin-left: 0 !important;
    }
    
    .gs-main.sidebar-collapsed {
        margin-left: 0 !important;
    }
}

/* SIDEBAR OVERLAY (mobile) */
.gs-sidebar-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: 999;
    opacity: 0;
    visibility: hidden;
    transition: var(--gs-sidebar-transition);
}

.gs-sidebar-overlay.show {
    opacity: 1;
    visibility: visible;
}

/* TOOLTIP for collapsed sidebar */
.gs-sidebar.collapsed .gs-sidebar-item {
    position: relative;
}

.gs-sidebar.collapsed .gs-sidebar-item::after {
    content: attr(data-title);
    position: absolute;
    left: calc(100% + 10px);
    top: 50%;
    transform: translateY(-50%);
    background: #1f2937;
    color: white;
    padding: 0.5rem 0.75rem;
    border-radius: 0.375rem;
    font-size: 0.875rem;
    white-space: nowrap;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease;
    z-index: 1002;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    pointer-events: none;
}

/* BOLLETTA ANALISI */
.gs-hidden {
    display: none !important;
}

.gs-spacing-bottom {
    margin-bottom: 16px;
}

.gs-spacing-top {
    margin-top: 12px;
}

.gs-bolletta-title-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}

.gs-bolletta-title-row .gs-btn-outline,
.gs-bolletta-actions .gs-btn-action,
.gs-bolletta-actions .gs-btn-outline,
.gs-bolletta-upload-row .gs-btn-action {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.gs-bolletta-upload-row {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.gs-bolletta-upload-dropzone {
    display: flex;
    align-items: center;
    gap: 8px;
    border: 1px solid var(--gs-border);
    border-radius: var(--gs-radius-sm);
    padding: 10px 12px;
    cursor: pointer;
    flex: 1 1 380px;
    margin: 0;
}

.gs-bolletta-upload-dropzone .bi {
    color: var(--gs-text-muted);
    font-size: 20px;
}

.gs-bolletta-upload-file {
    color: var(--gs-text-muted);
    font-size: 12px;
}

.gs-bolletta-loading {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 280px;
}

.gs-loading-spinner {
    width: 14px;
    height: 14px;
    border: 2px solid rgba(14, 116, 144, 0.2);
    border-top-color: var(--gs-primary);
    border-radius: 999px;
    animation: gs-spin 0.8s linear infinite;
}

@keyframes gs-spin {
    to { transform: rotate(360deg); }
}

.gs-loading-progress {
    height: 8px;
    width: 120px;
    border-radius: 999px;
    background: #e5e7eb;
    overflow: hidden;
}

.gs-loading-progress-bar {
    width: 40%;
    height: 100%;
    background: linear-gradient(90deg, var(--gs-primary), var(--gs-accent));
    animation: gs-loading-slide 1.2s ease-in-out infinite;
}

@keyframes gs-loading-slide {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(300%); }
}

.gs-bolletta-error {
    background: #fef2f2;
    border: 1px solid var(--gs-danger);
    border-radius: var(--gs-radius-sm);
    color: var(--gs-danger);
    padding: 8px 12px;
    margin-top: 8px;
}

.gs-bolletta-result-header {
    display: flex;
    align-items: center;
    gap: 8px;
}

.gs-bolletta-result-header .gs-badge {
    margin-left: auto;
}

.gs-bolletta-actions {
    display: flex;
    gap: 8px;
    margin-top: 16px;
}

.gs-bolletta-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: end;
    margin-bottom: 12px;
}

.gs-bolletta-filter-item {
    min-width: 180px;
    flex: 1 1 180px;
}

.gs-select {
    width: 100%;
    border: 1px solid var(--gs-border);
    border-radius: var(--gs-radius-sm);
    padding: 7px 10px;
    background: #fff;
    color: var(--gs-text);
}

.gs-checkbox-inline {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.9rem;
}

/* ÃƒÂ¢Ã¢â‚¬Â¢Ã‚ÂÃƒÂ¢Ã¢â‚¬Â¢Ã‚ÂÃƒÂ¢Ã¢â‚¬Â¢Ã‚ÂÃƒÂ¢Ã¢â‚¬Â¢Ã‚ÂÃƒÂ¢Ã¢â‚¬Â¢Ã‚ÂÃƒÂ¢Ã¢â‚¬Â¢Ã‚ÂÃƒÂ¢Ã¢â‚¬Â¢Ã‚Â BOLLETTA ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â COMPONENTI ÃƒÂ¢Ã¢â‚¬Â¢Ã‚ÂÃƒÂ¢Ã¢â‚¬Â¢Ã‚ÂÃƒÂ¢Ã¢â‚¬Â¢Ã‚ÂÃƒÂ¢Ã¢â‚¬Â¢Ã‚ÂÃƒÂ¢Ã¢â‚¬Â¢Ã‚ÂÃƒÂ¢Ã¢â‚¬Â¢Ã‚ÂÃƒÂ¢Ã¢â‚¬Â¢Ã‚Â */
.gs-bolletta-highlight-new {
    animation: gs-bolletta-highlight-fade 3s ease-out;
}

@keyframes gs-bolletta-highlight-fade {
    0% {
        background-color: rgba(255, 193, 7, 0.6);
    }
    100% {
        background-color: transparent;
    }
}

.gs-bolletta-card-match {
    border-left: 4px solid #28a745;
    background: #f0fff4;
}

.gs-bolletta-card-nuovo {
    border-left: 4px solid #0d6efd;
    background: #f0f7ff;
}

.gs-bolletta-card-cerca {
    border-left: 4px solid #6c757d;
    background: #f8f9fa;
}

.gs-bolletta-card-elimina {
    border-left: 4px solid #dc3545;
    background: #fff5f5;
}

.gs-sidebar.collapsed .gs-sidebar-item:hover::after {
    opacity: 1;
    visibility: visible;
}

/* HEADER */
.gs-header {
    background-color: white;
    border-bottom: 1px solid #e5e7eb;
    padding: 0.75rem 1.5rem;
    position: sticky;
    top: 0;
    z-index: 100;
}

/* CRM30-B2: toast sotto la navbar (host nel header) */
.gs-header-toast-host {
    position: relative;
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.gs-header-toast-host .gs-toast-container {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    left: auto;
    margin: 0;
    z-index: 10000;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    align-items: flex-end;
}

.gs-header-online-dot {
    width: 8px;
    height: 8px;
    flex-shrink: 0;
}

/* STATS CARD */
.gs-stats-card {
    background: white;
    border-radius: var(--gs-card-radius);
    padding: 1.25rem;
    box-shadow: var(--gs-card-shadow);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

/* Stats Card Clickable */
.gs-stats-card.cursor-pointer:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
    cursor: pointer;
}

.gs-stats-card .stats-icon {
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.gs-stats-card .stats-value {
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1.2;
}

.gs-stats-card .stats-label {
    color: var(--gs-text-secondary);
    font-size: 0.875rem;
}

/* TABELLA LEAD */
.gs-table {
    background: white;
    border-radius: var(--gs-card-radius);
    box-shadow: var(--gs-card-shadow);
    overflow: hidden;
}

.gs-table table {
    margin-bottom: 0;
}

.gs-table thead {
    background-color: #f9fafb;
}

.gs-table th {
    font-weight: 600;
    color: var(--gs-text-secondary);
    font-size: 0.875rem;
    padding: 1rem;
    border-bottom: 1px solid #e5e7eb;
}

.gs-table td {
    padding: 1rem;
    vertical-align: middle;
    border-bottom: 1px solid #f3f4f6;
}

.gs-table tbody tr:hover {
    background-color: #f9fafb;
}

.gs-regole-override {
    background-color: rgba(245, 158, 11, 0.12);
    border: 1px solid #f59e0b;
}

.table-row-unread {
    font-weight: 600;
    border-left: 3px solid #0d6efd;
}

/* BADGE STATO */
.gs-badge {
    padding: 0.375rem 0.75rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: 500;
}

.gs-badge-nuovo { background-color: #fef2f2; color: #dc2626; }
.gs-badge-contattato { background-color: #fff7ed; color: #ea580c; }
.gs-badge-qualificato { background-color: #f0fdf4; color: #16a34a; }
.gs-badge-sopralluogo { background-color: #fffbeb; color: #d97706; }
.gs-badge-preventivo { background-color: #faf5ff; color: #7c3aed; }
.gs-badge-negoziazione { background-color: #fdf2f8; color: #db2777; }
.gs-badge-vinto { background-color: #ecfdf5; color: #059669; }
.gs-badge-perso { background-color: #f3f4f6; color: #4b5563; }
.gs-badge-non_qualificato { background-color: #f3f4f6; color: #4b5563; }

/* TABS (Lead Management e altre liste) */
.gs-tabs {
    display: flex;
    gap: 0.25rem;
    padding: 0.5rem;
    border-bottom: 1px solid #e5e7eb;
    overflow-x: auto;
}

.gs-tab {
    padding: 0.5rem 1rem;
    border-radius: 0.5rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: #374151;
    background: transparent;
    border: none;
    white-space: nowrap;
    cursor: pointer;
    transition: all 0.2s ease;
}

.gs-tab:hover {
    background-color: #f3f4f6;
}

.gs-tab.active {
    background-color: #d97706;
    color: #ffffff;
}

.gs-tab-badge {
    margin-left: 0.5rem;
    padding: 0.125rem 0.5rem;
    border-radius: 9999px;
    font-size: 0.75rem;
}

/* Badge tab inattivo: sfondo grigio chiaro, testo Ambra */
.gs-tab .gs-tab-badge {
    background-color: #e5e7eb;
    color: #d97706;
}

/* Badge tab attivo: sfondo bianco opaco, testo bianco */
.gs-tab.active .gs-tab-badge {
    background-color: rgba(255, 255, 255, 0.25);
    color: #ffffff;
}

/* TOAST */
.gs-toast-container {
    position: fixed;
    top: 1rem;
    right: 1rem;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.gs-toast-dismiss {
    background: none !important;
}

.gs-toast {
    padding: 1rem 1.5rem;
    border-radius: 0.5rem;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    display: flex;
    align-items: center;
    gap: 0.75rem;
    animation: slideIn 0.3s ease;
    min-width: 300px;
    max-width: 500px;
}

.gs-toast-success {
    background-color: #ecfdf5;
    border-left: 4px solid #10b981;
    color: #065f46;
}

.gs-toast-error {
    background-color: #fef2f2;
    border-left: 4px solid #ef4444;
    color: #991b1b;
}

.gs-toast-warning {
    background-color: #fffbeb;
    border-left: 4px solid #f59e0b;
    color: #92400e;
}

.gs-toast-info {
    background-color: #eff6ff;
    border-left: 4px solid #3b82f6;
    color: #1e40af;
}

@keyframes slideIn {
    from {
        transform: translateX(100%);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

/* GIUSEPPE AI */
.gs-ai-button {
    position: fixed;
    bottom: 1.5rem;
    right: 1.5rem;
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 50%;
    background: var(--gs-ai-gradient);
    border: none;
    color: white;
    box-shadow: 0 4px 15px rgba(124, 58, 237, 0.4);
    cursor: pointer;
    transition: all 0.3s ease;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
}

.gs-ai-button:hover {
    transform: scale(1.1);
    box-shadow: 0 6px 20px rgba(124, 58, 237, 0.5);
    animation: aiPulse 1s ease-in-out infinite;
}

/* Pulse keyframes */
@keyframes aiPulse {
    0% {
        box-shadow: 0 0 0 0 rgba(124, 58, 237, 0.6);
    }
    50% {
        box-shadow: 0 0 0 15px rgba(124, 58, 237, 0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(124, 58, 237, 0);
    }
}

.gs-ai-button:hover .gs-ai-icon {
    animation: aiIconWiggle 0.5s ease-in-out;
}

@keyframes aiIconWiggle {
    0%, 100% {
        transform: rotate(0deg);
    }
    25% {
        transform: rotate(-10deg);
    }
    75% {
        transform: rotate(10deg);
    }
}

.gs-ai-panel {
    position: fixed;
    bottom: 1.5rem;
    right: 1.5rem;
    width: 380px;
    height: 500px;
    background: white;
    border-radius: 1rem;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    display: flex;
    flex-direction: column;
    z-index: 1001;
    overflow: hidden;
    animation: panelSlideUp 0.3s ease;
}

@keyframes panelSlideUp {
    from {
        opacity: 0;
        transform: translateY(20px) scale(0.95);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* CRM30-C — LucioAI: top/left + dimensioni da JS; no bottom/right */
.gs-lucio-widget.gs-ai-panel {
    bottom: auto;
    right: auto;
}

.gs-lucio-widget--minimized {
    position: fixed;
    z-index: 1001;
    border-radius: 0.5rem;
    overflow: hidden;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18);
}

.gs-lucio-minimized-bar {
    background: var(--gs-ai-gradient);
    padding: 0.35rem 0.5rem 0.35rem 0.75rem;
    min-height: 2.5rem;
}

.gs-lucio-minimized-title {
    max-width: 12rem;
}

.gs-lucio-header--draggable {
    cursor: grab;
}

.gs-lucio-widget--dragging .gs-lucio-header--draggable {
    cursor: grabbing;
}

.gs-lucio-widget--dragging,
.gs-lucio-widget--resizing {
    transition: none !important;
    animation: none !important;
}

.gs-lucio-resize-handle {
    position: absolute;
    right: 1px;
    bottom: 1px;
    width: 8px;
    height: 8px;
    cursor: nwse-resize;
    z-index: 5;
    background: linear-gradient(135deg, transparent 50%, rgba(0, 0, 0, 0.22) 50%);
}

.gs-lucio-header-avatar {
    width: 2.5rem;
    height: 2.5rem;
}

.gs-lucio-header-avatar-icon {
    font-size: 1.25rem;
}

.gs-lucio-header-subtitle {
    max-width: 13.75rem;
}

.gs-lucio-messages {
    background-color: var(--bs-secondary-bg, rgb(248 250 252));
}

.gs-lucio-msg-bubble {
    max-width: 85%;
}

.gs-lucio-msg-bubble--user {
    border-bottom-right-radius: 0.25rem;
}

.gs-lucio-msg-bubble--ai {
    border-bottom-left-radius: 0.25rem;
}

.gs-lucio-msg-text {
    white-space: pre-wrap;
}

.gs-lucio-msg-time {
    font-size: 0.7rem;
}

.gs-lucio-input {
    padding: 1rem;
}

.gs-ai-button .gs-ai-icon {
    font-size: 1.5rem;
}

@media (max-width: 575.98px) {
    .gs-ai-panel {
        width: calc(100% - 2rem);
        left: 1rem;
        right: 1rem;
        height: 70vh;
    }

    .gs-lucio-widget.gs-ai-panel {
        right: auto;
    }
}

.gs-ai-header {
    background: var(--gs-ai-gradient);
    color: white;
    padding: 1rem 1.25rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.gs-ai-messages {
    flex: 1;
    overflow-y: auto;
    padding: 1rem;
}

.gs-ai-input {
    padding: 1rem;
    border-top: 1px solid #e5e7eb;
}

/* LOADING SPINNER */
.gs-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
}

.gs-spinner {
    width: 2.5rem;
    height: 2.5rem;
    border: 3px solid #e5e7eb;
    border-top-color: var(--gs-primary);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

/* UTILITIES */
.text-gs-primary { color: var(--gs-primary) !important; }
.bg-gs-primary { background-color: var(--gs-primary) !important; }
.border-gs-primary { border-color: var(--gs-primary) !important; }

/* ================================================
   HEADER NOTIFICATIONS
   ================================================ */

.gs-header-alerts {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    flex: 1;
    margin: 0 1rem;
    overflow: hidden;
}

.gs-header-alert {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.35rem 0.75rem;
    border-radius: 2rem;
    font-size: 0.8rem;
    font-weight: 500;
    white-space: nowrap;
    animation: slideInAlert 0.3s ease;
    cursor: pointer;
    transition: all 0.2s ease;
}

.gs-header-alert:hover {
    transform: scale(1.02);
}

.gs-header-alert .btn-close {
    font-size: 0.6rem;
    padding: 0.25rem;
    margin-left: 0.25rem;
}

.gs-header-alert.alert-new-lead {
    background-color: #dbeafe;
    color: #1e40af;
}

.gs-header-alert.alert-scadenza {
    background-color: #fef3c7;
    color: #92400e;
}

.gs-header-alert.alert-preventivo {
    background-color: #f3e8ff;
    color: #6b21a8;
}

.gs-header-alert.alert-success {
    background-color: #d1fae5;
    color: #065f46;
}

.gs-header-alert.alert-error {
    background-color: #fee2e2;
    color: #991b1b;
}

.gs-header-alert.alert-warning {
    background-color: #fef3c7;
    color: #92400e;
}

@keyframes slideInAlert {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ================================================
   GIUSEPPE AI - BADGE E ANIMAZIONI
   ================================================ */

/* Badge notifiche AI */
.gs-ai-badge {
    position: absolute;
    top: -5px;
    right: -5px;
    min-width: 20px;
    height: 20px;
    background-color: #ef4444;
    color: white;
    font-size: 0.7rem;
    font-weight: 600;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid white;
    animation: badgePop 0.3s ease;
}

@keyframes badgePop {
    0% {
        transform: scale(0);
    }
    50% {
        transform: scale(1.2);
    }
    100% {
        transform: scale(1);
    }
}

/* 1159 â€” LucioAI: presenza chat esterne attive (polling sessioni) */
.gs-ai-live-dot {
    position: absolute;
    bottom: 4px;
    right: 4px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 2px solid #fff;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.12);
    pointer-events: none;
}

.gs-ai-live-dot--ok {
    background: #22c55e;
}

.gs-ai-live-dot--warn {
    background: #eab308;
}

.gs-ai-live-dot--err {
    background: #ef4444;
}

/* Indicatore "sta scrivendo" */
.gs-ai-typing {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.5rem 1rem;
}

.gs-ai-typing-dot {
    width: 8px;
    height: 8px;
    background-color: #7c3aed;
    border-radius: 50%;
    animation: typingBounce 1.4s ease-in-out infinite;
}

.gs-ai-typing-dot:nth-child(2) {
    animation-delay: 0.2s;
}

.gs-ai-typing-dot:nth-child(3) {
    animation-delay: 0.4s;
}

@keyframes typingBounce {
    0%, 60%, 100% {
        transform: translateY(0);
    }
    30% {
        transform: translateY(-8px);
    }
}

/* Responsive AI Panel */
@media (max-width: 575.98px) {
    .gs-ai-panel {
        width: calc(100% - 2rem);
        left: 1rem;
        right: 1rem;
        height: 70vh;
        bottom: 1rem;
    }

    .gs-lucio-widget.gs-ai-panel {
        right: auto;
        bottom: auto;
    }
    
    .gs-ai-button {
        bottom: 1rem;
        right: 1rem;
        width: 3rem;
        height: 3rem;
    }
}

/* ================================================
   DESIGN SYSTEM - PAGINE (Import Fattura, etc.)
   ================================================ */

.gs-page-bg {
    background: var(--gs-bg);
    min-height: 100vh;
    padding: 20px 24px;
}

.gs-page-title {
    font-weight: 700;
    font-size: 20px;
    color: var(--gs-text);
    margin-bottom: 4px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.gs-page-subtitle {
    font-size: 13px;
    color: var(--gs-text-muted);
}

.gs-page-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 14px;
}

.gs-card {
    background: var(--gs-card-bg);
    border-radius: var(--gs-radius-md);
    border: 1px solid var(--gs-border);
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
    margin-bottom: 16px;
    overflow: hidden;
}

.gs-card-header {
    padding: 14px 18px;
    border-bottom: 1px solid #f1f5f9;
    font-weight: 600;
    font-size: 14px;
}

.gs-card-body {
    padding: 14px 18px;
}

.gs-card-header-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
}

.gs-no-padding {
    padding: 0;
}

.gs-row-clickable {
    cursor: pointer;
}

.gs-empty-state {
    padding: 18px;
    color: var(--gs-text-muted);
    font-size: 14px;
}

.gs-alert {
    border-radius: var(--gs-radius-sm);
    padding: 10px 12px;
    margin-bottom: 12px;
    border: 1px solid transparent;
    font-size: 13px;
}

.gs-alert-success {
    background: #ecfdf5;
    color: #065f46;
    border-color: #a7f3d0;
}

.gs-alert-danger {
    background: #fef2f2;
    color: #991b1b;
    border-color: #fecaca;
}

.gs-input,
.gs-textarea {
    width: 100%;
    border: 1px solid var(--gs-border);
    border-radius: var(--gs-radius-sm);
    padding: 8px 10px;
    font-size: 14px;
    color: var(--gs-text);
    background: #fff;
}

.gs-input:focus,
.gs-textarea:focus {
    outline: none;
    border-color: #93c5fd;
    box-shadow: 0 0 0 2px rgba(59,130,246,0.15);
}

.gs-textarea {
    min-height: 90px;
    resize: vertical;
}

.gs-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.gs-field-full {
    grid-column: 1 / -1;
}

.gs-modal-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    z-index: 1200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px;
}

/* LEAD-FLOW-FIX-D: modale settore sopra pannello DX / ticker; stacking dedicato (FASE riscrittura Lead) */
.gs-lead-prev-sel-backdrop {
    z-index: 25000;
    isolation: isolate;
}

.gs-app-content-row:has(.gs-modal-backdrop),
.gs-main-area:has(.gs-modal-backdrop) {
    overflow: visible !important;
}

.gs-modal {
    width: min(860px, 100%);
    max-height: calc(100vh - 36px);
    overflow: auto;
}

.gs-modal-card {
    margin: 0;
}

.gs-modal-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

.gs-card-info {
    background: linear-gradient(135deg, #eff6ff, #f0fdf4);
    border: 1px solid #d1e7dd;
    border-radius: var(--gs-radius-md);
    padding: 14px 18px;
}

.gs-card-info .gs-info-title {
    font-weight: 700;
    font-size: 15px;
    color: var(--gs-primary);
}

.gs-card-info .gs-info-detail {
    font-size: 12px;
    color: var(--gs-text-muted);
    margin-top: 2px;
}

.gs-card-accent {
    border-left: 3px solid var(--gs-info);
    background: #f8fafc;
    border-radius: var(--gs-radius-md);
    padding: 14px;
}

.gs-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
}

.gs-badge-success {
    background: #dcfce7;
    color: #166534;
}

.gs-badge-warning {
    background: #fef3c7;
    color: #92400e;
}

.gs-badge-danger {
    background: #fee2e2;
    color: #991b1b;
}

.gs-badge-info {
    background: #dbeafe;
    color: #1e40af;
}

.gs-badge-secondary {
    background: #f1f5f9;
    color: #64748b;
}

.gs-label {
    display: block;
    font-size: 11px;
    font-weight: 600;
    color: var(--gs-text-light);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 4px;
}

.gs-value {
    font-size: 14px;
    font-weight: 600;
    color: var(--gs-text);
}

.gs-value-lg {
    font-size: 18px;
    font-weight: 700;
}

.gs-pill {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 12px;
    background: #e2e8f0;
}

.gs-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    display: inline-block;
}

.gs-dot-green {
    background: var(--gs-success);
}

.gs-dot-orange {
    background: var(--gs-warning);
}

.gs-dot-red {
    background: var(--gs-danger);
}

.gs-btn-primary {
    background: linear-gradient(135deg, var(--gs-primary), var(--gs-primary-light));
    color: white;
    border: none;
    border-radius: var(--gs-radius-sm);
    padding: 10px 20px;
    font-weight: 600;
    font-size: 14px;
    cursor: pointer;
}

.gs-btn-primary:hover {
    opacity: 0.95;
    color: white;
}

.gs-btn-primary:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.gs-btn-outline {
    background: transparent;
    border: 1px solid var(--gs-border);
    border-radius: var(--gs-radius-sm);
    padding: 10px 20px;
    font-weight: 600;
    font-size: 14px;
    cursor: pointer;
    color: var(--gs-text);
}

.gs-btn-outline:hover {
    background: #f8fafc;
}

.gs-btn-outline.btn-sm {
    padding: 6px 14px;
    font-size: 13px;
}

.gs-radio-option {
    border: 1px solid var(--gs-border);
    border-radius: var(--gs-radius-sm);
    padding: 10px 14px;
    cursor: pointer;
    transition: all 0.2s;
    margin-bottom: 6px;
}

.gs-radio-option:hover {
    border-color: var(--gs-info);
    background: #f8fafc;
}

.gs-radio-option.active {
    border-color: var(--gs-info);
    background: #eff6ff;
    box-shadow: 0 0 0 2px rgba(59,130,246,0.15);
}

.gs-section-title {
    font-weight: 700;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--gs-text-light);
    margin-bottom: 8px;
}

.gs-match-card {
    background: white;
    border: 1px solid var(--gs-border);
    border-radius: var(--gs-radius-sm);
    padding: 10px 14px;
    margin-bottom: 8px;
}

.gs-no-match {
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: var(--gs-radius-sm);
    padding: 10px 14px;
    color: #92400e;
}

/* Lista righe Import Fattura (colonna sinistra) */
.gs-list-item {
    padding: 12px 14px;
    border-bottom: 1px solid #f1f5f9;
    display: flex;
    gap: 12px;
    cursor: pointer;
    transition: background 0.2s;
    align-items: center;
    background: transparent;
    border-left: none;
    border-right: none;
    border-top: none;
    width: 100%;
    text-align: left;
}

.gs-list-item:hover {
    background: #f8fafc;
    /* no opacity, filter, or other effects */
}

.gs-list-item-selected {
    background: var(--gs-primary);
}

.gs-list-item-selected:hover {
    background: var(--gs-primary);
}

.gs-btn-action {
    background: linear-gradient(135deg, #3b82f6, #2563eb);
    color: #ffffff;
    border: none;
    border-radius: var(--gs-radius-sm);
    padding: 10px 20px;
    font-weight: 600;
    font-size: 14px;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(37, 99, 235, 0.3);
}

.gs-btn-action:hover {
    background: linear-gradient(135deg, #2563eb, #1d4ed8);
    color: #ffffff;
}

.gs-list-item-selected .gs-list-item-codice,
.gs-list-item-selected .gs-list-item-desc,
.gs-list-item-selected .gs-list-item-qty {
    color: white;
}

.gs-list-item-selected .gs-list-item-icon,
.gs-list-item-selected .gs-list-item-icon i,
.gs-list-item-selected .gs-list-item-icon .spinner-border {
    color: white !important;
}

.gs-list-item-selected .gs-list-item-icon .spinner-border {
    border-color: rgba(255,255,255,0.3);
    border-top-color: white;
}

.gs-list-item-icon {
    width: 32px;
    height: 32px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
}

.gs-list-item-center {
    flex-grow: 1;
    overflow: hidden;
    min-width: 0;
}

.gs-list-item-codice {
    font-weight: 700;
    font-size: 13px;
    color: var(--gs-text);
    display: block;
}

.gs-list-item-desc {
    font-size: 12px;
    color: var(--gs-text-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
    display: block;
}

.gs-list-item-qty {
    font-size: 11px;
    color: var(--gs-text-light);
    display: block;
}

.gs-list-item-badge-wrap {
    flex-shrink: 0;
}

.gs-list-item-ignora {
    opacity: 0.7;
    background: #f8fafc;
}
.gs-list-item-ignora .gs-list-item-codice,
.gs-list-item-ignora .gs-list-item-desc,
.gs-list-item-ignora .gs-list-item-qty {
    text-decoration: line-through;
    color: var(--gs-text-muted);
}

/* ÃƒÂ¢Ã¢â‚¬Â¢Ã‚ÂÃƒÂ¢Ã¢â‚¬Â¢Ã‚ÂÃƒÂ¢Ã¢â‚¬Â¢Ã‚Â CALENDARIO FULLCALENDAR RESTYLING ÃƒÂ¢Ã¢â‚¬Â¢Ã‚ÂÃƒÂ¢Ã¢â‚¬Â¢Ã‚ÂÃƒÂ¢Ã¢â‚¬Â¢Ã‚Â */

/* Wrapper card con ombra */
.gs-calendar-wrapper {
    background: #ffffff;
    border-radius: 16px;
    box-shadow: 0 4px 24px rgba(0,0,0,0.08);
    padding: 1.5rem;
}

/* Toolbar navigazione */
.fc .fc-toolbar {
    background: transparent;
    padding: 0 0 1rem 0;
    align-items: center;
}
.fc .fc-toolbar-title {
    font-size: 1.6rem;
    font-weight: 700;
    color: #1a2e3b;
    letter-spacing: -0.5px;
}

/* Bottoni Mese/Settimana/Agenda */
.fc .fc-button {
    background: #f0f4f8;
    border: none;
    color: #4a6278;
    font-weight: 600;
    font-size: 0.8rem;
    border-radius: 8px;
    padding: 0.4rem 0.9rem;
    transition: all 0.2s;
    box-shadow: none;
}
.fc .fc-button:hover {
    background: #e2e8f0;
    color: #1a2e3b;
}
.fc .fc-button-primary:not(:disabled).fc-button-active {
    background: #0d6e6e;
    color: #ffffff;
    box-shadow: 0 2px 8px rgba(13,110,110,0.3);
}
.fc .fc-prev-button,
.fc .fc-next-button {
    background: #0d6e6e;
    color: #ffffff;
    border-radius: 8px;
    width: 36px;
    height: 36px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}
.fc .fc-today-button {
    background: transparent;
    border: 2px solid #0d6e6e;
    color: #0d6e6e;
    font-weight: 600;
    border-radius: 8px;
}
.fc .fc-today-button:hover {
    background: #0d6e6e;
    color: #fff;
}

/* Header giorni settimana */
.fc .fc-col-header-cell {
    background: #f8fafc;
    padding: 0.6rem 0;
    font-weight: 700;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #64748b;
    border: none;
}

/* Celle giorni */
.fc .fc-daygrid-day {
    border-color: #f1f5f9;
    transition: background 0.15s;
}
.fc .fc-daygrid-day:hover {
    background: #f8fafc;
}
.fc .fc-daygrid-day-number {
    font-size: 0.85rem;
    font-weight: 600;
    color: #475569;
    padding: 6px 8px;
}

/* Oggi evidenziato */
.fc .fc-day-today {
    background: #fff8ed !important;
}
.fc .fc-day-today .fc-daygrid-day-number {
    background: #f59e0b;
    color: #ffffff;
    border-radius: 50%;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 4px;
}

/* Eventi */
.fc .fc-event {
    border: none;
    border-radius: 6px;
    padding: 2px 6px;
    font-size: 0.75rem;
    font-weight: 600;
    box-shadow: 0 1px 4px rgba(0,0,0,0.15);
    cursor: pointer;
    transition: transform 0.1s, box-shadow 0.1s;
}
.fc .fc-event:hover {
    transform: translateY(-1px);
    box-shadow: 0 3px 8px rgba(0,0,0,0.2);
}

/* Legenda in basso */
.gs-calendar-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid #f1f5f9;
}
.gs-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.75rem;
    font-weight: 600;
    color: #475569;
    background: #f8fafc;
    border-radius: 20px;
    padding: 4px 10px;
}
.gs-legend-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}

/* â•â•â• 1097B â€” Lead: badge stato compatto (batte Bootstrap .badge / .rounded-pill) â•â•â• */
.lead-row-compact .lead-meta-stato {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    flex: 0 0 auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
}

/* Tabella lead: colonna stretta al contenuto */
.gs-lead-table .gs-lead-stato {
    width: 1% !important;
    min-width: 0 !important;
    max-width: none !important;
    vertical-align: middle !important;
    text-align: center !important;
    white-space: nowrap !important;
}

.lead-stato-badge,
.gs-lead-table .gs-lead-stato .gs-badge,
.gs-lead-table .gs-lead-stato .badge {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 3px 10px !important;
    min-width: 0 !important;
    width: auto !important;
    max-width: fit-content !important;
    font-size: 0.7rem !important;
    font-weight: 600 !important;
    border-radius: 6px !important;
    letter-spacing: 0.03em !important;
    white-space: nowrap !important;
    line-height: 1.4 !important;
    box-sizing: border-box !important;
    vertical-align: middle !important;
    text-align: center !important;
}
.gs-lead-table .gs-lead-fonte {
    min-width: 120px;
    width: 120px;
    max-width: 120px;
    vertical-align: middle;
}
.gs-lead-table .gs-lead-fonte-text {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
}
.gs-lead-table .gs-lead-fonte-campagna {
    max-width: 100%;
}
.gs-lead-table .gs-lead-bolletta {
    min-width: 72px;
    width: 72px;
    vertical-align: middle;
}
.gs-lead-table .gs-lead-consumo {
    min-width: 88px;
    width: 88px;
    max-width: 120px;
    vertical-align: middle;
}
.gs-lead-table .gs-lead-data {
    min-width: 92px;
    width: 92px;
    white-space: nowrap;
    vertical-align: middle;
}
.gs-lead-table .gs-lead-azioni-rapide {
    min-width: 132px;
    width: 132px;
    vertical-align: middle;
}
.gs-lead-table .gs-lead-azioni {
    min-width: 108px;
    width: 108px;
    vertical-align: middle;
}

/* Ã¢â€¢ÂÃ¢â€¢ÂÃ¢â€¢Â Kanban board (Ordini / Preventivi) Ã¢â€¢ÂÃ¢â€¢ÂÃ¢â€¢Â */
.gs-kanban-board {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    padding-bottom: 8px;
    min-height: 400px;
}
.gs-kanban-column {
    min-width: 200px;
    flex: 1;
    display: flex;
    flex-direction: column;
    background: var(--gs-bg-light, #f8f9fa);
    border-radius: 8px;
}
.gs-kanban-column-header {
    padding: 10px 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-radius: 8px 8px 0 0;
    background: #fff;
}
.gs-kanban-column-title {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.gs-kanban-count {
    font-size: 11px;
    font-weight: 600;
    color: #fff;
    min-width: 22px;
    height: 22px;
    border-radius: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 6px;
}
.gs-kanban-cards {
    flex: 1;
    padding: 8px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.gs-kanban-card {
    background: #fff;
    border: 1px solid var(--gs-border, #e0e0e0);
    border-radius: 8px;
    padding: 12px;
    cursor: pointer;
    transition: all 0.15s;
    position: relative;
}
.gs-kanban-card:hover {
    border-color: var(--gs-primary, #E8A024);
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}
.gs-kanban-card-code {
    font-size: 11px;
    font-weight: 600;
    color: var(--gs-primary, #E8A024);
    margin-bottom: 4px;
    padding-right: 48px;
}
/* CRM-31-LISTA-FIX: codice preventivo lista/kanban in accent (override primario) */
.gs-kanban-grid .gs-kanban-card a.gs-prev-cell-code.gs-kanban-card-code {
    color: var(--gs-accent);
}
.gs-kanban-card-cliente {
    font-size: 13px;
    font-weight: 500;
    margin-bottom: 6px;
}
.gs-kanban-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    font-size: 11px;
    color: #6c757d;
}
.gs-kanban-card-importo {
    font-size: 13px;
    font-weight: 600;
    margin-top: 6px;
}
.gs-kanban-days {
    position: absolute;
    top: 8px;
    right: 8px;
    font-size: 10px;
    padding: 2px 6px;
    border-radius: 4px;
    font-weight: 500;
}
.gs-kanban-days-ok { background: #ecf7f0; color: #198754; }
.gs-kanban-days-warn { background: #fff3cd; color: #856404; }
.gs-kanban-days-late { background: #fdecea; color: #dc3545; }
.gs-kanban-column-total {
    text-align: center;
    font-size: 12px;
    color: #6c757d;
    padding: 8px;
    border-top: 1px dashed #e0e0e0;
    background: #fff;
    border-radius: 0 0 8px 8px;
}
.gs-kanban-sposta {
    font-size: 11px !important;
    text-decoration: none !important;
}
.gs-view-toggle {
    display: flex;
    gap: 4px;
    background: #f0f0f0;
    border-radius: 8px;
    padding: 3px;
}
.gs-view-toggle button {
    padding: 6px 14px;
    border: none;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    background: transparent;
    color: #6c757d;
    transition: all 0.2s;
}
.gs-view-toggle button.active {
    background: #fff;
    color: #333;
    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
}

/* Ã¢â€¢ÂÃ¢â€¢ÂÃ¢â€¢Â Intelligenza AI Ã¢â‚¬â€ sidebar + hub assistente (1073) Ã¢â€¢ÂÃ¢â€¢ÂÃ¢â€¢Â */
.gs-sidebar-divider {
    height: 1px;
    background: rgba(255, 255, 255, 0.08);
    margin: 8px 16px;
}

/* Bordo evidenziato solo quando la sezione ÃƒÂ¨ effettivamente espansa (accordion) */
.gs-sidebar-intelligenza-ai .gs-sidebar-accordion-toggle.expanded {
    border-left: 3px solid var(--gs-primary, #E8A024);
}

/* Icona stelle: come le altre voci quando chiusa; dorata solo sezione espansa */
.gs-sidebar-intelligenza-ai .gs-sidebar-accordion-toggle .gs-sidebar-ai-icon {
    color: inherit;
}

.gs-sidebar-intelligenza-ai .gs-sidebar-accordion-toggle.expanded .gs-sidebar-ai-icon {
    color: var(--gs-primary, #E8A024);
}

.gs-breadcrumb {
    font-size: 0.9rem;
}

.gs-breadcrumb a {
    color: var(--gs-primary, #185FA5);
    text-decoration: none;
}

.gs-breadcrumb a:hover {
    text-decoration: underline;
}

.gs-breadcrumb-sep {
    margin: 0 0.35rem;
    color: #94a3b8;
}

.gs-detail-header {
    padding: 1rem 0;
    border-bottom: 1px solid #e5e7eb;
}

.gs-avatar-lg {
    width: 56px;
    height: 56px;
    border-radius: 12px;
    font-size: 1.25rem;
    flex-shrink: 0;
}

.gs-detail-meta code {
    font-size: 0.85rem;
}

/* Alias conteggio tab (progetto 1073) */
.gs-tab-count {
    margin-left: 0.35rem;
}

/* â•â•â• Hub comunicazione lead (1099B) â•â•â• */
.gs-hub-root {
    border: 1px solid #e5e7eb;
}
.gs-hub-section-title {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--gs-text-secondary, #6b7280);
    font-weight: 600;
}
.gs-hub-tab {
    border-radius: 8px 8px 0 0 !important;
    font-weight: 500;
}
.gs-hub-tab-active {
    background: var(--gs-primary-light, rgba(34, 197, 94, 0.12)) !important;
    color: var(--gs-primary-hover, #166534) !important;
    border-bottom: 2px solid var(--gs-primary, #22c55e) !important;
}
.gs-hub-stat-label {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--gs-text-muted, #9ca3af);
    margin-bottom: 4px;
}
.gs-hub-stat-value {
    font-weight: 600;
    color: var(--gs-text-primary, #1f2937);
}
.gs-hub-pipeline-step.gs-hub-pipeline-active {
    border-color: var(--gs-primary, #22c55e);
    color: var(--gs-primary-hover, #166534);
    font-weight: 600;
}
.gs-hub-urg-0 { border-left: 4px solid #94a3b8; background: #f8fafc; }
.gs-hub-urg-1 { border-left: 4px solid #ef4444; background: #fef2f2; }
.gs-hub-urg-2 { border-left: 4px solid #f97316; background: #fff7ed; }
.gs-hub-urg-3 { border-left: 4px solid #eab308; background: #fefce8; }
.gs-hub-feed-icon {
    width: 28px;
    font-size: 1.1rem;
}

/* Pipeline dettaglio lead â€” cerchi e connettori (mockup v7 / 1100B) */
.gs-hub-pipeline-track {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0;
    padding: 14px 10px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.gs-hub-pipeline-node {
    flex: 0 0 auto;
    width: 92px;
    max-width: 22vw;
    text-align: center;
}
.gs-hub-pipeline-circle {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 2px solid #d1d5db;
    background: #f3f4f6;
    color: #6b7280;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1;
    transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease, color 0.15s ease;
}
.gs-hub-pipeline-circle:hover:not(:disabled) {
    border-color: var(--gs-primary, #22c55e);
    color: var(--gs-primary-hover, #166534);
}
.gs-hub-pipeline-circle:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}
.gs-hub-pipeline-node.gs-hub-pipeline-done .gs-hub-pipeline-circle {
    background: var(--gs-primary, #22c55e);
    border-color: #15803d;
    color: #fff;
}
.gs-hub-pipeline-node.gs-hub-pipeline-current .gs-hub-pipeline-circle {
    background: linear-gradient(145deg, #eab308, #ca8a04);
    border-color: #a16207;
    color: #fff;
    box-shadow: 0 0 0 4px rgba(234, 179, 8, 0.28);
}
.gs-hub-pipeline-node.gs-hub-pipeline-todo .gs-hub-pipeline-circle {
    background: #f9fafb;
    border-color: #e5e7eb;
    color: #9ca3af;
}
.gs-hub-pipeline-label {
    line-height: 1.2;
    word-break: break-word;
}
.gs-hub-pipeline-detail {
    min-height: 2.25em;
    line-height: 1.1;
}
.gs-hub-pipeline-connector {
    flex: 1 1 16px;
    height: 3px;
    min-width: 10px;
    max-width: 48px;
    margin-top: 18px;
    background: #e5e7eb;
    border-radius: 2px;
    align-self: flex-start;
}
.gs-hub-pipeline-connector.gs-hub-pipeline-connector-done {
    background: linear-gradient(90deg, var(--gs-primary, #22c55e), #4ade80);
}

/* â•â•â• Hub comunicazione â€” polish 1101 (compose, feed, tab lead) â•â•â• */
.gs-hub-tabs-bar {
    background: #fff !important;
}
.gs-hub-tabs .gs-tab.gs-hub-tab.active {
    color: #0d9488 !important;
    border-bottom-color: #0d9488 !important;
    background: transparent !important;
    font-weight: 500;
}
.gs-hub-tabs .gs-tab.gs-hub-tab:not(.active) {
    color: var(--gs-text-secondary) !important;
}
.gs-hub-tab-specific.gs-hub-tab-lead {
    border-left: none !important;
}
.gs-hub-panel-surface {
    background: var(--gs-surface) !important;
    color: #1a1a2e !important;
}
.gs-hub-compose-surface {
    background: var(--gs-surface) !important;
    color: #1a1a2e !important;
}
.gs-hub-compose-label {
    color: #475569 !important;
    font-weight: 600;
}
.gs-hub-compose-input,
.gs-hub-compose-editor {
    background: var(--gs-card-bg) !important;
    color: #1a1a2e !important;
    border-color: #e2e8f0 !important;
}
.gs-hub-template-chips {
    max-width: 100%;
}
.gs-hub-chip {
    border: 1px solid #e2e8f0;
    background: #f8fafc;
    color: #334155;
    font-size: 11px;
    padding: 4px 10px;
    border-radius: 999px;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}
.gs-hub-chip:hover {
    background: #ecfdf5;
    border-color: var(--gs-primary, #22c55e);
}
.gs-hub-chip-active {
    background: rgba(34, 197, 94, 0.15) !important;
    border-color: var(--gs-primary, #22c55e) !important;
    color: #166534 !important;
    font-weight: 600;
}
.gs-hub-chip-muted {
    background: #fff;
    border-style: dashed;
}
.gs-hub-compose-firma-select {
    max-width: 160px;
    font-size: 12px !important;
}
.gs-hub-btn-send-email {
    background: #0d9488 !important;
    border-color: #0f766e !important;
    color: #fff !important;
}
.gs-hub-btn-send-email:hover {
    filter: brightness(1.05);
    color: #fff !important;
}
.gs-hub-btn-send-wa {
    background: #16a34a !important;
    border-color: #15803d !important;
    color: #fff !important;
}
.gs-hub-btn-send-wa:hover {
    filter: brightness(1.05);
    color: #fff !important;
}
.gs-hub-btn-send-sms {
    background: #2563eb !important;
    border-color: #1d4ed8 !important;
    color: #fff !important;
}
.gs-hub-btn-send-sms:hover {
    filter: brightness(1.05);
    color: #fff !important;
}
.gs-hub-scadenze-panel {
    background: var(--gs-card-bg) !important;
}
.gs-hub-feed-panel {
    background: #fafafa !important;
    margin-top: 16px;
}
.gs-hub-feed-text {
    color: #1a1a2e;
}
.gs-hub-section-title-ico {
    display: flex;
    align-items: center;
}
.gs-hub-feed-system {
    border-color: #e5e7eb !important;
}
.gs-hub-feed-system-row {
    color: #334155;
}
.gs-hub-feed-ai-sintesi {
    background: rgba(124, 58, 237, 0.1);
    border: 0.5px solid rgba(124, 58, 237, 0.22);
    border-radius: var(--border-radius-md, 8px);
    padding: 10px 12px;
    color: #334155;
}
.gs-hub-doc-chip {
    font-size: 11px;
    padding: 4px 10px;
    border-radius: 999px;
    display: inline-block;
}
.gs-hub-doc-chip-on {
    border: 1px solid var(--gs-primary, #22c55e);
    background: #ecfdf5;
    color: #166534;
    cursor: pointer;
}
.gs-hub-doc-chip-off {
    border: 1px dashed #cbd5e1;
    color: #94a3b8;
    cursor: not-allowed;
    opacity: 0.85;
}
.gs-hub-expanded .gs-hub-side-col {
    display: none !important;
}
.gs-hub-expanded .gs-hub-main-col {
    flex: 0 0 100% !important;
    max-width: 100% !important;
}
/* Card Genera (dettaglio lead) */
.gs-hub-genera-stack {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.gs-hub-genera-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 10px;
    border: 1px solid #e5e7eb;
    background: #fff;
    color: inherit;
    transition: background 0.15s, border-color 0.15s;
}
a.gs-hub-genera-row:hover {
    background: #f8fafc;
    border-color: #cbd5e1;
}
.gs-hub-genera-row-disabled {
    opacity: 0.55;
    cursor: not-allowed;
}
.gs-hub-genera-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: linear-gradient(135deg, #e2e8f0, #f1f5f9);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    color: #475569;
    flex-shrink: 0;
}
.gs-hub-genera-icon-bolletta {
    background: linear-gradient(135deg, #dcfce7, #bbf7d0);
    color: #166534;
}
.gs-hub-genera-body {
    flex: 1;
    min-width: 0;
}
.gs-hub-genera-title {
    font-weight: 600;
    font-size: 13px;
    color: #1a1a2e;
}
.gs-hub-genera-desc {
    font-size: 11px;
    color: #64748b;
    line-height: 1.25;
}
.gs-hub-genera-chevron {
    color: #94a3b8;
    flex-shrink: 0;
}
/* Lista lead â€” temperatura: solo bordo sinistro, sfondo riga sempre bianco */
.gs-lead-row.temp-hot,
.gs-lead-row.temp-warm,
.gs-lead-row.temp-cold,
.gs-lead-row.temp-frozen,
.gs-lead-row.temp-none {
    background: var(--gs-card-bg) !important;
}
.gs-lead-next-action {
    font-size: 10px;
    color: #64748b;
    line-height: 1.2;
    margin-top: 2px;
}

/* Modulo email â€” Posta + Hub (1107, polish 1109) */
.gs-email-kpi-row {
    --gs-email-kpi-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}
.gs-email-kpi {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 16px 20px;
    box-shadow: var(--gs-email-kpi-shadow);
    border-left-width: 4px;
    border-left-style: solid;
    height: 100%;
}
.gs-email-kpi-value {
    font-size: 28px;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.1;
}
.gs-email-kpi-label {
    font-size: 10px;
    font-weight: 600;
    color: #9ca3af;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-top: 4px;
}
.gs-email-kpi--nonlette {
    border-left-color: #dc2626;
}
.gs-email-kpi--nonlette .gs-email-kpi-value {
    color: #dc2626;
}
.gs-email-kpi--ricevute {
    border-left-color: #0d9488;
}
.gs-email-kpi--ricevute .gs-email-kpi-value {
    color: #0d9488;
}
.gs-email-kpi--inviate {
    border-left-color: #1d4ed8;
}
.gs-email-kpi--inviate .gs-email-kpi-value {
    color: #1d4ed8;
}
.gs-email-kpi--nonassegnate {
    border-left-color: #b45309;
}
.gs-email-kpi--nonassegnate .gs-email-kpi-value {
    color: #b45309;
}
.gs-email-kpi--bozze {
    border-left-color: #6b7280;
}
.gs-email-kpi--bozze .gs-email-kpi-value {
    color: #6b7280;
}
.gs-email-kpi--errori {
    border-left-color: #16a34a;
}
.gs-email-kpi--errori .gs-email-kpi-value {
    color: #16a34a;
}

.gs-email-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    padding: 14px 18px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
}
.gs-email-filter-select {
    max-width: 260px;
    border-radius: 8px !important;
    border-color: #e5e7eb !important;
    font-size: 12px;
}
.gs-email-filter-select:focus {
    border-color: #0d9488 !important;
    box-shadow: 0 0 0 0.15rem rgba(13, 148, 136, 0.15);
}
.gs-email-filter-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 2px;
    padding: 2px;
    background: #f0f1f3;
    border-radius: 8px;
}
.gs-email-filter-pill {
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 600;
    border: none;
    background: transparent;
    color: #6b7280;
    cursor: pointer;
    transition: color 0.12s ease, background 0.12s ease, box-shadow 0.12s ease;
}
.gs-email-filter-pill:hover {
    color: #374151;
}
.gs-email-filter-pill.active {
    background: #fff;
    color: #0d9488;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}
.gs-email-filter-search-wrap {
    display: flex;
    flex: 1;
    min-width: 180px;
    max-width: 360px;
    gap: 6px;
    align-items: center;
}
.gs-email-filter-search {
    border-radius: 8px !important;
    border-color: #e5e7eb !important;
    font-size: 12px;
}
.gs-email-filter-search:focus {
    border-color: #0d9488 !important;
    box-shadow: 0 0 0 0.15rem rgba(13, 148, 136, 0.12);
}
.gs-email-filter-search-btn {
    border-radius: 8px !important;
    font-size: 11px;
    font-weight: 600;
    border: 1px solid #e5e7eb;
    background: #fff;
    color: #374151;
}
.gs-email-filter-search-btn:hover {
    background: #f9fafb;
}
.gs-email-btn-teal {
    background: #0d9488 !important;
    border-color: #0d9488 !important;
    color: #fff !important;
    font-weight: 600;
    font-size: 11px;
    border-radius: 8px !important;
}
.gs-email-btn-teal:hover {
    background: #0f766e !important;
    border-color: #0f766e !important;
    color: #fff !important;
}
.gs-email-filters-cta {
    margin-left: auto;
}
@media (max-width: 767.98px) {
    .gs-email-filters-cta {
        margin-left: 0;
        width: 100%;
    }
}

.gs-email-layout-shell {
    display: grid;
    grid-template-columns: minmax(300px, 36%) 1fr;
    align-items: stretch;
    min-height: min(72vh, 720px);
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}
@media (max-width: 991.98px) {
    .gs-email-layout-shell {
        grid-template-columns: 1fr;
        min-height: auto;
    }
}
.gs-email-list {
    border-right: 1px solid #e5e7eb;
    background: #fff;
    overflow-y: auto;
    max-height: min(72vh, 720px);
    display: flex;
    flex-direction: column;
}
@media (max-width: 991.98px) {
    .gs-email-list {
        border-right: none;
        border-bottom: 1px solid #e5e7eb;
        max-height: 45vh;
    }
}
.gs-email-list-footer {
    padding: 10px 12px;
    border-top: 1px solid #f3f4f6;
    background: #fafafa;
    margin-top: auto;
}

.gs-email-detail {
    background: #fff;
    display: flex;
    flex-direction: column;
    min-height: min(72vh, 720px);
}
.gs-email-detail-inner {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    padding: 0;
}

.gs-email-item {
    cursor: pointer;
    transition: background 0.08s ease;
    border-bottom: 1px solid #f3f4f6 !important;
    border-left: 3px solid transparent;
}
.gs-email-match-border--unassigned {
    border-left-color: var(--gs-amber) !important;
}
.gs-email-match-border--lead {
    border-left-color: var(--gs-success) !important;
}
.gs-email-match-border--order {
    border-left-color: var(--gs-info) !important;
}
.gs-email-item:hover {
    background: #fafffe;
}
.gs-email-item-selected {
    border-left-color: #0d9488 !important;
    background: rgba(240, 253, 250, 0.5);
}
.gs-email-item-unread .gs-email-from {
    font-weight: 500;
    color: var(--gs-text-primary);
}
.gs-email-item-unread .gs-email-subject {
    font-weight: 500;
    color: var(--gs-text-primary);
}
.gs-email-item-read .gs-email-from,
.gs-email-item-read .gs-email-subject {
    font-weight: 400;
    color: var(--gs-text-secondary);
}
.gs-email-item-sent {
    opacity: 0.55;
}
.gs-email-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
    margin-top: 6px;
}
.gs-email-dot-unread {
    background: #0d9488;
}
.gs-email-dot-read {
    border: 1.5px solid #d1d5db;
    background: transparent;
}
.gs-email-from {
    font-size: 12px;
    color: #1a1a2e;
}
.gs-email-from-row {
    gap: 6px;
}
.gs-email-tag {
    font-size: 9px;
    padding: 1px 6px;
    border-radius: 3px;
    font-weight: 600;
    line-height: 1.3;
}
.gs-email-tag--recv {
    background: #dcfce7;
    color: #15803d;
}
.gs-email-tag--sent {
    background: #dbeafe;
    color: #1d4ed8;
}
.gs-email-tag--pec {
    background: #fef2f2;
    color: #dc2626;
    border: 1px solid #fecaca;
}
.gs-email-tag--unassigned {
    background: #fef3c7;
    color: #b45309;
}
.gs-email-tag--auto {
    background: #f3f4f6;
    color: #6b7280;
}
.gs-email-tag--match {
    background: #ede9fe;
    color: #5b21b6;
}
.gs-email-subject {
    font-size: 11px;
    font-weight: 500;
    color: #1a1a2e;
    margin-top: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.gs-email-preview {
    font-size: 10px;
    color: #9ca3af;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
    margin-top: 2px;
}
.gs-email-att-inline {
    font-size: 9px;
    color: #6b7280;
    margin-top: 4px;
    display: flex;
    align-items: center;
    gap: 4px;
}
.gs-email-item-meta {
    min-width: 56px;
}
.gs-email-time {
    font-size: 10px;
    color: #c4c4c4;
    white-space: nowrap;
}
.gs-email-match-inline {
    font-size: 8px;
    padding: 1px 5px;
    border-radius: 3px;
    background: #fef3c7;
    color: #b45309;
    font-weight: 600;
    margin-top: 4px;
    display: inline-block;
}

.gs-email-detail-empty {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 280px;
    color: #c4c4c4;
    font-size: 13px;
    gap: 8px;
    padding: 24px;
}
.gs-email-detail-empty i {
    font-size: 32px;
    opacity: 0.3;
}

.gs-email-actions-bar {
    padding: 10px 16px;
    border-bottom: 1px solid #f3f4f6;
    background: #fafafa;
    flex-shrink: 0;
    gap: 6px !important;
}
.gs-email-btn-reply {
    background: #0d9488 !important;
    border-color: #0d9488 !important;
    color: #fff !important;
    font-size: 12px;
    font-weight: 600;
    border-radius: 8px !important;
}
.gs-email-btn-reply:hover {
    background: #0f766e !important;
    border-color: #0f766e !important;
    color: #fff !important;
}
.gs-email-btn-outline {
    font-size: 12px;
    border-radius: 8px !important;
    border: 1px solid #e5e7eb;
    background: #fff;
    color: #374151;
}
.gs-email-btn-outline:hover {
    background: #f9fafb;
}
.gs-email-btn-danger-outline {
    font-size: 12px;
    border-radius: 8px !important;
    color: #dc2626 !important;
    border-color: #fecaca !important;
    background: #fff;
}
.gs-email-btn-danger-outline:hover {
    background: #fef2f2;
}

.gs-email-detail-head {
    padding: 16px 20px;
    border-bottom: 1px solid #f3f4f6;
}
.gs-email-detail-subject {
    font-size: 17px;
    font-weight: 600;
    color: #1a1a2e;
    letter-spacing: -0.01em;
    margin-bottom: 12px;
}
.gs-email-detail-avatar {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 13px;
    flex-shrink: 0;
    color: #fff;
    background: linear-gradient(135deg, #0d9488, #14b8a6);
}
.gs-email-detail-name {
    font-size: 13px;
    font-weight: 500;
    color: #1a1a2e;
}
.gs-email-detail-email {
    font-size: 11px;
    color: #9ca3af;
}
.gs-email-detail-when {
    font-size: 11px;
    color: #9ca3af;
    white-space: nowrap;
}
.gs-email-badge-lead {
    font-size: 9px;
    padding: 2px 7px;
    border-radius: 4px;
    font-weight: 600;
    background: #ccfbf1;
    color: #0d9488;
}
.gs-email-badge-match {
    font-size: 9px;
    padding: 2px 7px;
    border-radius: 4px;
    font-weight: 600;
    background: #fef3c7;
    color: #b45309;
}

.gs-email-unassigned-panel {
    margin: 0 20px 16px;
    padding: 12px 14px;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    background: #f9fafb;
    font-size: 13px;
}

.gs-email-body {
    padding: 20px;
    flex: 1;
    font-size: 14px;
    line-height: 1.8;
    color: #374151;
    background: #fff;
}
.gs-email-body-plain {
    white-space: pre-wrap;
    font-family: inherit;
    font-size: 14px;
    line-height: 1.8;
    color: #374151;
}

.gs-email-attach-section {
    padding: 0 20px 12px;
}
.gs-email-attach-title {
    font-size: 11px;
    font-weight: 600;
    color: #9ca3af;
    text-transform: uppercase;
    margin-bottom: 6px;
}
.gs-email-attachment {
    font-size: 11px;
    padding: 6px 10px;
    border-radius: 6px;
    border: 1px solid #e5e7eb;
    background: #f3f4f6;
    color: #6b7280;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    transition: background 0.08s ease, border-color 0.08s ease, color 0.08s ease;
}
.gs-email-attachment:hover {
    background: #f0fdfa;
    border-color: #99f6e4;
    color: #0d9488;
}
.gs-email-attach-size {
    font-size: 10px;
    color: #c4c4c4;
}

.gs-email-ai-placeholder {
    margin: 0 20px 16px;
    padding: 12px;
    background: #faf5ff;
    border: 1px solid #e9d5ff;
    border-radius: 8px;
}
.gs-email-ai-label {
    font-size: 10px;
    font-weight: 700;
    color: #7c3aed;
    text-transform: uppercase;
    margin-bottom: 6px;
    display: flex;
    align-items: center;
    gap: 4px;
}
.gs-email-ai-muted {
    font-size: 12px;
    color: #9ca3af;
}

.gs-email-reply-box {
    margin: 0 20px 20px;
    padding: 12px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    background: #fafafa;
}
.gs-email-reply-label {
    font-size: 10px;
    font-weight: 600;
    color: #9ca3af;
    text-transform: uppercase;
    margin-bottom: 6px;
}
.gs-email-reply-input {
    border-radius: 6px !important;
    font-size: 12px;
    resize: none;
    min-height: 44px;
}

.gs-email-compose {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
}
.gs-email-compose-header {
    padding: 12px 18px;
    background: #0d9488;
    color: #fff;
    font-weight: 600;
    font-size: 14px;
    flex-shrink: 0;
}
.gs-email-compose-body {
    padding: 20px;
    flex: 1;
    overflow-y: auto;
}
.gs-email-compose-field {
    margin-bottom: 10px;
}
.gs-email-compose-label {
    display: block;
    font-size: 10px;
    font-weight: 600;
    color: #9ca3af;
    margin-bottom: 3px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.gs-email-compose-control {
    border-radius: 6px !important;
    border-color: #e5e7eb !important;
    font-size: 12px;
}
.gs-email-compose-control:focus {
    border-color: #0d9488 !important;
    box-shadow: 0 0 0 0.15rem rgba(13, 148, 136, 0.12);
}
.gs-email-compose-toolbar-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    padding: 8px 12px;
    background: #f9fafb;
    border: 1px solid #f3f4f6;
    border-radius: 8px;
    margin-bottom: 10px;
}
.gs-email-compose-tb-muted {
    font-size: 12px;
    color: #9ca3af;
    user-select: none;
}
.gs-email-compose-tb-sep {
    width: 1px;
    height: 18px;
    background: #e5e7eb;
    margin: 0 4px;
}
.gs-email-compose-label-inline {
    font-size: 10px;
    font-weight: 600;
    color: #9ca3af;
    text-transform: uppercase;
}
.gs-email-compose-firma {
    max-width: 200px;
    border-radius: 6px !important;
    font-size: 11px;
}
.gs-email-compose-editor {
    border-radius: 8px 8px 0 0 !important;
    border-color: #e5e7eb !important;
    min-height: 160px;
    font-size: 13px;
    line-height: 1.6;
    padding: 14px !important;
}
.gs-email-compose-editor:focus {
    border-color: #0d9488 !important;
}
.gs-email-compose-footer {
    margin-top: 14px;
}

/* Hub + legacy: azioni generiche su email */
.gs-email-actions .btn {
    font-size: 12px;
}

/* Legacy KPI class names (1107) â€” ancora usate altrove se presenti */
.gs-email-kpi-in {
    border-left: 4px solid #0d9488;
}
.gs-email-kpi-unread {
    border-left: 4px solid #dc2626;
}
.gs-email-kpi-sent {
    border-left: 4px solid #1d4ed8;
}
.gs-email-kpi-err {
    border-left: 4px solid #16a34a;
}
.gs-email-match-badge {
    font-size: 10px;
    padding: 2px 8px;
    border-radius: 999px;
    background: #fef3c7;
    color: #92400e;
    border: 1px solid #fcd34d;
}
.gs-email-pec-badge {
    font-size: 10px;
    padding: 2px 8px;
    border-radius: 999px;
    background: #fef2f2;
    color: #dc2626;
    border: 1px solid #fecaca;
}

/* Griglia lista+dettaglio standalone (1107) */
.gs-email-layout {
    display: grid;
    grid-template-columns: minmax(280px, 38%) 1fr;
    gap: 16px;
    align-items: start;
}
@media (max-width: 991.98px) {
    .gs-email-layout {
        grid-template-columns: 1fr;
    }
}

/* Hub Comunicazione: lista email compatta (stessa classe gs-email-list, contesto diverso) */
.gs-hub-compose .gs-email-list {
    border-right: none;
    max-height: none;
    background: #fff;
}

/* â•â•â• Impostazioni Email / PEC (1110) â€” gs-settings-* â•â•â• */
.gs-settings-page-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1.25rem;
}

.gs-settings-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
    margin-bottom: 1.5rem;
}

.gs-settings-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 18px;
    background: #f9fafb;
    border-bottom: 1px solid #f3f4f6;
}

.gs-settings-card-header-title {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6b7280;
}

.gs-settings-card-header-title i {
    color: #0d9488;
    font-size: 1.1rem;
}

.gs-settings-count-badge {
    font-size: 11px;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 999px;
    background: #ccfbf1;
    color: #0f766e;
    text-transform: lowercase;
}

.gs-settings-card .gs-table {
    box-shadow: none;
    border-radius: 0;
}

.gs-settings-card .gs-table thead th {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #9ca3af;
    padding: 10px 14px;
    background: #fafafa;
}

.gs-settings-card .gs-table tbody tr:hover {
    background-color: #fafffe;
}

.gs-settings-card-footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 18px;
    background: #f9fafb;
    border-top: 1px solid #f3f4f6;
}

.gs-settings-footer-note {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: #6b7280;
    margin: 0;
}

.gs-settings-footer-note i {
    color: #9ca3af;
}

/* Badge tabella impostazioni email */
.gs-settings-badge-vault {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 600;
    color: #16a34a;
}

.gs-settings-badge-vault i {
    color: #16a34a;
}

.gs-settings-badge-missing {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 600;
    color: #dc2626;
}

.gs-settings-badge-missing i {
    color: #d97706;
}

.gs-settings-badge-active {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    background: #dcfce7;
    color: #15803d;
}

.gs-settings-badge-default {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    background: #dbeafe;
    color: #1d4ed8;
}

.gs-settings-badge-incomplete {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    background: #fef3c7;
    color: #b45309;
}

.gs-settings-badge-ordinaria {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    background: #ccfbf1;
    color: #0d9488;
}

.gs-settings-badge-pec {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    background: #fef2f2;
    color: #dc2626;
    border: 1px solid #fecaca;
}

.gs-settings-badge-context {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    background: #fef3c7;
    color: #b45309;
}

.gs-settings-badge-off {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    background: #f3f4f6;
    color: #4b5563;
}

.gs-settings-btn-test {
    background: #0d9488 !important;
    border-color: #0d9488 !important;
    color: #fff !important;
    font-weight: 600;
    font-size: 12px;
    padding: 4px 12px;
}

.gs-settings-btn-test:hover:not(:disabled) {
    background: #0f766e !important;
    border-color: #0f766e !important;
    color: #fff !important;
}

.gs-settings-btn-test:disabled {
    background: #e5e7eb !important;
    border-color: #d1d5db !important;
    color: #9ca3af !important;
    opacity: 1;
}

.gs-settings-btn-edit {
    border: 1px solid #d1d5db;
    background: #fff;
    color: #374151;
    font-size: 13px;
    padding: 4px 10px;
}

.gs-settings-btn-edit:hover {
    background: #f9fafb;
    border-color: #9ca3af;
    color: #111827;
}

.gs-settings-teal-mono {
    font-family: ui-monospace, monospace;
    font-size: 12px;
    font-weight: 600;
    color: #0d9488;
}

.gs-settings-scarico-recente {
    color: #16a34a;
    font-weight: 600;
    font-size: 12px;
}

.gs-settings-scarico-mancante {
    color: #9ca3af;
    font-size: 12px;
}

.gs-settings-status-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
    padding: 16px 20px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
    margin-bottom: 1.25rem;
}

.gs-settings-status-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    flex-shrink: 0;
}

.gs-settings-status-dot--on {
    background: #16a34a;
    box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.2);
}

.gs-settings-status-dot--off {
    background: #dc2626;
    box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.15);
}

.gs-settings-status-text {
    font-weight: 700;
    color: #111827;
}

.gs-settings-status-muted {
    color: #6b7280;
    font-weight: 500;
}

.gs-settings-kpi {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
    border-left-width: 4px;
    padding: 14px 16px;
    height: 100%;
}

.gs-settings-kpi-value {
    font-size: 28px;
    font-weight: 700;
    line-height: 1.15;
}

.gs-settings-kpi-label {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #9ca3af;
    margin-top: 4px;
}

.gs-settings-kpi-teal {
    border-left-color: #0d9488;
}
.gs-settings-kpi-teal .gs-settings-kpi-value {
    color: #0d9488;
}

.gs-settings-kpi-red {
    border-left-color: #dc2626;
}
.gs-settings-kpi-red .gs-settings-kpi-value {
    color: #dc2626;
}

.gs-settings-kpi-amber {
    border-left-color: #d97706;
}
.gs-settings-kpi-amber .gs-settings-kpi-value {
    color: #b45309;
}

.gs-settings-kpi-green {
    border-left-color: #16a34a;
}
.gs-settings-kpi-green .gs-settings-kpi-value {
    color: #16a34a;
}

.gs-settings-badge-ok {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 700;
    background: #dcfce7;
    color: #15803d;
}

.gs-settings-badge-err {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 700;
    background: #fef2f2;
    color: #dc2626;
}

.gs-settings-err-cell {
    color: #dc2626;
    font-size: 12px;
    font-weight: 500;
}

.gs-settings-dash {
    color: #9ca3af;
}

/* Form tab Generale */
.gs-settings-form-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
    margin-bottom: 1.5rem;
}

.gs-settings-form-card .gs-settings-card-header {
    border-bottom: 1px solid #f3f4f6;
}

.gs-settings-form-body {
    padding: 20px 22px;
}

.gs-settings-label-upper {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #9ca3af;
    margin-bottom: 6px;
}

.gs-settings-form-body .form-control {
    border-radius: 6px;
}

.gs-settings-form-body .form-control:focus,
.gs-settings-form-body .form-select:focus {
    border-color: #0d9488;
    box-shadow: 0 0 0 0.2rem rgba(13, 148, 136, 0.15);
}

.gs-settings-form-body .form-control,
.gs-settings-form-body .form-select {
    border-radius: 6px;
}

.gs-settings-toggle.form-check-input:checked {
    background-color: #0d9488;
    border-color: #0d9488;
}

.gs-settings-toggle.form-check-input:focus {
    box-shadow: 0 0 0 0.2rem rgba(13, 148, 136, 0.2);
}

.gs-settings-info-box {
    padding: 12px 16px;
    border-radius: 8px;
    background: #eff6ff;
    color: #1d4ed8;
    font-size: 13px;
    line-height: 1.5;
    margin-bottom: 1rem;
    border: 1px solid #bfdbfe;
}

.gs-settings-btn-amber {
    background: #d97706 !important;
    border-color: #d97706 !important;
    color: #fff !important;
    font-weight: 600;
}

.gs-settings-btn-amber:hover {
    background: #b45309 !important;
    border-color: #b45309 !important;
    color: #fff !important;
}

.gs-settings-btn-outline-gray {
    border: 1px solid #d1d5db;
    background: #fff;
    color: #374151;
    font-weight: 600;
    font-size: 12px;
}

.gs-settings-btn-outline-gray:hover {
    background: #f9fafb;
    border-color: #9ca3af;
    color: #111827;
}

/* Modale SMTP â€” blocchi Vault */
.gs-settings-modal-vault-missing {
    background: #fef3c7;
    border-left: 3px solid #d97706;
    border-radius: 6px;
}

.gs-settings-modal-vault-ok {
    background: #dcfce7;
    border-left: 3px solid #16a34a;
    border-radius: 6px;
}

.gs-settings-modal-vault-neutral {
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-left: 3px solid #9ca3af;
    border-radius: 6px;
}

.gs-settings-modal-vault-ok .bi-shield-check,
.gs-settings-modal-vault-ok span {
    color: #15803d;
}

/* Log placeholder */
.gs-settings-log-list {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    overflow: hidden;
}

.gs-settings-log-item {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 14px 18px;
    border-bottom: 1px solid #f3f4f6;
}

.gs-settings-log-item:last-child {
    border-bottom: none;
}

.gs-settings-log-icon {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 12px;
    color: #fff;
}

.gs-settings-log-icon--pop3 {
    background: #0d9488;
}
.gs-settings-log-icon--match {
    background: #16a34a;
}
.gs-settings-log-icon--send {
    background: #7c3aed;
}
.gs-settings-log-icon--err {
    background: #d97706;
}
.gs-settings-log-icon--vault {
    background: #6b7280;
}

.gs-settings-log-body {
    flex: 1;
    min-width: 0;
    font-size: 13px;
    color: #374151;
    line-height: 1.45;
}

.gs-settings-log-time {
    flex-shrink: 0;
    font-size: 12px;
    color: #9ca3af;
    white-space: nowrap;
}

.gs-settings-log-nota {
    margin-top: 1rem;
}

/* â•â•â• GS PREVENTIVATORE (mockup PREVENTIVATORE-MOCKUP-MASTER-v8) â•â•â• */
.gs-prev-app {
    max-width: 1200px;
    margin: 0 auto;
    background: #fff;
    min-height: calc(100vh - 24px);
    border-left: 1px solid var(--gs-gray-200, #e5e7eb);
    border-right: 1px solid var(--gs-gray-200, #e5e7eb);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    font-size: 15px;
    color: var(--gs-gray-800, #1f2937);
}

.gs-prev-hdr {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px 16px;
    padding: 10px 16px;
    border-bottom: 1px solid var(--gs-gray-200, #e5e7eb);
    background: #fff;
    position: sticky;
    top: 0;
    z-index: 10;
}

.gs-prev-hdr-l {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    flex: 1 1 240px;
}

.gs-prev-hdr-mid {
    min-width: 0;
    flex: 1 1 auto;
}

.gs-prev-hdr-title {
    font-size: 13px;
    font-weight: 500;
    color: var(--gs-gray-900, #111827);
    line-height: 1.3;
}

.gs-prev-hdr-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 6px;
}

.gs-prev-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 10px;
    font-weight: 500;
    padding: 3px 8px;
    border-radius: 999px;
    border: 1px solid var(--gs-gray-200, #e5e7eb);
    background: var(--gs-gray-50, #f9fafb);
    color: var(--gs-gray-700, #374151);
    max-width: 100%;
}

.gs-prev-chip--tipo {
    border-color: var(--gs-primary-muted, rgba(15, 110, 86, 0.25));
    background: var(--gs-primary-soft, rgba(15, 110, 86, 0.08));
    color: var(--gs-primary, #0f6e56);
}

.gs-prev-chip--soft {
    font-weight: 400;
    color: var(--gs-gray-600, #4b5563);
}

.gs-prev-hdr-r {
    display: flex;
    align-items: stretch;
    gap: 12px;
    flex-shrink: 0;
    margin-left: auto;
}

.gs-prev-margine-box {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    border-radius: 10px;
    border: 1px solid var(--gs-gray-200, #e5e7eb);
    background: var(--gs-gray-50, #f9fafb);
}

.gs-prev-margine-lock {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    border: 1px solid var(--gs-gray-300, #d1d5db);
    background: #fff;
    color: var(--gs-gray-500, #6b7280);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.gs-prev-margine-lock:hover {
    background: var(--gs-gray-50, #f9fafb);
    color: var(--gs-gray-800, #1f2937);
}

.gs-prev-margine-lock--on {
    border-color: var(--gs-primary, #0f6e56);
    color: var(--gs-primary, #0f6e56);
    background: var(--gs-primary-soft, rgba(15, 110, 86, 0.08));
}

.gs-prev-margine-copy {
    text-align: right;
    min-width: 0;
}

.gs-prev-margine-lbl {
    font-size: 9px;
    color: var(--gs-gray-400, #9ca3af);
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.gs-prev-margine-v {
    font-size: 14px;
    font-weight: 600;
    color: var(--gs-gray-800, #1f2937);
    font-variant-numeric: tabular-nums;
}

.gs-prev-back {
    background: #fff;
    border: 1px solid var(--gs-gray-300, #d1d5db);
    border-radius: 8px;
    padding: 5px 12px;
    font-size: 11px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: var(--gs-gray-700, #374151);
    text-decoration: none;
}

.gs-prev-back:hover {
    background: var(--gs-gray-50, #f9fafb);
    color: var(--gs-gray-800, #1f2937);
}

.gs-prev-av {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--gs-primary, #0f6e56);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 500;
    font-size: 11px;
    flex-shrink: 0;
}

.gs-prev-tot-box {
    text-align: right;
    padding: 6px 0;
    min-width: 108px;
}

.gs-prev-tot-lbl {
    font-size: 9px;
    color: var(--gs-gray-400, #9ca3af);
    text-transform: uppercase;
}

.gs-prev-tot-v {
    font-size: 18px;
    font-weight: 500;
    color: var(--gs-primary, #0f6e56);
}

.gs-prev-steps-bar {
    padding: 14px 16px 12px;
    border-bottom: 1px solid var(--gs-gray-200, #e5e7eb);
    background: var(--gs-gray-50, #f9fafb);
}

.gs-prev-stepper {
    max-width: 720px;
    margin: 0 auto;
}

.gs-prev-steps {
    display: flex;
    align-items: center;
    gap: 0;
    max-width: 640px;
    margin: 0 auto;
}

.gs-prev-step-dot {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, box-shadow 0.15s, transform 0.12s;
    border: none;
    padding: 0;
    font-family: inherit;
}

.gs-prev-step-dot:focus-visible {
    outline: 2px solid var(--gs-primary, #0f6e56);
    outline-offset: 2px;
}

.gs-prev-step-dot:active {
    transform: scale(0.96);
}

.gs-prev-step-num {
    font-size: 11px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    line-height: 1;
}

.gs-prev-step-dot--done {
    background: var(--gs-primary, #0f6e56);
    color: #fff;
}

.gs-prev-step-dot--cur {
    background: #f59e0b;
    color: #fff;
    box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.2);
}

.gs-prev-step-dot--next {
    background: var(--gs-gray-200, #e5e7eb);
    color: var(--gs-gray-400, #9ca3af);
}

.gs-prev-step-line {
    flex: 1;
    height: 3px;
    min-width: 8px;
    border-radius: 2px;
    background: var(--gs-gray-200, #e5e7eb);
}

.gs-prev-step-line--done {
    background: var(--gs-primary, #0f6e56);
}

.gs-prev-step-line--pending {
    background: var(--gs-gray-200, #e5e7eb);
}

.gs-prev-slab {
    display: flex;
    justify-content: space-between;
    gap: 4px;
    font-size: 9px;
    color: var(--gs-gray-400, #9ca3af);
    max-width: 640px;
    margin: 8px auto 0;
    padding: 0 2px;
}

.gs-prev-slab-item {
    flex: 1 1 0;
    text-align: center;
    line-height: 1.2;
    min-width: 0;
}

.gs-prev-slab .gs-prev-slab-cur {
    color: var(--gs-amber-600, #d97706);
    font-weight: 600;
}

.gs-prev-stepper--slab .gs-prev-slab {
    max-width: 100%;
    margin-top: 4px;
}

button.gs-prev-slab-item {
    border: none;
    background: transparent;
    font: inherit;
    color: inherit;
    cursor: pointer;
    padding: 4px 2px;
}

.gs-prev-slab-item small {
    display: block;
    font-size: 8px;
    font-weight: 500;
    margin-top: 1px;
}

.gs-prev-slab-num {
    font-weight: 700;
}

.gs-prev-slab-done {
    color: var(--gs-accent-green);
    font-weight: 600;
}

.gs-prev-slab-sep {
    flex: 0 0 10px;
    align-self: center;
    height: 1px;
    background: var(--gs-border);
}

.gs-prev-slab-sep--done {
    background: var(--gs-accent-green);
}

.gs-prev-path-badge {
    display: inline-block;
    margin: 4px 0 2px;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 9.5px;
    font-weight: 700;
    background: var(--gs-accent-light);
    color: var(--gs-accent-green);
}

.gs-prev-step-sub {
    margin: 0 0 6px;
    font-size: 10.5px;
    color: var(--gs-text-secondary, var(--gs-gray-500));
    line-height: 1.4;
}

/* ═══ AREA SELECTOR (mockup v1) ═══ */
.gs-prev-area-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-bottom: 20px;
}

@media (max-width: 768px) {
    .gs-prev-area-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 480px) {
    .gs-prev-area-grid {
        grid-template-columns: 1fr;
    }
}

.gs-prev-area-card {
    border: 2px solid var(--gs-border);
    border-radius: 10px;
    padding: 16px;
    cursor: pointer;
    transition: all 0.15s;
    position: relative;
    background: var(--gs-card-bg);
}

.gs-prev-area-card:hover {
    border-color: var(--gs-accent-green);
    background: color-mix(in srgb, var(--gs-accent-light) 35%, var(--gs-card-bg));
}

.gs-prev-area-card--selected {
    border-color: var(--gs-accent-green);
    background: var(--gs-accent-light);
}

.gs-prev-area-check {
    position: absolute;
    top: 8px;
    right: 10px;
    color: var(--gs-accent-green);
    font-weight: 700;
    font-size: 16px;
}

.gs-prev-area-icon {
    font-size: 24px;
    margin-bottom: 8px;
}

.gs-prev-area-name {
    font-size: 13px;
    font-weight: 700;
    color: var(--gs-text-primary, var(--gs-gray-900));
}

.gs-prev-area-desc {
    font-size: 10.5px;
    color: var(--gs-text-secondary, var(--gs-gray-500));
    margin-top: 3px;
    line-height: 1.4;
}

.gs-prev-area-meta {
    font-size: 9.5px;
    color: var(--gs-accent-green);
    margin-top: 6px;
    font-weight: 600;
}

.gs-prev-grafo-ic {
    background: var(--grafo-bg);
    color: var(--grafo-fg);
}

.gs-prev-content {
    padding: 16px;
}

.gs-prev-view {
    display: none;
}

.gs-prev-view--on {
    display: block;
}

/* ═══ STRUTTURA / PATH C ═══ */
.gs-prev-struct-grid {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 16px;
    margin-bottom: 20px;
}

.gs-prev-struct-sidebar {
    background: var(--gs-card-bg, #fff);
    border: 1px solid var(--gs-border, #e2e6ea);
    border-radius: var(--gs-radius, 10px);
    padding: 16px;
}

.gs-prev-struct-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
    gap: 8px;
}

.gs-prev-struct-floor {
    padding: 8px 12px;
    border-radius: 6px;
    cursor: pointer;
    margin-bottom: 4px;
    font-size: 12px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border: none;
    background: none;
    width: 100%;
    text-align: left;
}

.gs-prev-struct-floor:hover {
    background: var(--gs-bg, #f4f6f8);
}

.gs-prev-struct-floor--active {
    background: var(--gs-accent-light, #e8f5f0);
    font-weight: 600;
    color: var(--gs-accent, #2d8b6e);
}

.gs-prev-floor-count {
    font-size: 10px;
    background: var(--gs-border, #e2e6ea);
    padding: 1px 6px;
    border-radius: 8px;
}

.gs-prev-struct-floor--active .gs-prev-floor-count {
    background: var(--gs-accent, #2d8b6e);
    color: #fff;
}

.gs-prev-struct-totals {
    margin-top: 12px;
    font-size: 11px;
    color: var(--gs-muted, #6b7a8d);
}

.gs-prev-struct-main {
    background: var(--gs-card-bg, #fff);
    border: 1px solid var(--gs-border, #e2e6ea);
    border-radius: var(--gs-radius, 10px);
    padding: 20px;
}

.gs-prev-unit-card {
    border: 1px solid var(--gs-border, #e2e6ea);
    border-radius: 8px;
    padding: 12px;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
}

.gs-prev-unit-card:hover {
    border-color: var(--gs-accent, #2d8b6e);
}

.gs-prev-unit-area-chip {
    font-size: 9px;
    padding: 2px 6px;
    border-radius: 4px;
    background: var(--gs-bg, #f4f6f8);
    border: 1px solid var(--gs-border, #e2e6ea);
    color: var(--gs-muted, #6b7a8d);
}

.gs-prev-unit-area-chip--active {
    background: var(--gs-accent-light, #e8f5f0);
    border-color: var(--gs-accent, #2d8b6e);
    color: var(--gs-accent, #2d8b6e);
    font-weight: 600;
}

.gs-prev-struct-tr-piano td {
    background: var(--gs-bg, #f4f6f8);
    font-weight: 600;
}

.gs-prev-struct-td-indent {
    padding-left: 1.5rem !important;
}

.gs-prev-struct-tr-totale td {
    border-top: 2px solid var(--gs-border, #e2e6ea);
    font-weight: 600;
}

@media (max-width: 768px) {
    .gs-prev-struct-grid {
        grid-template-columns: 1fr;
    }
}

.gs-prev-card {
    background: #fff;
    border: 1px solid var(--gs-gray-200, #e5e7eb);
    border-radius: 10px;
    overflow: hidden;
    margin-bottom: 12px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.gs-prev-card-h {
    padding: 10px 14px;
    background: var(--gs-gray-50, #f9fafb);
    border-bottom: 1px solid var(--gs-gray-200, #e5e7eb);
    font-size: 13px;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 6px;
}

.gs-prev-card-h .gs-prev-nm {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--gs-primary, #0f6e56);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    font-weight: 500;
    flex-shrink: 0;
}

.gs-prev-card-b {
    padding: 12px 14px;
}

.gs-prev-fl {
    font-size: 10px;
    color: var(--gs-gray-500, #6b7280);
    font-weight: 500;
    margin-bottom: 4px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.gs-prev-fg {
    margin-bottom: 10px;
}

.gs-prev-pill {
    padding: 6px 14px;
    border-radius: 14px;
    font-size: 11px;
    border: 1.5px solid var(--gs-gray-200, #e5e7eb);
    background: #fff;
    cursor: pointer;
    transition: all 0.12s;
    text-align: left;
    font-family: inherit;
    color: inherit;
}

.gs-prev-pill:hover {
    border-color: var(--gs-primary, #0f6e56);
    color: var(--gs-primary, #0f6e56);
}

.gs-prev-pill--on {
    background: var(--gs-primary-light, #ecfdf5);
    border-color: var(--gs-primary, #0f6e56);
    color: var(--gs-primary-dark, #065f46);
    font-weight: 500;
}

.gs-prev-pill--dim {
    opacity: 0.3;
    pointer-events: none;
    border-color: var(--gs-gray-200, #e5e7eb);
    background: var(--gs-gray-50, #f9fafb);
    color: var(--gs-gray-400, #9ca3af);
}

.gs-prev-pill-lg {
    padding: 8px 18px;
}

.gs-prev-pill-sub {
    font-size: 9px;
    color: var(--gs-gray-400, #9ca3af);
    font-weight: 400;
    margin-top: 2px;
}

.gs-prev-rg {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.gs-prev-upload {
    border: 2px dashed var(--gs-gray-300, #d1d5db);
    border-radius: 10px;
    padding: 24px;
    text-align: center;
    cursor: pointer;
    transition: all 0.15s;
}

.gs-prev-upload:hover {
    border-color: var(--gs-primary, #0f6e56);
    background: var(--gs-primary-light, #ecfdf5);
}

.gs-prev-upload--done {
    border-color: var(--gs-primary, #0f6e56);
    border-style: solid;
    background: var(--gs-primary-light, #ecfdf5);
}

.gs-prev-lucio {
    margin-top: 8px;
    margin-bottom: 16px;
    background: var(--gs-accent-gold-light);
    border: 1px solid var(--gs-accent-gold-border);
    border-radius: 8px;
    padding: 8px 14px;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
}

.gs-prev-lucio-ic {
    width: 24px;
    height: 24px;
    border-radius: 6px;
    background: linear-gradient(135deg, var(--gs-lucio-gradient-start), var(--gs-lucio-gradient-end));
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 700;
    flex-shrink: 0;
}

.gs-prev-lucio-txt {
    font-size: 11px;
    color: var(--gs-gray-600, #4b5563);
    line-height: 1.4;
}

.gs-prev-lucio-accent {
    color: var(--gs-accent-gold);
    font-weight: 700;
}

.gs-prev-lucio-ic--amb {
    background: linear-gradient(135deg, var(--gs-lucio-gradient-start), var(--gs-lucio-gradient-end));
}

.gs-prev-lucio-txt--xs {
    font-size: 9px;
}

.gs-prev-step-head {
    margin-bottom: 14px;
}

.gs-prev-step-h2 {
    font-size: 1.15rem;
    font-weight: 600;
    margin: 0 0 4px 0;
    color: var(--gs-gray-900, #111827);
    display: flex;
    align-items: center;
    gap: 8px;
}

.gs-prev-step-lead {
    margin: 0;
    font-size: 12px;
    line-height: 1.45;
}

.gs-prev-card--ctx {
    margin-bottom: 12px;
}

.gs-prev-mb-4 {
    margin-bottom: 4px;
}

.gs-prev-mb-6 {
    margin-bottom: 6px;
}

.gs-prev-mb-8 {
    margin-bottom: 8px;
}

.gs-prev-mb-14 {
    margin-bottom: 14px;
}

.gs-prev-mb-0 {
    margin-bottom: 0;
}

.gs-prev-mt-8 {
    margin-top: 8px;
}

.gs-prev-mt-10 {
    margin-top: 10px;
}

.gs-prev-tip-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

@media (max-width: 720px) {
    .gs-prev-tip-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 480px) {
    .gs-prev-tip-grid {
        grid-template-columns: 1fr;
    }
}

.gs-prev-tip-tile {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    gap: 4px;
    padding: 10px 12px;
    border-radius: 10px;
    border: 2px solid var(--gs-gray-200, #e5e7eb);
    background: #fff;
    cursor: pointer;
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
    font-family: inherit;
    min-height: 88px;
}

.gs-prev-tip-tile:hover {
    border-color: var(--gs-gray-300, #d1d5db);
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}

.gs-prev-tip-tile--on {
    border-color: var(--gs-primary, #0f6e56);
    background: var(--gs-primary-soft, rgba(15, 110, 86, 0.06));
    box-shadow: 0 0 0 1px var(--gs-primary, #0f6e56);
}

.gs-prev-tip-tile-ic {
    font-size: 18px;
    color: var(--gs-primary, #0f6e56);
}

.gs-prev-tip-tile-lbl {
    font-size: 12px;
    font-weight: 600;
    color: var(--gs-gray-900, #111827);
    line-height: 1.25;
}

.gs-prev-tip-tile-sub {
    font-size: 9px;
    color: var(--gs-gray-500, #6b7280);
    line-height: 1.35;
}

.gs-prev-ctx-chips-sec {
    margin-bottom: 0;
}

.gs-prev-ctx-chips-lbl {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--gs-gray-500, #6b7280);
    margin-bottom: 6px;
}

.gs-prev-ctx-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.gs-prev-ctx-chip {
    border: 1px solid var(--gs-gray-300, #d1d5db);
    background: #fff;
    color: var(--gs-gray-700, #374151);
    font-size: 11px;
    font-weight: 500;
    padding: 5px 10px;
    border-radius: 999px;
    cursor: pointer;
    transition: background 0.12s, border-color 0.12s, color 0.12s;
    font-family: inherit;
}

.gs-prev-ctx-chip:hover:not(:disabled) {
    border-color: var(--gs-gray-400, #9ca3af);
    background: var(--gs-gray-50, #f9fafb);
}

.gs-prev-ctx-chip--on {
    border-color: var(--gs-primary, #0f6e56);
    background: var(--gs-primary-soft, rgba(15, 110, 86, 0.08));
    color: var(--gs-primary-dark, #065f46);
}

.gs-prev-ctx-chip--dim {
    opacity: 0.4;
    cursor: not-allowed;
}

.gs-prev-upload-ico {
    font-size: 24px;
    color: var(--gs-gray-400, #9ca3af);
}

.gs-prev-upload-title {
    font-size: 12px;
    font-weight: 500;
    margin-top: 4px;
}

.gs-prev-upload-hint {
    margin-top: 2px;
    font-size: 11px;
}

.gs-prev-after-h {
    font-size: 12px;
    font-weight: 500;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.gs-prev-area-card-txt {
    flex: 1;
    min-width: 0;
}

.gs-prev-area-met {
    margin-top: 6px;
    font-size: 13px;
    color: var(--gs-gray-600, #4b5563);
    line-height: 1.35;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 2px 0;
}

.gs-prev-area-met strong {
    font-weight: 600;
    color: var(--gs-gray-800, #1f2937);
}

.gs-prev-area-met-sep {
    margin: 0 4px;
    color: var(--gs-gray-400, #9ca3af);
}

.gs-prev-skel-dot {
    display: inline-block;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--gs-gray-400, #9ca3af);
    margin-right: 4px;
    vertical-align: middle;
}

.gs-prev-btns {
    display: flex;
    gap: 6px;
    margin-top: 12px;
    justify-content: flex-end;
    flex-wrap: wrap;
}

.gs-prev-b1 {
    background: var(--gs-primary, #0f6e56);
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 8px 20px;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: inherit;
}

.gs-prev-b1:hover {
    background: #085041;
}

.gs-prev-b2 {
    background: #fff;
    color: var(--gs-gray-700, #374151);
    border: 1px solid var(--gs-gray-300, #d1d5db);
    border-radius: 8px;
    padding: 7px 16px;
    font-size: 12px;
    cursor: pointer;
    font-family: inherit;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.gs-prev-b2:hover {
    background: var(--gs-gray-50, #f9fafb);
}

/* ═══ SUMMARY BAR ═══ */
.gs-prev-summary-bar {
    background: var(--gs-card-bg);
    border-top: 1px solid var(--gs-border);
    border-radius: var(--gs-radius-sm);
    padding: 12px 20px;
    display: flex;
    align-items: center;
    gap: 16px;
    position: sticky;
    bottom: 0;
    box-shadow: var(--gs-prev-summary-shadow);
    z-index: 5;
    margin-top: 16px;
}

.gs-prev-summary-actions .gs-prev-summary-btn {
    padding: 7px 14px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 600;
}

.gs-prev-summary-items {
    flex: 1;
    display: flex;
    gap: 20px;
    align-items: center;
    font-size: 12px;
}

.gs-prev-summary-item {
    display: flex;
    flex-direction: column;
}

.gs-prev-summary-item b {
    font-size: 14px;
}

.gs-prev-summary-item small {
    font-size: 9.5px;
    color: var(--gs-text-secondary);
}

.gs-prev-summary-actions {
    display: flex;
    gap: 8px;
    align-items: center;
}

.gs-prev-b1--accent {
    background: var(--gs-warning);
}

.gs-prev-b1--accent:hover {
    background: var(--gs-warning-dark);
}

/* ═══ PATH B — AREA TABS ═══ */
.gs-prev-aree-tabs {
    display: flex;
    gap: 0;
    border-bottom: 2px solid var(--gs-border);
    margin-bottom: 20px;
    flex-wrap: wrap;
    align-items: flex-end;
}

.gs-prev-area-tab {
    padding: 8px 16px;
    font-size: 12px;
    font-weight: 500;
    color: var(--gs-text-secondary);
    cursor: pointer;
    border: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: color var(--gs-transition), border-color var(--gs-transition);
    background: transparent;
    font-family: inherit;
}

.gs-prev-area-tab:hover {
    color: var(--gs-text-primary);
}

.gs-prev-area-tab--active {
    color: var(--gs-primary);
    border-bottom-color: var(--gs-primary);
    font-weight: 600;
}

.gs-prev-area-tab-lbl {
    white-space: nowrap;
}

.gs-prev-tab-price {
    font-size: 10px;
    font-weight: 600;
    color: var(--gs-primary);
    background: var(--gs-primary-50);
    padding: 1px 6px;
    border-radius: 8px;
    margin-left: 2px;
}

.gs-prev-tab-status {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
}

.gs-prev-tab-status--done {
    background: var(--gs-success);
}

.gs-prev-tab-status--wip {
    background: var(--gs-warning);
}

.gs-prev-tab-status--empty {
    background: var(--gs-gray-300);
}

.gs-prev-add-area-tab {
    padding: 8px 14px;
    font-size: 12px;
    font-weight: 600;
    color: var(--gs-primary);
    cursor: pointer;
    margin-bottom: -2px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    border: none;
    background: none;
    font-family: inherit;
}

.gs-prev-add-area-tab:hover:not(:disabled) {
    background: var(--gs-primary-50);
    border-radius: 6px 6px 0 0;
}

.gs-prev-add-area-tab:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

/* ═══ PATH B — RIEPILOGO COMMESSA ═══ */
.gs-prev-cmm-rep {
    margin-top: 8px;
}

.gs-prev-cmm-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

@media (max-width: 768px) {
    .gs-prev-cmm-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.gs-prev-cmm-stat {
    background: var(--gs-card-bg);
    border: 1px solid var(--gs-border);
    border-radius: var(--gs-radius-sm);
    padding: 12px 14px;
}

.gs-prev-cmm-stat-lbl {
    font-size: 11px;
    color: var(--gs-text-secondary);
    margin-bottom: 4px;
}

.gs-prev-cmm-stat-val {
    font-size: 16px;
    font-weight: 600;
    color: var(--gs-gray-800);
}

.gs-prev-cmm-stat--accent .gs-prev-cmm-stat-val {
    color: var(--gs-primary);
}

.gs-prev-cmm-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
    margin-top: 8px;
}

.gs-prev-ctx-bar {
    background: var(--gs-gray-50, #f9fafb);
    border: 1px solid var(--gs-gray-200, #e5e7eb);
    border-radius: 8px;
    padding: 6px 12px;
    margin-bottom: 12px;
    font-size: 11px;
    color: var(--gs-gray-500, #6b7280);
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.gs-prev-ctx-bar b {
    color: var(--gs-gray-800, #1f2937);
    font-weight: 500;
}

.gs-prev-ctx-ed {
    color: var(--gs-primary, #0f6e56);
    cursor: pointer;
    margin-left: auto;
    white-space: nowrap;
    border: none;
    background: none;
    font-size: inherit;
    font-family: inherit;
    padding: 0;
}

.gs-prev-ctx-ed:hover {
    text-decoration: underline;
}

.gs-prev-badge-ctx {
    background: var(--gs-primary-light, #ecfdf5);
    border: 1px solid var(--gs-primary, #0f6e56);
    border-radius: 8px;
    padding: 6px 12px;
    font-size: 11px;
    color: var(--gs-primary-dark, #065f46);
}

.gs-prev-cat-lbl {
    font-size: 10px;
    font-weight: 500;
    color: var(--gs-gray-400, #9ca3af);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 6px;
    padding-left: 2px;
}

.gs-prev-grid-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-bottom: 16px;
}

.gs-prev-grid-3 {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 8px;
    margin-bottom: 16px;
}

.gs-prev-area-card {
    background: #fff;
    border: 2px solid var(--gs-gray-200, #e5e7eb);
    border-radius: 10px;
    padding: 16px 20px;
    cursor: pointer;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease, background-color 0.2s ease;
    text-align: left;
    font-family: inherit;
    color: inherit;
    width: 100%;
}

.gs-prev-area-card:hover {
    border-color: var(--gs-primary);
    box-shadow: var(--gs-shadow-md);
    transform: translateY(-2px);
}

.gs-prev-area-card--on {
    border: 2px solid var(--gs-primary);
    background: var(--gs-primary-bg);
    color: var(--gs-gray-800, #1f2937);
}

.gs-prev-area-card--on:hover {
    border-color: var(--gs-primary);
    background: var(--gs-primary-bg);
    box-shadow: var(--gs-shadow-md);
    transform: translateY(-2px);
}

.gs-prev-area-card-h {
    display: flex;
    align-items: center;
    gap: 10px;
}

.gs-prev-area-ic {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    flex-shrink: 0;
}

.gs-prev-area-name {
    font-size: 13px;
    font-weight: 500;
}

.gs-prev-area-desc {
    font-size: 10px;
    color: var(--gs-gray-500, #6b7280);
    margin-top: 1px;
}

.gs-prev-area-tog {
    width: 36px;
    height: 20px;
    border-radius: 10px;
    background: var(--gs-gray-300, #d1d5db);
    position: relative;
    flex-shrink: 0;
    transition: background 0.2s;
}

.gs-prev-area-tog::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #fff;
    transition: transform 0.2s;
}

.gs-prev-area-tog--on {
    background: var(--gs-primary, #0f6e56);
}

.gs-prev-area-tog--on::after {
    transform: translateX(16px);
}

.gs-prev-area-sm {
    border-width: 1.5px;
    border-radius: 8px;
    padding: 12px 16px;
}

.gs-prev-area-sm .gs-prev-area-ic {
    width: 28px;
    height: 28px;
    border-radius: 7px;
    font-size: 13px;
}

.gs-prev-area-sm .gs-prev-area-tog {
    width: 30px;
    height: 16px;
    border-radius: 8px;
}

.gs-prev-area-sm .gs-prev-area-tog::after {
    width: 12px;
    height: 12px;
}

.gs-prev-area-sm .gs-prev-area-tog--on::after {
    transform: translateX(14px);
}

.gs-prev-impact {
    font-size: 10px;
    color: var(--gs-gray-500, #6b7280);
    margin-top: 8px;
    padding-top: 6px;
    border-top: 1px solid var(--gs-gray-100, #f3f4f6);
}

.gs-prev-dep {
    font-size: 10px;
    color: #5b21b6;
    margin-top: 3px;
}

.gs-prev-after-box {
    background: var(--gs-gray-50, #f9fafb);
    border: 1px solid var(--gs-gray-200, #e5e7eb);
    border-radius: 10px;
    padding: 12px 14px;
    margin-bottom: 8px;
}

.gs-prev-sum-line {
    background: var(--gs-primary-light, #ecfdf5);
    border: 1px solid var(--gs-primary, #0f6e56);
    border-radius: 8px;
    padding: 8px 12px;
    font-size: 11px;
    color: var(--gs-primary-dark, #065f46);
    margin-top: 8px;
}

.gs-prev-empty-ic {
    font-size: 40px;
    opacity: 0.25;
}

.gs-prev-stock-h {
    padding: 8px 10px 6px;
    border-bottom: 1px solid var(--gs-gray-200, #e5e7eb);
    background: var(--gs-card-bg, #fff);
}

.gs-prev-stock-tit {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--gs-gray-700, #374151);
    display: flex;
    align-items: center;
    gap: 5px;
}

.gs-prev-stock-sub {
    font-size: 9px;
    color: var(--gs-gray-500, #6b7280);
    margin-top: 2px;
}

.gs-prev-stock-list {
    max-height: 140px;
    overflow-y: auto;
    border-bottom: 1px solid var(--gs-gray-200, #e5e7eb);
}

.gs-prev-stock-row {
    padding: 6px 10px;
    border-bottom: 1px solid var(--gs-gray-100, #f3f4f6);
    font-size: 10px;
}

.gs-prev-stock-row-t {
    font-weight: 500;
    color: var(--gs-gray-800, #1f2937);
    line-height: 1.2;
    margin-bottom: 2px;
}

.gs-prev-stock-row-m {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.gs-prev-stock-cod {
    font-family: ui-monospace, monospace;
    color: var(--gs-gray-600, #4b5563);
}

.gs-prev-stock-qty {
    color: var(--gs-gray-500, #6b7280);
}

.gs-prev-stock-eur {
    margin-left: auto;
    font-weight: 600;
    color: var(--gs-primary, #0f6e56);
}

.gs-prev-stock-empty {
    padding: 10px;
    font-size: 10px;
}

.gs-prev-stock-sum {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 6px 10px;
    font-size: 10px;
    font-weight: 600;
    color: var(--gs-gray-800, #1f2937);
    background: var(--gs-primary-50, #ecfdf5);
    border-bottom: 1px solid var(--gs-gray-200, #e5e7eb);
}

.gs-prev-lucio--sb {
    margin: 0;
    border-radius: 0;
    border-left: none;
    border-right: none;
}

.gs-prev-lucio-ic--sb {
    width: 18px;
    height: 18px;
    font-size: 8px;
    background: linear-gradient(135deg, var(--gs-lucio-gradient-start), var(--gs-lucio-gradient-end));
}

.gs-prev-sb-actions {
    padding: 8px;
    border-top: 1px solid var(--gs-gray-200, #e5e7eb);
}

.gs-prev-b1--sb {
    margin: 0;
    padding: 6px 10px;
    font-size: 11px;
}

.gs-prev-b2--sb {
    margin: 0;
    padding: 6px 10px;
    font-size: 11px;
}

.gs-prev-ah-name {
    font-size: 14px;
    font-weight: 500;
}

.gs-prev-ah-progress {
    margin-left: 4px;
}

.gs-prev-ah-tot {
    margin-left: auto;
    font-size: 14px;
    font-weight: 500;
    color: var(--gs-primary, #0f6e56);
}

.gs-prev-node-dot {
    width: 22px;
    height: 22px;
    border-radius: 50%;
}

.gs-prev-node-body {
    flex: 1;
    min-width: 0;
    text-align: left;
}

.gs-prev-node-name {
    font-size: 12px;
    font-weight: 500;
}

.gs-prev-node-val {
    font-size: 12px;
    font-weight: 500;
    color: var(--gs-primary, #0f6e56);
    min-width: 55px;
    text-align: right;
}

.gs-prev-opts--cards {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
}

.gs-prev-opt-card {
    display: block;
    width: 100%;
    text-align: left;
    padding: 10px 12px;
    border-radius: 10px;
    border: 1.5px solid var(--gs-gray-200, #e5e7eb);
    background: var(--gs-gray-50, #f9fafb);
    cursor: pointer;
    font-family: inherit;
    color: inherit;
    transition: border-color 0.12s, background 0.12s;
}

.gs-prev-opt-card:hover {
    border-color: var(--gs-gray-300, #d1d5db);
    background: #fff;
}

.gs-prev-opt-card--sel {
    border-color: var(--gs-primary, #0f6e56);
    background: var(--gs-primary-50, #ecfdf5);
}

.gs-prev-opt-card-h {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 8px;
}

.gs-prev-opt-card-tit {
    font-size: 12px;
    font-weight: 600;
    line-height: 1.25;
}

.gs-prev-opt-card-list {
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}

.gs-prev-opt-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(108px, 1fr));
    gap: 6px 10px;
    font-size: 10px;
    line-height: 1.3;
}

.gs-prev-opt-lbl {
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.gs-prev-nd {
    color: var(--gs-gray-400, #9ca3af);
}

.gs-prev-opt-trend-cell {
    grid-column: span 1;
}

.gs-prev-trend {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 6px;
    background: var(--gs-gray-100, #f3f4f6);
    color: var(--gs-gray-500, #6b7280);
}

.gs-prev-trend--flat {
    background: var(--gs-gray-100, #f3f4f6);
}

.gs-prev-opt-qty-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
    padding-top: 8px;
    border-top: 1px dashed var(--gs-gray-200, #e5e7eb);
}

.gs-prev-qty {
    width: 72px;
    max-width: 100%;
}

.gs-prev-opt-line-tot {
    font-size: 11px;
    font-weight: 600;
    color: var(--gs-primary, #0f6e56);
    margin-left: auto;
}

.gs-prev-note--arch {
    margin-top: 8px;
}

.gs-prev-prep-toggle {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
}

.gs-prev-prep-toggle-lbl {
    margin-right: auto;
}

.gs-prev-seg {
    padding: 5px 12px;
    font-size: 11px;
    border: 1px solid var(--gs-gray-300, #d1d5db);
    background: var(--gs-card-bg, #fff);
    border-radius: 8px;
    cursor: pointer;
    font-family: inherit;
    color: inherit;
}

.gs-prev-seg--on {
    border-color: var(--gs-primary, #0f6e56);
    background: var(--gs-primary-50, #ecfdf5);
    color: var(--gs-primary-dark, #065f46);
    font-weight: 500;
}

.gs-prev-prep-table-wrap {
    overflow-x: auto;
    border: 1px solid var(--gs-gray-200, #e5e7eb);
    border-radius: 10px;
}

.gs-prev-prep-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 11px;
}

.gs-prev-prep-table th,
.gs-prev-prep-table td {
    padding: 8px 10px;
    border-bottom: 1px solid var(--gs-gray-100, #f3f4f6);
    vertical-align: top;
}

.gs-prev-prep-table th {
    text-align: left;
    font-weight: 600;
    color: var(--gs-gray-600, #4b5563);
    background: var(--gs-gray-50, #f9fafb);
    white-space: nowrap;
}

.gs-prev-prep-num {
    text-align: right;
    white-space: nowrap;
}

.gs-prev-prep-hide-pdf {
    background: var(--gs-amber-light, #fef3c7);
}

.gs-prev-prep-voce {
    font-weight: 500;
    color: var(--gs-gray-900, #111827);
}

.gs-prev-prep-mono {
    font-family: ui-monospace, monospace;
    font-size: 10px;
}

.gs-prev-prep-note {
    max-width: 180px;
    word-break: break-word;
}

.gs-prev-prep-strong {
    font-weight: 600;
    color: var(--gs-primary, #0f6e56);
}

.gs-prev-prep-pdf-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-top: 12px;
}

.gs-prev-prep-kv {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 10px 14px;
    font-size: 11px;
}

.gs-prev-prep-rate-stack {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.gs-prev-prep-rate {
    border: 1px solid var(--gs-gray-200, #e5e7eb);
    border-radius: 10px;
    padding: 10px 12px;
    background: var(--gs-gray-50, #f9fafb);
}

.gs-prev-prep-rate--sel {
    border-color: var(--gs-primary, #0f6e56);
    background: var(--gs-primary-50, #ecfdf5);
}

.gs-prev-prep-rate-h {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.gs-prev-tl {
    list-style: none;
    margin: 0;
    padding: 0;
}

.gs-prev-tl-i {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 8px 0;
    border-bottom: 1px solid var(--gs-gray-100, #f3f4f6);
}

.gs-prev-tl-i:last-child {
    border-bottom: none;
}

.gs-prev-tl-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    margin-top: 4px;
    flex-shrink: 0;
    background: var(--gs-gray-300, #d1d5db);
}

.gs-prev-tl-dot--ok {
    background: var(--gs-primary, #0f6e56);
}

.gs-prev-tl-dot--wait {
    background: var(--gs-gray-300, #d1d5db);
}

.gs-prev-tl-body {
    flex: 1;
    min-width: 0;
}

.gs-prev-tl-lbl {
    font-size: 12px;
    font-weight: 500;
}

.gs-prev-chk-row {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 12px;
    margin-bottom: 8px;
    cursor: pointer;
}

.gs-prev-mon-stock {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.gs-prev-mon-stock-r {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px 10px;
    font-size: 11px;
    padding: 6px 8px;
    border-radius: 8px;
    background: var(--gs-gray-50, #f9fafb);
    border: 1px solid var(--gs-gray-200, #e5e7eb);
}

.gs-prev-mon-stock-meta {
    color: var(--gs-gray-500, #6b7280);
    font-family: ui-monospace, monospace;
    font-size: 10px;
}

.gs-prev-mon-stock-e {
    margin-left: auto;
    font-weight: 600;
    color: var(--gs-primary, #0f6e56);
}

.gs-prev-stock-sum--inline {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 10px;
    font-size: 11px;
    font-weight: 600;
    border-radius: 8px;
    background: var(--gs-primary-50, #ecfdf5);
    border: 1px solid var(--gs-gray-200, #e5e7eb);
}

.gs-prev-three-col {
    display: flex;
    border: 1px solid var(--gs-gray-200, #e5e7eb);
    border-radius: 10px;
    overflow: hidden;
    min-height: 280px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.gs-prev-col {
    border-right: 1px solid var(--gs-gray-200, #e5e7eb);
    display: flex;
    flex-direction: column;
}

.gs-prev-col:last-child {
    border-right: none;
}

.gs-prev-col1 {
    width: 165px;
    flex-shrink: 0;
    background: var(--gs-gray-50, #f9fafb);
}

.gs-prev-col2 {
    width: 180px;
    flex-shrink: 0;
}

.gs-prev-col3 {
    flex: 1;
}

.gs-prev-col-h {
    padding: 6px 10px;
    font-size: 9px;
    font-weight: 500;
    color: var(--gs-gray-500, #6b7280);
    text-transform: uppercase;
    letter-spacing: 0.3px;
    border-bottom: 1px solid var(--gs-gray-200, #e5e7eb);
    background: var(--gs-gray-50, #f9fafb);
}

.gs-prev-col-b {
    flex: 1;
    overflow-y: auto;
}

.gs-prev-pi {
    padding: 8px 10px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 7px;
    border-bottom: 1px solid var(--gs-gray-100, #f3f4f6);
    transition: all 0.1s;
    width: 100%;
    border-left: 3px solid transparent;
    background: none;
    font-family: inherit;
    text-align: left;
    color: inherit;
}

.gs-prev-pi:hover {
    background: var(--gs-gray-100, #f3f4f6);
}

.gs-prev-pi--on {
    background: var(--gs-primary-light, #ecfdf5);
    border-left-color: var(--gs-primary, #0f6e56);
}

.gs-prev-pi-ic {
    width: 26px;
    height: 26px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 500;
    flex-shrink: 0;
}

.gs-prev-add-i {
    padding: 7px 10px;
    font-size: 10px;
    color: var(--gs-primary, #0f6e56);
    cursor: pointer;
    border-bottom: 1px solid var(--gs-gray-100, #f3f4f6);
    border: none;
    background: none;
    width: 100%;
    text-align: left;
    font-family: inherit;
}

.gs-prev-add-i:hover {
    background: var(--gs-primary-light, #ecfdf5);
}

.gs-prev-str-mod {
    border: 1.5px solid var(--gs-gray-200, #e5e7eb);
    border-radius: 10px;
    margin-bottom: 10px;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.gs-prev-str-mod-h {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    background: var(--gs-gray-50, #f9fafb);
    cursor: pointer;
    transition: background 0.1s;
    width: 100%;
    border: none;
    font-family: inherit;
    text-align: left;
    color: inherit;
}

.gs-prev-str-mod-h:hover {
    background: var(--gs-gray-100, #f3f4f6);
}

.gs-prev-str-mod-b {
    display: none;
    padding: 12px 14px;
    border-top: 1px solid var(--gs-gray-200, #e5e7eb);
}

.gs-prev-str-mod-b--open {
    display: block;
}

.gs-prev-str-h3 {
    font-size: 15px;
    font-weight: 500;
    margin: 0 0 4px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.gs-prev-str-mod-txt {
    flex: 1;
    min-width: 0;
    text-align: left;
}

.gs-prev-str-ic--amber {
    background: var(--gs-amber-light, #fef3c7);
    color: var(--gs-amber-dark, #78350f);
}

.gs-prev-str-ic--blue {
    background: var(--gs-info-light, #dbeafe);
    color: var(--gs-info-dark, #1e40af);
}

.gs-prev-str-form-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 10px 14px;
    margin-bottom: 8px;
}

.gs-prev-fld-w160 {
    max-width: 160px;
    width: 100%;
}

.gs-prev-fld-w56 {
    width: 56px;
    max-width: 100%;
}

.gs-prev-pi-mid {
    flex: 1;
    min-width: 0;
    text-align: left;
}

.gs-prev-pi-nome {
    font-size: 11px;
    font-weight: 500;
    line-height: 1.25;
}

.gs-prev-pi-mq {
    font-size: 10px;
    font-weight: 500;
    color: var(--gs-gray-500, #6b7280);
    flex-shrink: 0;
}

.gs-prev-energia-card {
    margin-bottom: 12px;
}

.gs-prev-energia-kpi {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 12px;
}

.gs-prev-fascia {
    font-size: 10px;
    font-weight: 500;
    padding: 4px 10px;
    border-radius: 999px;
    border: 1px solid var(--gs-gray-200, #e5e7eb);
    background: var(--gs-gray-50, #f9fafb);
}

.gs-prev-fascia--f1 {
    border-color: var(--gs-amber, #d97706);
    background: var(--gs-amber-light, #fef3c7);
    color: var(--gs-amber-dark, #78350f);
}

.gs-prev-fascia--f2 {
    border-color: var(--gs-info, #3b82f6);
    background: var(--gs-info-light, #dbeafe);
    color: var(--gs-info-dark, #1e40af);
}

.gs-prev-fascia--f3 {
    border-color: var(--gs-gray-300, #d1d5db);
    background: var(--gs-gray-100, #f3f4f6);
    color: var(--gs-gray-700, #374151);
}

.gs-prev-chart-12 {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 4px;
    align-items: end;
    min-height: 120px;
    padding: 8px 0 4px;
    border-top: 1px solid var(--gs-gray-100, #f3f4f6);
    margin-top: 4px;
}

.gs-prev-chart-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
    min-height: 100px;
}

.gs-prev-chart-bar {
    width: 100%;
    max-width: 14px;
    margin: 0 auto;
    height: var(--h, 0%);
    min-height: 2px;
    border-radius: 4px 4px 2px 2px;
    background: linear-gradient(180deg, var(--gs-primary-500, #10b981) 0%, var(--gs-primary, #0f6e56) 100%);
    align-self: stretch;
}

.gs-prev-chart-lbl {
    font-size: 8px;
    color: var(--gs-gray-500, #6b7280);
    text-align: center;
    line-height: 1.1;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gs-prev-energia-foot {
    margin-top: 10px;
    font-size: 10px;
}

.gs-prev-tp-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
}

.gs-prev-tp-dot--cu {
    background: var(--gs-accent, #f59e0b);
}

.gs-prev-tp-dot--li {
    background: var(--gs-danger, #dc2626);
}

.gs-prev-tp-dot--ca {
    background: var(--gs-purple, #7c3aed);
}

.gs-prev-tp-dot--ba {
    background: var(--gs-primary-500, #10b981);
}

.gs-prev-tp-dot--co {
    background: var(--gs-gray-400, #9ca3af);
}

.gs-prev-tp-dot--la {
    background: var(--gs-primary-700, #0f6e56);
}

.gs-prev-note {
    font-size: 10px;
    color: var(--gs-gray-400, #9ca3af);
    background: var(--gs-gray-50, #f9fafb);
    border: 1px solid var(--gs-gray-200, #e5e7eb);
    border-radius: 6px;
    padding: 6px 10px;
    margin-top: 8px;
}

.gs-prev-config {
    display: flex;
    border: 1px solid var(--gs-gray-200, #e5e7eb);
    border-radius: 10px;
    overflow: hidden;
    min-height: 440px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.gs-prev-sidebar {
    width: 175px;
    background: var(--gs-gray-50, #f9fafb);
    border-right: 1px solid var(--gs-gray-200, #e5e7eb);
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
}

.gs-prev-si {
    padding: 8px 10px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 6px;
    border-bottom: 1px solid var(--gs-gray-100, #f3f4f6);
    transition: all 0.1s;
    font-size: 10px;
    width: 100%;
    border-left: 3px solid transparent;
    background: none;
    font-family: inherit;
    text-align: left;
    color: inherit;
}

.gs-prev-si:hover {
    background: var(--gs-gray-100, #f3f4f6);
}

.gs-prev-si--active {
    background: #fff;
    border-right: 3px solid var(--gs-primary, #0f6e56);
}

.gs-prev-si-d {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}

.gs-prev-si-d--done {
    background: var(--gs-primary, #0f6e56);
}

.gs-prev-si-d--empty {
    background: var(--gs-gray-300, #d1d5db);
}

.gs-prev-si-d--cur {
    background: #f59e0b;
}

.gs-prev-si-i {
    flex: 1;
    min-width: 0;
}

.gs-prev-si-n {
    font-size: 10px;
    color: var(--gs-gray-700, #374151);
}

.gs-prev-si--active .gs-prev-si-n {
    color: var(--gs-primary, #0f6e56);
    font-weight: 500;
}

.gs-prev-si-v {
    font-size: 9px;
    font-weight: 500;
    color: var(--gs-primary, #0f6e56);
}

.gs-prev-main {
    flex: 1;
    padding: 12px;
    overflow-y: auto;
    background: #fff;
}

.gs-prev-ah {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--gs-gray-200, #e5e7eb);
}

.gs-prev-a-ic {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    color: #fff;
    flex-shrink: 0;
}

.gs-prev-a-ic.gs-prev-grafo-ic {
    color: var(--grafo-fg);
    background: var(--grafo-bg);
}

.gs-prev-node {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 10px;
    border: 1px solid var(--gs-gray-100, #f3f4f6);
    border-radius: 8px;
    margin-bottom: 5px;
    cursor: pointer;
    transition: all 0.12s;
    width: 100%;
    font-family: inherit;
    text-align: left;
    background: #fff;
    color: inherit;
}

.gs-prev-node:hover {
    border-color: var(--gs-gray-200, #e5e7eb);
    background: var(--gs-gray-50, #f9fafb);
}

.gs-prev-node--open {
    border-color: var(--gs-primary, #0f6e56);
    background: var(--gs-primary-light, #ecfdf5);
}

.gs-prev-node-det {
    margin: 0 0 8px 30px;
    padding: 10px;
    background: var(--gs-gray-50, #f9fafb);
    border-radius: 8px;
    border: 1px solid var(--gs-gray-200, #e5e7eb);
}

.gs-prev-opts {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-bottom: 6px;
}

.gs-prev-opt {
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 11px;
    border: 1.5px solid var(--gs-gray-200, #e5e7eb);
    background: #fff;
    cursor: pointer;
    transition: all 0.1s;
    font-family: inherit;
    color: inherit;
}

.gs-prev-opt:hover {
    border-color: var(--gs-primary, #0f6e56);
}

.gs-prev-opt--sel {
    border-color: var(--gs-primary, #0f6e56);
    background: var(--gs-primary-light, #ecfdf5);
    color: var(--gs-primary-dark, #065f46);
    font-weight: 500;
}

.gs-prev-node-auto {
    background: #dbeafe;
    border-radius: 6px;
    padding: 6px 10px;
    margin: 5px 0;
    font-size: 10px;
    color: #1e40af;
    display: flex;
    align-items: center;
    gap: 5px;
}

.gs-prev-summary {
    background: var(--gs-gray-50, #f9fafb);
    border: 1.5px solid var(--gs-gray-200, #e5e7eb);
    border-radius: 10px;
    padding: 12px 14px;
    margin-top: 12px;
}

.gs-prev-rp-row {
    display: flex;
    justify-content: space-between;
    padding: 3px 0;
    font-size: 12px;
}

.gs-prev-rp-row--tot {
    font-weight: 500;
    font-size: 14px;
    color: var(--gs-primary, #0f6e56);
    border-top: 1.5px solid var(--gs-gray-200, #e5e7eb);
    margin-top: 4px;
    padding-top: 6px;
}

.gs-prev-stanza {
    padding: 6px 10px;
    border-bottom: 1px solid var(--gs-gray-100, #f3f4f6);
    display: flex;
    align-items: center;
    gap: 6px;
}

.gs-prev-st-ic {
    width: 22px;
    height: 22px;
    border-radius: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 8px;
    font-weight: 500;
    flex-shrink: 0;
}

.gs-prev-st-ic--cu {
    background: var(--gs-amber-light, #fef3c7);
    color: var(--gs-amber-dark, #78350f);
}

.gs-prev-st-ic--li {
    background: var(--gs-danger-light, #fee2e2);
    color: var(--gs-danger-dark, #991b1b);
}

.gs-prev-st-ic--ca {
    background: var(--gs-purple-light, #ede9fe);
    color: var(--gs-purple-dark, #5b21b6);
}

.gs-prev-st-ic--ba {
    background: var(--gs-primary-100, #d1fae5);
    color: var(--gs-primary-800, #065f46);
}

.gs-prev-st-ic--co {
    background: var(--gs-gray-100, #f3f4f6);
    color: var(--gs-gray-700, #374151);
}

.gs-prev-st-ic--la {
    background: var(--gs-primary-50, #ecfdf5);
    color: var(--gs-primary-700, #0f6e56);
}

.gs-prev-st-ic--alt {
    background: var(--gs-gray-200, #e5e7eb);
    color: var(--gs-gray-700, #374151);
}

.gs-prev-st-nome {
    flex: 1;
    min-width: 0;
    font-size: 11px;
    font-weight: 500;
    line-height: 1.25;
}

.gs-prev-st-mis {
    font-size: 10px;
    white-space: nowrap;
}

.gs-prev-mq-b {
    font-weight: 600;
    color: var(--gs-gray-800, #1f2937);
}

.gs-prev-tipo-bar {
    display: flex;
    gap: 3px;
    flex-wrap: wrap;
    padding: 6px 10px;
    border-bottom: 1px solid var(--gs-gray-100, #f3f4f6);
}

.gs-prev-tp {
    padding: 3px 8px;
    border-radius: 10px;
    font-size: 9px;
    border: 1px solid var(--gs-gray-200, #e5e7eb);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-family: inherit;
    background: #fff;
    color: inherit;
}

.gs-prev-tp--on {
    border-color: var(--gs-primary, #0f6e56);
    background: var(--gs-primary-light, #ecfdf5);
}

.gs-prev-kpi-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: 8px;
    font-size: 11px;
}

.gs-prev-kpi-cell {
    background: #fff;
    border: 1px solid var(--gs-gray-200, #e5e7eb);
    border-radius: 6px;
    padding: 8px;
    text-align: center;
}

.gs-prev-kpi-val {
    font-size: 16px;
    font-weight: 500;
    color: var(--gs-primary, #0f6e56);
}

.gs-prev-title-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
    flex-wrap: wrap;
    gap: 8px;
}

.gs-prev-title-row h2 {
    font-size: 15px;
    font-weight: 500;
    margin: 0;
}

.gs-prev-muted {
    font-size: 11px;
    color: var(--gs-gray-500, #6b7280);
}

.gs-prev-warn {
    font-size: 10px;
    color: #92400e;
    background: #fffbeb;
    border: 1px solid #fef3c7;
    border-radius: 6px;
    padding: 6px 10px;
    margin-top: 8px;
}


/* === APP / Lead mockup v10 / layout CRM (ex app.css, :root rimosso) === */

html, body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

a, .btn-link {
    color: #006bb7;
}

.btn-primary {
    color: #fff;
    background-color: #1b6ec2;
    border-color: #1861ac;
}

.btn:focus, .btn:active:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

.content {
    padding-top: 1.1rem;
}

h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}

/* --- SCRIPT 1152: layout v2 (main area + right panel + ticker) --- */
html, body {
    height: 100%;
    font-size: 15px;
}

.gs-app-container {
    display: flex;
    flex-direction: column;
    height: 100vh;
    min-height: 0;
}

.gs-app-content-row {
    flex: 1 1 auto;
    min-height: 0;
}

.gs-app-container .gs-main-layout {
    min-height: 0 !important;
}

.gs-main-area {
    display: flex;
    flex: 1;
    overflow: hidden;
    min-height: 0;
}

/* PreventivoEditor: pannello DX a larghezza 0 quando collassato; wrap flessibile (work area massima) */
.gs-main-area:has(.gs-prev-app) .gs-right-panel-wrap {
    min-width: 0;
    flex: 0 0 auto;
}

@media (min-width: 768px) {
    .gs-main-area:has(.gs-prev-app) .gs-right-panel.collapsed {
        width: 0 !important;
        min-width: 0 !important;
        max-width: 0 !important;
        border: none !important;
        margin-right: 0 !important;
        overflow: hidden !important;
        padding: 0 !important;
    }
}

.gs-work-area.gs-main-content {
    flex: 1;
    overflow-y: auto;
    min-width: 0;
    margin-right: 0;
    padding-right: 0;
    padding-bottom: 48px; /* spazio per LiveTicker fixed 42px (1155D) */
}

/* === ENTITY CONTEXT (1156) === */
.gs-entity-header {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    background: var(--gs-bg-secondary, #f8fafc);
    border-bottom: 1px solid var(--gs-border, #e2e8f0);
    font-size: 14px;
    font-weight: 600;
    color: var(--gs-text-primary, #1e293b);
}

.gs-entity-header i {
    font-size: 16px;
    color: var(--gs-primary, #0d9488);
}

.gs-entity-tipo {
    text-transform: uppercase;
    font-size: 11px;
    letter-spacing: 0.04em;
    color: var(--gs-text-secondary, #64748b);
    font-weight: 700;
}

.gs-entity-nome {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gs-comm-placeholder {
    padding: 20px 16px;
    text-align: center;
    color: var(--gs-text-secondary, #64748b);
    font-size: 13px;
}

/* ═══════════════════════════════════════════════════
   CRM27 — Pannello DX: lettore comunicazioni v4
   Fasi B→H — avatar, resize, COL1–COL3, split doc, breakpoint mobile, pannello unificato
   13/04/2026
   ═══════════════════════════════════════════════════ */

/* --- B: Avatar cliccabile (scheda cliente) --- */
.gs-lead-avatar-link {
    display: inline-flex;
    flex-shrink: 0;
    border-radius: 50%;
    text-decoration: none;
    color: inherit;
    cursor: pointer;
    transition: box-shadow var(--gs-transition);
}

.gs-lead-avatar-link:hover {
    box-shadow: 0 0 0 3px var(--gs-green);
}

.gs-lead-avatar-link:focus-visible {
    outline: 2px solid var(--gs-green);
    outline-offset: 2px;
}

/* --- C: Pannello DX — wrap, resize orizzontale, toggle, contenuto --- */
.gs-right-panel-wrap {
    display: flex;
    align-items: stretch;
    flex-shrink: 0;
    min-width: 0;
    min-height: 0;
    align-self: stretch;
    position: relative;
}

.gs-right-panel {
    position: relative;
    width: var(--gs-right-panel-width);
    min-width: var(--gs-right-panel-width);
    border-left: 1px solid var(--gs-border, #e5e7eb);
    background: #fff;
    display: flex;
    flex-direction: column;
    /* CRM27-C/G: toggle pannello; durante drag orizzontale .gs-right-panel--resizing disattiva */
    transition: width 0.3s ease, min-width 0.3s ease, margin-right 0.25s ease;
    overflow: visible;
    height: 100%;
    min-height: 0;
}

.gs-right-panel.gs-right-panel--resizing {
    transition: none !important;
}

.gs-right-panel-resize-handle {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 6px;
    cursor: col-resize;
    z-index: 11;
    background: transparent;
    touch-action: none;
}

.gs-right-panel-resize-handle:hover {
    background: rgba(13, 148, 136, 0.12);
}

.gs-right-panel.collapsed {
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    border: none !important;
    margin-right: 0 !important;
    overflow: hidden !important;
    padding: 0 !important;
}

.gs-right-panel.collapsed .gs-right-panel-resize-handle {
    display: none !important;
}

.gs-right-panel.collapsed .gs-right-panel-toggle {
    pointer-events: auto;
}

.gs-right-panel-toggle {
    position: absolute;
    left: -32px;
    top: 50%;
    transform: translateY(-50%);
    width: 32px;
    height: 48px;
    background: #fff;
    border: 1px solid var(--gs-border, #e5e7eb);
    border-right: none;
    border-radius: 8px 0 0 8px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
}

.gs-right-panel-content {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

/* CommunicationPanel — stack nel pannello destro */
.gs-right-panel-comm-stack {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.gs-comm-root {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    font-size: 13px;
    color: var(--gs-text-primary, #1e293b);
}

.gs-comm-muted {
    color: var(--gs-text-secondary, #64748b);
}

.gs-comm-pad {
    padding: 12px 16px;
}

.gs-comm-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 10px 12px 8px;
    border-bottom: 1px solid var(--gs-border, #e2e8f0);
    flex-shrink: 0;
}

.gs-comm-chip {
    border: 1px solid var(--gs-border, #e2e8f0);
    background: var(--gs-bg-secondary, #f8fafc);
    color: var(--gs-text-secondary, #64748b);
    font-size: 11px;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: 999px;
    cursor: pointer;
    line-height: 1.2;
}

.gs-comm-chip:hover {
    border-color: var(--gs-primary, #0d9488);
    color: var(--gs-primary, #0d9488);
}

.gs-comm-chip.active {
    background: var(--gs-primary, #0d9488);
    border-color: var(--gs-primary, #0d9488);
    color: #fff;
}

.gs-comm-chip-template {
    font-weight: 500;
}

.gs-comm-chip-ai {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    position: relative;
    padding-right: 14px;
}

.gs-comm-chip-ai i {
    font-size: 12px;
}

.gs-comm-chip-ai.active {
    background: var(--gs-purple);
    border-color: var(--gs-purple);
    color: var(--c);
}

.gs-comm-chip-ai:hover {
    border-color: var(--gs-purple);
    color: var(--gs-purple);
}

.gs-comm-chip-ai.active:hover {
    color: var(--c);
}

.gs-comm-chip-ai-live {
    animation: gs-comm-chip-ai-pulse 1.4s ease-in-out infinite;
}

@keyframes gs-comm-chip-ai-pulse {
    0%, 100% { box-shadow: 0 0 0 0 transparent; }
    50% { box-shadow: 0 0 0 2px var(--gs-purple-light); }
}

.gs-comm-chip-ai-badge {
    position: absolute;
    top: -5px;
    right: -2px;
    min-width: 14px;
    height: 14px;
    padding: 0 4px;
    border-radius: 7px;
    font-size: 8px;
    font-weight: 700;
    line-height: 14px;
    text-align: center;
    background: var(--gs-purple-dark);
    color: var(--c);
}

.gs-comm-timeline-ai {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.gs-comm-timeline {
    flex: 1 1 auto;
    min-height: 80px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.gs-comm-list {
    padding: 8px 0;
}

.gs-comm-item {
    display: flex;
    gap: 10px;
    padding: 10px 14px;
    cursor: pointer;
    border-bottom: 1px solid var(--gs-border, #f1f5f9);
    border-left: 3px solid transparent;
    transition: background 0.12s ease;
}

.gs-comm-item:hover,
.gs-comm-item:focus {
    background: var(--gs-bg-secondary, #f8fafc);
    outline: none;
}

/* --- D: COL1 selezione + COL2 dettaglio messaggio --- */
.gs-comm-main-row {
    display: flex;
    flex: 1 1 auto;
    flex-direction: row;
    align-items: stretch;
    min-height: 0;
    min-width: 0;
}

.gs-comm-col-primary {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.gs-comm-col-primary .gs-comm-timeline {
    flex: 1 1 auto;
    min-height: 0;
}

.gs-comm-item--selected {
    border-left-color: var(--gs-green);
    background: var(--gs-success-light);
}

.gs-comm-item--selected:hover,
.gs-comm-item--selected:focus {
    background: var(--gs-success-light);
}

.gs-comm-detail {
    box-sizing: border-box;
    flex: 0 0 auto;
    width: 0;
    min-width: 0;
    max-width: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-height: 0;
    border-left: 1px solid transparent;
    transition: width 0.3s ease, min-width 0.3s ease, max-width 0.3s ease, border-color 0.2s ease;
}

.gs-comm-detail.gs-comm-detail--open {
    width: var(--gs-comm-col2-width, 380px);
    min-width: var(--gs-comm-col2-width, 380px);
    max-width: var(--gs-comm-col2-width, 380px);
    border-left-color: var(--gs-border);
}

.gs-comm-detail.gs-comm-detail--resizing {
    transition: none !important;
}

.gs-comm-detail-inner {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    min-width: 0;
    width: 100%;
    background: var(--gs-card-bg);
}

.gs-comm-detail-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
    padding: 10px 14px;
    border-bottom: 1px solid var(--gs-border);
    flex-shrink: 0;
}

.gs-comm-detail-title {
    font-size: 12px;
    font-weight: 700;
    color: var(--gs-text-primary);
    margin: 0;
    line-height: 1.35;
    flex: 1;
    min-width: 0;
}

.gs-comm-detail-close {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border: none;
    border-radius: 50%;
    background: var(--gs-bg-secondary);
    color: var(--gs-text-secondary);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
}

.gs-comm-detail-close:hover {
    background: var(--gs-gray-200);
    color: var(--gs-text-primary);
}

.gs-comm-detail-meta {
    padding: 10px 14px;
    border-bottom: 1px solid var(--gs-gray-100);
    font-size: 11px;
    color: var(--gs-text-secondary);
    line-height: 1.5;
    flex-shrink: 0;
}

.gs-comm-detail-meta strong {
    color: var(--gs-text-primary);
}

.gs-comm-detail-dir {
    display: inline-block;
    font-size: 10px;
    padding: 2px 8px;
    border-radius: 8px;
    font-weight: 600;
    margin-bottom: 6px;
}

.gs-comm-detail-dir--out {
    background: var(--gs-success-light);
    color: var(--gs-success-dark);
}

.gs-comm-detail-dir--in {
    background: var(--gs-info-light);
    color: var(--gs-info-dark);
}

.gs-comm-detail-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 12px 14px;
    font-size: 13px;
    line-height: 1.65;
    color: var(--gs-text-primary);
    white-space: pre-wrap;
    word-break: break-word;
}

.gs-comm-detail-attachments {
    flex-shrink: 0;
    padding: 10px 14px;
    border-top: 1px solid var(--gs-gray-100);
}

.gs-comm-detail-att-title {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--gs-text-secondary);
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.gs-comm-detail-att-item {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    text-align: left;
    padding: 8px 10px;
    margin-bottom: 4px;
    border: 1px solid var(--gs-border);
    border-radius: var(--gs-radius-sm);
    font-size: 11px;
    color: var(--gs-text-secondary);
    background: var(--gs-card-bg);
    cursor: pointer;
}

.gs-comm-detail-att-item:hover {
    background: var(--gs-success-light);
    border-color: var(--gs-green);
    color: var(--gs-text-primary);
}

.gs-comm-detail-att-item i {
    font-size: 14px;
    color: var(--gs-teal);
    flex-shrink: 0;
}

.gs-comm-detail-att-name {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gs-comm-detail-att-size {
    flex-shrink: 0;
    font-size: 10px;
    color: var(--gs-text-tertiary);
}

.gs-comm-detail-actions {
    display: flex;
    gap: 6px;
    padding: 8px 14px;
    border-top: 1px solid var(--gs-border);
    background: var(--gs-bg-secondary);
    flex-shrink: 0;
}

.gs-comm-detail-btn {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 6px 4px;
    border: 1px solid var(--gs-gray-300);
    border-radius: var(--gs-radius-sm);
    background: var(--gs-card-bg);
    font-size: 11px;
    font-weight: 600;
    color: var(--gs-text-secondary);
    cursor: pointer;
}

.gs-comm-detail-btn:hover {
    border-color: var(--gs-green);
    color: var(--gs-success-dark);
    background: var(--gs-success-light);
}

/* ═══════════════════════════════════════════════════
   CRM-29 — Composizione contestuale comunicazioni
   ═══════════════════════════════════════════════════ */

.gs-comm-detail.gs-comm-detail--open.gs-comm-detail--compose-wide {
    width: var(--gs-comm-col2-width, 420px);
    min-width: var(--gs-comm-col2-width, 420px);
    max-width: var(--gs-comm-col2-width, 420px);
}

/* CRM30-A-resize: handle ridimensionamento COL2 / COL3 (stile ~ .gs-right-panel-resize-handle, 8px) */
.gs-comm-col2-resize,
.gs-comm-col3-resize {
    flex: 0 0 8px;
    width: 8px;
    min-width: 8px;
    align-self: stretch;
    cursor: col-resize;
    z-index: 5;
    background: transparent;
    touch-action: none;
    position: relative;
}

.gs-comm-col2-resize:hover,
.gs-comm-col3-resize:hover,
.gs-comm-col2-resize:active,
.gs-comm-col3-resize:active,
.gs-comm-col2-resize.active,
.gs-comm-col3-resize.active {
    background: rgba(13, 148, 136, 0.18);
}

.gs-comm-root.gs-comm-root--cols-resizing .gs-comm-detail,
.gs-comm-root.gs-comm-root--cols-resizing .gs-comm-preview {
    transition: none !important;
}

/* --- CRM29-C: FAB nuova comunicazione + COL2 composizione --- */
.gs-comm-fab-new {
    position: absolute;
    bottom: 16px;
    right: 16px;
    z-index: 10;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: none;
    background: var(--gs-green);
    color: var(--gs-card-bg);
    cursor: pointer;
    font-size: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 12px rgba(34, 197, 94, 0.35);
    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.gs-comm-fab-new:hover {
    background: var(--gs-success-dark);
    transform: scale(1.06);
    box-shadow: 0 6px 16px rgba(34, 197, 94, 0.45);
}

.gs-comm-compose-root {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    min-width: 0;
    width: 100%;
    background: var(--gs-card-bg);
}

.gs-comm-compose-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 10px 14px;
    border-bottom: 1px solid var(--gs-border);
    flex-shrink: 0;
}

.gs-comm-compose-header h4 {
    font-size: 12px;
    font-weight: 700;
    color: var(--gs-text-primary);
    margin: 0;
    display: flex;
    align-items: center;
    gap: 6px;
    flex: 1;
    min-width: 0;
}

.gs-comm-compose-dest {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    background: var(--gs-bg-secondary);
    border-bottom: 1px solid var(--gs-border);
    flex-shrink: 0;
}

.gs-comm-compose-dest-avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--gs-teal);
    color: var(--gs-card-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 700;
    flex-shrink: 0;
}

.gs-comm-compose-dest-info {
    flex: 1;
    min-width: 0;
}

.gs-comm-compose-dest-name {
    font-size: 12px;
    font-weight: 600;
    color: var(--gs-text-primary);
}

.gs-comm-compose-dest-detail {
    font-size: 10px;
    color: var(--gs-text-tertiary);
    word-break: break-word;
}

.gs-comm-compose-channels {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    padding: 8px 14px;
    border-bottom: 1px solid var(--gs-gray-100);
    flex-shrink: 0;
}

.gs-comm-compose-channel {
    font-size: 11px;
    padding: 4px 12px;
    border-radius: 16px;
    cursor: pointer;
    border: 1px solid var(--gs-gray-200);
    background: var(--gs-card-bg);
    color: var(--gs-text-secondary);
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.gs-comm-compose-channel:hover:not(:disabled) {
    border-color: var(--gs-green);
    color: var(--gs-success-dark);
}

.gs-comm-compose-channel:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.gs-comm-compose-channel--email.gs-comm-compose-channel--active {
    background: var(--gs-comm-email-action);
    border-color: var(--gs-comm-email-action);
    color: var(--gs-card-bg);
}

.gs-comm-compose-channel--wa.gs-comm-compose-channel--active {
    background: var(--gs-comm-wa);
    border-color: var(--gs-comm-wa);
    color: var(--gs-card-bg);
}

.gs-comm-compose-channel--sms.gs-comm-compose-channel--active {
    background: var(--gs-comm-sms);
    border-color: var(--gs-comm-sms);
    color: var(--gs-card-bg);
}

.gs-comm-compose-channel--nota.gs-comm-compose-channel--active {
    background: var(--gs-comm-nota);
    border-color: var(--gs-comm-nota);
    color: var(--gs-card-bg);
}

.gs-comm-compose-form {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
}

.gs-comm-compose-field {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 14px;
    border-bottom: 1px solid var(--gs-gray-50);
    flex-shrink: 0;
}

.gs-comm-compose-field label {
    font-size: 11px;
    font-weight: 600;
    color: var(--gs-text-secondary);
    min-width: 32px;
    flex-shrink: 0;
}

.gs-comm-compose-field-control,
.gs-comm-compose-field input,
.gs-comm-compose-field select {
    flex: 1;
    min-width: 0;
    border: none;
    outline: none;
    font-size: 12px;
    color: var(--gs-text-primary);
    background: transparent;
}

.gs-comm-compose-field select {
    cursor: pointer;
}

.gs-comm-compose-field input::placeholder {
    color: var(--gs-gray-300);
}

.gs-comm-compose-ai-hint {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    background: var(--gs-amber-light);
    font-size: 10px;
    color: var(--gs-amber);
    border-bottom: 1px solid var(--gs-gray-100);
    flex-shrink: 0;
}

.gs-comm-compose-ai-hint i {
    font-size: 14px;
    flex-shrink: 0;
}

.gs-comm-compose-templates {
    padding: 8px 14px;
    border-bottom: 1px solid var(--gs-gray-100);
    flex-shrink: 0;
}

.gs-comm-compose-tpl-label {
    font-size: 9px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--gs-text-tertiary);
    margin-bottom: 4px;
}

.gs-comm-compose-tpl-cats {
    display: flex;
    flex-wrap: wrap;
    gap: 3px;
    margin-bottom: 4px;
}

.gs-comm-compose-tpl-cat {
    font-size: 10px;
    padding: 2px 8px;
    border-radius: 10px;
    cursor: pointer;
    border: 1px solid var(--gs-gray-200);
    background: var(--gs-card-bg);
    color: var(--gs-text-secondary);
    transition: border-color 0.1s ease, background 0.1s ease, color 0.1s ease;
}

.gs-comm-compose-tpl-cat:hover {
    border-color: var(--gs-teal);
    color: var(--gs-teal);
}

.gs-comm-compose-tpl-cat.gs-comm-compose-tpl-cat--active {
    background: var(--gs-teal);
    border-color: var(--gs-teal);
    color: var(--gs-card-bg);
}

.gs-comm-compose-tpl-items {
    display: flex;
    flex-wrap: wrap;
    gap: 3px;
}

.gs-comm-compose-tpl-item {
    font-size: 9px;
    padding: 2px 7px;
    border-radius: 8px;
    cursor: pointer;
    background: var(--gs-bg-secondary);
    color: var(--gs-text-secondary);
    border: 1px solid transparent;
    transition: background 0.1s ease, color 0.1s ease, border-color 0.1s ease;
}

.gs-comm-compose-tpl-item:hover {
    background: var(--gs-success-light);
    color: var(--gs-success-dark);
    border-color: var(--gs-green);
}

.gs-comm-compose-body {
    flex: 1 1 auto;
    min-height: 120px;
    padding: 10px 14px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.gs-comm-compose-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 2px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--gs-gray-100);
    align-items: center;
}

.gs-comm-compose-toolbar button {
    width: 28px;
    height: 28px;
    border: none;
    background: transparent;
    border-radius: 4px;
    cursor: pointer;
    color: var(--gs-text-secondary);
    font-size: 13px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.gs-comm-compose-toolbar button:hover {
    background: var(--gs-gray-100);
    color: var(--gs-text-primary);
}

.gs-comm-compose-toolbar-spacer {
    flex: 1;
}

.gs-comm-compose-toolbar select {
    border: 1px solid var(--gs-gray-200);
    border-radius: 4px;
    font-size: 10px;
    padding: 2px 6px;
    color: var(--gs-text-secondary);
    background: var(--gs-card-bg);
    cursor: pointer;
    max-width: 140px;
}

.gs-comm-compose-textarea {
    flex: 1 1 auto;
    min-height: 100px;
    border: none;
    outline: none;
    font-size: 13px;
    line-height: 1.6;
    color: var(--gs-text-primary);
    resize: none;
    font-family: inherit;
}

.gs-comm-compose-textarea::placeholder {
    color: var(--gs-gray-300);
}

.gs-comm-compose-sms-meta {
    font-size: 10px;
    color: var(--gs-text-tertiary);
    padding: 0 14px 4px;
}

.gs-comm-compose-attachments {
    padding: 8px 14px;
    border-top: 1px solid var(--gs-gray-100);
    flex-shrink: 0;
}

.gs-comm-compose-att-zone {
    border: 2px dashed var(--gs-gray-200);
    border-radius: var(--gs-radius-sm);
    padding: 10px;
    text-align: center;
    font-size: 10px;
    color: var(--gs-text-tertiary);
    cursor: pointer;
    transition: border-color 0.2s ease, color 0.2s ease;
}

.gs-comm-compose-att-zone:hover {
    border-color: var(--gs-green);
    color: var(--gs-success-dark);
}

.gs-comm-compose-att-zone--muted {
    cursor: default;
}

.gs-comm-compose-att-zone--muted:hover {
    border-color: var(--gs-gray-200);
    color: var(--gs-text-tertiary);
}

.gs-comm-compose-att-list {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-top: 6px;
}

.gs-comm-compose-footer {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    border-top: 1px solid var(--gs-border);
    background: var(--gs-bg-secondary);
    flex-shrink: 0;
}

.gs-comm-compose-footer-left {
    display: flex;
    gap: 4px;
}

.gs-comm-compose-footer-btn {
    width: 30px;
    height: 30px;
    border: 1px solid var(--gs-gray-200);
    border-radius: var(--gs-radius-sm);
    background: var(--gs-card-bg);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--gs-text-secondary);
    font-size: 14px;
}

.gs-comm-compose-footer-btn:hover {
    border-color: var(--gs-green);
    color: var(--gs-success-dark);
}

.gs-comm-compose-footer-spacer {
    flex: 1;
}

.gs-comm-compose-send {
    padding: 8px 16px;
    border: none;
    border-radius: var(--gs-radius-sm);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--gs-card-bg);
    transition: background 0.2s ease, filter 0.2s ease;
}

.gs-comm-compose-send--email {
    background: var(--gs-comm-email-action);
}

.gs-comm-compose-send--email:hover {
    background: var(--gs-comm-email-action-hover);
}

.gs-comm-compose-send--wa {
    background: var(--gs-comm-wa);
}

.gs-comm-compose-send--wa:hover {
    background: var(--gs-comm-wa-hover);
}

.gs-comm-compose-send--sms {
    background: var(--gs-comm-sms);
}

.gs-comm-compose-send--sms:hover {
    background: var(--gs-comm-sms-hover);
}

.gs-comm-compose-send--nota {
    background: var(--gs-comm-nota);
}

.gs-comm-compose-send--nota:hover {
    background: var(--gs-comm-nota-hover);
}

/* --- E: COL3 anteprima allegato (mockup v4 .col-preview) --- */
.gs-comm-top-with-preview {
    display: flex;
    flex-direction: row;
    flex: 1 1 auto;
    align-items: stretch;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
}

.gs-comm-top-with-preview-primary {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.gs-comm-main-row.gs-comm-top-with-preview-primary {
    flex-direction: row;
}

.gs-comm-preview {
    box-sizing: border-box;
    flex: 0 0 auto;
    width: 0;
    min-width: 0;
    max-width: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-height: 0;
    border-left: 1px solid transparent;
    transition: width 0.3s ease, min-width 0.3s ease, max-width 0.3s ease, border-color 0.2s ease;
}

.gs-comm-preview.gs-comm-preview--open {
    width: var(--gs-comm-col3-width, 320px);
    min-width: var(--gs-comm-col3-width, 320px);
    max-width: var(--gs-comm-col3-width, 320px);
    border-left-color: var(--gs-border);
}

.gs-comm-preview.gs-comm-preview--resizing {
    transition: none !important;
}

.gs-comm-preview-inner {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    min-width: 0;
    width: 100%;
    background: var(--gs-card-bg);
}

.gs-comm-preview-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 10px 14px;
    border-bottom: 1px solid var(--gs-border);
    flex-shrink: 0;
}

.gs-comm-preview-title {
    font-size: 12px;
    font-weight: 700;
    color: var(--gs-text-primary);
    margin: 0;
    line-height: 1.35;
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gs-comm-preview-close {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border: none;
    border-radius: 50%;
    background: var(--gs-bg-secondary);
    color: var(--gs-text-secondary);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
}

.gs-comm-preview-close:hover {
    background: var(--gs-gray-200);
    color: var(--gs-text-primary);
}

.gs-comm-preview-body {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--gs-gray-50);
    overflow: hidden;
    padding: 12px;
}

.gs-comm-preview-img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    border-radius: var(--gs-radius-sm);
}

.gs-comm-preview-doc {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: var(--gs-text-secondary);
    font-size: 12px;
    text-align: center;
    padding: 8px;
}

.gs-comm-preview-doc > i {
    font-size: 48px;
    color: var(--gs-teal);
}

.gs-comm-preview-name {
    font-weight: 600;
    color: var(--gs-text-primary);
    word-break: break-word;
    max-width: 100%;
}

.gs-comm-preview-meta {
    font-size: 10px;
    color: var(--gs-text-tertiary);
}

.gs-comm-preview-dl {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 8px 16px;
    margin-top: 4px;
    background: var(--gs-green);
    color: var(--c);
    border: none;
    border-radius: var(--gs-radius-sm);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
}

.gs-comm-preview-dl:hover {
    background: var(--gs-success-dark);
    color: var(--c);
}

.gs-comm-detail-att-item--selected {
    background: var(--gs-success-light);
    border-color: var(--gs-green);
    color: var(--gs-text-primary);
}

/* --- F: Split comunicazioni (sopra) / documenti (sotto) — CRM-29: niente split interno timeline/compose --- */
.gs-comm-doc-split-container {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-height: 0;
}

.gs-comm-doc-split-top {
    display: flex;
    flex-direction: column;
    min-height: 60px;
    overflow: hidden;
    flex-shrink: 0;
}

.gs-comm-doc-split-top .gs-comm-split-container {
    flex: 1 1 auto;
    min-height: 0;
}

.gs-comm-doc-split-top.gs-comm-doc-split-top-45 {
    flex: none;
    height: 45%;
}

.gs-comm-doc-split-bottom {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 60px;
    overflow: hidden;
    min-width: 0;
}

.gs-comm-doc-split-bottom > .gs-doc-panel-root {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

/* Area comunicazioni: colonna unica (timeline + COL2/COL3); split esterno solo doc/comunicazioni */
.gs-comm-split-container.gs-split-container {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-height: 0;
}

.gs-split-container .gs-split-handle,
.gs-comm-doc-split-container > .gs-comm-doc-split-handle {
    height: 6px;
    background: var(--bg);
    cursor: row-resize;
    flex-shrink: 0;
    position: relative;
    border-top: 1px solid var(--b);
    border-bottom: 1px solid var(--b);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: none;
}

.gs-split-container .gs-split-handle::after,
.gs-comm-doc-split-container > .gs-comm-doc-split-handle::after {
    content: '';
    width: 30px;
    height: 2px;
    background: var(--gs-gray-300);
    border-radius: 1px;
}

.gs-split-container .gs-split-handle:hover,
.gs-split-container .gs-split-handle.active,
.gs-comm-doc-split-container > .gs-comm-doc-split-handle:hover,
.gs-comm-doc-split-container > .gs-comm-doc-split-handle.active {
    background: var(--gs-green);
    opacity: 0.4;
}

.gs-split-container .gs-split-handle:hover::after,
.gs-split-container .gs-split-handle.active::after,
.gs-comm-doc-split-container > .gs-comm-doc-split-handle:hover::after,
.gs-comm-doc-split-container > .gs-comm-doc-split-handle.active::after {
    background: var(--gs-gray-500);
}

.gs-comm-icon-tone-email {
    color: var(--gs-info);
}

.gs-comm-icon-tone-wa {
    color: var(--wa);
}

.gs-comm-icon-tone-sms {
    color: var(--gs-purple);
}

.gs-comm-icon-tone-call {
    color: var(--gs-teal);
}

.gs-comm-icon-tone-note {
    color: var(--gs-gray-600);
}

.gs-comm-icon-tone-chat {
    color: var(--gs-purple);
}

.gs-comm-icon-tone-default {
    color: var(--gs-gray-500);
}

.gs-comm-icon {
    flex-shrink: 0;
    width: 28px;
    text-align: center;
    font-size: 16px;
    line-height: 1.3;
    padding-top: 2px;
}

.gs-comm-body {
    min-width: 0;
    flex: 1;
}

.gs-comm-title-row {
    display: flex;
    align-items: baseline;
    gap: 6px;
    flex-wrap: wrap;
}

.gs-comm-title {
    font-weight: 600;
    font-size: 13px;
    line-height: 1.3;
}

.gs-comm-badge {
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.06em;
    padding: 2px 6px;
    border-radius: 4px;
}

.gs-comm-badge-in {
    background: rgba(59, 130, 246, 0.15);
    color: var(--gs-info, #2563eb);
}

.gs-comm-badge-out {
    background: rgba(16, 185, 129, 0.15);
    color: var(--gs-success, #059669);
}

.gs-comm-desc {
    margin: 4px 0 0;
    font-size: 12px;
    color: var(--gs-text-secondary, #64748b);
    line-height: 1.35;
    white-space: pre-wrap;
    word-break: break-word;
}

.gs-comm-meta {
    margin-top: 4px;
    font-size: 11px;
    color: var(--gs-text-secondary, #94a3b8);
}

.gs-comm-time {
    font-weight: 600;
    color: var(--gs-text-secondary, #64748b);
}

.gs-comm-dot {
    margin: 0 3px;
    opacity: 0.5;
}

.gs-comm-empty {
    text-align: center;
    color: var(--gs-text-secondary, #64748b);
    padding: 24px 16px;
}

.gs-comm-empty-icon {
    display: block;
    font-size: 1.75rem;
    margin-bottom: 8px;
    opacity: 0.35;
}

.gs-comm-loadmore-wrap {
    padding: 8px 12px 12px;
    text-align: center;
}

.gs-comm-loadmore {
    border: none;
    background: transparent;
    color: var(--gs-primary, #0d9488);
    font-size: 12px;
    font-weight: 600;
    text-decoration: underline;
    cursor: pointer;
    padding: 4px 8px;
}

.gs-comm-loadmore:hover {
    color: var(--gs-success, #059669);
}

.gs-comm-email-body-inner {
    font-family: var(--gs-font, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);
    font-size: 14px;
}

.gs-comm-email-firma {
    margin-top: 12px;
}

.gs-right-panel-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex: 1;
    min-height: 200px;
    padding: 24px 16px;
    text-align: center;
    color: var(--gs-text-secondary, #64748b);
    font-size: 13px;
    gap: 12px;
}

.gs-right-panel-empty i {
    font-size: 2rem;
    opacity: 0.3;
}

/* --- G–H: breakpoint mobile — overlay pannello DX, COL2/COL3 sopra COL1 --- */
@media (max-width: 767.98px) {
    .gs-right-panel-wrap {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        z-index: 1040;
        height: 100%;
        max-height: 100dvh;
        pointer-events: none;
    }

    .gs-right-panel {
        pointer-events: auto;
        width: min(100vw, var(--gs-right-panel-width)) !important;
        min-width: 0 !important;
        max-width: 100vw;
        box-shadow: -10px 0 28px rgba(15, 23, 42, 0.14);
    }

    .gs-right-panel.collapsed {
        width: 0 !important;
        min-width: 0 !important;
        max-width: 0 !important;
        border: none !important;
        margin-right: 0 !important;
        overflow: hidden !important;
        pointer-events: none;
    }

    .gs-right-panel-resize-handle {
        display: none;
    }

    .gs-comm-main-row {
        position: relative;
    }

    .gs-comm-col2-resize,
    .gs-comm-col3-resize {
        display: none !important;
    }

    .gs-comm-detail.gs-comm-detail--open {
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        width: min(100%, var(--gs-comm-col2-width, 380px)) !important;
        min-width: min(100%, var(--gs-comm-col2-width, 380px)) !important;
        max-width: min(100%, var(--gs-comm-col2-width, 380px)) !important;
        z-index: 6;
        box-shadow: -8px 0 24px rgba(15, 23, 42, 0.12);
        background: var(--gs-card-bg);
    }

    .gs-comm-detail.gs-comm-detail--open.gs-comm-detail--compose-wide {
        width: min(100%, var(--gs-comm-col2-width, 420px)) !important;
        min-width: min(100%, var(--gs-comm-col2-width, 420px)) !important;
        max-width: min(100%, var(--gs-comm-col2-width, 420px)) !important;
    }

    .gs-comm-preview.gs-comm-preview--open {
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        width: min(100%, var(--gs-comm-col3-width, 320px)) !important;
        min-width: min(100%, var(--gs-comm-col3-width, 320px)) !important;
        max-width: min(100%, var(--gs-comm-col3-width, 320px)) !important;
        z-index: 7;
        box-shadow: -8px 0 24px rgba(15, 23, 42, 0.12);
    }
}

@keyframes gs-pulse {
    0%, 100% { opacity: 0.3; }
    50% { opacity: 1; }
}
/* === LIVE TICKER (1155D) - Design System GigaSolar === */
/* LiveTicker: full width sotto sidebar+main (figlio .gs-app-container), left 0 */

@keyframes gs-ticker-led-pulse-ds {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.3; }
}

@keyframes gs-ticker-dot-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.3); }
    50% { box-shadow: 0 0 0 3px rgba(239, 68, 68, 0); }
}

@keyframes gs-ticker-scroll {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

@media (max-width: 767.98px) {
    .gs-ticker-host {
        display: none !important;
    }
}

.gs-ticker-host {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 999;
    font-family: var(--gs-font, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);
}

.gs-ticker-host.expanded {
    z-index: 1000;
}

.gs-ticker-bar {
    height: 42px;
    background: linear-gradient(90deg, #1a3a34, #1e3a5f);
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    display: flex;
    align-items: center;
    overflow: hidden;
    cursor: pointer;
    position: relative;
    z-index: 1001;
}

.gs-ticker-bar:hover {
    background: linear-gradient(90deg, #234e45, #243f5f);
}

.gs-ticker-label {
    padding: 0 14px;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 10px;
    font-weight: 700;
    color: var(--gs-success, #10b981);
    white-space: nowrap;
    flex-shrink: 0;
    border-right: 1px solid rgba(255, 255, 255, 0.08);
    height: 100%;
    letter-spacing: 0.04em;
}

.gs-ticker-label-led {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--gs-success, #10b981);
    animation: gs-ticker-led-pulse-ds 1.2s infinite;
    flex-shrink: 0;
}

.gs-ticker-label-led.is-offline {
    background: var(--gs-gray-400, #9ca3af);
    animation: none;
}

.gs-ticker-label-count {
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
    font-size: 9px;
    font-weight: 600;
    padding: 1px 7px;
    border-radius: 8px;
}

.gs-ticker-marquee-wrap {
    flex: 1;
    overflow: hidden;
    min-width: 0;
    height: 100%;
    display: flex;
    align-items: center;
    -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 3%, #000 95%, transparent 100%);
    mask-image: linear-gradient(to right, transparent 0%, #000 3%, #000 95%, transparent 100%);
}

.gs-ticker-marquee {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0;
    width: max-content;
    min-width: 100%;
    animation: gs-ticker-scroll 45s linear infinite;
    will-change: transform;
}

.gs-ticker-marquee:hover {
    animation-play-state: paused;
}

.gs-ticker-item {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 0 16px;
    white-space: nowrap;
    height: 42px;
    border-right: 1px solid rgba(255, 255, 255, 0.04);
    cursor: pointer;
    transition: background 0.1s;
    flex-shrink: 0;
}

.gs-ticker-item:hover {
    background: rgba(255, 255, 255, 0.05);
}

.gs-ticker-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
}

.gs-ticker-dot--chat { background: var(--gs-success, #10b981); }
.gs-ticker-dot--lead { background: var(--gs-info, #3b82f6); }
.gs-ticker-dot--email { background: var(--gs-info, #3b82f6); }
.gs-ticker-dot--sistema { background: var(--gs-info, #3b82f6); }
.gs-ticker-dot--pagamento { background: var(--gs-success, #10b981); }
.gs-ticker-dot--ordine { background: var(--gs-info, #3b82f6); }
.gs-ticker-dot--preventivo { background: var(--gs-warning, #f59e0b); }
.gs-ticker-dot--guardian { background: var(--gs-accent, #f59e0b); }
.gs-ticker-dot--modello { background: var(--gs-accent, #f59e0b); }
.gs-ticker-dot--hesitant { background: var(--gs-warning, #f59e0b); }
.gs-ticker-dot--alert {
    background: var(--gs-danger, #ef4444);
    animation: gs-ticker-dot-pulse 1s infinite;
}

.gs-ticker-agent {
    font-size: 9px;
    color: rgba(255, 255, 255, 0.35);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    max-width: 72px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gs-ticker-name {
    font-size: 10px;
    color: #fff;
    font-weight: 600;
    max-width: 100px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gs-ticker-text {
    font-size: 10px;
    color: rgba(255, 255, 255, 0.55);
    max-width: 240px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gs-ticker-time {
    font-size: 8px;
    color: rgba(255, 255, 255, 0.25);
    font-variant-numeric: tabular-nums;
    flex-shrink: 0;
}

.gs-ticker-action--critical {
    padding: 2px 8px;
    border-radius: 10px;
    font-size: 9px;
    font-weight: 600;
    border: none;
    cursor: pointer;
    background: var(--gs-danger, #ef4444);
    color: #fff;
    flex-shrink: 0;
}

.gs-ticker-action--critical:hover {
    filter: brightness(1.1);
}

.gs-ticker-action--watch {
    padding: 2px 8px;
    border-radius: 10px;
    font-size: 9px;
    font-weight: 600;
    border: none;
    cursor: pointer;
    background: rgba(255, 255, 255, 0.1);
    color: rgba(255, 255, 255, 0.85);
    flex-shrink: 0;
}

.gs-ticker-action--watch:hover {
    background: rgba(255, 255, 255, 0.18);
}

.gs-ticker-expand-hint {
    padding: 0 12px;
    font-size: 10px;
    color: rgba(255, 255, 255, 0.2);
    flex-shrink: 0;
    transition: color 0.15s;
    pointer-events: none;
}

.gs-ticker-bar:hover .gs-ticker-expand-hint {
    color: rgba(255, 255, 255, 0.5);
}

.gs-ticker-empty {
    flex: 1;
    color: rgba(255, 255, 255, 0.35);
    font-size: 11px;
    text-align: center;
    padding: 8px 16px;
    min-width: 0;
}

/* Pannello overlay */
.gs-ticker-panel {
    position: fixed;
    bottom: 42px;
    left: 0;
    right: 0;
    height: 260px;
    z-index: 998;
    background: var(--gs-gray-800, #1f2937);
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 -8px 30px rgba(0, 0, 0, 0.3);
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.gs-ticker-panel-header {
    display: flex;
    align-items: center;
    padding: 10px 16px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    flex-shrink: 0;
    gap: 10px;
}

.gs-ticker-panel-title {
    font-size: 12px;
    font-weight: 600;
    color: #fff;
    flex: 1;
    display: flex;
    align-items: center;
    gap: 8px;
}

.gs-ticker-panel-close {
    background: rgba(255, 255, 255, 0.1);
    border: none;
    color: rgba(255, 255, 255, 0.5);
    width: 24px;
    height: 24px;
    border-radius: 50%;
    cursor: pointer;
    font-size: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s;
}

.gs-ticker-panel-close:hover {
    background: rgba(255, 255, 255, 0.2);
    color: #fff;
}

.gs-ticker-panel-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    padding: 8px 16px;
    flex-shrink: 0;
}

.gs-ticker-chip {
    padding: 4px 12px;
    border-radius: 10px;
    font-size: 10px;
    font-weight: 600;
    cursor: pointer;
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: rgba(255, 255, 255, 0.5);
    background: transparent;
    transition: all 0.12s;
}

.gs-ticker-chip:hover {
    color: rgba(255, 255, 255, 0.8);
    border-color: rgba(255, 255, 255, 0.25);
}

.gs-ticker-chip.active {
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
    border-color: rgba(255, 255, 255, 0.3);
}

.gs-ticker-panel-body {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
}

.gs-ticker-panel-body::-webkit-scrollbar {
    width: 3px;
}

.gs-ticker-panel-body::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.12);
    border-radius: 3px;
}

.gs-ticker-panel-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 8px 16px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.03);
    cursor: pointer;
    transition: background 0.1s;
}

.gs-ticker-panel-row:hover {
    background: rgba(255, 255, 255, 0.03);
}

.gs-ticker-panel-row--critical {
    background: rgba(239, 68, 68, 0.06);
}

.gs-ticker-panel-row--critical:hover {
    background: rgba(239, 68, 68, 0.1);
}

.gs-ticker-avatar {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    font-weight: 700;
    color: #fff;
    flex-shrink: 0;
}

.gs-ticker-avatar--chat { background: linear-gradient(135deg, var(--gs-primary, #0F6E56), var(--gs-success, #10b981)); }
.gs-ticker-avatar--sistema { background: linear-gradient(135deg, #1d4ed8, var(--gs-info, #3b82f6)); }
.gs-ticker-avatar--pay { background: linear-gradient(135deg, #047857, var(--gs-success, #10b981)); }
.gs-ticker-avatar--guard { background: linear-gradient(135deg, #b45309, var(--gs-accent, #f59e0b)); }
.gs-ticker-avatar--warn { background: linear-gradient(135deg, #ca8a04, var(--gs-warning, #f59e0b)); }

.gs-ticker-panel-main {
    flex: 1;
    min-width: 0;
}

.gs-ticker-panel-line1 {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px 10px;
    margin-bottom: 4px;
}

.gs-ticker-panel-who {
    font-size: 11px;
    font-weight: 600;
    color: #fff;
}

.gs-ticker-panel-name {
    font-size: 11px;
    font-weight: 600;
    color: #fff;
}

.gs-ticker-panel-agent {
    font-size: 9px;
    color: rgba(255, 255, 255, 0.35);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.gs-ticker-panel-preview {
    font-size: 10px;
    color: rgba(255, 255, 255, 0.45);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gs-ticker-panel-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
}

.gs-ticker-panel-time {
    font-size: 8px;
    color: rgba(255, 255, 255, 0.25);
    font-variant-numeric: tabular-nums;
}

.gs-ticker-badge {
    font-size: 8px;
    font-weight: 600;
    padding: 1px 6px;
    border-radius: 6px;
}

.gs-ticker-badge--positive {
    background: rgba(16, 185, 129, 0.15);
    color: var(--gs-success, #10b981);
}

.gs-ticker-badge--hesitant {
    background: rgba(245, 158, 11, 0.15);
    color: #b8860b;
}

.gs-ticker-badge--negative {
    background: rgba(239, 68, 68, 0.15);
    color: var(--gs-danger, #ef4444);
}

.gs-ticker-badge--sistema {
    background: rgba(59, 130, 246, 0.15);
    color: var(--gs-info, #3b82f6);
}

.gs-ticker-badge--guardian {
    background: rgba(245, 158, 11, 0.15);
    color: var(--gs-accent, #f59e0b);
}

.gs-ticker-badge--payment {
    background: rgba(16, 185, 129, 0.2);
    color: var(--gs-success, #10b981);
}

.gs-ticker-panel-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 6px;
}

.gs-ticker-panel-action {
    padding: 2px 8px;
    border-radius: 10px;
    font-size: 9px;
    font-weight: 600;
    border: none;
    cursor: pointer;
    flex-shrink: 0;
}

.gs-ticker-panel-action--watch {
    background: rgba(255, 255, 255, 0.08);
    color: rgba(255, 255, 255, 0.6);
}

.gs-ticker-panel-action--watch:hover {
    background: rgba(255, 255, 255, 0.15);
}

.gs-ticker-panel-action--critical {
    background: var(--gs-danger, #ef4444);
    color: #fff;
}

.gs-ticker-panel-empty {
    color: rgba(255, 255, 255, 0.3);
    font-size: 11px;
    text-align: center;
    padding: 12px 16px;
}

/* LEGACY - Hub compose/tabs (HubComunicazione.razor); dettaglio .gs-hub-* nella sezione THEME sopra in questo file. */

/* === 1163 â€” Impostazioni Comunicazioni (Account / Firme / Template) === */
.gs-comm-settings-page-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.gs-comm-settings-kpi-bar {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

@media (max-width: 768px) {
    .gs-comm-settings-kpi-bar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.gs-comm-settings-kpi-item {
    background: var(--gs-bg-secondary, #f8fafc);
    border: 1px solid var(--gs-border, #e2e8f0);
    border-radius: 10px;
    padding: 12px 14px;
    text-align: center;
}

.gs-comm-settings-kpi-value {
    display: block;
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--gs-text-primary, #1e293b);
}

.gs-comm-settings-kpi-label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--gs-text-secondary, #64748b);
}

.gs-comm-settings-health {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 14px;
    align-items: center;
    padding: 8px 0;
    border-top: 1px solid var(--gs-border, #e2e8f0);
    border-bottom: 1px solid var(--gs-border, #e2e8f0);
}

.gs-comm-settings-health-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: var(--gs-text-secondary, #64748b);
}

.gs-comm-settings-health-label {
    max-width: 140px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gs-comm-settings-health-dot,
.gs-comm-dot--ok,
.gs-comm-dot--warn,
.gs-comm-dot--err,
.gs-comm-dot--off {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    display: inline-block;
    flex-shrink: 0;
}

.gs-comm-dot--ok,
.gs-comm-settings-health-dot.gs-comm-dot--ok {
    background: #22c55e;
}

.gs-comm-dot--warn,
.gs-comm-settings-health-dot.gs-comm-dot--warn {
    background: #eab308;
}

.gs-comm-dot--err,
.gs-comm-settings-health-dot.gs-comm-dot--err {
    background: #ef4444;
}

.gs-comm-dot--off,
.gs-comm-settings-health-dot.gs-comm-dot--off {
    background: #94a3b8;
}

.gs-comm-settings-card {
    border: 1px solid var(--gs-border, #e2e8f0);
    border-radius: 10px;
    padding: 14px 16px;
    background: #fff;
    border-left-width: 4px;
}

.gs-comm-settings-card-smtp {
    border-left-color: #22c55e;
}

.gs-comm-settings-card-pec {
    border-left-color: #ef4444;
}

.gs-comm-settings-card-pop3 {
    border-left-color: #94a3b8;
}

.gs-comm-settings-card-wa {
    border-left-color: #25d366;
}

.gs-comm-settings-card-sms {
    border-left-color: #3b82f6;
}

.gs-comm-settings-vault-ok {
    color: #16a34a;
}

.gs-comm-settings-vault-warn {
    color: #ca8a04;
}

.gs-comm-settings-vault-err {
    color: #dc2626;
}

.gs-comm-mono {
    font-family: ui-monospace, monospace;
    font-size: 12px;
}

.gs-comm-settings-firma-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

@media (max-width: 992px) {
    .gs-comm-settings-firma-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 576px) {
    .gs-comm-settings-firma-grid {
        grid-template-columns: 1fr;
    }
}

.gs-comm-settings-firma-preview {
    max-height: 180px;
    overflow: auto;
    font-size: 13px;
    border-radius: 6px;
    background: var(--gs-bg-secondary, #f8fafc);
}

.gs-comm-settings-tpl-row {
    border: 1px solid var(--gs-border, #e2e8f0);
    border-radius: 10px;
    padding: 12px 14px;
    background: #fff;
}

.gs-comm-settings-tpl-search {
    max-width: 280px;
    min-width: 160px;
}

.gs-comm-settings-placeholder {
    font-size: 12px;
}

.gs-comm-settings-dialog .modal-content {
    border-radius: 12px;
}

/* 1163B â€” dialog account, sync bancaria, matrice permessi */
.gs-comm-account-dialog .modal-body {
    max-height: min(78vh, 720px);
}

.gs-comm-settings-section {
    border: 1px solid var(--gs-border, #e2e8f0);
    border-radius: 10px;
    padding: 12px 14px;
    background: var(--gs-bg-secondary, #f8fafc);
}

.gs-comm-settings-section-title {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--gs-text-tertiary, #64748b);
    margin-bottom: 10px;
    font-weight: 700;
}

.gs-comm-settings-sync-bank {
    background: rgba(14, 165, 233, 0.08);
    border-color: rgba(14, 165, 233, 0.25);
}

.gs-comm-settings-acl {
    background: #fff;
}

.gs-comm-badge-sync {
    font-size: 11px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 999px;
}

.gs-comm-badge-sync-on {
    background: rgba(16, 185, 129, 0.2);
    color: #047857;
}

.gs-comm-badge-sync-off {
    background: #e2e8f0;
    color: #64748b;
}

.gs-comm-badge-parser {
    font-size: 11px;
    padding: 2px 6px;
    border-radius: 4px;
    background: #e0f2fe;
    color: #0369a1;
}

.gs-comm-recon-box {
    border: 1px dashed var(--gs-border, #cbd5e1);
    border-radius: 8px;
    padding: 8px 10px;
    background: #fff;
}

.gs-comm-recon-progress {
    background: #e2e8f0;
}

.gs-comm-perm-matrix th,
.gs-comm-perm-matrix td {
    font-size: 12px;
}

.gs-comm-perm-global .gs-comm-perm-user-acc {
    background: var(--gs-bg-secondary, #f8fafc);
}

/* Sidebar resize (1163B) */
.gs-sidebar {
    position: relative;
}

.gs-sidebar-resize-handle {
    position: absolute;
    top: 0;
    right: 0;
    width: 6px;
    height: 100%;
    cursor: col-resize;
    z-index: 20;
    background: transparent;
}

.gs-sidebar-resize-handle:hover {
    background: rgba(255, 255, 255, 0.12);
}

/* 1163C FASE 1+5+6: caselle unificate (non sovrascrivere .gs-comm-settings-*) */
.gs-casella-card {
    position: relative;
}

.gs-casella-card-invio,
.gs-casella-card-ricezione {
    border-radius: 8px;
    padding: 8px 10px;
    border: 1px solid var(--gs-border, #e2e8f0);
    background: var(--gs-bg-secondary, #f8fafc);
}

.gs-casella-card-invio {
    border-left: 3px solid #2563eb;
}

.gs-casella-card-ricezione {
    border-left: 3px solid #0d9488;
}

.gs-casella-alias {
    border-style: dashed;
    border-width: 1px;
    background: linear-gradient(135deg, rgba(99, 102, 241, 0.04), rgba(14, 165, 233, 0.04));
}

.gs-casella-badges {
    row-gap: 4px;
}

.gs-casella-badge {
    font-size: 11px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 999px;
    line-height: 1.3;
    color: var(--gs-text-secondary, #475569);
    background: #e2e8f0;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

.gs-casella-badge:hover {
    background: #cbd5e1;
    color: #0f172a;
}

.gs-casella-badge--pec {
    background: rgba(124, 58, 237, 0.15);
    color: #5b21b6;
}

.gs-casella-badge--pec:hover {
    background: rgba(124, 58, 237, 0.25);
    color: #4c1d95;
}

.gs-casella-badge--bank {
    background: rgba(14, 165, 233, 0.15);
    color: #0369a1;
}

.gs-casella-badge--bank:hover {
    background: rgba(14, 165, 233, 0.28);
    color: #0c4a6e;
}

.gs-casella-badge--alias {
    background: rgba(99, 102, 241, 0.15);
    color: #4338ca;
}

.gs-casella-badge--alias:hover {
    background: rgba(99, 102, 241, 0.28);
    color: #3730a3;
}

.gs-casella-perm-badge {
    font-size: 12px;
    font-weight: 600;
    color: var(--gs-text-secondary, #475569) !important;
}

.gs-casella-perm-badge:hover {
    color: #0f172a !important;
}

.gs-casella-perm-row {
    line-height: 1.35;
    word-break: break-word;
}

.gs-doc-panel-placeholder {
    padding: 16px;
    line-height: 1.45;
}

/* === DocumentiPanel (FASE 2 script 05) â€” gs-doc-* === */
.gs-doc-panel-root {
    display: flex;
    flex-direction: column;
    min-height: 0;
    font-size: 13px;
}

.gs-doc-severity-banner {
    padding: 8px 12px;
    font-size: 12px;
    font-weight: 500;
    border-bottom: 1px solid var(--gs-border, #e2e8f0);
}

.gs-doc-severity-lead .gs-doc-severity-banner {
    background: #f8fafc;
    color: #64748b;
}

.gs-doc-severity-preventivo .gs-doc-severity-banner {
    background: #fffbeb;
    color: #92400e;
}

.gs-doc-severity-ordine .gs-doc-severity-banner {
    background: #fef2f2;
    color: #b91c1c;
}

.gs-doc-severity-neutral .gs-doc-severity-banner {
    background: #f8fafc;
    color: #475569;
}

.gs-doc-section {
    border-bottom: 1px solid var(--gs-border, #f1f5f9);
}

.gs-doc-section-title {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--gs-text-secondary, #64748b);
    font-weight: 700;
    padding: 10px 12px 6px;
    margin: 0;
}

.gs-doc-checklist {
    padding: 0 12px 12px;
}

.gs-doc-check-icon {
    font-size: 14px;
    line-height: 1.2;
    min-width: 1.25rem;
}

.gs-doc-storage-footer {
    border-top: 1px solid var(--gs-border, #f1f5f9);
    background: var(--gs-gray-50);
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 10px 12px 12px;
}

.gs-doc-modal-backdrop {
    z-index: 1060;
}

.gs-doc-modal-backdrop-bg {
    background: rgba(0, 0, 0, 0.45);
}

/* --- DocumentiPanel mockup v11b --- */
.gs-doc-panel-head {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px 6px;
    border-bottom: 1px solid var(--gs-border, #e2e8f0);
}

.gs-doc-panel-head-ico {
    font-size: 1.1rem;
    line-height: 1;
}

.gs-doc-panel-head-title {
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--gs-text-primary, #1e293b);
}

.gs-doc-upload-row {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 12px;
}

@media (min-width: 520px) {
    .gs-doc-upload-row {
        flex-direction: row;
        align-items: stretch;
    }

    .gs-doc-dropzone {
        flex: 1 1 52%;
        min-width: 0;
    }

    .gs-doc-config {
        flex: 1 1 48%;
        min-width: 0;
    }
}

.gs-doc-dropzone {
    position: relative;
    border: 2px dashed var(--gs-gray-300);
    border-radius: var(--gs-radius-sm);
    background: var(--gs-gray-50);
    min-height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: border-color var(--gs-transition), background var(--gs-transition);
}

.gs-doc-dropzone--active {
    border-color: var(--gs-primary);
    background: var(--gs-primary-50);
}

.gs-doc-dropzone-inner {
    text-align: center;
    padding: 12px;
    pointer-events: none;
}

.gs-doc-dropzone-icon {
    font-size: 1.75rem;
    display: block;
    margin-bottom: 6px;
    color: var(--gs-gray-500);
}

.gs-doc-dropzone-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: 13px;
    color: var(--gs-text-secondary);
}

.gs-doc-dropzone-hint {
    display: block;
    margin-top: 8px;
    font-size: 11px;
    color: var(--gs-text-tertiary);
}

.gs-doc-file-input-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
}

.gs-doc-config {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 10px 12px;
    border: 1px solid var(--gs-border);
    border-radius: var(--gs-radius-sm);
    background: var(--c);
}

.gs-doc-config-lbl {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--gs-text-secondary);
    margin: 0;
}

.gs-doc-config-select,
.gs-doc-config-note {
    font-size: 13px;
}

.gs-doc-config-switch {
    margin: 0;
    padding-top: 4px;
}

.gs-doc-config-filemeta {
    margin: 0;
}

.gs-doc-config-uploadbtn {
    margin-top: auto;
}

.gs-doc-progress-wrap {
    padding: 0 12px 8px;
}

.gs-doc-progress-labels {
    display: flex;
    justify-content: space-between;
    font-size: 11px;
    color: var(--gs-text-secondary);
    margin-bottom: 4px;
}

.gs-doc-progress.gs-doc-progress--thin {
    height: 6px;
    border-radius: 4px;
    background: var(--gs-gray-100);
}

.gs-doc-progress-w-0 { width: 0%; }
.gs-doc-progress-w-5 { width: 5%; }
.gs-doc-progress-w-10 { width: 10%; }
.gs-doc-progress-w-15 { width: 15%; }
.gs-doc-progress-w-20 { width: 20%; }
.gs-doc-progress-w-25 { width: 25%; }
.gs-doc-progress-w-30 { width: 30%; }
.gs-doc-progress-w-35 { width: 35%; }
.gs-doc-progress-w-40 { width: 40%; }
.gs-doc-progress-w-45 { width: 45%; }
.gs-doc-progress-w-50 { width: 50%; }
.gs-doc-progress-w-55 { width: 55%; }
.gs-doc-progress-w-60 { width: 60%; }
.gs-doc-progress-w-65 { width: 65%; }
.gs-doc-progress-w-70 { width: 70%; }
.gs-doc-progress-w-75 { width: 75%; }
.gs-doc-progress-w-80 { width: 80%; }
.gs-doc-progress-w-85 { width: 85%; }
.gs-doc-progress-w-90 { width: 90%; }
.gs-doc-progress-w-95 { width: 95%; }
.gs-doc-progress-w-100 { width: 100%; }

.gs-doc-badge {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 6px;
    border-radius: 4px;
    font-size: 10px;
    font-weight: 600;
    vertical-align: middle;
}

.gs-doc-badge-obl {
    background: var(--gs-danger-light);
    color: var(--gs-danger-dark);
}

.gs-doc-badge-opt {
    background: var(--gs-gray-100);
    color: var(--gs-gray-600);
}

.gs-doc-check-title {
    font-size: 13px;
}

.gs-doc-check-sub {
    font-size: 12px;
    color: var(--gs-text-secondary);
    margin-top: 2px;
}

.gs-doc-check-fase {
    font-size: 11px;
    color: var(--gs-text-tertiary);
    margin-top: 2px;
}

.gs-doc-check-symbol {
    font-size: 15px;
    line-height: 1.3;
    min-width: 1.35rem;
    flex-shrink: 0;
}

.gs-doc-check-ok .gs-doc-check-sub {
    color: var(--gs-success-dark);
}

.gs-doc-check-future {
    opacity: 0.85;
}

.gs-doc-check-future .gs-doc-check-sub {
    color: var(--gs-text-tertiary);
}

.gs-doc-check-warn .gs-doc-check-sub {
    color: var(--gs-warning-dark);
}

.gs-doc-check-suggest .gs-doc-check-sub {
    color: var(--gs-gray-600);
}

.gs-doc-check-block .gs-doc-check-sub {
    color: var(--gs-danger-dark);
    font-weight: 600;
}

.gs-doc-checklist-empty,
.gs-doc-files-empty {
    padding: 0 12px 12px;
}

.gs-doc-file-group {
    padding: 0 12px 12px;
}

.gs-doc-file-group-head {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 8px;
    margin-bottom: 4px;
}

.gs-doc-file-group-ico {
    font-size: 1rem;
}

.gs-doc-file-group-title {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--gs-text-secondary);
}

.gs-doc-file-row {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 10px 0;
    border-bottom: 1px solid var(--gs-border);
}

.gs-doc-file-main {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

button.gs-doc-file-main.gs-doc-file-main--preview {
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    text-align: left;
    cursor: pointer;
    font: inherit;
    color: inherit;
}

button.gs-doc-file-main.gs-doc-file-main--preview:hover .gs-doc-file-name {
    color: var(--gs-primary);
}

.gs-doc-file-name {
    font-size: 13px;
    font-weight: 500;
}

.gs-doc-file-meta {
    font-size: 11px;
    color: var(--gs-text-tertiary);
}

.gs-doc-file-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}

.gs-doc-file-tag {
    font-size: 11px;
    font-weight: 600;
}

.gs-doc-file-tag--warn {
    color: var(--gs-warning-dark);
}

.gs-doc-bolletta-summary {
    padding-bottom: 8px;
}

.gs-doc-bolletta-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px 12px;
    padding: 0 12px 12px;
    font-size: 12px;
}

.gs-doc-bolletta-k {
    display: block;
    color: var(--gs-text-secondary);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.gs-doc-bolletta-v {
    font-weight: 600;
    color: var(--gs-text-primary);
}

.gs-doc-bolletta-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 0 12px 12px;
}

.gs-doc-storage-line {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 11px;
    word-break: break-all;
}

.gs-doc-storage-ico {
    flex-shrink: 0;
}

.gs-doc-storage-path {
    color: var(--gs-text-secondary);
}

.gs-doc-storage-meta {
    font-size: 11px;
    color: var(--gs-text-tertiary);
}

.gs-doc-storage-dot {
    margin: 0 4px;
}

.gs-doc-modal .gs-doc-modal-note {
    font-size: 12px;
}

.gs-doc-modal-section {
    font-size: 12px;
    font-weight: 700;
    color: var(--gs-primary, #0d9488);
    margin-top: 0.75rem;
    margin-bottom: 0.35rem;
}

.gs-doc-dl dt {
    color: var(--gs-text-secondary, #64748b);
}

.gs-doc-riepilogo {
    border: 1px solid var(--gs-border, #e2e8f0);
    border-radius: 10px;
    background: var(--gs-bg-secondary, #f8fafc);
}

.gs-doc-riepilogo-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 14px;
}

.gs-doc-riepilogo-ico {
    font-size: 1.25rem;
    line-height: 1;
    flex-shrink: 0;
}

.gs-doc-riepilogo-text {
    flex: 1 1 140px;
}

.gs-doc-riepilogo-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--gs-text-primary, #1e293b);
}

.gs-doc-riepilogo-meta {
    font-size: 11px;
    line-height: 1.35;
    margin-top: 2px;
}

/* === SCRIPT 07 â€” Lead mockup v10 (solo :root v10 + gs-lead-*) === */
.gs-lead-page {
    margin-bottom: 0.5rem;
    isolation: isolate;
}

.gs-lead-header-wrap {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 20px;
}

/* === LEAD HEADER === */
.gs-lead-page .gs-lead-avatar {
    width: 52px;
    height: 52px;
    font-size: 18px;
}

.gs-lead-header {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 0;
    flex: 1 1 280px;
    min-width: 0;
}

.gs-lead-header--v11 {
    flex: 1 1 100%;
    width: 100%;
    align-items: flex-start;
}

.gs-lead-header--v11 .gs-lead-header-score-actions {
    margin-left: auto;
    align-items: center;
}

.gs-lead-header-back {
    flex-shrink: 0;
    white-space: nowrap;
}

.gs-lead-avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--acc);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 17px;
    font-weight: 700;
    color: #fff;
    flex-shrink: 0;
}

.gs-lead-avatar--hot {
    background: linear-gradient(135deg, var(--wrn), #e0a800);
}

.gs-lead-avatar--warm {
    background: linear-gradient(135deg, var(--inf), #138496);
}

.gs-lead-avatar--cool {
    background: linear-gradient(135deg, var(--blu), #2d6fb5);
}

.gs-lead-info {
    flex: 1;
    min-width: 0;
}

.gs-lead-name {
    font-size: 17px;
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    color: var(--t);
    margin: 0;
}

.gs-lead-code {
    font-size: 10px;
    color: var(--m);
    font-weight: 400;
}

.gs-lead-badges {
    display: flex;
    gap: 5px;
    margin: 3px 0;
    flex-wrap: wrap;
    align-items: center;
}

.gs-lead-badge {
    font-size: 9px;
    padding: 2px 9px;
    border-radius: 20px;
    font-weight: 600;
}

.gs-lead-badge-stato {
    background: #fff3cd;
    color: #856404;
}

.gs-lead-badge-fonte {
    background: var(--gsl);
    color: var(--gsd);
}

.gs-lead-badge-score {
    background: #e8daef;
    color: #6c3483;
}

.gs-lead-badge-user {
    background: #d1ecf1;
    color: #0c5460;
}

.gs-lead-meta {
    font-size: 10px;
    color: var(--m);
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.gs-lead-score {
    width: 52px;
    height: 52px;
    flex-shrink: 0;
    position: relative;
}

.gs-lead-score svg {
    width: 52px;
    height: 52px;
    transform: rotate(-90deg);
}

.gs-lead-score-track {
    stroke: var(--b);
    stroke-width: 3;
    fill: none;
}

.gs-lead-header--v11 .gs-lead-score .gs-lead-score-track,
.gs-lead-header--v11 .gs-lead-score .gs-lead-score-fill {
    stroke-width: 4;
}

.gs-lead-score-fill {
    stroke-width: 3;
    stroke-linecap: round;
    fill: none;
}

.gs-lead-score-fill--hot {
    stroke: var(--gs-primary);
}

.gs-lead-score-fill--warm {
    stroke: var(--inf);
}

.gs-lead-score-fill--cool {
    stroke: var(--blu);
}

.gs-lead-score-val {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    font-weight: 800;
    color: var(--gs-primary);
}

.gs-lead-score-label {
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 10px;
    font-weight: 600;
    padding: 0;
    border-radius: 0;
    white-space: nowrap;
    background: transparent;
    color: var(--gs-text-tertiary, var(--m));
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.gs-lead-header-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    flex-shrink: 0;
}

/* Lead dettaglio v11 — header (gs-lead-hdr-*) */
.gs-lead-page .gs-lead-hdr-name {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
}

.gs-lead-header-name {
    min-width: 0;
    flex: 1 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gs-lead-hdr-badge {
    font-size: 11px;
    padding: 3px 10px;
    border-radius: 12px;
}
.gs-lead-hdr-badge-gestore {
    font-size: 11px;
    padding: 4px 10px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: var(--gs-primary-bg);
    border: 1px solid var(--gs-primary-200);
    color: var(--gs-primary);
    font-weight: 600;
}
/* v11 mockup — gestore header (accanto a score / cliente) */
.gs-lead-hdr-gestore {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: 8px;
    background: var(--gs-primary-bg);
    border: 1px solid var(--gs-primary-200);
    font-size: 13px;
    font-weight: 600;
    color: var(--gs-primary);
    flex-shrink: 0;
}
.gs-lead-hdr-gestore i {
    font-size: 16px;
}

/* SCRIPT 18 — header score + converti */
.gs-lead-header-score-actions {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    flex-shrink: 0;
}

.gs-conv-header-btn {
    background: var(--suc);
    color: #fff;
    border: 1px solid color-mix(in srgb, var(--suc) 85%, #000);
    border-radius: var(--r, 8px);
    font-weight: 600;
    white-space: nowrap;
}

.gs-conv-header-btn:hover {
    filter: brightness(1.05);
    color: #fff;
}

/* === LEAD KPI === */
.gs-lead-kpi {
    display: flex;
    gap: 6px;
    margin-bottom: 16px;
    flex-wrap: wrap;
}

.gs-lead-page .gs-lead-kpi {
    gap: 10px;
    margin-bottom: 20px;
}

.gs-lead-kpi-chip {
    background: var(--c);
    border: 1px solid var(--b);
    border-radius: 6px;
    padding: 5px 10px;
    font-size: 10px;
    display: flex;
    align-items: center;
    gap: 5px;
    transition: border-color 0.1s;
    min-width: 0;
}

.gs-lead-page .gs-lead-kpi-chip {
    padding: 8px 14px;
    border-radius: 8px;
    font-size: 13px;
    gap: 6px;
    transition: border-color var(--gs-transition, 0.2s ease), background var(--gs-transition, 0.2s ease), color var(--gs-transition, 0.2s ease), box-shadow var(--gs-transition, 0.2s ease);
}

.gs-lead-kpi-chip:hover {
    border-color: var(--gs-primary);
    background: var(--gs-primary-50);
    color: var(--gs-primary);
}
.gs-lead-kpi-chip:hover .gs-lead-kpi-label,
.gs-lead-kpi-chip:hover .gs-lead-kpi-value {
    color: var(--gs-primary);
}
.gs-lead-kpi-chip:hover i {
    color: var(--gs-primary);
}

.gs-lead-kpi-chip i {
    font-size: 12px;
    color: var(--gs);
    flex-shrink: 0;
}

.gs-lead-page .gs-lead-kpi-chip i {
    font-size: 15px;
}

.gs-lead-kpi-inner {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}

.gs-lead-kpi-label {
    color: var(--m);
    font-size: 9px;
}

.gs-lead-page .gs-lead-kpi-label {
    font-size: 11px;
    color: var(--gs-text-secondary, var(--m));
}

.gs-lead-kpi-value {
    font-weight: 600;
    color: var(--t);
    word-break: break-word;
}

.gs-lead-page .gs-lead-kpi-value {
    font-size: 13px;
    color: var(--gs-text-primary, var(--t));
}

.gs-lead-page .gs-lead-kpi-value--fill {
    min-height: 1.35em;
    display: inline-block;
}

/* === SCRIPT 19 — Scheda Cliente (Soggetto) gs-cli-* (allinea a gs-lead-*) === */
.gs-cli-page {
    margin-bottom: 0.5rem;
}

.gs-cli-header-wrap {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
}

.gs-cli-header {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 0;
    flex: 1 1 280px;
    min-width: 0;
}

.gs-cli-avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--acc);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 17px;
    font-weight: 700;
    color: #fff;
    flex-shrink: 0;
}

.gs-cli-avatar--sq {
    border-radius: 12px;
}

.gs-cli-info {
    flex: 1;
    min-width: 0;
}

.gs-cli-name {
    font-size: 17px;
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    color: var(--t);
    margin: 0;
}

.gs-cli-code {
    font-size: 10px;
    color: var(--m);
    font-weight: 400;
}

.gs-cli-badges {
    display: flex;
    gap: 5px;
    margin: 3px 0;
    flex-wrap: wrap;
    align-items: center;
}

.gs-cli-badge {
    font-size: 9px;
    padding: 2px 9px;
    border-radius: 20px;
    font-weight: 600;
}

.gs-cli-badge-tipo {
    background: var(--gsl);
    color: var(--gsd);
}

.gs-cli-badge-ok {
    background: #d1fae5;
    color: #065f46;
}

.gs-cli-badge-off {
    background: var(--gs-gray-200);
    color: var(--gs-gray-600);
}

.gs-cli-badge-cat {
    background: #e8daef;
    color: #6c3483;
}

.gs-cli-badge-ai {
    background: color-mix(in srgb, var(--gs-ai-primary) 18%, var(--c));
    color: var(--gs-ai-primary);
}

.gs-cli-meta {
    font-size: 10px;
    color: var(--m);
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.gs-cli-header-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    flex-shrink: 0;
    align-items: flex-start;
}

.gs-cli-kpi {
    display: flex;
    gap: 6px;
    margin-bottom: 16px;
    flex-wrap: wrap;
}

.gs-cli-kpi-chip {
    background: var(--c);
    border: 1px solid var(--b);
    border-radius: 6px;
    padding: 5px 10px;
    font-size: 10px;
    display: flex;
    align-items: center;
    gap: 5px;
    transition: border-color 0.1s;
    min-width: 0;
}

.gs-cli-kpi-chip:hover {
    border-color: var(--gs);
}

.gs-cli-kpi-chip-link {
    cursor: pointer;
}

.gs-cli-kpi-chip i {
    font-size: 12px;
    color: var(--gs);
    flex-shrink: 0;
}

.gs-cli-kpi-inner {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}

.gs-cli-kpi-label {
    color: var(--m);
    font-size: 9px;
}

.gs-cli-kpi-value {
    font-weight: 600;
    color: var(--t);
    word-break: break-word;
}

.gs-cli-wtabs {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: 18px;
    border-bottom: 2px solid var(--b, #e9ecef);
}

.gs-cli-wtab {
    padding: 8px 20px;
    font-size: 11px;
    font-weight: 600;
    color: var(--m, #6c757d);
    cursor: pointer;
    border: none;
    background: transparent;
    font-family: inherit;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    transition: color 0.15s ease, border-color 0.15s ease;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.gs-cli-wtab:hover {
    color: var(--t, #2d3436);
}

.gs-cli-wtab.active {
    color: var(--gs, #1a7a5a);
    border-bottom-color: var(--gs, #1a7a5a);
}

.gs-cli-wtab i {
    font-size: 13px;
}

.gs-cli-tab-badge {
    display: inline-block;
    min-width: 18px;
    padding: 0 5px;
    margin-left: 4px;
    font-size: 9px;
    font-weight: 700;
    line-height: 16px;
    text-align: center;
    border-radius: 8px;
    background: var(--gs-primary-100);
    color: var(--gs-primary-800);
}

.gs-cli-panel {
    min-width: 0;
}

.gs-cli-pan-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 16px;
}

@media (max-width: 900px) {
    .gs-cli-pan-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.gs-cli-stat {
    background: var(--c);
    border: 1px solid var(--b);
    border-radius: var(--r, 8px);
    padding: 12px 14px;
    box-shadow: var(--sh, 0 1px 3px rgba(0, 0, 0, 0.06));
}

.gs-cli-stat-val {
    display: block;
    font-size: 20px;
    font-weight: 700;
    color: var(--t);
    line-height: 1.2;
}

.gs-cli-stat-lbl {
    display: block;
    font-size: 10px;
    font-weight: 600;
    color: var(--m);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-top: 4px;
}

.gs-cli-stat-hint {
    display: block;
    font-size: 9px;
    color: var(--wrn, #d97706);
    margin-top: 6px;
}

.gs-cli-callout {
    border-radius: var(--r, 8px);
    padding: 10px 14px;
    font-size: 12px;
    border: 1px solid var(--b);
    background: var(--gs-gray-50);
}

.gs-cli-callout--warn {
    border-color: color-mix(in srgb, var(--wrn, #d97706) 35%, var(--b));
    background: #fffbeb;
    color: #92400e;
}

.gs-cli-pan-section {
    margin-bottom: 22px;
}

.gs-cli-pan-h {
    font-size: 13px;
    font-weight: 700;
    color: var(--t);
    margin: 0 0 10px;
    display: flex;
    align-items: center;
}

.gs-cli-subh {
    font-size: 11px;
    font-weight: 600;
    color: var(--m);
    margin: 0 0 8px;
}

.gs-cli-muted {
    color: var(--m);
}

.gs-cli-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 12px;
}

.gs-cli-contact-card {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 12px 14px;
    background: var(--c);
    border: 1px solid var(--b);
    border-radius: var(--r, 10px);
    box-shadow: var(--sh, 0 1px 3px rgba(0, 0, 0, 0.06));
}

.gs-cli-contact-av {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--gsl);
    color: var(--gsd);
    font-size: 13px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.gs-cli-contact-body {
    min-width: 0;
    flex: 1;
}

.gs-cli-contact-name {
    font-weight: 600;
    font-size: 13px;
    color: var(--t);
}

.gs-cli-contact-role {
    font-size: 11px;
    color: var(--m);
    margin-top: 2px;
}

.gs-cli-contact-actions {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-top: 8px;
    align-items: flex-start;
}

.gs-cli-mini-link {
    font-size: 11px;
    color: var(--gs);
    text-decoration: none;
    border: none;
    background: none;
    padding: 0;
    cursor: pointer;
    font-family: inherit;
    text-align: left;
}

.gs-cli-mini-link:hover {
    text-decoration: underline;
}

.gs-cli-mini-link-btn {
    color: var(--blu);
}

.gs-cli-allegati {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.gs-cli-alleg-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    background: var(--gs-gray-50);
    border-radius: 8px;
    border: 1px solid var(--b);
}

.gs-cli-pill {
    font-size: 9px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 12px;
    background: var(--gs-info-light);
    color: var(--gs-info-dark);
}

.gs-det-section.gs-cli-sec-green .gs-det-header {
    background: linear-gradient(135deg, var(--gs-primary-50) 0%, var(--c) 100%);
    border-bottom-color: color-mix(in srgb, var(--gs-primary) 22%, var(--b));
}

.gs-det-section.gs-cli-sec-blue .gs-det-header {
    background: linear-gradient(135deg, var(--gs-info-light) 0%, var(--c) 100%);
    border-bottom-color: color-mix(in srgb, var(--blu) 25%, var(--b));
}

.gs-det-section.gs-cli-sec-purple .gs-det-header {
    background: linear-gradient(135deg, var(--gs-purple-light) 0%, var(--c) 100%);
    border-bottom-color: color-mix(in srgb, var(--gs-purple) 22%, var(--b));
}

.gs-det-section.gs-cli-sec-amber .gs-det-header {
    background: linear-gradient(135deg, var(--gs-amber-light) 0%, var(--c) 100%);
    border-bottom-color: color-mix(in srgb, var(--gs-amber) 28%, var(--b));
}

.gs-cli-doc-tab-wrap {
    min-width: 0;
}

.gs-cli-doc-ul {
    font-size: 12px;
}

.gs-cli-doc-li {
    padding: 4px 0;
    border-bottom: 1px dashed var(--b);
}

.gs-cli-doc-li:last-child {
    border-bottom: none;
}

.gs-cli-timeline {
    position: relative;
    padding-left: 8px;
}

.gs-cli-tl-row {
    display: flex;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid var(--b);
}

.gs-cli-tl-row:last-child {
    border-bottom: none;
}

.gs-cli-tl-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--gs);
    margin-top: 5px;
    flex-shrink: 0;
}

.gs-cli-tl-body {
    min-width: 0;
    flex: 1;
}

.gs-cli-tl-title {
    font-size: 12px;
    font-weight: 600;
    color: var(--t);
}

.gs-cli-tl-meta {
    font-size: 10px;
    color: var(--m);
    margin-top: 2px;
}

.gs-cli-tl-desc {
    color: var(--gs-gray-600);
    margin-top: 4px;
}

.gs-cli-addr-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 12px;
}

.gs-cli-addr-card {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 14px 16px;
    background: var(--c);
    border: 1px solid var(--b);
    border-radius: var(--r, 10px);
    box-shadow: var(--sh, 0 1px 3px rgba(0, 0, 0, 0.06));
}

.gs-cli-addr-ico {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: var(--gs-info-light);
    color: var(--gs-info);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    flex-shrink: 0;
}

.gs-cli-addr-body {
    min-width: 0;
    flex: 1;
}

.gs-cli-addr-type {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--m);
}

.gs-cli-addr-line {
    font-size: 13px;
    font-weight: 600;
    color: var(--t);
    margin-top: 4px;
    line-height: 1.35;
}

.gs-cli-addr-meta {
    font-size: 11px;
    color: var(--m);
    margin-top: 6px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

/* === LEAD CENTRO COMANDO === */
.gs-lead-cmd {
    display: grid;
    grid-template-columns: 200px minmax(0, 1fr);
    gap: 20px;
    margin-bottom: 20px;
}

@media (max-width: 900px) {
    .gs-lead-cmd {
        grid-template-columns: 1fr;
    }
}

/* --- Pipeline --- */
.gs-lead-pip {
    background: var(--c);
    border: 1px solid var(--b);
    border-radius: var(--r);
    box-shadow: var(--sh);
    padding: 24px;
    display: flex;
    flex-direction: column;
}

.gs-lead-pip-title {
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--gs-text-tertiary, var(--m));
    font-weight: 700;
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.gs-lead-pip-title i {
    font-size: 12px;
    color: var(--gs);
}

.gs-lead-pip-step {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 0;
    position: relative;
}

.gs-lead-pip-line {
    position: absolute;
    left: 11px;
    top: 28px;
    width: 2px;
    height: calc(100% - 4px);
    background: var(--b);
}

.gs-lead-pip-step:last-child .gs-lead-pip-line {
    display: none;
}

.gs-lead-pip-line-done {
    background: var(--suc);
}

.gs-lead-pip-dot {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 700;
    flex-shrink: 0;
    z-index: 1;
    border: none;
    padding: 0;
    cursor: pointer;
    font-family: inherit;
}

.gs-lead-pip-dot:disabled {
    cursor: not-allowed;
    opacity: 0.65;
}

.gs-lead-pip-dot-done {
    background: var(--suc);
    color: #fff;
}

.gs-lead-pip-dot-curr {
    background: var(--acc);
    color: #fff;
    box-shadow: 0 0 0 3px rgba(232, 168, 56, 0.2);
}

.gs-lead-pip-dot-next {
    background: var(--bg);
    color: var(--m);
    border: 1.5px solid var(--b);
}

.gs-lead-pip-body {
    min-width: 0;
    padding-top: 1px;
}

.gs-lead-pip-name {
    font-size: 13px;
    font-weight: 600;
    color: var(--t);
}

.gs-lead-pip-date {
    font-size: 11px;
    color: var(--gs-text-tertiary, var(--m));
}

.gs-lead-pip-trigger {
    font-size: 11px;
    color: var(--gs-primary);
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 4px;
}

.gs-lead-pip-miss {
    font-size: 11px;
    color: var(--wrn);
    font-style: italic;
}

.gs-lead-pip-step-link {
    display: inline-block;
    margin-top: 6px;
    font-size: 12px;
    font-weight: 600;
    color: var(--gs-primary);
}
.gs-lead-pip-step-link:hover {
    color: var(--gs-primary-800, var(--gs-primary));
    text-decoration: underline;
}

.gs-lead-pip-adv {
    margin-top: 10px;
    padding-top: 8px;
    border-top: 1px solid var(--b);
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
}

.gs-lead-pip-actions {
    display: flex;
    gap: 6px;
}

.gs-lead-pip-toggle {
    align-self: center;
    border: none;
    background: none;
    padding: 2px 0;
    font-size: 10px;
    font-weight: 600;
    color: var(--m);
    cursor: pointer;
    font-family: inherit;
    letter-spacing: 0.02em;
}

.gs-lead-pip-toggle:hover {
    color: var(--gs-primary);
    text-decoration: underline;
}

.gs-lead-pip-btn {
    flex: 1;
    padding: 5px 0;
    border: 1px solid var(--b);
    border-radius: 6px;
    font-size: 12px;
    color: var(--m);
    text-align: center;
    cursor: pointer;
    background: var(--c);
    transition: all 0.1s;
    font-family: inherit;
}

.gs-lead-pip-btn:hover:not(:disabled) {
    border-color: var(--gs);
    color: var(--gs);
    background: var(--gsl);
}

.gs-lead-pip-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

/* SCRIPT 18 — gate anagrafica tra Qualificato e Preventivo */
.gs-lead-pip-gate {
    margin: 4px 0 4px 32px;
    padding: 8px 10px;
    border-radius: 8px;
    border: 1px dashed var(--b);
    background: color-mix(in srgb, var(--c) 92%, var(--m));
}

.gs-lead-pip-gate--crit {
    border-color: color-mix(in srgb, var(--dng, #c0392b) 45%, var(--b));
    background: color-mix(in srgb, var(--dng, #c0392b) 8%, var(--c));
}

.gs-lead-pip-gate-lock {
    display: flex;
    align-items: flex-start;
    gap: 8px;
}

.gs-lead-pip-gate-lock i {
    color: var(--dng, #c0392b);
    font-size: 16px;
    margin-top: 2px;
}

.gs-lead-pip-gate-body {
    min-width: 0;
}

.gs-lead-pip-gate-title {
    font-size: 10px;
    font-weight: 700;
    color: var(--t);
}

.gs-lead-pip-gate-sub {
    font-size: 9px;
    color: var(--m);
}

.gs-lead-pip-gate-msg {
    font-size: 9px;
    color: var(--m);
    line-height: 1.35;
}

.gs-lead-pip-gate-link {
    border: none;
    background: none;
    padding: 0;
    font-size: 12px;
    font-weight: 600;
    color: var(--gs-primary);
    cursor: pointer;
    text-decoration: none;
    font-family: inherit;
}

.gs-lead-pip-gate-link:hover {
    color: var(--gs-primary-800, var(--gs-primary));
    text-decoration: underline;
}

.gs-lead-pip-gate-sub--primary {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    font-weight: 600;
    color: var(--gs-primary);
}
.gs-lead-pip-gate-sub--primary i {
    flex-shrink: 0;
}

/* SCRIPT 18 — modale converti + Lucio strip */
.gs-conv-modal {
    z-index: 1060;
}

.gs-conv-modal-content {
    border-radius: var(--r, 10px);
    border: 1px solid var(--b);
    box-shadow: var(--sh);
}

.gs-conv-modal-head {
    border-bottom: 1px solid var(--b);
}

.gs-conv-title {
    font-size: 15px;
    font-weight: 700;
    color: var(--t);
}

.gs-conv-body {
    font-size: 12px;
}

.gs-conv-foot {
    border-top: 1px solid var(--b);
    gap: 8px;
    flex-wrap: wrap;
}

.gs-conv-step--center {
    text-align: center;
    padding: 1.5rem 0.5rem;
}

.gs-conv-spinner {
    width: 2.25rem;
    height: 2.25rem;
    margin-bottom: 0.75rem;
}

.gs-conv-step-title {
    font-weight: 600;
    color: var(--t);
}

.gs-conv-muted {
    color: var(--m);
}

.gs-conv-warn-box {
    background: color-mix(in srgb, var(--wrn) 14%, var(--c));
    border: 1px solid color-mix(in srgb, var(--wrn) 35%, var(--b));
    border-radius: 8px;
    padding: 10px 12px;
    font-size: 11px;
    color: var(--t);
    margin-bottom: 12px;
}

.gs-conv-match-card {
    display: block;
    border: 1.5px solid var(--b);
    border-radius: 8px;
    padding: 10px 12px;
    margin-bottom: 8px;
    cursor: pointer;
    background: var(--c);
    transition: border-color 0.12s, box-shadow 0.12s;
}

.gs-conv-match-card--sel {
    border-color: var(--gs);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--gs) 25%, transparent);
}

.gs-conv-match-body {
    padding-left: 2px;
}

.gs-conv-match-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 4px;
}

.gs-conv-match-code {
    font-weight: 700;
    font-size: 11px;
    color: var(--gs);
}

.gs-conv-match-score {
    font-size: 9px;
    color: var(--m);
}

.gs-conv-match-name {
    font-weight: 600;
    font-size: 12px;
    color: var(--t);
    margin-bottom: 6px;
}

.gs-conv-match-row {
    font-size: 10px;
    margin-bottom: 2px;
    display: flex;
    gap: 6px;
}

.gs-conv-k {
    color: var(--m);
    min-width: 52px;
    flex-shrink: 0;
}

.gs-conv-v {
    color: var(--t);
    word-break: break-word;
}

.gs-conv-match-tipo {
    font-size: 9px;
    color: var(--m);
    margin-top: 6px;
    font-style: italic;
}

.gs-conv-card {
    border: 1px solid var(--b);
    border-radius: 8px;
    padding: 12px;
    background: var(--c);
}

.gs-conv-card-title {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--m);
    font-weight: 700;
    margin-bottom: 8px;
}

.gs-conv-field {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 10px;
    align-items: baseline;
    margin-bottom: 6px;
    font-size: 11px;
}

.gs-conv-field-l {
    color: var(--m);
    min-width: 110px;
    flex-shrink: 0;
}

.gs-conv-field-v {
    color: var(--t);
    font-weight: 500;
}

.gs-conv-field-miss {
    color: var(--m);
    font-style: italic;
}

.gs-conv-check .form-check-label {
    font-size: 11px;
}

.gs-conv-input {
    border-radius: 6px;
}

.gs-conv-alert {
    font-size: 11px;
}

.gs-conv-lucio-strip {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

.gs-conv-lucio-strip-txt {
    flex: 1 1 140px;
}

.gs-conv-lucio-link {
    border: none;
    background: none;
    padding: 0;
    font-size: 11px;
    font-weight: 700;
    color: var(--gs);
    cursor: pointer;
    text-decoration: underline;
    font-family: inherit;
}

.gs-conv-lucio-link:hover {
    color: var(--acc);
}

/* --- LucioAI — cruscotto ambra (script 10) --- */
.gs-lead-ai {
    background: var(--lucio-ai-gradient);
    border: 1px solid var(--lucio-ai-border);
    border-radius: var(--r);
    overflow: hidden;
    box-shadow: var(--sh);
    display: flex;
    flex-direction: column;
    padding: 24px;
    gap: 0;
}

.gs-lead-ai-header {
    padding: 0 0 16px 0;
    display: flex;
    align-items: center;
    gap: 10px;
    border-bottom: 1px solid var(--lucio-ai-divider);
}

.gs-lead-ai-avatar {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: var(--gs-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
    color: var(--gs-card-bg);
    flex-shrink: 0;
}

.gs-lead-ai-avatar i {
    font-size: 16px;
}

.gs-lead-ai-avatar--cpu {
    border-radius: 50%;
    width: 36px;
    height: 36px;
}

.gs-lead-ai-name {
    font-size: 13px;
    font-weight: 700;
    color: var(--lucio-ai-primary);
}

.gs-lead-ai-header .gs-lead-ai-name {
    font-size: 16px;
}

.gs-lead-ai-sub {
    font-size: 9px;
    color: var(--lucio-ai-amber-mid);
    margin-top: 1px;
}

/* TARGET v12 — sottotitolo header più leggibile */
.gs-lead-ai-header .gs-lead-ai-sub {
    font-size: 12px;
    color: var(--gs-text-secondary, var(--lucio-ai-amber-mid));
}

.gs-lead-ai-status {
    margin-left: auto;
    font-size: 9px;
    color: var(--suc);
    display: flex;
    align-items: center;
    gap: 4px;
    font-weight: 500;
}

.gs-lead-ai-status::before {
    content: '';
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--suc);
}

/* --- Score breakdown (gs-ai-*) --- */
.gs-ai-score {
    display: flex;
    align-items: flex-start;
    gap: 24px;
    padding: 20px 0;
    border-bottom: 1px solid var(--lucio-ai-divider-soft);
}

.gs-ai-score-ring {
    width: 80px;
    height: 80px;
    position: relative;
    flex-shrink: 0;
}

.gs-ai-score-ring svg {
    width: 80px;
    height: 80px;
    transform: rotate(-90deg);
}

.gs-ai-score-ring-track {
    stroke: var(--lucio-ai-ring-track);
}

.gs-ai-score-ring-fill--hot {
    stroke: var(--gs-primary);
}

.gs-ai-score-ring-fill--warm {
    stroke: var(--acc);
}

.gs-ai-score-ring-fill--cold {
    stroke: var(--dng);
}

.gs-ai-score-val {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}

.gs-ai-score-num {
    font-size: 24px;
    font-weight: 800;
    color: var(--lucio-ai-primary);
    line-height: 1;
}

.gs-ai-score-label {
    font-size: 9px;
    color: var(--lucio-ai-amber-mid);
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 700;
    margin-top: 2px;
}

.gs-ai-score-factors {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 6px;
    justify-content: center;
    min-width: 0;
}

.gs-ai-sf {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
}

.gs-ai-sf-name {
    width: 110px;
    color: var(--gs-text-secondary, var(--m));
    font-size: 13px;
    flex-shrink: 0;
}

.gs-ai-sf-bar {
    flex: 1;
    min-width: 0;
    height: 8px;
    background: var(--lucio-ai-ring-track);
    border-radius: 4px;
    overflow: hidden;
}

.gs-ai-sf-fill {
    height: 100%;
    border-radius: 4px;
}

.gs-ai-sf-fill-high {
    background: var(--gs-primary);
}

.gs-ai-sf-fill-mid {
    background: var(--acc);
}

.gs-ai-sf-fill-low {
    background: var(--dng);
}

.gs-ai-sf-pct-0 { width: 0%; }
.gs-ai-sf-pct-5 { width: 5%; }
.gs-ai-sf-pct-10 { width: 10%; }
.gs-ai-sf-pct-15 { width: 15%; }
.gs-ai-sf-pct-20 { width: 20%; }
.gs-ai-sf-pct-25 { width: 25%; }
.gs-ai-sf-pct-30 { width: 30%; }
.gs-ai-sf-pct-35 { width: 35%; }
.gs-ai-sf-pct-40 { width: 40%; }
.gs-ai-sf-pct-45 { width: 45%; }
.gs-ai-sf-pct-50 { width: 50%; }
.gs-ai-sf-pct-55 { width: 55%; }
.gs-ai-sf-pct-60 { width: 60%; }
.gs-ai-sf-pct-65 { width: 65%; }
.gs-ai-sf-pct-70 { width: 70%; }
.gs-ai-sf-pct-75 { width: 75%; }
.gs-ai-sf-pct-80 { width: 80%; }
.gs-ai-sf-pct-85 { width: 85%; }
.gs-ai-sf-pct-90 { width: 90%; }
.gs-ai-sf-pct-95 { width: 95%; }
.gs-ai-sf-pct-100 { width: 100%; }

.gs-ai-sf-val {
    font-weight: 600;
    width: 28px;
    text-align: right;
    font-size: 13px;
    flex-shrink: 0;
}

.gs-ai-sf-miss {
    color: var(--dng);
    font-size: 9px;
    font-weight: 500;
}

/* --- Alert --- */
.gs-ai-alerts {
    padding: 12px 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
    border-bottom: 1px solid var(--lucio-ai-divider-soft);
}

.gs-ai-alert {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-radius: 8px;
    font-size: 10px;
    font-weight: 500;
    background: var(--gs-card-bg);
    border: 1px solid var(--gs-gray-200);
    border-left-width: 4px;
}

.gs-ai-alert i {
    font-size: 13px;
    flex-shrink: 0;
}

.gs-ai-alert-danger {
    border-left-color: var(--gs-danger);
    color: var(--gs-danger-dark);
}

.gs-ai-alert-warn {
    border-left-color: var(--gs-warning);
    color: var(--gs-warning-dark);
}

.gs-ai-alert-info {
    border-left-color: var(--gs-info);
    color: var(--gs-info-dark);
}

.gs-ai-alert-suc {
    border-left-color: var(--gs-success);
    color: var(--gs-success-dark);
}

.gs-ai-alert-ok {
    border-left-color: var(--gs-success);
    color: var(--gs-success-dark);
}

.gs-ai-alert-flash {
    animation: gs-alert-pulse 0.6s ease-in-out 3;
}

@keyframes gs-alert-pulse {
    0%, 100% {
        opacity: 1;
    }

    50% {
        opacity: 0.3;
        box-shadow: 0 0 12px var(--gs-warning);
    }
}

/* --- Benchmark --- */
.gs-ai-bench {
    padding: 16px 0;
    border-bottom: 1px solid var(--lucio-ai-divider-soft);
}

.gs-ai-bench-title {
    font-size: 9px;
    color: var(--lucio-ai-amber-mid);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 600;
    margin-bottom: 8px;
}

.gs-ai-bench-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}

@media (max-width: 575.98px) {
    .gs-ai-bench-grid {
        grid-template-columns: 1fr;
    }
}

.gs-ai-bench-item {
    background: var(--lucio-ai-bench-card);
    border-radius: 8px;
    padding: 10px 8px;
    text-align: center;
}

.gs-ai-bench-val {
    font-size: 16px;
    font-weight: 700;
    color: var(--lucio-ai-primary);
}

.gs-ai-bench-vs {
    font-size: 9px;
    font-weight: 600;
    margin-top: 1px;
}

.gs-ai-bench-vs-up {
    color: var(--suc);
}

.gs-ai-bench-vs-down {
    color: var(--dng);
}

.gs-ai-bench-vs-neutral {
    color: var(--m);
}

.gs-ai-bench-label {
    font-size: 8px;
    color: var(--lucio-ai-amber-mid);
    text-transform: uppercase;
    letter-spacing: 0.3px;
    margin-top: 2px;
}

/* --- Strumenti --- */
.gs-ai-tools-divider {
    border: none;
    border-top: 1px solid var(--lucio-ai-divider-soft);
    margin: 16px 0 0 0;
}

.gs-ai-tools {
    padding: 16px 0 0 0;
    border-bottom: 1px solid var(--lucio-ai-divider-soft);
}

.gs-ai-tools-title {
    font-size: 13px;
    color: var(--lucio-ai-amber-mid);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 700;
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.gs-ai-tools-title i {
    font-size: 14px;
    color: var(--gs-text-tertiary, var(--m));
}

.gs-ai-tools-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
}

.gs-ai-tool {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border-radius: 8px;
    cursor: pointer;
    transition: border-color 0.25s ease, background 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease, color 0.25s ease;
    border: 1px solid var(--lucio-ai-tool-line);
    background: var(--lucio-ai-tool-bg);
    text-align: left;
    font-family: inherit;
}

.gs-ai-tool:hover {
    background: var(--gs-primary-bg);
    border-color: var(--gs-primary);
    transform: translateY(-2px);
    box-shadow: var(--gs-shadow-md);
}

.gs-ai-tool-icon {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    flex-shrink: 0;
    transition: background 0.25s ease, color 0.25s ease;
}

.gs-ai-tool-icon-email {
    background: var(--gs-info-light);
    color: var(--blu);
}

.gs-ai-tool-icon-prev {
    background: var(--gsl);
    color: var(--gs);
}

.gs-ai-tool-icon-sim {
    background: var(--gs-amber-light);
    color: var(--lucio-ai-primary);
}

.gs-ai-tool-icon-call {
    background: var(--gs-amber-light);
    color: var(--lucio-ai-primary);
}

.gs-ai-tool-icon-cal {
    background: var(--gs-teal-light);
    color: var(--gs-teal);
}

.gs-ai-tool-icon-doc {
    background: var(--gs-danger-light);
    color: var(--gs-danger);
}

.gs-ai-tool-icon-user {
    background: var(--gs-purple-light);
    color: var(--gs-purple-dark);
}

.gs-ai-tool-icon-teal {
    background: var(--gs-teal-light);
    color: var(--gs-teal);
}

.gs-ai-tool-icon-bolt {
    background: var(--gs-purple-light);
    color: var(--gs-purple-dark);
}

.gs-ai-tool-icon-assegna {
    background: var(--gs-amber-light);
    color: var(--gs-amber-dark);
}

.gs-ai-tool-text {
    font-size: 14px;
    font-weight: 600;
    color: var(--t);
}

.gs-ai-tool-desc {
    font-size: 11px;
    color: var(--gs-text-tertiary, var(--m));
    margin-top: 1px;
}

.gs-ai-tool-highlight {
    border-color: var(--gs);
    background: var(--gsl);
}

.gs-ai-tool-highlight .gs-ai-tool-text {
    color: var(--gs);
}

/* Lead v11 — strumenti card (gs-lead-tool) */
.gs-ai-tool.gs-lead-tool:hover:not(:disabled):not(.gs-lead-tool--disabled) {
    background: var(--gs-primary-bg);
    border-color: var(--gs-primary);
    transform: translateY(-2px);
    box-shadow: var(--gs-shadow-md);
}
.gs-ai-tool.gs-lead-tool:hover:not(:disabled):not(.gs-lead-tool--disabled) .gs-ai-tool-icon {
    background: var(--gs-primary);
    color: var(--gs-card-bg);
}
.gs-ai-tool.gs-lead-tool:hover:not(:disabled):not(.gs-lead-tool--disabled) .gs-ai-tool-text,
.gs-ai-tool.gs-lead-tool:hover:not(:disabled):not(.gs-lead-tool--disabled) .gs-ai-tool-desc {
    color: var(--gs-primary);
}

.gs-ai-tool.gs-lead-tool.gs-ai-tool-active:not(:disabled):not(.gs-lead-tool--disabled) {
    border-color: var(--gs-primary);
    background: var(--gs-primary-bg);
    box-shadow: var(--gs-shadow-md);
    transform: translateY(-2px);
}

.gs-ai-tool.gs-lead-tool.gs-ai-tool-active:not(:disabled):not(.gs-lead-tool--disabled) .gs-ai-tool-icon {
    background: var(--gs-primary);
    color: var(--gs-card-bg);
}

.gs-ai-tool.gs-lead-tool.gs-ai-tool-active:not(:disabled):not(.gs-lead-tool--disabled) .gs-ai-tool-text,
.gs-ai-tool.gs-lead-tool.gs-ai-tool-active:not(:disabled):not(.gs-lead-tool--disabled) .gs-ai-tool-desc {
    color: var(--gs-primary);
}

.gs-lead-tool--score80 {
    border: 2px solid var(--gs-primary);
    position: relative;
}

.gs-ai-tool.gs-lead-tool--score80::after {
    content: 'Score ≥ 80%';
    position: absolute;
    top: -8px;
    right: 12px;
    background: var(--gs-primary);
    color: var(--gs-card-bg);
    font-size: 10px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 8px;
    line-height: 1.2;
    pointer-events: none;
}

.gs-lead-tool-badge {
    font-size: 8px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--gs-primary);
    margin-top: 2px;
}
.gs-ai-tool.gs-lead-tool--disabled,
.gs-ai-tool.gs-lead-tool:disabled {
    opacity: 0.45;
    pointer-events: none;
    cursor: not-allowed;
}
a.gs-ai-tool.gs-lead-tool {
    text-decoration: none;
    color: inherit;
}

/* --- Chat footer — un solo controllo stile input (apre widget DX) --- */
.gs-ai-footer {
    padding: 16px 0 0 0;
    margin-top: 4px;
    display: flex;
    align-items: center;
    gap: 8px;
    background: transparent;
}

.gs-ai-chat-bar {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    min-height: 44px;
    padding: 10px 14px;
    border-radius: var(--gs-radius-sm, 8px);
    border: 1px solid var(--lucio-ai-border);
    background: var(--lucio-ai-footer-tint);
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
    font-family: inherit;
    text-align: left;
}

.gs-ai-chat-bar:hover {
    border-color: var(--lucio-ai-primary);
    background: var(--c);
    box-shadow: var(--gs-shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.06));
}

.gs-ai-chat-bar-ico {
    font-size: 16px;
    color: var(--gs-text-tertiary, var(--m));
    flex-shrink: 0;
}

.gs-ai-chat-bar-placeholder {
    flex: 1;
    font-size: 14px;
    color: var(--gs-text-secondary, var(--m));
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gs-ai-chat-bar-send {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--lucio-ai-primary);
    color: var(--c);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 16px;
    transition: background 0.15s ease;
}

.gs-ai-chat-bar:hover .gs-ai-chat-bar-send {
    background: var(--lucio-ai-dark);
}

/* legacy: singoli controlli (non usati su LeadLucioInsight dopo riscrittura) */
.gs-ai-chat-input {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border-radius: 8px;
    border: 1px solid var(--lucio-ai-border);
    background: rgba(255, 255, 255, 0.7);
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
    font-size: 11px;
    color: var(--lucio-ai-amber-mid);
    font-family: inherit;
}

.gs-ai-chat-input:hover {
    background: var(--c);
    border-color: var(--lucio-ai-primary);
    color: var(--lucio-ai-primary);
}

.gs-ai-chat-input i {
    font-size: 14px;
}

.gs-ai-chat-go {
    padding: 8px 14px;
    border-radius: 8px;
    border: none;
    background: var(--lucio-ai-primary);
    color: var(--c);
    font-size: 11px;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 5px;
    font-family: inherit;
    transition: background 0.15s ease;
}

.gs-ai-chat-go:hover {
    background: var(--lucio-ai-dark);
}

/* === LEAD DUAL ROW === */
.gs-lead-dual {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 20px;
}

@media (max-width: 900px) {
    .gs-lead-dual {
        grid-template-columns: 1fr;
    }
}

/* LEAD-V11-J — preventivi collegati + benchmark (Dettaglio) */
.gs-lead-prev-section {
    margin-bottom: 20px;
    padding: 24px;
    background: var(--gs-card-bg);
    border: 1px solid var(--gs-card-border);
    border-radius: var(--gs-card-radius-sm);
    box-shadow: var(--gs-card-shadow);
}
.gs-lead-prev-title {
    font-size: var(--gs-font-md);
    font-weight: 700;
    margin: 0 0 12px;
    color: var(--gs-text-primary);
    display: flex;
    align-items: center;
    gap: 8px;
}
.gs-lead-prev-title i {
    color: var(--gs-primary);
}
.gs-lead-prev-muted,
.gs-lead-prev-empty {
    font-size: var(--gs-font-sm);
    color: var(--gs-text-secondary);
}
.gs-lead-prev-placeholder {
    padding: 14px 16px;
    border-radius: var(--gs-card-radius-sm);
    border: 1px dashed var(--gs-gray-300);
    background: var(--gs-gray-50);
    color: var(--gs-text-secondary);
    font-size: var(--gs-font-sm);
    text-align: center;
}
.gs-lead-prev-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.gs-lead-prev-card {
    display: block;
    padding: 12px 14px;
    border: 1px solid var(--gs-card-border);
    border-radius: var(--gs-card-radius-sm);
    background: var(--gs-gray-50);
    transition: border-color var(--gs-transition), box-shadow var(--gs-transition), transform var(--gs-transition), background var(--gs-transition);
}
.gs-lead-prev-card:hover {
    border-color: var(--gs-primary);
    box-shadow: var(--gs-shadow-md);
    transform: translateY(-1px);
    background: var(--gs-primary-50);
}
.gs-lead-prev-card-row {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) minmax(0, 0.9fr) minmax(0, 1fr);
    gap: 12px 16px;
    align-items: end;
}
@media (max-width: 768px) {
    .gs-lead-prev-card-row {
        grid-template-columns: 1fr 1fr;
    }
}
.gs-lead-prev-cell {
    min-width: 0;
}
.gs-lead-prev-label {
    display: block;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: var(--gs-text-tertiary);
    margin-bottom: 2px;
}
.gs-lead-prev-code {
    font-weight: 700;
    font-size: var(--gs-font-sm);
    color: var(--gs-text-primary);
}
.gs-lead-prev-ver {
    font-weight: 600;
    color: var(--gs-text-secondary);
}
.gs-lead-prev-val {
    font-size: var(--gs-font-sm);
    color: var(--gs-text-primary);
}
.gs-lead-prev-val--num {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}
.gs-lead-prev-stato {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
    background: var(--gs-primary-bg);
    color: var(--gs-primary);
    border: 1px solid var(--gs-primary-200);
}
.gs-lead-bench-section {
    margin-bottom: 24px;
    padding: 24px;
    background: var(--gs-card-bg);
    border: 1px solid var(--gs-card-border);
    border-radius: var(--gs-card-radius-sm);
    box-shadow: var(--gs-card-shadow);
}
.gs-lead-bench-title {
    font-size: var(--gs-font-md);
    font-weight: 700;
    margin: 0 0 6px;
    color: var(--gs-text-primary);
    display: flex;
    align-items: center;
    gap: 8px;
}
.gs-lead-bench-title i {
    color: var(--gs-primary);
}
.gs-lead-bench-intro {
    font-size: var(--gs-font-xs);
    color: var(--gs-text-secondary);
    margin: 0 0 14px;
}
.gs-lead-bench-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}
@media (max-width: 768px) {
    .gs-lead-bench-grid {
        grid-template-columns: 1fr;
    }
}
.gs-lead-bench-card {
    padding: 14px 16px;
    border-radius: var(--gs-card-radius-sm);
    border: 1px solid var(--gs-card-border);
    background: var(--gs-gray-50);
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-height: 88px;
}
.gs-lead-bench-label {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.35px;
    color: var(--gs-text-tertiary);
}
.gs-lead-bench-val {
    font-size: var(--gs-font-lg);
    font-weight: 700;
    color: var(--gs-text-secondary);
}

.gs-lead-card {
    background: var(--c);
    border: 1px solid var(--b);
    border-radius: var(--r);
    box-shadow: var(--sh);
}

.gs-lead-card-header {
    padding: 10px 14px;
    font-size: 11px;
    font-weight: 600;
    color: var(--m);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 1px solid var(--b);
    display: flex;
    align-items: center;
    gap: 7px;
}

.gs-lead-card-header i {
    font-size: 13px;
    color: var(--gs);
}

.gs-lead-card-header-right {
    margin-left: auto;
    font-size: 9px;
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
}

.gs-lead-card-body {
    padding: 0;
}

.gs-lead-card-body-pad {
    padding: 14px;
}

.gs-lead-st-scroll {
    max-height: 480px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.gs-lead-st-item {
    display: flex;
    gap: 10px;
    padding: 9px 14px;
    border-bottom: 1px solid var(--b);
    transition: background 0.1s;
    align-items: flex-start;
}

.gs-lead-st-item:last-child {
    border-bottom: none;
}

.gs-lead-st-item:hover {
    background: #fafbfc;
}

.gs-lead-st-dot {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    flex-shrink: 0;
}

.gs-lead-st-dot-stato {
    background: #fff3cd;
    color: #856404;
}

.gs-lead-st-dot-email {
    background: #dbeafe;
    color: var(--blu);
}

.gs-lead-st-dot-chat {
    background: var(--gsl);
    color: var(--gs);
}

.gs-lead-st-dot-sys {
    background: var(--b);
    color: var(--m);
}

.gs-lead-st-body {
    flex: 1;
    min-width: 0;
}

.gs-lead-st-title {
    font-size: 11px;
    font-weight: 500;
    color: var(--t);
}

.gs-lead-st-desc {
    font-size: 10px;
    color: var(--m);
    margin-top: 1px;
    white-space: pre-wrap;
    word-break: break-word;
}

.gs-lead-st-time {
    font-size: 9px;
    color: var(--m);
    flex-shrink: 0;
    text-align: right;
    min-width: 48px;
    line-height: 1.4;
}

.gs-lead-st-link {
    font-size: 9px;
    color: var(--gs);
    cursor: pointer;
    margin-top: 2px;
    display: inline-flex;
    align-items: center;
    gap: 3px;
    border: none;
    background: none;
    padding: 0;
    font-family: inherit;
}

.gs-lead-st-link:hover {
    text-decoration: underline;
}

.gs-lead-st-empty {
    padding: 16px 14px;
    font-size: 10px;
    color: var(--m);
}

.gs-lead-st-loading {
    padding: 16px 14px;
    text-align: center;
    font-size: 10px;
    color: var(--m);
}

.gs-lead-en-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}

@media (max-width: 575.98px) {
    .gs-lead-en-grid {
        grid-template-columns: 1fr;
    }
}

.gs-lead-en-item {
    text-align: center;
    padding: 12px 6px;
    background: var(--bg);
    border-radius: 8px;
}

.gs-lead-en-val {
    font-size: 20px;
    font-weight: 700;
    color: var(--gs);
}

.gs-lead-en-val-sm {
    font-size: 11px;
    font-weight: 700;
    color: var(--gs);
    line-height: 1.25;
    word-break: break-all;
}

.gs-lead-en-unit {
    font-size: 10px;
    color: var(--m);
}

.gs-lead-en-label {
    font-size: 8px;
    color: var(--m);
    margin-top: 2px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.gs-lead-en-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.gs-lead-en-hint {
    font-size: 10px;
    color: var(--m);
    margin-bottom: 12px;
}

/* === LEAD ALLEGATI COMPATTI === */
.gs-lead-att-card .gs-lead-card-body {
    padding: 0;
}

.gs-lead-att-drop {
    border: 2px dashed var(--b);
    border-radius: var(--r);
    padding: 12px;
    margin: 10px 14px 8px;
    text-align: center;
    cursor: default;
    transition: all 0.15s;
}

.gs-lead-att-drop:hover {
    border-color: var(--gs);
    background: var(--gsl);
}

.gs-lead-att-drop-icon {
    font-size: 18px;
    color: var(--m);
}

.gs-lead-att-drop-text {
    font-size: 10px;
    color: var(--m);
    margin-top: 3px;
}

.gs-lead-att-list {
    border-top: 1px solid var(--b);
}

.gs-lead-att-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 14px;
    border-bottom: 1px solid var(--b);
    transition: background 0.1s;
}

.gs-lead-att-row:last-child {
    border-bottom: none;
}

.gs-lead-att-row:hover {
    background: #fafbfc;
}

.gs-lead-att-icon {
    width: 24px;
    height: 24px;
    border-radius: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    font-weight: 700;
    flex-shrink: 0;
}

.gs-lead-att-icon-pdf {
    background: #fce4ec;
    color: #c62828;
}

.gs-lead-att-icon-img {
    background: #e3f2fd;
    color: #1565c0;
}

.gs-lead-att-icon-doc {
    background: #fff3e0;
    color: #e65100;
}

.gs-lead-att-name {
    font-size: 11px;
    font-weight: 500;
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--t);
}

.gs-lead-att-tag {
    font-size: 8px;
    padding: 2px 6px;
    border-radius: 10px;
    background: var(--bg);
    color: var(--m);
    flex-shrink: 0;
}

.gs-lead-att-size {
    font-size: 9px;
    color: var(--m);
    flex-shrink: 0;
}

.gs-lead-att-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 14px 12px;
    flex-wrap: wrap;
}

.gs-lead-att-meta {
    font-size: 10px;
    color: var(--m);
    min-width: 0;
}

.gs-lead-att-btn {
    font-size: 9px;
    padding: 4px 10px;
    border: 1px solid var(--b);
    border-radius: 4px;
    background: var(--c);
    cursor: pointer;
    color: var(--m);
    transition: all 0.1s;
    font-family: inherit;
    flex-shrink: 0;
}

.gs-lead-att-btn:hover:not(:disabled) {
    border-color: var(--gs);
    color: var(--gs);
}

.gs-lead-att-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.gs-lead-energia-stack {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* Dettaglio hub: note multilinea, modale pipeline Bootstrap */
.gs-lead-pre-wrap {
    white-space: pre-wrap;
}

.gs-lead-bs-modal-backdrop {
    background: rgba(0, 0, 0, 0.45);
    z-index: 1060;
}

/* === SCRIPT 08 (10/04/2026): layout row + work/panel gap + sidebar grip + expand DX + lead tabs + dettaglio v13 === */

@media (min-width: 992px) {
    .gs-app-content-row > .gs-main.gs-main-layout {
        margin-left: 0 !important;
    }
}

.gs-content-wrapper {
    flex: 1 1 auto;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    overflow: hidden;
    min-height: 0;
    min-width: 0;
    gap: 0;
    margin: 0;
    padding: 0;
}

.gs-sidebar-host {
    display: contents;
}

@media (min-width: 992px) {
    .gs-sidebar-host {
        display: flex;
        flex-direction: row;
        align-items: stretch;
        flex-shrink: 0;
        min-height: 0;
    }
}

.gs-work-area-pad {
    max-width: 100%;
}

/* Grip tra sidebar e main (desktop) */
.gs-sidebar-grip {
    width: 8px;
    flex-shrink: 0;
    align-self: stretch;
    background: var(--gs-bg, #f0f2f5);
    cursor: col-resize;
    position: relative;
    border-right: 1px solid var(--b, #e9ecef);
    transition: background 0.15s ease;
    z-index: 25;
}

.gs-sidebar-grip:hover {
    background: var(--gs-gray-300);
}

.gs-sidebar-grip::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 3px;
    height: 36px;
    background: var(--gs-gray-400);
    border-radius: 2px;
}

.gs-sidebar-grip:hover::after {
    background: var(--gs-gray-500);
}

/* Pannello DX: tab expand quando chiuso */
.gs-panel-expand-btn {
    position: fixed;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 24px;
    height: 48px;
    padding: 0;
    background: var(--c, #fff);
    border: 1px solid var(--b, #e9ecef);
    border-right: none;
    border-radius: 6px 0 0 6px;
    cursor: pointer;
    display: none;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    color: var(--m, #6c757d);
    box-shadow: var(--sh, 0 1px 3px rgba(0, 0, 0, 0.06));
    z-index: 1045;
}

.gs-panel-expand-btn:hover {
    background: var(--gsl, #d4e8de);
    color: var(--gs, #1a7a5a);
}

.gs-panel-expand-btn.show {
    display: flex;
}

/* Lead work tabs */
.gs-lead-wtabs {
    display: flex;
    gap: 0;
    margin-bottom: 20px;
    border-bottom: 2px solid var(--b, #e9ecef);
}

.gs-lead-wtab {
    padding: 8px 20px;
    font-size: 11px;
    font-weight: 600;
    color: var(--m, #6c757d);
    cursor: pointer;
    border: none;
    background: transparent;
    font-family: inherit;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    transition: color 0.15s ease, border-color 0.15s ease;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.gs-lead-wtab:hover {
    color: var(--t, #2d3436);
}

.gs-lead-wtab.active {
    color: var(--gs, #1a7a5a);
    border-bottom-color: var(--gs, #1a7a5a);
}

.gs-lead-wtab i {
    font-size: 13px;
}

/* Dettaglio tab: griglia hub a colonna singola */
.gs-detail-main-grid.gs-det-tab-root {
    grid-template-columns: 1fr;
}

/* === LEAD DETTAGLIO TAB (v13) === */
.gs-det-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 16px;
}

@media (max-width: 900px) {
    .gs-det-layout {
        grid-template-columns: 1fr;
    }
}

.gs-det-full {
    grid-column: 1 / -1;
}

.gs-det-section {
    background: var(--c, #fff);
    border-radius: var(--r, 10px);
    box-shadow: var(--sh, 0 1px 3px rgba(0, 0, 0, 0.06));
    overflow: hidden;
    border: 1px solid var(--b, #e9ecef);
    transition: box-shadow 0.15s ease;
}

.gs-det-section:hover {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.gs-det-section-editing {
    box-shadow: 0 0 0 2px rgba(26, 122, 90, 0.2);
}

.gs-det-header {
    padding: 12px 16px;
    display: flex;
    align-items: center;
    gap: 10px;
    border-bottom: 1px solid var(--b, #e9ecef);
    background: linear-gradient(135deg, #fafbfc 0%, #fff 100%);
}

.gs-det-header-icon {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    flex-shrink: 0;
}

.gs-det-header-icon-green {
    background: var(--gsl, #d4e8de);
    color: var(--gs, #1a7a5a);
}

.gs-det-header-icon-blue {
    background: #dbeafe;
    color: var(--blu, #4a90d9);
}

.gs-det-header-icon-purple {
    background: #e8daef;
    color: var(--pur, #7c5cbf);
}

.gs-det-header-icon-amber {
    background: #fef3c7;
    color: #d97706;
}

.gs-det-header-icon-teal {
    background: #ccfbf1;
    color: #0d9488;
}

.gs-det-header-icon-rose {
    background: #ffe4e6;
    color: #e11d48;
}

.gs-det-header-title {
    font-size: 12px;
    font-weight: 600;
    color: var(--t, #2d3436);
}

.gs-det-header-sub {
    font-size: 9px;
    color: var(--m, #6c757d);
    margin-top: 1px;
}

.gs-det-header-edit {
    margin-left: auto;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    border: 1px solid transparent;
    background: transparent;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--m, #6c757d);
    transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
    font-size: 13px;
}

.gs-det-header-edit:hover {
    border-color: var(--gs, #1a7a5a);
    color: var(--gs, #1a7a5a);
    background: var(--gsl, #d4e8de);
}

.gs-det-body {
    padding: 16px;
}

.gs-det-fields {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px 20px;
}

@media (max-width: 700px) {
    .gs-det-fields {
        grid-template-columns: 1fr 1fr;
    }
}

.gs-det-field-label {
    font-size: 8px;
    color: var(--m, #6c757d);
    text-transform: uppercase;
    letter-spacing: 0.6px;
    font-weight: 600;
    margin-bottom: 4px;
}

.gs-det-field-value {
    font-size: 13px;
    font-weight: 500;
    color: var(--t, #2d3436);
    padding: 6px 0;
    border-bottom: 1px solid transparent;
    transition: border-color 0.15s ease;
}

.gs-det-field-value:hover {
    border-bottom-color: var(--b, #e9ecef);
}

.gs-det-field-value-empty {
    color: #cbd5e1;
    font-style: italic;
    font-weight: 400;
}

.gs-det-field-value a {
    color: var(--gs, #1a7a5a);
    text-decoration: none;
    font-weight: 500;
}

.gs-det-field-value a:hover {
    text-decoration: underline;
}

.gs-det-punteggio-val {
    font-weight: 700;
    color: var(--acc, #e8a838);
}

.gs-det-tag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    border-radius: 12px;
    font-size: 10px;
    font-weight: 600;
}

.gs-det-tag-green {
    background: var(--gsl, #d4e8de);
    color: var(--gsd, #145e45);
}

.gs-det-tag-amber {
    background: #fef3c7;
    color: #92400e;
}

.gs-det-tag-blue {
    background: #dbeafe;
    color: #1e40af;
}

.gs-det-actions {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
}

@media (max-width: 800px) {
    .gs-det-actions {
        grid-template-columns: 1fr 1fr;
    }
}

.gs-det-action {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 18px 10px;
    border: 1px solid var(--b, #e9ecef);
    border-radius: var(--r, 10px);
    cursor: pointer;
    transition: border-color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
    background: var(--c, #fff);
    text-align: center;
    position: relative;
    overflow: hidden;
}

.gs-det-action::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    transition: opacity 0.15s ease;
    opacity: 0;
}

.gs-det-action:hover {
    border-color: var(--gs, #1a7a5a);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.gs-det-action:hover::before {
    opacity: 1;
}

.gs-det-action-icon {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    transition: transform 0.15s ease;
}

.gs-det-action:hover .gs-det-action-icon {
    transform: scale(1.08);
}

.gs-det-action-prev .gs-det-action-icon {
    background: var(--gsl, #d4e8de);
    color: var(--gs, #1a7a5a);
}

.gs-det-action-prev::before {
    background: var(--gs, #1a7a5a);
}

.gs-det-action-sopr .gs-det-action-icon {
    background: #dbeafe;
    color: var(--blu, #4a90d9);
}

.gs-det-action-sopr::before {
    background: var(--blu, #4a90d9);
}

.gs-det-action-boll .gs-det-action-icon {
    background: #fef3c7;
    color: #d97706;
}

.gs-det-action-boll::before {
    background: var(--acc, #e8a838);
}

.gs-det-action-comm .gs-det-action-icon {
    background: #e8daef;
    color: var(--pur, #7c5cbf);
}

.gs-det-action-comm::before {
    background: var(--pur, #7c5cbf);
}

.gs-det-action-text {
    font-size: 11px;
    font-weight: 600;
    color: var(--t, #2d3436);
}

.gs-det-action-sub {
    font-size: 9px;
    color: var(--m, #6c757d);
    line-height: 1.3;
}

.gs-det-note {
    font-size: 12px;
    color: var(--t, #2d3436);
    line-height: 1.7;
    padding: 4px 0;
}

.gs-det-note-meta {
    font-size: 10px;
    color: var(--m, #6c757d);
    padding: 4px 8px;
    background: var(--gs-bg, #f0f2f5);
    border-radius: 6px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-bottom: 8px;
}

/* === SCRIPT 09: dettaglio contatti cliccabili + KPI === */
.gs-det-field-link {
    color: var(--gs, #1a7a5a);
    text-decoration: none;
    font-weight: 500;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 8px;
    border-radius: 6px;
    transition: background 0.15s ease, color 0.15s ease;
}

.gs-det-field-link:hover {
    background: var(--gsl, #d4e8de);
    color: var(--gsd, #145e45);
    text-decoration: none;
}

.gs-det-field-link i {
    font-size: 12px;
}

.gs-det-field-link-btn {
    border: none;
    background: transparent;
    font-family: inherit;
    font-size: inherit;
    text-align: left;
    width: 100%;
    max-width: 100%;
}

.gs-det-wa-icon {
    color: var(--suc, #28a745);
}

.gs-lead-kpi-chip-link {
    cursor: pointer;
}

.gs-lead-kpi-chip-link:hover {
    border-color: var(--gs, #1a7a5a);
    background: var(--gsl, #d4e8de);
}

a.gs-lead-kpi-chip-link:hover {
    color: inherit;
}

/* === SCRIPT 11 (10/04/2026): autocomplete comuni (compose inline gs-comp-* rimosso in CRM-29-B) === */

/* --- Autocomplete (ComuneAutocomplete + generico) --- */
.gs-autocomplete .gs-autocomplete-input.gs-autocomplete-input-open {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

.gs-autocomplete .gs-autocomplete-input {
    border-radius: 6px;
}

.gs-autocomplete .gs-autocomplete-dropdown {
    max-height: 250px;
    overflow-y: auto;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    z-index: 50;
}

.gs-autocomplete .dropdown-item.active {
    background: var(--gs);
    color: var(--c);
}

/* --- Pannello thread AI --- */
.gs-ai-comm-root {
    border-top: 1px solid var(--b);
    background: var(--c);
}

.gs-ai-comm-root--timeline {
    border-top: none;
    flex: 1 1 auto;
    min-height: 0;
}

.gs-ai-comm-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
    padding: 8px 12px;
    border-bottom: 1px solid var(--b);
    flex-shrink: 0;
}

.gs-ai-comm-title {
    font-size: 11px;
    font-weight: 700;
    color: var(--t);
}

.gs-ai-comm-meta {
    font-size: 9px;
    color: var(--m);
    margin-top: 2px;
}

.gs-ai-comm-dot {
    margin: 0 4px;
}

.gs-ai-comm-score {
    position: relative;
    width: 40px;
    height: 40px;
    flex-shrink: 0;
}

.gs-ai-comm-score svg {
    width: 40px;
    height: 40px;
    transform: rotate(-90deg);
}

.gs-ai-comm-score-val {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 700;
    color: var(--t);
}

.gs-ai-comm-thread {
    padding: 8px 10px 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.gs-ai-comm-row {
    display: flex;
    width: 100%;
}

.gs-ai-comm-row--in {
    justify-content: flex-start;
}

.gs-ai-comm-row--out {
    justify-content: flex-end;
}

.gs-ai-comm-bubble {
    max-width: 92%;
    padding: 8px 10px;
    border-radius: 10px;
    font-size: 10px;
    line-height: 1.35;
}

.gs-ai-comm-row--in .gs-ai-comm-bubble {
    background: var(--bg);
    border: 1px solid var(--b);
    color: var(--t);
}

.gs-ai-comm-row--out .gs-ai-comm-bubble {
    background: var(--gs-purple-light);
    border: 1px solid var(--gs-purple);
    color: var(--t);
}

.gs-ai-comm-bubble-time {
    font-size: 8px;
    color: var(--m);
    margin-top: 4px;
}

.gs-ai-comm-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 8px 12px;
    border-top: 1px solid var(--b);
    background: var(--bg);
    flex-shrink: 0;
}

.gs-ai-comm-act {
    flex: 1;
    min-width: 72px;
    padding: 5px 8px;
    font-size: 9px;
    font-weight: 600;
    border-radius: 5px;
    border: 1px solid var(--b);
    background: var(--c);
    color: var(--t);
    cursor: pointer;
}

.gs-ai-comm-act:hover {
    border-color: var(--gs-purple);
    color: var(--gs-purple);
}

.gs-ai-comm-act--stop {
    border-color: var(--gs-danger);
    color: var(--gs-danger);
}

/* --- Ticker sessioni AI live --- */
.gs-ai-ticker-bar {
    flex-shrink: 0;
    border-top: 1px solid var(--b);
    background: linear-gradient(90deg, var(--gs-purple-light), var(--c));
    padding: 4px 10px;
}

.gs-ai-ticker-btn {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    border: none;
    background: transparent;
    cursor: pointer;
    text-align: left;
    font-family: inherit;
    padding: 2px 0;
}

.gs-ai-ticker-btn:hover .gs-ai-ticker-txt {
    text-decoration: underline;
}

.gs-ai-ticker-ico {
    font-size: 14px;
    flex-shrink: 0;
}

.gs-ai-ticker-txt {
    flex: 1;
    font-size: 11px;
    font-weight: 600;
    color: var(--gs-purple-dark);
}

.gs-ai-ticker-more {
    font-size: 10px;
    font-weight: 700;
    color: var(--gs-purple);
    flex-shrink: 0;
}

/* --- LucioAI: conversazione AI (BotSintesi, mockup v12) --- */
.gs-ai-conv-block {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--lucio-ai-divider-soft);
}

.gs-ai-conv-section-title {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--lucio-ai-amber-mid);
    letter-spacing: 0.5px;
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.gs-ai-conv-card {
    padding: 14px 16px;
    border-radius: 10px;
    border: 1px solid var(--lucio-ai-divider-soft);
    background: var(--lucio-ai-bench-card);
}

.gs-ai-conv-chat-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    font-size: 12px;
    font-weight: 700;
    color: var(--lucio-ai-dark);
}

.gs-ai-conv-chat-head > .bi {
    color: var(--lucio-ai-primary);
    font-size: 14px;
}

.gs-ai-conv-chat-title {
    margin-right: 2px;
}

.gs-ai-conv-badge {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 9px;
    font-weight: 600;
    padding: 2px 9px;
    border-radius: 12px;
}

.gs-ai-conv-badge-teal {
    background: var(--gs-teal-light);
    color: var(--gs-teal-dark);
}

.gs-ai-conv-badge-lucio {
    background: var(--gs-purple-light);
    color: var(--gs-purple-dark);
}

.gs-ai-conv-badge-sess {
    background: var(--gs-info-light);
    color: var(--gs-info-dark);
}

.gs-ai-conv-meta-line {
    font-size: 10px;
    color: var(--lucio-ai-amber-mid);
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    margin-bottom: 10px;
}

.gs-ai-conv-meta-line strong {
    color: var(--lucio-ai-dark);
    font-weight: 600;
}

.gs-ai-conv-preview-text {
    font-size: 11px;
    line-height: 1.65;
    color: var(--lucio-ai-amber-mid);
    white-space: pre-wrap;
}

.gs-ai-conv-expand-link {
    margin-top: 8px;
    border: none;
    background: none;
    padding: 0;
    font-size: 11px;
    font-weight: 600;
    color: var(--lucio-ai-primary);
    cursor: pointer;
    font-family: inherit;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.gs-ai-conv-expand-link:hover {
    text-decoration: underline;
}

/* --- Lead: selezione settore preventivo (LEAD-FLOW gs-lead-prev-sel-*) --- */
.gs-lead-prev-sel-wrap {
    max-width: min(960px, 96vw);
    width: 100%;
}

.gs-lead-prev-sel-host {
    max-height: min(90vh, 900px);
    display: flex;
    flex-direction: column;
}

.gs-lead-prev-sel-hdr {
    align-items: flex-start;
    gap: 12px;
}

.gs-lead-prev-sel-title {
    font-weight: 700;
    font-size: 1rem;
    color: var(--gs-gray-800);
}

.gs-lead-prev-sel-sub {
    font-size: var(--gs-font-sm, 0.8125rem);
    color: var(--gs-gray-600);
    margin-top: 4px;
}

.gs-lead-prev-sel-body {
    flex: 1;
    min-height: 120px;
    overflow: auto;
}

.gs-lead-prev-sel-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 10px;
}

.gs-lead-prev-sel-tile {
    border: 1px solid var(--gs-card-border);
    border-radius: var(--gs-card-radius-sm, 8px);
    background: var(--gs-card-bg);
    padding: 12px 14px;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
    font-family: inherit;
}

.gs-lead-prev-sel-tile:hover {
    border-color: var(--gs-primary);
    box-shadow: var(--lucio-ai-tool-hover-shadow);
    transform: translateY(-2px);
}

.gs-lead-prev-sel-tile--on {
    border: 2px solid var(--gs-primary);
    background: var(--lucio-ai-footer-tint);
    box-shadow: var(--lucio-ai-tool-hover-shadow);
}

.gs-lead-prev-sel-tile-h {
    display: flex;
    gap: 12px;
    align-items: flex-start;
}

.gs-lead-prev-sel-ic {
    flex-shrink: 0;
}

.gs-lead-prev-sel-name {
    font-weight: 600;
    font-size: 0.9rem;
    color: var(--gs-gray-800);
}

.gs-lead-prev-sel-desc {
    font-size: var(--gs-font-xs, 0.75rem);
    color: var(--gs-gray-600);
    margin-top: 4px;
    line-height: 1.4;
}

/* === Ordine cliente dettaglio (21-UI) — prefisso gs-ord- === */
.gs-ord-header-card {
    border: 1px solid var(--gs-card-border);
    border-radius: var(--gs-card-radius-sm);
    background: var(--gs-card-bg);
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}

.gs-ord-header-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.5rem;
    font-size: var(--gs-font-sm);
    color: var(--gs-gray-600);
}

.gs-ord-header-meta strong {
    color: var(--gs-gray-800);
    font-weight: 600;
}

.gs-ord-tabs.nav-tabs {
    border-bottom-color: var(--gs-border);
}

.gs-ord-tabs .nav-link {
    color: var(--gs-gray-600);
    border: none;
    border-bottom: 2px solid transparent;
    background: transparent;
}

.gs-ord-tabs .nav-link:hover {
    color: var(--gs-primary);
    border-bottom-color: var(--gs-gray-300);
}

.gs-ord-tabs .nav-link.active {
    color: var(--gs-primary);
    font-weight: 600;
    border-bottom-color: var(--gs-primary);
}

.gs-ord-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
    margin-bottom: 0.75rem;
}

.gs-ord-select-stato {
    width: auto;
    min-width: 11rem;
}

.gs-ord-stock-ok {
    color: var(--gs-primary-600);
    font-size: 1.1rem;
}

.gs-ord-stock-warn {
    color: var(--gs-amber);
    font-size: 1.1rem;
}

.gs-ord-stock-bad {
    color: var(--gs-danger);
    font-size: 1.1rem;
}

.gs-ord-stock-unknown {
    color: var(--gs-gray-400);
}

.gs-ord-commessa-card {
    border: 1px solid var(--gs-card-border);
    border-radius: var(--gs-card-radius-sm);
    padding: 1rem;
    margin-bottom: 0.75rem;
    background: var(--gs-card-bg);
}

.gs-ord-commessa-card h4 {
    font-size: var(--gs-font-md);
    margin: 0 0 0.35rem;
}

.gs-ord-section-title {
    font-size: var(--gs-font-md);
    font-weight: 600;
    margin: 1.25rem 0 0.5rem;
    color: var(--gs-gray-800);
}

/* Dialog ordine fornitore da carenze (21-UI-B) — gs-mag- */
.gs-mag-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1050;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 2rem 1rem;
    overflow-y: auto;
    background-color: rgba(0, 0, 0, 0.45);
}

.gs-mag-modal-dialog {
    margin: 0;
    width: 100%;
    max-width: 1140px;
}

.gs-mag-carenza-prezzo {
    max-width: 7rem;
}

/* Ordine fornitore dettaglio (21-UI-C) — gs-mag-of- */
.gs-mag-of-th-avanz {
    width: 7.5rem;
}

.gs-mag-of-progress.progress {
    height: 0.5rem;
}

.gs-mag-of-modal-root.modal.show.d-block {
    background-color: rgba(0, 0, 0, 0.45);
}

/* Commessa dettaglio (21-UI-D) — gs-cmm- */
.gs-cmm-stato-select {
    width: auto;
    min-width: 12rem;
}

.gs-cmm-tl-card .card-header {
    font-size: var(--gs-font-sm);
    font-weight: 600;
}

.gs-cmm-tl {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 0.25rem;
    align-items: flex-start;
    justify-content: space-between;
}

.gs-cmm-tl-step {
    flex: 1 1 0;
    min-width: 4.5rem;
    max-width: 10rem;
    text-align: center;
}

.gs-cmm-tl-dot {
    width: 0.75rem;
    height: 0.75rem;
    border-radius: 50%;
    margin: 0 auto 0.35rem;
    background: var(--gs-gray-300);
}

.gs-cmm-tl-step--done .gs-cmm-tl-dot {
    background: var(--gs-primary);
}

.gs-cmm-tl-step--current .gs-cmm-tl-dot {
    background: var(--gs-accent);
    box-shadow: 0 0 0 3px var(--gs-primary-100);
}

.gs-cmm-tl-step--pending .gs-cmm-tl-dot {
    background: var(--gs-gray-200);
}

.gs-cmm-tl-lbl {
    font-size: var(--gs-font-xs);
    color: var(--gs-gray-700);
    line-height: 1.25;
}

/* ═══ Import Fattura Fornitore (script 22-UI) — prefisso gs-imp-* ═══ */

.gs-imp-credit-alert {
    background: var(--gs-danger-light, #fef2f2);
    border: 1px solid var(--gs-danger);
    padding: 12px 16px;
    border-radius: var(--gs-radius-md, 8px);
    margin-bottom: 1rem;
}

.gs-imp-credit-alert__icon {
    font-size: 18px;
    color: var(--gs-danger);
}

.gs-imp-credit-alert__actions {
    margin-left: auto;
}

.gs-imp-field-full {
    margin-bottom: 12px;
}

.gs-imp-upload-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 0;
}

.gs-imp-dropzone {
    flex: 1;
    min-height: 48px;
    padding: 0 12px;
    border: 1px solid var(--gs-border, var(--gs-gray-200));
    border-radius: 8px;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease;
}

.gs-imp-dropzone--active {
    border-color: var(--gs-primary);
    background: var(--gs-primary-50, rgba(16, 185, 129, 0.06));
}

.gs-imp-dropzone-inner {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 48px;
}

.gs-imp-dropzone-icon {
    font-size: 24px;
    color: var(--gs-text-muted);
}

.gs-imp-dropzone-text {
    font-size: 13px;
    color: var(--gs-text-muted);
}

.gs-imp-file-input-hidden {
    position: absolute;
    width: 0.1px;
    height: 0.1px;
    opacity: 0;
    overflow: hidden;
    z-index: -1;
}

.gs-imp-upload-actions {
    margin-top: 16px;
    text-align: center;
}

.gs-imp-btn-extract {
    width: auto;
}

.gs-imp-loading-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 0;
}

.gs-imp-loading-msg {
    font-size: 13px;
}

.gs-imp-progress-track {
    flex: 1;
    max-width: 120px;
    height: 8px;
    background: var(--gs-gray-200);
    border-radius: 4px;
    overflow: hidden;
}

.gs-imp-match-progress-track {
    width: 100%;
    max-width: none;
    height: 8px;
    background: var(--gs-gray-200);
    border-radius: 0;
    overflow: hidden;
}

.gs-imp-progress-fill {
    height: 100%;
    width: var(--pct, 0%);
    border-radius: 4px;
    background: linear-gradient(90deg, var(--gs-primary-500), var(--gs-primary));
    transition: width 0.2s ease;
}

.gs-imp-spinner-sm {
    width: 20px;
    height: 20px;
}

.gs-imp-preview-wrap {
    overflow-x: auto;
    border-top: 1px solid var(--gs-border, var(--gs-gray-200));
}

.gs-imp-preview-table {
    font-size: 12px;
    margin-bottom: 0;
}

.gs-imp-preview-table th,
.gs-imp-preview-table td {
    vertical-align: middle;
    white-space: nowrap;
}

.gs-imp-preview-table td.gs-imp-td-wrap {
    white-space: normal;
    max-width: 220px;
}

.gs-imp-badge-match {
    font-size: 10px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 999px;
}

.gs-imp-badge-match--ok {
    background: var(--gs-success-light, #d1fae5);
    color: var(--gs-success-dark, #065f46);
}

.gs-imp-badge-match--new {
    background: var(--gs-warning-light, #fef3c7);
    color: var(--gs-warning-dark, #92400e);
}

.gs-imp-var-pct {
    font-size: 11px;
    font-weight: 600;
}

.gs-imp-var-pct--up {
    color: var(--gs-danger);
}

.gs-imp-var-pct--down {
    color: var(--gs-success);
}

.gs-imp-detail-panel {
    border-top: 1px solid var(--gs-border, var(--gs-gray-200));
    padding: 1rem;
}

.gs-imp-list-scroll {
    max-height: 400px;
    overflow-y: auto;
}

.gs-imp-select-cat {
    font-size: 11px;
    min-height: 28px;
}

.gs-imp-icon-btn {
    font-size: 14px;
    color: var(--gs-info);
    cursor: pointer;
}

.gs-imp-form-tight .form-control,
.gs-imp-form-tight textarea {
    font-size: 13px;
}

.gs-imp-btn-xs {
    font-size: 12px;
    padding: 4px 12px;
}

.gs-imp-testata-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 12px;
    margin-bottom: 12px;
}

.gs-imp-switch-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}

.gs-imp-result-line {
    font-size: 14px;
    margin-bottom: 4px;
}

/* Storico prezzi articolo — barre come preventivatore (--h) */
.gs-imp-sp-chart {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: flex-end;
    min-height: 120px;
    padding: 12px 0 8px;
    border-top: 1px solid var(--gs-gray-100);
    margin-top: 8px;
}

.gs-imp-sp-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    min-height: 100px;
    flex: 1 1 36px;
    min-width: 32px;
    max-width: 48px;
}

.gs-imp-sp-bar {
    width: 100%;
    max-width: 14px;
    margin: 0 auto;
    height: var(--h, 0%);
    min-height: 2px;
    border-radius: 4px 4px 2px 2px;
    background: linear-gradient(180deg, var(--gs-primary-500) 0%, var(--gs-primary) 100%);
    align-self: stretch;
}

.gs-imp-sp-lbl {
    font-size: 9px;
    color: var(--gs-gray-500);
    text-align: center;
    line-height: 1.1;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gs-imp-sp-foot {
    font-size: 11px;
    color: var(--gs-gray-500);
    margin-top: 6px;
}

/* ═══ CONFIG AI PAGE ═══
   Classi cfai-* da mockup v4 (gigasolar-config-ai-mockup-v4-fix.html).
   Solo var(--) / --cfai-* — nessun colore letterale nella sezione sotto. */

:root {
    --cfai-bg-alt: var(--gs-gray-50);
    --cfai-model-detail-bg: var(--gs-gray-50);
    --cfai-focus-ring: color-mix(in srgb, var(--gs-primary) 8%, transparent);
    --cfai-toggle-track-off: var(--gs-gray-300);
    --cfai-tag-cloud-bg: var(--gs-info-light);
    --cfai-tag-cloud-fg: var(--gs-info-dark);
}

.cfai-content {
    padding: 20px 24px;
    max-width: 1200px;
}

/* Dashboard stat row */
.cfai-stats-row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}

.cfai-stats-row--5col {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

@media (max-width: 991.98px) {
    .cfai-stats-row--5col {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .cfai-stats-row,
    .cfai-stats-row--5col {
        grid-template-columns: 1fr;
    }
}

.cfai-stat-card {
    background: var(--gs-card-bg);
    border: 1px solid var(--gs-border);
    border-radius: var(--r);
    padding: 12px 16px;
}

.cfai-stat-value {
    font-size: var(--gs-font-2xl);
    font-weight: 700;
    color: var(--gs-primary);
}

.cfai-stat-value--danger {
    color: var(--dng);
}

.cfai-stat-value--warning {
    color: var(--gs-warning);
}

.cfai-stat-value--info {
    color: var(--blu);
}

.cfai-stat-label {
    font-size: 9.5px;
    color: var(--gs-text-secondary);
    margin-top: 1px;
}

/* Tab bar */
.cfai-tabs {
    display: flex;
    gap: 0;
    border-bottom: 2px solid var(--gs-border);
    margin-bottom: 20px;
    flex-wrap: wrap;
}

.cfai-tab {
    padding: 8px 14px;
    font-size: var(--gs-font-sm);
    font-weight: 500;
    color: var(--gs-text-secondary);
    cursor: pointer;
    border: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    transition: color var(--gs-transition), border-color var(--gs-transition);
    display: inline-flex;
    align-items: center;
    gap: 4px;
    white-space: nowrap;
    background: transparent;
    font-family: inherit;
}

.cfai-tab:hover {
    color: var(--gs-text-primary);
}

.cfai-tab--active {
    color: var(--gs-primary);
    border-bottom-color: var(--gs-primary);
    font-weight: 600;
}

.cfai-tab-panel {
    display: none;
}

.cfai-tab-panel--active {
    display: block;
}

/* Card */
.cfai-card {
    background: var(--gs-card-bg);
    border-radius: var(--r);
    border: 1px solid var(--gs-border);
    padding: 20px;
    margin-bottom: 16px;
    box-shadow: var(--sh);
}

.cfai-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 14px;
    flex-wrap: wrap;
    gap: 8px;
}

.cfai-card-title {
    font-size: var(--gs-font-md);
    font-weight: 700;
}

.cfai-card-subtitle {
    font-size: var(--gs-font-xs);
    color: var(--gs-text-secondary);
    margin-top: 1px;
}

/* Table */
.cfai-table {
    width: 100%;
    border-collapse: collapse;
}

.cfai-table th {
    font-size: 9.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: var(--gs-text-secondary);
    text-align: left;
    padding: 6px 8px;
    border-bottom: 1px solid var(--gs-border);
}

.cfai-table td {
    padding: 8px;
    font-size: 11.5px;
    border-bottom: 1px solid var(--gs-border);
    vertical-align: top;
}

.cfai-table tr:last-child td {
    border-bottom: none;
}

.cfai-table select {
    padding: 4px 6px;
    border: 1px solid var(--gs-border);
    border-radius: 4px;
    font-size: 10.5px;
    font-family: inherit;
    background: var(--bg);
    width: 100%;
}

.cfai-row-muted {
    background: var(--cfai-bg-alt);
}

.cfai-row-danger {
    background: var(--gs-danger-light);
}

/* Provider row */
.cfai-prov-row {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px;
    border: 1px solid var(--gs-border);
    border-radius: 8px;
    margin-bottom: 10px;
    background: var(--gs-card-bg);
}

.cfai-prov-row--muted {
    opacity: 0.5;
}

.cfai-prov-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    flex-shrink: 0;
}

.cfai-prov-icon--cloud {
    background: var(--cfai-tag-cloud-bg);
    color: var(--cfai-tag-cloud-fg);
}

.cfai-prov-icon--local {
    background: var(--gs-amber-light);
    color: var(--gs-amber-dark);
}

.cfai-prov-info {
    flex: 1;
    min-width: 0;
}

.cfai-prov-name {
    font-size: var(--gs-font-md);
    font-weight: 700;
}

.cfai-prov-url {
    font-size: var(--gs-font-xs);
    color: var(--gs-text-secondary);
    font-family: ui-monospace, 'Cascadia Code', monospace;
}

.cfai-prov-meta {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.cfai-prov-stat {
    text-align: center;
}

.cfai-prov-stat-label {
    font-size: 10px;
    color: var(--gs-text-secondary);
}

.cfai-prov-stat-value {
    font-weight: 700;
}

.cfai-prov-status {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
}

/* Model expandable detail */
.cfai-model-detail {
    background: var(--cfai-model-detail-bg);
    padding: 12px 16px;
    border: 1px solid var(--gs-border);
    border-radius: 8px;
    margin: 6px 0 10px 0;
    display: none;
}

.cfai-model-detail.cfai-open {
    display: block;
}

.cfai-model-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

@media (max-width: 991.98px) {
    .cfai-model-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .cfai-model-grid {
        grid-template-columns: 1fr;
    }
}

.cfai-md-label {
    font-size: 9.5px;
    font-weight: 600;
    color: var(--gs-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.cfai-md-val {
    font-size: var(--gs-font-sm);
    margin-top: 2px;
}

.cfai-md-val--mono {
    font-family: ui-monospace, 'Cascadia Code', monospace;
    font-size: 11px;
}

/* Tags */
.cfai-tag {
    display: inline-flex;
    padding: 2px 7px;
    border-radius: 4px;
    font-size: 9.5px;
    font-weight: 700;
}

.cfai-tag--cloud {
    background: var(--cfai-tag-cloud-bg);
    color: var(--cfai-tag-cloud-fg);
}

.cfai-tag--local {
    background: var(--gs-amber-light);
    color: var(--gs-amber-dark);
}

.cfai-tag--ok {
    background: var(--gs-success-light);
    color: var(--gs-success-dark);
}

.cfai-tag--off {
    background: var(--gs-gray-200);
    color: var(--gs-gray-500);
}

.cfai-tag--danger {
    background: var(--gs-danger-light);
    color: var(--gs-danger-dark);
}

.cfai-tag--warning {
    background: var(--gs-warning-light);
    color: var(--gs-warning-dark);
}

/* Toggle */
.cfai-toggle {
    position: relative;
    width: 36px;
    height: 19px;
    display: inline-block;
    vertical-align: middle;
}

.cfai-toggle input {
    opacity: 0;
    width: 0;
    height: 0;
}

.cfai-toggle-slider {
    position: absolute;
    inset: 0;
    background: var(--cfai-toggle-track-off);
    border-radius: 10px;
    cursor: pointer;
    transition: background var(--gs-transition);
}

.cfai-toggle-slider::before {
    content: '';
    position: absolute;
    width: 13px;
    height: 13px;
    left: 3px;
    bottom: 3px;
    background: var(--c);
    border-radius: 50%;
    transition: transform var(--gs-transition);
}

.cfai-toggle input:checked + .cfai-toggle-slider {
    background: var(--gs-primary);
}

.cfai-toggle input:checked + .cfai-toggle-slider::before {
    transform: translateX(17px);
}

/* Progress */
.cfai-progress {
    width: 45px;
    height: 5px;
    background: var(--gs-gray-200);
    border-radius: 3px;
    display: inline-block;
    vertical-align: middle;
    margin-right: 3px;
    overflow: hidden;
}

.cfai-progress-fill {
    height: 100%;
    border-radius: 3px;
    display: block;
    background: var(--gs-primary);
}

.cfai-progress-fill--info {
    background: var(--blu);
}

.cfai-progress-fill--warn {
    background: var(--gs-amber);
}

.cfai-progress-fill--muted {
    background: var(--gs-gray-400);
}

/* Buttons */
.cfai-btn {
    padding: 6px 12px;
    border-radius: 6px;
    font-size: var(--gs-font-xs);
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    border: none;
    transition: background var(--gs-transition), color var(--gs-transition);
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.cfai-btn--primary {
    background: var(--gs-primary);
    color: var(--c);
}

.cfai-btn--primary:hover {
    background: var(--gs-primary-800);
}

.cfai-btn--outline {
    background: transparent;
    border: 1px solid var(--gs-border);
    color: var(--gs-text-primary);
}

.cfai-btn--outline:hover {
    background: var(--bg);
}

.cfai-btn--danger {
    background: var(--dng);
    color: var(--c);
    font-size: 10px;
    padding: 4px 8px;
}

/* Avatars */
.cfai-avatar {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 700;
    color: var(--c);
    flex-shrink: 0;
}

.cfai-avatar--diletta {
    background: linear-gradient(135deg, var(--gs-success), var(--gs-primary));
}

.cfai-avatar--loretta {
    background: linear-gradient(135deg, var(--gs-info-dark), var(--blu));
}

.cfai-avatar--lucio {
    background: linear-gradient(135deg, var(--gs-amber), var(--gs-warning));
}

.cfai-avatar--lux {
    background: linear-gradient(135deg, var(--gs-purple), var(--gs-purple-dark));
}

.cfai-avatar--gigasolar {
    background: linear-gradient(135deg, var(--gs-primary), var(--gs-primary-500));
}

.cfai-avatar--generic {
    background: linear-gradient(135deg, var(--gs-gray-500), var(--gs-gray-700));
    color: var(--c);
}

.cfai-text-warn--emph {
    font-weight: 700;
}

.cfai-kb-dedicati-zero {
    color: var(--dng);
    font-weight: 700;
}

.cfai-avatar img {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    object-fit: cover;
}

/* Alerts */
.cfai-alert {
    padding: 10px 14px;
    border-radius: 7px;
    font-size: var(--gs-font-sm);
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 16px;
}

.cfai-alert--warning {
    background: var(--gs-warning-light);
    border: 1px solid var(--gs-warning);
    color: var(--gs-warning-dark);
}

.cfai-alert--info {
    background: var(--gs-info-light);
    border: 1px solid var(--gs-info);
    color: var(--gs-info-dark);
}

/* Form grid */
.cfai-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 20px;
}

.cfai-form-grid--3col {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cfai-form-grid--4col {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media (max-width: 991.98px) {
    .cfai-form-grid--3col,
    .cfai-form-grid--4col {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 575.98px) {
    .cfai-form-grid,
    .cfai-form-grid--3col,
    .cfai-form-grid--4col {
        grid-template-columns: 1fr;
    }
}

.cfai-form-field {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.cfai-form-field--full {
    grid-column: 1 / -1;
}

.cfai-form-label {
    font-size: 10.5px;
    font-weight: 600;
}

.cfai-form-hint {
    font-size: 9.5px;
    color: var(--gs-text-secondary);
}

.cfai-form-input {
    padding: 7px 10px;
    border: 1px solid var(--gs-border);
    border-radius: 6px;
    font-size: var(--gs-font-sm);
    font-family: inherit;
    background: var(--bg);
    transition: border-color var(--gs-transition), box-shadow var(--gs-transition);
}

.cfai-form-input:focus {
    outline: none;
    border-color: var(--gs-primary);
    box-shadow: 0 0 0 2px var(--cfai-focus-ring);
}

.cfai-form-input--mono {
    font-family: ui-monospace, 'Cascadia Code', monospace;
    font-size: 11px;
}

/* Dots */
.cfai-dot--online {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--gs-success);
    display: inline-block;
}

.cfai-dot--offline {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--dng);
    display: inline-block;
}

.cfai-dot--disabled {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--gs-gray-400);
    display: inline-block;
}

/* Op row description */
.cfai-op-desc {
    font-size: 10px;
    color: var(--gs-text-secondary);
    margin-top: 3px;
}

.cfai-text-muted {
    color: var(--gs-gray-400);
}

.cfai-text-code {
    color: var(--gs-primary);
    font-size: 11px;
}

.cfai-text-warn {
    color: var(--gs-amber-dark);
    font-size: 11px;
}

.cfai-vault-row-inactive {
    opacity: 0.5;
}

/* ═══ IMPOSTAZIONI PAGE ═══ */
.imp-path-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    border: 1px solid var(--gs-border);
    border-radius: var(--gs-radius-sm);
    margin-bottom: 8px;
    background: var(--gs-card-bg);
    transition: border-color var(--gs-transition);
}

.imp-path-row:hover {
    border-color: var(--gs-primary);
}

.imp-path-row--muted {
    opacity: 0.6;
}

.imp-path-icon {
    width: 36px;
    height: 36px;
    min-width: 36px;
    border-radius: var(--gs-radius-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    line-height: 1;
    background: var(--gs-primary-50);
    color: var(--gs-primary);
}

.imp-path-info {
    flex: 1;
    min-width: 0;
}

.imp-path-label {
    font-size: var(--gs-font-sm);
    font-weight: 700;
    color: var(--gs-text-primary);
}

.imp-path-val {
    font-size: var(--gs-font-xs);
    font-family: ui-monospace, 'Cascadia Code', monospace;
    color: var(--gs-text-secondary);
    word-break: break-all;
}

.imp-path-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    font-size: 10px;
    color: var(--gs-text-secondary);
}

.imp-storage-mb-field {
    max-width: 96px;
}

/* ═══════════════════════════════════════════════════════════
   CRM-31-NUOVO — PREVENTIVATORE NUOVO (gs-pn-*)
   Mockup vincolante: gigasolar-preventivatore-unificato-mockup-v2.html
   Font base: 14px. Titoli: 17-18px. Label: 12px. Meta: 10-11px.
   Accento primario UI: var(--gs-accent-green) (allineato a #2d8b6e mockup).
   ═══════════════════════════════════════════════════════════ */

.gs-pn-page { background: var(--gs-bg); min-height: 100vh; font-size: 14px; color: var(--gs-text-primary); }
.gs-pn-load { text-align: center; padding: 48px 16px; }

.gs-pn-container { max-width: 1100px; margin: 0 auto; padding: 24px; }

/* Header */
.gs-pn-header { background: var(--gs-card-bg); border: 1px solid var(--gs-border); border-radius: 12px; padding: 18px 24px; margin-bottom: 20px; display: flex; align-items: center; gap: 16px; box-shadow: 0 2px 8px rgba(0,0,0,0.06); }
.gs-pn-back { font-size: 12px; color: var(--gs-accent-green); font-weight: 600; text-decoration: none; cursor: pointer; }
.gs-pn-ava { width: 48px; height: 48px; border-radius: 10px; background: var(--gs-accent-green); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 18px; font-weight: 700; flex-shrink: 0; }
.gs-pn-header .gs-pn-info { flex: 1; min-width: 0; }
.gs-pn-title { font-size: 17px; font-weight: 700; }
.gs-pn-lead-link { color: var(--gs-accent-green); text-decoration: none; font-weight: 700; }
.gs-pn-lead-link:hover { text-decoration: underline; }
.gs-pn-sub { font-size: 12px; color: var(--gs-text-secondary); margin-top: 3px; }
.gs-pn-badges { display: flex; gap: 6px; margin-top: 6px; align-items: center; flex-wrap: wrap; }
.gs-pn-badge { display: inline-block; padding: 3px 10px; border-radius: 5px; font-size: 11px; font-weight: 700; }
.gs-pn-badge--a { background: var(--gs-accent-light); color: var(--gs-accent-green); }
.gs-pn-badge--b { background: #e0f2fe; color: #0369a1; }
.gs-pn-badge--c { background: #fef3c7; color: #92400e; }
.gs-pn-badge--amb { background: var(--gs-accent-gold-light); color: var(--gs-accent-gold); display: inline-flex; align-items: center; gap: 6px; }
.gs-pn-badge--amb-add { background: transparent; border: 1px dashed var(--gs-accent-gold); color: var(--gs-accent-gold); cursor: pointer; font-size: 11px; font-weight: 600; padding: 3px 10px; border-radius: 5px; font-family: inherit; }
.gs-pn-badge--amb-add:hover { background: var(--gs-accent-gold-light); }
.gs-pn-badge-x { background: none; border: none; cursor: pointer; color: var(--gs-accent-gold); font-size: 14px; padding: 0 2px; font-family: inherit; }
.gs-pn-totale { text-align: right; }
.gs-pn-totale-val { font-size: 32px; font-weight: 700; color: var(--gs-accent-green); }
.gs-pn-totale-label { font-size: 11px; color: var(--gs-text-secondary); text-transform: uppercase; letter-spacing: 0.5px; }

/* Contesto strip */
.gs-pn-ctx { background: var(--gs-card-bg); border: 1px solid var(--gs-border); border-radius: 8px; padding: 10px 16px; margin-bottom: 16px; display: flex; align-items: center; gap: 10px; font-size: 12px; flex-wrap: wrap; }
.gs-pn-ctx-lbl { color: var(--gs-text-secondary); }
.gs-pn-ctx-val { font-weight: 600; }
.gs-pn-ctx-sep { color: var(--gs-border); }
.gs-pn-ctx-edit { margin-left: auto; font-size: 12px; color: var(--gs-accent-green); font-weight: 600; cursor: pointer; border: none; background: transparent; font-family: inherit; }

/* Area grid selezione */
.gs-pn-area-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 20px; }
.gs-pn-area-card { border: 2px solid var(--gs-border); border-radius: 10px; padding: 16px; cursor: pointer; transition: all 0.15s; position: relative; background: var(--gs-card-bg); }
.gs-pn-area-card:hover { border-color: var(--gs-accent-green); background: var(--gs-primary-bg); }
.gs-pn-area-card--sel { border-color: var(--gs-accent-green); background: var(--gs-accent-light); }
.gs-pn-area-card--sel::after { content: '✓'; position: absolute; top: 8px; right: 10px; color: var(--gs-accent-green); font-weight: 700; font-size: 16px; }
.gs-pn-area-emoji { font-size: 28px; margin-bottom: 8px; }
.gs-pn-area-name { font-size: 14px; font-weight: 700; }
.gs-pn-area-desc { font-size: 11px; color: var(--gs-text-secondary); margin-top: 3px; line-height: 1.5; }
.gs-pn-area-meta { font-size: 11px; color: var(--gs-accent-green); margin-top: 6px; font-weight: 600; }

/* Area selezionata */
.gs-pn-area-sel { display: flex; align-items: center; gap: 14px; padding: 16px 22px; background: var(--gs-accent-light); border: 2px solid var(--gs-accent-green); border-radius: 12px; margin-bottom: 20px; }
.gs-pn-area-sel-emoji { font-size: 32px; }
.gs-pn-area-sel-info { flex: 1; }
.gs-pn-area-sel-name { font-size: 18px; font-weight: 700; }
.gs-pn-area-sel-desc { font-size: 12px; color: var(--gs-text-secondary); margin-top: 3px; }
.gs-pn-area-sel-meta { font-size: 11px; color: var(--gs-accent-green); font-weight: 600; margin-top: 5px; }
.gs-pn-area-sel-btn { font-size: 12px; color: var(--gs-accent-green); font-weight: 600; background: var(--gs-card-bg); border: 1px solid var(--gs-accent-green); border-radius: 6px; padding: 6px 16px; cursor: pointer; font-family: inherit; }
.gs-pn-area-sel-btn:hover { background: var(--gs-accent-green); color: #fff; }

/* Area tabs commessa */
.gs-pn-area-tabs { display: flex; gap: 0; border-bottom: 2px solid var(--gs-border); margin-bottom: 24px; flex-wrap: wrap; }
.gs-pn-area-tab { padding: 12px 20px; font-size: 13px; font-weight: 500; color: var(--gs-text-secondary); cursor: pointer; border-bottom: 3px solid transparent; margin-bottom: -2px; display: flex; align-items: center; gap: 8px; transition: 0.15s; background: transparent; border-top: none; border-left: none; border-right: none; font-family: inherit; }
.gs-pn-area-tab:hover { color: var(--gs-text-primary); }
.gs-pn-area-tab--active { color: var(--gs-accent-green); border-bottom-color: var(--gs-accent-green); font-weight: 700; }
.gs-pn-area-tab-price { font-size: 11px; font-weight: 600; color: var(--gs-accent-green); background: var(--gs-accent-light); padding: 2px 8px; border-radius: 8px; }
.gs-pn-area-tab-dot { width: 8px; height: 8px; border-radius: 50%; }
.gs-pn-area-tab-dot--done { background: var(--gs-pn-done); }
.gs-pn-area-tab-dot--wip { background: var(--gs-accent-gold); }
.gs-pn-area-tab-dot--empty { background: var(--gs-gray-300); }
.gs-pn-add-tab { padding: 12px 16px; font-size: 13px; font-weight: 600; color: var(--gs-accent-green); cursor: pointer; display: flex; align-items: center; gap: 4px; border: none; background: transparent; font-family: inherit; }

/* Progress nodi */
.gs-pn-progress { display: flex; gap: 4px; margin-bottom: 20px; }
.gs-pn-progress-step { flex: 1; height: 5px; border-radius: 3px; }
.gs-pn-progress-step--done { background: var(--gs-pn-done); }
.gs-pn-progress-step--cur { background: var(--gs-accent-gold); }
.gs-pn-progress-step--todo { background: var(--gs-pn-todo); }

/* Nodo */
.gs-pn-nodo { background: var(--gs-card-bg); border: 1px solid var(--gs-border); border-radius: 12px; margin-bottom: 14px; overflow: hidden; transition: 0.15s; }
.gs-pn-nodo:hover { box-shadow: 0 2px 8px rgba(0,0,0,0.06); }
.gs-pn-nodo-header { padding: 16px 22px; display: flex; align-items: center; gap: 14px; cursor: pointer; border: none; width: 100%; text-align: left; background: transparent; font-family: inherit; color: inherit; }
button.gs-pn-nodo-header { background: none; border: none; text-align: left; width: 100%; outline: none; -webkit-appearance: none; font-family: inherit; font-size: inherit; color: inherit; }
button.gs-pn-nodo-header:focus { outline: none; }
.gs-pn-nodo-header--active { background: var(--gs-accent-light); }
.gs-pn-nodo-num { width: 36px; height: 36px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 700; flex-shrink: 0; color: #fff; }
.gs-pn-nodo-num--done { background: var(--gs-pn-done); }
.gs-pn-nodo-num--cur { background: var(--gs-pn-cur); }
.gs-pn-nodo-num--todo { background: var(--gs-pn-todo); color: var(--gs-text-secondary); }
.gs-pn-nodo-info { flex: 1; }
.gs-pn-nodo-name { font-size: 14px; font-weight: 700; }
.gs-pn-nodo-desc { font-size: 12px; color: var(--gs-text-secondary); margin-top: 2px; }
.gs-pn-nodo-result { text-align: right; }
.gs-pn-nodo-result-name { font-size: 12px; font-weight: 600; color: var(--gs-accent-green); }
.gs-pn-nodo-result-price { font-size: 16px; font-weight: 700; }
.gs-pn-nodo-result-pending { font-size: 12px; color: var(--gs-accent-gold); font-weight: 600; }
.gs-pn-nodo-arrow { font-size: 18px; color: var(--gs-text-secondary); transition: transform 0.2s; margin-left: 8px; }
.gs-pn-nodo--open .gs-pn-nodo-arrow { transform: rotate(180deg); }
.gs-pn-nodo-body { padding: 20px 22px; border-top: 1px solid var(--gs-border); background: #fafbfc; }

/* Opzioni */
.gs-pn-opzioni { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; margin-bottom: 16px; }
.gs-pn-opzione { border: 2px solid var(--gs-border); border-radius: 8px; padding: 16px; cursor: pointer; transition: 0.15s; display: flex; align-items: flex-start; gap: 12px; background: var(--gs-card-bg); }
.gs-pn-opzione:hover { border-color: var(--gs-accent-green); background: var(--gs-primary-bg); }
.gs-pn-opzione--sel { border-color: var(--gs-accent-green); background: var(--gs-accent-light); }
.gs-pn-opzione-radio { width: 20px; height: 20px; border-radius: 50%; border: 2px solid var(--gs-border); flex-shrink: 0; margin-top: 2px; display: flex; align-items: center; justify-content: center; }
.gs-pn-opzione--sel .gs-pn-opzione-radio { border-color: var(--gs-accent-green); }
.gs-pn-opzione--sel .gs-pn-opzione-radio::after { content: ''; width: 12px; height: 12px; border-radius: 50%; background: var(--gs-accent-green); }
.gs-pn-opzione-info { flex: 1; min-width: 0; }
.gs-pn-opzione-name { font-size: 13px; font-weight: 700; }
.gs-pn-opzione-desc { font-size: 11px; color: var(--gs-text-secondary); margin-top: 3px; line-height: 1.5; }
.gs-pn-opzione-tags { display: flex; gap: 4px; margin-top: 8px; flex-wrap: wrap; }
.gs-pn-opzione-tag { font-size: 10px; padding: 2px 8px; border-radius: 4px; font-weight: 600; }
.gs-pn-opzione-tag--brand { background: #e0f2fe; color: #0369a1; }
.gs-pn-opzione-tag--eff { background: #d1fae5; color: #065f46; }
.gs-pn-opzione-tag--best { background: var(--gs-accent-gold-light); color: var(--gs-accent-gold); }
.gs-pn-opzione-tag--ponte { background: #fef3c7; color: #92400e; }
.gs-pn-opzione-price { text-align: right; flex-shrink: 0; min-width: 90px; }
.gs-pn-opzione-price-val { font-size: 16px; font-weight: 700; color: var(--gs-accent-green); }
.gs-pn-opzione-price-unit { font-size: 10px; color: var(--gs-text-secondary); }
.gs-pn-opzione-wrap { display: flex; flex-direction: column; gap: 8px; }
.gs-pn-opz-detail { border: 1px solid var(--gs-border); border-radius: 8px; padding: 12px; background: var(--gs-card-bg); }
.gs-pn-opz-specs-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 10px; }
.gs-pn-opz-spec-item { border: 1px solid var(--gs-border); border-radius: 6px; padding: 6px 8px; background: var(--gs-bg); display: flex; flex-direction: column; gap: 2px; }
.gs-pn-opz-spec-item small { color: var(--gs-text-secondary); font-size: 10px; }
.gs-pn-opz-spec-item b { color: var(--gs-text-primary); font-size: 12px; }
.gs-pn-opz-pricing-row { display: flex; flex-wrap: wrap; gap: 12px; font-size: 12px; margin-bottom: 8px; }
.gs-pn-opz-pricing-row b { color: var(--gs-accent-green); }
.gs-pn-opz-extra-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 6px; }
.gs-pn-badge-stock-ok,
.gs-pn-badge-stock-low,
.gs-pn-badge-stock-no,
.gs-pn-badge-margin { display: inline-flex; align-items: center; padding: 3px 8px; border-radius: 999px; font-size: 11px; font-weight: 600; border: 1px solid transparent; }
.gs-pn-badge-stock-ok { background: var(--gs-accent-light); color: var(--gs-accent-green); border-color: var(--gs-accent-green); }
.gs-pn-badge-stock-low { background: var(--gs-accent-gold-light); color: var(--gs-accent-gold); border-color: var(--gs-accent-gold-border); }
.gs-pn-badge-stock-no { background: var(--gs-danger-light); color: var(--gs-danger); border-color: var(--gs-danger); }
.gs-pn-badge-margin { background: var(--gs-prev-info-bg); color: var(--gs-text-primary); border-color: var(--gs-prev-info-border); }
.gs-pn-opz-margin-bar { height: 8px; width: 160px; border-radius: 999px; background: var(--gs-border); overflow: hidden; }
.gs-pn-opz-margin-bar-fill { height: 100%; border-radius: 999px; }
.gs-pn-opz-margin-bar-fill--ok { background: var(--gs-accent-green); }
.gs-pn-opz-margin-bar-fill--mid { background: var(--gs-accent-gold); }
.gs-pn-opz-margin-bar-fill--low { background: var(--gs-danger); }
.gs-pn-opz-supplier { font-size: 12px; color: var(--gs-text-secondary); }

/* Quantità */
.gs-pn-qty { display: flex; align-items: center; gap: 12px; padding: 12px 16px; background: var(--gs-card-bg); border: 1px solid var(--gs-border); border-radius: 8px; margin-bottom: 12px; }
.gs-pn-qty-label { font-size: 12px; font-weight: 600; flex: 1; }
.gs-pn-qty-ctrl { display: flex; align-items: center; border: 1px solid var(--gs-border); border-radius: 6px; overflow: hidden; }
.gs-pn-qty-btn { width: 36px; height: 36px; border: none; background: var(--gs-card-bg); cursor: pointer; font-size: 18px; font-weight: 600; color: var(--gs-accent-green); display: flex; align-items: center; justify-content: center; font-family: inherit; }
.gs-pn-qty-btn:hover { background: var(--gs-accent-light); }
.gs-pn-qty-val { width: 56px; height: 36px; text-align: center; border: none; border-left: 1px solid var(--gs-border); border-right: 1px solid var(--gs-border); font-size: 16px; font-weight: 700; font-family: inherit; }
.gs-pn-qty-calc { font-size: 13px; color: var(--gs-accent-green); font-weight: 700; margin-left: 8px; }

/* Ponte */
.gs-pn-ponte { background: var(--gs-accent-gold-light); border: 1px solid var(--gs-accent-gold-border); border-radius: 8px; padding: 12px 16px; margin-top: 12px; font-size: 12px; display: flex; align-items: center; gap: 10px; }
.gs-pn-ponte b { color: var(--gs-accent-gold); }

/* Navigazione nodi */
.gs-pn-nodo-nav { display: flex; justify-content: space-between; margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--gs-border); }
.gs-pn-nodo-nav-btn { padding: 8px 16px; border-radius: 8px; font-size: 12px; font-weight: 600; cursor: pointer; display: flex; align-items: center; gap: 6px; font-family: inherit; }
.gs-pn-nodo-nav-btn--prev { background: transparent; border: 1px solid var(--gs-border); color: var(--gs-text-primary); }
.gs-pn-nodo-nav-btn--next { background: var(--gs-accent-green); color: #fff; border: none; }
.gs-pn-nodo-nav-btn--next:hover { background: var(--gs-accent-hover); }

/* LucioAI */
.gs-pn-lucio { background: var(--gs-accent-gold-light); border: 1px solid var(--gs-accent-gold-border); border-radius: 8px; padding: 10px 16px; font-size: 12px; display: flex; align-items: center; gap: 10px; margin-bottom: 16px; line-height: 1.6; }
.gs-pn-lucio-ic { width: 28px; height: 28px; border-radius: 6px; background: linear-gradient(135deg, var(--gs-lucio-gradient-start), var(--gs-lucio-gradient-end)); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; flex-shrink: 0; }
.gs-pn-lucio b { color: var(--gs-accent-gold); }
.gs-pn-lucio-hint { background: var(--gs-accent-gold-light); border: 1px solid var(--gs-accent-gold-border); border-radius: 6px; padding: 8px 14px; font-size: 11px; margin-bottom: 16px; display: flex; align-items: center; gap: 8px; }
.gs-pn-lucio-hint-ic { width: 22px; height: 22px; border-radius: 5px; background: linear-gradient(135deg, var(--gs-lucio-gradient-start), var(--gs-lucio-gradient-end)); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 9px; font-weight: 700; flex-shrink: 0; }

/* Summary bar */
.gs-pn-summary { background: var(--gs-card-bg); border: 1px solid var(--gs-border); border-radius: 12px; padding: 16px 22px; display: flex; align-items: center; gap: 20px; position: sticky; bottom: 20px; box-shadow: 0 -2px 12px rgba(0,0,0,0.08); z-index: 5; margin-top: 24px; }
.gs-pn-summary-items { flex: 1; display: flex; gap: 24px; align-items: center; flex-wrap: wrap; }
.gs-pn-summary-item { display: flex; flex-direction: column; }
.gs-pn-summary-item b { font-size: 15px; }
.gs-pn-summary-item small { font-size: 10px; color: var(--gs-text-secondary); }
.gs-pn-summary-total { font-size: 28px; font-weight: 700; color: var(--gs-accent-green); }
.gs-pn-summary-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.gs-pn-btn { padding: 9px 18px; border-radius: 8px; font-size: 13px; font-weight: 600; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; transition: 0.15s; font-family: inherit; }
.gs-pn-btn--primary { background: var(--gs-accent-green); color: #fff; border: none; }
.gs-pn-btn--primary:hover { background: var(--gs-accent-hover); }
.gs-pn-btn--outline { background: transparent; border: 1px solid var(--gs-border); color: var(--gs-text-primary); }
.gs-pn-btn--gold { background: var(--gs-accent-gold); color: #fff; border: none; }
.gs-pn-btn--gold:hover { background: #d4941f; }

/* Sezioni collassabili */
.gs-pn-section { background: var(--gs-card-bg); border: 1px solid var(--gs-border); border-radius: 12px; margin-bottom: 16px; }
.gs-pn-section-h { padding: 14px 22px; font-size: 14px; font-weight: 600; cursor: pointer; display: flex; align-items: center; gap: 8px; list-style: none; }
.gs-pn-section-h::-webkit-details-marker { display: none; }
.gs-pn-section-edit { margin-left: auto; font-size: 12px; color: var(--gs-accent-green); font-weight: 500; }
.gs-pn-section-body { padding: 0 22px 20px; }

/* Riepilogo commessa */
.gs-pn-comm-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 16px; }
.gs-pn-comm-stat { background: var(--gs-card-bg); border: 1px solid var(--gs-border); border-radius: 8px; padding: 14px; text-align: center; }
.gs-pn-comm-stat-val { font-size: 20px; font-weight: 700; }
.gs-pn-comm-stat-val--accent { color: var(--gs-accent-green); }
.gs-pn-comm-stat-val--green { color: var(--gs-pn-done); }
.gs-pn-comm-stat-label { font-size: 10px; color: var(--gs-text-secondary); margin-top: 2px; text-transform: uppercase; letter-spacing: 0.3px; }

/* Progetto */
.gs-pn-proj-grid { display: grid; grid-template-columns: 240px 1fr; gap: 16px; margin-bottom: 20px; }
.gs-pn-proj-sidebar { background: var(--gs-card-bg); border: 1px solid var(--gs-border); border-radius: 12px; padding: 16px; }
.gs-pn-proj-floor { padding: 8px 12px; border-radius: 6px; cursor: pointer; margin-bottom: 4px; font-size: 13px; display: flex; justify-content: space-between; align-items: center; border: none; width: 100%; text-align: left; background: transparent; font-family: inherit; color: inherit; }
.gs-pn-proj-floor:hover { background: var(--gs-bg); }
.gs-pn-proj-floor--active { background: var(--gs-accent-light); font-weight: 600; color: var(--gs-accent-green); }
.gs-pn-proj-main { background: var(--gs-card-bg); border: 1px solid var(--gs-border); border-radius: 12px; padding: 20px; }
.gs-pn-proj-unit { border: 1px solid var(--gs-border); border-radius: 8px; padding: 14px; margin-bottom: 10px; display: flex; align-items: center; gap: 12px; cursor: pointer; transition: 0.15s; }
.gs-pn-proj-unit:hover { border-color: var(--gs-accent-green); box-shadow: 0 2px 8px rgba(0,0,0,0.06); }

/* Info alert (blocco dedicato; evita conflitto con .gs-pn-info header) */
.gs-pn-infobox { padding: 12px 16px; border-radius: 8px; font-size: 12px; line-height: 1.6; margin-bottom: 16px; display: flex; align-items: flex-start; gap: 8px; }
.gs-pn-infobox--blue { background: var(--gs-prev-info-bg); border: 1px solid var(--gs-prev-info-border); color: #1a5276; }
.gs-pn-infobox--green { background: var(--gs-accent-light); border: 1px solid #a7dcc5; color: #065f46; }

/* Loading / errore */
.gs-pn-muted { color: var(--gs-text-secondary); font-size: 12px; }
.gs-pn-alert { padding: 12px 16px; border-radius: 8px; margin-bottom: 16px; font-size: 13px; }

.gs-pn-opzione-price-val--muted { color: var(--gs-muted); }
.gs-pn-nodo-result--muted .gs-pn-nodo-result-name,
.gs-pn-nodo-result--muted .gs-pn-nodo-result-price { color: var(--gs-muted); font-weight: 600; }

.gs-pn-ctx-panel { margin-bottom: 16px; }

/* ═══ CRM-31-NUOVO-FIX — toolbar filtro opzioni ═══ */
.gs-pn-opz-toolbar { display: flex; gap: 10px; align-items: center; margin-bottom: 12px; flex-wrap: wrap; font-size: 12px; }
.gs-pn-opz-search { position: relative; flex: 1; min-width: 180px; }
.gs-pn-opz-search i { position: absolute; left: 10px; top: 50%; transform: translateY(-50%); color: var(--gs-muted); font-size: 13px; }
.gs-pn-opz-search input { width: 100%; padding: 8px 10px 8px 32px; border: 1px solid var(--gs-border); border-radius: 6px; font-size: 12px; font-family: inherit; background: var(--gs-card-bg); color: var(--gs-text-primary); }
.gs-pn-opz-search input:focus { outline: none; border-color: var(--gs-accent-green); }
.gs-pn-opz-filter { padding: 8px 12px; border: 1px solid var(--gs-border); border-radius: 6px; font-size: 12px; font-family: inherit; background: var(--gs-card-bg); color: var(--gs-text-primary); }
.gs-pn-opz-filter:focus { outline: none; border-color: var(--gs-accent-green); }
.gs-pn-opz-count { font-size: 11px; color: var(--gs-muted); margin-bottom: 10px; }
.gs-pn-modal-search { margin-bottom: 16px; }
.gs-pn-modal-empty { margin-top: 12px; }
.gs-pn-btn--sm { padding: 6px 12px; font-size: 11px; }

.gs-pn-opz-recenti { margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px dashed var(--gs-border); }
.gs-pn-opz-recenti-h { font-size: 12px; font-weight: 600; color: var(--gs-muted); margin-bottom: 8px; }

.gs-pn-opz-add { background: var(--gs-card-bg); border: 2px dashed var(--gs-accent-green); border-radius: 8px; padding: 16px; margin-bottom: 14px; }
.gs-pn-opz-add-h { font-size: 14px; font-weight: 700; margin-bottom: 12px; display: flex; align-items: center; gap: 6px; }
.gs-pn-opz-add-manual { margin-top: 14px; padding-top: 14px; border-top: 1px dashed var(--gs-border); }
.gs-pn-opz-add-manual-title { font-size: 12px; font-weight: 600; color: var(--gs-muted); margin-bottom: 10px; }
.gs-pn-opz-add-body { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.gs-pn-opz-add-row { display: flex; flex-direction: column; }
.gs-pn-opz-add-row:first-child { grid-column: 1 / -1; }
.gs-pn-opz-add-row label { font-size: 11px; font-weight: 600; color: var(--gs-muted); margin-bottom: 4px; }
.gs-pn-opz-add-row input { width: 100%; padding: 8px 12px; border: 1px solid var(--gs-border); border-radius: 6px; font-size: 13px; font-family: inherit; color: var(--gs-text-primary); background: var(--gs-card-bg); }
.gs-pn-opz-add-row input:focus { outline: none; border-color: var(--gs-accent-green); }
.gs-pn-opz-add-actions { display: flex; gap: 8px; justify-content: flex-end; margin-top: 14px; grid-column: 1 / -1; }

.gs-pn-riepilogo { background: var(--gs-card-bg); border: 1px solid var(--gs-border); border-radius: 12px; padding: 20px 22px; margin-bottom: 20px; }
.gs-pn-riepilogo-h { font-size: 16px; font-weight: 700; margin-bottom: 16px; display: flex; align-items: center; gap: 8px; }
.gs-pn-riepilogo-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.gs-pn-riepilogo-table th { padding: 8px 12px; font-size: 10px; text-transform: uppercase; color: var(--gs-muted); font-weight: 600; text-align: left; border-bottom: 1px solid var(--gs-border); }
.gs-pn-riepilogo-table td { padding: 8px 12px; border-bottom: 1px solid var(--gs-border); color: var(--gs-text-primary); }
.gs-pn-riepilogo-totale { display: flex; justify-content: flex-end; gap: 20px; margin-top: 16px; padding-top: 12px; border-top: 2px solid var(--gs-border); font-size: 18px; font-weight: 700; color: var(--gs-accent-green); }
.gs-pn-riepilogo-actions { margin-top: 16px; }
.gs-pn-modal-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: color-mix(in srgb, var(--gs-gray-900) 40%, transparent); z-index: 1000; display: flex; align-items: center; justify-content: center; }
.gs-pn-modal { background: var(--gs-card-bg); border-radius: 12px; width: 520px; max-width: 90vw; max-height: 80vh; overflow: hidden; box-shadow: var(--gs-shadow-md); display: flex; flex-direction: column; }
.gs-pn-modal-header { display: flex; align-items: center; justify-content: space-between; padding: 16px 22px; border-bottom: 1px solid var(--gs-border); }
.gs-pn-modal-title { font-size: 16px; font-weight: 700; }
.gs-pn-modal-close { background: none; border: none; font-size: 20px; cursor: pointer; color: var(--gs-text-secondary); padding: 4px; font-family: inherit; }
.gs-pn-modal-close:hover { color: var(--gs-text-primary); }
.gs-pn-modal-body { padding: 20px 22px; overflow-y: auto; flex: 1; }
.gs-pn-modal-desc { font-size: 12px; color: var(--gs-text-secondary); margin-bottom: 14px; line-height: 1.6; }
.gs-pn-modal-results { margin-top: 14px; max-height: 300px; overflow-y: auto; }
.gs-pn-mag-results { max-height: 200px; margin-bottom: 12px; }
.gs-pn-modal-result { padding: 12px 14px; border: 1px solid var(--gs-border); border-radius: 8px; margin-bottom: 8px; cursor: pointer; transition: 0.15s; }
.gs-pn-modal-result:hover { border-color: var(--gs-accent-green); background: var(--gs-accent-light); }
.gs-pn-modal-result-name { font-size: 14px; font-weight: 600; }
.gs-pn-modal-result-meta { font-size: 11px; color: var(--gs-text-secondary); margin-top: 4px; display: flex; gap: 12px; flex-wrap: wrap; }
@media (max-width: 600px) {
  .gs-pn-modal { width: 95vw; max-height: 90vh; }
}

.gs-pn-picker-aree { margin-bottom: 16px; padding: 12px; border: 1px dashed var(--gs-border); border-radius: 8px; background: var(--gs-card-bg); }
.gs-pn-picker-aree-h { font-size: 12px; font-weight: 600; color: var(--gs-muted); margin-bottom: 10px; }

/* CRM-31-SCONTI-VISTA */
.gs-pn-edit-riga { display: flex; gap: 16px; align-items: flex-end; padding: 12px 16px; background: var(--gs-bg); border-radius: 8px; margin-top: 10px; margin-bottom: 10px; flex-wrap: wrap; border: 1px solid var(--gs-border); }
.gs-pn-edit-riga-item { display: flex; flex-direction: column; gap: 4px; }
.gs-pn-edit-riga-item label { font-size: 10px; font-weight: 600; color: var(--gs-muted); text-transform: uppercase; }
.gs-pn-edit-riga-input-wrap { display: flex; align-items: center; gap: 4px; }
.gs-pn-edit-riga-input-wrap input { width: 90px; padding: 6px 10px; border: 1px solid var(--gs-border); border-radius: 6px; font-size: 14px; font-weight: 600; font-family: inherit; text-align: right; background: var(--gs-card-bg); color: var(--gs-text-primary); }
.gs-pn-edit-riga-input-wrap input:focus { outline: none; border-color: var(--gs-accent-green); }
.gs-pn-edit-riga-input-wrap span { font-size: 12px; color: var(--gs-muted); }
.gs-pn-edit-riga-totale { font-size: 16px; font-weight: 700; color: var(--gs-accent-green); }
.gs-pn-edit-riga-diff { font-size: 10px; color: var(--gs-muted); }
.gs-pn-edit-riga-item--totale { margin-left: auto; align-items: flex-end; text-align: right; min-width: 150px; }

/* CRM-33-BUGFIX: override/sconto allineati con classi opzione */
.gs-pn-opzione-edit-riga { display: flex; flex-direction: row; align-items: flex-end; gap: 16px; }
.gs-pn-opzione-edit-item { min-width: 140px; }
.gs-pn-opzione-edit-input-wrap { min-height: 36px; }
.gs-pn-opzione-edit-input-wrap input { height: 36px; }
.gs-pn-override-warn { border-color: #facc15 !important; box-shadow: 0 0 0 2px rgba(250, 204, 21, 0.2); }

.gs-pn-summary-sconto { display: flex; align-items: center; gap: 6px; }
.gs-pn-summary-sconto label { font-size: 11px; font-weight: 600; color: var(--gs-muted); }
.gs-pn-summary-sconto input { width: 64px; padding: 4px 8px; border: 1px solid var(--gs-border); border-radius: 6px; font-size: 13px; font-weight: 600; text-align: right; font-family: inherit; color: var(--gs-text-primary); background: var(--gs-card-bg); }
.gs-pn-summary-sub { font-size: 11px; color: var(--gs-muted); }
.gs-pn-summary-sub s { margin-right: 4px; }

.gs-pn-prezzo-barrato { color: var(--gs-muted); font-size: 12px; text-decoration: line-through; margin-right: 6px; }
.gs-pn-prezzo-scontato { color: var(--gs-accent-green); font-weight: 700; }
.gs-pn-summary-vista-cliente { display: flex; flex-direction: column; gap: 4px; min-width: 220px; }
.gs-pn-vc-row { display: flex; justify-content: space-between; gap: 16px; font-size: 12px; }
.gs-pn-vc-sconto { color: var(--gs-accent-gold); }
.gs-pn-vc-totale { font-size: 16px; font-weight: 700; color: var(--gs-accent-green); border-top: 1px solid var(--gs-border); padding-top: 4px; }

.gs-pn-pres-section { margin-top: 16px; }
.gs-pn-pres-pills { display: flex; gap: 8px; margin-bottom: 16px; flex-wrap: wrap; }
.gs-pn-pres-pill { padding: 8px 16px; border-radius: 8px; font-size: 13px; font-weight: 600; border: 2px solid var(--gs-border); background: var(--gs-card-bg); cursor: pointer; font-family: inherit; transition: 0.15s; color: var(--gs-text-primary); }
.gs-pn-pres-pill:hover { border-color: var(--gs-accent-green); }
.gs-pn-pres-pill--active { border-color: var(--gs-accent-green); background: var(--gs-accent-light); color: var(--gs-accent-green); }
.gs-pn-pres-corpo { display: flex; gap: 16px; align-items: flex-end; margin-top: 12px; flex-wrap: wrap; }
.gs-pn-pres-corpo input { width: 100px; padding: 6px 10px; border: 1px solid var(--gs-border); border-radius: 6px; font-size: 14px; font-weight: 600; font-family: inherit; text-align: right; background: var(--gs-card-bg); color: var(--gs-text-primary); }
.gs-pn-pres-confronto-label { margin-top: 14px; font-size: 12px; font-weight: 600; color: var(--gs-muted); }
.gs-pn-pres-confronto { margin-top: 8px; font-size: 12px; display: flex; flex-direction: column; gap: 4px; }
.gs-pn-pres-confronto-margine { font-weight: 700; color: var(--gs-accent-green); }

/* CRM-31-CHIPS-WEB-LUCIO */
.gs-pn-opz-chips { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; }
.gs-pn-opz-chip { padding: 5px 12px; border-radius: 20px; font-size: 12px; font-weight: 600; border: 1px solid var(--gs-border); background: var(--gs-card-bg); cursor: pointer; font-family: inherit; transition: 0.15s; color: var(--gs-text-primary); }
.gs-pn-opz-chip:hover { border-color: var(--gs-accent-green); }
.gs-pn-opz-chip--active { border-color: var(--gs-accent-green); background: var(--gs-accent-light); color: var(--gs-accent-green); }

.gs-pn-web-search { margin-top: 10px; }
.gs-pn-web-result { background: var(--gs-primary-bg); border: 1px solid var(--gs-border); border-radius: 8px; padding: 14px; margin-top: 8px; }
.gs-pn-web-result-badge { font-size: 10px; font-weight: 700; color: var(--gs-accent-green); margin-bottom: 6px; }
.gs-pn-web-result-actions { display: flex; gap: 8px; margin-top: 10px; }

.gs-pn-lucio-mini { display: flex; align-items: center; gap: 8px; padding: 8px 14px; margin-bottom: 12px; font-size: 11px; color: var(--gs-muted); }
.gs-pn-lucio-mini-ic { width: 20px; height: 20px; border-radius: 5px; background: linear-gradient(135deg, var(--gs-lucio-gradient-start), var(--gs-lucio-gradient-end)); color: var(--gs-card-bg); display: flex; align-items: center; justify-content: center; font-size: 8px; font-weight: 700; flex-shrink: 0; }

.gs-lucio-bubble { position: absolute; bottom: 100%; right: 0; margin-bottom: 8px; background: var(--gs-accent-gold-light); border: 1px solid var(--gs-accent-gold-border); border-radius: 12px; padding: 12px 16px; min-width: 280px; max-width: 360px; box-shadow: var(--gs-shadow-md); z-index: 1000; animation: gs-lucio-bubble-in 0.3s ease; }
.gs-lucio-bubble--fade { opacity: 0; transition: opacity 0.5s; }
.gs-lucio-bubble-text { font-size: 12px; line-height: 1.6; color: var(--gs-text-primary); }
.gs-lucio-bubble-close { position: absolute; top: 6px; right: 8px; background: none; border: none; font-size: 14px; cursor: pointer; color: var(--gs-muted); font-family: inherit; }
@keyframes gs-lucio-bubble-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

/* Responsive */
@media (max-width: 768px) {
    .gs-pn-area-grid { grid-template-columns: repeat(2, 1fr); }
    .gs-pn-opzioni { grid-template-columns: 1fr; }
    .gs-pn-proj-grid { grid-template-columns: 1fr; }
    .gs-pn-comm-stats { grid-template-columns: repeat(2, 1fr); }
    .gs-pn-summary { flex-direction: column; gap: 12px; }
    .gs-pn-opz-toolbar { flex-direction: column; align-items: stretch; }
    .gs-pn-opz-add-body { grid-template-columns: 1fr; }
    .gs-pn-edit-riga { flex-direction: column; align-items: stretch; }
    .gs-pn-pres-pills { flex-direction: column; }
    .gs-pn-pres-corpo { flex-direction: column; align-items: stretch; }
    .gs-pn-opz-chips { gap: 4px; }
    .gs-pn-opz-chip { font-size: 11px; padding: 4px 10px; }
    .gs-lucio-bubble { min-width: 200px; max-width: 90vw; }
}
@media (max-width: 480px) {
    .gs-pn-area-grid { grid-template-columns: 1fr; }
}

/* === CRM-34-FE-A: griglia aree (icone DB, raggruppamento CategoriaUI) — append only === */
.gs-area-griglia-root { display: flex; flex-direction: column; gap: 22px; margin-bottom: 20px; }
.gs-area-categoria { margin: 0; }
.gs-area-categoria-header {
    font-family: inherit;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--gs-text-secondary);
    border-bottom: 1px solid var(--gs-border);
    padding-bottom: 8px;
    margin-bottom: 12px;
}
.gs-area-categoria-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}
@media (max-width: 1023px) {
    .gs-area-categoria-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
    .gs-area-categoria-cards { grid-template-columns: 1fr; }
}

.gs-area-card {
    border-radius: 10px;
    padding: 14px 16px;
    position: relative;
    border: 1px solid var(--gs-border);
    background: var(--gs-card-bg);
    min-height: 128px;
    transition: box-shadow 0.15s ease, transform 0.15s ease;
}
.gs-area-card--operativa {
    cursor: pointer;
    box-shadow: var(--gs-shadow-md);
}
.gs-area-card--operativa:hover {
    box-shadow: var(--gs-shadow-md);
    transform: translateY(-1px);
}
.gs-area-card--vuota {
    cursor: default;
    opacity: 0.72;
}
.gs-area-card--vuota:hover { transform: none; box-shadow: none; }
.gs-area-card--selezionata::after {
    content: '\2713';
    position: absolute;
    top: 8px;
    right: 10px;
    color: var(--gs-accent-green);
    font-weight: 700;
    font-size: 16px;
    line-height: 1;
}

.gs-area-card-title { font-size: 14px; font-weight: 700; margin-top: 6px; color: var(--gs-text-primary); }
.gs-area-cat-badge {
    display: inline-block;
    margin-top: 4px;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--gs-muted);
}
.gs-area-badge { margin-top: 8px; font-size: 11px; font-weight: 600; color: var(--gs-text-secondary); }
.gs-area-badge--vuoto { font-style: italic; color: var(--gs-muted); font-weight: 500; }

.gs-area-icona { font-size: 1.75rem; line-height: 1; }
.gs-area-icona--vuota { color: var(--gs-muted); }

.gs-pn-area-sel-emoji .bi { font-size: 1.75rem; line-height: 1; vertical-align: middle; color: var(--gs-text-primary); }
.gs-pn-lucio-mini-ic { display: flex; align-items: center; justify-content: center; }
.gs-pn-lucio-mini-ic .bi { font-size: 11px; line-height: 1; color: var(--gs-card-bg); }

/* === CRM-34-FE-C: navigazione nodi + placeholder TipoNodo (append only) === */
.gs-nav-bar {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    gap: 0;
    overflow-x: auto;
    padding: 10px 4px 14px;
    margin-bottom: 12px;
    border-bottom: 1px solid var(--gs-border);
    scroll-snap-type: x proximity;
    -ms-overflow-style: none;
    scrollbar-width: none;
}
.gs-nav-bar::-webkit-scrollbar { display: none; }

.gs-nav-nodo {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 56px;
    max-width: 88px;
    flex-shrink: 0;
    scroll-snap-align: start;
}
.gs-nav-nodo--corrente { cursor: pointer; }
.gs-nav-nodo--completato { cursor: pointer; }
.gs-nav-nodo--futuro {
    cursor: default;
    pointer-events: none;
    opacity: 0.55;
}

.gs-nav-nodo-icona {
    position: relative;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.15rem;
    border: 2px solid var(--gs-border);
    background: var(--gs-card-bg);
    color: var(--gs-text-primary);
}
.gs-nav-nodo--completato .gs-nav-nodo-icona {
    background: var(--gs-accent-light);
    border-color: var(--gs-accent-green);
    color: var(--gs-accent-green);
}
.gs-nav-nodo--corrente .gs-nav-nodo-icona {
    background: var(--gs-accent-green);
    border-color: var(--gs-accent-green);
    color: var(--gs-card-bg);
    box-shadow: var(--gs-shadow-md);
}
.gs-nav-nodo--futuro .gs-nav-nodo-icona {
    background: var(--gs-primary-bg);
    border-color: var(--gs-gray-300);
    color: var(--gs-muted);
}

.gs-nav-nodo-check {
    position: absolute;
    bottom: -2px;
    right: -2px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--gs-accent-green);
    color: var(--gs-card-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    line-height: 1;
    border: 1px solid var(--gs-card-bg);
}

.gs-nav-nodo-label {
    margin-top: 4px;
    font-size: 10px;
    font-weight: 600;
    color: var(--gs-text-secondary);
    text-align: center;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gs-nav-linea {
    flex: 1 1 8px;
    min-width: 8px;
    max-width: 28px;
    height: 2px;
    align-self: center;
    background: var(--gs-border);
    margin: 0 2px;
}
.gs-nav-linea--completata { background: var(--gs-accent-green); }

@media (max-width: 768px) {
    .gs-nav-nodo-icona { width: 32px; height: 32px; font-size: 1rem; }
    .gs-nav-nodo-label { display: none; }
}

.gs-placeholder {
    background: var(--gs-primary-bg);
    border: 2px dashed var(--gs-border);
    border-radius: 12px;
    padding: 28px 20px;
    text-align: center;
    margin-bottom: 8px;
}
.gs-placeholder > .bi {
    font-size: 2rem;
    color: var(--gs-muted);
    display: block;
    margin-bottom: 10px;
}
.gs-placeholder p { margin: 0.35rem 0; font-size: 0.9rem; color: var(--gs-text-secondary); }
.gs-placeholder-muted { font-size: 0.85rem; color: var(--gs-muted); }

/* --- CRM-34-FE-B1: Modal cliente (gs-mcli-*) --- */
.gs-mcli-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1050;
    background: color-mix(in srgb, var(--gs-text-primary) 35%, transparent);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}
.gs-mcli-panel {
    width: min(640px, 100%);
    max-height: 90vh;
    overflow: auto;
    background: var(--gs-card-bg);
    border-radius: 12px;
    box-shadow: var(--gs-shadow-md);
    border: 1px solid var(--gs-border);
}
.gs-mcli-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    border-bottom: 1px solid var(--gs-border);
}
.gs-mcli-title { font-weight: 700; font-size: 1.05rem; color: var(--gs-text-primary); }
.gs-mcli-close {
    border: none;
    background: transparent;
    font-size: 1.2rem;
    line-height: 1;
    color: var(--gs-muted);
    cursor: pointer;
}
.gs-mcli-body { padding: 14px 16px 18px; }
.gs-mcli-label { font-size: 0.8rem; color: var(--gs-text-secondary); display: block; margin-bottom: 4px; }
.gs-mcli-input { margin-bottom: 10px; }
.gs-mcli-hint { font-size: 0.85rem; color: var(--gs-muted); margin: 6px 0 0; }
.gs-mcli-list { list-style: none; padding: 0; margin: 10px 0 0; }
.gs-mcli-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 6px;
    border-radius: 8px;
    cursor: pointer;
    border: 1px solid transparent;
}
.gs-mcli-row:hover { background: var(--gs-primary-bg); border-color: var(--gs-border); }
.gs-mcli-ava {
    width: 36px; height: 36px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 0.75rem; font-weight: 700;
    background: var(--gs-accent-light);
    color: var(--gs-accent-green);
}
.gs-mcli-main { flex: 1; min-width: 0; }
.gs-mcli-name { font-weight: 600; color: var(--gs-text-primary); font-size: 0.92rem; }
.gs-mcli-meta { font-size: 0.8rem; color: var(--gs-muted); }
.gs-mcli-badge {
    font-size: 0.7rem; padding: 2px 8px; border-radius: 999px;
    background: var(--gs-primary-bg); color: var(--gs-text-secondary);
    border: 1px solid var(--gs-border);
}
.gs-mcli-linkbtn {
    margin-top: 12px;
    border: none;
    background: none;
    color: var(--gs-accent-green);
    font-weight: 600;
    cursor: pointer;
    padding: 0;
}
.gs-mcli-seg { display: flex; gap: 8px; margin-bottom: 12px; }
.gs-mcli-seg-btn {
    flex: 1;
    border: 1px solid var(--gs-border);
    border-radius: 8px;
    padding: 8px;
    background: var(--gs-card-bg);
    cursor: pointer;
    font-size: 0.85rem;
}
.gs-mcli-seg-btn--on {
    border-color: var(--gs-accent-green);
    background: var(--gs-accent-light);
    font-weight: 600;
}
.gs-mcli-subh { font-weight: 600; font-size: 0.85rem; color: var(--gs-text-secondary); margin-top: 6px; }
.gs-mcli-err { color: var(--gs-danger, crimson); font-size: 0.85rem; margin-top: 8px; }
.gs-mcli-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 14px; flex-wrap: wrap; }
.gs-mcli-otp { letter-spacing: 0.25em; font-weight: 700; text-align: center; font-size: 1.25rem; }

/* --- CRM-34-FE-B1: Area cliente (gs-acli-*) --- */
.gs-acli-page { }
.gs-acli-head {
    display: flex; flex-wrap: wrap; gap: 14px; align-items: flex-start;
    margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid var(--gs-border);
}
.gs-acli-ava {
    width: 52px; height: 52px; border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
    font-weight: 800; font-size: 1rem;
    background: var(--gs-accent-light); color: var(--gs-accent-green);
}
.gs-acli-head-main { flex: 1; min-width: 200px; }
.gs-acli-title { font-size: 1.35rem; margin: 0 0 4px; color: var(--gs-text-primary); }
.gs-acli-meta { font-size: 0.9rem; color: var(--gs-muted); }
.gs-acli-sep { margin: 0 6px; }
.gs-acli-addr { font-size: 0.85rem; color: var(--gs-text-secondary); margin-top: 4px; }
.gs-acli-badge {
    align-self: center;
    font-size: 0.75rem; padding: 4px 10px; border-radius: 999px;
    border: 1px solid var(--gs-border); background: var(--gs-primary-bg);
}
.gs-acli-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-left: auto; }
.gs-acli-empty {
    text-align: center; padding: 40px 16px;
    border: 1px dashed var(--gs-border); border-radius: 12px; background: var(--gs-primary-bg);
}
.gs-acli-empty .bi { font-size: 2rem; color: var(--gs-muted); display: block; margin-bottom: 8px; }
.gs-acli-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.gs-acli-card {
    border: 1px solid var(--gs-border); border-radius: 12px; padding: 12px;
    background: var(--gs-card-bg); box-shadow: var(--gs-card-shadow);
}
.gs-acli-card-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.gs-acli-code { font-weight: 700; color: var(--gs-text-primary); }
.gs-acli-stato { font-size: 0.72rem; padding: 2px 8px; border-radius: 999px; border: 1px solid var(--gs-border); }
.gs-acli-stato--bozza { background: var(--gs-primary-bg); }
.gs-acli-stato--inviato { background: var(--gs-accent-light); border-color: var(--gs-accent-green); }
.gs-acli-stato--accettato { background: color-mix(in srgb, var(--gs-accent-green) 18%, var(--gs-card-bg)); }
.gs-acli-stato--altro { background: var(--gs-primary-bg); }
.gs-acli-card-aree { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.gs-acli-chip { font-size: 0.72rem; padding: 2px 8px; border-radius: 999px; border: 1px solid var(--gs-border); }
.gs-acli-card-importo { font-weight: 700; font-size: 1.05rem; margin-bottom: 6px; color: var(--gs-text-primary); }
.gs-acli-card-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }

/* --- CRM-34-FE-B1: Setup preventivo (gs-setup-*) --- */
.gs-setup-page { max-width: 960px; }
.gs-setup-head { margin-bottom: 18px; }
.gs-setup-back { text-decoration: none; color: var(--gs-muted); font-size: 0.9rem; display: inline-block; margin-bottom: 6px; }
.gs-setup-title { font-size: 1.25rem; margin: 0; color: var(--gs-text-primary); }
.gs-setup-block { margin-bottom: 18px; padding: 14px; border: 1px solid var(--gs-border); border-radius: 12px; background: var(--gs-card-bg); }
.gs-setup-h { font-size: 0.95rem; margin: 0 0 10px; color: var(--gs-text-secondary); }
.gs-setup-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.gs-setup-pill {
    border: 1px solid var(--gs-border); border-radius: 999px; padding: 6px 12px;
    background: var(--gs-primary-bg); cursor: pointer; font-size: 0.85rem;
}
.gs-setup-pill--on { border-color: var(--gs-accent-green); background: var(--gs-accent-light); font-weight: 600; }
.gs-setup-select { max-width: 420px; }
.gs-setup-chip { display: inline-flex; align-items: center; gap: 6px; font-size: 0.8rem; margin-right: 8px; }
.gs-setup-unit-grid { display: flex; flex-wrap: wrap; gap: 6px; max-height: 200px; overflow: auto; }
.gs-setup-unit {
    border: 1px solid var(--gs-border); border-radius: 8px; padding: 4px 8px; font-size: 0.72rem;
    background: var(--gs-primary-bg); cursor: pointer;
}
.gs-setup-unit--on { border-color: var(--gs-accent-green); background: var(--gs-accent-light); font-weight: 600; }
.gs-setup-hint { margin-top: 8px; }
.gs-setup-footer { margin-top: 20px; }

/* --- D-ROUTING: lista preventivi riga selezionata --- */
.gs-prev-row { cursor: pointer; transition: background 0.15s; }
.gs-prev-row:hover { background: #f8fafc; }
.gs-prev-row.selected { background: #fef3c7; border-left: 3px solid #d97706; }

/* ═══ CRM-34-FV — Configuratore Fotovoltaico ═══ */

.gs-fv-nav {
    display: flex; align-items: center; background: #0a1628;
    padding: 0 16px; height: 46px; position: sticky; top: 0; z-index: 100;
}
.gs-fv-nav-back {
    display: flex; align-items: center; justify-content: center;
    color: rgba(255,255,255,.55); font-size: .9rem; margin-right: 8px; min-width: 28px;
}
.gs-fv-nav-back:hover { color: #fff; }
.gs-fv-nav-area {
    display: flex; align-items: center; gap: 6px;
    color: #fbbf24; font-size: .82rem; font-weight: 700; margin-right: auto;
}
.gs-fv-tabs { display: flex; gap: 2px; }
.gs-fv-tab {
    padding: 6px 16px; color: rgba(255,255,255,.4); font-size: .74rem;
    font-weight: 600; cursor: pointer; border-bottom: 2.5px solid transparent;
    height: 46px; display: flex; align-items: center; gap: 5px; transition: all .15s;
}
.gs-fv-tab:hover { color: rgba(255,255,255,.7); }
.gs-fv-tab.active { color: #fff; border-bottom-color: #fbbf24; }

.gs-fv-role-toggle { display: flex; align-items: center; gap: 6px; margin-left: 12px; }
.gs-fv-role-btn {
    padding: 4px 10px; border: none; border-radius: 5px; font-size: .6rem;
    font-weight: 700; cursor: pointer; font-family: inherit;
    color: rgba(255,255,255,.4); background: rgba(255,255,255,.06); transition: all .15s;
}
.gs-fv-role-btn:hover { color: rgba(255,255,255,.7); }
.gs-fv-role-btn.active { color: #fff; background: #334155; }

.gs-fv-main { max-width: 960px; margin: 0 auto; padding: 20px 16px 80px; }

.gs-fv-card {
    background: #fff; border: 1px solid #dfe3ea; border-radius: 14px;
    box-shadow: 0 2px 8px rgba(0,0,0,.06); overflow: hidden; margin-bottom: 16px;
}
.gs-fv-card-head {
    padding: 12px 18px; font-size: .76rem; font-weight: 800;
    text-transform: uppercase; letter-spacing: .06em;
    display: flex; align-items: center; gap: 8px;
    border-bottom: 1px solid #dfe3ea; background: #fafbfc;
}
.gs-fv-card-body { padding: 16px 18px; }

.gs-fv-tratta {
    display: grid; grid-template-columns: 200px 60px 130px 130px 110px 1fr;
    gap: 6px; padding: 8px 0; border-bottom: 1px solid #dfe3ea; align-items: center;
}

.gs-fv-area {
    border: 1.5px solid #dfe3ea; border-radius: 14px;
    overflow: hidden; margin-bottom: 14px;
}
.gs-fv-area.open { border-color: #c1c8d4; }
.gs-fv-area-head {
    display: flex; align-items: center; gap: 12px;
    padding: 14px 18px; cursor: pointer;
}
.gs-fv-area-head:hover { background: #fafbfc; }
.gs-fv-area-body {
    padding: 0 18px 18px; border-top: 1px solid #dfe3ea; display: none;
}
.gs-fv-area.open .gs-fv-area-body { display: block; }

.gs-fv-staff-cascade {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 4px; padding: 10px 12px;
    background: linear-gradient(135deg, #fffbeb, #f5f3f0);
    border: 1px solid #fde68a; border-radius: 10px;
}
.gs-fv-staff-chip {
    display: flex; align-items: center; gap: 4px; padding: 5px 10px;
    background: #fff; border: 1.5px solid #d97706; border-radius: 12px;
    font-size: .62rem; font-weight: 700; color: #78350f;
}

.gs-fv-summary {
    display: flex; flex-wrap: wrap; gap: 8px 18px;
    padding: 14px 18px; border-radius: 10px;
    margin-top: 14px; align-items: center; background: #fef3c7;
}
.gs-fv-summary-val { font-weight: 800; }
.gs-fv-summary-total { font-size: 1.2rem; font-weight: 800; margin-left: auto; color: #d97706; }

.gs-fv-tech-only { transition: all 0.3s; }
.gs-fv-tech-hidden { display: none !important; }

.gs-fv-zone-row {
    display: flex; align-items: center; gap: 10px; padding: 10px 12px;
    border: 1.5px solid #dfe3ea; border-radius: 10px; margin-top: 6px;
}
.gs-fv-zone-code {
    font-family: 'JetBrains Mono', monospace; font-size: .62rem; font-weight: 700;
    padding: 3px 8px; border-radius: 5px; background: #fef3c7;
    color: #78350f; border: 1px solid #d97706;
}
