/* ============================================
    CSS CUSTOM PROPERTIES (Design Tokens)
============================================ */
:root {
    --cb-accent:        #E34824;
    --cb-accent-hover:  #c93d1e;
    --cb-dark:          #151515;
    --cb-light:         #EEEFF0;
    --cb-white:         #FFFFFF;
    --cb-gray:          #6b7280;
    --cb-muted:         #9ca3af;
    --cb-border:        #e0e1e3;
    --cb-green:         #059669;
    --cb-green-hover:   #047857;
    --cb-cyan:          #0891b2;
    --cb-amber:         #d97706;
    --cb-amber-hover:   #b45309;
    --cb-danger:        #dc2626;
    --cb-danger-hover:  #b91c1c;
    --topbar-height:    56px;
    --sidebar-width:    260px;
    --sidebar-collapsed-width: 64px;
    --sidebar-collapsed: 0px;
}

/* ============================================
    BOOTSTRAP FORM-SWITCH OVERRIDE
============================================ */
.form-switch .form-check-input {
    border-radius: 0 !important;
    border: 1px solid var(--cb-border);
    background-color: var(--cb-border);
    width: 44px; height: 24px;
    cursor: pointer;
    transition: background-color 0.2s, border-color 0.2s;
}
.form-switch .form-check-input:checked { background-color: var(--cb-green); border-color: var(--cb-green); }
.form-switch .form-check-input:focus { box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); border-color: var(--cb-accent); }
.form-switch .form-check-label { font-size: 0.82rem; color: var(--cb-gray); }
/* ============================================
    FULLCALENDAR OVERRIDES
============================================ */
.fc-event { border-radius: 0 !important; cursor: pointer; font-size: 0.8rem; padding: 2px 5px; }
.fc-event:hover { opacity: 0.88; }
.fc .fc-button { border-radius: 0 !important; font-size: 0.82rem; font-weight: 600; }
.fc .fc-button-primary { background-color: var(--cb-accent); border-color: var(--cb-accent); }
.fc .fc-button-primary:hover { background-color: var(--cb-accent-hover); border-color: var(--cb-accent-hover); }
.fc .fc-button-primary:not(:disabled).fc-button-active { background-color: var(--cb-dark); border-color: var(--cb-dark); }
.fc .fc-daygrid-day.fc-day-today { background: rgba(227,72,36,0.04) !important; }
.fc .fc-toolbar-title { font-size: 1.2rem; font-weight: 700; color: var(--cb-dark); }
.fc .fc-daygrid-day-number { font-size: 0.78rem; color: var(--cb-gray); text-decoration: none; }
.fc .fc-daygrid-day.fc-day-today .fc-daygrid-day-number { color: var(--cb-accent); font-weight: 700; }


/* ============================================
    INDEX PAGE STYLES
============================================ */

/* ---------- Hero ---------- */
.t-hero {
    background: #151515;
    padding: 4rem 2rem;
    position: relative;
    overflow: hidden;
}
.t-hero::before {
    content: '';
    position: absolute;
    top: -120px;
    right: -80px;
    width: 500px;
    height: 500px;
    background: rgba(227, 72, 36, 0.06);
    transform: rotate(45deg);
}
.t-hero::after {
    content: '';
    position: absolute;
    bottom: -100px;
    left: -60px;
    width: 360px;
    height: 360px;
    background: rgba(227, 72, 36, 0.04);
    transform: rotate(25deg);
}
.t-hero__badge {
    display: inline-block;
    background: rgba(227, 72, 36, 0.15);
    color: #E34824;
    border: 1px solid rgba(227, 72, 36, 0.3);
    padding: 0.25rem 0.85rem;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border-radius: 0;
    margin-bottom: 1rem;
}
.t-hero__title {
    font-size: 2.5rem;
    font-weight: 700;
    letter-spacing: -0.025em;
    color: #FFFFFF;
    margin-bottom: 1rem;
    line-height: 1.15;
}
.t-hero__subtitle {
    font-size: 1.05rem;
    color: rgba(255, 255, 255, 0.65);
    max-width: 540px;
    margin: 0 auto 2rem;
    line-height: 1.7;
}

/* Buttons */
.t-btn-primary {
    background: #E34824;
    color: #FFFFFF;
    border: 2px solid #E34824;
    padding: 0.7rem 1.75rem;
    font-weight: 600;
    font-size: 0.9rem;
    border-radius: 0;
    transition: all 0.2s ease;
    text-decoration: none;
    display: inline-block;
}
.t-btn-primary:hover {
    background: #c93d1e;
    border-color: #c93d1e;
    color: #FFFFFF;
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(227, 72, 36, 0.3);
}
.t-btn-outline {
    background: transparent;
    color: #FFFFFF;
    border: 2px solid rgba(255, 255, 255, 0.35);
    padding: 0.7rem 1.75rem;
    font-weight: 600;
    font-size: 0.9rem;
    border-radius: 0;
    transition: all 0.2s ease;
    text-decoration: none;
    display: inline-block;
}
.t-btn-outline:hover {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.6);
    color: #FFFFFF;
    transform: translateY(-1px);
}

/* ---------- Features ---------- */
.t-features {
    padding: 3rem 2rem;
    background: #FFFFFF;
}
.t-feature-card {
    background: #FFFFFF;
    border: 1px solid #EEEFF0;
    border-radius: 0;
    padding: 2rem 1.5rem;
    text-align: center;
    transition: all 0.25s ease;
    height: 100%;
}
.t-feature-card:hover {
    border-color: #E34824;
    box-shadow: 0 4px 20px rgba(227, 72, 36, 0.08);
    transform: translateY(-3px);
}
.t-feature-icon {
    width: 64px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1rem;
    background: rgba(227, 72, 36, 0.08);
    border: 1px solid rgba(227, 72, 36, 0.15);
    border-radius: 0;
}
.t-feature-icon svg { color: #E34824; }
.t-feature-card h3 {
    font-size: 1rem;
    font-weight: 700;
    color: #151515;
    margin-bottom: 0.6rem;
}
.t-feature-card p {
    font-size: 0.85rem;
    color: #6b7280;
    line-height: 1.6;
    margin: 0;
}

/* ---------- Quick Actions ---------- */
.t-quick-actions {
    background: #EEEFF0;
    padding: 3rem 2rem;
    border-top: 1px solid #e0e1e3;
}
.t-section-title {
    font-size: 1.35rem;
    font-weight: 700;
    color: #151515;
    margin-bottom: 0.6rem;
    text-align: center;
}
.t-action-card {
    background: #FFFFFF;
    border: 1px solid #e0e1e3;
    border-radius: 0;
    padding: 1.5rem 1rem;
    text-align: center;
    transition: all 0.25s ease;
    text-decoration: none;
    display: block;
    height: 100%;
}
.t-action-card:hover {
    border-color: #E34824;
    box-shadow: 0 4px 14px rgba(227, 72, 36, 0.08);
    transform: translateY(-2px);
    text-decoration: none;
}
.t-action-icon {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 0.75rem;
    background: rgba(227, 72, 36, 0.08);
    border: 1px solid rgba(227, 72, 36, 0.15);
    border-radius: 0;
}
.t-action-icon svg { color: #E34824; }
.t-action-card h6 {
    font-size: 0.85rem;
    font-weight: 600;
    color: #151515;
    margin: 0;
}

/* ---------- CTA ---------- */
.t-cta {
    padding: 3.5rem 2rem;
    background: #FFFFFF;
}
.t-cta h2 {
    font-size: 1.5rem;
    font-weight: 700;
    color: #151515;
    margin-bottom: 0.6rem;
}
.t-cta p {
    color: #6b7280;
    font-size: 1rem;
    margin-bottom: 1.5rem;
}
.t-btn-cta {
    background: #E34824;
    color: #FFFFFF;
    border: 2px solid #E34824;
    padding: 0.7rem 2rem;
    font-weight: 600;
    font-size: 0.9rem;
    border-radius: 0;
    transition: all 0.2s ease;
    text-decoration: none;
    display: inline-block;
}
.t-btn-cta:hover {
    background: #c93d1e;
    border-color: #c93d1e;
    color: #FFFFFF;
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(227, 72, 36, 0.3);
}

/* Accent line */
.t-accent-line {
    width: 48px;
    height: 3px;
    background: #E34824;
    margin: 0 auto 1.25rem;
    border-radius: 0;
}

/* ===================================================
    DASHBOARD — prefisso db-
=================================================== */
.db-page { padding: 2rem; }

/* --- Hero benvenuto --- */
.db-hero {
    background: linear-gradient(135deg, #fff 0%, rgba(227,72,36,0.02) 100%);
    border: 1px solid #e0e1e3;
    position: relative;
    overflow: hidden;
    padding: 1.5rem 1.5rem 1.5rem 1.75rem;
    margin-bottom: 1.5rem;
    display: flex;
    align-items: center;
    gap: 1rem;
}
.db-hero::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 6px;
    background: linear-gradient(180deg, #E34824, #c93d1e);
}
.db-hero-info { flex: 1; }
.db-hero-roles { display: flex; gap: 0.35rem; flex-wrap: wrap; flex-shrink: 0; }
.db-hero-avatar {
    width: 52px; height: 52px;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.1rem; font-weight: 700; letter-spacing: 0.02em;
    background: rgba(227,72,36,0.1); color: #E34824;
    border: 1px solid rgba(227,72,36,0.2);
    flex-shrink: 0;
}
.db-hero-name {
    font-size: 1.4rem; font-weight: 700; color: #151515;
    letter-spacing: -0.025em; margin: 0;
}
.db-hero-date {
    font-size: 0.82rem; color: #6b7280; font-weight: 400;
}

/* --- Stat cards grid (§6.11) --- */
.db-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    margin-bottom: 1.5rem;
    grid-column: 1 / -1;
}
.db-stat {
    background: #fff;
    border: 1px solid #e0e1e3;
    padding: 1.15rem 1.25rem;
    transition: transform 0.2s ease, border-color 0.25s ease;
    position: relative;
    overflow: hidden;
}
.db-stat::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
}
.db-stat:hover {
    transform: translateY(-2px);
    border-color: #E34824;
}
.db-stat--green::before { background: #059669; }
.db-stat--danger::before { background: #dc2626; }
.db-stat--accent::before { background: #E34824; }
.db-stat--muted::before { background: #6b7280; }
.db-stat--green .db-stat-num { color: #059669; }
.db-stat--danger .db-stat-num { color: #dc2626; }
.db-stat--accent .db-stat-num { color: #E34824; }
.db-stat--muted .db-stat-num { color: #6b7280; }
.db-stat--green .db-stat-icon { color: #059669; }
.db-stat--danger .db-stat-icon { color: #dc2626; }
.db-stat--accent .db-stat-icon { color: #E34824; }
.db-stat--muted .db-stat-icon { color: #6b7280; }
.db-stat-top {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.5rem;
}
.db-stat-icon {
    font-size: 0.95rem;
    opacity: 0.6;
}
.db-stat-num {
    font-size: 2rem; font-weight: 800; line-height: 1;
}
.db-stat-label {
    font-size: 0.68rem; font-weight: 600; color: #6b7280;
    text-transform: uppercase; letter-spacing: 0.03em;
}

/* --- Section title --- */
.db-section-title {
    font-size: 0.82rem; font-weight: 600; color: #6b7280;
    text-transform: uppercase; letter-spacing: 0.03em;
    display: flex; align-items: center; gap: 0.4rem;
    margin-bottom: 1rem;
}
.db-section-title i { color: #E34824; }

/* --- Content area: flex wrap --- */
.db-content {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem;
}
/* Card half-width (2 per riga) */
.db-content > .db-card {
    flex: 1 1 calc(50% - 0.625rem);
    min-width: 300px;
    margin-bottom: 0;
}
/* Full-width elements */
.db-content > .db-card--full,
.db-content > .db-stats,
.db-content > .db-row-2,
.db-content > .db-cal-card {
    flex: 0 0 100%;
    margin-bottom: 0;
}

/* --- 2-card row (always side by side) --- */
.db-row-2 {
    display: flex;
    gap: 1.25rem;
    width: 100%;
}
.db-row-2 > .db-card {
    flex: 1 1 0;
    min-width: 0;
    margin-bottom: 0;
}

/* --- Light card header (label style, no border, no icon-box) --- */
.db-card-header--light {
    border-bottom: none;
    padding: 0.85rem 1.15rem 0;
}
.db-card-header--light::before { display: none; }
.db-card-header--light .db-card-title {
    font-size: 0.82rem;
    color: #6b7280;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}
.db-card-header--light .db-icon-box { display: none; }

/* --- Calendar full-width inside content --- */
.db-content > .db-cal-card {
    grid-column: 1 / -1;
}

/* --- Header count badge --- */
.db-header-count {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 22px; height: 22px;
    padding: 0 0.4rem;
    font-size: 0.7rem; font-weight: 700;
    margin-left: 0.35rem;
}
.db-header-count--green { background: rgba(5,150,105,0.1); color: #059669; }
.db-header-count--danger { background: rgba(220,38,38,0.1); color: #dc2626; }
.db-header-count--amber { background: rgba(217,119,6,0.1); color: #d97706; }
.db-header-count--accent { background: rgba(227,72,36,0.1); color: #E34824; }
.db-header-count--cyan { background: rgba(8,145,178,0.1); color: #0891b2; }

/* --- Card (§6.2) --- */
.db-card {
    background: #fff;
    border: 1px solid #e0e1e3;
    overflow: hidden;
    margin-bottom: 1.5rem;
}
.db-card-header {
    position: relative;
    padding: 0.75rem 1.15rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.db-card-header::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
}
.db-card-header-left {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}
.db-card-body { padding: 1.5rem; }
.db-card-body--list { padding: 0.5rem 1.5rem; }

/* Accent bar variants */
.db-card-header--accent::before  { background: #E34824; }
.db-card-header--green::before   { background: #059669; }
.db-card-header--cyan::before    { background: #0891b2; }
.db-card-header--amber::before   { background: #d97706; }
.db-card-header--danger::before  { background: #dc2626; }
.db-card-header--gray::before    { background: #6b7280; }

/* Icon box (§6.2) */
.db-icon-box {
    width: 30px; height: 30px;
    display: flex; align-items: center; justify-content: center;
    border: 1px solid;
    flex-shrink: 0;
    font-size: 0.85rem;
}
.db-icon-box--accent  { background: rgba(227,72,36,0.08);  border-color: rgba(227,72,36,0.15);  color: #E34824; }
.db-icon-box--green   { background: rgba(5,150,105,0.08);  border-color: rgba(5,150,105,0.15);  color: #059669; }
.db-icon-box--cyan    { background: rgba(8,145,178,0.08);  border-color: rgba(8,145,178,0.15);  color: #0891b2; }
.db-icon-box--amber   { background: rgba(217,119,6,0.08);  border-color: rgba(217,119,6,0.15);  color: #d97706; }
.db-icon-box--danger  { background: rgba(220,38,38,0.08);  border-color: rgba(220,38,38,0.15);  color: #dc2626; }
.db-icon-box--gray    { background: rgba(107,114,128,0.08); border-color: rgba(107,114,128,0.15); color: #6b7280; }

.db-card-title {
    font-size: 0.88rem; font-weight: 700; color: #151515; margin: 0;
}

/* --- Outline button (§6.1 outline piccoli) --- */
.db-btn-outline {
    background: transparent;
    font-size: 0.82rem; font-weight: 600;
    padding: 0.4rem 0.8rem;
    border: 1px solid;
    text-decoration: none;
    display: inline-flex; align-items: center; gap: 0.3rem;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
    cursor: pointer;
}
.db-btn-outline--accent {
    color: #E34824; border-color: rgba(227,72,36,0.2);
}
.db-btn-outline--accent:hover {
    background: rgba(227,72,36,0.04); border-color: #E34824; color: #E34824; text-decoration: none;
}
.db-btn-outline--green {
    color: #059669; border-color: rgba(5,150,105,0.2);
}
.db-btn-outline--green:hover {
    background: rgba(5,150,105,0.04); border-color: #059669; color: #059669; text-decoration: none;
}
.db-btn-outline--cyan {
    color: #0891b2; border-color: rgba(8,145,178,0.2);
}
.db-btn-outline--cyan:hover {
    background: rgba(8,145,178,0.04); border-color: #0891b2; color: #0891b2; text-decoration: none;
}
.db-btn-outline--amber {
    color: #d97706; border-color: rgba(217,119,6,0.2);
}
.db-btn-outline--amber:hover {
    background: rgba(217,119,6,0.04); border-color: #d97706; color: #d97706; text-decoration: none;
}
.db-btn-outline--danger {
    color: #dc2626; border-color: rgba(220,38,38,0.2);
}
.db-btn-outline--danger:hover {
    background: rgba(220,38,38,0.04); border-color: #dc2626; color: #dc2626; text-decoration: none;
}
.db-btn-outline--gray {
    color: #6b7280; border-color: rgba(107,114,128,0.2);
}
.db-btn-outline--gray:hover {
    background: rgba(107,114,128,0.04); border-color: #6b7280; color: #151515; text-decoration: none;
}

/* --- Badges (§6.3) --- */
.db-badge {
    display: inline-flex; align-items: center; gap: 0.25rem;
    padding: 0.25rem 0.65rem;
    font-size: 0.7rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.03em;
    border: 1px solid;
}
.db-badge--success  { background: rgba(5,150,105,0.06);  color: #059669; border-color: rgba(5,150,105,0.2); }
.db-badge--danger   { background: rgba(220,38,38,0.06);  color: #dc2626; border-color: rgba(220,38,38,0.2); }
.db-badge--warn     { background: rgba(217,119,6,0.06);  color: #d97706; border-color: rgba(217,119,6,0.2); }
.db-badge--info     { background: rgba(8,145,178,0.06);  color: #0891b2; border-color: rgba(8,145,178,0.2); }
.db-badge--primary  { background: rgba(227,72,36,0.06);  color: #E34824; border-color: rgba(227,72,36,0.2); }
.db-badge--secondary { background: rgba(107,114,128,0.06); color: #6b7280; border-color: rgba(107,114,128,0.2); }
.db-badge--dark     { background: rgba(21,21,21,0.06);   color: #151515; border-color: rgba(21,21,21,0.2); }

/* --- List items (scadenze, assegnazioni, contratti) --- */
.db-list-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.75rem 0;
    border-bottom: 1px solid #EEEFF0;
    gap: 0.75rem;
}
.db-list-item:last-child { border-bottom: none; }
.db-list-item-main { flex: 1; min-width: 0; }
.db-list-item-title {
    font-size: 0.85rem; font-weight: 600; color: #151515;
}
.db-list-item-sub {
    font-size: 0.75rem; color: #6b7280; margin-top: 0.1rem;
}
.db-list-item-meta {
    font-size: 0.78rem; color: #6b7280; font-weight: 500;
    display: flex; align-items: center; gap: 0.25rem;
    white-space: nowrap; flex-shrink: 0;
}
.db-list-item:hover { background: rgba(227,72,36,0.03); }

/* --- Inline stat row (parco mezzi) --- */
.db-inline-stats {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 0.75rem;
}
.db-inline-stat {
    text-align: center;
    padding: 0.75rem 0.5rem;
}
.db-inline-stat-num {
    font-size: 1.5rem; font-weight: 700; line-height: 1.1;
}
.db-inline-stat-label {
    font-size: 0.68rem; font-weight: 600; color: #6b7280;
    text-transform: uppercase; letter-spacing: 0.03em;
    margin-top: 0.2rem;
}
.db-inline-stat-footer {
    display: flex; gap: 1.5rem; padding-top: 0.75rem;
    border-top: 1px solid #EEEFF0; margin-top: 0.75rem;
}
.db-inline-stat-footer span {
    font-size: 0.82rem; color: #6b7280;
}
.db-inline-stat-footer strong {
    color: #151515; font-weight: 600;
}

/* --- Table (§6.9) --- */
.db-table {
    width: 100%;
    border-collapse: collapse;
}
.db-table thead th {
    background: #151515; color: #fff;
    font-size: 0.75rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.03em;
    padding: 0.65rem 1rem;
    text-align: left;
}
.db-table tbody td {
    font-size: 0.85rem; color: #151515;
    padding: 0.65rem 1rem;
    border-bottom: 1px solid #EEEFF0;
}
.db-table tbody tr:hover {
    background: rgba(227,72,36,0.03);
}
.db-table-action {
    width: 32px; height: 32px;
    border: 1px solid rgba(107,114,128,0.15);
    background: transparent;
    display: inline-flex; align-items: center; justify-content: center;
    color: #6b7280;
    text-decoration: none;
    transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.db-table-action:hover {
    border-color: #E34824; color: #E34824;
    background: rgba(227,72,36,0.04);
}

/* --- Gare per stato grid --- */
.db-gare-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.6rem;
}
.db-gare-stat {
    border: 1px solid #e0e1e3;
    padding: 0.85rem 0.6rem;
    text-align: center;
    transition: border-color 0.2s ease;
}
.db-gare-stat:hover { border-color: #E34824; }
.db-gare-stat-num {
    font-size: 1.35rem; font-weight: 700; color: #E34824;
}
.db-gare-stat-label {
    font-size: 0.68rem; font-weight: 600; color: #6b7280;
    text-transform: uppercase; letter-spacing: 0.02em;
    margin-top: 0.2rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* --- Sidebar (kept for responsive fallback) --- */
.db-sidebar-sticky {
    position: sticky;
    top: 72px;
    z-index: 10;
}
.db-quick-link {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.65rem 1rem;
    font-size: 0.82rem; font-weight: 500; color: #6b7280;
    text-decoration: none;
    border-bottom: 1px solid #EEEFF0;
    transition: background 0.15s, color 0.15s;
}
.db-quick-link:hover {
    background: rgba(227,72,36,0.04);
    color: #E34824;
    text-decoration: none;
}
.db-quick-link:last-child { border-bottom: none; }
.db-quick-link i { font-size: 1rem; width: 20px; text-align: center; }
.db-quick-sep {
    border-top: 1px solid #EEEFF0;
    margin: 0;
}

/* --- Calendar card --- */
.db-cal-card {
    background: #fff;
    border: 1px solid #e0e1e3;
    overflow: hidden;
}
.db-cal-header {
    position: relative;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.db-cal-header::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
    background: #E34824;
}
.db-cal-body { padding: 1rem 1.25rem; }

/* --- Legend --- */
.db-legend {
    display: flex; flex-wrap: wrap; gap: 0.35rem 1rem;
}
.db-legend-item {
    display: flex; align-items: center; gap: 0.3rem;
    font-size: 0.75rem; color: #6b7280; font-weight: 500;
}
.db-legend-dot {
    width: 10px; height: 10px; flex-shrink: 0;
}

/* --- FullCalendar overrides --- */
.db-cal-body .fc-event { border-radius: 0 !important; font-size: 0.78rem; }
.db-cal-body .fc .fc-button { border-radius: 0 !important; }
.db-cal-body .fc .fc-button-primary {
    background-color: #E34824; border-color: #E34824;
}
.db-cal-body .fc .fc-button-primary:hover {
    background-color: #c93d1e;
}
.db-cal-body .fc .fc-button-primary:not(:disabled).fc-button-active {
    background-color: #151515;
}
.db-cal-body .fc .fc-daygrid-day.fc-day-today {
    background: rgba(227,72,36,0.04);
}
.db-cal-body .fc .fc-toolbar-title {
    font-size: 1.1rem; font-weight: 700; color: #151515;
}

/* --- Targa badge inline --- */
.db-targa {
    display: inline-flex;
    padding: 0.15rem 0.5rem;
    font-size: 0.72rem; font-weight: 700;
    background: rgba(21,21,21,0.06);
    border: 1px solid rgba(21,21,21,0.15);
    color: #151515;
    letter-spacing: 0.02em;
    margin-right: 0.35rem;
}

/* --- Empty state --- */
.db-empty {
    text-align: center;
    padding: 2rem 1rem;
    color: #6b7280;
    font-size: 0.85rem;
}
.db-empty i {
    font-size: 2rem;
    color: #e0e1e3;
    display: block;
    margin-bottom: 0.5rem;
}

/* ===================================================
    RESPONSIVE
=================================================== */
@media (max-width: 991.98px) {
    .db-content > .db-card {
        flex: 0 0 100%;
    }
    .db-row-2 {
        flex-direction: column;
    }
    .db-stats {
        grid-template-columns: repeat(2, 1fr);
    }
    .db-inline-stats {
        grid-template-columns: repeat(3, 1fr);
    }
    .db-gare-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 575.98px) {
    .db-page { padding: 1rem; }
    .db-stats {
        grid-template-columns: 1fr 1fr;
    }
    .db-inline-stats {
        grid-template-columns: repeat(2, 1fr);
    }
    .db-gare-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .db-hero {
        flex-direction: column;
        align-items: flex-start;
    }
    .db-hero-name {
        font-size: 1.15rem;
    }
    .db-hero-roles { width: 100%; }
}

/* ============================================
    MEZZI INDEX PAGE STYLES
============================================ */

/* ── Variabili ──────────────────────────────────────────── */

/* ── Layout pagina ──────────────────────────────────────── */
.mi-page { padding: 2rem; }

/* ── Header ─────────────────────────────────────────────── */
.mi-header {
    display: flex; align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 1.5rem;
    flex-wrap: wrap; gap: 1rem;
}
.mi-header-left h1 {
    font-size: 1.45rem; font-weight: 700;
    color: var(--cb-dark); letter-spacing: -0.025em;
    margin: 0 0 0.25rem; display: flex; align-items: center; gap: 0.5rem;
}
.mi-header-left h1 svg { color: var(--cb-accent); flex-shrink: 0; }
.mi-header-left p { font-size: 0.85rem; color: var(--cb-gray); margin: 0; }

/* ── Bottoni ────────────────────────────────────────────── */
.mi-btn {
    padding: 0.5rem 1.1rem; font-weight: 600; font-size: 0.82rem;
    border-radius: 0; display: inline-flex; align-items: center;
    gap: 0.4rem; text-decoration: none; cursor: pointer;
    transition: background 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s;
    border: 2px solid;
}
.mi-btn-green  { background: var(--cb-green); color: #fff; border-color: var(--cb-green); }
.mi-btn-green:hover  { background: #047857; border-color: #047857; color: #fff; box-shadow: 0 2px 8px rgba(5,150,105,0.2); }
.mi-btn-accent { background: var(--cb-accent); color: #fff; border-color: var(--cb-accent); }
.mi-btn-accent:hover { background: var(--cb-accent-hover); border-color: var(--cb-accent-hover); color: #fff; }

/* ── Alert TempData ─────────────────────────────────────── */
.mi-alert {
    border-radius: 0; border: 1px solid var(--cb-border);
    padding: 0.85rem 1.25rem; font-size: 0.85rem;
    display: flex; align-items: center; gap: 0.5rem;
    margin-bottom: 1.5rem;
}
.mi-alert-success { border-left: 4px solid var(--cb-green); background: rgba(5,150,105,0.05); }
.mi-alert-success i { color: var(--cb-green); }
.mi-alert-danger  { border-left: 4px solid var(--cb-danger); background: rgba(220,38,38,0.04); }
.mi-alert-danger i  { color: var(--cb-danger); }
.mi-alert-close {
    margin-left: auto; background: none; border: none;
    color: var(--cb-muted); cursor: pointer; font-size: 1rem; padding: 0;
}
.mi-alert-close:hover { color: var(--cb-dark); }

/* ── Card filtri ────────────────────────────────────────── */
.mi-card {
    background: var(--cb-white); border: 1px solid var(--cb-border);
    border-radius: 0; overflow: hidden; margin-bottom: 1rem;
}
.mi-card-header {
    position: relative; padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--cb-border);
    display: flex; align-items: center; gap: 0.75rem;
}
.mi-card-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
}
.mi-card-header--gray::before   { background: var(--cb-gray); }
.mi-card-header--accent::before { background: var(--cb-accent); }

.mi-icon-box {
    width: 34px; height: 34px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center; border: 1px solid;
}
.mi-icon-box--gray   { background: rgba(107,114,128,0.08); border-color: rgba(107,114,128,0.15); }
.mi-icon-box--gray i { color: var(--cb-gray); }
.mi-icon-box--accent   { background: rgba(227,72,36,0.08); border-color: rgba(227,72,36,0.15); }
.mi-icon-box--accent i { color: var(--cb-accent); }

.mi-card-title { font-size: 0.88rem; font-weight: 700; color: var(--cb-dark); margin: 0; }
.mi-card-body  { padding: 1.5rem; }

/* ── Pannello filtri collapse ────────────────────────────── */
.mi-filter-body { display: none; }
.mi-filter-body.open { display: block; }
.mi-toggle-btn {
    background: none; border: none; padding: 0; cursor: pointer;
    color: var(--cb-gray); display: flex; align-items: center; gap: 0.35rem;
    font-size: 0.8rem; font-weight: 600; margin-left: auto;
}
.mi-toggle-btn i { transition: transform 0.2s ease; }
.mi-toggle-btn.collapsed i { transform: rotate(-90deg); }
.mi-toggle-btn:hover { color: var(--cb-dark); }

/* ── Form elementi ──────────────────────────────────────── */
.mi-form-label {
    font-size: 0.8rem; font-weight: 600; text-transform: uppercase;
    letter-spacing: 0.04em; color: var(--cb-dark);
    display: block; margin-bottom: 0.35rem;
}
.mi-form-control,
.mi-form-select {
    border: 1px solid var(--cb-border); font-size: 0.85rem;
    border-radius: 0; padding: 0.45rem 0.75rem;
    width: 100%; background: #fff; color: var(--cb-dark);
    transition: border-color 0.2s, box-shadow 0.2s;
}
.mi-form-control:focus,
.mi-form-select:focus {
    outline: none; border-color: var(--cb-accent);
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}
.mi-input-group { display: flex; }
.mi-input-group-text {
    background: var(--cb-light); border: 1px solid var(--cb-border); border-right: none;
    padding: 0.45rem 0.65rem; color: var(--cb-gray); font-size: 0.85rem;
    display: flex; align-items: center;
}
.mi-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr 2fr auto;
    gap: 0.85rem;
    align-items: end;
}

.mi-btn-filter {
    padding: 0.45rem 1.1rem; font-weight: 600; font-size: 0.82rem;
    border-radius: 0; display: inline-flex; align-items: center;
    gap: 0.4rem; cursor: pointer; border: 2px solid;
    background: var(--cb-accent); color: #fff; border-color: var(--cb-accent);
    transition: background 0.2s;
}
.mi-btn-filter:hover { background: var(--cb-accent-hover); border-color: var(--cb-accent-hover); }

/* ── Tabella ────────────────────────────────────────────── */
.mi-table-wrap {
    background: var(--cb-white); border: 1px solid var(--cb-border); overflow-x: auto;
}
.mi-table {
    width: 100%; border-collapse: collapse; font-size: 0.85rem;
}
.mi-table thead th {
    background: var(--cb-dark); color: #fff;
    font-size: 0.75rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.03em;
    padding: 0.7rem 1rem; white-space: nowrap; border: none;
}
.mi-table thead th:last-child { text-align: right; }
.mi-table tbody td {
    padding: 0.75rem 1rem; border-bottom: 1px solid var(--cb-light);
    color: var(--cb-dark); vertical-align: middle;
}
.mi-table tbody tr:last-child td { border-bottom: none; }
.mi-table tbody tr:hover td { background: rgba(227,72,36,0.03); }

/* Targa */
.mi-targa {
    font-weight: 700; font-size: 0.88rem; color: var(--cb-dark);
    font-family: monospace; letter-spacing: 0.05em;
}
/* Veicolo */
.mi-veicolo { font-size: 0.85rem; color: var(--cb-dark); font-weight: 500; }

/* Info secondaria sotto badge */
.mi-sub { font-size: 0.72rem; color: var(--cb-muted); margin-top: 0.2rem; display: block; }
.mi-sub-info { font-size: 0.72rem; color: var(--cb-cyan); margin-top: 0.2rem; display: block; }

/* KM */
.mi-km { font-size: 0.82rem; color: var(--cb-dark); font-variant-numeric: tabular-nums; }
.mi-km-empty { font-size: 0.82rem; color: var(--cb-muted); font-style: italic; }

/* Alert icone colonna ────────────────────────────────────── */
.mi-alerts { display: flex; align-items: center; gap: 0.35rem; }
.mi-alert-icon { font-size: 1rem; }
.mi-alert-icon--warn   { color: var(--cb-amber); }
.mi-alert-icon--danger { color: var(--cb-danger); }

/* ── Badge ──────────────────────────────────────────────── */
.mi-badge {
    display: inline-flex; align-items: center; gap: 0.25rem;
    padding: 0.2rem 0.55rem; font-size: 0.68rem; font-weight: 600;
    border: 1px solid; border-radius: 0;
    text-transform: uppercase; letter-spacing: 0.03em;
}
.mi-badge-success   { background: rgba(5,150,105,0.06);  color: var(--cb-green);   border-color: rgba(5,150,105,0.2); }
.mi-badge-primary   { background: rgba(227,72,36,0.06);  color: var(--cb-accent);  border-color: rgba(227,72,36,0.2); }
.mi-badge-info      { background: rgba(8,145,178,0.06);  color: var(--cb-cyan);    border-color: rgba(8,145,178,0.2); }
.mi-badge-warn      { background: rgba(217,119,6,0.06);  color: var(--cb-amber);   border-color: rgba(217,119,6,0.2); }
.mi-badge-danger    { background: rgba(220,38,38,0.06);  color: var(--cb-danger);  border-color: rgba(220,38,38,0.2); }
.mi-badge-secondary { background: rgba(107,114,128,0.06);color: var(--cb-gray);    border-color: rgba(107,114,128,0.2); }
.mi-badge-dark      { background: rgba(21,21,21,0.06);   color: var(--cb-dark);    border-color: rgba(21,21,21,0.2); }

/* ── Bottoni azione tabella ─────────────────────────────── */
.mi-actions { display: flex; align-items: center; justify-content: flex-end; gap: 0.25rem; }
.mi-action-btn {
    width: 32px; height: 32px; border: 1px solid; background: transparent;
    display: inline-flex; align-items: center; justify-content: center;
    text-decoration: none; transition: background 0.15s, border-color 0.15s;
    font-size: 0.85rem; border-radius: 0; cursor: pointer;
}
.mi-action-btn--green  { border-color: rgba(5,150,105,0.2);  color: var(--cb-green); }
.mi-action-btn--green:hover  { background: rgba(5,150,105,0.08);  border-color: var(--cb-green); }
.mi-action-btn--cyan   { border-color: rgba(8,145,178,0.2);   color: var(--cb-cyan); }
.mi-action-btn--cyan:hover   { background: rgba(8,145,178,0.08);   border-color: var(--cb-cyan); }
.mi-action-btn--amber  { border-color: rgba(217,119,6,0.2);   color: var(--cb-amber); }
.mi-action-btn--amber:hover  { background: rgba(217,119,6,0.08);   border-color: var(--cb-amber); }
.mi-action-btn--danger { border-color: rgba(220,38,38,0.2);   color: var(--cb-danger); }
.mi-action-btn--danger:hover { background: rgba(220,38,38,0.08);   border-color: var(--cb-danger); }

/* ── Empty state ────────────────────────────────────────── */
.mi-empty {
    padding: 3rem 2rem; text-align: center;
    background: var(--cb-white); border: 1px solid var(--cb-border);
}
.mi-empty-icon  { font-size: 2.5rem; color: var(--cb-muted); }
.mi-empty-title { font-size: 1rem; font-weight: 700; color: var(--cb-dark); margin: 0.75rem 0 0.4rem; }
.mi-empty-text  { font-size: 0.85rem; color: var(--cb-gray); }

/* ── Responsive ─────────────────────────────────────────── */
@media (max-width: 991.98px) {
    .mi-form-row { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 575.98px) {
    .mi-form-row { grid-template-columns: 1fr; }
    .mi-header    { flex-direction: column; }
}

/* ============================================
    MEZZI CREATE PAGE STYLES
============================================ */

/* ── Variabili ──────────────────────────────────────────── */

/* ── Layout ─────────────────────────────────────────────── */
.mc-page { padding: 2rem; }

/* ── Breadcrumb ─────────────────────────────────────────── */
.mc-breadcrumb {
    display: flex; align-items: center; gap: 0.4rem;
    font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem;
}
.mc-breadcrumb a { color: var(--cb-accent); text-decoration: none; font-weight: 500; }
.mc-breadcrumb a:hover { color: var(--cb-accent-hover); text-decoration: underline; }
.mc-breadcrumb .mc-sep { color: var(--cb-border); }
.mc-breadcrumb .mc-current { color: var(--cb-gray); font-weight: 500; }

/* ── Header ─────────────────────────────────────────────── */
.mc-header { margin-bottom: 1.5rem; }
.mc-header h1 {
    font-size: 1.45rem; font-weight: 700; color: var(--cb-dark);
    letter-spacing: -0.025em; margin: 0;
    display: flex; align-items: center; gap: 0.5rem;
}
.mc-header h1 svg { color: var(--cb-green); flex-shrink: 0; }

/* ── Card ───────────────────────────────────────────────── */
.mc-card {
    background: var(--cb-white); border: 1px solid var(--cb-border);
    border-radius: 0; overflow: hidden; margin-bottom: 1rem;
}
.mc-card-header {
    position: relative; padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--cb-border);
    display: flex; align-items: center; gap: 0.75rem;
}
.mc-card-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
}
.mc-card-header--accent::before  { background: var(--cb-accent); }
.mc-card-header--cyan::before    { background: var(--cb-cyan); }
.mc-card-header--amber::before   { background: var(--cb-amber); }
.mc-card-header--green::before   { background: var(--cb-green); }
.mc-card-header--gray::before    { background: var(--cb-gray); }
.mc-card-header--neutral::before { background: var(--cb-border); }

.mc-icon-box {
    width: 34px; height: 34px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center; border: 1px solid;
}
.mc-icon-box--accent  { background: rgba(227,72,36,0.08);  border-color: rgba(227,72,36,0.15); }
.mc-icon-box--accent i  { color: var(--cb-accent); }
.mc-icon-box--cyan    { background: rgba(8,145,178,0.08);  border-color: rgba(8,145,178,0.15); }
.mc-icon-box--cyan i    { color: var(--cb-cyan); }
.mc-icon-box--amber   { background: rgba(217,119,6,0.08);  border-color: rgba(217,119,6,0.15); }
.mc-icon-box--amber i   { color: var(--cb-amber); }
.mc-icon-box--green   { background: rgba(5,150,105,0.08);  border-color: rgba(5,150,105,0.15); }
.mc-icon-box--green i   { color: var(--cb-green); }
.mc-icon-box--gray    { background: rgba(107,114,128,0.08);border-color: rgba(107,114,128,0.15); }
.mc-icon-box--gray i    { color: var(--cb-gray); }
.mc-icon-box--neutral { background: rgba(224,225,227,0.4); border-color: var(--cb-border); }
.mc-icon-box--neutral i { color: var(--cb-muted); }

.mc-card-title { font-size: 0.88rem; font-weight: 700; color: var(--cb-dark); margin: 0; }
.mc-card-body  { padding: 1.5rem; }

/* ── Titoli sezione form ─────────────────────────────────── */
.mc-section-title {
    font-size: 0.82rem; font-weight: 600; text-transform: uppercase;
    letter-spacing: 0.03em; color: var(--cb-gray);
    display: flex; align-items: center; gap: 0.4rem;
    margin-bottom: 0.75rem;
}
.mc-section-title i { color: var(--cb-accent); }
.mc-sep { border-top: 1px solid var(--cb-light); margin: 1.25rem 0; }

/* ── Form elementi ──────────────────────────────────────── */
.mc-form-label {
    font-size: 0.8rem; font-weight: 600; text-transform: uppercase;
    letter-spacing: 0.04em; color: var(--cb-dark);
    display: block; margin-bottom: 0.35rem;
}
.mc-form-control,
.mc-form-select {
    border: 1px solid var(--cb-border); font-size: 0.85rem;
    border-radius: 0; padding: 0.45rem 0.75rem;
    width: 100%; background: #fff; color: var(--cb-dark);
    transition: border-color 0.2s, box-shadow 0.2s;
}
.mc-form-control:focus,
.mc-form-select:focus {
    outline: none; border-color: var(--cb-accent);
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}
.mc-form-text { font-size: 0.72rem; color: var(--cb-muted); margin-top: 0.25rem; display: block; }
.mc-form-text--success { color: var(--cb-green); }
.mc-form-text--danger  { color: var(--cb-danger); }
.mc-validation { font-size: 0.72rem; color: var(--cb-danger); display: block; margin-top: 0.2rem; }

/* Textarea */
.mc-textarea {
    border: 1px solid var(--cb-border); font-size: 0.85rem;
    border-radius: 0; padding: 0.55rem 0.75rem;
    width: 100%; background: #fff; color: var(--cb-dark);
    resize: vertical; transition: border-color 0.2s, box-shadow 0.2s;
}
.mc-textarea:focus {
    outline: none; border-color: var(--cb-accent);
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}

/* Griglie */
.mc-form-row   { display: grid; gap: 0.85rem; margin-bottom: 0.85rem; }
.mc-form-row-2 { grid-template-columns: repeat(2, 1fr); }
.mc-form-row-3 { grid-template-columns: repeat(3, 1fr); }
.mc-col-full   { grid-column: 1 / -1; }

/* Alert validation summary */
.mc-alert-danger {
    border-radius: 0; border: 1px solid var(--cb-border);
    border-left: 4px solid var(--cb-danger);
    background: rgba(220,38,38,0.04);
    padding: 0.85rem 1.25rem; font-size: 0.85rem;
    margin-bottom: 1.5rem; color: var(--cb-dark);
}

/* ── Barra azioni bottom ────────────────────────────────── */
.mc-actions-card {
    background: var(--cb-white); border: 1px solid var(--cb-border);
    border-radius: 0; padding: 1rem 1.5rem;
    display: flex; align-items: center;
    justify-content: space-between; gap: 1rem;
    flex-wrap: wrap; margin-top: 0.5rem;
}
.mc-btn {
    padding: 0.5rem 1.25rem; font-weight: 600; font-size: 0.85rem;
    border-radius: 0; display: inline-flex; align-items: center;
    gap: 0.4rem; text-decoration: none; cursor: pointer;
    transition: background 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s;
    border: 2px solid;
}
.mc-btn-secondary {
    background: transparent; color: var(--cb-gray); border-color: var(--cb-border);
}
.mc-btn-secondary:hover { border-color: var(--cb-dark); color: var(--cb-dark); }
.mc-btn-green {
    background: var(--cb-green); color: #fff; border-color: var(--cb-green);
}
.mc-btn-green:hover {
    background: #047857; border-color: #047857; color: #fff;
    box-shadow: 0 2px 8px rgba(5,150,105,0.2);
}

/* ── Responsive ─────────────────────────────────────────── */
@media (max-width: 767.98px) {
    .mc-form-row-2 { grid-template-columns: 1fr; }
    .mc-form-row-3 { grid-template-columns: 1fr; }
}

/* ============================================
    MEZZI DETAILS PAGE STYLES
============================================ */

/* ── Variabili ──────────────────────────────────────────── */

/* ── Layout ─────────────────────────────────────────────── */
.md-page { padding: 2rem; }

/* ── Breadcrumb ─────────────────────────────────────────── */
.md-breadcrumb {
    display: flex; align-items: center; gap: 0.4rem;
    font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem;
}
.md-breadcrumb a { color: var(--cb-accent); text-decoration: none; font-weight: 500; }
.md-breadcrumb a:hover { color: var(--cb-accent-hover); text-decoration: underline; }
.md-breadcrumb .md-sep { color: var(--cb-border); }
.md-breadcrumb .md-current { color: var(--cb-gray); font-weight: 500; }

/* ── Header ─────────────────────────────────────────────── */
.md-header {
    display: flex; align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 1.5rem; flex-wrap: wrap; gap: 1rem;
}
.md-header h1 {
    font-size: 1.45rem; font-weight: 700; color: var(--cb-dark);
    letter-spacing: -0.025em; margin: 0;
    display: flex; align-items: center; gap: 0.5rem;
}
.md-header h1 svg { color: var(--cb-accent); flex-shrink: 0; }
.md-header-actions { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }

/* ── Alert scadenze ─────────────────────────────────────── */
.md-alert {
    border-radius: 0; border: 1px solid var(--cb-border);
    padding: 0.85rem 1.25rem; font-size: 0.85rem;
    margin-bottom: 1.5rem; display: flex; align-items: flex-start; gap: 0.75rem;
}
.md-alert--danger { border-left: 4px solid var(--cb-danger); background: rgba(220,38,38,0.04); }
.md-alert--danger .md-alert-icon { color: var(--cb-danger); }
.md-alert--warn   { border-left: 4px solid var(--cb-amber);  background: rgba(217,119,6,0.04); }
.md-alert--warn .md-alert-icon   { color: var(--cb-amber); }
.md-alert-icon { font-size: 1.1rem; flex-shrink: 0; margin-top: 0.1rem; }
.md-alert-title { font-size: 0.85rem; font-weight: 700; margin-bottom: 0.35rem; }
.md-alert-list { list-style: none; padding: 0; margin: 0; font-size: 0.82rem; display: flex; flex-direction: column; gap: 0.2rem; }

/* ── Card ───────────────────────────────────────────────── */
.md-card {
    background: var(--cb-white); border: 1px solid var(--cb-border);
    border-radius: 0; overflow: hidden; margin-bottom: 1rem;
}
.md-card-header {
    position: relative; padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--cb-border);
    display: flex; align-items: center; gap: 0.75rem;
}
.md-card-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
}
.md-card-header--accent::before  { background: var(--cb-accent); }
.md-card-header--cyan::before    { background: var(--cb-cyan); }
.md-card-header--amber::before   { background: var(--cb-amber); }
.md-card-header--green::before   { background: var(--cb-green); }
.md-card-header--danger::before  { background: var(--cb-danger); }
.md-card-header--gray::before    { background: var(--cb-gray); }
.md-card-header--neutral::before { background: var(--cb-border); }

.md-icon-box {
    width: 34px; height: 34px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center; border: 1px solid;
}
.md-icon-box--accent  { background: rgba(227,72,36,0.08);  border-color: rgba(227,72,36,0.15); }
.md-icon-box--accent i  { color: var(--cb-accent); }
.md-icon-box--cyan    { background: rgba(8,145,178,0.08);  border-color: rgba(8,145,178,0.15); }
.md-icon-box--cyan i    { color: var(--cb-cyan); }
.md-icon-box--amber   { background: rgba(217,119,6,0.08);  border-color: rgba(217,119,6,0.15); }
.md-icon-box--amber i   { color: var(--cb-amber); }
.md-icon-box--green   { background: rgba(5,150,105,0.08);  border-color: rgba(5,150,105,0.15); }
.md-icon-box--green i   { color: var(--cb-green); }
.md-icon-box--danger  { background: rgba(220,38,38,0.08);  border-color: rgba(220,38,38,0.15); }
.md-icon-box--danger i  { color: var(--cb-danger); }
.md-icon-box--gray    { background: rgba(107,114,128,0.08);border-color: rgba(107,114,128,0.15); }
.md-icon-box--gray i    { color: var(--cb-gray); }
.md-icon-box--neutral { background: rgba(224,225,227,0.4); border-color: var(--cb-border); }
.md-icon-box--neutral i { color: var(--cb-muted); }

.md-card-title { font-size: 0.88rem; font-weight: 700; color: var(--cb-dark); margin: 0; flex: 1; }
.md-card-body  { padding: 1.5rem; }

/* ── Campi dettaglio ────────────────────────────────────── */
.md-fields-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.5rem; }
.md-field {
    display: flex; flex-direction: column;
    padding: 0.6rem 0; border-bottom: 1px solid var(--cb-light);
}
.md-field:last-child { border-bottom: none; }
.md-field--full { grid-column: 1 / -1; }
.md-field-label {
    font-size: 0.68rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.04em; color: var(--cb-gray); margin-bottom: 0.2rem;
}
.md-field-value { font-size: 0.85rem; color: var(--cb-dark); font-weight: 500; }
.md-field-value--lg { font-size: 1.1rem; font-weight: 700; font-family: monospace; letter-spacing: 0.05em; }
.md-field-empty { font-size: 0.85rem; color: var(--cb-muted); font-style: italic; }
.md-field-sub   { font-size: 0.72rem; color: var(--cb-muted); margin-top: 0.15rem; }

/* ── Badge ──────────────────────────────────────────────── */
.md-badge {
    display: inline-flex; align-items: center; gap: 0.25rem;
    padding: 0.2rem 0.55rem; font-size: 0.68rem; font-weight: 600;
    border: 1px solid; border-radius: 0;
    text-transform: uppercase; letter-spacing: 0.03em;
}
.md-badge-success   { background: rgba(5,150,105,0.06);  color: var(--cb-green);   border-color: rgba(5,150,105,0.2); }
.md-badge-primary   { background: rgba(227,72,36,0.06);  color: var(--cb-accent);  border-color: rgba(227,72,36,0.2); }
.md-badge-info      { background: rgba(8,145,178,0.06);  color: var(--cb-cyan);    border-color: rgba(8,145,178,0.2); }
.md-badge-warn      { background: rgba(217,119,6,0.06);  color: var(--cb-amber);   border-color: rgba(217,119,6,0.2); }
.md-badge-danger    { background: rgba(220,38,38,0.06);  color: var(--cb-danger);  border-color: rgba(220,38,38,0.2); }
.md-badge-secondary { background: rgba(107,114,128,0.06);color: var(--cb-gray);    border-color: rgba(107,114,128,0.2); }
.md-badge-dark      { background: rgba(21,21,21,0.06);   color: var(--cb-dark);    border-color: rgba(21,21,21,0.2); }

/* ── Box info prenotazione ──────────────────────────────── */
.md-info-box {
    background: rgba(8,145,178,0.04); border-left: 3px solid var(--cb-cyan);
    padding: 0.65rem 0.85rem; font-size: 0.82rem; margin-bottom: 1rem;
}
.md-info-box i { color: var(--cb-cyan); margin-right: 0.3rem; }

/* ── Assegnazioni storico ────────────────────────────────── */
.md-assegnazione-item {
    padding: 0.75rem 0; border-bottom: 1px solid var(--cb-light);
    display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem;
}
.md-assegnazione-item:last-child { border-bottom: none; }
.md-assegnazione-nome { font-size: 0.85rem; font-weight: 600; color: var(--cb-dark); margin-bottom: 0.25rem; }
.md-assegnazione-meta { font-size: 0.72rem; color: var(--cb-muted); }
.md-assegnazione-meta-green { font-size: 0.72rem; color: var(--cb-green); }
.md-assegnazione-meta-accent { font-size: 0.72rem; color: var(--cb-accent); }

/* ── Disponibile card ────────────────────────────────────── */
.md-disponibile {
    background: var(--cb-white); border: 1px solid var(--cb-border);
    border-left: 4px solid var(--cb-green);
    padding: 1.5rem; text-align: center; margin-bottom: 1rem;
}
.md-disponibile-icon { font-size: 2rem; color: var(--cb-green); margin-bottom: 0.5rem; }
.md-disponibile-title { font-size: 0.95rem; font-weight: 700; color: var(--cb-green); margin-bottom: 1rem; }

/* ── Note box ────────────────────────────────────────────── */
.md-note-box {
    background: rgba(8,145,178,0.04); border-left: 3px solid var(--cb-cyan);
    padding: 0.75rem 1rem; font-size: 0.85rem; color: var(--cb-dark);
    white-space: pre-wrap;
}

/* ── Sidebar sticky ─────────────────────────────────────── */
.md-sidebar { position: sticky; top: 72px; z-index: 10; }

/* ── Audit fields (vertical) ────────────────────────────── */
.md-sys-label { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--cb-gray); }
.md-sys-value { font-size: 0.82rem; color: var(--cb-dark); margin-top: 0.1rem; }
.md-sys-row   { padding: 0.5rem 0; border-bottom: 1px solid var(--cb-light); }
.md-sys-row:last-child { border-bottom: none; }

/* ── Bottoni ────────────────────────────────────────────── */
.md-btn {
    padding: 0.45rem 1rem; font-weight: 600; font-size: 0.82rem;
    border-radius: 0; display: inline-flex; align-items: center;
    gap: 0.4rem; text-decoration: none; cursor: pointer;
    transition: background 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s;
    border: 2px solid;
}
.md-btn-secondary { background: transparent; color: var(--cb-gray); border-color: var(--cb-border); }
.md-btn-secondary:hover { border-color: var(--cb-dark); color: var(--cb-dark); }
.md-btn-amber  { background: var(--cb-amber); color: #fff; border-color: var(--cb-amber); }
.md-btn-amber:hover  { background: #b45309; border-color: #b45309; color: #fff; box-shadow: 0 2px 8px rgba(217,119,6,0.2); }
.md-btn-danger { background: var(--cb-danger); color: #fff; border-color: var(--cb-danger); }
.md-btn-danger:hover { background: #b91c1c; border-color: #b91c1c; color: #fff; }
.md-btn-green  { background: var(--cb-green); color: #fff; border-color: var(--cb-green); }
.md-btn-green:hover  { background: #047857; border-color: #047857; color: #fff; box-shadow: 0 2px 8px rgba(5,150,105,0.2); }
.md-btn-accent { background: var(--cb-accent); color: #fff; border-color: var(--cb-accent); }
.md-btn-accent:hover { background: var(--cb-accent-hover); border-color: var(--cb-accent-hover); color: #fff; }

/* Outline piccoli sidebar */
.md-btn-outline {
    background: transparent; font-weight: 600; font-size: 0.82rem;
    border-radius: 0; display: inline-flex; align-items: center; gap: 0.35rem;
    text-decoration: none; cursor: pointer; width: 100%; justify-content: center;
    padding: 0.4rem 0.9rem; transition: background 0.15s, border-color 0.15s;
    border: 1px solid;
}
.md-btn-outline--amber { color: var(--cb-amber); border-color: rgba(217,119,6,0.2); }
.md-btn-outline--amber:hover { background: rgba(217,119,6,0.06); border-color: var(--cb-amber); }
.md-btn-outline--danger { color: var(--cb-danger); border-color: rgba(220,38,38,0.2); }
.md-btn-outline--danger:hover { background: rgba(220,38,38,0.06); border-color: var(--cb-danger); }
.md-btn-outline--gray { color: var(--cb-gray); border-color: rgba(107,114,128,0.2); }
.md-btn-outline--gray:hover { background: rgba(107,114,128,0.06); border-color: var(--cb-gray); }
.md-btn-outline--green { color: var(--cb-green); border-color: rgba(5,150,105,0.2); }
.md-btn-outline--green:hover { background: rgba(5,150,105,0.06); border-color: var(--cb-green); }
.md-btn-outline--cyan { color: var(--cb-cyan); border-color: rgba(8,145,178,0.2); }
.md-btn-outline--cyan:hover { background: rgba(8,145,178,0.06); border-color: var(--cb-cyan); }

/* ── Responsive ─────────────────────────────────────────── */
@media (max-width: 991.98px) {
    .md-fields-grid { grid-template-columns: 1fr; }
    .md-field--full { grid-column: 1; }
    .md-sidebar { position: static; }
}
@media (max-width: 575.98px) {
    .md-header { flex-direction: column; }
}

/* ============================================
    MEZZI EDIT PAGE STYLES
============================================ */

/* ── Variabili ──────────────────────────────────────────── */

/* ── Layout ─────────────────────────────────────────────── */
.me-page { padding: 2rem; }

/* ── Breadcrumb ─────────────────────────────────────────── */
.me-breadcrumb {
    display: flex; align-items: center; gap: 0.4rem;
    font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem;
}
.me-breadcrumb a { color: var(--cb-accent); text-decoration: none; font-weight: 500; }
.me-breadcrumb a:hover { color: var(--cb-accent-hover); text-decoration: underline; }
.me-breadcrumb .me-sep { color: var(--cb-border); }
.me-breadcrumb .me-current { color: var(--cb-gray); font-weight: 500; }

/* ── Header ─────────────────────────────────────────────── */
.me-header { margin-bottom: 1.5rem; }
.me-header h1 {
    font-size: 1.45rem; font-weight: 700; color: var(--cb-dark);
    letter-spacing: -0.025em; margin: 0;
    display: flex; align-items: center; gap: 0.5rem;
}
.me-header h1 svg { color: var(--cb-amber); flex-shrink: 0; }

/* ── Card ───────────────────────────────────────────────── */
.me-card {
    background: var(--cb-white); border: 1px solid var(--cb-border);
    border-radius: 0; overflow: hidden; margin-bottom: 1rem;
}
.me-card-header {
    position: relative; padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--cb-border);
    display: flex; align-items: center; gap: 0.75rem;
}
.me-card-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
}
.me-card-header--amber::before   { background: var(--cb-amber); }
.me-card-header--cyan::before    { background: var(--cb-cyan); }
.me-card-header--gray::before    { background: var(--cb-gray); }
.me-card-header--neutral::before { background: var(--cb-border); }

.me-icon-box {
    width: 34px; height: 34px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center; border: 1px solid;
}
.me-icon-box--amber   { background: rgba(217,119,6,0.08);  border-color: rgba(217,119,6,0.15); }
.me-icon-box--amber i   { color: var(--cb-amber); }
.me-icon-box--cyan    { background: rgba(8,145,178,0.08);  border-color: rgba(8,145,178,0.15); }
.me-icon-box--cyan i    { color: var(--cb-cyan); }
.me-icon-box--gray    { background: rgba(107,114,128,0.08);border-color: rgba(107,114,128,0.15); }
.me-icon-box--gray i    { color: var(--cb-gray); }
.me-icon-box--neutral { background: rgba(224,225,227,0.4); border-color: var(--cb-border); }
.me-icon-box--neutral i { color: var(--cb-muted); }

.me-card-title { font-size: 0.88rem; font-weight: 700; color: var(--cb-dark); margin: 0; }
.me-card-body  { padding: 1.5rem; }

/* ── Form elementi ──────────────────────────────────────── */
.me-form-label {
    font-size: 0.8rem; font-weight: 600; text-transform: uppercase;
    letter-spacing: 0.04em; color: var(--cb-dark);
    display: block; margin-bottom: 0.35rem;
}
.me-form-control,
.me-form-select {
    border: 1px solid var(--cb-border); font-size: 0.85rem;
    border-radius: 0; padding: 0.45rem 0.75rem;
    width: 100%; background: #fff; color: var(--cb-dark);
    transition: border-color 0.2s, box-shadow 0.2s;
}
.me-form-control:focus,
.me-form-select:focus {
    outline: none; border-color: var(--cb-accent);
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}
.me-form-text { font-size: 0.72rem; color: var(--cb-muted); margin-top: 0.25rem; display: block; }
.me-form-text--success { color: var(--cb-green); }
.me-form-text--danger  { color: var(--cb-danger); }
.me-form-text--warn    { color: var(--cb-amber); }
.me-validation { font-size: 0.72rem; color: var(--cb-danger); display: block; margin-top: 0.2rem; }

/* Textarea */
.me-textarea {
    border: 1px solid var(--cb-border); font-size: 0.85rem;
    border-radius: 0; padding: 0.55rem 0.75rem;
    width: 100%; background: #fff; color: var(--cb-dark);
    resize: vertical; transition: border-color 0.2s, box-shadow 0.2s;
}
.me-textarea:focus {
    outline: none; border-color: var(--cb-accent);
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}

/* Griglie */
.me-form-row   { display: grid; gap: 0.85rem; margin-bottom: 0.85rem; }
.me-form-row-2 { grid-template-columns: repeat(2, 1fr); }
.me-form-row-3 { grid-template-columns: repeat(3, 1fr); }

/* Alert validation summary */
.me-alert-danger {
    border-radius: 0; border: 1px solid var(--cb-border);
    border-left: 4px solid var(--cb-danger);
    background: rgba(220,38,38,0.04);
    padding: 0.85rem 1.25rem; font-size: 0.85rem;
    margin-bottom: 1.5rem; color: var(--cb-dark);
}

/* ── Barra azioni bottom ────────────────────────────────── */
.me-actions-card {
    background: var(--cb-white); border: 1px solid var(--cb-border);
    border-radius: 0; padding: 1rem 1.5rem;
    display: flex; align-items: center;
    justify-content: space-between; gap: 1rem;
    flex-wrap: wrap; margin-top: 0.5rem;
}
.me-btn {
    padding: 0.5rem 1.25rem; font-weight: 600; font-size: 0.85rem;
    border-radius: 0; display: inline-flex; align-items: center;
    gap: 0.4rem; text-decoration: none; cursor: pointer;
    transition: background 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s;
    border: 2px solid;
}
.me-btn-secondary {
    background: transparent; color: var(--cb-gray); border-color: var(--cb-border);
}
.me-btn-secondary:hover { border-color: var(--cb-dark); color: var(--cb-dark); }
.me-btn-amber {
    background: var(--cb-amber); color: #fff; border-color: var(--cb-amber);
}
.me-btn-amber:hover {
    background: #b45309; border-color: #b45309; color: #fff;
    box-shadow: 0 2px 8px rgba(217,119,6,0.2);
}

/* ── Responsive ─────────────────────────────────────────── */
@media (max-width: 767.98px) {
    .me-form-row-2 { grid-template-columns: 1fr; }
    .me-form-row-3 { grid-template-columns: 1fr; }
}

/* ============================================
    MEZZI DELETE PAGE STYLES
============================================ */

/* ── mdel- prefix: Mezzi Delete ── */
.mdel-page { padding: 2rem; }

/* Breadcrumb */
.mdel-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.mdel-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.mdel-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.mdel-breadcrumb .mdel-sep { color: #e0e1e3; }
.mdel-breadcrumb .mdel-current { color: #6b7280; font-weight: 500; }

/* Page header */
.mdel-page-title { font-size: 1.4rem; font-weight: 700; color: #151515; letter-spacing: -0.025em; margin: 0 0 0.25rem 0; display: flex; align-items: center; gap: 0.6rem; }
.mdel-page-title svg { color: #dc2626; flex-shrink: 0; }
.mdel-page-subtitle { font-size: 0.85rem; color: #6b7280; margin: 0 0 1.5rem 0; }

/* Alert warning */
.mdel-alert-warning {
    border: 1px solid #e0e1e3; border-left: 4px solid #d97706;
    background: rgba(217,119,6,0.04);
    padding: 0.85rem 1.25rem; font-size: 0.85rem;
    display: flex; align-items: flex-start; gap: 0.6rem;
    margin-bottom: 1.5rem;
}
.mdel-alert-warning i { color: #d97706; font-size: 1rem; flex-shrink: 0; margin-top: 0.1rem; }
.mdel-alert-warning-title { font-size: 0.85rem; font-weight: 700; color: #d97706; margin-bottom: 0.25rem; }
.mdel-alert-warning-text { font-size: 0.85rem; color: #151515; margin: 0; }

/* Alert danger (TempData) */
.mdel-alert-danger {
    border: 1px solid #e0e1e3; border-left: 4px solid #dc2626;
    background: rgba(220,38,38,0.04);
    padding: 0.85rem 1.25rem; font-size: 0.85rem;
    display: flex; align-items: center; gap: 0.6rem;
    margin-bottom: 1.5rem;
}
.mdel-alert-danger i { color: #dc2626; }
.mdel-alert-close { margin-left: auto; background: none; border: none; color: #9ca3af; cursor: pointer; font-size: 1rem; padding: 0; line-height: 1; }
.mdel-alert-close:hover { color: #151515; }

/* Card */
.mdel-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; overflow: hidden; margin-bottom: 1.5rem; }
.mdel-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.75rem; }
.mdel-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: #dc2626; }
.mdel-card-icon { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; background: rgba(220,38,38,0.08); border: 1px solid rgba(220,38,38,0.15); color: #dc2626; }
.mdel-card-title { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; }
.mdel-card-body { padding: 1.5rem; }

/* Fields grid */
.mdel-fields-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 0 1.5rem; }
.mdel-field { display: flex; flex-direction: column; padding: 0.6rem 0; border-bottom: 1px solid #EEEFF0; }
.mdel-field:last-child { border-bottom: none; }
.mdel-field-label { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; margin-bottom: 0.2rem; }
.mdel-field-value { font-size: 0.85rem; color: #151515; font-weight: 500; }
.mdel-field-empty { font-size: 0.85rem; color: #9ca3af; font-style: italic; }
.mdel-field--full { grid-column: 1 / -1; }

/* Separatore */
.mdel-sep-section { border-top: 1px solid #EEEFF0; margin: 1rem 0; }

/* Badge */
.mdel-badge {
    display: inline-flex; align-items: center; gap: 0.25rem;
    padding: 0.25rem 0.65rem; font-size: 0.68rem; font-weight: 600;
    border: 1px solid; border-radius: 0;
    text-transform: uppercase; letter-spacing: 0.03em;
}
.mdel-badge-success { background: rgba(5,150,105,0.06); color: #059669; border-color: rgba(5,150,105,0.2); }
.mdel-badge-dark    { background: rgba(21,21,21,0.06);  color: #151515; border-color: rgba(21,21,21,0.2); }
.mdel-badge-info    { background: rgba(8,145,178,0.06); color: #0891b2; border-color: rgba(8,145,178,0.2); }
.mdel-badge-warn    { background: rgba(217,119,6,0.06); color: #d97706; border-color: rgba(217,119,6,0.2); }

/* Targa highlight */
.mdel-targa { font-size: 1rem; font-weight: 700; color: #151515; letter-spacing: 0.04em; }

/* Bottoni */
.mdel-btn {
    display: inline-flex; align-items: center; gap: 0.4rem;
    padding: 0.55rem 1.5rem; font-size: 0.85rem; font-weight: 600;
    border: 2px solid; cursor: pointer; border-radius: 0;
    text-decoration: none; transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.mdel-btn-danger { background: #dc2626; color: #fff; border-color: #dc2626; }
.mdel-btn-danger:hover { background: #b91c1c; border-color: #b91c1c; color: #fff; text-decoration: none; }
.mdel-btn-danger:disabled { opacity: 0.7; cursor: not-allowed; }
.mdel-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.mdel-btn-secondary:hover { border-color: #151515; color: #151515; text-decoration: none; }
.mdel-actions { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 0.5rem; margin-top: 1.5rem; }

/* Spinner inline */
.mdel-spinner-sm {
    width: 14px; height: 14px;
    border: 2px solid rgba(255,255,255,0.4); border-top-color: #fff;
    border-radius: 50%; display: inline-block;
    animation: mdel-spin 0.8s linear infinite; vertical-align: middle;
}
@keyframes mdel-spin { to { transform: rotate(360deg); } }

/* Responsive */
@media (max-width: 991.98px) {
    .mdel-fields-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 575.98px) {
    .mdel-page { padding: 1rem; }
    .mdel-fields-grid { grid-template-columns: 1fr; }
    .mdel-actions { flex-direction: column-reverse; }
    .mdel-btn { width: 100%; justify-content: center; }
}

/* ============================================
    MEZZI > DOCUMENTO DETAILS PAGE STYLES
============================================ */

/* ── mdd- prefix: Mezzi DocumentoDetails ── */
.mdd-page { padding: 2rem; }

/* Breadcrumb */
.mdd-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.mdd-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.mdd-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.mdd-breadcrumb .mdd-sep { color: #e0e1e3; }
.mdd-breadcrumb .mdd-current { color: #6b7280; font-weight: 500; }

/* Page header */
.mdd-page-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; flex-wrap: wrap; }
.mdd-page-title { font-size: 1.4rem; font-weight: 700; color: #151515; letter-spacing: -0.025em; margin: 0; display: flex; align-items: center; gap: 0.6rem; }
.mdd-page-title svg { color: #E34824; flex-shrink: 0; }
.mdd-page-subtitle { font-size: 0.85rem; color: #6b7280; margin: 0.25rem 0 0 0; }

/* Cards */
.mdd-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; overflow: hidden; margin-bottom: 1.5rem; }
.mdd-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; }
.mdd-card-header-left { display: flex; align-items: center; gap: 0.75rem; }
.mdd-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.mdd-card-header--accent::before  { background: #E34824; }
.mdd-card-header--gray::before    { background: #6b7280; }
.mdd-card-header--cyan::before    { background: #0891b2; }
.mdd-card-header--amber::before   { background: #d97706; }
.mdd-card-header--green::before   { background: #059669; }
.mdd-card-header--danger::before  { background: #dc2626; }
.mdd-card-icon { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 1rem; }
.mdd-card-icon--accent  { background: rgba(227,72,36,0.08);  border: 1px solid rgba(227,72,36,0.15);  color: #E34824; }
.mdd-card-icon--gray    { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); color: #6b7280; }
.mdd-card-icon--cyan    { background: rgba(8,145,178,0.08);  border: 1px solid rgba(8,145,178,0.15);  color: #0891b2; }
.mdd-card-icon--amber   { background: rgba(217,119,6,0.08);  border: 1px solid rgba(217,119,6,0.15);  color: #d97706; }
.mdd-card-icon--green   { background: rgba(5,150,105,0.08);  border: 1px solid rgba(5,150,105,0.15);  color: #059669; }
.mdd-card-icon--danger  { background: rgba(220,38,38,0.08);  border: 1px solid rgba(220,38,38,0.15);  color: #dc2626; }
.mdd-card-title { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; }
.mdd-card-body { padding: 1.5rem; }
.mdd-card-body--p0 { padding: 0; }

/* Preview area */
.mdd-preview-pdf { width: 100%; height: 600px; display: block; border: none; }
.mdd-preview-img-wrap { text-align: center; padding: 1.5rem; background: #EEEFF0; }
.mdd-preview-img { max-height: 600px; max-width: 100%; cursor: zoom-in; }
.mdd-preview-img-hint { font-size: 0.72rem; color: #9ca3af; margin: 0.5rem 0 0 0; }
.mdd-preview-text iframe { width: 100%; min-height: 400px; border: none; display: block; }
.mdd-no-preview { text-align: center; padding: 3rem 1.5rem; }
.mdd-no-preview-icon { font-size: 4rem; color: #9ca3af; line-height: 1; margin-bottom: 1rem; opacity: 0.6; }
.mdd-no-preview-title { font-size: 1rem; font-weight: 600; color: #6b7280; margin-bottom: 0.5rem; }
.mdd-no-preview-text { font-size: 0.85rem; color: #9ca3af; margin-bottom: 1.5rem; }

/* Descrizione */
.mdd-desc-text { font-size: 0.85rem; color: #151515; margin: 0; }
.mdd-desc-empty { font-size: 0.85rem; color: #9ca3af; font-style: italic; margin: 0; }

/* Info file rows */
.mdd-info-row { display: flex; justify-content: space-between; align-items: center; padding: 0.55rem 1.25rem; border-bottom: 1px solid #EEEFF0; font-size: 0.82rem; }
.mdd-info-row:last-child { border-bottom: none; }
.mdd-info-label { color: #6b7280; font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; flex-shrink: 0; }
.mdd-info-value { font-size: 0.85rem; color: #151515; font-weight: 500; text-align: right; max-width: 60%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mdd-info-value code { background: #EEEFF0; padding: 0.1rem 0.4rem; font-size: 0.75rem; color: #151515; }

/* Badge */
.mdd-badge {
    display: inline-flex; align-items: center; gap: 0.25rem;
    padding: 0.25rem 0.65rem; font-size: 0.68rem; font-weight: 600;
    border: 1px solid; border-radius: 0;
    text-transform: uppercase; letter-spacing: 0.03em;
}
.mdd-badge-success  { background: rgba(5,150,105,0.06);   color: #059669; border-color: rgba(5,150,105,0.2); }
.mdd-badge-danger   { background: rgba(220,38,38,0.06);   color: #dc2626; border-color: rgba(220,38,38,0.2); }
.mdd-badge-warn     { background: rgba(217,119,6,0.06);   color: #d97706; border-color: rgba(217,119,6,0.2); }
.mdd-badge-info     { background: rgba(8,145,178,0.06);   color: #0891b2; border-color: rgba(8,145,178,0.2); }
.mdd-badge-primary  { background: rgba(227,72,36,0.06);   color: #E34824; border-color: rgba(227,72,36,0.2); }
.mdd-badge-secondary{ background: rgba(107,114,128,0.06); color: #6b7280; border-color: rgba(107,114,128,0.2); }

/* Scadenza countdown */
.mdd-scadenza-date { font-size: 1.5rem; font-weight: 700; color: #151515; text-align: center; margin-bottom: 0.5rem; }
.mdd-scadenza-nota { font-size: 0.72rem; color: #9ca3af; text-align: center; margin-top: 0.75rem; }

/* Entità correlata (Mezzo) */
.mdd-entity { display: flex; justify-content: space-between; align-items: center; padding: 0.85rem 1rem; border: 1px solid #EEEFF0; }
.mdd-entity:hover { background: rgba(227,72,36,0.02); }
.mdd-entity-label { font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; }
.mdd-entity-value { font-size: 0.85rem; color: #151515; font-weight: 500; }
.mdd-entity-sub { font-size: 0.72rem; color: #9ca3af; margin-top: 0.1rem; }

/* Audit */
.mdd-audit-row { padding: 0.6rem 1.25rem; border-bottom: 1px solid #EEEFF0; }
.mdd-audit-row:last-child { border-bottom: none; }
.mdd-audit-label { font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; display: block; margin-bottom: 0.15rem; }
.mdd-audit-value { font-size: 0.82rem; color: #151515; }
.mdd-audit-by { font-size: 0.72rem; color: #9ca3af; }

/* Bottoni */
.mdd-btn {
    display: inline-flex; align-items: center; gap: 0.4rem;
    padding: 0.55rem 1.5rem; font-size: 0.85rem; font-weight: 600;
    border: 2px solid; cursor: pointer; border-radius: 0;
    text-decoration: none; transition: background 0.2s, border-color 0.2s, color 0.2s;
    white-space: nowrap;
}
.mdd-btn-accent    { background: #E34824; color: #fff; border-color: #E34824; }
.mdd-btn-accent:hover { background: #c93d1e; border-color: #c93d1e; color: #fff; text-decoration: none; }
.mdd-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.mdd-btn-secondary:hover { border-color: #151515; color: #151515; text-decoration: none; }
.mdd-btn-danger    { background: #dc2626; color: #fff; border-color: #dc2626; }
.mdd-btn-danger:hover { background: #b91c1c; border-color: #b91c1c; color: #fff; text-decoration: none; }

/* Outline small (sidebar) */
.mdd-btn-sm {
    display: inline-flex; align-items: center; gap: 0.35rem;
    padding: 0.4rem 0.8rem; font-size: 0.82rem; font-weight: 600;
    border: 1px solid; border-radius: 0; cursor: pointer;
    text-decoration: none; transition: background 0.15s, color 0.15s, border-color 0.15s;
    width: 100%;
}
.mdd-btn-sm-accent    { border-color: rgba(227,72,36,0.2);   color: #E34824;  background: transparent; }
.mdd-btn-sm-accent:hover { background: rgba(227,72,36,0.04); border-color: #E34824; color: #E34824; text-decoration: none; }
.mdd-btn-sm-gray      { border-color: rgba(107,114,128,0.2); color: #6b7280;  background: transparent; }
.mdd-btn-sm-gray:hover { background: rgba(107,114,128,0.04); border-color: #6b7280; color: #151515; text-decoration: none; }
.mdd-btn-sm-amber     { border-color: rgba(217,119,6,0.2);   color: #d97706;  background: transparent; }
.mdd-btn-sm-amber:hover { background: rgba(217,119,6,0.04);  border-color: #d97706; color: #d97706; text-decoration: none; }
.mdd-btn-sm-danger    { border-color: rgba(220,38,38,0.2);   color: #dc2626;  background: transparent; }
.mdd-btn-sm-danger:hover { background: rgba(220,38,38,0.04); border-color: #dc2626; color: #dc2626; text-decoration: none; }
.mdd-sidebar-actions { display: flex; flex-direction: column; gap: 0.4rem; }

/* Preview header btn-group */
.mdd-preview-actions { display: flex; gap: 0.4rem; }

/* Modal */
.mdd-modal-content { border-radius: 0 !important; border: 1px solid #e0e1e3; }
.mdd-modal-header { padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; justify-content: space-between; }
.mdd-modal-title { font-size: 0.95rem; font-weight: 700; color: #151515; margin: 0; }
.mdd-modal-body { padding: 1.5rem; }
.mdd-modal-footer { padding: 1rem 1.5rem; border-top: 1px solid #e0e1e3; display: flex; justify-content: flex-end; gap: 0.5rem; }
.mdd-modal-close { background: none; border: none; color: #9ca3af; cursor: pointer; font-size: 1.1rem; line-height: 1; padding: 0; }
.mdd-modal-close:hover { color: #151515; }

/* Sticky sidebar */
@media (min-width: 992px) {
    .mdd-sidebar-sticky { position: sticky; top: 72px; z-index: 10; }
}
@media (max-width: 991.98px) { .mdd-sidebar-sticky { position: static; } }
@media (max-width: 575.98px) { .mdd-page { padding: 1rem; } }

/* ============================================
    MAP PAGE STYLES
============================================ */

/* ── Variabili ──────────────────────────────────────────── */

/* ── Layout pagina ──────────────────────────────────────── */
.mm-page { padding: 2rem; }

/* ── Header ─────────────────────────────────────────────── */
.mm-header {
    display: flex; align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 1.5rem;
    flex-wrap: wrap; gap: 1rem;
}
.mm-header-left h1 {
    font-size: 1.45rem; font-weight: 700;
    color: var(--cb-dark); letter-spacing: -0.025em;
    margin: 0 0 0.25rem; display: flex; align-items: center; gap: 0.5rem;
}
.mm-header-left h1 svg { color: var(--cb-accent); flex-shrink: 0; }
.mm-header-left p { font-size: 0.85rem; color: var(--cb-gray); margin: 0; }
.mm-header-right { display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; }

/* ── Bottone refresh ────────────────────────────────────── */
.mm-btn-accent {
    background: var(--cb-accent); color: #fff; border: 2px solid var(--cb-accent);
    padding: 0.5rem 1.1rem; font-weight: 600; font-size: 0.82rem;
    border-radius: 0; display: inline-flex; align-items: center; gap: 0.4rem;
    cursor: pointer; transition: background 0.2s, box-shadow 0.2s;
}
.mm-btn-accent:hover {
    background: var(--cb-accent-hover); border-color: var(--cb-accent-hover);
    box-shadow: 0 2px 8px rgba(227,72,36,0.2);
}
.mm-last-update { font-size: 0.72rem; color: var(--cb-muted); }

/* ── Card control panel ─────────────────────────────────── */
.mm-control {
    background: var(--cb-white); border: 1px solid var(--cb-border);
    border-radius: 0; overflow: hidden; margin-bottom: 1rem;
}
.mm-control-header {
    position: relative; padding: 0.85rem 1.25rem;
    border-bottom: 1px solid var(--cb-border);
    display: flex; align-items: center; gap: 0.75rem;
    flex-wrap: wrap;
}
.mm-control-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0;
    width: 4px; background: var(--cb-accent);
}
.mm-control-body { padding: 1rem 1.25rem; }

/* ── Stat badges ────────────────────────────────────────── */
.mm-stats { display: flex; align-items: center; flex-wrap: wrap; gap: 0.5rem; }
.mm-stat-badge {
    display: inline-flex; align-items: center; gap: 0.35rem;
    padding: 0.3rem 0.75rem; font-size: 0.75rem; font-weight: 600;
    border: 1px solid; border-radius: 0; text-transform: uppercase; letter-spacing: 0.03em;
}
.mm-stat-badge strong { font-size: 0.88rem; }
.mm-stat-badge--accent  { background: rgba(227,72,36,0.06);  color: var(--cb-accent);  border-color: rgba(227,72,36,0.2); }
.mm-stat-badge--cyan    { background: rgba(8,145,178,0.06);  color: var(--cb-cyan);    border-color: rgba(8,145,178,0.2); }
.mm-stat-badge--green   { background: rgba(5,150,105,0.06);  color: var(--cb-green);   border-color: rgba(5,150,105,0.2); }

/* ── Legenda ────────────────────────────────────────────── */
.mm-legend { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; margin-top: 0.75rem; }
.mm-legend-label {
    font-size: 0.68rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.04em; color: var(--cb-gray); margin-right: 0.25rem;
}
.mm-legend-item { display: flex; align-items: center; gap: 0.4rem; font-size: 0.78rem; color: var(--cb-dark); }
.mm-legend-dot { width: 10px; height: 10px; flex-shrink: 0; }

/* ── Map container ──────────────────────────────────────── */
#map-container {
    position: relative;
    height: calc(100vh - 220px);
    min-height: 500px;
    border: 1px solid var(--cb-border);
    overflow: hidden;
}
#map { height: 100%; width: 100%; z-index: 1; }

/* ── Loading overlay ────────────────────────────────────── */
#loading-overlay {
    position: absolute; top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(255,255,255,0.92);
    display: flex; align-items: center; justify-content: center; z-index: 2000;
}
#loading-overlay.hidden { display: none; }
.mm-spinner {
    width: 32px; height: 32px;
    border: 3px solid var(--cb-light); border-top-color: var(--cb-accent);
    border-radius: 50%; animation: mm-spin 0.8s linear infinite;
}
@keyframes mm-spin { to { transform: rotate(360deg); } }
.mm-loading-text { font-size: 0.85rem; color: var(--cb-gray); margin-top: 0.75rem; }

/* ── Sidebar lista mezzi ────────────────────────────────── */
#sidebar {
    position: absolute; top: 0; right: 0;
    width: 320px; height: 100%;
    background: var(--cb-white);
    border-left: 1px solid var(--cb-border);
    box-shadow: -4px 0 16px rgba(21,21,21,0.08);
    z-index: 1000; overflow-y: auto;
    transition: transform 0.3s ease;
}
#sidebar.collapsed { transform: translateX(100%); }

/* Toggle button */
#sidebar-toggle {
    position: absolute; top: 10px; left: -38px;
    width: 38px; height: 38px;
    background: var(--cb-white); border: 1px solid var(--cb-border);
    border-right: none; cursor: pointer; z-index: 1001;
    display: flex; align-items: center; justify-content: center;
    color: var(--cb-gray); font-size: 1rem; border-radius: 0;
    transition: background 0.15s, color 0.15s;
}
#sidebar-toggle:hover { background: var(--cb-light); color: var(--cb-dark); }

/* Sidebar header */
.mm-sidebar-header {
    position: relative; padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--cb-border);
    display: flex; align-items: center; gap: 0.65rem;
}
.mm-sidebar-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0;
    width: 4px; background: var(--cb-cyan);
}
.mm-sidebar-header-icon {
    width: 30px; height: 30px; flex-shrink: 0;
    background: rgba(8,145,178,0.08); border: 1px solid rgba(8,145,178,0.15);
    display: flex; align-items: center; justify-content: center;
}
.mm-sidebar-header-icon i { color: var(--cb-cyan); font-size: 0.9rem; }
.mm-sidebar-title { font-size: 0.85rem; font-weight: 700; color: var(--cb-dark); margin: 0; }
.mm-sidebar-body { padding: 1rem; }

/* Search input */
.mm-search-wrap { position: relative; margin-bottom: 1rem; }
.mm-search-icon {
    position: absolute; left: 0.65rem; top: 50%;
    transform: translateY(-50%); color: var(--cb-muted); font-size: 0.85rem;
    pointer-events: none;
}
.mm-search-input {
    border: 1px solid var(--cb-border); font-size: 0.82rem;
    border-radius: 0; padding: 0.4rem 0.65rem 0.4rem 2rem;
    width: 100%; transition: border-color 0.2s, box-shadow 0.2s;
}
.mm-search-input:focus {
    outline: none; border-color: var(--cb-accent);
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}

/* Vehicle items */
.mm-vehicle-item {
    padding: 0.65rem 0.75rem;
    border-bottom: 1px solid var(--cb-light);
    transition: background 0.15s;
    border-left: 3px solid transparent;
}
.mm-vehicle-item:hover { background: rgba(227,72,36,0.03); }
.mm-vehicle-item.has-position {
    cursor: pointer; border-left-color: var(--cb-accent);
}
.mm-vehicle-item.has-position:hover { border-left-color: var(--cb-accent-hover); }
.mm-vehicle-item.no-position { opacity: 0.6; border-left-color: var(--cb-border); }
.mm-vehicle-targa { font-size: 0.85rem; font-weight: 700; color: var(--cb-dark); font-family: monospace; letter-spacing: 0.05em; }
.mm-vehicle-sub { font-size: 0.72rem; color: var(--cb-muted); }

/* Status dots */
.mm-status-dot {
    width: 9px; height: 9px; flex-shrink: 0;
    margin-right: 6px; margin-top: 3px;
}
.mm-dot-moving   { background: var(--cb-green); }
.mm-dot-stopped  { background: var(--cb-amber); }
.mm-dot-offline  { background: var(--cb-muted); }
.mm-dot-no-gps   { background: var(--cb-danger); }

/* Leaflet popup override */
.leaflet-popup-content { margin: 10px; line-height: 1.6; }
.leaflet-popup-content h6 { margin-bottom: 6px; color: var(--cb-accent); font-weight: 700; font-size: 0.9rem; }
.leaflet-popup-content small { font-size: 0.78rem; }
.leaflet-popup-content hr { border-color: var(--cb-light); margin: 6px 0; }
.leaflet-popup-content .popup-warn { color: var(--cb-amber); font-size: 0.78rem; }
.leaflet-popup-content .popup-danger { color: var(--cb-danger); font-size: 0.78rem; }
.leaflet-popup-content .popup-label { font-weight: 600; color: var(--cb-gray); text-transform: uppercase; font-size: 0.65rem; letter-spacing: 0.04em; }

/* ── Responsive ─────────────────────────────────────────── */
@media (max-width: 991.98px) {
    .mm-header { flex-direction: column; }
}

@media (max-width: 768px) {
    #map-container {
        height: auto;
        min-height: 0;
        display: flex;
        flex-direction: column;
    }
    #map {
        height: calc(100vh - 280px);
        min-height: 300px;
        width: 100%;
        order: 2;
    }
    #sidebar {
        position: relative;
        top: auto; right: auto;
        width: 100%;
        height: auto;
        max-height: 240px;
        box-shadow: none;
        border-left: none;
        border-bottom: 1px solid var(--cb-border);
        transform: none;
        order: 1;
        padding-bottom: 1em;
    }
    #sidebar.collapsed {
        transform: none;
        display: none;
    }
    #sidebar-toggle {
        position: fixed;
        bottom: 1rem; right: 1rem;
        left: auto; top: auto;
        width: 44px; height: 44px;
        background: var(--cb-white);
        border: 1px solid var(--cb-border);
        box-shadow: 0 2px 8px rgba(21,21,21,0.12);
        z-index: 1001;
        font-size: 1.1rem;
    }
    #loading-overlay { order: 2; }
    .mm-sidebar-body {
        max-height: 160px;
        overflow-y: auto;
    }
}

@media (max-width: 575.98px) {
    .mm-page { padding: 1rem; }
    #map {
        height: calc(100vh - 300px);
        min-height: 250px;
    }
    .mm-stats { flex-wrap: nowrap; }
    .mm-stat-badge { padding: 0.25rem 0.45rem; font-size: 0.68rem; gap: 0.2rem; }
    .mm-stat-badge strong { font-size: 0.78rem; }
    .mm-legend { gap: 0.5rem; }
}


/* ============================================
    STORICO ASSEGNAZIONI MEZZI PAGE STYLES
============================================ */

/* ── msa- prefix: Mezzi StoricoAssegnazioni ── */
.msa-page { padding: 2rem; }

/* Breadcrumb */
.msa-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.msa-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.msa-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.msa-breadcrumb .msa-sep { color: #e0e1e3; }
.msa-breadcrumb .msa-current { color: #6b7280; font-weight: 500; }

/* Page header */
.msa-page-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; flex-wrap: wrap; }
.msa-page-title { font-size: 1.4rem; font-weight: 700; color: #151515; letter-spacing: -0.025em; margin: 0; display: flex; align-items: center; gap: 0.6rem; }
.msa-page-title svg { color: #E34824; flex-shrink: 0; }
.msa-page-subtitle { font-size: 0.85rem; color: #6b7280; margin: 0.25rem 0 0 0; }

/* Info mezzo box */
.msa-mezzo-box {
    background: #fff; border: 1px solid #e0e1e3; border-left: 4px solid #0891b2;
    padding: 0.85rem 1.25rem;
    display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
    margin-bottom: 1.5rem;
}
.msa-mezzo-name { font-size: 0.92rem; font-weight: 600; color: #151515; }
.msa-mezzo-sub  { font-size: 0.78rem; color: #6b7280; margin-top: 0.1rem; }

/* Statistiche */
.msa-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-bottom: 1.5rem; }
.msa-stat { text-align: center; padding: 1.25rem 1rem; border: 1px solid #e0e1e3; background: #fff; }
.msa-stat-num { font-size: 1.75rem; font-weight: 700; line-height: 1; }
.msa-stat-label { font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; margin-top: 0.25rem; }
.msa-stat--accent { }
.msa-stat-num-accent  { color: #E34824; }
.msa-stat-num-green   { color: #059669; }
.msa-stat-num-gray    { color: #6b7280; }
.msa-stat-num-cyan    { color: #0891b2; }

/* Card */
.msa-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; overflow: hidden; margin-bottom: 1.5rem; }
.msa-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.75rem; }
.msa-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: #E34824; }
.msa-card-icon { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 1rem; background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15); color: #E34824; }
.msa-card-title { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; }
.msa-card-body--p0 { padding: 0; }

/* Tabella */
.msa-table { width: 100%; border-collapse: collapse; }
.msa-table thead th {
    background: #151515; color: #fff;
    font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em;
    padding: 0.65rem 0.85rem; border: none; white-space: nowrap;
}
.msa-table tbody tr { border-bottom: 1px solid #EEEFF0; transition: background 0.15s; }
.msa-table tbody tr:last-child { border-bottom: none; }
.msa-table tbody tr:hover { background: rgba(227,72,36,0.03); }
.msa-table tbody tr.msa-row-active { background: rgba(5,150,105,0.03); }
.msa-table tbody tr.msa-row-active:hover { background: rgba(5,150,105,0.05); }
.msa-table tbody td { padding: 0.75rem 0.85rem; font-size: 0.85rem; color: #151515; vertical-align: middle; }

/* Badge */
.msa-badge {
    display: inline-flex; align-items: center; gap: 0.25rem;
    padding: 0.25rem 0.65rem; font-size: 0.68rem; font-weight: 600;
    border: 1px solid; border-radius: 0;
    text-transform: uppercase; letter-spacing: 0.03em;
}
.msa-badge-info      { background: rgba(8,145,178,0.06);   color: #0891b2; border-color: rgba(8,145,178,0.2); }
.msa-badge-danger    { background: rgba(220,38,38,0.06);   color: #dc2626; border-color: rgba(220,38,38,0.2); }
.msa-badge-primary   { background: rgba(227,72,36,0.06);   color: #E34824; border-color: rgba(227,72,36,0.2); }
.msa-badge-secondary { background: rgba(107,114,128,0.06); color: #6b7280; border-color: rgba(107,114,128,0.2); }

/* Testo cella */
.msa-cell-main { font-size: 0.85rem; color: #151515; font-weight: 600; }
.msa-cell-sub  { font-size: 0.72rem; color: #9ca3af; margin-top: 0.1rem; }
.msa-cell-muted { color: #9ca3af; font-size: 0.82rem; }
.msa-cell-date  { font-size: 0.82rem; color: #151515; white-space: nowrap; }
.msa-cell-dur-active { font-size: 0.82rem; color: #E34824; font-weight: 600; }
.msa-cell-km { font-size: 0.82rem; color: #059669; font-weight: 700; }

/* Mezzo link in tabella */
.msa-mezzo-link { color: #E34824; text-decoration: none; font-weight: 600; }
.msa-mezzo-link:hover { color: #c93d1e; text-decoration: underline; }

/* Bottone note tooltip */
.msa-note-btn {
    width: 32px; height: 32px; border-radius: 0;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 0.85rem; cursor: pointer; background: transparent;
    border: 1px solid rgba(8,145,178,0.15); color: #0891b2;
    transition: background 0.15s, border-color 0.15s;
}
.msa-note-btn:hover { background: rgba(8,145,178,0.06); border-color: #0891b2; }

/* Bottone secondario */
.msa-btn-secondary {
    display: inline-flex; align-items: center; gap: 0.4rem;
    padding: 0.5rem 1.25rem; font-size: 0.85rem; font-weight: 600;
    background: transparent; color: #6b7280; border: 2px solid #e0e1e3;
    border-radius: 0; text-decoration: none; cursor: pointer;
    transition: border-color 0.2s, color 0.2s;
}
.msa-btn-secondary:hover { border-color: #151515; color: #151515; text-decoration: none; }

/* Empty state */
.msa-empty { text-align: center; padding: 3rem 1.5rem; }
.msa-empty-icon { font-size: 3.5rem; color: #9ca3af; opacity: 0.5; line-height: 1; margin-bottom: 0.75rem; }
.msa-empty-title { font-size: 1rem; font-weight: 600; color: #6b7280; margin-bottom: 0.35rem; }
.msa-empty-sub { font-size: 0.85rem; color: #9ca3af; margin: 0; }

/* Responsive */
@media (max-width: 991.98px) { .msa-stats { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575.98px) {
    .msa-page { padding: 1rem; }
    .msa-stats { grid-template-columns: 1fr 1fr; }
    .msa-page-header { flex-direction: column; }
}


/* ============================================
    ASSEGNAZIONI > ASSEGNA PAGE STYLES
============================================ */

.mac-page { padding: 2rem; }

/* Breadcrumb */
.mac-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.mac-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.mac-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.mac-breadcrumb .mac-sep { color: #e0e1e3; }
.mac-breadcrumb .mac-current { color: #6b7280; font-weight: 500; }

/* Page header */
.mac-page-title { font-size: 1.4rem; font-weight: 700; color: #151515; letter-spacing: -0.025em; margin: 0 0 0.25rem 0; display: flex; align-items: center; gap: 0.6rem; }
.mac-page-title svg { color: #E34824; flex-shrink: 0; }
.mac-page-subtitle { font-size: 0.85rem; color: #6b7280; margin: 0 0 1.5rem 0; }

/* Info mezzo box */
.mac-mezzo-box {
    background: #fff; border: 1px solid #e0e1e3; border-left: 4px solid #0891b2;
    padding: 0.85rem 1.25rem; margin-bottom: 1.5rem;
    display: flex; align-items: center; gap: 0.6rem;
}
.mac-mezzo-box i { color: #0891b2; font-size: 1.1rem; flex-shrink: 0; }
.mac-mezzo-label { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; }
.mac-mezzo-name  { font-size: 0.9rem; font-weight: 600; color: #151515; }

/* Cards */
.mac-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; overflow: hidden; margin-bottom: 1.5rem; }
.mac-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.75rem; }
.mac-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.mac-card-header--cyan::before   { background: #0891b2; }
.mac-card-header--amber::before  { background: #d97706; }
.mac-card-icon { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 1rem; }
.mac-card-icon--cyan  { background: rgba(8,145,178,0.08);  border: 1px solid rgba(8,145,178,0.15);  color: #0891b2; }
.mac-card-icon--amber { background: rgba(217,119,6,0.08);  border: 1px solid rgba(217,119,6,0.15);  color: #d97706; }
.mac-card-title { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; }
.mac-card-body { padding: 1.5rem; }

/* Alerts calendario */
.mac-alert {
    border: 1px solid #e0e1e3; border-radius: 0;
    padding: 0.75rem 1rem; font-size: 0.85rem;
    display: flex; align-items: flex-start; gap: 0.5rem;
    margin-bottom: 1rem;
}
.mac-alert i { flex-shrink: 0; margin-top: 0.1rem; }
.mac-alert--warning { border-left: 4px solid #d97706; background: rgba(217,119,6,0.04); color: #151515; }
.mac-alert--warning i { color: #d97706; }
.mac-alert--success { border-left: 4px solid #059669; background: rgba(5,150,105,0.04); color: #151515; }
.mac-alert--success i { color: #059669; }

/* Alert tipo assegnazione (dinamico) */
.mac-tipo-alert {
    border: 1px solid #e0e1e3; border-radius: 0;
    padding: 0.75rem 1rem; font-size: 0.82rem;
    display: none; align-items: flex-start; gap: 0.5rem;
    margin-bottom: 1rem;
}
.mac-tipo-alert.visible { display: flex; }
.mac-tipo-alert--indeterminato { border-left: 4px solid #d97706; background: rgba(217,119,6,0.04); color: #151515; }
.mac-tipo-alert--indeterminato i { color: #d97706; }
.mac-tipo-alert--temporanea { border-left: 4px solid #0891b2; background: rgba(8,145,178,0.04); color: #151515; }
.mac-tipo-alert--temporanea i { color: #0891b2; }

/* Validation summary */
.mac-validation {
    border: 1px solid #e0e1e3; border-left: 4px solid #dc2626;
    background: rgba(220,38,38,0.04); padding: 0.85rem 1.25rem;
    font-size: 0.85rem; margin-bottom: 1.5rem;
}
.mac-validation ul { margin: 0; padding-left: 1.25rem; }

/* Legenda */
.mac-legenda { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 0.75rem; }
.mac-legenda-item { display: flex; align-items: center; gap: 0.4rem; font-size: 0.78rem; color: #6b7280; }
.mac-legenda-color { width: 14px; height: 14px; flex-shrink: 0; }
.mac-legenda-sep { border-top: 1px solid #EEEFF0; margin-top: 1rem; padding-top: 0.85rem; }
.mac-legenda-title { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; margin-bottom: 0.5rem; }

/* FullCalendar override */
#mac-calendario { max-height: 500px; margin-bottom: 1rem; }
#mac-calendario .fc-event { cursor: pointer; border-radius: 0 !important; font-size: 0.8rem; }
#mac-calendario .fc .fc-button { border-radius: 0 !important; }
#mac-calendario .fc .fc-button-primary { background-color: #E34824; border-color: #E34824; }
#mac-calendario .fc .fc-button-primary:hover { background-color: #c93d1e; }
#mac-calendario .fc .fc-button-primary:not(:disabled).fc-button-active { background-color: #151515; }
#mac-calendario .fc .fc-daygrid-day.fc-day-today { background: rgba(227,72,36,0.04); }
#mac-calendario .fc .fc-toolbar-title { font-size: 1rem; font-weight: 700; color: #151515; }

/* Form sezioni */
.mac-form-section-title {
    font-size: 0.82rem; font-weight: 600; color: #6b7280;
    text-transform: uppercase; letter-spacing: 0.03em;
    display: flex; align-items: center; gap: 0.4rem;
    margin-bottom: 0.75rem; padding-bottom: 0.5rem;
    border-bottom: 1px solid #EEEFF0;
}
.mac-form-section-title i { color: #E34824; }
.mac-sep-section { border-top: 1px solid #EEEFF0; margin: 1.25rem 0; }

.mac-label {
    font-size: 0.8rem; font-weight: 600; color: #151515;
    text-transform: uppercase; letter-spacing: 0.04em;
    display: block; margin-bottom: 0.35rem;
}
.mac-required { color: #dc2626; margin-left: 0.2rem; }
.mac-form-control {
    border: 1px solid #e0e1e3; border-radius: 0;
    font-size: 0.85rem; color: #151515;
    padding: 0.5rem 0.75rem; width: 100%; background: #fff;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.mac-form-control:focus {
    outline: none; border-color: #E34824;
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}
.mac-form-control[readonly] { background: #EEEFF0; }
textarea.mac-form-control { resize: vertical; }
.mac-form-text { font-size: 0.72rem; color: #9ca3af; margin-top: 0.25rem; }
.mac-form-text--warn { color: #d97706; }
.mac-field-error { font-size: 0.72rem; color: #dc2626; margin-top: 0.25rem; display: block; }
.mac-field-group { margin-bottom: 1rem; }

/* DataEntry note box */
.mac-dataentry-note {
    background: rgba(217,119,6,0.04); border-left: 3px solid #d97706;
    padding: 0.5rem 0.75rem; font-size: 0.72rem; color: #d97706;
    margin-top: 0.25rem;
}

/* Bottoni */
.mac-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem;
    padding: 0.55rem 1.5rem; font-size: 0.85rem; font-weight: 600;
    border: 2px solid; cursor: pointer; border-radius: 0; width: 100%;
    text-decoration: none; transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.mac-btn-green     { background: #059669; color: #fff; border-color: #059669; }
.mac-btn-green:hover { background: #047857; border-color: #047857; color: #fff; }
.mac-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.mac-btn-secondary:hover { border-color: #151515; color: #151515; text-decoration: none; }
.mac-btn-actions { display: flex; flex-direction: column; gap: 0.5rem; margin-top: 1.5rem; }

/* Sticky sidebar */
@media (min-width: 992px) { .mac-sidebar-sticky { position: sticky; top: 72px; z-index: 10; } }
@media (max-width: 991.98px) { .mac-sidebar-sticky { position: static; } }
@media (max-width: 575.98px) { .mac-page { padding: 1rem; } }

/* ============================================
    SCADENZE MEZZI PAGE STYLES
============================================ */

/* ── msci- prefix: Mezzi ScadenzaCreate Index ── */
.msci-page { padding: 2rem; }

/* Page header */
.msci-page-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; flex-wrap: wrap; }
.msci-page-title { font-size: 1.4rem; font-weight: 700; color: #151515; letter-spacing: -0.025em; margin: 0; display: flex; align-items: center; gap: 0.6rem; }
.msci-page-title svg { color: #E34824; flex-shrink: 0; }
.msci-page-subtitle { font-size: 0.85rem; color: #6b7280; margin: 0.25rem 0 0 0; }
.msci-header-actions { display: flex; gap: 0.5rem; flex-wrap: wrap; align-items: center; }

/* Bottoni */
.msci-btn {
    display: inline-flex; align-items: center; gap: 0.4rem;
    padding: 0.55rem 1.25rem; font-size: 0.85rem; font-weight: 600;
    border: 2px solid; cursor: pointer; border-radius: 0;
    text-decoration: none; transition: background 0.2s, border-color 0.2s, color 0.2s;
    white-space: nowrap;
}
.msci-btn-green     { background: #059669; color: #fff; border-color: #059669; }
.msci-btn-green:hover { background: #047857; border-color: #047857; color: #fff; text-decoration: none; }
.msci-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.msci-btn-secondary:hover { border-color: #151515; color: #151515; text-decoration: none; }
.msci-btn-sm {
    display: inline-flex; align-items: center; gap: 0.3rem;
    padding: 0.4rem 0.8rem; font-size: 0.82rem; font-weight: 600;
    border: 1px solid; border-radius: 0; cursor: pointer;
    text-decoration: none; transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.msci-btn-sm-cyan    { border-color: rgba(8,145,178,0.2);   color: #0891b2; background: transparent; }
.msci-btn-sm-cyan:hover { background: rgba(8,145,178,0.06); border-color: #0891b2; color: #0891b2; text-decoration: none; }
.msci-btn-sm-amber   { border-color: rgba(217,119,6,0.2);   color: #d97706; background: transparent; }
.msci-btn-sm-amber:hover { background: rgba(217,119,6,0.06); border-color: #d97706; color: #d97706; text-decoration: none; }

/* Alerts TempData */
.msci-alert {
    border: 1px solid #e0e1e3; border-radius: 0;
    padding: 0.85rem 1.25rem; font-size: 0.85rem;
    display: flex; align-items: center; gap: 0.5rem;
    margin-bottom: 1rem;
}
.msci-alert--success { border-left: 4px solid #059669; background: rgba(5,150,105,0.04); }
.msci-alert--success i { color: #059669; }
.msci-alert--danger  { border-left: 4px solid #dc2626; background: rgba(220,38,38,0.04); }
.msci-alert--danger  i { color: #dc2626; }
.msci-alert-close { margin-left: auto; background: none; border: none; color: #9ca3af; cursor: pointer; font-size: 1rem; padding: 0; line-height: 1; }
.msci-alert-close:hover { color: #151515; }

/* Card filtri */
.msci-filter-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; margin-bottom: 1rem; }
.msci-filter-header { position: relative; padding: 0.85rem 1.25rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; cursor: pointer; }
.msci-filter-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: #6b7280; }
.msci-filter-title { font-size: 0.82rem; font-weight: 600; color: #6b7280; text-transform: uppercase; letter-spacing: 0.03em; display: flex; align-items: center; gap: 0.4rem; }
.msci-filter-title i { color: #E34824; }
.msci-filter-toggle { background: none; border: none; color: #9ca3af; cursor: pointer; padding: 0; font-size: 0.9rem; transition: transform 0.2s; }
.msci-filter-toggle.collapsed { transform: rotate(-90deg); }
.msci-filter-body { padding: 1.25rem; display: none; }
.msci-filter-body.open { display: block; }

/* Form filtri */
.msci-filter-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0.85rem; align-items: end; }
.msci-label { font-size: 0.78rem; font-weight: 600; color: #151515; text-transform: uppercase; letter-spacing: 0.04em; display: block; margin-bottom: 0.3rem; }
.msci-form-control {
    border: 1px solid #e0e1e3; border-radius: 0;
    font-size: 0.82rem; color: #151515;
    padding: 0.45rem 0.7rem; width: 100%; background: #fff;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.msci-form-control:focus { outline: none; border-color: #E34824; box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
.msci-search-wrap { position: relative; }
.msci-search-icon { position: absolute; left: 0.65rem; top: 50%; transform: translateY(-50%); color: #9ca3af; pointer-events: none; font-size: 0.82rem; }
.msci-search-input { padding-left: 2rem; }
.msci-filter-actions { display: flex; gap: 0.4rem; }
.msci-btn-filter-submit {
    display: inline-flex; align-items: center; justify-content: center; gap: 0.3rem;
    padding: 0.45rem 1rem; font-size: 0.82rem; font-weight: 600;
    background: #E34824; color: #fff; border: 2px solid #E34824; border-radius: 0; cursor: pointer;
    transition: background 0.2s; white-space: nowrap;
}
.msci-btn-filter-submit:hover { background: #c93d1e; border-color: #c93d1e; }
.msci-btn-filter-reset {
    display: inline-flex; align-items: center; justify-content: center;
    padding: 0.45rem 0.7rem; font-size: 0.82rem; font-weight: 600;
    background: transparent; color: #6b7280; border: 2px solid #e0e1e3; border-radius: 0;
    text-decoration: none; transition: border-color 0.2s, color 0.2s;
}
.msci-btn-filter-reset:hover { border-color: #151515; color: #151515; }

/* Card tabella */
.msci-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; overflow: hidden; }
.msci-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.75rem; }
.msci-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: #E34824; }
.msci-card-icon { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 1rem; background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15); color: #E34824; }
.msci-card-title { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; }

/* Tabella */
.msci-table { width: 100%; border-collapse: collapse; }
.msci-table thead th {
    background: #151515; color: #fff;
    font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em;
    padding: 0.65rem 0.85rem; border: none; white-space: nowrap;
}
.msci-table thead th.th-right { text-align: right; }
.msci-table thead th.th-center { text-align: center; }
.msci-table tbody tr { border-bottom: 1px solid #EEEFF0; transition: background 0.15s; }
.msci-table tbody tr:last-child { border-bottom: none; }
.msci-table tbody tr:hover { background: rgba(227,72,36,0.03); }
.msci-table tbody td { padding: 0.75rem 0.85rem; font-size: 0.85rem; color: #151515; vertical-align: middle; }
.msci-table tbody td.td-right { text-align: right; }
.msci-table tbody td.td-center { text-align: center; }

/* Badge */
.msci-badge {
    display: inline-flex; align-items: center; gap: 0.25rem;
    padding: 0.25rem 0.65rem; font-size: 0.68rem; font-weight: 600;
    border: 1px solid; border-radius: 0;
    text-transform: uppercase; letter-spacing: 0.03em;
}
.msci-badge-secondary { background: rgba(107,114,128,0.06); color: #6b7280; border-color: rgba(107,114,128,0.2); }
.msci-badge-info      { background: rgba(8,145,178,0.06);   color: #0891b2; border-color: rgba(8,145,178,0.2); }
.msci-badge-primary   { background: rgba(227,72,36,0.06);   color: #E34824; border-color: rgba(227,72,36,0.2); }
.msci-badge-cyan-outline { background: transparent; color: #0891b2; border-color: rgba(8,145,178,0.3); }

/* Mezzo link */
.msci-mezzo-link { color: #E34824; text-decoration: none; font-weight: 600; font-size: 0.85rem; }
.msci-mezzo-link:hover { color: #c93d1e; text-decoration: underline; }

/* Categoria + tipo nome */
.msci-tipo-nome { font-size: 0.82rem; color: #6b7280; }

/* Progress bar km */
.msci-progress-wrap { margin-top: 0.35rem; }
.msci-progress { height: 8px; background: #EEEFF0; overflow: hidden; border-radius: 0; }
.msci-progress-bar { height: 100%; transition: width 0.3s ease; }
.msci-progress-bar--green  { background: #059669; }
.msci-progress-bar--amber  { background: #d97706; }
.msci-progress-bar--danger { background: #dc2626; }
.msci-progress-note { font-size: 0.68rem; color: #9ca3af; margin-top: 0.2rem; }

/* Giorni remaining */
.msci-gg-note { font-size: 0.68rem; color: #9ca3af; }

/* Azioni */
.msci-actions { display: inline-flex; gap: 0.25rem; justify-content: flex-end; }
.msci-action-btn {
    width: 32px; height: 32px; border-radius: 0;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 0.85rem; cursor: pointer; background: transparent;
    transition: background 0.15s, border-color 0.15s; text-decoration: none; border: 1px solid;
}
.msci-action-btn-cyan  { border-color: rgba(8,145,178,0.15);  color: #0891b2; }
.msci-action-btn-cyan:hover { background: rgba(8,145,178,0.06); border-color: #0891b2; }
.msci-action-btn-amber { border-color: rgba(217,119,6,0.15);  color: #d97706; }
.msci-action-btn-amber:hover { background: rgba(217,119,6,0.06); border-color: #d97706; }

/* Paginazione footer */
.msci-pagination-footer {
    padding: 0.85rem 1.25rem; border-top: 1px solid #EEEFF0;
    display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
}
.msci-pagination-info { font-size: 0.78rem; color: #6b7280; }

/* Empty state */
.msci-empty { text-align: center; padding: 3rem 1.5rem; }
.msci-empty-icon { font-size: 3.5rem; color: #9ca3af; opacity: 0.5; line-height: 1; margin-bottom: 0.75rem; }
.msci-empty-title { font-size: 1rem; font-weight: 600; color: #6b7280; margin-bottom: 0.35rem; }
.msci-empty-sub { font-size: 0.85rem; color: #9ca3af; margin-bottom: 1.25rem; }

/* Responsive */
@media (max-width: 1199.98px) { .msci-filter-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 767.98px)  { .msci-filter-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575.98px)  { .msci-page { padding: 1rem; } .msci-filter-grid { grid-template-columns: 1fr; } .msci-page-header { flex-direction: column; } }

/* ============================================
    SCADENZE MEZZI > DETAILS PAGE STYLES
============================================ */

/* ── mscd- prefix: Mezzi ScadenzaDetails ── */
.mscd-page { padding: 2rem; }

/* Breadcrumb */
.mscd-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.mscd-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.mscd-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.mscd-breadcrumb .mscd-sep { color: #e0e1e3; }
.mscd-breadcrumb .mscd-current { color: #6b7280; font-weight: 500; }

/* Alerts */
.mscd-alert { border: 1px solid #e0e1e3; border-radius: 0; padding: 0.85rem 1.25rem; font-size: 0.85rem; display: flex; align-items: center; gap: 0.5rem; margin-bottom: 1rem; }
.mscd-alert--success { border-left: 4px solid #059669; background: rgba(5,150,105,0.04); }
.mscd-alert--success i { color: #059669; }
.mscd-alert--danger  { border-left: 4px solid #dc2626; background: rgba(220,38,38,0.04); }
.mscd-alert--danger  i { color: #dc2626; }
.mscd-alert-close { margin-left: auto; background: none; border: none; color: #9ca3af; cursor: pointer; font-size: 1rem; padding: 0; line-height: 1; }
.mscd-alert-close:hover { color: #151515; }

/* Page header hero */
.mscd-hero { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; position: relative; overflow: hidden; padding: 1.5rem; margin-bottom: 1.5rem; }
.mscd-hero::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--mscd-hero-color, #E34824); }
.mscd-hero-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.mscd-hero-title { font-size: 1.25rem; font-weight: 700; color: #151515; margin: 0 0 0.25rem 0; }
.mscd-hero-meta { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 0.35rem; }
.mscd-hero-desc { font-size: 0.85rem; color: #6b7280; margin: 0; }
.mscd-hero-mezzo { font-size: 0.85rem; color: #E34824; text-decoration: none; font-weight: 500; display: inline-flex; align-items: center; gap: 0.3rem; }
.mscd-hero-mezzo:hover { color: #c93d1e; text-decoration: underline; }

/* Cards */
.mscd-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; overflow: hidden; margin-bottom: 1.5rem; }
.mscd-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.75rem; }
.mscd-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.mscd-card-header--accent::before  { background: #E34824; }
.mscd-card-header--cyan::before    { background: #0891b2; }
.mscd-card-header--amber::before   { background: #d97706; }
.mscd-card-header--gray::before    { background: #6b7280; }
.mscd-card-header--green::before   { background: #059669; }
.mscd-card-icon { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 1rem; }
.mscd-card-icon--accent { background: rgba(227,72,36,0.08);  border: 1px solid rgba(227,72,36,0.15);  color: #E34824; }
.mscd-card-icon--cyan   { background: rgba(8,145,178,0.08);  border: 1px solid rgba(8,145,178,0.15);  color: #0891b2; }
.mscd-card-icon--amber  { background: rgba(217,119,6,0.08);  border: 1px solid rgba(217,119,6,0.15);  color: #d97706; }
.mscd-card-icon--gray   { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); color: #6b7280; }
.mscd-card-icon--green  { background: rgba(5,150,105,0.08);  border: 1px solid rgba(5,150,105,0.15);  color: #059669; }
.mscd-card-title { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; }
.mscd-card-body { padding: 1.5rem; }

/* Fields grid */
.mscd-fields-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 0 1.5rem; }
.mscd-fields-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.5rem; }
.mscd-field { display: flex; flex-direction: column; padding: 0.6rem 0; border-bottom: 1px solid #EEEFF0; }
.mscd-field:last-child { border-bottom: none; }
.mscd-field--full { grid-column: 1 / -1; }
.mscd-field-label { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; margin-bottom: 0.2rem; }
.mscd-field-value { font-size: 0.85rem; color: #151515; font-weight: 500; }
.mscd-field-value--lg { font-size: 1.1rem; font-weight: 700; }
.mscd-field-value--muted { color: #9ca3af; font-style: italic; }
.mscd-field-sub { font-size: 0.72rem; color: #9ca3af; margin-top: 0.15rem; }
.mscd-field-sub--warn   { color: #d97706; font-weight: 600; }
.mscd-field-sub--danger { color: #dc2626; font-weight: 600; }

/* Sep */
.mscd-sep { border-top: 1px solid #EEEFF0; margin: 1.25rem 0; }

/* Badge */
.mscd-badge {
    display: inline-flex; align-items: center; gap: 0.25rem;
    padding: 0.25rem 0.65rem; font-size: 0.68rem; font-weight: 600;
    border: 1px solid; border-radius: 0;
    text-transform: uppercase; letter-spacing: 0.03em;
}
.mscd-badge-success   { background: rgba(5,150,105,0.06);   color: #059669; border-color: rgba(5,150,105,0.2); }
.mscd-badge-info      { background: rgba(8,145,178,0.06);   color: #0891b2; border-color: rgba(8,145,178,0.2); }
.mscd-badge-secondary { background: rgba(107,114,128,0.06); color: #6b7280; border-color: rgba(107,114,128,0.2); }
.mscd-badge-amber     { background: rgba(217,119,6,0.06);   color: #d97706; border-color: rgba(217,119,6,0.2); }

/* Note box */
.mscd-note-box { background: rgba(8,145,178,0.04); border-left: 3px solid #0891b2; padding: 0.75rem 1rem; font-size: 0.85rem; color: #151515; white-space: pre-wrap; }

/* Progress km */
.mscd-progress { height: 20px; background: #EEEFF0; overflow: hidden; border-radius: 0; margin-bottom: 0.35rem; }
.mscd-progress-bar { height: 100%; display: flex; align-items: center; justify-content: center; font-size: 0.72rem; font-weight: 700; color: #fff; transition: width 0.3s ease; }
.mscd-progress-bar--green  { background: #059669; }
.mscd-progress-bar--amber  { background: #d97706; }
.mscd-progress-bar--danger { background: #dc2626; }
.mscd-progress-note { font-size: 0.72rem; color: #9ca3af; }

/* Link catena rinnovo */
.mscd-chain-note { font-size: 0.78rem; color: #9ca3af; display: flex; align-items: center; gap: 0.4rem; }
.mscd-chain-link { color: #E34824; text-decoration: none; font-weight: 500; }
.mscd-chain-link:hover { color: #c93d1e; text-decoration: underline; }

/* Audit rows */
.mscd-audit-row { font-size: 0.78rem; color: #9ca3af; padding: 0.35rem 0; border-bottom: 1px solid #EEEFF0; display: flex; gap: 0.4rem; flex-wrap: wrap; }
.mscd-audit-row:last-child { border-bottom: none; }
.mscd-audit-label { font-weight: 700; color: #6b7280; text-transform: uppercase; font-size: 0.68rem; letter-spacing: 0.04em; min-width: 70px; }

/* Sidebar buttons */
.mscd-sidebar-btn {
    display: flex; align-items: center; justify-content: center; gap: 0.4rem;
    width: 100%; padding: 0.55rem 1rem; font-size: 0.85rem; font-weight: 600;
    border: 2px solid; border-radius: 0; cursor: pointer;
    text-decoration: none; transition: background 0.2s, border-color 0.2s, color 0.2s;
    margin-bottom: 0.5rem;
}
.mscd-sidebar-btn:last-child { margin-bottom: 0; }
.mscd-sidebar-btn-green   { background: #059669; color: #fff; border-color: #059669; }
.mscd-sidebar-btn-green:hover { background: #047857; border-color: #047857; color: #fff; }
.mscd-sidebar-btn-amber   { background: transparent; color: #d97706; border-color: rgba(217,119,6,0.3); }
.mscd-sidebar-btn-amber:hover { background: rgba(217,119,6,0.06); border-color: #d97706; color: #d97706; }
.mscd-sidebar-btn-cyan    { background: transparent; color: #0891b2; border-color: rgba(8,145,178,0.3); }
.mscd-sidebar-btn-cyan:hover { background: rgba(8,145,178,0.06); border-color: #0891b2; color: #0891b2; }
.mscd-sidebar-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.mscd-sidebar-btn-secondary:hover { border-color: #151515; color: #151515; text-decoration: none; }

/* Documento entity box */
.mscd-entity { display: flex; justify-content: space-between; align-items: center; padding: 0.85rem 1rem; border: 1px solid #EEEFF0; }
.mscd-entity:hover { background: rgba(227,72,36,0.02); }
.mscd-entity-label { font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; }
.mscd-entity-value { font-size: 0.85rem; color: #151515; font-weight: 500; margin-top: 0.1rem; }
.mscd-entity-go { display: inline-flex; align-items: center; gap: 0.3rem; font-size: 0.78rem; font-weight: 600; color: #0891b2; text-decoration: none; border: 1px solid rgba(8,145,178,0.2); padding: 0.3rem 0.65rem; transition: background 0.15s; border-radius: 0; }
.mscd-entity-go:hover { background: rgba(8,145,178,0.06); border-color: #0891b2; }

/* Sticky sidebar */
@media (min-width: 992px) {
    .mscd-sidebar-sticky { position: sticky; top: 72px; z-index: 10; }
}
@media (max-width: 991.98px) { .mscd-fields-grid { grid-template-columns: 1fr 1fr; } .mscd-fields-grid-2 { grid-template-columns: 1fr; } }
@media (max-width: 575.98px) { .mscd-page { padding: 1rem; } .mscd-fields-grid { grid-template-columns: 1fr; } }

/* ============================================
    SCADENZE MEZZI > EDIT PAGE STYLES
============================================ */

/* ── msce- prefix: Mezzi ScadenzaEdit ── */
.msce-page { padding: 2rem; }

/* Breadcrumb */
.msce-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.msce-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.msce-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.msce-breadcrumb .msce-sep { color: #e0e1e3; }
.msce-breadcrumb .msce-current { color: #6b7280; font-weight: 500; }

/* Page header */
.msce-page-title { font-size: 1.4rem; font-weight: 700; color: #151515; letter-spacing: -0.025em; margin: 0 0 0.25rem 0; display: flex; align-items: center; gap: 0.6rem; }
.msce-page-title svg { color: #E34824; flex-shrink: 0; }
.msce-page-subtitle { font-size: 0.85rem; color: #6b7280; margin: 0 0 1.5rem 0; }

/* Alert banner */
.msce-alert-info { border: 1px solid #e0e1e3; border-left: 4px solid #0891b2; background: rgba(8,145,178,0.04); padding: 0.85rem 1.25rem; font-size: 0.85rem; display: flex; align-items: center; gap: 0.5rem; margin-bottom: 1.5rem; border-radius: 0; }
.msce-alert-info i { color: #0891b2; flex-shrink: 0; }

/* Validation */
.msce-validation { border: 1px solid #e0e1e3; border-left: 4px solid #dc2626; background: rgba(220,38,38,0.04); padding: 0.85rem 1.25rem; font-size: 0.85rem; margin-bottom: 1.5rem; border-radius: 0; }
.msce-validation ul { margin: 0; padding-left: 1.25rem; }

/* Cards */
.msce-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; overflow: hidden; margin-bottom: 1.5rem; }
.msce-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.75rem; }
.msce-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.msce-card-header--amber::before  { background: #d97706; }
.msce-card-header--cyan::before   { background: #0891b2; }
.msce-card-header--gray::before   { background: #6b7280; }
.msce-card-icon { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 1rem; }
.msce-card-icon--amber { background: rgba(217,119,6,0.08);  border: 1px solid rgba(217,119,6,0.15);  color: #d97706; }
.msce-card-icon--cyan  { background: rgba(8,145,178,0.08);  border: 1px solid rgba(8,145,178,0.15);  color: #0891b2; }
.msce-card-icon--gray  { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); color: #6b7280; }
.msce-card-title { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; }
.msce-card-body { padding: 1.5rem; }

/* Form */
.msce-form-section-title { font-size: 0.82rem; font-weight: 600; color: #6b7280; text-transform: uppercase; letter-spacing: 0.03em; display: flex; align-items: center; gap: 0.4rem; margin-bottom: 0.75rem; padding-bottom: 0.5rem; border-bottom: 1px solid #EEEFF0; }
.msce-form-section-title i { color: #E34824; }
.msce-sep { border-top: 1px solid #EEEFF0; margin: 1.25rem 0; }

.msce-label { font-size: 0.8rem; font-weight: 600; color: #151515; text-transform: uppercase; letter-spacing: 0.04em; display: block; margin-bottom: 0.35rem; }
.msce-form-control { border: 1px solid #e0e1e3; border-radius: 0; font-size: 0.85rem; color: #151515; padding: 0.5rem 0.75rem; width: 100%; background: #fff; transition: border-color 0.2s, box-shadow 0.2s; }
.msce-form-control:focus { outline: none; border-color: #E34824; box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
.msce-form-control[readonly] { background: #EEEFF0; }
textarea.msce-form-control { resize: vertical; }
.msce-form-text { font-size: 0.72rem; color: #9ca3af; margin-top: 0.25rem; }
.msce-field-error { font-size: 0.72rem; color: #dc2626; margin-top: 0.25rem; display: block; }
.msce-field-group { margin-bottom: 1rem; }

/* Input group */
.msce-input-group { display: flex; }
.msce-input-group .msce-form-control { flex: 1; }
.msce-input-addon { display: flex; align-items: center; padding: 0.5rem 0.75rem; background: #EEEFF0; border: 1px solid #e0e1e3; border-left: none; font-size: 0.82rem; color: #6b7280; white-space: nowrap; }
.msce-input-addon--left { border-left: 1px solid #e0e1e3; border-right: none; }

/* Campi KM card */
.msce-km-card { background: rgba(8,145,178,0.03); border: 1px solid rgba(8,145,178,0.15); border-radius: 0; padding: 1.25rem; margin-bottom: 1rem; }
.msce-km-card-title { font-size: 0.78rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: #0891b2; display: flex; align-items: center; gap: 0.4rem; margin-bottom: 1rem; }

/* Toggle switch */
.msce-switch-row { display: flex; align-items: center; justify-content: space-between; padding: 0.75rem 0; }
.msce-switch-label { font-size: 0.85rem; font-weight: 600; color: #151515; }
.msce-switch-sub { font-size: 0.72rem; color: #9ca3af; margin-top: 0.1rem; }
/* Doc link hint */
.msce-doc-hint { font-size: 0.72rem; color: #9ca3af; margin-top: 0.35rem; }
.msce-doc-link { color: #E34824; text-decoration: none; font-weight: 600; }
.msce-doc-link:hover { color: #c93d1e; text-decoration: underline; }

/* Bottoni */
.msce-btn { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.55rem 1.5rem; font-size: 0.85rem; font-weight: 600; border: 2px solid; cursor: pointer; border-radius: 0; text-decoration: none; transition: background 0.2s, border-color 0.2s, color 0.2s; }
.msce-btn-amber     { background: #d97706; color: #fff; border-color: #d97706; }
.msce-btn-amber:hover { background: #b45309; border-color: #b45309; color: #fff; }
.msce-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.msce-btn-secondary:hover { border-color: #151515; color: #151515; text-decoration: none; }
.msce-actions { display: flex; justify-content: space-between; align-items: center; gap: 0.5rem; flex-wrap: wrap; margin-top: 1.5rem; }

@media (max-width: 575.98px) { .msce-page { padding: 1rem; } .msce-actions { flex-direction: column-reverse; } .msce-btn { width: 100%; justify-content: center; } }

/* ============================================
    CALENDARIO SCADENZE MEZZI PAGE STYLES
============================================ */

/* ── msca- prefix: Mezzi ScadenzaCalendario ── */
.msca-page { padding: 2rem; }

/* Page header */
.msca-page-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; flex-wrap: wrap; }
.msca-page-title { font-size: 1.4rem; font-weight: 700; color: #151515; letter-spacing: -0.025em; margin: 0; display: flex; align-items: center; gap: 0.6rem; }
.msca-page-title svg { color: #E34824; flex-shrink: 0; }
.msca-page-subtitle { font-size: 0.85rem; color: #6b7280; margin: 0.25rem 0 0 0; }
.msca-header-actions { display: flex; gap: 0.5rem; flex-wrap: wrap; align-items: center; }

/* Bottoni */
.msca-btn {
    display: inline-flex; align-items: center; gap: 0.4rem;
    padding: 0.55rem 1.25rem; font-size: 0.85rem; font-weight: 600;
    border: 2px solid; cursor: pointer; border-radius: 0;
    text-decoration: none; transition: background 0.2s, border-color 0.2s, color 0.2s;
    white-space: nowrap;
}
.msca-btn-green     { background: #059669; color: #fff; border-color: #059669; }
.msca-btn-green:hover { background: #047857; border-color: #047857; color: #fff; text-decoration: none; }
.msca-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.msca-btn-secondary:hover { border-color: #151515; color: #151515; text-decoration: none; }
.msca-btn-reset {
    display: inline-flex; align-items: center; gap: 0.35rem;
    padding: 0.45rem 0.9rem; font-size: 0.82rem; font-weight: 600;
    background: transparent; color: #6b7280; border: 1px solid #e0e1e3; border-radius: 0;
    cursor: pointer; transition: border-color 0.15s, color 0.15s; width: 100%;
    justify-content: center;
}
.msca-btn-reset:hover { border-color: #151515; color: #151515; }

/* Card filtri */
.msca-filter-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; margin-bottom: 1rem; }
.msca-filter-header { position: relative; padding: 0.85rem 1.25rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; cursor: pointer; }
.msca-filter-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: #6b7280; }
.msca-filter-title { font-size: 0.82rem; font-weight: 600; color: #6b7280; text-transform: uppercase; letter-spacing: 0.03em; display: flex; align-items: center; gap: 0.4rem; }
.msca-filter-title i { color: #E34824; }
.msca-filter-toggle { background: none; border: none; color: #9ca3af; cursor: pointer; padding: 0; font-size: 0.9rem; transition: transform 0.2s; }
.msca-filter-toggle.collapsed { transform: rotate(-90deg); }
.msca-filter-body { padding: 1.25rem; }
.msca-filter-body.closed { display: none; }

/* Form filtri */
.msca-filter-grid { display: grid; grid-template-columns: 1fr 1fr 1fr auto; gap: 0.85rem; align-items: end; }
.msca-label { font-size: 0.78rem; font-weight: 600; color: #151515; text-transform: uppercase; letter-spacing: 0.04em; display: block; margin-bottom: 0.3rem; }
.msca-form-control {
    border: 1px solid #e0e1e3; border-radius: 0;
    font-size: 0.82rem; color: #151515;
    padding: 0.45rem 0.7rem; width: 100%; background: #fff;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.msca-form-control:focus { outline: none; border-color: #E34824; box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }

/* Legenda */
.msca-legenda { display: flex; align-items: center; flex-wrap: wrap; gap: 0.85rem; padding-top: 1rem; border-top: 1px solid #EEEFF0; margin-top: 1rem; }
.msca-legenda-item { display: flex; align-items: center; gap: 0.4rem; font-size: 0.78rem; color: #6b7280; font-weight: 500; }
.msca-legenda-color { width: 14px; height: 14px; flex-shrink: 0; }

/* Card calendario */
.msca-cal-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; overflow: hidden; }
.msca-cal-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.75rem; }
.msca-cal-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: #0891b2; }
.msca-cal-icon { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; background: rgba(8,145,178,0.08); border: 1px solid rgba(8,145,178,0.15); color: #0891b2; font-size: 1rem; }
.msca-cal-title { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; }
.msca-cal-body { padding: 1.5rem; }

/* FullCalendar overrides */
#calendar { min-height: 550px; }

/* Modal */
.msca-modal .modal-content { border-radius: 0; border: 1px solid #e0e1e3; }
.msca-modal .modal-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; }
.msca-modal .modal-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: #0891b2; }
.msca-modal .modal-title { font-size: 0.95rem; font-weight: 700; color: #151515; }
.msca-modal .modal-close { background: none; border: none; color: #9ca3af; font-size: 1.1rem; cursor: pointer; padding: 0; line-height: 1; margin-left: auto; }
.msca-modal .modal-close:hover { color: #151515; }
.msca-modal .modal-body { padding: 1.25rem 1.5rem; }
.msca-modal .modal-footer { padding: 0.85rem 1.5rem; border-top: 1px solid #EEEFF0; display: flex; justify-content: flex-end; gap: 0.5rem; }

/* Modal fields */
.msca-modal-field { margin-bottom: 0.85rem; }
.msca-modal-field-label { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; margin-bottom: 0.2rem; }
.msca-modal-field-value { font-size: 0.85rem; color: #151515; font-weight: 500; }
.msca-modal-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.5rem; }

/* Badge modal */
.msca-badge {
    display: inline-flex; align-items: center; gap: 0.25rem;
    padding: 0.25rem 0.65rem; font-size: 0.68rem; font-weight: 600;
    border: 1px solid; border-radius: 0;
    text-transform: uppercase; letter-spacing: 0.03em;
}
.msca-badge-success   { background: rgba(5,150,105,0.06);   color: #059669; border-color: rgba(5,150,105,0.2); }
.msca-badge-warn      { background: rgba(217,119,6,0.06);   color: #d97706; border-color: rgba(217,119,6,0.2); }
.msca-badge-danger    { background: rgba(220,38,38,0.06);   color: #dc2626; border-color: rgba(220,38,38,0.2); }
.msca-badge-secondary { background: rgba(107,114,128,0.06); color: #6b7280; border-color: rgba(107,114,128,0.2); }
.msca-badge-info      { background: rgba(8,145,178,0.06);   color: #0891b2; border-color: rgba(8,145,178,0.2); }

@media (max-width: 991.98px) { .msca-filter-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 575.98px) { .msca-page { padding: 1rem; } .msca-filter-grid { grid-template-columns: 1fr; } .msca-page-header { flex-direction: column; } .msca-modal-grid { grid-template-columns: 1fr; } }

/* ============================================
    SCADENZE MEZZI > CREATE PAGE STYLES
============================================ */

/* ── mscc- prefix: Mezzi ScadenzaCreate Create ── */
.mscc-page { padding: 2rem; }

/* Breadcrumb */
.mscc-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.mscc-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.mscc-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.mscc-breadcrumb .mscc-sep { color: #e0e1e3; }
.mscc-breadcrumb .mscc-current { color: #6b7280; font-weight: 500; }

/* Page header */
.mscc-page-title { font-size: 1.4rem; font-weight: 700; color: #151515; letter-spacing: -0.025em; margin: 0 0 0.25rem 0; display: flex; align-items: center; gap: 0.6rem; }
.mscc-page-title svg { color: #E34824; flex-shrink: 0; }
.mscc-page-subtitle { font-size: 0.85rem; color: #6b7280; margin: 0 0 1.5rem 0; }

/* Card */
.mscc-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; overflow: hidden; margin-bottom: 1.5rem; }
.mscc-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.75rem; }
.mscc-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.mscc-card-header--green::before  { background: #059669; }
.mscc-card-header--cyan::before   { background: #0891b2; }
.mscc-card-header--amber::before  { background: #d97706; }
.mscc-card-header--gray::before   { background: #6b7280; }
.mscc-card-icon { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 1rem; }
.mscc-card-icon--green  { background: rgba(5,150,105,0.08);  border: 1px solid rgba(5,150,105,0.15);  color: #059669; }
.mscc-card-icon--cyan   { background: rgba(8,145,178,0.08);  border: 1px solid rgba(8,145,178,0.15);  color: #0891b2; }
.mscc-card-icon--amber  { background: rgba(217,119,6,0.08);  border: 1px solid rgba(217,119,6,0.15);  color: #d97706; }
.mscc-card-icon--gray   { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); color: #6b7280; }
.mscc-card-title { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; }
.mscc-card-body { padding: 1.5rem; }

/* Validation */
.mscc-validation { border: 1px solid #e0e1e3; border-left: 4px solid #dc2626; background: rgba(220,38,38,0.04); padding: 0.85rem 1.25rem; font-size: 0.85rem; margin-bottom: 1.5rem; border-radius: 0; }
.mscc-validation ul { margin: 0; padding-left: 1.25rem; }

/* Form */
.mscc-form-section-title {
    font-size: 0.82rem; font-weight: 600; color: #6b7280;
    text-transform: uppercase; letter-spacing: 0.03em;
    display: flex; align-items: center; gap: 0.4rem;
    margin-bottom: 0.75rem; padding-bottom: 0.5rem;
    border-bottom: 1px solid #EEEFF0;
}
.mscc-form-section-title i { color: #E34824; }
.mscc-sep { border-top: 1px solid #EEEFF0; margin: 1.25rem 0; }

.mscc-label { font-size: 0.8rem; font-weight: 600; color: #151515; text-transform: uppercase; letter-spacing: 0.04em; display: block; margin-bottom: 0.35rem; }
.mscc-form-control {
    border: 1px solid #e0e1e3; border-radius: 0;
    font-size: 0.85rem; color: #151515;
    padding: 0.5rem 0.75rem; width: 100%; background: #fff;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.mscc-form-control:focus { outline: none; border-color: #E34824; box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
.mscc-form-control[readonly] { background: #EEEFF0; }
.mscc-form-control:disabled { background: #EEEFF0; color: #9ca3af; }
textarea.mscc-form-control { resize: vertical; }
.mscc-form-text { font-size: 0.72rem; color: #9ca3af; margin-top: 0.25rem; }
.mscc-field-error { font-size: 0.72rem; color: #dc2626; margin-top: 0.25rem; display: block; }
.mscc-field-group { margin-bottom: 1rem; }

/* Input group */
.mscc-input-group { display: flex; }
.mscc-input-group .mscc-form-control { flex: 1; }
.mscc-input-addon {
    display: flex; align-items: center; padding: 0.5rem 0.75rem;
    background: #EEEFF0; border: 1px solid #e0e1e3; border-left: none;
    font-size: 0.82rem; color: #6b7280; white-space: nowrap;
}
.mscc-input-addon--left { border-left: 1px solid #e0e1e3; border-right: none; }

/* Campi KM card */
.mscc-km-card { background: rgba(8,145,178,0.03); border: 1px solid rgba(8,145,178,0.15); border-radius: 0; padding: 1.25rem; margin-bottom: 1rem; }
.mscc-km-card-title { font-size: 0.78rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: #0891b2; display: flex; align-items: center; gap: 0.4rem; margin-bottom: 1rem; }

/* Toggle switch */
.mscc-switch-row { display: flex; align-items: center; justify-content: space-between; padding: 0.75rem 0; }
.mscc-switch-label { font-size: 0.85rem; font-weight: 600; color: #151515; }
.mscc-switch-sub { font-size: 0.72rem; color: #9ca3af; margin-top: 0.1rem; }
/* Note documento link */
.mscc-doc-hint { font-size: 0.72rem; color: #9ca3af; margin-top: 0.35rem; }
.mscc-doc-link { color: #E34824; text-decoration: none; font-weight: 600; }
.mscc-doc-link:hover { color: #c93d1e; text-decoration: underline; }

/* Bottoni */
.mscc-btn {
    display: inline-flex; align-items: center; gap: 0.4rem;
    padding: 0.55rem 1.5rem; font-size: 0.85rem; font-weight: 600;
    border: 2px solid; cursor: pointer; border-radius: 0;
    text-decoration: none; transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.mscc-btn-green     { background: #059669; color: #fff; border-color: #059669; }
.mscc-btn-green:hover { background: #047857; border-color: #047857; color: #fff; }
.mscc-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.mscc-btn-secondary:hover { border-color: #151515; color: #151515; text-decoration: none; }
.mscc-actions { display: flex; justify-content: space-between; align-items: center; gap: 0.5rem; flex-wrap: wrap; margin-top: 1.5rem; }

@media (max-width: 575.98px) { .mscc-page { padding: 1rem; } .mscc-actions { flex-direction: column-reverse; } .mscc-btn { width: 100%; justify-content: center; } }

/* ============================================
    SCADENZE MEZZI > _SCADENZEMEZZOPARTIAL PAGE STYLES
============================================ */

/* ── smp- prefix: ScadenzeMezzo Partial ── */
.smp-header { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; flex-wrap: wrap; padding: 0.85rem 1rem; border-bottom: 1px solid #EEEFF0; }
.smp-badges { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }

/* Badge */
.smp-badge {
    display: inline-flex; align-items: center; gap: 0.25rem;
    padding: 0.25rem 0.65rem; font-size: 0.68rem; font-weight: 600;
    border: 1px solid; border-radius: 0;
    text-transform: uppercase; letter-spacing: 0.03em;
}
.smp-badge-danger    { background: rgba(220,38,38,0.06);   color: #dc2626; border-color: rgba(220,38,38,0.2); }
.smp-badge-warn      { background: rgba(217,119,6,0.06);   color: #d97706; border-color: rgba(217,119,6,0.2); }
.smp-badge-success   { background: rgba(5,150,105,0.06);   color: #059669; border-color: rgba(5,150,105,0.2); }
.smp-badge-secondary { background: rgba(107,114,128,0.06); color: #6b7280; border-color: rgba(107,114,128,0.2); }
.smp-badge-info      { background: rgba(8,145,178,0.06);   color: #0891b2; border-color: rgba(8,145,178,0.2); }
.smp-badge-primary   { background: rgba(227,72,36,0.06);   color: #E34824; border-color: rgba(227,72,36,0.2); }

/* Footer actions */
.smp-footer { display: flex; align-items: center; justify-content: flex-end; gap: 0.5rem; padding: 0.75rem 1rem; border-top: 1px solid #EEEFF0; flex-wrap: wrap; }

/* Bottoni */
.smp-btn {
    display: inline-flex; align-items: center; gap: 0.3rem;
    padding: 0.35rem 0.85rem; font-size: 0.78rem; font-weight: 600;
    border: 1px solid; border-radius: 0; cursor: pointer;
    text-decoration: none; transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.smp-btn-green   { background: #059669; color: #fff; border-color: #059669; }
.smp-btn-green:hover { background: #047857; border-color: #047857; color: #fff; text-decoration: none; }
.smp-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.smp-btn-secondary:hover { border-color: #151515; color: #151515; text-decoration: none; }

/* Azione 32×32 */
.smp-action-btn {
    width: 32px; height: 32px; border-radius: 0;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 0.82rem; background: transparent; text-decoration: none;
    border: 1px solid rgba(8,145,178,0.15); color: #0891b2;
    transition: background 0.15s, border-color 0.15s;
}
.smp-action-btn:hover { background: rgba(8,145,178,0.06); border-color: #0891b2; color: #0891b2; }

/* Tabella */
.smp-table { width: 100%; border-collapse: collapse; }
.smp-table thead th {
    background: #151515; color: #fff;
    font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em;
    padding: 0.55rem 0.75rem; border: none; white-space: nowrap;
}
.smp-table thead th.th-center { text-align: center; }
.smp-table thead th.th-right  { text-align: right; }
.smp-table tbody tr { border-bottom: 1px solid #EEEFF0; transition: background 0.15s; }
.smp-table tbody tr:last-child { border-bottom: none; }
.smp-table tbody tr:hover { background: rgba(227,72,36,0.03); }
.smp-table tbody tr.smp-row-muted { opacity: 0.65; }
.smp-table tbody td { padding: 0.6rem 0.75rem; font-size: 0.82rem; color: #151515; vertical-align: middle; }
.smp-table tbody td.td-center { text-align: center; }
.smp-table tbody td.td-right  { text-align: right; }

/* Tipologia cell */
.smp-cat-abbr { font-size: 0.65rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; margin-right: 0.3rem; padding: 0.15rem 0.4rem; display: inline-block; }
.smp-tipo-nome { font-size: 0.82rem; }

/* Scadenza cell */
.smp-date { font-size: 0.82rem; font-weight: 500; color: #151515; }
.smp-gg-note { font-size: 0.68rem; color: #9ca3af; }
.smp-date-solo-km { font-size: 0.72rem; color: #9ca3af; font-style: italic; }

/* Progress km */
.smp-progress { height: 8px; background: #EEEFF0; overflow: hidden; border-radius: 0; margin-top: 0.35rem; }
.smp-progress-bar { height: 100%; transition: width 0.3s ease; }
.smp-progress-bar--green  { background: #059669; }
.smp-progress-bar--amber  { background: #d97706; }
.smp-progress-bar--danger { background: #dc2626; }
.smp-progress-note { font-size: 0.65rem; color: #9ca3af; margin-top: 0.15rem; }

/* Empty state */
.smp-empty { text-align: center; padding: 2.5rem 1.5rem; }
.smp-empty-icon { font-size: 2.5rem; color: #9ca3af; opacity: 0.5; margin-bottom: 0.5rem; line-height: 1; }
.smp-empty-text { font-size: 0.85rem; color: #6b7280; margin-bottom: 1rem; }

/* ============================================
    GARE INDEX PAGE STYLES
============================================ */

/* ========== PAGE ========== */
.g-page { padding: 2rem; }

/* ========== HEADER ========== */
.g-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 2rem;
    gap: 1rem;
    flex-wrap: wrap;
}
.g-header-left h1 {
    font-size: 1.5rem;
    font-weight: 700;
    color: #151515;
    margin: 0 0 0.25rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.g-header-left h1 svg { color: #E34824; flex-shrink: 0; }
.g-header-left p {
    font-size: 0.85rem;
    color: #6b7280;
    margin: 0;
}

/* ========== BUTTONS ========== */
.g-btn {
    background: #E34824;
    color: #fff;
    border: 2px solid #E34824;
    padding: 0.55rem 1.5rem;
    font-weight: 600;
    font-size: 0.85rem;
    border-radius: 0;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    transition: all 0.2s;
    cursor: pointer;
}
.g-btn:hover {
    background: #c93d1e;
    border-color: #c93d1e;
    color: #fff;
    box-shadow: 0 2px 8px rgba(227,72,36,0.2);
}
.g-btn-secondary {
    background: transparent;
    color: #6b7280;
    border: 2px solid #e0e1e3;
    padding: 0.55rem 1.5rem;
    font-weight: 600;
    font-size: 0.85rem;
    border-radius: 0;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    transition: all 0.2s;
    cursor: pointer;
}
.g-btn-secondary:hover {
    border-color: #151515;
    color: #151515;
}

/* ========== CARD ========== */
.g-card {
    background: #fff;
    border: 1px solid #e0e1e3;
    border-radius: 0;
    margin-bottom: 1.5rem;
    overflow: hidden;
}
.g-card-accent {
    position: relative;
}
.g-card-accent::before {
    content: '';
    position: absolute;
    top: 0; left: 0; bottom: 0;
    width: 4px;
    background: #E34824;
}

/* ========== FILTER SECTION ========== */
.g-filter-toggle {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 1.5rem;
    background: #fff;
    border: none;
    width: 100%;
    text-align: left;
    cursor: pointer;
    transition: background 0.15s;
}
.g-filter-toggle:hover { background: rgba(227,72,36,0.03); }
.g-filter-toggle h3 {
    font-size: 0.85rem;
    font-weight: 700;
    color: #151515;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.g-filter-toggle h3 svg { color: #E34824; }
.g-filter-toggle .g-chevron {
    transition: transform 0.25s ease;
    color: #6b7280;
}
.g-filter-toggle[aria-expanded="true"] .g-chevron { transform: rotate(180deg); }
.g-filter-body {
    padding: 0 1.5rem 1.5rem;
    border-top: 1px solid #EEEFF0;
}
.g-filter-body .form-label {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #151515;
    margin-bottom: 0.3rem;
}
.g-filter-body .form-control,
.g-filter-body .form-select {
    border-radius: 0;
    border: 1px solid #e0e1e3;
    font-size: 0.85rem;
    padding: 0.5rem 0.75rem;
}
.g-filter-body .form-control:focus,
.g-filter-body .form-select:focus {
    border-color: #E34824;
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}
.g-filter-body small { font-size: 0.72rem; color: #9ca3af; }
.g-filter-body .form-check-input:checked {
    background-color: #E34824;
    border-color: #E34824;
}
.g-filter-body .form-check-input { border-radius: 0; }
.g-filter-actions {
    padding-top: 1rem;
    border-top: 1px solid #EEEFF0;
    margin-top: 0.5rem;
}

/* ========== RESULTS BAR ========== */
.g-results-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.g-results-bar p {
    font-size: 0.85rem;
    color: #6b7280;
    margin: 0;
}
.g-results-bar strong { color: #151515; }
.g-badge-filter {
    background: rgba(227,72,36,0.08);
    color: #E34824;
    font-size: 0.7rem;
    font-weight: 600;
    padding: 0.2rem 0.5rem;
    border: 1px solid rgba(227,72,36,0.15);
    border-radius: 0;
}

/* ========== TABLE ========== */
.g-table-wrap { overflow-x: auto; }
.g-table {
    width: 100%;
    margin: 0;
    border-collapse: collapse;
}
.g-table thead th {
    background: #151515;
    color: #fff;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 0.85rem 1rem;
    border: none;
    white-space: nowrap;
}
.g-table tbody td {
    padding: 0.85rem 1rem;
    font-size: 0.85rem;
    color: #151515;
    border-bottom: 1px solid #EEEFF0;
    vertical-align: middle;
}
.g-table tbody tr { transition: background 0.15s; }
.g-table tbody tr:hover { background: rgba(227,72,36,0.03); }
.g-table tbody tr:last-child td { border-bottom: none; }

/* Table elements */
.g-code { font-weight: 600; color: #151515; }
.g-code-sub { font-size: 0.72rem; color: #9ca3af; }
.g-title-cell {
    max-width: 300px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.g-title-sub { font-size: 0.72rem; color: #9ca3af; }
.g-ente-cell {
    max-width: 200px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.g-empty { color: #9ca3af; }

/* Badges */
.g-badge {
    display: inline-block;
    padding: 0.25rem 0.6rem;
    font-size: 0.7rem;
    font-weight: 600;
    border-radius: 0;
    letter-spacing: 0.02em;
}
.g-badge-tipo {
    background: #EEEFF0;
    color: #151515;
    border: 1px solid #e0e1e3;
}
.g-badge-lotti {
    background: #E34824;
    color: #fff;
    min-width: 26px;
    text-align: center;
    font-size: 0.72rem;
}
.g-badge-lotti-zero {
    background: #EEEFF0;
    color: #6b7280;
    border: 1px solid #e0e1e3;
    min-width: 26px;
    text-align: center;
    font-size: 0.72rem;
}
.g-badge-bozza      { background: #EEEFF0; color: #6b7280; border: 1px solid #e0e1e3; }
.g-badge-lavorazione { background: rgba(227,72,36,0.08); color: #E34824; border: 1px solid rgba(227,72,36,0.15); }
.g-badge-conclusa    { background: rgba(5,150,105,0.08); color: #059669; border: 1px solid rgba(5,150,105,0.15); }
.g-badge-chiusa      { background: #151515; color: #fff; }

/* Scadenza */
.g-scad-expired { font-size: 0.72rem; color: #dc2626; font-weight: 600; }
.g-scad-warning { font-size: 0.72rem; color: #d97706; font-weight: 600; }
.g-scad-normal  { font-size: 0.72rem; color: #9ca3af; }

/* Action buttons */
.g-actions { display: flex; gap: 2px; justify-content: flex-end; }
.g-act-btn {
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e0e1e3;
    background: #fff;
    color: #6b7280;
    border-radius: 0;
    cursor: pointer;
    transition: all 0.15s;
    font-size: 0.85rem;
    text-decoration: none;
    padding: 0;
}
.g-act-btn:hover {
    border-color: #E34824;
    color: #E34824;
    background: rgba(227,72,36,0.04);
}
.g-act-btn-danger:hover {
    border-color: #dc2626;
    color: #dc2626;
    background: rgba(220,38,38,0.04);
}

/* ========== EMPTY STATE ========== */
.g-empty-state {
    padding: 4rem 2rem;
    text-align: center;
}
.g-empty-state svg { color: #e0e1e3; margin-bottom: 1rem; }
.g-empty-state h4 {
    font-size: 1.1rem;
    font-weight: 700;
    color: #151515;
    margin-bottom: 0.5rem;
}
.g-empty-state p {
    font-size: 0.85rem;
    color: #6b7280;
    margin: 0;
}

/* ========== PAGINATION INFO ========== */
.g-pag-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 1rem;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.g-pag-bar p {
    font-size: 0.8rem;
    color: #6b7280;
    margin: 0;
}

/* ========== MODAL ========== */
.g-modal .modal-content {
    border-radius: 0;
    border: 1px solid #e0e1e3;
}
.g-modal .modal-header {
    background: #151515;
    color: #fff;
    border-radius: 0;
    padding: 1rem 1.25rem;
    border-bottom: 2px solid #E34824;
}
.g-modal .modal-header .modal-title {
    font-size: 0.95rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.g-modal .modal-header .modal-title svg { color: #E34824; }
.g-modal .modal-header .btn-close {
    filter: invert(1);
}
.g-modal .modal-body {
    padding: 1.5rem;
    font-size: 0.9rem;
    color: #151515;
}
.g-modal .modal-body .text-muted { font-size: 0.8rem; color: #6b7280; }
.g-modal .modal-footer {
    border-top: 1px solid #EEEFF0;
    padding: 1rem 1.25rem;
}
.g-modal .modal-footer .btn-secondary,
.g-modal .modal-footer .g-btn-cancel {
    background: transparent;
    color: #6b7280;
    border: 2px solid #e0e1e3;
    border-radius: 0;
    padding: 0.45rem 1.25rem;
    font-weight: 600;
    font-size: 0.85rem;
    transition: all 0.2s;
}
.g-modal .modal-footer .btn-secondary:hover,
.g-modal .modal-footer .g-btn-cancel:hover {
    border-color: #151515;
    color: #151515;
}
.g-modal .modal-footer .btn-danger,
.g-modal .modal-footer .g-btn-danger {
    background: #dc2626;
    color: #fff;
    border: 2px solid #dc2626;
    border-radius: 0;
    padding: 0.45rem 1.25rem;
    font-weight: 600;
    font-size: 0.85rem;
    transition: all 0.2s;
}
.g-modal .modal-footer .btn-danger:hover,
.g-modal .modal-footer .g-btn-danger:hover {
    background: #b91c1c;
    border-color: #b91c1c;
}

/* ========== ALERTS ========== */
.g-alert {
    border-radius: 0;
    border: 1px solid #e0e1e3;
    padding: 0.85rem 1.25rem;
    font-size: 0.85rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1rem;
}
.g-alert-success {
    background: rgba(5,150,105,0.05);
    border-left: 4px solid #059669;
    color: #151515;
}
.g-alert-success svg { color: #059669; flex-shrink: 0; }
.g-alert-danger {
    background: rgba(220,38,38,0.04);
    border-left: 4px solid #E34824;
    color: #151515;
}
.g-alert-danger svg { color: #E34824; flex-shrink: 0; }
.g-alert .btn-close { margin-left: auto; }

@media (max-width: 767.98px) {
    .g-header { flex-direction: column; }
    .g-filter-body .row > [class*="col-"] { margin-bottom: 0.75rem; }
}

/* ============================================
    LOTTI INDEX PAGE STYLES
============================================ */

/* ========== PAGE ========== */
.l-page { padding: 2rem; }

/* ========== BREADCRUMB ========== */
.l-breadcrumb { display: flex; align-items: center; gap: 0.4rem; margin-bottom: 0.75rem; font-size: 0.8rem; }
.l-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; transition: color 0.15s; }
.l-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.l-breadcrumb .l-sep { color: #e0e1e3; }
.l-breadcrumb .l-current { color: #6b7280; font-weight: 500; }

/* ========== HEADER ========== */
.l-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 2rem; gap: 1rem; flex-wrap: wrap; }
.l-header-left h1 { font-size: 1.5rem; font-weight: 700; color: #151515; margin: 0 0 0.25rem; display: flex; align-items: center; gap: 0.5rem; }
.l-header-left h1 svg { color: #E34824; flex-shrink: 0; }
.l-header-left p { font-size: 0.85rem; color: #6b7280; margin: 0; }
.l-header-actions { display: flex; gap: 0.4rem; }

/* ========== BUTTONS ========== */
.l-btn { background: #E34824; color: #fff; border: 2px solid #E34824; padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem; transition: all 0.2s; cursor: pointer; }
.l-btn:hover { background: #c93d1e; border-color: #c93d1e; color: #fff; box-shadow: 0 2px 8px rgba(227,72,36,0.2); }
.l-btn-secondary { background: transparent; color: #6b7280; border: 2px solid #e0e1e3; padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem; transition: all 0.2s; cursor: pointer; }
.l-btn-secondary:hover { border-color: #151515; color: #151515; }
.l-btn-disabled { background: transparent; color: #9ca3af; border: 2px solid #e0e1e3; padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border-radius: 0; display: inline-flex; align-items: center; gap: 0.4rem; cursor: not-allowed; opacity: 0.6; }

/* ========== CARD ========== */
.l-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; margin-bottom: 1.5rem; overflow: hidden; }
.l-card-accent { position: relative; }
.l-card-accent::before { content: ''; position: absolute; top: 0; left: 0; bottom: 0; width: 4px; background: #E34824; }

/* ========== FILTER ========== */
.l-filter-toggle { display: flex; justify-content: space-between; align-items: center; padding: 1rem 1.5rem; background: #fff; border: none; width: 100%; text-align: left; cursor: pointer; transition: background 0.15s; }
.l-filter-toggle:hover { background: rgba(227,72,36,0.03); }
.l-filter-toggle h3 { font-size: 0.85rem; font-weight: 700; color: #151515; margin: 0; display: flex; align-items: center; gap: 0.5rem; }
.l-filter-toggle h3 svg { color: #E34824; }
.l-filter-toggle .l-chevron { transition: transform 0.25s ease; color: #6b7280; }
.l-filter-toggle[aria-expanded="true"] .l-chevron { transform: rotate(180deg); }
.l-badge-active { font-size: 0.6rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; padding: 0.2rem 0.5rem; background: rgba(227,72,36,0.08); color: #E34824; border: 1px solid rgba(227,72,36,0.15); border-radius: 0; }
.l-filter-body { padding: 0 1.5rem 1.5rem; border-top: 1px solid #EEEFF0; }
.l-filter-body .form-label { font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #151515; margin-bottom: 0.3rem; }
.l-filter-body .form-control, .l-filter-body .form-select { border-radius: 0; border: 1px solid #e0e1e3; font-size: 0.85rem; padding: 0.5rem 0.75rem; }
.l-filter-body .form-control:focus, .l-filter-body .form-select:focus { border-color: #E34824; box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
.l-filter-body small, .l-filter-body .form-text { font-size: 0.72rem; color: #9ca3af; }
.l-filter-body .form-check-input { border-radius: 0; }
.l-filter-body .form-check-input:checked { background-color: #E34824; border-color: #E34824; }
.l-filter-body .form-check-label { font-size: 0.85rem; }
.l-filter-actions { padding-top: 1rem; border-top: 1px solid #EEEFF0; margin-top: 0.5rem; }

/* ========== ALERTS ========== */
.l-alert { border-radius: 0; border: 1px solid #e0e1e3; padding: 0.85rem 1.25rem; font-size: 0.85rem; display: flex; align-items: center; gap: 0.5rem; margin-bottom: 1rem; }
.l-alert-success { background: rgba(5,150,105,0.05); border-left: 4px solid #059669; color: #151515; }
.l-alert-success i { color: #059669; }
.l-alert-danger { background: rgba(220,38,38,0.04); border-left: 4px solid #E34824; color: #151515; }
.l-alert-danger i { color: #E34824; }
.l-alert .btn-close { margin-left: auto; }

/* ========== TABLE ========== */
.l-table-wrap { overflow-x: auto; }
.l-table { width: 100%; margin: 0; border-collapse: collapse; }
.l-table thead th { background: #151515; color: #fff; font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; padding: 0.8rem 1rem; border: none; white-space: nowrap; }
.l-table tbody td { padding: 0.8rem 1rem; font-size: 0.85rem; color: #151515; border-bottom: 1px solid #EEEFF0; vertical-align: middle; }
.l-table tbody tr { transition: background 0.15s; }
.l-table tbody tr:hover { background: rgba(227,72,36,0.03); }
.l-table tbody tr:last-child td { border-bottom: none; }
.l-code { font-weight: 600; color: #151515; }
.l-sub { font-size: 0.72rem; color: #9ca3af; }
.l-link { color: #E34824; text-decoration: none; font-weight: 500; transition: color 0.15s; }
.l-link:hover { color: #c93d1e; text-decoration: underline; }
.l-muted { color: #9ca3af; }

/* Badges */
.l-badge { display: inline-block; padding: 0.25rem 0.6rem; font-size: 0.7rem; font-weight: 600; border-radius: 0; letter-spacing: 0.02em; }
.l-badge-tipo { background: #EEEFF0; color: #151515; border: 1px solid #e0e1e3; }
.l-badge-secondary { background: #EEEFF0; color: #6b7280; border: 1px solid #e0e1e3; }
.l-badge-info    { background: rgba(8,145,178,0.08); color: #0891b2; border: 1px solid rgba(8,145,178,0.15); }
.l-badge-success { background: rgba(5,150,105,0.08); color: #059669; border: 1px solid rgba(5,150,105,0.15); }
.l-badge-danger  { background: rgba(220,38,38,0.08); color: #dc2626; border: 1px solid rgba(220,38,38,0.15); }
.l-badge-warn    { background: rgba(217,119,6,0.08); color: #d97706; border: 1px solid rgba(217,119,6,0.15); }
.l-badge-primary { background: rgba(227,72,36,0.08); color: #E34824; border: 1px solid rgba(227,72,36,0.15); }
.l-badge-dark    { background: #151515; color: #fff; }
.l-badge-integ   { background: rgba(217,119,6,0.08); color: #d97706; border: 1px solid rgba(217,119,6,0.15); font-size: 0.65rem; margin-top: 0.25rem; }

/* Action buttons */
.l-actions { display: flex; gap: 2px; justify-content: center; }
.l-act-btn { width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #e0e1e3; background: #fff; color: #6b7280; border-radius: 0; cursor: pointer; transition: all 0.15s; font-size: 0.85rem; text-decoration: none; padding: 0; }
.l-act-btn:hover { border-color: #E34824; color: #E34824; background: rgba(227,72,36,0.04); }
.l-act-btn-danger:hover { border-color: #dc2626; color: #dc2626; background: rgba(220,38,38,0.04); }

/* ========== FOOTER / PAGINATION ========== */
.l-card-footer { padding: 1rem 1.5rem; border-top: 1px solid #EEEFF0; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 0.5rem; }
.l-card-footer p { font-size: 0.8rem; color: #6b7280; margin: 0; }
.l-card-footer strong { color: #151515; }

/* ========== EMPTY STATE ========== */
.l-empty { padding: 4rem 2rem; text-align: center; }
.l-empty i { color: #e0e1e3; font-size: 3rem; margin-bottom: 0.75rem; display: block; }
.l-empty h4 { font-size: 1.1rem; font-weight: 700; color: #151515; margin-bottom: 0.5rem; }
.l-empty p { font-size: 0.85rem; color: #6b7280; margin: 0 0 1rem; }

@media (max-width: 767.98px) {
    .l-header { flex-direction: column; }
    .l-header-actions { width: 100%; }
}

/* ============================================
    DOCUMENTI GARA PAGE STYLES
============================================ */

.dg-page { padding: 2rem; }
.dg-breadcrumb { display: flex; align-items: center; gap: 0.4rem; margin-bottom: 0.75rem; font-size: 0.8rem; flex-wrap: wrap; }
.dg-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.dg-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.dg-breadcrumb .dg-sep { color: #e0e1e3; }
.dg-breadcrumb .dg-current { color: #6b7280; font-weight: 500; }
.dg-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 2rem; gap: 1rem; flex-wrap: wrap; }
.dg-header h1 { font-size: 1.5rem; font-weight: 700; color: #151515; margin: 0 0 0.25rem; display: flex; align-items: center; gap: 0.5rem; }
.dg-header h1 svg { color: #E34824; }
.dg-header p { font-size: 0.85rem; color: #6b7280; margin: 0; }
.dg-btn { background: #059669; color: #fff; border: 2px solid #059669; padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem; transition: all 0.2s; }
.dg-btn:hover { background: #047857; border-color: #047857; color: #fff; }
.dg-btn-primary { background: #E34824; border-color: #E34824; }
.dg-btn-primary:hover { background: #c93d1e; border-color: #c93d1e; color: #fff; }
.dg-btn-secondary { background: transparent; color: #6b7280; border: 2px solid #e0e1e3; padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem; transition: all 0.2s; }
.dg-btn-secondary:hover { border-color: #151515; color: #151515; }
.dg-alert { border-radius: 0; border: 1px solid #e0e1e3; padding: 0.85rem 1.25rem; font-size: 0.85rem; display: flex; align-items: center; gap: 0.5rem; margin-bottom: 1rem; }
.dg-alert-success { background: rgba(5,150,105,0.05); border-left: 4px solid #059669; }
.dg-alert-success i { color: #059669; }
.dg-alert-danger { background: rgba(220,38,38,0.04); border-left: 4px solid #dc2626; }
.dg-alert-danger i { color: #dc2626; }
.dg-alert-info { background: rgba(8,145,178,0.04); border-left: 4px solid #0891b2; }
.dg-alert-info i { color: #0891b2; }
.dg-alert .btn-close { margin-left: auto; }
.dg-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; margin-bottom: 1.5rem; overflow: hidden; }
.dg-card-header { padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.6rem; position: relative; }
.dg-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: #E34824; }
.dg-card-header h2 { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; display: flex; align-items: center; gap: 0.4rem; }
.dg-card-header .dg-hdr-right { margin-left: auto; display: flex; gap: 0.3rem; flex-wrap: wrap; }
.dg-card-body { padding: 1.5rem; padding-left: calc(1.5rem + 4px); }
.dg-filter-body { padding: 1.5rem; padding-left: calc(1.5rem + 4px); }
.dg-filter-body .form-label { font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #151515; margin-bottom: 0.3rem; }
.dg-filter-body .form-control, .dg-filter-body .form-select { border-radius: 0; border: 1px solid #e0e1e3; font-size: 0.85rem; }
.dg-filter-body .form-control:focus, .dg-filter-body .form-select:focus { border-color: #E34824; box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
.dg-filter-actions { padding-top: 1rem; border-top: 1px solid #EEEFF0; margin-top: 0.5rem; display: flex; justify-content: flex-end; gap: 0.5rem; }
.dg-table { width: 100%; border-collapse: collapse; }
.dg-table thead th { background: #151515; color: #fff; font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; padding: 0.8rem 1rem; border: none; white-space: nowrap; }
.dg-table tbody td { padding: 0.8rem 1rem; font-size: 0.85rem; color: #151515; border-bottom: 1px solid #EEEFF0; vertical-align: middle; }
.dg-table tbody tr { transition: background 0.15s; }
.dg-table tbody tr:hover { background: rgba(227,72,36,0.03); }
.dg-table tbody tr:last-child td { border-bottom: none; }
.dg-badge { display: inline-block; padding: 0.2rem 0.5rem; font-size: 0.68rem; font-weight: 600; border-radius: 0; }
.dg-badge-primary { background: rgba(227,72,36,0.08); color: #E34824; border: 1px solid rgba(227,72,36,0.15); }
.dg-badge-info { background: rgba(8,145,178,0.08); color: #0891b2; border: 1px solid rgba(8,145,178,0.15); }
.dg-badge-success { background: rgba(5,150,105,0.08); color: #059669; border: 1px solid rgba(5,150,105,0.15); }
.dg-badge-danger { background: rgba(220,38,38,0.08); color: #dc2626; border: 1px solid rgba(220,38,38,0.15); }
.dg-badge-warn { background: rgba(217,119,6,0.08); color: #d97706; border: 1px solid rgba(217,119,6,0.15); }
.dg-badge-secondary { background: #EEEFF0; color: #6b7280; border: 1px solid #e0e1e3; }
.dg-link { color: #E34824; text-decoration: none; font-weight: 500; }
.dg-link:hover { color: #c93d1e; text-decoration: underline; }
.dg-act-btn { width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #e0e1e3; background: #fff; color: #6b7280; text-decoration: none; transition: all 0.15s; font-size: 0.85rem; padding: 0; }
.dg-act-btn:hover { border-color: #E34824; color: #E34824; background: rgba(227,72,36,0.04); }
.dg-act-btn-danger:hover { border-color: #dc2626; color: #dc2626; background: rgba(220,38,38,0.04); }
.dg-act-btn-info:hover { border-color: #0891b2; color: #0891b2; }
.dg-act-btn-warn:hover { border-color: #d97706; color: #d97706; }
.dg-sub { font-size: 0.72rem; color: #9ca3af; }
.dg-icon-file { font-size: 1.3rem; }
.dg-card-footer { padding: 0.75rem 1.5rem; border-top: 1px solid #EEEFF0; display: flex; justify-content: space-between; align-items: center; }
.dg-card-footer p { font-size: 0.8rem; color: #6b7280; margin: 0; }
.dg-card-footer strong { color: #151515; }
.dg-empty { text-align: center; padding: 3rem 2rem; }
.dg-empty i { color: #e0e1e3; font-size: 2.5rem; display: block; margin-bottom: 0.5rem; }
@media (max-width: 767.98px) { .dg-header { flex-direction: column; } }

/* ============================================
    PREVENTIVI PAGE STYLES
============================================ */

.pv-page { padding: 2rem; }
.pv-breadcrumb { display: flex; align-items: center; gap: 0.4rem; margin-bottom: 0.75rem; font-size: 0.8rem; flex-wrap: wrap; }
.pv-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.pv-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.pv-breadcrumb .pv-sep { color: #e0e1e3; }
.pv-breadcrumb .pv-current { color: #6b7280; font-weight: 500; }
.pv-alert { border-radius: 0; border: 1px solid #e0e1e3; padding: 0.85rem 1.25rem; font-size: 0.85rem; display: flex; align-items: center; gap: 0.5rem; margin-bottom: 1rem; }
.pv-alert-success { background: rgba(5,150,105,0.05); border-left: 4px solid #059669; }
.pv-alert-success i { color: #059669; }
.pv-alert-danger { background: rgba(220,38,38,0.04); border-left: 4px solid #dc2626; }
.pv-alert-danger i { color: #dc2626; }
.pv-alert-info { background: rgba(8,145,178,0.04); border-left: 4px solid #0891b2; }
.pv-alert-info i { color: #0891b2; }
.pv-alert .btn-close { margin-left: auto; }
.pv-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 2rem; gap: 1rem; flex-wrap: wrap; }
.pv-header h1 { font-size: 1.5rem; font-weight: 700; color: #151515; margin: 0 0 0.25rem; display: flex; align-items: center; gap: 0.5rem; }
.pv-header h1 svg { color: #E34824; }
.pv-header p { font-size: 0.85rem; color: #6b7280; margin: 0; }
.pv-btn { padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem; transition: all 0.2s; cursor: pointer; border: 2px solid; }
.pv-btn-success { background: #059669; color: #fff; border-color: #059669; }
.pv-btn-success:hover { background: #047857; border-color: #047857; color: #fff; }
.pv-btn-primary { background: #E34824; color: #fff; border-color: #E34824; }
.pv-btn-primary:hover { background: #c93d1e; border-color: #c93d1e; color: #fff; }
.pv-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.pv-btn-secondary:hover { border-color: #151515; color: #151515; }
.pv-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; margin-bottom: 1.5rem; overflow: hidden; }
.pv-card-header { padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.6rem; position: relative; }
.pv-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: #E34824; }
.pv-card-header h2 { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; display: flex; align-items: center; gap: 0.4rem; }
.pv-card-header .pv-hdr-right { margin-left: auto; font-size: 0.8rem; color: #6b7280; }
.pv-filter-body { padding: 1.5rem; padding-left: calc(1.5rem + 4px); }
.pv-filter-body .form-label { font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #151515; margin-bottom: 0.3rem; }
.pv-filter-body .form-control, .pv-filter-body .form-select { border-radius: 0; border: 1px solid #e0e1e3; font-size: 0.85rem; }
.pv-filter-body .form-control:focus, .pv-filter-body .form-select:focus { border-color: #E34824; box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
.pv-filter-body .form-check-input { border-radius: 0; border-color: #e0e1e3; }
.pv-filter-body .form-check-input:checked { background-color: #E34824; border-color: #E34824; }
.pv-filter-body .form-check-label { font-size: 0.82rem; color: #151515; }
.pv-filter-actions { padding-top: 1rem; border-top: 1px solid #EEEFF0; margin-top: 0.5rem; display: flex; justify-content: flex-end; gap: 0.5rem; }
.pv-table { width: 100%; border-collapse: collapse; }
.pv-table thead th { background: #151515; color: #fff; font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; padding: 0.8rem 1rem; border: none; white-space: nowrap; }
.pv-table tbody td { padding: 0.8rem 1rem; font-size: 0.85rem; color: #151515; border-bottom: 1px solid #EEEFF0; vertical-align: middle; }
.pv-table tbody tr { transition: background 0.15s; }
.pv-table tbody tr:hover { background: rgba(227,72,36,0.03); }
.pv-table tbody tr:last-child td { border-bottom: none; }
.pv-table tbody tr.pv-row-selected { background: rgba(217,119,6,0.06); }
.pv-table tbody tr.pv-row-selected:hover { background: rgba(217,119,6,0.1); }
.pv-badge { display: inline-block; padding: 0.2rem 0.5rem; font-size: 0.68rem; font-weight: 600; border-radius: 0; }
.pv-badge-secondary { background: #EEEFF0; color: #6b7280; border: 1px solid #e0e1e3; }
.pv-badge-info { background: rgba(8,145,178,0.08); color: #0891b2; border: 1px solid rgba(8,145,178,0.15); }
.pv-badge-success { background: rgba(5,150,105,0.08); color: #059669; border: 1px solid rgba(5,150,105,0.15); }
.pv-badge-warn { background: rgba(217,119,6,0.08); color: #d97706; border: 1px solid rgba(217,119,6,0.15); }
.pv-badge-danger { background: rgba(220,38,38,0.08); color: #dc2626; border: 1px solid rgba(220,38,38,0.15); }
.pv-badge-primary { background: rgba(227,72,36,0.08); color: #E34824; border: 1px solid rgba(227,72,36,0.15); }
.pv-badge-dark { background: #151515; color: #fff; border: 1px solid #151515; }
.pv-badge-selected { background: rgba(217,119,6,0.1); color: #d97706; border: 1px solid rgba(217,119,6,0.2); font-size: 0.65rem; }
.pv-act-btn { width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #e0e1e3; background: #fff; color: #6b7280; text-decoration: none; transition: all 0.15s; font-size: 0.85rem; padding: 0; }
.pv-act-btn:hover { border-color: #E34824; color: #E34824; background: rgba(227,72,36,0.04); }
.pv-act-btn-danger:hover { border-color: #dc2626; color: #dc2626; background: rgba(220,38,38,0.04); }
.pv-act-btn-info:hover { border-color: #0891b2; color: #0891b2; }
.pv-act-btn-warn:hover { border-color: #d97706; color: #d97706; }
.pv-sub { font-size: 0.72rem; color: #9ca3af; }
.pv-card-footer { padding: 0.75rem 1.5rem; border-top: 1px solid #EEEFF0; display: flex; justify-content: space-between; align-items: center; }
.pv-card-footer p { font-size: 0.8rem; color: #6b7280; margin: 0; }
.pv-checkbox { border-radius: 0 !important; border-color: #e0e1e3; width: 16px; height: 16px; cursor: pointer; }
.pv-checkbox:checked { background-color: #d97706; border-color: #d97706; }
@media (max-width: 767.98px) { .pv-header { flex-direction: column; } }

/* ============================================
    SCADENZE PAGE STYLES
============================================ */

.sc-page { padding: 2rem; }

/* ── Stats ── */
.sc-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-bottom: 1.5rem; }
.sc-stat { text-align: center; padding: 1.25rem 1rem; border: 1px solid #e0e1e3; transition: transform 0.2s; }
.sc-stat:hover { transform: translateY(-2px); }
.sc-stat-num { font-size: 1.75rem; font-weight: 700; margin-bottom: 0.1rem; }
.sc-stat-label { font-size: 0.68rem; text-transform: uppercase; font-weight: 600; letter-spacing: 0.04em; color: #6b7280; }

/* ── Header ── */
.sc-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 2rem; gap: 1rem; flex-wrap: wrap; }
.sc-header h1 { font-size: 1.5rem; font-weight: 700; color: #151515; margin: 0 0 0.25rem; display: flex; align-items: center; gap: 0.5rem; }
.sc-header h1 svg { color: #E34824; }
.sc-header p { font-size: 0.85rem; color: #6b7280; margin: 0; }

/* ── Buttons ── */
.sc-btn { padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem; transition: all 0.2s; cursor: pointer; border: 2px solid; }
.sc-btn-primary { background: #E34824; color: #fff; border-color: #E34824; }
.sc-btn-primary:hover { background: #c93d1e; border-color: #c93d1e; color: #fff; }
.sc-btn-sm { padding: 0.35rem 0.8rem; font-size: 0.78rem; border: 1px solid; }
.sc-btn-sm-primary { background: #E34824; color: #fff; border-color: #E34824; }
.sc-btn-sm-primary:hover { background: #c93d1e; border-color: #c93d1e; color: #fff; }
.sc-btn-sm-outline { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.sc-btn-sm-outline:hover { border-color: #151515; color: #151515; }

/* ── Alerts ── */
.sc-alert { border-radius: 0; border: 1px solid #e0e1e3; padding: 0.85rem 1.25rem; font-size: 0.85rem; display: flex; align-items: center; gap: 0.5rem; margin-bottom: 1rem; }
.sc-alert-success { background: rgba(5,150,105,0.05); border-left: 4px solid #059669; }
.sc-alert-success i { color: #059669; }
.sc-alert-danger { background: rgba(220,38,38,0.04); border-left: 4px solid #dc2626; }
.sc-alert-danger i { color: #dc2626; }
.sc-alert .btn-close { margin-left: auto; }

/* ── Cards ── */
.sc-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; margin-bottom: 1.5rem; overflow: hidden; }
.sc-card-header { padding: 0.85rem 1.25rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.5rem; position: relative; }
.sc-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.sc-card-header--orange::before { background: #E34824; }
.sc-card-header--gray::before { background: #6b7280; }
.sc-card-header--red::before { background: #dc2626; }
.sc-card-header--amber::before { background: #d97706; }
.sc-card-header--cyan::before { background: #0891b2; }
.sc-card-header--light::before { background: #e0e1e3; }
.sc-card-header h2 { font-size: 0.85rem; font-weight: 700; color: #151515; margin: 0; display: flex; align-items: center; gap: 0.4rem; }
.sc-card-body { padding: 1.25rem; padding-left: calc(1.25rem + 4px); }

/* ── Filters ── */
.sc-filter .form-label { font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #151515; margin-bottom: 0.25rem; }
.sc-filter .form-select, .sc-filter .form-control { border-radius: 0; border: 1px solid #e0e1e3; font-size: 0.82rem; }
.sc-filter .form-select:focus { border-color: #E34824; box-shadow: 0 0 0 0.15rem rgba(227,72,36,0.12); }
.sc-filter .form-check-input { border-radius: 0; border-color: #e0e1e3; }
.sc-filter .form-check-input:checked { background-color: #E34824; border-color: #E34824; }
.sc-filter .form-check-label { font-size: 0.82rem; }

/* ── Legenda ── */
.sc-legenda { display: flex; flex-direction: column; gap: 0.5rem; }
.sc-legenda-item { display: flex; align-items: center; gap: 0.5rem; font-size: 0.82rem; color: #151515; }
.sc-legenda-color { width: 14px; height: 14px; flex-shrink: 0; }

/* ── Scadenza items sidebar ── */
.sc-scad-list { max-height: 220px; overflow-y: auto; }
.sc-scad-item { display: flex; justify-content: space-between; align-items: flex-start; padding: 0.6rem 1rem 0.6rem calc(1rem + 4px); border-bottom: 1px solid #EEEFF0; text-decoration: none; color: #151515; transition: background 0.15s; border-left: 4px solid transparent; }
.sc-scad-item:hover { background: rgba(227,72,36,0.03); color: #151515; }
.sc-scad-item:last-child { border-bottom: none; }
.sc-scad-item--red { border-left-color: #dc2626; }
.sc-scad-item--amber { border-left-color: #d97706; }
.sc-scad-item--cyan { border-left-color: #0891b2; }
.sc-scad-item strong { font-size: 0.82rem; display: block; margin-bottom: 0.1rem; }
.sc-scad-item small { font-size: 0.72rem; color: #9ca3af; }
.sc-scad-complete-btn { width: 26px; height: 26px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(5,150,105,0.3); background: transparent; color: #059669; font-size: 0.75rem; flex-shrink: 0; cursor: pointer; transition: all 0.15s; }
.sc-scad-complete-btn:hover { background: rgba(5,150,105,0.08); border-color: #059669; }
.sc-scad-empty { text-align: center; padding: 1.5rem; }
.sc-scad-empty i { color: #e0e1e3; font-size: 1.8rem; display: block; margin-bottom: 0.3rem; }
.sc-scad-empty p { font-size: 0.82rem; color: #6b7280; margin: 0; }
@media (max-width: 991.98px) { .sc-stats { grid-template-columns: repeat(2, 1fr); } .sc-header { flex-direction: column; } }
@media (max-width: 575.98px) { .sc-stats { grid-template-columns: 1fr; } }

/* ============================================
    SCADENZE > CREATE PAGE STYLES
============================================ */

.scc-page { padding: 2rem; }
.scc-breadcrumb { display: flex; align-items: center; gap: 0.4rem; margin-bottom: 0.75rem; font-size: 0.8rem; flex-wrap: wrap; }
.scc-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.scc-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.scc-breadcrumb .scc-sep { color: #e0e1e3; }
.scc-breadcrumb .scc-current { color: #6b7280; font-weight: 500; }
.scc-header { margin-bottom: 2rem; }
.scc-header h1 { font-size: 1.5rem; font-weight: 700; color: #151515; margin: 0 0 0.25rem; display: flex; align-items: center; gap: 0.5rem; }
.scc-header h1 svg { color: #E34824; }
.scc-header p { font-size: 0.85rem; color: #6b7280; margin: 0.25rem 0 0; }

/* Cards */
.scc-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; margin-bottom: 1.5rem; overflow: hidden; }
.scc-card-header { padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.6rem; position: relative; }
.scc-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.scc-card-header--green::before { background: #059669; }
.scc-card-header--light::before { background: #e0e1e3; }
.scc-card-header--amber::before { background: #d97706; }
.scc-card-header--cyan::before { background: #0891b2; }
.scc-card-header-icon { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.scc-card-header--green .scc-card-header-icon { background: rgba(5,150,105,0.08); border: 1px solid rgba(5,150,105,0.15); }
.scc-card-header--green .scc-card-header-icon i { color: #059669; }
.scc-card-header--light .scc-card-header-icon { background: rgba(107,114,128,0.06); border: 1px solid #e0e1e3; }
.scc-card-header--light .scc-card-header-icon i { color: #6b7280; }
.scc-card-header--amber .scc-card-header-icon { background: rgba(217,119,6,0.08); border: 1px solid rgba(217,119,6,0.15); }
.scc-card-header--amber .scc-card-header-icon i { color: #d97706; }
.scc-card-header--cyan .scc-card-header-icon { background: rgba(8,145,178,0.08); border: 1px solid rgba(8,145,178,0.15); }
.scc-card-header--cyan .scc-card-header-icon i { color: #0891b2; }
.scc-card-header h2 { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; }
.scc-card-body { padding: 1.5rem; padding-left: calc(1.5rem + 4px); }

/* Form */
.scc-form .form-label { font-size: 0.8rem; font-weight: 600; color: #151515; margin-bottom: 0.3rem; }
.scc-form .form-label .text-danger { color: #dc2626 !important; }
.scc-form .form-control, .scc-form .form-select { border-radius: 0; border: 1px solid #e0e1e3; font-size: 0.85rem; }
.scc-form .form-control:focus, .scc-form .form-select:focus { border-color: #E34824; box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
.scc-form .input-group-text { border-radius: 0; background: #EEEFF0; border: 1px solid #e0e1e3; font-size: 0.85rem; color: #6b7280; }
.scc-form .form-text { font-size: 0.72rem; color: #9ca3af; }
.scc-form .text-danger { font-size: 0.72rem; }
.scc-form .alert-danger { border-radius: 0; border-left: 4px solid #dc2626; background: rgba(220,38,38,0.04); font-size: 0.85rem; }
.scc-sep-line { border: none; border-top: 1px solid #EEEFF0; margin: 1.5rem 0; }
.scc-section-title { font-size: 0.82rem; font-weight: 600; color: #6b7280; margin-bottom: 0.75rem; display: flex; align-items: center; gap: 0.4rem; text-transform: uppercase; letter-spacing: 0.03em; }
.scc-section-title i { color: #E34824; }

/* Buttons */
.scc-btn { padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem; transition: all 0.2s; cursor: pointer; border: 2px solid; }
.scc-btn-primary { background: #059669; color: #fff; border-color: #059669; }
.scc-btn-primary:hover { background: #047857; border-color: #047857; color: #fff; }
.scc-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.scc-btn-secondary:hover { border-color: #151515; color: #151515; }

/* Sidebar */
.scc-sticky { position: sticky; top: 72px; z-index: 10; }
.scc-info-list { font-size: 0.82rem; color: #151515; padding-left: 1.2rem; margin: 0; }
.scc-info-list li { margin-bottom: 0.35rem; }
.scc-info-list li strong { color: #E34824; }
.scc-info-text { font-size: 0.82rem; color: #6b7280; margin: 0; }
.scc-info-title { font-size: 0.82rem; font-weight: 700; color: #151515; margin: 0 0 0.35rem; }

/* Suggerimenti card */
.scc-sugg-card { display: none; }
.scc-sugg-title { font-size: 0.82rem; font-weight: 700; color: #d97706; margin: 0 0 0.25rem; }
.scc-sugg-text { font-size: 0.82rem; color: #6b7280; margin: 0; }

@media (max-width: 991.98px) { .scc-sticky { position: static; } }

/* ============================================
    SCADENZE > DETAILS PAGE STYLES
============================================ */

.sd-page { padding: 2rem; }
.sd-breadcrumb { display: flex; align-items: center; gap: 0.4rem; margin-bottom: 0.75rem; font-size: 0.8rem; flex-wrap: wrap; }
.sd-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.sd-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.sd-breadcrumb .sd-sep { color: #e0e1e3; }
.sd-breadcrumb .sd-current { color: #6b7280; font-weight: 500; }

/* Header */
.sd-header { display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; gap: 1rem; margin-bottom: 1.5rem; }
.sd-header h1 { font-size: 1.4rem; font-weight: 700; color: #151515; margin: 0 0 0.5rem; display: flex; align-items: center; gap: 0.5rem; }
.sd-header h1 svg { color: #E34824; flex-shrink: 0; }
.sd-badges { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.sd-badge { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.25rem 0.65rem; font-size: 0.72rem; font-weight: 600; border: 1px solid; text-transform: uppercase; letter-spacing: 0.03em; }
.sd-badge-success { background: rgba(5,150,105,0.06); color: #059669; border-color: rgba(5,150,105,0.2); }
.sd-badge-danger { background: rgba(220,38,38,0.06); color: #dc2626; border-color: rgba(220,38,38,0.2); }
.sd-badge-warn { background: rgba(217,119,6,0.06); color: #d97706; border-color: rgba(217,119,6,0.2); }
.sd-badge-primary { background: rgba(227,72,36,0.06); color: #E34824; border-color: rgba(227,72,36,0.2); }
.sd-badge-secondary { background: rgba(107,114,128,0.06); color: #6b7280; border-color: rgba(107,114,128,0.2); }
.sd-badge-info { background: rgba(8,145,178,0.06); color: #0891b2; border-color: rgba(8,145,178,0.2); }
.sd-header-actions { display: flex; gap: 0.5rem; flex-wrap: wrap; }

/* Buttons */
.sd-btn { padding: 0.5rem 1.2rem; font-weight: 600; font-size: 0.82rem; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.35rem; transition: all 0.15s; cursor: pointer; border: 2px solid; }
.sd-btn-green { background: #059669; color: #fff; border-color: #059669; }
.sd-btn-green:hover { background: #047857; border-color: #047857; color: #fff; }
.sd-btn-amber { background: #d97706; color: #fff; border-color: #d97706; }
.sd-btn-amber:hover { background: #b45309; border-color: #b45309; color: #fff; }
.sd-btn-danger { background: #dc2626; color: #fff; border-color: #dc2626; }
.sd-btn-danger:hover { background: #b91c1c; border-color: #b91c1c; color: #fff; }
.sd-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.sd-btn-secondary:hover { border-color: #151515; color: #151515; }
.sd-btn-outline { background: transparent; font-size: 0.82rem; padding: 0.4rem 0.8rem; border: 1px solid; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.3rem; transition: all 0.15s; font-weight: 600; }
.sd-btn-outline-amber { color: #d97706; border-color: rgba(217,119,6,0.2); }
.sd-btn-outline-amber:hover { background: rgba(217,119,6,0.04); border-color: #d97706; color: #d97706; }
.sd-btn-outline-info { color: #0891b2; border-color: rgba(8,145,178,0.2); }
.sd-btn-outline-info:hover { background: rgba(8,145,178,0.04); border-color: #0891b2; color: #0891b2; }
.sd-btn-outline-danger { color: #dc2626; border-color: rgba(220,38,38,0.2); }
.sd-btn-outline-danger:hover { background: rgba(220,38,38,0.04); border-color: #dc2626; color: #dc2626; }
.sd-btn-outline-primary { color: #E34824; border-color: rgba(227,72,36,0.2); }
.sd-btn-outline-primary:hover { background: rgba(227,72,36,0.04); border-color: #E34824; color: #E34824; }
.sd-btn-outline-secondary { color: #6b7280; border-color: #e0e1e3; }
.sd-btn-outline-secondary:hover { border-color: #151515; color: #151515; }

/* Alerts */
.sd-alert { border-radius: 0; border: 1px solid #e0e1e3; padding: 0.85rem 1.25rem; font-size: 0.85rem; display: flex; align-items: center; gap: 0.5rem; margin-bottom: 1rem; }
.sd-alert-success { background: rgba(5,150,105,0.05); border-left: 4px solid #059669; }
.sd-alert-success i { color: #059669; }

/* Cards */
.sd-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; margin-bottom: 1.5rem; overflow: hidden; }
.sd-card-header { padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.6rem; position: relative; }
.sd-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.sd-card-header--orange::before { background: #E34824; }
.sd-card-header--gray::before { background: #6b7280; }
.sd-card-header--light::before { background: #e0e1e3; }
.sd-card-header--green::before { background: #059669; }
.sd-card-header--cyan::before { background: #0891b2; }
.sd-card-header--red::before { background: #dc2626; }
.sd-card-header--amber::before { background: #d97706; }
.sd-card-header-icon { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.sd-card-header--orange .sd-card-header-icon { background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15); }
.sd-card-header--orange .sd-card-header-icon i { color: #E34824; }
.sd-card-header--gray .sd-card-header-icon { background: rgba(107,114,128,0.06); border: 1px solid #e0e1e3; }
.sd-card-header--gray .sd-card-header-icon i { color: #6b7280; }
.sd-card-header--light .sd-card-header-icon { background: rgba(107,114,128,0.06); border: 1px solid #e0e1e3; }
.sd-card-header--light .sd-card-header-icon i { color: #6b7280; }
.sd-card-header h2 { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; }
.sd-card-body { padding: 1.5rem; padding-left: calc(1.5rem + 4px); }

/* Fields */
.sd-field { display: flex; margin-bottom: 0.85rem; }
.sd-field:last-child { margin-bottom: 0; }
.sd-field-label { font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; width: 140px; flex-shrink: 0; padding-top: 0.15rem; }
.sd-field-value { font-size: 0.85rem; color: #151515; flex: 1; }
.sd-field-value small { font-size: 0.72rem; color: #9ca3af; }

.sd-date-display { font-size: 1.05rem; font-weight: 700; margin-bottom: 0.1rem; }
.sd-note-box { background: rgba(8,145,178,0.04); border-left: 3px solid #0891b2; padding: 0.6rem 0.85rem; font-size: 0.85rem; }
.sd-sep-line { border: none; border-top: 1px solid #EEEFF0; margin: 1rem 0; }

/* Entità correlate */
.sd-entity { display: flex; justify-content: space-between; align-items: center; padding: 0.85rem 1rem; border: 1px solid #EEEFF0; margin-bottom: 0.6rem; transition: background 0.15s; }
.sd-entity:last-child { margin-bottom: 0; }
.sd-entity:hover { background: rgba(227,72,36,0.02); }
.sd-entity-label { font-size: 0.72rem; font-weight: 600; text-transform: uppercase; color: #6b7280; margin-bottom: 0.15rem; display: flex; align-items: center; gap: 0.3rem; }
.sd-entity-value { font-size: 0.85rem; color: #151515; }
.sd-entity-sub { font-size: 0.72rem; color: #9ca3af; }

/* Countdown */
.sd-countdown { text-align: center; padding: 1.5rem 1rem; }
.sd-countdown-icon { font-size: 3rem; margin-bottom: 0.5rem; }
.sd-countdown-num { font-size: 3.5rem; font-weight: 800; line-height: 1; margin-bottom: 0.2rem; }
.sd-countdown-label { font-size: 0.82rem; color: #6b7280; }
.sd-countdown h3 { font-size: 1.1rem; font-weight: 700; margin: 0.5rem 0 0.2rem; }
.sd-countdown p { font-size: 0.82rem; color: #6b7280; margin: 0; }

/* Sidebar */
.sd-sticky { position: sticky; top: 72px; z-index: 10; }
.sd-sys-field { margin-bottom: 0.6rem; }
.sd-sys-field:last-child { margin-bottom: 0; }
.sd-sys-label { font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; }
.sd-sys-value { font-size: 0.85rem; color: #151515; }

@media (max-width: 991.98px) {
    .sd-sticky { position: static; }
    .sd-header { flex-direction: column; }
    .sd-field { flex-direction: column; }
    .sd-field-label { width: auto; margin-bottom: 0.15rem; }
}

/* ============================================
    SCADENZE > EDIT PAGE STYLES
============================================ */

.se-page { padding: 2rem; }
.se-breadcrumb { display: flex; align-items: center; gap: 0.4rem; margin-bottom: 0.75rem; font-size: 0.8rem; flex-wrap: wrap; }
.se-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.se-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.se-breadcrumb .se-sep { color: #e0e1e3; }
.se-breadcrumb .se-current { color: #6b7280; font-weight: 500; }
.se-header { margin-bottom: 2rem; }
.se-header h1 { font-size: 1.5rem; font-weight: 700; color: #151515; margin: 0 0 0.25rem; display: flex; align-items: center; gap: 0.5rem; }
.se-header h1 svg { color: #E34824; }
.se-alert { border-radius: 0; border: 1px solid #e0e1e3; padding: 0.85rem 1.25rem; font-size: 0.85rem; display: flex; align-items: flex-start; gap: 0.5rem; margin-bottom: 1rem; }
.se-alert-warning { background: rgba(217,119,6,0.04); border-left: 4px solid #d97706; }
.se-alert-warning i { color: #d97706; margin-top: 0.1rem; }
.se-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; margin-bottom: 1.5rem; overflow: hidden; }
.se-card-header { padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.6rem; position: relative; }
.se-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.se-card-header--amber::before { background: #d97706; }
.se-card-header--light::before { background: #e0e1e3; }
.se-card-header--green::before { background: #059669; }
.se-card-header--red::before { background: #dc2626; }
.se-card-header--cyan::before { background: #0891b2; }
.se-card-header--orange::before { background: #E34824; }
.se-card-header-icon { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.se-card-header--amber .se-card-header-icon { background: rgba(217,119,6,0.08); border: 1px solid rgba(217,119,6,0.15); }
.se-card-header--amber .se-card-header-icon i { color: #d97706; }
.se-card-header--light .se-card-header-icon { background: rgba(107,114,128,0.06); border: 1px solid #e0e1e3; }
.se-card-header--light .se-card-header-icon i { color: #6b7280; }
.se-card-header h2 { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; }
.se-card-body { padding: 1.5rem; padding-left: calc(1.5rem + 4px); }
.se-form .form-label { font-size: 0.8rem; font-weight: 600; color: #151515; margin-bottom: 0.3rem; }
.se-form .form-label .text-danger { color: #dc2626 !important; }
.se-form .form-control, .se-form .form-select { border-radius: 0; border: 1px solid #e0e1e3; font-size: 0.85rem; }
.se-form .form-control:focus, .se-form .form-select:focus { border-color: #E34824; box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
.se-form .form-control.bg-light { background: #EEEFF0 !important; }
.se-form .input-group-text { border-radius: 0; background: #EEEFF0; border: 1px solid #e0e1e3; font-size: 0.85rem; color: #6b7280; }
.se-form small { font-size: 0.72rem; color: #9ca3af; }
.se-form .text-danger { font-size: 0.72rem; }
.se-form .alert-danger { border-radius: 0; border-left: 4px solid #dc2626; background: rgba(220,38,38,0.04); font-size: 0.85rem; }
.se-form .form-check-input { border-radius: 0; border-color: #e0e1e3; }
.se-form .form-check-input:checked { background-color: #059669; border-color: #059669; }
.se-sep-line { border: none; border-top: 1px solid #EEEFF0; margin: 1.5rem 0; }
.se-section-title { font-size: 0.82rem; font-weight: 600; color: #6b7280; margin-bottom: 0.75rem; display: flex; align-items: center; gap: 0.4rem; text-transform: uppercase; letter-spacing: 0.03em; }
.se-section-title i { color: #E34824; }
.se-btn { padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem; transition: all 0.2s; cursor: pointer; border: 2px solid; }
.se-btn-amber { background: #d97706; color: #fff; border-color: #d97706; }
.se-btn-amber:hover { background: #b45309; border-color: #b45309; color: #fff; }
.se-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.se-btn-secondary:hover { border-color: #151515; color: #151515; }
.se-btn-outline { background: transparent; font-size: 0.82rem; padding: 0.4rem 0.8rem; border: 1px solid; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.3rem; transition: all 0.15s; font-weight: 600; }
.se-btn-outline-info { color: #0891b2; border-color: rgba(8,145,178,0.2); }
.se-btn-outline-info:hover { background: rgba(8,145,178,0.04); border-color: #0891b2; color: #0891b2; }
.se-btn-outline-danger { color: #dc2626; border-color: rgba(220,38,38,0.2); }
.se-btn-outline-danger:hover { background: rgba(220,38,38,0.04); border-color: #dc2626; color: #dc2626; }
.se-field { margin-bottom: 0.6rem; }
.se-field:last-child { margin-bottom: 0; }
.se-field-label { font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; }
.se-field-value { font-size: 0.85rem; color: #151515; }
.se-completamento-box { border: 1px solid #e0e1e3; padding: 1rem 1.25rem; transition: all 0.2s; }
.se-completamento-box--active { border-color: rgba(5,150,105,0.3); background: rgba(5,150,105,0.03); }
.se-stato-display { text-align: center; padding: 1rem; }
.se-stato-display h3 { font-size: 1rem; font-weight: 700; margin: 0 0 0.2rem; display: flex; align-items: center; justify-content: center; gap: 0.4rem; }
.se-stato-display p { font-size: 0.82rem; color: #6b7280; margin: 0; }
.se-sticky { position: sticky; top: 72px; z-index: 10; }
@media (max-width: 991.98px) { .se-sticky { position: static; } }


/* ============================================
    SCADENZE > DELETE PAGE STYLES
============================================ */

/* sdd- prefix = Scadenze Delete page */

/* Breadcrumb */
.sdd-breadcrumb {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    flex-wrap: wrap;
    margin-bottom: 1.5rem;
}
.sdd-breadcrumb a {
    color: var(--cb-accent);
    text-decoration: none;
    font-weight: 500;
}
.sdd-breadcrumb a:hover {
    color: var(--cb-accent-hover);
    text-decoration: underline;
}
.sdd-breadcrumb .sdd-sep { color: var(--cb-border); }
.sdd-breadcrumb .sdd-current { color: var(--cb-gray); font-weight: 500; }

/* Page header */
.sdd-page-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 1.5rem;
}
.sdd-page-title {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--cb-dark);
    letter-spacing: -0.025em;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0.6rem;
}
.sdd-page-subtitle {
    font-size: 0.85rem;
    color: var(--cb-gray);
    margin: 0.25rem 0 0 0;
}

/* Alert */
.sdd-alert {
    border-radius: 0;
    border: 1px solid var(--cb-border);
    padding: 0.85rem 1.25rem;
    font-size: 0.85rem;
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    margin-bottom: 1.5rem;
}
.sdd-alert-danger {
    border-left: 4px solid var(--cb-danger);
    background: rgba(220, 38, 38, 0.04);
    color: var(--cb-dark);
}
.sdd-alert-danger .sdd-alert-icon { color: var(--cb-danger); flex-shrink: 0; margin-top: 1px; }
.sdd-alert-warning {
    border-left: 4px solid var(--cb-amber);
    background: rgba(217, 119, 6, 0.04);
    color: var(--cb-dark);
}
.sdd-alert-warning .sdd-alert-icon { color: var(--cb-amber); flex-shrink: 0; margin-top: 1px; }
.sdd-alert-info {
    border-left: 4px solid var(--cb-cyan);
    background: rgba(8, 145, 178, 0.04);
    color: var(--cb-dark);
}
.sdd-alert-info .sdd-alert-icon { color: var(--cb-cyan); flex-shrink: 0; margin-top: 1px; }
.sdd-alert strong { font-weight: 600; }

/* Cards */
.sdd-card {
    background: var(--cb-white);
    border: 1px solid var(--cb-border);
    border-radius: 0;
    overflow: hidden;
    margin-bottom: 1.5rem;
}
.sdd-card-header {
    position: relative;
    padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--cb-border);
    display: flex;
    align-items: center;
    gap: 0.75rem;
}
.sdd-card-header::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
}
.sdd-card-header--danger::before { background: var(--cb-danger); }
.sdd-card-header--warning::before { background: var(--cb-amber); }
.sdd-card-header--audit::before { background: var(--cb-border); }
.sdd-card-header--info::before { background: var(--cb-cyan); }

.sdd-icon-box {
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.sdd-icon-box--danger {
    background: rgba(220, 38, 38, 0.08);
    border: 1px solid rgba(220, 38, 38, 0.15);
}
.sdd-icon-box--danger i { color: var(--cb-danger); }
.sdd-icon-box--warning {
    background: rgba(217, 119, 6, 0.08);
    border: 1px solid rgba(217, 119, 6, 0.15);
}
.sdd-icon-box--warning i { color: var(--cb-amber); }
.sdd-icon-box--audit {
    background: rgba(107, 114, 128, 0.08);
    border: 1px solid rgba(107, 114, 128, 0.15);
}
.sdd-icon-box--audit i { color: var(--cb-gray); }
.sdd-icon-box--info {
    background: rgba(8, 145, 178, 0.08);
    border: 1px solid rgba(8, 145, 178, 0.15);
}
.sdd-icon-box--info i { color: var(--cb-cyan); }

.sdd-card-title {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--cb-dark);
    margin: 0;
}
.sdd-card-body {
    padding: 1.5rem;
}
.sdd-card-body--padleft {
    padding-left: calc(1.5rem + 4px);
}

/* Fields */
.sdd-field {
    display: flex;
    margin-bottom: 0.85rem;
}
.sdd-field:last-child { margin-bottom: 0; }
.sdd-field-label {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--cb-gray);
    width: 140px;
    flex-shrink: 0;
    padding-top: 0.15rem;
}
.sdd-field-value {
    font-size: 0.85rem;
    color: var(--cb-dark);
    flex: 1;
    font-weight: 500;
}

/* Section divider */
.sdd-divider {
    border: 0;
    border-top: 1px solid var(--cb-light);
    margin: 1rem 0;
}

/* Section label */
.sdd-section-label {
    font-size: 0.82rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--cb-gray);
    margin-bottom: 0.75rem;
    display: flex;
    align-items: center;
    gap: 0.4rem;
}
.sdd-section-label i { color: var(--cb-accent); }

/* Badges */
.sdd-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.25rem 0.65rem;
    font-size: 0.7rem;
    font-weight: 600;
    border-radius: 0;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    border: 1px solid;
}
.sdd-badge--secondary {
    background: rgba(107, 114, 128, 0.06);
    color: var(--cb-gray);
    border-color: rgba(107, 114, 128, 0.2);
}
.sdd-badge--success {
    background: rgba(5, 150, 105, 0.06);
    color: var(--cb-green);
    border-color: rgba(5, 150, 105, 0.2);
}
.sdd-badge--warn {
    background: rgba(217, 119, 6, 0.06);
    color: var(--cb-amber);
    border-color: rgba(217, 119, 6, 0.2);
}
.sdd-badge--primary {
    background: rgba(227, 72, 36, 0.06);
    color: var(--cb-accent);
    border-color: rgba(227, 72, 36, 0.2);
}

/* Note box */
.sdd-note-box {
    background: rgba(8, 145, 178, 0.04);
    border-left: 3px solid var(--cb-cyan);
    padding: 0.6rem 0.85rem;
    font-size: 0.82rem;
    color: var(--cb-dark);
    margin-bottom: 1.25rem;
}

/* Consequences list */
.sdd-consequences {
    list-style: none;
    padding: 0;
    margin: 0;
}
.sdd-consequences li {
    font-size: 0.82rem;
    color: var(--cb-dark);
    padding: 0.45rem 0;
    border-bottom: 1px solid var(--cb-light);
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
}
.sdd-consequences li:last-child { border-bottom: none; }
.sdd-consequences li::before {
    content: '';
    width: 5px;
    height: 5px;
    background: var(--cb-amber);
    flex-shrink: 0;
    margin-top: 6px;
}

/* Audit fields */
.sdd-audit-field { margin-bottom: 0.75rem; }
.sdd-audit-field:last-child { margin-bottom: 0; }
.sdd-sys-label {
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--cb-gray);
    margin-bottom: 0.15rem;
}
.sdd-sys-value {
    font-size: 0.85rem;
    color: var(--cb-dark);
    font-weight: 500;
}

/* Buttons */
.sdd-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.55rem 1.5rem;
    font-size: 0.85rem;
    font-weight: 600;
    border-radius: 0;
    border: 2px solid;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}
.sdd-btn-danger {
    background: var(--cb-danger);
    color: #fff;
    border-color: var(--cb-danger);
}
.sdd-btn-danger:hover {
    background: var(--cb-danger-hover);
    border-color: var(--cb-danger-hover);
    box-shadow: 0 2px 8px rgba(220, 38, 38, 0.25);
    color: #fff;
}
.sdd-btn-secondary {
    background: transparent;
    color: var(--cb-gray);
    border-color: var(--cb-border);
}
.sdd-btn-secondary:hover {
    border-color: var(--cb-dark);
    color: var(--cb-dark);
    text-decoration: none;
}
.sdd-btn-warning {
    background: var(--cb-amber);
    color: #fff;
    border-color: var(--cb-amber);
}
.sdd-btn-warning:hover {
    background: #b45309;
    border-color: #b45309;
    color: #fff;
}

/* Outline small buttons (sidebar alternatives) */
.sdd-btn-outline {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.4rem 0.8rem;
    font-size: 0.82rem;
    font-weight: 600;
    border-radius: 0;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
    width: 100%;
    justify-content: center;
    border: 1px solid;
    background: transparent;
}
.sdd-btn-outline--success {
    color: var(--cb-green);
    border-color: rgba(5, 150, 105, 0.25);
}
.sdd-btn-outline--success:hover {
    background: rgba(5, 150, 105, 0.06);
    border-color: var(--cb-green);
    color: var(--cb-green);
}
.sdd-btn-outline--amber {
    color: var(--cb-amber);
    border-color: rgba(217, 119, 6, 0.25);
}
.sdd-btn-outline--amber:hover {
    background: rgba(217, 119, 6, 0.06);
    border-color: var(--cb-amber);
    color: var(--cb-amber);
    text-decoration: none;
}
.sdd-btn-outline--info {
    color: var(--cb-cyan);
    border-color: rgba(8, 145, 178, 0.25);
}
.sdd-btn-outline--info:hover {
    background: rgba(8, 145, 178, 0.06);
    border-color: var(--cb-cyan);
    color: var(--cb-cyan);
    text-decoration: none;
}
.sdd-alt-stack {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.sdd-alt-desc {
    font-size: 0.82rem;
    color: var(--cb-gray);
    margin-bottom: 0.75rem;
}

/* Sticky sidebar */
.sdd-sidebar-sticky {
    position: sticky;
    top: 72px;
    z-index: 10;
}

/* Form actions */
.sdd-form-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 0.5rem;
}

/* Automatic block (full page) */
.sdd-auto-block {
    max-width: 640px;
    margin: 0 auto;
    padding: 2rem 0;
}
.sdd-auto-card {
    background: var(--cb-white);
    border: 1px solid var(--cb-border);
    border-radius: 0;
    overflow: hidden;
}
.sdd-auto-card-header {
    position: relative;
    padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--cb-border);
    display: flex;
    align-items: center;
    gap: 0.75rem;
}
.sdd-auto-card-header::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
    background: var(--cb-amber);
}
.sdd-auto-card-body {
    padding: 1.5rem;
}
.sdd-auto-card-body p {
    font-size: 0.85rem;
    color: var(--cb-dark);
    margin-bottom: 1rem;
}

/* Responsive */
@media (max-width: 991.98px) {
    .sdd-sidebar-sticky { position: static; }
    .sdd-field { flex-direction: column; }
    .sdd-field-label { width: auto; }
}
@media (max-width: 575.98px) {
    .sdd-page-header { flex-direction: column; gap: 1rem; }
}

/* ============================================
    REGISTRO CONTRATTI INDEX PAGE STYLES
============================================ */


/* ----- Wrapper pagina ----- */
.rc-page {
    padding: 2rem;
    width: 100%;
    box-sizing: border-box;
}

@media (max-width: 575.98px) {
    .rc-page { padding: 1rem; }
}

/* ----- Breadcrumb ----- */
.rc-breadcrumb {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    flex-wrap: wrap;
    margin-bottom: 0.75rem;
}
.rc-breadcrumb a { color: var(--cb-accent); text-decoration: none; font-weight: 500; }
.rc-breadcrumb a:hover { color: var(--cb-accent-hover); text-decoration: underline; }
.rc-breadcrumb .rc-sep { color: var(--cb-border); }
.rc-breadcrumb .rc-current { color: var(--cb-gray); font-weight: 500; }

/* ----- Page header ----- */
.rc-page-header {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.5rem;
}
.rc-title-group {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
}
.rc-title-icon {
    width: 34px; height: 34px;
    display: flex; align-items: center; justify-content: center; flex-shrink: 0;
    background: rgba(227,72,36,0.08);
    border: 1px solid rgba(227,72,36,0.15);
    color: var(--cb-accent);
}
.rc-page-title {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--cb-dark);
    letter-spacing: -0.025em;
    margin: 0;
    white-space: nowrap;
}
.rc-header-actions {
    display: flex;
    flex-direction: row;
    gap: 0.5rem;
    align-items: center;
    flex-shrink: 0;
}

/* ----- Bottoni ----- */
.rc-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.55rem 1.25rem;
    font-size: 0.85rem;
    font-weight: 600;
    border-radius: 0;
    border: 2px solid;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s, color 0.15s, box-shadow 0.15s;
    white-space: nowrap;
    flex-shrink: 0;
    width: auto;
}
.rc-btn-green {
    background: var(--cb-green); color: #fff; border-color: var(--cb-green);
}
.rc-btn-green:hover {
    background: var(--cb-green-hover); border-color: var(--cb-green-hover);
    box-shadow: 0 2px 8px rgba(5,150,105,0.20); color: #fff;
}
.rc-btn-accent {
    background: var(--cb-accent); color: #fff; border-color: var(--cb-accent);
}
.rc-btn-accent:hover {
    background: var(--cb-accent-hover); border-color: var(--cb-accent-hover);
    box-shadow: 0 2px 8px rgba(227,72,36,0.20); color: #fff;
}
.rc-btn-secondary {
    background: transparent; color: var(--cb-gray); border-color: var(--cb-border);
}
.rc-btn-secondary:hover { border-color: var(--cb-dark); color: var(--cb-dark); text-decoration: none; }
.rc-btn-danger {
    background: var(--cb-danger); color: #fff; border-color: var(--cb-danger);
}
.rc-btn-danger:hover {
    background: var(--cb-danger-hover); border-color: var(--cb-danger-hover);
    box-shadow: 0 2px 8px rgba(220,38,38,0.25);
}

/* ----- Bottoni icona tabella ----- */
.rc-btn-icon {
    width: 32px; height: 32px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 0; cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
    text-decoration: none; background: transparent;
}
.rc-btn-icon--secondary {
    border: 1px solid rgba(107,114,128,0.20); color: var(--cb-gray);
}
.rc-btn-icon--secondary:hover {
    background: rgba(107,114,128,0.06); border-color: var(--cb-gray); color: var(--cb-gray);
}
.rc-btn-icon--amber {
    border: 1px solid rgba(217,119,6,0.20); color: var(--cb-amber);
}
.rc-btn-icon--amber:hover {
    background: rgba(217,119,6,0.06); border-color: var(--cb-amber); color: var(--cb-amber);
}
.rc-btn-icon--danger {
    border: 1px solid rgba(220,38,38,0.20); color: var(--cb-danger);
    background: transparent; font-size: inherit; padding: 0; cursor: pointer;
}
.rc-btn-icon--danger:hover {
    background: rgba(220,38,38,0.06); border-color: var(--cb-danger); color: var(--cb-danger);
}

/* ----- Alert ----- */
.rc-alert {
    border-radius: 0; border: 1px solid var(--cb-border);
    padding: 0.85rem 1.25rem; font-size: 0.85rem;
    display: flex; align-items: flex-start; gap: 0.6rem;
    margin-bottom: 1.5rem;
}
.rc-alert-success { border-left: 4px solid var(--cb-green); background: rgba(5,150,105,0.04); }
.rc-alert-success .rc-alert-icon { color: var(--cb-green); flex-shrink: 0; }
.rc-alert-danger  { border-left: 4px solid var(--cb-danger); background: rgba(220,38,38,0.04); }
.rc-alert-danger  .rc-alert-icon { color: var(--cb-danger); flex-shrink: 0; }
.rc-alert-close {
    margin-left: auto; background: none; border: none; cursor: pointer;
    color: var(--cb-muted); font-size: 1rem; line-height: 1; padding: 0; flex-shrink: 0;
}
.rc-alert-close:hover { color: var(--cb-dark); }

/* ----- Stats grid ----- */
.rc-stats {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 1rem;
    margin-bottom: 1.5rem;
}
.rc-stat {
    text-align: center;
    padding: 1.25rem 1rem;
    background: var(--cb-white);
    border: 1px solid var(--cb-border);
    border-radius: 0;
    transition: transform 0.15s, border-color 0.15s;
    text-decoration: none;
    display: block;
}
.rc-stat:hover { transform: translateY(-2px); border-color: var(--cb-muted); }
.rc-stat--warn   { border-color: rgba(217,119,6,0.30); }
.rc-stat--warn:hover { border-color: var(--cb-amber); }
.rc-stat--danger { border-color: rgba(220,38,38,0.30); }
.rc-stat--danger:hover { border-color: var(--cb-danger); }
.rc-stat-num {
    font-size: 1.75rem; font-weight: 700; line-height: 1.2;
}
.rc-stat-label {
    font-size: 0.68rem; font-weight: 600; text-transform: uppercase;
    letter-spacing: 0.03em; color: var(--cb-gray); margin-top: 0.25rem;
}
.rc-stat-num--total   { color: var(--cb-accent); }
.rc-stat-num--info    { color: var(--cb-cyan); }
.rc-stat-num--success { color: var(--cb-green); }
.rc-stat-num--warn    { color: var(--cb-amber); }
.rc-stat-num--danger  { color: var(--cb-danger); }
.rc-stat-num--dark    { font-size: 1.1rem; color: var(--cb-dark); }

/* ----- Card ----- */
.rc-card {
    background: var(--cb-white);
    border: 1px solid var(--cb-border);
    border-radius: 0;
    overflow: hidden;
}
.rc-card-header {
    position: relative;
    padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--cb-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}
.rc-card-header::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
    background: var(--cb-gray);
}
.rc-card-header-left { display: flex; align-items: center; gap: 0.75rem; }
.rc-icon-box {
    width: 34px; height: 34px;
    display: flex; align-items: center; justify-content: center; flex-shrink: 0;
    background: rgba(107,114,128,0.08);
    border: 1px solid rgba(107,114,128,0.15);
}
.rc-icon-box i { color: var(--cb-gray); font-size: 1rem; }
.rc-card-title {
    font-size: 0.9rem; font-weight: 700; color: var(--cb-dark); margin: 0;
}
.rc-card-meta { font-size: 0.82rem; color: var(--cb-gray); }

/* ----- Tabella ----- */
.rc-table { width: 100%; border-collapse: collapse; }
.rc-table thead th {
    background: var(--cb-dark); color: #fff;
    font-size: 0.75rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.03em;
    padding: 0.75rem 1rem;
    border: none; white-space: nowrap;
}
.rc-table thead th:first-child { padding-left: 1.5rem; }
.rc-table thead th:last-child  { padding-right: 1.5rem; }
.rc-table tbody td {
    padding: 0.75rem 1rem;
    font-size: 0.85rem;
    color: var(--cb-dark);
    border-bottom: 1px solid var(--cb-light);
    vertical-align: middle;
}
.rc-table tbody td:first-child { padding-left: 1.5rem; }
.rc-table tbody td:last-child  { padding-right: 1.5rem; }
.rc-table tbody tr { transition: background 0.15s; }
.rc-table tbody tr:hover              { background: rgba(227,72,36,0.03); }
.rc-table tbody tr.rc-row--scaduto   { background: rgba(220,38,38,0.03); }
.rc-table tbody tr.rc-row--scaduto:hover  { background: rgba(220,38,38,0.06); }
.rc-table tbody tr.rc-row--warning   { background: rgba(217,119,6,0.03); }
.rc-table tbody tr.rc-row--warning:hover  { background: rgba(217,119,6,0.06); }

/* ----- Badge ----- */
.rc-badge {
    display: inline-flex; align-items: center; gap: 0.25rem;
    padding: 0.25rem 0.65rem; font-size: 0.68rem; font-weight: 600;
    border-radius: 0; text-transform: uppercase; letter-spacing: 0.03em; border: 1px solid;
    white-space: nowrap;
}
.rc-badge--secondary { background: rgba(107,114,128,0.06); color: var(--cb-gray);   border-color: rgba(107,114,128,0.20); }
.rc-badge--primary   { background: rgba(227,72,36,0.06);   color: var(--cb-accent); border-color: rgba(227,72,36,0.20); }
.rc-badge--success   { background: rgba(5,150,105,0.06);   color: var(--cb-green);  border-color: rgba(5,150,105,0.20); }
.rc-badge--warn      { background: rgba(217,119,6,0.06);   color: var(--cb-amber);  border-color: rgba(217,119,6,0.20); }
.rc-badge--danger    { background: rgba(220,38,38,0.06);   color: var(--cb-danger); border-color: rgba(220,38,38,0.20); }
.rc-badge--info      { background: rgba(8,145,178,0.06);   color: var(--cb-cyan);   border-color: rgba(8,145,178,0.20); }
.rc-badge--light     { background: rgba(107,114,128,0.06); color: var(--cb-gray);   border-color: rgba(107,114,128,0.15); }

/* ----- Row link ----- */
.rc-row-link {
    color: var(--cb-dark); font-weight: 600; font-size: 0.85rem;
    text-decoration: none; transition: color 0.15s;
}
.rc-row-link:hover { color: var(--cb-accent); }
.rc-row-sub {
    font-size: 0.75rem; color: var(--cb-gray); margin-top: 0.15rem;
    display: flex; align-items: center; gap: 0.25rem;
}

/* ----- Code tag ----- */
.rc-code {
    font-size: 0.78rem; color: var(--cb-gray);
    font-family: monospace; background: var(--cb-light);
    padding: 0.1rem 0.35rem;
}

/* ----- Azioni tabella ----- */
.rc-actions { display: flex; align-items: center; gap: 0.25rem; justify-content: flex-end; }

/* ----- Dropdown toggle ----- */
.rc-dropdown-toggle {
    width: 32px; height: 32px;
    display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid rgba(107,114,128,0.20); color: var(--cb-gray);
    background: transparent; cursor: pointer; border-radius: 0;
    transition: background 0.15s;
}
.rc-dropdown-toggle:hover  { background: rgba(107,114,128,0.06); border-color: var(--cb-gray); }
.rc-dropdown-toggle.is-open { background: rgba(107,114,128,0.08); border-color: var(--cb-gray); }

/* ----- Floating menu ----- */
.rc-floating-menu {
    display: none;
    position: fixed;
    z-index: 9999;
    background: var(--cb-white);
    border: 1px solid var(--cb-border);
    border-radius: 0;
    box-shadow: 0 8px 24px rgba(21,21,21,0.14);
    min-width: 190px;
}
.rc-floating-menu.is-open { display: block; }
.rc-dropdown-item {
    display: flex; align-items: center; gap: 0.5rem;
    padding: 0.55rem 1rem; font-size: 0.82rem; color: var(--cb-dark);
    text-decoration: none; cursor: pointer; background: none; border: none;
    width: 100%; text-align: left;
    transition: background 0.15s, color 0.15s;
}
.rc-dropdown-item:hover { background: rgba(227,72,36,0.06); color: var(--cb-accent); }
.rc-dropdown-item--danger { color: var(--cb-danger); }
.rc-dropdown-item--danger:hover { background: rgba(220,38,38,0.06); color: var(--cb-danger); }
.rc-dropdown-divider { border: 0; border-top: 1px solid var(--cb-light); margin: 0.25rem 0; }

/* ----- Empty state ----- */
.rc-empty { padding: 3rem 2rem; text-align: center; }
.rc-empty-icon { font-size: 3rem; color: var(--cb-muted); margin-bottom: 1rem; }
.rc-empty-text { font-size: 0.85rem; color: var(--cb-gray); margin-bottom: 1rem; }

/* ----- Paginazione ----- */
.rc-card-footer {
    padding: 0.85rem 1.5rem;
    border-top: 1px solid var(--cb-border);
    display: flex; align-items: center; justify-content: space-between; gap: 1rem;
    font-size: 0.82rem; color: var(--cb-gray);
    flex-wrap: wrap;
}

/* ----- Scadenza info ----- */
.rc-scad-warning { font-size: 0.75rem; color: var(--cb-amber); display: flex; align-items: center; gap: 0.25rem; margin-top: 0.15rem; }
.rc-scad-danger  { font-size: 0.75rem; color: var(--cb-danger); display: flex; align-items: center; gap: 0.25rem; margin-top: 0.15rem; }
.rc-scad-muted   { font-size: 0.75rem; color: var(--cb-muted); margin-top: 0.15rem; }

/* ----- Modal Corebeet ----- */
.rc-modal-backdrop {
    display: none; position: fixed; inset: 0;
    background: rgba(21,21,21,0.50); z-index: 1060;
    align-items: center; justify-content: center;
}
.rc-modal-backdrop.active { display: flex; }
.rc-modal {
    background: var(--cb-white); border: 1px solid var(--cb-border);
    border-radius: 0; width: 100%; max-width: 480px;
    box-shadow: 0 16px 48px rgba(21,21,21,0.20);
}
.rc-modal-header {
    position: relative; padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--cb-border);
    display: flex; align-items: center; gap: 0.75rem;
}
.rc-modal-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0;
    width: 4px; background: var(--cb-danger);
}
.rc-modal-icon-box {
    width: 34px; height: 34px;
    display: flex; align-items: center; justify-content: center;
    background: rgba(220,38,38,0.08); border: 1px solid rgba(220,38,38,0.15);
}
.rc-modal-icon-box i { color: var(--cb-danger); font-size: 1rem; }
.rc-modal-title { font-size: 0.95rem; font-weight: 700; color: var(--cb-dark); margin: 0; }
.rc-modal-body  { padding: 1.5rem; font-size: 0.85rem; color: var(--cb-dark); }
.rc-modal-note  { font-size: 0.78rem; color: var(--cb-muted); margin-top: 0.5rem; }
.rc-modal-footer {
    padding: 1rem 1.5rem; border-top: 1px solid var(--cb-border);
    display: flex; justify-content: flex-end; gap: 0.5rem;
}

/* ----- Responsive ----- */
@media (max-width: 1199.98px) { .rc-stats { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 767.98px)  {
    .rc-stats { grid-template-columns: repeat(2, 1fr); }
    .rc-table { font-size: 0.8rem; }
}
@media (max-width: 575.98px)  {
    .rc-stats { grid-template-columns: 1fr; }
    .rc-page-header { flex-direction: column; align-items: flex-start; }
    .rc-header-actions { width: 100%; flex-wrap: wrap; }
    .rc-btn { font-size: 0.8rem; padding: 0.5rem 1rem; }
}

/* ============================================
    REGISTRO CONTRATTI > CREATE PAGE STYLES
============================================ */

/* rcc- prefix = RegistroContratti Create */

/* Breadcrumb */
.rcc-breadcrumb {
    display: flex; align-items: center; gap: 0.4rem;
    font-size: 0.8rem; flex-wrap: wrap; margin-top: 0.3rem;
}
.rcc-breadcrumb a { color: var(--cb-accent); text-decoration: none; font-weight: 500; }
.rcc-breadcrumb a:hover { color: var(--cb-accent-hover); text-decoration: underline; }
.rcc-breadcrumb .rcc-sep { color: var(--cb-border); }
.rcc-breadcrumb .rcc-current { color: var(--cb-gray); font-weight: 500; }

/* Page header */
.rcc-page-header { margin-bottom: 1.5rem; }
.rcc-page-title {
    font-size: 1.4rem; font-weight: 700; color: var(--cb-dark);
    letter-spacing: -0.025em; margin: 0;
    display: flex; align-items: center; gap: 0.6rem;
}

/* Alerts */
.rcc-alert {
    border-radius: 0; border: 1px solid var(--cb-border);
    padding: 0.85rem 1.25rem; font-size: 0.85rem;
    display: flex; align-items: flex-start; gap: 0.6rem;
    margin-bottom: 1.5rem;
}
.rcc-alert-danger  { border-left: 4px solid var(--cb-danger); background: rgba(220,38,38,0.04); }
.rcc-alert-danger .rcc-alert-icon  { color: var(--cb-danger); flex-shrink: 0; }
.rcc-alert-info    { border-left: 4px solid var(--cb-cyan); background: rgba(8,145,178,0.04); }
.rcc-alert-info .rcc-alert-icon    { color: var(--cb-cyan); flex-shrink: 0; }
.rcc-alert-secondary { border-left: 4px solid var(--cb-gray); background: rgba(107,114,128,0.04); }
.rcc-alert-secondary .rcc-alert-icon { color: var(--cb-gray); flex-shrink: 0; }

/* Cards */
.rcc-card {
    background: var(--cb-white); border: 1px solid var(--cb-border);
    border-radius: 0; overflow: hidden; margin-bottom: 1.5rem;
}
.rcc-card-header {
    position: relative; padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--cb-border);
    display: flex; align-items: center; gap: 0.75rem;
}
.rcc-card-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
}
.rcc-card-header--accent::before   { background: var(--cb-accent); }
.rcc-card-header--cyan::before     { background: var(--cb-cyan); }
.rcc-card-header--green::before    { background: var(--cb-green); }
.rcc-card-header--amber::before    { background: var(--cb-amber); }
.rcc-card-header--gray::before     { background: var(--cb-gray); }

.rcc-icon-box {
    width: 34px; height: 34px; display: flex; align-items: center;
    justify-content: center; flex-shrink: 0;
}
.rcc-icon-box--accent  { background: rgba(227,72,36,0.08);  border: 1px solid rgba(227,72,36,0.15); }
.rcc-icon-box--accent i { color: var(--cb-accent); }
.rcc-icon-box--cyan    { background: rgba(8,145,178,0.08);  border: 1px solid rgba(8,145,178,0.15); }
.rcc-icon-box--cyan i   { color: var(--cb-cyan); }
.rcc-icon-box--green   { background: rgba(5,150,105,0.08);  border: 1px solid rgba(5,150,105,0.15); }
.rcc-icon-box--green i  { color: var(--cb-green); }
.rcc-icon-box--amber   { background: rgba(217,119,6,0.08);  border: 1px solid rgba(217,119,6,0.15); }
.rcc-icon-box--amber i  { color: var(--cb-amber); }
.rcc-icon-box--gray    { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); }
.rcc-icon-box--gray i   { color: var(--cb-gray); }

.rcc-card-title { font-size: 0.9rem; font-weight: 700; color: var(--cb-dark); margin: 0; }
.rcc-card-title-sub { font-size: 0.78rem; font-weight: 400; color: var(--cb-muted); margin-left: 0.4rem; }
.rcc-card-body { padding: 1.5rem; padding-left: calc(1.5rem + 4px); }

/* Section labels inside card */
.rcc-section-label {
    font-size: 0.82rem; font-weight: 600; text-transform: uppercase;
    letter-spacing: 0.03em; color: var(--cb-gray);
    margin-bottom: 0.75rem; display: flex; align-items: center; gap: 0.4rem;
}
.rcc-section-label i { color: var(--cb-accent); }

/* Divider */
.rcc-divider { border: 0; border-top: 1px solid var(--cb-light); margin: 1.5rem 0; }

/* Form elements */
.rcc-label {
    display: block; font-size: 0.8rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.04em;
    color: var(--cb-dark); margin-bottom: 0.35rem;
}
.rcc-required { color: var(--cb-danger); margin-left: 0.15rem; }
.rcc-form-control {
    width: 100%; border: 1px solid var(--cb-border); border-radius: 0;
    font-size: 0.85rem; padding: 0.5rem 0.75rem; color: var(--cb-dark);
    background: var(--cb-white); transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.rcc-form-control:focus {
    outline: none; border-color: var(--cb-accent);
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}
.rcc-form-control::placeholder { color: var(--cb-muted); }
.rcc-form-control[readonly], .rcc-form-control:disabled {
    background: var(--cb-light); color: var(--cb-gray); cursor: not-allowed;
}

/* Input group */
.rcc-input-group { display: flex; }
.rcc-input-group .rcc-form-control { flex: 1; }
.rcc-input-group-text {
    display: flex; align-items: center; justify-content: center;
    padding: 0.5rem 0.75rem; font-size: 0.85rem; font-weight: 600;
    color: var(--cb-gray); background: var(--cb-light);
    border: 1px solid var(--cb-border); border-radius: 0;
    border-right: none; flex-shrink: 0;
}
.rcc-input-group .rcc-form-control { border-left: none; }
.rcc-input-group-btn {
    display: inline-flex; align-items: center; justify-content: center;
    padding: 0.5rem 0.75rem; background: var(--cb-light);
    border: 1px solid var(--cb-border); border-left: none; border-radius: 0;
    color: var(--cb-gray); cursor: pointer; transition: background 0.2s, color 0.2s;
    flex-shrink: 0;
}
.rcc-input-group-btn:hover { background: var(--cb-border); color: var(--cb-dark); }

/* Checkbox/switch */
.rcc-check-wrap { display: flex; align-items: center; gap: 0.6rem; }
.rcc-check-input {
    width: 1rem; height: 1rem; border: 1px solid var(--cb-border);
    border-radius: 0; accent-color: var(--cb-accent); cursor: pointer; flex-shrink: 0;
}
.rcc-check-label { font-size: 0.85rem; font-weight: 500; color: var(--cb-dark); cursor: pointer; }

/* Validation */
.rcc-validation { font-size: 0.72rem; color: var(--cb-danger); margin-top: 0.25rem; display: block; }
.rcc-form-text  { font-size: 0.72rem; color: var(--cb-muted); margin-top: 0.25rem; display: block; }
.rcc-proto-msg  { font-size: 0.72rem; margin-top: 0.25rem; display: block; }

/* Note box */
.rcc-note-box {
    background: rgba(8,145,178,0.04); border-left: 3px solid var(--cb-cyan);
    padding: 0.6rem 0.85rem; font-size: 0.82rem; color: var(--cb-dark);
}

/* Durata calcolata */
.rcc-durata { font-size: 0.85rem; padding: 0.5rem 0; }

/* ---- Sidebar ---- */
.rcc-sidebar-sticky { position: sticky; top: 72px; z-index: 10; }

/* Riepilogo card */
.rcc-riepilogo-list { list-style: none; padding: 0; margin: 0 0 1.25rem 0; }
.rcc-riepilogo-item {
    display: flex; justify-content: space-between; align-items: center;
    padding: 0.6rem 0; border-bottom: 1px solid var(--cb-light);
    font-size: 0.82rem;
}
.rcc-riepilogo-item:last-child { border-bottom: none; }
.rcc-riepilogo-key  { color: var(--cb-gray); }
.rcc-riepilogo-val  { color: var(--cb-dark); font-weight: 500; text-align: right; max-width: 55%; }
.rcc-riepilogo-canone { font-weight: 700; font-size: 0.92rem; color: var(--cb-dark); }

/* Badges riepilogo */
.rcc-badge {
    display: inline-flex; align-items: center; gap: 0.2rem;
    padding: 0.2rem 0.55rem; font-size: 0.65rem; font-weight: 600;
    border-radius: 0; text-transform: uppercase; letter-spacing: 0.03em; border: 1px solid;
}
.rcc-badge--secondary { background: rgba(107,114,128,0.06); color: var(--cb-gray);  border-color: rgba(107,114,128,0.2); }
.rcc-badge--primary   { background: rgba(227,72,36,0.06);   color: var(--cb-accent); border-color: rgba(227,72,36,0.2); }
.rcc-badge--info      { background: rgba(8,145,178,0.06);   color: var(--cb-cyan);   border-color: rgba(8,145,178,0.2); }
.rcc-badge--success   { background: rgba(5,150,105,0.06);   color: var(--cb-green);  border-color: rgba(5,150,105,0.2); }

/* Buttons */
.rcc-btn {
    display: inline-flex; align-items: center; gap: 0.4rem;
    padding: 0.55rem 1.5rem; font-size: 0.85rem; font-weight: 600;
    border-radius: 0; border: 2px solid; text-decoration: none;
    cursor: pointer; transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
    width: 100%; justify-content: center;
}
.rcc-btn-green {
    background: var(--cb-green); color: #fff; border-color: var(--cb-green);
}
.rcc-btn-green:hover {
    background: var(--cb-green-hover); border-color: var(--cb-green-hover);
    box-shadow: 0 2px 8px rgba(5,150,105,0.2); color: #fff;
}
.rcc-btn-secondary {
    background: transparent; color: var(--cb-gray); border-color: var(--cb-border);
    margin-top: 0.5rem;
}
.rcc-btn-secondary:hover { border-color: var(--cb-dark); color: var(--cb-dark); text-decoration: none; }

/* Rinnovo alert in sidebar */
.rcc-sidebar-note {
    background: rgba(8,145,178,0.04); border-left: 3px solid var(--cb-cyan);
    padding: 0.6rem 0.85rem; font-size: 0.78rem; color: var(--cb-dark);
    margin-bottom: 1rem;
}

/* ── Tom Select — Override Design System Corebeet ── */

/* Wrapper principale */
.ts-wrapper.single .ts-control,
.ts-wrapper.multi .ts-control {
    border: 1px solid var(--cb-border);
    border-radius: 0;
    background: var(--cb-white);
    font-size: 0.85rem;
    padding: 0.5rem 0.75rem;
    color: var(--cb-dark);
    min-height: unset;
    box-shadow: none;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

/* Focus */
.ts-wrapper.single.focus .ts-control,
.ts-wrapper.multi.focus .ts-control {
    border-color: var(--cb-accent);
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
    outline: none;
}

/* Placeholder */
.ts-wrapper .ts-control > input::placeholder {
    color: var(--cb-muted);
    font-size: 0.85rem;
}

/* Nascondi placeholder/opzione vuota quando il dropdown è aperto */
.ts-wrapper.dropdown-active .ts-control > input::placeholder {
    color: transparent;
}
.ts-wrapper.dropdown-active .ts-control > .item[data-value=""] {
    display: none;
}

/* Item selezionato (single) */
.ts-wrapper.single .ts-control .item {
    color: var(--cb-dark);
    font-size: 0.85rem;
}

/* Freccia dropdown */
.ts-wrapper.single .ts-control::after {
    border-color: var(--cb-gray) transparent transparent;
}

/* Dropdown */
.ts-dropdown {
    border: 1px solid var(--cb-border);
    border-radius: 0;
    border-top: none;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    background: var(--cb-white);
    font-size: 0.85rem;
    z-index: 1060;
}

/* Opzioni nel dropdown */
.ts-dropdown .option {
    padding: 0.5rem 0.75rem;
    color: var(--cb-dark);
    font-size: 0.85rem;
    border-radius: 0;
}

/* Hover opzione */
.ts-dropdown .option:hover,
.ts-dropdown .option.active {
    background: #0d6efd;
    color: #fff;
}

/* Opzione selezionata */
.ts-dropdown .option.selected {
    background: #0d6efd;
    color: #fff;
}

/* Input di ricerca dentro il dropdown */
.ts-dropdown .ts-dropdown-content {
    max-height: 250px;
    overflow-y: auto;
}

/* "Nessun risultato" */
.ts-dropdown .no-results {
    padding: 0.5rem 0.75rem;
    color: var(--cb-muted);
    font-size: 0.82rem;
    font-style: italic;
}

/* Disabled */
.ts-wrapper.disabled .ts-control {
    background: var(--cb-light);
    color: var(--cb-gray);
    cursor: not-allowed;
    opacity: 1;
}

/* Rimuovi ombra/bordo Bootstrap residuo */
.ts-wrapper .ts-control,
.ts-wrapper .ts-control:hover {
    box-shadow: none;
}

/* ── Responsive ── */
@media (max-width: 576px) {
    .ts-wrapper.single .ts-control,
    .ts-wrapper.multi .ts-control {
        padding: 0.45rem 0.6rem;
        font-size: 0.82rem;
    }
    .ts-dropdown .option {
        padding: 0.55rem 0.6rem;
        font-size: 0.82rem;
    }
}

/* Responsive */
@media (max-width: 991.98px) {
    .rcc-sidebar-sticky { position: static; }
}
@media (max-width: 575.98px) {
    .rcc-page-title { font-size: 1.2rem; }
}

/* ============================================
    REGISTRO CONTRATTI > DETAILS PAGE STYLES
============================================ */

/* rd- prefix = RegistroContratti Details */

/* Breadcrumb */
.rd-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-top: 0.4rem; }
.rd-breadcrumb a { color: var(--cb-accent); text-decoration: none; font-weight: 500; }
.rd-breadcrumb a:hover { color: var(--cb-accent-hover); text-decoration: underline; }
.rd-breadcrumb .rd-sep { color: var(--cb-border); }
.rd-breadcrumb .rd-current { color: var(--cb-gray); font-weight: 500; }

/* Page header */
.rd-page-header {
    display: flex; align-items: flex-start; justify-content: space-between;
    gap: 1rem; flex-wrap: wrap; margin-bottom: 1.5rem;
}
.rd-page-title {
    font-size: 1.4rem; font-weight: 700; color: var(--cb-dark);
    letter-spacing: -0.025em; margin: 0.3rem 0 0.2rem 0;
    display: flex; align-items: center; gap: 0.6rem;
}
.rd-header-actions { display: flex; gap: 0.5rem; flex-wrap: wrap; align-items: flex-start; }
.rd-header-badges { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 0.4rem; }

/* Alerts */
.rd-alert {
    border-radius: 0; border: 1px solid var(--cb-border);
    padding: 0.85rem 1.25rem; font-size: 0.85rem;
    display: flex; align-items: flex-start; gap: 0.6rem; margin-bottom: 1.5rem;
}
.rd-alert-success  { border-left: 4px solid var(--cb-green);  background: rgba(5,150,105,0.04); }
.rd-alert-success .rd-alert-icon  { color: var(--cb-green); flex-shrink: 0; }
.rd-alert-danger   { border-left: 4px solid var(--cb-danger); background: rgba(220,38,38,0.04); }
.rd-alert-danger .rd-alert-icon   { color: var(--cb-danger); flex-shrink: 0; }
.rd-alert-info     { border-left: 4px solid var(--cb-cyan);   background: rgba(8,145,178,0.04); }
.rd-alert-info .rd-alert-icon     { color: var(--cb-cyan); flex-shrink: 0; }
.rd-alert-close {
    margin-left: auto; background: none; border: none; cursor: pointer;
    color: var(--cb-muted); font-size: 1rem; padding: 0; flex-shrink: 0;
}
.rd-alert-close:hover { color: var(--cb-dark); }
#rd-dynamic-alerts .rd-alert { margin-bottom: 1.5rem; }

/* Badges */
.rd-badge {
    display: inline-flex; align-items: center; gap: 0.25rem;
    padding: 0.25rem 0.65rem; font-size: 0.68rem; font-weight: 600;
    border-radius: 0; text-transform: uppercase; letter-spacing: 0.03em; border: 1px solid;
}
.rd-badge--secondary { background: rgba(107,114,128,0.06); color: var(--cb-gray);   border-color: rgba(107,114,128,0.2); }
.rd-badge--primary   { background: rgba(227,72,36,0.06);   color: var(--cb-accent); border-color: rgba(227,72,36,0.2); }
.rd-badge--success   { background: rgba(5,150,105,0.06);   color: var(--cb-green);  border-color: rgba(5,150,105,0.2); }
.rd-badge--warn      { background: rgba(217,119,6,0.06);   color: var(--cb-amber);  border-color: rgba(217,119,6,0.2); }
.rd-badge--danger    { background: rgba(220,38,38,0.06);   color: var(--cb-danger); border-color: rgba(220,38,38,0.2); }
.rd-badge--info      { background: rgba(8,145,178,0.06);   color: var(--cb-cyan);   border-color: rgba(8,145,178,0.2); }
.rd-badge--light     { background: rgba(107,114,128,0.06); color: var(--cb-gray);   border-color: rgba(107,114,128,0.15); }
.rd-badge--dark      { background: rgba(21,21,21,0.06);    color: var(--cb-dark);   border-color: rgba(21,21,21,0.2); }

/* Cards */
.rd-card { background: var(--cb-white); border: 1px solid var(--cb-border); border-radius: 0; overflow: hidden; margin-bottom: 1.5rem; }
.rd-card-header {
    position: relative; padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--cb-border);
    display: flex; align-items: center; justify-content: space-between; gap: 0.75rem;
}
.rd-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.rd-card-header--accent::before  { background: var(--cb-accent); }
.rd-card-header--cyan::before    { background: var(--cb-cyan); }
.rd-card-header--amber::before   { background: var(--cb-amber); }
.rd-card-header--green::before   { background: var(--cb-green); }
.rd-card-header--gray::before    { background: var(--cb-gray); }
.rd-card-header--danger::before  { background: var(--cb-danger); }
.rd-card-header--audit::before   { background: var(--cb-border); }
.rd-card-header--info::before    { background: var(--cb-cyan); }

.rd-card-header-left { display: flex; align-items: center; gap: 0.75rem; }
.rd-icon-box { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.rd-icon-box--accent  { background: rgba(227,72,36,0.08);  border: 1px solid rgba(227,72,36,0.15); }
.rd-icon-box--accent i { color: var(--cb-accent); }
.rd-icon-box--cyan    { background: rgba(8,145,178,0.08);  border: 1px solid rgba(8,145,178,0.15); }
.rd-icon-box--cyan i   { color: var(--cb-cyan); }
.rd-icon-box--amber   { background: rgba(217,119,6,0.08);  border: 1px solid rgba(217,119,6,0.15); }
.rd-icon-box--amber i  { color: var(--cb-amber); }
.rd-icon-box--green   { background: rgba(5,150,105,0.08);  border: 1px solid rgba(5,150,105,0.15); }
.rd-icon-box--green i  { color: var(--cb-green); }
.rd-icon-box--gray    { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); }
.rd-icon-box--gray i   { color: var(--cb-gray); }
.rd-icon-box--danger  { background: rgba(220,38,38,0.08);  border: 1px solid rgba(220,38,38,0.15); }
.rd-icon-box--danger i { color: var(--cb-danger); }

.rd-card-title { font-size: 0.9rem; font-weight: 700; color: var(--cb-dark); margin: 0; }
.rd-card-body  { padding: 1.5rem; padding-left: calc(1.5rem + 4px); }
.rd-card-body--nopad { padding: 0; }

/* Fields */
.rd-field { display: flex; margin-bottom: 0.85rem; }
.rd-field:last-child { margin-bottom: 0; }
.rd-field-label {
    font-size: 0.7rem; font-weight: 600; text-transform: uppercase;
    letter-spacing: 0.04em; color: var(--cb-gray); width: 160px; flex-shrink: 0; padding-top: 0.15rem;
}
.rd-field-value { font-size: 0.85rem; color: var(--cb-dark); flex: 1; font-weight: 500; }
.rd-field-value--muted { color: var(--cb-muted); font-style: italic; font-weight: 400; }
.rd-field-sub { font-size: 0.75rem; color: var(--cb-muted); display: block; margin-top: 0.15rem; }

/* Code */
.rd-code { font-size: 0.78rem; color: var(--cb-gray); font-family: monospace; background: var(--cb-light); padding: 0.1rem 0.35rem; }

/* Note box */
.rd-note-box { background: rgba(8,145,178,0.04); border-left: 3px solid var(--cb-cyan); padding: 0.75rem 1rem; font-size: 0.85rem; color: var(--cb-dark); white-space: pre-wrap; }

/* Divider */
.rd-divider { border: 0; border-top: 1px solid var(--cb-light); margin: 1rem 0; }

/* Section label */
.rd-section-label {
    font-size: 0.82rem; font-weight: 600; text-transform: uppercase;
    letter-spacing: 0.03em; color: var(--cb-gray);
    margin-bottom: 0.75rem; display: flex; align-items: center; gap: 0.4rem;
}
.rd-section-label i { color: var(--cb-accent); }

/* Amount highlight */
.rd-amount { font-size: 1.1rem; font-weight: 700; color: var(--cb-accent); }

/* Table inside card */
.rd-table { width: 100%; border-collapse: collapse; }
.rd-table thead th {
    background: var(--cb-dark); color: #fff;
    font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em;
    padding: 0.65rem 1rem; border: none; white-space: nowrap;
}
.rd-table thead th:first-child { padding-left: 1.5rem; }
.rd-table thead th:last-child  { padding-right: 1.5rem; }
.rd-table tbody td {
    padding: 0.7rem 1rem; font-size: 0.82rem; color: var(--cb-dark);
    border-bottom: 1px solid var(--cb-light); vertical-align: middle;
}
.rd-table tbody td:first-child { padding-left: 1.5rem; }
.rd-table tbody td:last-child  { padding-right: 1.5rem; }
.rd-table tbody tr { transition: background 0.15s ease; }
.rd-table tbody tr:hover { background: rgba(227,72,36,0.03); }
.rd-table tbody tr.rd-row--completed { opacity: 0.55; }
.rd-table-link { color: var(--cb-dark); font-weight: 600; text-decoration: none; }
.rd-table-link:hover { color: var(--cb-accent); }

/* Btn icon (table actions) */
.rd-btn-icon {
    width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center;
    border-radius: 0; cursor: pointer; transition: background 0.2s, border-color 0.2s;
    text-decoration: none; background: transparent;
}
.rd-btn-icon--secondary { border: 1px solid rgba(107,114,128,0.2); color: var(--cb-gray); }
.rd-btn-icon--secondary:hover { background: rgba(107,114,128,0.06); border-color: var(--cb-gray); color: var(--cb-gray); }
.rd-btn-icon--accent    { border: 1px solid rgba(227,72,36,0.2);   color: var(--cb-accent); }
.rd-btn-icon--accent:hover { background: rgba(227,72,36,0.06); border-color: var(--cb-accent); color: var(--cb-accent); }
.rd-btn-icon--info      { border: 1px solid rgba(8,145,178,0.2);   color: var(--cb-cyan); }
.rd-btn-icon--info:hover { background: rgba(8,145,178,0.06); border-color: var(--cb-cyan); color: var(--cb-cyan); }
.rd-btn-icon--danger    { border: 1px solid rgba(220,38,38,0.2);   color: var(--cb-danger); background: transparent; border-radius: 0; cursor: pointer; }
.rd-btn-icon--danger:hover { background: rgba(220,38,38,0.06); border-color: var(--cb-danger); color: var(--cb-danger); }

/* Table actions cell */
.rd-actions { display: flex; align-items: center; gap: 0.25rem; justify-content: flex-end; }

/* Versioni list */
.rd-version-item {
    display: flex; justify-content: space-between; align-items: center;
    padding: 0.75rem 1rem; border-bottom: 1px solid var(--cb-light);
    text-decoration: none; transition: background 0.15s ease;
}
.rd-version-item:last-child { border-bottom: none; }
.rd-version-item:hover { background: rgba(227,72,36,0.03); }
.rd-version-title { font-size: 0.85rem; font-weight: 600; color: var(--cb-dark); }
.rd-version-sub   { font-size: 0.75rem; color: var(--cb-muted); margin-top: 0.1rem; }

/* Audit fields */
.rd-audit-field { margin-bottom: 0.75rem; }
.rd-audit-field:last-child { margin-bottom: 0; }
.rd-sys-label { font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--cb-gray); margin-bottom: 0.15rem; }
.rd-sys-value { font-size: 0.85rem; color: var(--cb-dark); font-weight: 500; }
.rd-sys-by    { font-size: 0.75rem; color: var(--cb-muted); }

/* Empty state */
.rd-empty { padding: 2.5rem 1.5rem; text-align: center; }
.rd-empty-icon { font-size: 2.5rem; color: var(--cb-muted); margin-bottom: 0.75rem; }
.rd-empty-text { font-size: 0.85rem; color: var(--cb-gray); margin-bottom: 1rem; }

/* ---- Sidebar ---- */
.rd-sidebar-sticky { position: sticky; top: 72px; z-index: 10; }

/* Riepilogo list */
.rd-summary-list { list-style: none; padding: 0; margin: 0; }
.rd-summary-item {
    display: flex; justify-content: space-between; align-items: center;
    padding: 0.6rem 0; border-bottom: 1px solid var(--cb-light); font-size: 0.82rem;
}
.rd-summary-item:last-child { border-bottom: none; }
.rd-summary-key  { color: var(--cb-gray); }
.rd-summary-val  { color: var(--cb-dark); font-weight: 500; text-align: right; }
.rd-summary-val--accent { color: var(--cb-accent); font-weight: 700; }
.rd-summary-val--danger { color: var(--cb-danger); font-weight: 600; }
.rd-summary-val--warn   { color: var(--cb-amber);  font-weight: 600; }

/* Sidebar buttons */
.rd-btn {
    display: inline-flex; align-items: center; gap: 0.4rem;
    padding: 0.5rem 1rem; font-size: 0.82rem; font-weight: 600;
    border-radius: 0; border: 2px solid; text-decoration: none;
    cursor: pointer; transition: background 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s;
    width: 100%; justify-content: center; margin-bottom: 0.5rem;
}
.rd-btn:last-child { margin-bottom: 0; }
.rd-btn-accent    { background: var(--cb-accent);  color: #fff; border-color: var(--cb-accent); }
.rd-btn-accent:hover    { background: var(--cb-accent-hover); border-color: var(--cb-accent-hover); box-shadow: 0 2px 8px rgba(227,72,36,0.2); color: #fff; }
.rd-btn-green     { background: var(--cb-green);   color: #fff; border-color: var(--cb-green); }
.rd-btn-green:hover     { background: var(--cb-green-hover);  border-color: var(--cb-green-hover);  box-shadow: 0 2px 8px rgba(5,150,105,0.2); color: #fff; }
.rd-btn-amber     { background: var(--cb-amber);   color: #fff; border-color: var(--cb-amber); }
.rd-btn-amber:hover     { background: #b45309; border-color: #b45309; color: #fff; }
.rd-btn-danger    { background: var(--cb-danger);  color: #fff; border-color: var(--cb-danger); }
.rd-btn-danger:hover    { background: var(--cb-danger-hover); border-color: var(--cb-danger-hover); box-shadow: 0 2px 8px rgba(220,38,38,0.2); color: #fff; }
.rd-btn-secondary { background: transparent; color: var(--cb-gray); border-color: var(--cb-border); }
.rd-btn-secondary:hover { border-color: var(--cb-dark); color: var(--cb-dark); text-decoration: none; }
.rd-btn-outline-amber { background: transparent; color: var(--cb-amber); border-color: rgba(217,119,6,0.3); }
.rd-btn-outline-amber:hover { background: rgba(217,119,6,0.06); border-color: var(--cb-amber); color: var(--cb-amber); }
.rd-btn-outline-info  { background: transparent; color: var(--cb-cyan);  border-color: rgba(8,145,178,0.3); }
.rd-btn-outline-info:hover  { background: rgba(8,145,178,0.06); border-color: var(--cb-cyan);  color: var(--cb-cyan); text-decoration: none; }
.rd-btn-outline-danger { background: transparent; color: var(--cb-danger); border-color: rgba(220,38,38,0.3); }
.rd-btn-outline-danger:hover { background: rgba(220,38,38,0.06); border-color: var(--cb-danger); color: var(--cb-danger); }

/* Form controls in sidebar */
.rd-form-label { font-size: 0.7rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--cb-gray); margin-bottom: 0.35rem; display: block; }
.rd-form-control {
    width: 100%; border: 1px solid var(--cb-border); border-radius: 0;
    font-size: 0.82rem; padding: 0.45rem 0.65rem; color: var(--cb-dark);
    background: var(--cb-white); transition: border-color 0.2s, box-shadow 0.2s;
}
.rd-form-control:focus { outline: none; border-color: var(--cb-accent); box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }

/* Sidebar hr */
.rd-sidebar-hr { border: 0; border-top: 1px solid var(--cb-light); margin: 0.75rem 0; }

/* Modal Corebeet */
.rd-modal-backdrop { display: none; position: fixed; inset: 0; background: rgba(21,21,21,0.5); z-index: 1060; align-items: center; justify-content: center; }
.rd-modal-backdrop.active { display: flex; }
.rd-modal { background: var(--cb-white); border: 1px solid var(--cb-border); border-radius: 0; width: 100%; max-width: 480px; box-shadow: 0 16px 48px rgba(21,21,21,0.2); }
.rd-modal-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid var(--cb-border); display: flex; align-items: center; gap: 0.75rem; }
.rd-modal-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.rd-modal-header--danger::before  { background: var(--cb-danger); }
.rd-modal-header--accent::before  { background: var(--cb-accent); }
.rd-modal-icon-box { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; }
.rd-modal-icon-box--danger { background: rgba(220,38,38,0.08); border: 1px solid rgba(220,38,38,0.15); }
.rd-modal-icon-box--danger i { color: var(--cb-danger); }
.rd-modal-icon-box--accent { background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15); }
.rd-modal-icon-box--accent i { color: var(--cb-accent); }
.rd-modal-title { font-size: 0.95rem; font-weight: 700; color: var(--cb-dark); margin: 0; }
.rd-modal-body { padding: 1.5rem; font-size: 0.85rem; color: var(--cb-dark); }
.rd-modal-note { font-size: 0.78rem; color: var(--cb-muted); margin-top: 0.4rem; }
.rd-modal-footer { padding: 1rem 1.5rem; border-top: 1px solid var(--cb-border); display: flex; justify-content: flex-end; gap: 0.5rem; }
.rd-modal-btn { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.5rem 1.25rem; font-size: 0.85rem; font-weight: 600; border-radius: 0; border: 2px solid; cursor: pointer; transition: background 0.2s, border-color 0.2s, color 0.2s; }
.rd-modal-btn--secondary { background: transparent; color: var(--cb-gray); border-color: var(--cb-border); }
.rd-modal-btn--secondary:hover { border-color: var(--cb-dark); color: var(--cb-dark); }
.rd-modal-btn--danger { background: var(--cb-danger); color: #fff; border-color: var(--cb-danger); }
.rd-modal-btn--danger:hover { background: var(--cb-danger-hover); border-color: var(--cb-danger-hover); }
.rd-modal-btn--accent { background: var(--cb-accent); color: #fff; border-color: var(--cb-accent); }
.rd-modal-btn--accent:hover { background: var(--cb-accent-hover); border-color: var(--cb-accent-hover); }

/* Responsive */
@media (max-width: 991.98px) {
    .rd-sidebar-sticky { position: static; }
    .rd-field { flex-direction: column; }
    .rd-field-label { width: auto; }
    .rd-page-header { flex-direction: column; }
    .rd-header-actions { width: 100%; }
}

/* ============================================
    REGISTRO CONTRATTI > EDIT PAGE STYLES
============================================ */

/* re- prefix = RegistroContratti Edit */

/* Breadcrumb */
.re-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-top: 0.3rem; }
.re-breadcrumb a { color: var(--cb-accent); text-decoration: none; font-weight: 500; }
.re-breadcrumb a:hover { color: var(--cb-accent-hover); text-decoration: underline; }
.re-breadcrumb .re-sep { color: var(--cb-border); }
.re-breadcrumb .re-current { color: var(--cb-gray); font-weight: 500; }

/* Page header */
.re-page-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.re-header-badges { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 0.4rem; }
.re-page-title { font-size: 1.4rem; font-weight: 700; color: var(--cb-dark); letter-spacing: -0.025em; margin: 0.2rem 0 0; display: flex; align-items: center; gap: 0.6rem; }

/* Badges */
.re-badge {
    display: inline-flex; align-items: center; gap: 0.25rem;
    padding: 0.25rem 0.65rem; font-size: 0.68rem; font-weight: 600;
    border-radius: 0; text-transform: uppercase; letter-spacing: 0.03em; border: 1px solid;
}
.re-badge--secondary { background: rgba(107,114,128,0.06); color: var(--cb-gray);   border-color: rgba(107,114,128,0.2); }
.re-badge--primary   { background: rgba(227,72,36,0.06);   color: var(--cb-accent); border-color: rgba(227,72,36,0.2); }
.re-badge--success   { background: rgba(5,150,105,0.06);   color: var(--cb-green);  border-color: rgba(5,150,105,0.2); }
.re-badge--warn      { background: rgba(217,119,6,0.06);   color: var(--cb-amber);  border-color: rgba(217,119,6,0.2); }
.re-badge--danger    { background: rgba(220,38,38,0.06);   color: var(--cb-danger); border-color: rgba(220,38,38,0.2); }
.re-badge--info      { background: rgba(8,145,178,0.06);   color: var(--cb-cyan);   border-color: rgba(8,145,178,0.2); }

/* Alerts */
.re-alert { border-radius: 0; border: 1px solid var(--cb-border); padding: 0.85rem 1.25rem; font-size: 0.85rem; display: flex; align-items: flex-start; gap: 0.6rem; margin-bottom: 1.5rem; }
.re-alert-warning  { border-left: 4px solid var(--cb-amber);  background: rgba(217,119,6,0.04); }
.re-alert-warning .re-alert-icon  { color: var(--cb-amber);  flex-shrink: 0; }
.re-alert-info     { border-left: 4px solid var(--cb-cyan);   background: rgba(8,145,178,0.04); }
.re-alert-info .re-alert-icon     { color: var(--cb-cyan);   flex-shrink: 0; }
.re-alert-danger   { border-left: 4px solid var(--cb-danger); background: rgba(220,38,38,0.04); }
.re-alert-danger .re-alert-icon   { color: var(--cb-danger); flex-shrink: 0; }

/* Cards */
.re-card { background: var(--cb-white); border: 1px solid var(--cb-border); border-radius: 0; overflow: hidden; margin-bottom: 1.5rem; }
.re-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid var(--cb-border); display: flex; align-items: center; gap: 0.75rem; }
.re-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.re-card-header--amber::before  { background: var(--cb-amber); }
.re-card-header--cyan::before   { background: var(--cb-cyan); }
.re-card-header--green::before  { background: var(--cb-green); }
.re-card-header--gray::before   { background: var(--cb-gray); }
.re-card-header--accent::before { background: var(--cb-accent); }
.re-card-header--info::before   { background: var(--cb-cyan); }

.re-icon-box { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.re-icon-box--amber  { background: rgba(217,119,6,0.08);  border: 1px solid rgba(217,119,6,0.15); }
.re-icon-box--amber i { color: var(--cb-amber); }
.re-icon-box--cyan   { background: rgba(8,145,178,0.08);  border: 1px solid rgba(8,145,178,0.15); }
.re-icon-box--cyan i  { color: var(--cb-cyan); }
.re-icon-box--green  { background: rgba(5,150,105,0.08);  border: 1px solid rgba(5,150,105,0.15); }
.re-icon-box--green i { color: var(--cb-green); }
.re-icon-box--gray   { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); }
.re-icon-box--gray i  { color: var(--cb-gray); }
.re-icon-box--accent { background: rgba(227,72,36,0.08);  border: 1px solid rgba(227,72,36,0.15); }
.re-icon-box--accent i { color: var(--cb-accent); }

.re-card-title { font-size: 0.9rem; font-weight: 700; color: var(--cb-dark); margin: 0; }
.re-card-title-sub { font-size: 0.78rem; font-weight: 400; color: var(--cb-muted); margin-left: 0.4rem; }
.re-card-body { padding: 1.5rem; padding-left: calc(1.5rem + 4px); }

/* Section label */
.re-section-label { font-size: 0.82rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; color: var(--cb-gray); margin-bottom: 0.75rem; display: flex; align-items: center; gap: 0.4rem; }
.re-section-label i { color: var(--cb-accent); }

/* Divider */
.re-divider { border: 0; border-top: 1px solid var(--cb-light); margin: 1.5rem 0; }

/* Form elements */
.re-label { display: block; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--cb-dark); margin-bottom: 0.35rem; }
.re-required { color: var(--cb-danger); margin-left: 0.15rem; }
.re-form-control {
    width: 100%; border: 1px solid var(--cb-border); border-radius: 0;
    font-size: 0.85rem; padding: 0.5rem 0.75rem; color: var(--cb-dark);
    background: var(--cb-white); transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.re-form-control:focus { outline: none; border-color: var(--cb-accent); box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
.re-form-control::placeholder { color: var(--cb-muted); }
.re-form-control[readonly], .re-form-control:disabled { background: var(--cb-light); color: var(--cb-gray); cursor: not-allowed; }
.re-form-control--readonly { background: var(--cb-light); }

/* Input group */
.re-input-group { display: flex; }
.re-input-group .re-form-control { flex: 1; }
.re-input-group-text { display: flex; align-items: center; padding: 0.5rem 0.75rem; font-size: 0.85rem; font-weight: 600; color: var(--cb-gray); background: var(--cb-light); border: 1px solid var(--cb-border); border-radius: 0; border-right: none; flex-shrink: 0; }
.re-input-group .re-form-control { border-left: none; }

/* Plaintext read-only field */
.re-plaintext { font-size: 0.85rem; color: var(--cb-dark); padding: 0.5rem 0; font-weight: 500; display: flex; align-items: center; gap: 0.4rem; }
.re-plaintext-sub { font-size: 0.72rem; color: var(--cb-muted); display: block; margin-top: 0.1rem; }

/* Checkbox */
.re-check-wrap { display: flex; align-items: center; gap: 0.6rem; }
.re-check-input { width: 1rem; height: 1rem; border: 1px solid var(--cb-border); border-radius: 0; accent-color: var(--cb-accent); cursor: pointer; flex-shrink: 0; }
.re-check-label { font-size: 0.85rem; font-weight: 500; color: var(--cb-dark); cursor: pointer; }

/* Validation & helpers */
.re-validation { font-size: 0.72rem; color: var(--cb-danger); margin-top: 0.25rem; display: block; }
.re-form-text  { font-size: 0.72rem; color: var(--cb-muted); margin-top: 0.25rem; display: block; }
.re-proto-msg  { font-size: 0.72rem; margin-top: 0.25rem; display: block; }
.re-durata     { font-size: 0.85rem; padding: 0.5rem 0; }

/* Sidebar */
.re-sidebar-sticky { position: sticky; top: 72px; z-index: 10; }

/* Sidebar info fields */
.re-sys-label { font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--cb-gray); margin-bottom: 0.2rem; }
.re-sys-value { font-size: 0.85rem; color: var(--cb-dark); font-weight: 500; margin-bottom: 0.75rem; }
.re-sys-value:last-child { margin-bottom: 0; }
.re-sys-note  { font-size: 0.72rem; color: var(--cb-muted); margin-top: 0.15rem; }

/* Sidebar note box */
.re-note-box { background: rgba(8,145,178,0.04); border-left: 3px solid var(--cb-cyan); padding: 0.6rem 0.85rem; font-size: 0.78rem; color: var(--cb-dark); margin-bottom: 1rem; }

/* Buttons */
.re-btn { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.55rem 1.5rem; font-size: 0.85rem; font-weight: 600; border-radius: 0; border: 2px solid; text-decoration: none; cursor: pointer; transition: background 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s; width: 100%; justify-content: center; margin-bottom: 0.5rem; }
.re-btn:last-child { margin-bottom: 0; }
.re-btn-amber    { background: var(--cb-amber); color: #fff; border-color: var(--cb-amber); }
.re-btn-amber:hover    { background: var(--cb-amber-hover); border-color: var(--cb-amber-hover); box-shadow: 0 2px 8px rgba(217,119,6,0.2); color: #fff; }
.re-btn-secondary { background: transparent; color: var(--cb-gray); border-color: var(--cb-border); }
.re-btn-secondary:hover { border-color: var(--cb-dark); color: var(--cb-dark); text-decoration: none; }
.re-btn-outline-secondary { background: transparent; color: var(--cb-gray); border: 1px solid rgba(107,114,128,0.25); font-size: 0.82rem; padding: 0.4rem 0.8rem; }
.re-btn-outline-secondary:hover { background: rgba(107,114,128,0.06); border-color: var(--cb-gray); color: var(--cb-gray); text-decoration: none; }
.re-btn-outline-info { background: transparent; color: var(--cb-cyan); border: 1px solid rgba(8,145,178,0.25); font-size: 0.82rem; padding: 0.4rem 0.8rem; }
.re-btn-outline-info:hover { background: rgba(8,145,178,0.06); border-color: var(--cb-cyan); color: var(--cb-cyan); text-decoration: none; }

/* Sidebar divider */
.re-sidebar-hr { border: 0; border-top: 1px solid var(--cb-light); margin: 1rem 0; }

/* Quick actions stack */
.re-quick-stack { display: flex; flex-direction: column; gap: 0.4rem; }

/* Responsive */
@media (max-width: 991.98px) {
    .re-sidebar-sticky { position: static; }
    .re-page-header { flex-direction: column; }
}
@media (max-width: 575.98px) { .re-page-title { font-size: 1.2rem; } }

/* ============================================
    SCADENZE REGISTRO INDEX PAGE STYLES
============================================ */

.sri-page {
    padding: 2rem;
}

@media (max-width: 575.98px) {
    .sri-page { padding: 1rem; }
}

/* Breadcrumb */
.sri-breadcrumb {
    display: flex; align-items: center; gap: 0.4rem;
    font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1rem;
}
.sri-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.sri-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.sri-breadcrumb .sri-sep { color: #e0e1e3; }
.sri-breadcrumb .sri-current { color: #6b7280; font-weight: 500; }

/* Header pagina */
.sri-header {
    display: flex; justify-content: space-between; align-items: flex-start;
    flex-wrap: wrap; gap: 1rem; margin-bottom: 1.5rem;
}
.sri-title {
    font-size: 1.4rem; font-weight: 700; color: #151515;
    letter-spacing: -0.025em; margin: 0;
}
.sri-subtitle { font-size: 0.85rem; color: #6b7280; margin: 0.2rem 0 0; }
.sri-header-actions { display: flex; gap: 0.5rem; flex-wrap: wrap; align-items: center; }

/* Bottoni view toggle */
.sri-view-toggle { display: flex; }
.sri-view-btn {
    padding: 0.5rem 1rem; font-size: 0.82rem; font-weight: 600;
    border: 1px solid #e0e1e3; background: transparent; color: #6b7280;
    cursor: pointer; transition: background 0.15s, color 0.15s;
    display: flex; align-items: center; gap: 0.35rem;
}
.sri-view-btn:first-child { border-right: none; }
.sri-view-btn:hover { background: #EEEFF0; color: #151515; }
.sri-view-btn.active { background: #E34824; color: #fff; border-color: #E34824; }

/* Bottoni azione */
.sri-btn {
    padding: 0.5rem 1rem; font-size: 0.82rem; font-weight: 600;
    border: 2px solid; cursor: pointer; text-decoration: none;
    display: inline-flex; align-items: center; gap: 0.35rem;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.sri-btn-primary { background: #E34824; color: #fff; border-color: #E34824; }
.sri-btn-primary:hover { background: #c93d1e; border-color: #c93d1e; color: #fff; }
.sri-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.sri-btn-secondary:hover { border-color: #151515; color: #151515; }
.sri-btn-cyan { background: transparent; color: #0891b2; border-color: rgba(8,145,178,0.3); }
.sri-btn-cyan:hover { background: rgba(8,145,178,0.06); border-color: #0891b2; color: #0891b2; }

/* Alert */
.sri-alert {
    display: flex; align-items: center; justify-content: space-between;
    gap: 0.5rem; padding: 0.85rem 1.25rem; margin-bottom: 1rem;
    font-size: 0.85rem; border: 1px solid #e0e1e3;
}
.sri-alert-success { border-left: 4px solid #059669; background: rgba(5,150,105,0.05); }
.sri-alert-danger  { border-left: 4px solid #dc2626; background: rgba(220,38,38,0.04); }
.sri-alert-info    { border-left: 4px solid #0891b2; background: rgba(8,145,178,0.04); }
.sri-alert-close {
    background: none; border: none; cursor: pointer;
    color: #9ca3af; font-size: 1rem; padding: 0;
}
.sri-alert-close:hover { color: #151515; }

/* KPI Stats */
.sri-stats {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 1rem; margin-bottom: 1.5rem;
}
@media (max-width: 991.98px) { .sri-stats { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 575.98px) { .sri-stats { grid-template-columns: repeat(2, 1fr); } }

.sri-stat-card {
    background: #fff; border: 1px solid #e0e1e3;
    text-align: center; padding: 1.25rem 1rem;
    text-decoration: none; display: block;
    transition: border-color 0.2s;
}
.sri-stat-card:hover { border-color: #E34824; }
.sri-stat-card.danger-highlight { border-color: #dc2626; border-width: 2px; }
.sri-stat-card.warn-highlight   { border-color: #d97706; border-width: 2px; }

.sri-stat-num { font-size: 1.75rem; font-weight: 700; line-height: 1.2; }
.sri-stat-label { font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; margin-top: 0.25rem; }
.sri-stat-num.accent  { color: #E34824; }
.sri-stat-num.danger  { color: #dc2626; }
.sri-stat-num.warning { color: #d97706; }
.sri-stat-num.dark    { color: #151515; }
.sri-stat-num.success { color: #059669; }

/* Card */
.sri-card {
    background: #fff; border: 1px solid #e0e1e3; overflow: hidden;
    margin-bottom: 1rem;
}
.sri-card-header {
    position: relative; padding: 1rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex; align-items: center; gap: 0.75rem;
}
.sri-card-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
    background: #E34824;
}
.sri-card-header-cyan::before  { background: #0891b2; }
.sri-icon-box {
    width: 34px; height: 34px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15);
    color: #E34824; font-size: 1rem;
}
.sri-icon-box-cyan {
    background: rgba(8,145,178,0.08); border-color: rgba(8,145,178,0.15); color: #0891b2;
}
.sri-card-title { font-size: 0.875rem; font-weight: 700; color: #151515; margin: 0; }

/* Filtro attivo */
.sri-filter-active {
    display: flex; align-items: center; justify-content: space-between;
    flex-wrap: wrap; gap: 0.5rem;
    padding: 0.6rem 1rem; margin-bottom: 1rem;
    background: rgba(8,145,178,0.04); border-left: 4px solid #0891b2;
    font-size: 0.85rem; color: #151515;
}
.sri-filter-remove {
    padding: 0.25rem 0.65rem; font-size: 0.75rem; font-weight: 600;
    border: 1px solid rgba(8,145,178,0.3); background: transparent;
    color: #0891b2; text-decoration: none; display: inline-flex; align-items: center; gap: 0.25rem;
}
.sri-filter-remove:hover { background: rgba(8,145,178,0.08); color: #0891b2; }

/* Tabella */
.sri-table-wrap { overflow-x: auto; }
.sri-table { width: 100%; border-collapse: collapse; font-size: 0.85rem; }
.sri-table thead th {
    background: #151515; color: #fff;
    padding: 0.65rem 0.85rem; font-size: 0.75rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.03em;
    white-space: nowrap; border: none;
}
.sri-table thead th:first-child { width: 40px; text-align: center; }
.sri-table tbody tr { border-bottom: 1px solid #EEEFF0; }
.sri-table tbody tr:hover { background: rgba(227,72,36,0.03); }
.sri-table tbody tr.completed { background: #EEEFF0; color: #9ca3af; }
.sri-table tbody tr.completed:hover { background: #e5e6e8; }
.sri-table tbody td { padding: 0.65rem 0.85rem; vertical-align: middle; }
.sri-table tbody td:first-child { text-align: center; }

.sri-desc-link {
    color: #151515; text-decoration: none; font-weight: 600; font-size: 0.85rem;
}
.sri-desc-link:hover { color: #E34824; }
.sri-reg-link { color: #0891b2; text-decoration: none; font-size: 0.78rem; }
.sri-reg-link:hover { color: #0891b2; text-decoration: underline; }

.sri-date-main { font-size: 0.85rem; color: #151515; white-space: nowrap; }
.sri-date-sub  { font-size: 0.72rem; display: block; }
.sri-date-sub.danger  { color: #dc2626; }
.sri-date-sub.warning { color: #d97706; }
.sri-date-sub.muted   { color: #9ca3af; }

/* Badge */
.sri-badge {
    display: inline-flex; align-items: center; gap: 0.25rem;
    padding: 0.25rem 0.65rem; font-size: 0.68rem; font-weight: 600;
    border: 1px solid; text-transform: uppercase; letter-spacing: 0.03em;
    white-space: nowrap;
}
.sri-badge-success { background: rgba(5,150,105,0.06); color: #059669; border-color: rgba(5,150,105,0.2); }
.sri-badge-danger  { background: rgba(220,38,38,0.06); color: #dc2626; border-color: rgba(220,38,38,0.2); }
.sri-badge-warn    { background: rgba(217,119,6,0.06);  color: #d97706; border-color: rgba(217,119,6,0.2); }
.sri-badge-primary { background: rgba(227,72,36,0.06);  color: #E34824; border-color: rgba(227,72,36,0.2); }
.sri-badge-secondary { background: rgba(107,114,128,0.06); color: #6b7280; border-color: rgba(107,114,128,0.2); }

/* Badge allegati */
.sri-attach-badge {
    display: inline-flex; padding: 0.15rem 0.45rem;
    font-size: 0.68rem; font-weight: 600;
    background: rgba(107,114,128,0.08); color: #6b7280;
    border: 1px solid rgba(107,114,128,0.2);
}

/* Azioni tabella */
.sri-actions { display: flex; gap: 0.25rem; justify-content: flex-end; }
.sri-action-btn {
    width: 32px; height: 32px; border: 1px solid; background: transparent;
    display: inline-flex; align-items: center; justify-content: center;
    text-decoration: none; font-size: 0.85rem; transition: background 0.15s;
    cursor: pointer;
}
.sri-action-view  { color: #E34824; border-color: rgba(227,72,36,0.2); }
.sri-action-view:hover  { background: rgba(227,72,36,0.08); color: #E34824; }
.sri-action-edit  { color: #6b7280; border-color: rgba(107,114,128,0.2); }
.sri-action-edit:hover  { background: rgba(107,114,128,0.08); color: #151515; }

/* Empty state */
.sri-empty {
    text-align: center; padding: 3rem 2rem;
    color: #9ca3af; font-size: 0.85rem;
}
.sri-empty-icon { font-size: 3rem; color: #e0e1e3; margin-bottom: 1rem; }

/* Calendario - toggles */
.sri-cal-toolbar {
    display: flex; align-items: center; justify-content: space-between;
    flex-wrap: wrap; gap: 0.75rem; padding: 0.85rem 1.25rem;
    border-bottom: 1px solid #e0e1e3;
}
.sri-cal-legend { display: flex; gap: 1rem; flex-wrap: wrap; align-items: center; }
.sri-legend-item { display: flex; align-items: center; gap: 0.35rem; font-size: 0.78rem; color: #6b7280; }
.sri-legend-dot { width: 10px; height: 10px; flex-shrink: 0; }


/* Modal custom */
.sri-modal-overlay {
    display: none; position: fixed; inset: 0;
    background: rgba(21,21,21,0.5); z-index: 1060;
    align-items: center; justify-content: center;
}
.sri-modal-overlay.open { display: flex; }
.sri-modal {
    background: #fff; border: 1px solid #e0e1e3;
    width: 100%; max-width: 480px; margin: 1rem; overflow: hidden;
}
.sri-modal-header {
    position: relative; padding: 1rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex; align-items: center; justify-content: space-between;
}
.sri-modal-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0;
    width: 4px; background: #E34824;
}
.sri-modal-title { font-size: 0.95rem; font-weight: 700; color: #151515; }
.sri-modal-close {
    background: none; border: none; cursor: pointer;
    color: #9ca3af; font-size: 1.1rem; padding: 0; line-height: 1;
}
.sri-modal-close:hover { color: #151515; }
.sri-modal-body { padding: 1.25rem 1.5rem; }
.sri-modal-field { display: flex; flex-direction: column; margin-bottom: 0.85rem; }
.sri-modal-label { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; margin-bottom: 0.2rem; }
.sri-modal-value { font-size: 0.85rem; color: #151515; font-weight: 500; }
.sri-modal-footer {
    padding: 1rem 1.5rem; border-top: 1px solid #e0e1e3;
    display: flex; justify-content: flex-end; gap: 0.5rem;
}

/* ============================================
    REGISTRO CONTRATTI > STATISTICHE PAGE STYLES
============================================ */

/* Breadcrumb */
.rs-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-top: 0.3rem; }
.rs-breadcrumb a { color: var(--cb-accent); text-decoration: none; font-weight: 500; }
.rs-breadcrumb a:hover { color: var(--cb-accent-hover); text-decoration: underline; }
.rs-breadcrumb .rs-sep { color: var(--cb-border); }
.rs-breadcrumb .rs-current { color: var(--cb-gray); font-weight: 500; }

/* Page Header */
.rs-page-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.rs-page-title { font-size: 1.4rem; font-weight: 700; color: var(--cb-dark); letter-spacing: -0.025em; margin: 0.2rem 0 0; display: flex; align-items: center; gap: 0.6rem; }

/* KPI Grid */
.rs-kpi-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 1rem; margin-bottom: 1.5rem; }

/* KPI Stat card (clickable) */
.rs-kpi { text-decoration: none; display: block; }
.rs-kpi-card {
    background: var(--cb-white); border: 1px solid var(--cb-border); border-radius: 0;
    padding: 1.25rem 1rem; display: flex; justify-content: space-between; align-items: flex-start;
    gap: 0.75rem; height: 100%;
    transition: border-color 0.2s ease, transform 0.2s ease;
}
.rs-kpi:hover .rs-kpi-card { border-color: var(--cb-accent); transform: translateY(-2px); }
.rs-kpi-card--warn   { border-left: 4px solid var(--cb-amber); }
.rs-kpi-card--danger { border-left: 4px solid var(--cb-danger); }
.rs-kpi-card--success { border-left: 4px solid var(--cb-green); }
.rs-kpi-label { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; color: var(--cb-gray); margin-bottom: 0.3rem; }
.rs-kpi-num { font-size: 1.75rem; font-weight: 700; line-height: 1; color: var(--cb-dark); }
.rs-kpi-num--accent  { color: var(--cb-accent); }
.rs-kpi-num--cyan    { color: var(--cb-cyan); }
.rs-kpi-num--warn    { color: var(--cb-amber); }
.rs-kpi-num--danger  { color: var(--cb-danger); }
.rs-kpi-num--success { color: var(--cb-green); font-size: 1.3rem; }
.rs-kpi-sub { font-size: 0.68rem; color: var(--cb-muted); margin-top: 0.15rem; }
.rs-kpi-sub--success { color: var(--cb-green); }
.rs-kpi-icon-box { width: 38px; height: 38px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.rs-kpi-icon-box--accent  { background: rgba(227,72,36,0.08);  border: 1px solid rgba(227,72,36,0.15); }
.rs-kpi-icon-box--accent i { color: var(--cb-accent); }
.rs-kpi-icon-box--cyan    { background: rgba(8,145,178,0.08);  border: 1px solid rgba(8,145,178,0.15); }
.rs-kpi-icon-box--cyan i   { color: var(--cb-cyan); }
.rs-kpi-icon-box--warn    { background: rgba(217,119,6,0.08);  border: 1px solid rgba(217,119,6,0.15); }
.rs-kpi-icon-box--warn i   { color: var(--cb-amber); }
.rs-kpi-icon-box--danger  { background: rgba(220,38,38,0.08);  border: 1px solid rgba(220,38,38,0.15); }
.rs-kpi-icon-box--danger i { color: var(--cb-danger); }
.rs-kpi-icon-box--success { background: rgba(5,150,105,0.08);  border: 1px solid rgba(5,150,105,0.15); }
.rs-kpi-icon-box--success i { color: var(--cb-green); }

/* Detail cards */
.rs-card { background: var(--cb-white); border: 1px solid var(--cb-border); border-radius: 0; overflow: hidden; height: 100%; }
.rs-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid var(--cb-border); display: flex; align-items: center; gap: 0.75rem; }
.rs-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.rs-card-header--cyan::before   { background: var(--cb-cyan); }
.rs-card-header--accent::before { background: var(--cb-accent); }
.rs-card-header--green::before  { background: var(--cb-green); }
.rs-card-header--gray::before   { background: var(--cb-gray); }
.rs-icon-box { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.rs-icon-box--cyan    { background: rgba(8,145,178,0.08);  border: 1px solid rgba(8,145,178,0.15); }
.rs-icon-box--cyan i   { color: var(--cb-cyan); }
.rs-icon-box--accent  { background: rgba(227,72,36,0.08);  border: 1px solid rgba(227,72,36,0.15); }
.rs-icon-box--accent i { color: var(--cb-accent); }
.rs-icon-box--green   { background: rgba(5,150,105,0.08);  border: 1px solid rgba(5,150,105,0.15); }
.rs-icon-box--green i  { color: var(--cb-green); }
.rs-icon-box--gray    { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); }
.rs-icon-box--gray i   { color: var(--cb-gray); }
.rs-card-title { font-size: 0.9rem; font-weight: 700; color: var(--cb-dark); margin: 0; }
.rs-card-body { padding: 1.5rem; padding-left: calc(1.5rem + 4px); }

/* Stat mini blocks */
.rs-stat-block { border: 1px solid var(--cb-border); padding: 1.25rem 1rem; text-align: center; }
.rs-stat-block--success { border-color: rgba(5,150,105,0.25); }
.rs-stat-block--warn    { border-color: rgba(217,119,6,0.25); }
.rs-stat-block--danger  { border-color: rgba(220,38,38,0.25); }
.rs-stat-block--gray    { border-color: rgba(107,114,128,0.2); }
.rs-stat-block--cyan    { border-color: rgba(8,145,178,0.2); }
.rs-stat-num { font-size: 2rem; font-weight: 800; line-height: 1; }
.rs-stat-num--success { color: var(--cb-green); }
.rs-stat-num--warn    { color: var(--cb-amber); }
.rs-stat-num--danger  { color: var(--cb-danger); }
.rs-stat-num--gray    { color: var(--cb-gray); }
.rs-stat-num--cyan    { color: var(--cb-cyan); }
.rs-stat-label { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; color: var(--cb-muted); margin-top: 0.3rem; }

/* Summary row */
.rs-summary-row { display: flex; justify-content: space-between; align-items: center; padding: 0.75rem 0; border-bottom: 1px solid var(--cb-light); font-size: 0.85rem; }
.rs-summary-row:last-child { border-bottom: none; }
.rs-summary-key { color: var(--cb-gray); display: flex; align-items: center; gap: 0.4rem; }
.rs-summary-val { font-weight: 700; font-size: 1rem; }
.rs-summary-val--success { color: var(--cb-green); }
.rs-summary-val--warn    { color: var(--cb-amber); }
.rs-summary-val--danger  { color: var(--cb-danger); }
.rs-summary-row--total { background: var(--cb-light); margin: 0 -1.5rem; padding: 0.75rem 1.5rem; }

/* Monthly row */
.rs-monthly-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 1rem; }
.rs-monthly-item { text-align: center; padding: 0.75rem 0.5rem; border: 1px solid var(--cb-border); }
.rs-monthly-label { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; color: var(--cb-muted); margin-bottom: 0.3rem; }
.rs-monthly-val { font-size: 1.2rem; font-weight: 700; }

/* Progress bar */
.rs-progress { height: 20px; background: var(--cb-light); border-radius: 0; overflow: hidden; display: flex; margin-top: 1rem; }
.rs-progress-bar { display: flex; align-items: center; justify-content: center; font-size: 0.68rem; font-weight: 700; color: #fff; transition: width 0.3s ease; overflow: hidden; white-space: nowrap; }
.rs-progress-bar--gray    { background: var(--cb-gray); }
.rs-progress-bar--cyan    { background: var(--cb-cyan); }
.rs-progress-bar--success { background: var(--cb-green); }
.rs-progress-bar--warn    { background: var(--cb-amber); }
.rs-progress-bar--danger  { background: var(--cb-danger); }

/* Divider */
.rs-divider { border: 0; border-top: 1px solid var(--cb-light); margin: 1.25rem 0; }

/* Total row inline */
.rs-total-row { display: flex; justify-content: space-between; align-items: center; font-size: 0.85rem; color: var(--cb-gray); }
.rs-total-val { font-size: 1.2rem; font-weight: 700; color: var(--cb-dark); }

/* Action buttons grid */
.rs-action-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }
.rs-action-btn {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    padding: 1.25rem 0.75rem; text-decoration: none; font-size: 0.8rem; font-weight: 600;
    border-radius: 0; border: 2px solid; gap: 0.4rem;
    transition: background 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s;
    text-align: center;
}
.rs-action-btn i { font-size: 1.5rem; }
.rs-action-btn--accent  { background: var(--cb-accent); color: #fff; border-color: var(--cb-accent); }
.rs-action-btn--accent:hover  { background: var(--cb-accent-hover); border-color: var(--cb-accent-hover); box-shadow: 0 2px 8px rgba(227,72,36,0.2); color: #fff; }
.rs-action-btn--cyan    { background: transparent; color: var(--cb-cyan);   border-color: rgba(8,145,178,0.3); }
.rs-action-btn--cyan:hover    { background: rgba(8,145,178,0.06);   border-color: var(--cb-cyan);   color: var(--cb-cyan); }
.rs-action-btn--warn    { background: transparent; color: var(--cb-amber);  border-color: rgba(217,119,6,0.3); }
.rs-action-btn--warn:hover    { background: rgba(217,119,6,0.06);   border-color: var(--cb-amber);  color: var(--cb-amber); }
.rs-action-btn--danger  { background: transparent; color: var(--cb-danger); border-color: rgba(220,38,38,0.3); }
.rs-action-btn--danger:hover  { background: rgba(220,38,38,0.06);   border-color: var(--cb-danger); color: var(--cb-danger); }
.rs-action-badge { font-size: 0.65rem; font-weight: 700; padding: 0.15rem 0.4rem; border-radius: 0; background: currentColor; color: #fff; }

/* Quick links stack */
.rs-quick-stack { display: flex; flex-direction: column; gap: 0.4rem; margin-top: 1.25rem; }
.rs-quick-link { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.45rem 0.75rem; font-size: 0.82rem; font-weight: 600; border-radius: 0; border: 1px solid rgba(107,114,128,0.2); color: var(--cb-gray); text-decoration: none; transition: background 0.2s, border-color 0.2s; }
.rs-quick-link:hover { background: rgba(107,114,128,0.06); border-color: var(--cb-gray); color: var(--cb-gray); }

/* Buttons */
.rs-btn { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.5rem 1.25rem; font-size: 0.85rem; font-weight: 600; border-radius: 0; border: 2px solid; text-decoration: none; transition: background 0.2s, border-color 0.2s, color 0.2s; }
.rs-btn-secondary { background: transparent; color: var(--cb-gray); border-color: var(--cb-border); }
.rs-btn-secondary:hover { border-color: var(--cb-dark); color: var(--cb-dark); }

/* Responsive */
@media (max-width: 1199.98px) { .rs-kpi-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 767.98px)  { .rs-kpi-grid { grid-template-columns: repeat(2, 1fr); } .rs-action-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 575.98px)  { .rs-kpi-grid { grid-template-columns: 1fr 1fr; } }

/* ============================================
    USER PAGE STYLES
============================================ */

/* Alerts */
.ui-alert { border-radius: 0; border: 1px solid var(--cb-border); padding: 0.85rem 1.25rem; font-size: 0.85rem; display: flex; align-items: flex-start; gap: 0.6rem; margin-bottom: 1.25rem; }
.ui-alert-success { border-left: 4px solid var(--cb-green);  background: rgba(5,150,105,0.04); }
.ui-alert-success i { color: var(--cb-green); flex-shrink: 0; }
.ui-alert-danger  { border-left: 4px solid var(--cb-danger); background: rgba(220,38,38,0.04); }
.ui-alert-danger i  { color: var(--cb-danger); flex-shrink: 0; }
.ui-alert-close { margin-left: auto; background: none; border: none; cursor: pointer; color: var(--cb-muted); flex-shrink: 0; }
.ui-alert-close:hover { color: var(--cb-dark); }

/* Page header */
.ui-page-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.ui-page-title { font-size: 1.4rem; font-weight: 700; color: var(--cb-dark); letter-spacing: -0.025em; margin: 0 0 0.2rem; display: flex; align-items: center; gap: 0.6rem; }
.ui-page-sub { font-size: 0.85rem; color: var(--cb-gray); margin: 0; }

/* Toolbar card */
.ui-toolbar { background: var(--cb-white); border: 1px solid var(--cb-border); border-radius: 0; padding: 0.85rem 1.25rem; margin-bottom: 1rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }

/* Tab filter buttons */
.ui-tab-group { display: flex; gap: 0; }
.ui-tab { display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.4rem 0.9rem; font-size: 0.78rem; font-weight: 600; border: 1px solid var(--cb-border); background: transparent; color: var(--cb-gray); text-decoration: none; transition: background 0.15s, color 0.15s, border-color 0.15s; cursor: pointer; border-radius: 0; }
.ui-tab:not(:last-child) { border-right: none; }
.ui-tab:hover { background: var(--cb-light); color: var(--cb-dark); }
.ui-tab.active { background: var(--cb-accent); color: #fff; border-color: var(--cb-accent); }

/* Search input */
.ui-search-wrap { position: relative; }
.ui-search-icon { position: absolute; left: 0.65rem; top: 50%; transform: translateY(-50%); color: var(--cb-muted); font-size: 0.85rem; pointer-events: none; }
.ui-search-input { border: 1px solid var(--cb-border); border-radius: 0; font-size: 0.82rem; padding: 0.4rem 0.65rem 0.4rem 2rem; color: var(--cb-dark); background: var(--cb-white); width: 280px; transition: border-color 0.2s, box-shadow 0.2s; }
.ui-search-input:focus { outline: none; border-color: var(--cb-accent); box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
.ui-search-input::placeholder { color: var(--cb-muted); }

/* Main card */
.ui-card { background: var(--cb-white); border: 1px solid var(--cb-border); border-radius: 0; overflow: hidden; }
.ui-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid var(--cb-border); display: flex; align-items: center; gap: 0.75rem; }
.ui-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--cb-accent); }
.ui-icon-box { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15); }
.ui-icon-box i { color: var(--cb-accent); }
.ui-card-title { font-size: 0.9rem; font-weight: 700; color: var(--cb-dark); margin: 0; }

/* Table */
.ui-table { width: 100%; border-collapse: collapse; }
.ui-table thead th { background: var(--cb-dark); color: #fff; font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; padding: 0.75rem 1rem; border: none; white-space: nowrap; }
.ui-table thead th:first-child { padding-left: 1.5rem; }
.ui-table thead th:last-child  { padding-right: 1.5rem; text-align: right; }
.ui-table tbody tr { border-bottom: 1px solid var(--cb-light); transition: background 0.15s ease; }
.ui-table tbody tr:last-child { border-bottom: none; }
.ui-table tbody tr:hover { background: rgba(227,72,36,0.03); }
.ui-table tbody tr.ui-row-hidden { display: none; }
.ui-table tbody td { padding: 0.75rem 1rem; font-size: 0.82rem; color: var(--cb-dark); vertical-align: middle; }
.ui-table tbody td:first-child { padding-left: 1.5rem; }
.ui-table tbody td:last-child  { padding-right: 1.5rem; text-align: right; }

/* Avatar */
.ui-avatar { width: 38px; height: 38px; border-radius: 0; display: flex; align-items: center; justify-content: center; font-size: 0.75rem; font-weight: 700; background: rgba(227,72,36,0.1); color: var(--cb-accent); border: 1px solid rgba(227,72,36,0.2); flex-shrink: 0; letter-spacing: 0.02em; }
.ui-user-cell { display: flex; align-items: center; gap: 0.75rem; }
.ui-user-name { font-size: 0.85rem; font-weight: 600; color: var(--cb-dark); }
.ui-user-sub  { font-size: 0.72rem; color: var(--cb-muted); }

/* Badges */
.ui-badge { display: inline-flex; align-items: center; padding: 0.2rem 0.55rem; font-size: 0.65rem; font-weight: 600; border-radius: 0; text-transform: uppercase; letter-spacing: 0.03em; border: 1px solid; }
.ui-badge--success   { background: rgba(5,150,105,0.06);   color: var(--cb-green); border-color: rgba(5,150,105,0.2); }
.ui-badge--secondary { background: rgba(107,114,128,0.06); color: var(--cb-gray);  border-color: rgba(107,114,128,0.2); }
.ui-badge--reparto   { background: rgba(107,114,128,0.05); color: var(--cb-gray);  border-color: rgba(107,114,128,0.15); font-size: 0.72rem; }
.ui-badge--role      { background: rgba(8,145,178,0.06);   color: var(--cb-cyan);  border-color: rgba(8,145,178,0.2); }
.ui-badge--role + .ui-badge--role { margin-left: 0.25rem; }

/* Action buttons */
.ui-actions { display: flex; align-items: center; justify-content: flex-end; gap: 0.25rem; }
.ui-btn-icon { width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; border-radius: 0; border: 1px solid; background: transparent; text-decoration: none; transition: background 0.15s, border-color 0.15s; cursor: pointer; flex-shrink: 0; }
.ui-btn-icon--accent   { border-color: rgba(227,72,36,0.2);  color: var(--cb-accent); }
.ui-btn-icon--accent:hover   { background: rgba(227,72,36,0.08);  border-color: var(--cb-accent);  color: var(--cb-accent); }
.ui-btn-icon--green    { border-color: rgba(5,150,105,0.2);  color: var(--cb-green); }
.ui-btn-icon--green:hover    { background: rgba(5,150,105,0.08);  border-color: var(--cb-green);   color: var(--cb-green); }
.ui-btn-icon--secondary{ border-color: rgba(107,114,128,0.2); color: var(--cb-gray); }
.ui-btn-icon--secondary:hover{ background: rgba(107,114,128,0.08); border-color: var(--cb-gray);   color: var(--cb-gray); }

/* Empty state */
.ui-empty { text-align: center; padding: 4rem 2rem; }
.ui-empty-icon { font-size: 3rem; color: var(--cb-muted); margin-bottom: 1rem; opacity: 0.5; }
.ui-empty-text { font-size: 0.85rem; color: var(--cb-gray); margin: 0; }

/* Button primary */
.ui-btn-accent { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.55rem 1.25rem; font-size: 0.85rem; font-weight: 600; border-radius: 0; border: 2px solid var(--cb-accent); background: var(--cb-accent); color: #fff; text-decoration: none; transition: background 0.2s, border-color 0.2s, box-shadow 0.2s; }
.ui-btn-accent:hover { background: var(--cb-accent-hover); border-color: var(--cb-accent-hover); box-shadow: 0 2px 8px rgba(227,72,36,0.2); color: #fff; }

/* Responsive */
@media (max-width: 767.98px) {
    .ui-search-input { width: 100%; }
    .ui-toolbar { flex-direction: column; align-items: stretch; }
    .ui-search-wrap { width: 100%; }
}

/* ============================================
    SOGGETTI PAGE STYLES
============================================ */

/* ── Variabili ─────────────────────────────────────────── */

/* ── Layout pagina ─────────────────────────────────────── */
.si-page { padding: 2rem; }

/* ── Header pagina ─────────────────────────────────────── */
.si-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
    gap: 1rem;
}
.si-header-left h1 {
    font-size: 1.45rem;
    font-weight: 700;
    color: var(--cb-dark);
    letter-spacing: -0.025em;
    margin: 0 0 0.25rem 0;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.si-header-left h1 svg { color: var(--cb-accent); flex-shrink: 0; }
.si-header-left p {
    font-size: 0.85rem;
    color: var(--cb-gray);
    margin: 0;
}

/* ── Bottoni ───────────────────────────────────────────── */
.si-btn-primary {
    background: var(--cb-green);
    color: #fff;
    border: 2px solid var(--cb-green);
    padding: 0.55rem 1.25rem;
    font-weight: 600;
    font-size: 0.85rem;
    border-radius: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    text-decoration: none;
    transition: background 0.2s, box-shadow 0.2s;
    cursor: pointer;
}
.si-btn-primary:hover {
    background: #047857;
    border-color: #047857;
    color: #fff;
    box-shadow: 0 2px 8px rgba(5,150,105,0.2);
}
.si-btn-accent {
    background: var(--cb-accent);
    color: #fff;
    border: 2px solid var(--cb-accent);
    padding: 0.45rem 1.1rem;
    font-weight: 600;
    font-size: 0.82rem;
    border-radius: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    cursor: pointer;
    transition: background 0.2s;
}
.si-btn-accent:hover { background: var(--cb-accent-hover); border-color: var(--cb-accent-hover); }
.si-btn-secondary {
    background: transparent;
    color: var(--cb-gray);
    border: 2px solid var(--cb-border);
    padding: 0.45rem 1.1rem;
    font-weight: 600;
    font-size: 0.82rem;
    border-radius: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    text-decoration: none;
    transition: border-color 0.2s, color 0.2s;
    cursor: pointer;
}
.si-btn-secondary:hover { border-color: var(--cb-dark); color: var(--cb-dark); }

/* ── Alert TempData ────────────────────────────────────── */
.si-alert {
    border-radius: 0;
    border: 1px solid var(--cb-border);
    padding: 0.85rem 1.25rem;
    font-size: 0.85rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1.5rem;
}
.si-alert-success { border-left: 4px solid var(--cb-green); background: rgba(5,150,105,0.05); color: var(--cb-dark); }
.si-alert-danger  { border-left: 4px solid var(--cb-danger); background: rgba(220,38,38,0.04); color: var(--cb-dark); }
.si-alert i { flex-shrink: 0; }
.si-alert-success i { color: var(--cb-green); }
.si-alert-danger i  { color: var(--cb-danger); }
.si-alert-close {
    margin-left: auto;
    background: none;
    border: none;
    color: var(--cb-muted);
    cursor: pointer;
    font-size: 1rem;
    padding: 0;
    line-height: 1;
}
.si-alert-close:hover { color: var(--cb-dark); }

/* ── Card ──────────────────────────────────────────────── */
.si-card {
    background: var(--cb-white);
    border: 1px solid var(--cb-border);
    border-radius: 0;
    overflow: hidden;
    margin-bottom: 1rem;
}
.si-card-header {
    position: relative;
    padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--cb-border);
    display: flex;
    align-items: center;
    gap: 0.75rem;
}
.si-card-header::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
    background: var(--cb-gray);
}
.si-card-header--accent::before  { background: var(--cb-accent); }
.si-card-header--cyan::before    { background: var(--cb-cyan); }
.si-icon-box {
    width: 34px; height: 34px;
    background: rgba(107,114,128,0.08);
    border: 1px solid rgba(107,114,128,0.15);
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.si-icon-box--accent {
    background: rgba(227,72,36,0.08);
    border-color: rgba(227,72,36,0.15);
}
.si-icon-box--cyan {
    background: rgba(8,145,178,0.08);
    border-color: rgba(8,145,178,0.15);
}
.si-icon-box i { font-size: 1rem; }
.si-icon-box--accent i { color: var(--cb-accent); }
.si-icon-box--cyan   i { color: var(--cb-cyan); }
.si-icon-box--gray   i { color: var(--cb-gray); }
.si-card-title {
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--cb-dark);
    margin: 0;
}
.si-card-body { padding: 1.5rem; }

/* ── Pannello filtri collapse ───────────────────────────── */
.si-filter-body { display: none; }
.si-filter-body.open { display: block; }
.si-toggle-btn {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    color: var(--cb-gray);
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.8rem;
    font-weight: 600;
    margin-left: auto;
}
.si-toggle-btn i { transition: transform 0.2s ease; }
.si-toggle-btn.collapsed i { transform: rotate(-90deg); }
.si-toggle-btn:hover { color: var(--cb-dark); }

/* ── Form elementi ─────────────────────────────────────── */
.si-form-label {
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--cb-dark);
    display: block;
    margin-bottom: 0.35rem;
}
.si-form-control,
.si-form-select {
    border: 1px solid var(--cb-border);
    font-size: 0.85rem;
    border-radius: 0;
    padding: 0.45rem 0.75rem;
    width: 100%;
    background: #fff;
    color: var(--cb-dark);
    transition: border-color 0.2s, box-shadow 0.2s;
}
.si-form-control:focus,
.si-form-select:focus {
    outline: none;
    border-color: var(--cb-accent);
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}
.si-input-group { display: flex; }
.si-input-group .si-input-group-text {
    background: var(--cb-light);
    border: 1px solid var(--cb-border);
    border-right: none;
    padding: 0.45rem 0.65rem;
    color: var(--cb-gray);
    font-size: 0.85rem;
    display: flex;
    align-items: center;
}
.si-input-group .si-form-control { border-radius: 0; }
.si-input-group-dual { display: flex; gap: 0; }
.si-input-group-dual .si-form-select:first-child { border-right: none; }

.si-form-row {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0.85rem;
    margin-bottom: 0.85rem;
}
.si-form-row-2 {
    display: grid;
    grid-template-columns: 3fr 2fr 1fr;
    gap: 0.85rem;
    align-items: end;
}
.si-btn-row {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
}
.si-sep { border-top: 1px solid var(--cb-light); margin: 1.25rem 0; }

/* ── Toolbar / Info risultati ──────────────────────────── */
.si-toolbar {
    background: var(--cb-white);
    border: 1px solid var(--cb-border);
    padding: 0.75rem 1.25rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}
.si-results-info {
    font-size: 0.82rem;
    color: var(--cb-gray);
    margin: 0;
}
.si-results-info strong { color: var(--cb-dark); }

/* ── Badge risultati ───────────────────────────────────── */
.si-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.2rem 0.55rem;
    font-size: 0.68rem;
    font-weight: 600;
    border: 1px solid;
    border-radius: 0;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}
.si-badge-primary  { background: rgba(227,72,36,0.06);  color: var(--cb-accent);  border-color: rgba(227,72,36,0.2); }
.si-badge-info     { background: rgba(8,145,178,0.06);  color: var(--cb-cyan);    border-color: rgba(8,145,178,0.2); }
.si-badge-success  { background: rgba(5,150,105,0.06);  color: var(--cb-green);   border-color: rgba(5,150,105,0.2); }
.si-badge-secondary{ background: rgba(107,114,128,0.06);color: var(--cb-gray);    border-color: rgba(107,114,128,0.2); }
.si-badge-warn     { background: rgba(217,119,6,0.06);  color: var(--cb-amber);   border-color: rgba(217,119,6,0.2); }
.si-badge-filtered { background: rgba(8,145,178,0.06);  color: var(--cb-cyan);    border-color: rgba(8,145,178,0.2); }

/* ── Tabella ───────────────────────────────────────────── */
.si-table-wrap {
    background: var(--cb-white);
    border: 1px solid var(--cb-border);
    overflow-x: auto;
}
.si-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
}
.si-table thead th {
    background: var(--cb-dark);
    color: #fff;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 0.7rem 1rem;
    white-space: nowrap;
    border: none;
}
.si-table thead th:last-child { text-align: right; }
.si-table tbody td {
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--cb-light);
    color: var(--cb-dark);
    vertical-align: middle;
}
.si-table tbody tr:last-child td { border-bottom: none; }
.si-table tbody tr:hover td { background: rgba(227,72,36,0.03); }
.si-table-name {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--cb-dark);
}
.si-table-code {
    font-size: 0.78rem;
    color: var(--cb-muted);
    font-family: monospace;
}
.si-table-link {
    color: var(--cb-gray);
    text-decoration: none;
    font-size: 0.82rem;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    transition: color 0.15s;
}
.si-table-link:hover { color: var(--cb-accent); }
.si-table-muted { color: var(--cb-muted); font-style: italic; font-size: 0.82rem; }

/* ── Bottoni azione tabella ────────────────────────────── */
.si-actions { display: flex; align-items: center; justify-content: flex-end; gap: 0.25rem; }
.si-action-btn {
    width: 32px; height: 32px;
    border: 1px solid;
    background: transparent;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: background 0.15s, border-color 0.15s;
    font-size: 0.85rem;
    border-radius: 0;
    cursor: pointer;
}
.si-action-btn--cyan   { border-color: rgba(8,145,178,0.2);   color: var(--cb-cyan); }
.si-action-btn--cyan:hover   { background: rgba(8,145,178,0.08);   border-color: var(--cb-cyan); }
.si-action-btn--amber  { border-color: rgba(217,119,6,0.2);   color: var(--cb-amber); }
.si-action-btn--amber:hover  { background: rgba(217,119,6,0.08);   border-color: var(--cb-amber); }
.si-action-btn--danger { border-color: rgba(220,38,38,0.2);   color: var(--cb-danger); }
.si-action-btn--danger:hover { background: rgba(220,38,38,0.08);   border-color: var(--cb-danger); }

/* ── Empty state ───────────────────────────────────────── */
.si-empty {
    padding: 3rem 2rem;
    text-align: center;
    background: var(--cb-white);
    border: 1px solid var(--cb-border);
}
.si-empty-icon { font-size: 2.5rem; color: var(--cb-muted); }
.si-empty-title { font-size: 1rem; font-weight: 700; color: var(--cb-dark); margin: 0.75rem 0 0.4rem; }
.si-empty-text  { font-size: 0.85rem; color: var(--cb-gray); }

/* ── Footer paginazione ────────────────────────────────── */
.si-pagination-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 1rem;
    flex-wrap: wrap;
    gap: 0.75rem;
}

/* ── Responsive ────────────────────────────────────────── */
@media (max-width: 991.98px) {
    .si-form-row   { grid-template-columns: repeat(2, 1fr); }
    .si-form-row-2 { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 575.98px) {
    .si-form-row   { grid-template-columns: 1fr; }
    .si-form-row-2 { grid-template-columns: 1fr; }
    .si-header { flex-direction: column; }
}

/* ============================================
    NOTIFICHE CONFIG PAGE STYLES
============================================ */


/* ── Page ── */
.nci-page { padding: 2rem; }

/* ── Page Header ── */
.nci-page-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
    gap: 1rem;
}
.nci-page-title {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}
.nci-page-icon {
    width: 42px;
    height: 42px;
    background: rgba(227,72,36,0.08);
    border: 1px solid rgba(227,72,36,0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.nci-page-title h1 {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--cb-dark);
    letter-spacing: -0.025em;
    margin: 0 0 0.15rem 0;
}
.nci-page-title p {
    font-size: 0.85rem;
    color: var(--cb-gray);
    margin: 0;
}

/* ── Alerts ── */
.nci-alert {
    border-radius: 0;
    border: 1px solid var(--cb-border);
    padding: 0.85rem 1.25rem;
    font-size: 0.85rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1.5rem;
}
.nci-alert-success { border-left: 4px solid var(--cb-green); background: rgba(5,150,105,0.05); color: var(--cb-dark); }
.nci-alert-success svg { color: var(--cb-green); flex-shrink: 0; }
.nci-alert-danger  { border-left: 4px solid var(--cb-danger); background: rgba(220,38,38,0.04); color: var(--cb-dark); }
.nci-alert-danger svg  { color: var(--cb-danger); flex-shrink: 0; }
.nci-alert-close {
    margin-left: auto;
    background: transparent;
    border: none;
    cursor: pointer;
    color: var(--cb-muted);
    line-height: 1;
    padding: 0;
    flex-shrink: 0;
}
.nci-alert-close:hover { color: var(--cb-dark); }

/* ── Stats ── */
.nci-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    margin-bottom: 1.5rem;
}
.nci-stat {
    background: var(--cb-white);
    border: 1px solid var(--cb-border);
    padding: 1.25rem 1rem;
    text-align: center;
}
.nci-stat-num {
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1;
    margin-bottom: 0.35rem;
}
.nci-stat-label {
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--cb-gray);
}

/* ── Module Card ── */
.nci-card {
    background: var(--cb-white);
    border: 1px solid var(--cb-border);
    overflow: hidden;
    margin-bottom: 1.5rem;
}
.nci-card-header {
    position: relative;
    padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--cb-border);
    display: flex;
    align-items: center;
    gap: 0.75rem;
}
.nci-card-header::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
    background: var(--cb-gray);
}
.nci-card-icon {
    width: 34px;
    height: 34px;
    background: rgba(107,114,128,0.08);
    border: 1px solid rgba(107,114,128,0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.nci-card-title {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--cb-dark);
    margin: 0;
    flex: 1;
}
.nci-badge-count {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.55rem;
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    background: rgba(107,114,128,0.06);
    color: var(--cb-gray);
    border: 1px solid rgba(107,114,128,0.2);
}

/* ── Table ── */
.nci-table { width: 100%; border-collapse: collapse; }
.nci-table thead th {
    background: var(--cb-dark);
    color: #fff;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 0.65rem 1rem;
    border: none;
}
.nci-table thead th:first-child { width: 60px; text-align: center; }
.nci-table thead th:last-child { text-align: right; width: 130px; }
.nci-table thead th.nci-th-center { text-align: center; }
.nci-table tbody td {
    font-size: 0.83rem;
    color: var(--cb-dark);
    padding: 0.7rem 1rem;
    border-bottom: 1px solid var(--cb-light);
    vertical-align: middle;
}
.nci-table tbody tr:hover { background: rgba(227,72,36,0.03); }
.nci-table tbody tr:last-child td { border-bottom: none; }
.nci-table td.nci-td-center { text-align: center; }
.nci-table td.nci-td-right { text-align: right; }

/* ── Toggle button ── */
.nci-toggle-btn {
    background: transparent;
    border: none;
    padding: 0;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

/* ── Description link ── */
.nci-desc-link {
    color: var(--cb-dark);
    font-weight: 600;
    font-size: 0.85rem;
    text-decoration: none;
    transition: color 0.2s;
}
.nci-desc-link:hover { color: var(--cb-accent); text-decoration: none; }

/* ── Code ── */
.nci-code {
    font-family: monospace;
    font-size: 0.75rem;
    color: var(--cb-gray);
    background: var(--cb-light);
    padding: 0.15rem 0.4rem;
    border: 1px solid var(--cb-border);
}

/* ── Badges ── */
.nci-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.25rem 0.65rem;
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    border-radius: 0;
}
.nci-badge-primary {
    background: rgba(227,72,36,0.06);
    color: var(--cb-accent);
    border: 1px solid rgba(227,72,36,0.2);
}
.nci-badge-warn {
    background: rgba(217,119,6,0.06);
    color: var(--cb-amber);
    border: 1px solid rgba(217,119,6,0.2);
}

/* ── Action buttons ── */
.nci-actions { display: flex; align-items: center; justify-content: flex-end; gap: 0.25rem; }
.nci-action-btn {
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border-radius: 0;
    text-decoration: none;
    transition: background 0.15s, border-color 0.15s;
}
.nci-action-btn-cyan  { border: 1px solid rgba(8,145,178,0.15);  color: var(--cb-cyan); }
.nci-action-btn-cyan:hover  { background: rgba(8,145,178,0.08);  border-color: var(--cb-cyan);  color: var(--cb-cyan); }
.nci-action-btn-amber { border: 1px solid rgba(217,119,6,0.15);  color: var(--cb-amber); }
.nci-action-btn-amber:hover { background: rgba(217,119,6,0.08);  border-color: var(--cb-amber); color: var(--cb-amber); }
.nci-action-btn-green { border: 1px solid rgba(5,150,105,0.15);  color: var(--cb-green); }
.nci-action-btn-green:hover { background: rgba(5,150,105,0.08);  border-color: var(--cb-green); color: var(--cb-green); }

/* ── Empty state ── */
.nci-empty {
    background: var(--cb-white);
    border: 1px solid var(--cb-border);
    padding: 3rem 2rem;
    text-align: center;
}
.nci-empty svg { color: var(--cb-muted); margin-bottom: 1rem; }
.nci-empty p { color: var(--cb-gray); font-size: 0.85rem; margin: 0 0 0.25rem; }
.nci-empty small { color: var(--cb-muted); font-size: 0.78rem; }

/* ── Responsive ── */
@media (max-width: 767.98px) {
    .nci-stats { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 575.98px) {
    .nci-page { padding: 1rem; }
    .nci-stats { grid-template-columns: 1fr; }
}

/* ============================================
    REPARTI PAGE STYLES
============================================ */


/* ── Page ── */
.rpi-page { padding: 2rem; }

/* ── Page Header ── */
.rpi-page-header {
    display: flex; align-items: flex-start; justify-content: space-between;
    gap: 1rem; flex-wrap: wrap; margin-bottom: 1.5rem;
}
.rpi-page-title { display: flex; align-items: flex-start; gap: 0.75rem; }
.rpi-page-icon {
    width: 42px; height: 42px; flex-shrink: 0;
    background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15);
    display: flex; align-items: center; justify-content: center;
}
.rpi-page-title h1 { font-size: 1.4rem; font-weight: 700; color: var(--cb-dark); letter-spacing: -0.025em; margin: 0 0 0.15rem 0; }
.rpi-page-title p  { font-size: 0.85rem; color: var(--cb-gray); margin: 0; }

.rpi-btn-green {
    padding: 0.55rem 1.25rem; font-size: 0.85rem; font-weight: 600;
    color: #fff; background: var(--cb-green); border: 2px solid var(--cb-green);
    border-radius: 0; text-decoration: none;
    display: inline-flex; align-items: center; gap: 0.4rem;
    transition: background 0.2s, box-shadow 0.2s;
}
.rpi-btn-green:hover { background: var(--cb-green-hover); border-color: var(--cb-green-hover); color: #fff; text-decoration: none; box-shadow: 0 2px 8px rgba(5,150,105,0.2); }

/* ── Alerts ── */
.rpi-alert {
    border-radius: 0; border: 1px solid var(--cb-border);
    padding: 0.85rem 1.25rem; font-size: 0.85rem;
    display: flex; align-items: center; gap: 0.5rem; margin-bottom: 1.5rem;
}
.rpi-alert-success { border-left: 4px solid var(--cb-green); background: rgba(5,150,105,0.05); color: var(--cb-dark); }
.rpi-alert-success svg { color: var(--cb-green); flex-shrink: 0; }
.rpi-alert-danger  { border-left: 4px solid var(--cb-danger); background: rgba(220,38,38,0.04); color: var(--cb-dark); }
.rpi-alert-danger svg  { color: var(--cb-danger); flex-shrink: 0; }
.rpi-alert-close { margin-left: auto; background: transparent; border: none; cursor: pointer; color: var(--cb-muted); padding: 0; flex-shrink: 0; }
.rpi-alert-close:hover { color: var(--cb-dark); }

/* ── Toolbar ── */
.rpi-toolbar {
    background: var(--cb-white); border: 1px solid var(--cb-border);
    padding: 0.85rem 1.25rem;
    display: flex; align-items: flex-end; gap: 1rem; flex-wrap: wrap;
    margin-bottom: 1rem;
}
.rpi-toolbar-field { display: flex; flex-direction: column; gap: 0.3rem; }
.rpi-toolbar-label { font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--cb-gray); }

.rpi-search-wrap { position: relative; }
.rpi-search-icon { position: absolute; left: 0.65rem; top: 50%; transform: translateY(-50%); color: var(--cb-muted); pointer-events: none; }
.rpi-search-input {
    border: 1px solid var(--cb-border); font-size: 0.82rem; border-radius: 0;
    padding: 0.4rem 0.65rem 0.4rem 2rem; width: 260px;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.rpi-search-input:focus { outline: none; border-color: var(--cb-accent); box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }

.rpi-select {
    border: 1px solid var(--cb-border); font-size: 0.82rem; border-radius: 0;
    padding: 0.4rem 2rem 0.4rem 0.65rem; min-width: 140px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%236b7280' viewBox='0 0 16 16'%3E%3Cpath d='M7.247 11.14L2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 0.65rem center;
    appearance: none; -webkit-appearance: none;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.rpi-select:focus { outline: none; border-color: var(--cb-accent); box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }

.rpi-toolbar-actions { display: flex; align-items: center; gap: 0.5rem; margin-left: auto; }

.rpi-btn-accent {
    padding: 0.4rem 1rem; font-size: 0.82rem; font-weight: 600;
    color: #fff; background: var(--cb-accent); border: 2px solid var(--cb-accent);
    border-radius: 0; cursor: pointer;
    display: inline-flex; align-items: center; gap: 0.35rem;
    transition: background 0.2s;
}
.rpi-btn-accent:hover { background: var(--cb-accent-hover); border-color: var(--cb-accent-hover); }

.rpi-btn-secondary {
    padding: 0.4rem 0.9rem; font-size: 0.82rem; font-weight: 600;
    color: var(--cb-gray); background: transparent; border: 2px solid var(--cb-border);
    border-radius: 0; text-decoration: none;
    display: inline-flex; align-items: center; gap: 0.35rem;
    transition: border-color 0.2s, color 0.2s;
}
.rpi-btn-secondary:hover { border-color: var(--cb-dark); color: var(--cb-dark); text-decoration: none; }

/* ── Results card ── */
.rpi-card { background: var(--cb-white); border: 1px solid var(--cb-border); overflow: hidden; }
.rpi-card-header {
    position: relative;
    padding: 0.85rem 1.5rem;
    border-bottom: 1px solid var(--cb-border);
    display: flex; align-items: center; gap: 0.75rem;
}
.rpi-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--cb-gray); }
.rpi-card-icon { width: 34px; height: 34px; background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.rpi-card-title { font-size: 0.9rem; font-weight: 700; color: var(--cb-dark); margin: 0; flex: 1; }
.rpi-count { font-size: 0.72rem; font-weight: 600; color: var(--cb-gray); }

/* ── Table ── */
.rpi-table { width: 100%; border-collapse: collapse; }
.rpi-table thead th { background: var(--cb-dark); color: #fff; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; padding: 0.65rem 1rem; border: none; white-space: nowrap; }
.rpi-table thead th.rpi-th-center { text-align: center; }
.rpi-table thead th.rpi-th-right  { text-align: right; width: 130px; }
.rpi-table tbody td { font-size: 0.83rem; color: var(--cb-dark); padding: 0.7rem 1rem; border-bottom: 1px solid var(--cb-light); vertical-align: middle; }
.rpi-table tbody tr:hover { background: rgba(227,72,36,0.03); }
.rpi-table tbody tr:last-child td { border-bottom: none; }
.rpi-table td.rpi-td-center { text-align: center; }
.rpi-table td.rpi-td-right  { text-align: right; }

.rpi-name-link { color: var(--cb-dark); font-weight: 600; font-size: 0.85rem; text-decoration: none; transition: color 0.2s; }
.rpi-name-link:hover { color: var(--cb-accent); text-decoration: none; }

.rpi-email-link { color: var(--cb-cyan); font-size: 0.82rem; text-decoration: none; display: inline-flex; align-items: center; gap: 0.3rem; transition: color 0.2s; }
.rpi-email-link:hover { color: var(--cb-accent); text-decoration: none; }

.rpi-desc { color: var(--cb-gray); font-size: 0.82rem; }
.rpi-date { color: var(--cb-muted); font-size: 0.78rem; }

.rpi-badge {
    display: inline-flex; align-items: center; gap: 0.25rem;
    padding: 0.2rem 0.55rem; font-size: 0.68rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.03em; border-radius: 0;
    background: rgba(107,114,128,0.06); color: var(--cb-gray);
    border: 1px solid rgba(107,114,128,0.2);
}

/* ── Action buttons ── */
.rpi-actions { display: flex; align-items: center; justify-content: flex-end; gap: 0.25rem; }
.rpi-action-btn {
    width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center;
    background: transparent; border-radius: 0; text-decoration: none;
    transition: background 0.15s, border-color 0.15s;
}
.rpi-action-btn-cyan   { border: 1px solid rgba(8,145,178,0.15);  color: var(--cb-cyan); }
.rpi-action-btn-cyan:hover   { background: rgba(8,145,178,0.08);  border-color: var(--cb-cyan);  color: var(--cb-cyan);  text-decoration: none; }
.rpi-action-btn-amber  { border: 1px solid rgba(217,119,6,0.15);  color: var(--cb-amber); }
.rpi-action-btn-amber:hover  { background: rgba(217,119,6,0.08);  border-color: var(--cb-amber); color: var(--cb-amber); text-decoration: none; }
.rpi-action-btn-danger { border: 1px solid rgba(220,38,38,0.15);  color: var(--cb-danger); }
.rpi-action-btn-danger:hover { background: rgba(220,38,38,0.08);  border-color: var(--cb-danger); color: var(--cb-danger); text-decoration: none; }

/* ── Pagination ── */
.rpi-pagination-wrap { padding: 0.85rem 1.5rem; border-top: 1px solid var(--cb-border); display: flex; justify-content: center; }
.rpi-pagination { display: flex; align-items: center; gap: 0.25rem; list-style: none; padding: 0; margin: 0; }
.rpi-page-link {
    min-width: 32px; height: 32px; padding: 0 0.5rem;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 0.8rem; font-weight: 600; border-radius: 0;
    border: 1px solid var(--cb-border); color: var(--cb-gray);
    text-decoration: none; transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.rpi-page-link:hover { background: var(--cb-light); color: var(--cb-dark); text-decoration: none; }
.rpi-page-link.active { background: var(--cb-accent); border-color: var(--cb-accent); color: #fff; }
.rpi-page-link.disabled { opacity: 0.4; pointer-events: none; }

/* ── Empty state ── */
.rpi-empty { padding: 3rem 2rem; text-align: center; }
.rpi-empty svg { color: var(--cb-muted); margin-bottom: 1rem; }
.rpi-empty p { color: var(--cb-gray); font-size: 0.85rem; margin: 0 0 1.25rem; }

/* ── Responsive ── */
@media (max-width: 767.98px) {
    .rpi-search-input { width: 100%; }
    .rpi-toolbar { flex-direction: column; align-items: stretch; }
    .rpi-toolbar-actions { margin-left: 0; }
}
@media (max-width: 575.98px) {
    .rpi-page { padding: 1rem; }
}

/* ============================================
    TIPI DOCUMENTO PAGE STYLES
============================================ */


/* ── Page ── */
.tdi-page { padding: 2rem; }

/* ── Breadcrumb ── */
.tdi-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.tdi-breadcrumb a { color: var(--cb-accent); text-decoration: none; font-weight: 500; }
.tdi-breadcrumb a:hover { color: var(--cb-accent-hover); text-decoration: underline; }
.tdi-breadcrumb .tdi-sep { color: var(--cb-border); }
.tdi-breadcrumb .tdi-current { color: var(--cb-gray); font-weight: 500; }

/* ── Alerts ── */
.tdi-alert {
    border-radius: 0; border: 1px solid var(--cb-border);
    padding: 0.85rem 1.25rem; font-size: 0.85rem;
    display: flex; align-items: center; gap: 0.5rem; margin-bottom: 1.5rem;
}
.tdi-alert-success { border-left: 4px solid var(--cb-green); background: rgba(5,150,105,0.05); color: var(--cb-dark); }
.tdi-alert-success svg { color: var(--cb-green); flex-shrink: 0; }
.tdi-alert-danger  { border-left: 4px solid var(--cb-danger); background: rgba(220,38,38,0.04); color: var(--cb-dark); }
.tdi-alert-danger svg  { color: var(--cb-danger); flex-shrink: 0; }
.tdi-alert-close { margin-left: auto; background: transparent; border: none; cursor: pointer; color: var(--cb-muted); padding: 0; flex-shrink: 0; }
.tdi-alert-close:hover { color: var(--cb-dark); }

/* ── Page Header ── */
.tdi-page-header {
    display: flex; align-items: flex-start; justify-content: space-between;
    gap: 1rem; flex-wrap: wrap; margin-bottom: 1.5rem;
}
.tdi-page-title { display: flex; align-items: flex-start; gap: 0.75rem; }
.tdi-page-icon {
    width: 42px; height: 42px; flex-shrink: 0;
    background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15);
    display: flex; align-items: center; justify-content: center;
}
.tdi-page-title h1 { font-size: 1.4rem; font-weight: 700; color: var(--cb-dark); letter-spacing: -0.025em; margin: 0 0 0.15rem 0; }
.tdi-page-title p  { font-size: 0.85rem; color: var(--cb-gray); margin: 0; }

.tdi-btn-green {
    padding: 0.55rem 1.25rem; font-size: 0.85rem; font-weight: 600;
    color: #fff; background: var(--cb-green); border: 2px solid var(--cb-green);
    border-radius: 0; text-decoration: none;
    display: inline-flex; align-items: center; gap: 0.4rem;
    transition: background 0.2s;
}
.tdi-btn-green:hover { background: #047857; border-color: #047857; color: #fff; text-decoration: none; }

/* ── Layout ── */
.tdi-layout { display: grid; grid-template-columns: 240px 1fr; gap: 1.5rem; align-items: start; }

/* ── Sidebar ── */
.tdi-sidebar { position: sticky; top: 72px; display: flex; flex-direction: column; gap: 1rem; }

/* ── Sidebar cards ── */
.tdi-side-card { background: var(--cb-white); border: 1px solid var(--cb-border); overflow: hidden; }
.tdi-side-header {
    position: relative; padding: 0.75rem 1rem; border-bottom: 1px solid var(--cb-border);
    display: flex; align-items: center; gap: 0.6rem;
}
.tdi-side-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.tdi-side-header--accent::before  { background: var(--cb-accent); }
.tdi-side-header--gray::before    { background: var(--cb-gray); }
.tdi-side-icon { width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.tdi-side-icon--accent { background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15); }
.tdi-side-icon--gray   { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); }
.tdi-side-title { font-size: 0.78rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--cb-dark); margin: 0; }

/* ── Stats list ── */
.tdi-stat-list { padding: 0.75rem 1rem; }
.tdi-stat-row { display: flex; justify-content: space-between; align-items: center; padding: 0.35rem 0; border-bottom: 1px solid var(--cb-light); }
.tdi-stat-row:last-child { border-bottom: none; }
.tdi-stat-label { font-size: 0.8rem; color: var(--cb-gray); }
.tdi-stat-num { font-size: 0.85rem; font-weight: 700; color: var(--cb-dark); }

/* ── Filter nav ── */
.tdi-filter-nav { display: flex; flex-direction: column; }
.tdi-filter-item {
    display: flex; justify-content: space-between; align-items: center;
    padding: 0.55rem 1rem; font-size: 0.82rem; font-weight: 500; color: var(--cb-gray);
    text-decoration: none; border-bottom: 1px solid var(--cb-light);
    transition: background 0.15s, color 0.15s; gap: 0.5rem;
}
.tdi-filter-item:last-child { border-bottom: none; }
.tdi-filter-item:hover { background: rgba(227,72,36,0.04); color: var(--cb-accent); text-decoration: none; }
.tdi-filter-item.tdi-active { background: rgba(227,72,36,0.08); color: var(--cb-accent); font-weight: 600; border-left: 3px solid var(--cb-accent); padding-left: calc(1rem - 3px); }
.tdi-filter-left { display: flex; align-items: center; gap: 0.4rem; }
.tdi-filter-badge {
    display: inline-flex; align-items: center; padding: 0.1rem 0.45rem;
    font-size: 0.65rem; font-weight: 600; border-radius: 0;
    background: rgba(107,114,128,0.08); color: var(--cb-gray); border: 1px solid rgba(107,114,128,0.2);
    flex-shrink: 0;
}
.tdi-filter-item.tdi-active .tdi-filter-badge { background: rgba(227,72,36,0.1); color: var(--cb-accent); border-color: rgba(227,72,36,0.2); }

/* ── Gruppo Area card ── */
.tdi-area-card { background: var(--cb-white); border: 1px solid var(--cb-border); overflow: hidden; margin-bottom: 1.5rem; }
.tdi-area-card:last-child { margin-bottom: 0; }
.tdi-area-header {
    position: relative; padding: 0.85rem 1.25rem; border-bottom: 1px solid var(--cb-border);
    display: flex; align-items: center; justify-content: space-between; gap: 0.75rem;
}
.tdi-area-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--cb-accent); }
.tdi-area-title-wrap { display: flex; align-items: center; gap: 0.6rem; }
.tdi-area-title { font-size: 0.88rem; font-weight: 700; color: var(--cb-dark); margin: 0; }
.tdi-area-count {
    display: inline-flex; padding: 0.15rem 0.5rem;
    font-size: 0.65rem; font-weight: 600; border-radius: 0;
    background: rgba(107,114,128,0.08); color: var(--cb-gray); border: 1px solid rgba(107,114,128,0.2);
}
.tdi-btn-outline-green {
    padding: 0.35rem 0.75rem; font-size: 0.78rem; font-weight: 600;
    background: transparent; border: 1px solid rgba(5,150,105,0.2); color: var(--cb-green);
    border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.3rem;
    transition: background 0.15s, border-color 0.15s;
}
.tdi-btn-outline-green:hover { background: rgba(5,150,105,0.08); border-color: var(--cb-green); color: var(--cb-green); text-decoration: none; }

/* ── Table ── */
.tdi-table { width: 100%; border-collapse: collapse; }
.tdi-table thead th { background: var(--cb-dark); color: #fff; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; padding: 0.65rem 1rem; border: none; white-space: nowrap; }
.tdi-table thead th.tdi-th-center { text-align: center; }
.tdi-table tbody td { font-size: 0.83rem; color: var(--cb-dark); padding: 0.7rem 1rem; border-bottom: 1px solid var(--cb-light); vertical-align: middle; }
.tdi-table tbody tr:hover { background: rgba(227,72,36,0.03); }
.tdi-table tbody tr:last-child td { border-bottom: none; }
.tdi-table td.tdi-td-center { text-align: center; }

.tdi-nome { font-weight: 600; font-size: 0.85rem; color: var(--cb-dark); }
.tdi-desc { font-size: 0.78rem; color: var(--cb-muted); }
.tdi-desc-empty { font-size: 0.78rem; color: var(--cb-muted); font-style: italic; }

/* ── Badges ── */
.tdi-badge {
    display: inline-flex; align-items: center; gap: 0.25rem;
    padding: 0.2rem 0.55rem; font-size: 0.68rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.03em; border-radius: 0;
}
.tdi-badge-secondary { background: rgba(107,114,128,0.06); color: var(--cb-gray);   border: 1px solid rgba(107,114,128,0.2); }
.tdi-badge-cyan      { background: rgba(8,145,178,0.06);   color: var(--cb-cyan);   border: 1px solid rgba(8,145,178,0.2); }
.tdi-badge-accent    { background: rgba(227,72,36,0.06);   color: var(--cb-accent); border: 1px solid rgba(227,72,36,0.2); }
.tdi-doc-count       { font-size: 0.82rem; color: var(--cb-muted); }

/* ── Action buttons ── */
.tdi-actions { display: flex; align-items: center; justify-content: center; gap: 0.25rem; }
.tdi-action-btn {
    width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center;
    background: transparent; border-radius: 0; text-decoration: none;
    transition: background 0.15s, border-color 0.15s;
}
.tdi-action-btn-cyan   { border: 1px solid rgba(8,145,178,0.15);  color: var(--cb-cyan); }
.tdi-action-btn-cyan:hover   { background: rgba(8,145,178,0.08);  border-color: var(--cb-cyan);  color: var(--cb-cyan);  text-decoration: none; }
.tdi-action-btn-amber  { border: 1px solid rgba(217,119,6,0.15);  color: var(--cb-amber); }
.tdi-action-btn-amber:hover  { background: rgba(217,119,6,0.08);  border-color: var(--cb-amber); color: var(--cb-amber); text-decoration: none; }
.tdi-action-btn-danger { border: 1px solid rgba(220,38,38,0.15);  color: var(--cb-danger); }
.tdi-action-btn-danger:hover { background: rgba(220,38,38,0.08);  border-color: var(--cb-danger); color: var(--cb-danger); text-decoration: none; }

/* ── Empty state ── */
.tdi-empty {
    background: var(--cb-white); border: 1px solid var(--cb-border);
    padding: 3rem 2rem; text-align: center;
}
.tdi-empty svg { color: var(--cb-muted); margin-bottom: 1rem; }
.tdi-empty p { color: var(--cb-gray); font-size: 0.85rem; margin: 0 0 1rem; }
.tdi-empty a { color: var(--cb-accent); font-weight: 600; text-decoration: none; }
.tdi-empty a:hover { text-decoration: underline; }

/* ── Responsive ── */
@media (max-width: 991.98px) {
    .tdi-layout { grid-template-columns: 1fr; }
    .tdi-sidebar { position: static; }
}
@media (max-width: 575.98px) {
    .tdi-page { padding: 1rem; }
}

/* ============================================
    CATEGORIE CONTRATTO PAGE STYLES
============================================ */

.cci-page { padding: 2rem; }

/* Breadcrumb */
.cci-breadcrumb {
    display: flex; align-items: center; gap: 0.4rem;
    font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem;
}
.cci-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.cci-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.cci-breadcrumb .cci-sep { color: #e0e1e3; }
.cci-breadcrumb .cci-current { color: #6b7280; font-weight: 500; }

/* Page header */
.cci-header {
    display: flex; align-items: flex-start;
    justify-content: space-between; gap: 1rem;
    margin-bottom: 1.5rem; flex-wrap: wrap;
}
.cci-title {
    font-size: 1.4rem; font-weight: 700; color: #151515;
    letter-spacing: -0.025em; margin: 0;
    display: flex; align-items: center; gap: 0.5rem;
}
.cci-title svg { color: #E34824; flex-shrink: 0; }

/* Alerts */
.cci-alert {
    display: flex; align-items: flex-start; gap: 0.5rem;
    padding: 0.85rem 1.25rem; border: 1px solid #e0e1e3;
    border-radius: 0; font-size: 0.85rem; margin-bottom: 1rem;
}
.cci-alert-success { border-left: 4px solid #059669; background: rgba(5,150,105,0.05); }
.cci-alert-success i { color: #059669; flex-shrink: 0; }
.cci-alert-danger  { border-left: 4px solid #dc2626; background: rgba(220,38,38,0.04); }
.cci-alert-danger i  { color: #dc2626; flex-shrink: 0; }
.cci-alert-close {
    margin-left: auto; background: none; border: none; cursor: pointer;
    color: #6b7280; padding: 0; font-size: 1rem; line-height: 1; flex-shrink: 0;
}
.cci-alert-close:hover { color: #151515; }

/* Stats */
.cci-stats {
    display: grid; grid-template-columns: repeat(3, 1fr);
    gap: 1rem; margin-bottom: 1.5rem;
}
.cci-stat {
    background: #fff; border: 1px solid #e0e1e3;
    padding: 1.25rem 1rem; text-align: center;
}
.cci-stat-num { font-size: 1.75rem; font-weight: 700; line-height: 1; margin-bottom: 0.25rem; }
.cci-stat-label {
    font-size: 0.68rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.05em; color: #6b7280;
}
.cci-stat--total .cci-stat-num   { color: #E34824; }
.cci-stat--active .cci-stat-num  { color: #059669; }
.cci-stat--inactive .cci-stat-num { color: #6b7280; }

/* Buttons */
.cci-btn {
    display: inline-flex; align-items: center; gap: 0.4rem;
    padding: 0.55rem 1.25rem; font-size: 0.85rem; font-weight: 600;
    border: 2px solid transparent; cursor: pointer;
    text-decoration: none; border-radius: 0;
    transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.cci-btn-green { background: #059669; color: #fff; border-color: #059669; }
.cci-btn-green:hover { background: #047857; border-color: #047857; color: #fff; }
.cci-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.cci-btn-secondary:hover { border-color: #151515; color: #151515; }
.cci-btn-danger { background: #dc2626; color: #fff; border-color: #dc2626; }
.cci-btn-danger:hover { background: #b91c1c; border-color: #b91c1c; color: #fff; }

/* Action icon buttons */
.cci-action-btn {
    width: 32px; height: 32px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 0; cursor: pointer; font-size: 0.85rem;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
    text-decoration: none;
}
.cci-action-btn--edit {
    border: 1px solid rgba(217,119,6,0.2); color: #d97706; background: transparent;
}
.cci-action-btn--edit:hover { background: rgba(217,119,6,0.06); border-color: #d97706; color: #d97706; }
.cci-action-btn--pause {
    border: 1px solid rgba(217,119,6,0.2); color: #d97706; background: transparent;
}
.cci-action-btn--pause:hover { background: rgba(217,119,6,0.06); border-color: #d97706; color: #d97706; }
.cci-action-btn--play {
    border: 1px solid rgba(5,150,105,0.2); color: #059669; background: transparent;
}
.cci-action-btn--play:hover { background: rgba(5,150,105,0.06); border-color: #059669; color: #059669; }
.cci-action-btn--delete {
    border: 1px solid rgba(220,38,38,0.2); color: #dc2626; background: transparent;
}
.cci-action-btn--delete:hover { background: rgba(220,38,38,0.06); border-color: #dc2626; color: #dc2626; }

/* Card */
.cci-card {
    background: #fff; border: 1px solid #e0e1e3;
    border-radius: 0; overflow: hidden;
}
.cci-card-header {
    position: relative; padding: 1rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex; align-items: center; gap: 0.75rem;
}
.cci-card-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0;
    width: 4px; background: #6b7280;
}
.cci-icon-box {
    width: 34px; height: 34px;
    display: flex; align-items: center; justify-content: center;
    background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15);
    flex-shrink: 0;
}
.cci-icon-box i { color: #6b7280; }
.cci-card-title { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; }

/* Table */
.cci-table { width: 100%; border-collapse: collapse; }
.cci-table thead th {
    background: #151515; color: #fff;
    font-size: 0.75rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.03em;
    padding: 0.75rem 1rem; border: none; white-space: nowrap;
}
.cci-table thead th:first-child { padding-left: 1.25rem; }
.cci-table thead th:last-child  { padding-right: 1.25rem; text-align: right; }
.cci-table thead th.center { text-align: center; }

.cci-table tbody td {
    padding: 0.75rem 1rem; font-size: 0.85rem;
    color: #151515; border-bottom: 1px solid #EEEFF0;
    vertical-align: middle;
}
.cci-table tbody td:first-child { padding-left: 1.25rem; }
.cci-table tbody td:last-child  { padding-right: 1.25rem; }
.cci-table tbody td.center { text-align: center; }
.cci-table tbody td.right  { text-align: right; }
.cci-table tbody tr:last-child td { border-bottom: none; }
.cci-table tbody tr:hover { background: rgba(227,72,36,0.03); }

/* Row link */
.cci-row-link {
    color: #151515; text-decoration: none; font-weight: 600;
    transition: color 0.15s;
}
.cci-row-link:hover { color: #E34824; }

/* Ordine badge */
.cci-ordine {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 28px; height: 22px; padding: 0 0.5rem;
    background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.2);
    font-size: 0.72rem; font-weight: 700; color: #6b7280;
}

/* Badge semantici */
.cci-badge {
    display: inline-flex; align-items: center; gap: 0.2rem;
    padding: 0.25rem 0.65rem; font-size: 0.68rem; font-weight: 600;
    border-radius: 0; text-transform: uppercase; letter-spacing: 0.03em;
}
.cci-badge-success  { background: rgba(5,150,105,0.06);  color: #059669; border: 1px solid rgba(5,150,105,0.2); }
.cci-badge-secondary{ background: rgba(107,114,128,0.06); color: #6b7280; border: 1px solid rgba(107,114,128,0.2); }
.cci-badge-info     { background: rgba(8,145,178,0.06);  color: #0891b2; border: 1px solid rgba(8,145,178,0.2); }

/* Utilizzi count */
.cci-utilizzi { font-size: 0.85rem; font-weight: 700; color: #0891b2; }
.cci-utilizzi-zero { font-size: 0.85rem; color: #9ca3af; }

/* Descrizione troncata */
.cci-desc { color: #6b7280; font-size: 0.82rem; }

/* Actions group */
.cci-actions-group { display: flex; align-items: center; justify-content: flex-end; gap: 0.25rem; }

/* Empty state */
.cci-empty {
    text-align: center; padding: 3rem 2rem;
}
.cci-empty-icon { font-size: 3rem; color: #e0e1e3; display: block; margin-bottom: 0.75rem; }
.cci-empty-text { font-size: 0.85rem; color: #6b7280; margin-bottom: 1rem; }

/* Modal */
.cci-modal-overlay {
    display: none; position: fixed; inset: 0;
    background: rgba(21,21,21,0.5); z-index: 1060;
    align-items: center; justify-content: center;
}
.cci-modal-overlay.open { display: flex; }
.cci-modal {
    background: #fff; border: 1px solid #e0e1e3;
    border-radius: 0; width: 100%; max-width: 440px;
    margin: 1rem; overflow: hidden;
}
.cci-modal-header {
    position: relative; padding: 1rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex; align-items: center; justify-content: space-between;
}
.cci-modal-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0;
    width: 4px; background: #dc2626;
}
.cci-modal-title { font-size: 0.95rem; font-weight: 700; color: #151515; margin: 0; }
.cci-modal-close {
    background: none; border: none; cursor: pointer;
    color: #6b7280; font-size: 1.1rem; padding: 0; line-height: 1;
}
.cci-modal-close:hover { color: #151515; }
.cci-modal-body { padding: 1.25rem 1.5rem; font-size: 0.85rem; color: #151515; }
.cci-modal-body p { margin: 0 0 0.5rem; }
.cci-modal-body p:last-child { margin: 0; color: #9ca3af; font-size: 0.78rem; }
.cci-modal-footer {
    padding: 1rem 1.5rem; border-top: 1px solid #e0e1e3;
    display: flex; align-items: center; justify-content: flex-end; gap: 0.5rem;
}

/* Responsive */
@media (max-width: 991.98px) {
    .cci-stats { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 575.98px) {
    .cci-page { padding: 1rem; }
    .cci-stats { grid-template-columns: 1fr; }
    .cci-header { flex-direction: column; align-items: flex-start; }
    .cci-btn { width: 100%; justify-content: center; }
    .cci-table thead th.hide-xs,
    .cci-table tbody td.hide-xs { display: none; }
}

/* ============================================
    TIPI SCADENZA MEZZO PAGE STYLES
============================================ */

.tsmi-page {
    padding: 2rem;
}

@media (max-width: 575.98px) {
    .tsmi-page { padding: 1rem; }
}

/* Header pagina */
.tsmi-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
}

.tsmi-header-left {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.tsmi-title {
    font-size: 1.4rem;
    font-weight: 700;
    color: #151515;
    letter-spacing: -0.025em;
    margin: 0;
    line-height: 1.2;
}

.tsmi-subtitle {
    font-size: 0.85rem;
    color: #6b7280;
    margin: 0.15rem 0 0;
}

/* Bottone primario */
.tsmi-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.55rem 1.5rem;
    font-size: 0.85rem;
    font-weight: 600;
    border-radius: 0;
    border: 2px solid transparent;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.2s, border-color 0.2s, box-shadow 0.2s;
    white-space: nowrap;
}

.tsmi-btn-accent {
    background: #E34824;
    color: #fff;
    border-color: #E34824;
}

.tsmi-btn-accent:hover {
    background: #c93d1e;
    border-color: #c93d1e;
    box-shadow: 0 2px 8px rgba(227, 72, 36, 0.2);
    color: #fff;
    text-decoration: none;
}

/* Alert TempData */
.tsmi-alert {
    border-radius: 0;
    border: 1px solid #e0e1e3;
    padding: 0.85rem 1.25rem;
    font-size: 0.85rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.tsmi-alert-success {
    border-left: 4px solid #059669;
    background: rgba(5, 150, 105, 0.04);
    color: #151515;
}

.tsmi-alert-success i { color: #059669; }

.tsmi-alert-danger {
    border-left: 4px solid #dc2626;
    background: rgba(220, 38, 38, 0.04);
    color: #151515;
}

.tsmi-alert-danger i { color: #dc2626; }

.tsmi-alert-close {
    margin-left: auto;
    background: none;
    border: none;
    cursor: pointer;
    color: #9ca3af;
    padding: 0;
    font-size: 1rem;
    line-height: 1;
}

.tsmi-alert-close:hover { color: #151515; }

/* Stats */
.tsmi-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.tsmi-stat {
    background: #fff;
    border: 1px solid #e0e1e3;
    border-radius: 0;
    text-align: center;
    padding: 1.25rem 1rem;
    position: relative;
    overflow: hidden;
}

.tsmi-stat::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
}

.tsmi-stat--total::before  { background: #6b7280; }
.tsmi-stat--amm::before    { background: #0891b2; }
.tsmi-stat--man::before    { background: #d97706; }

.tsmi-stat-num {
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1;
    margin-bottom: 0.25rem;
}

.tsmi-stat--total  .tsmi-stat-num { color: #151515; }
.tsmi-stat--amm    .tsmi-stat-num { color: #0891b2; }
.tsmi-stat--man    .tsmi-stat-num { color: #d97706; }

.tsmi-stat-label {
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #6b7280;
}

@media (max-width: 575.98px) {
    .tsmi-stats { grid-template-columns: 1fr; }
}

@media (min-width: 576px) and (max-width: 991.98px) {
    .tsmi-stats { grid-template-columns: repeat(3, 1fr); }
}

/* Card sezione */
.tsmi-card {
    background: #fff;
    border: 1px solid #e0e1e3;
    border-radius: 0;
    overflow: hidden;
    margin-bottom: 1.5rem;
}

.tsmi-card-header {
    position: relative;
    padding: 1rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.tsmi-card-header::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
}

.tsmi-card-header--cyan::before   { background: #0891b2; }
.tsmi-card-header--amber::before  { background: #d97706; }

.tsmi-icon-box {
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.tsmi-icon-box--cyan  { background: rgba(8,145,178,0.08);  border: 1px solid rgba(8,145,178,0.15); }
.tsmi-icon-box--amber { background: rgba(217,119,6,0.08);  border: 1px solid rgba(217,119,6,0.15); }

.tsmi-card-title {
    font-size: 0.9rem;
    font-weight: 700;
    color: #151515;
    margin: 0;
}

.tsmi-card-subtitle {
    font-size: 0.75rem;
    color: #6b7280;
    margin: 0;
}

/* Modal custom */
.tsmi-modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(21, 21, 21, 0.5);
    z-index: 1060;
    align-items: center;
    justify-content: center;
}

.tsmi-modal-overlay.open { display: flex; }

.tsmi-modal {
    background: #fff;
    border: 1px solid #e0e1e3;
    border-radius: 0;
    width: 100%;
    max-width: 440px;
    margin: 1rem;
    overflow: hidden;
}

.tsmi-modal-header {
    position: relative;
    padding: 1rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.tsmi-modal-header::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
    background: #dc2626;
}

.tsmi-modal-title {
    font-size: 0.95rem;
    font-weight: 700;
    color: #151515;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.tsmi-modal-title i { color: #dc2626; }

.tsmi-modal-close {
    background: none;
    border: none;
    cursor: pointer;
    color: #9ca3af;
    font-size: 1.1rem;
    padding: 0;
    line-height: 1;
    transition: color 0.15s;
}

.tsmi-modal-close:hover { color: #151515; }

.tsmi-modal-body {
    padding: 1.25rem 1.5rem;
    font-size: 0.85rem;
    color: #151515;
}

.tsmi-modal-nome {
    font-weight: 700;
    font-size: 0.9rem;
    color: #151515;
    margin-top: 0.25rem;
}

.tsmi-modal-footer {
    padding: 0.85rem 1.5rem;
    border-top: 1px solid #e0e1e3;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
}

.tsmi-btn-secondary {
    background: transparent;
    color: #6b7280;
    border-color: #e0e1e3;
}

.tsmi-btn-secondary:hover {
    border-color: #151515;
    color: #151515;
    text-decoration: none;
}

.tsmi-btn-danger {
    background: #dc2626;
    color: #fff;
    border-color: #dc2626;
}

.tsmi-btn-danger:hover {
    background: #b91c1c;
    border-color: #b91c1c;
    color: #fff;
}

.tsmi-btn-danger:disabled {
    opacity: 0.65;
    cursor: not-allowed;
}

/* ============================================
    ACCOUNT LOGIN PAGE STYLES
============================================ */

.lg-wrapper {
    min-height: calc(100vh - var(--topbar-height));
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    background: var(--cb-light);
}

.lg-card {
    background: var(--cb-white);
    border: 1px solid var(--cb-border);
    width: 100%;
    max-width: 420px;
    position: relative;
    overflow: hidden;
}

/* Accent bar sinistra */
.lg-card::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
    background: var(--cb-accent);
}

/* Card header */
.lg-card-header {
    padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--cb-border);
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.lg-icon-box {
    width: 34px;
    height: 34px;
    background: rgba(227,72,36,0.08);
    border: 1px solid rgba(227,72,36,0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.lg-icon-box svg {
    color: var(--cb-accent);
}

.lg-card-title {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--cb-dark);
    margin: 0;
}

.lg-card-subtitle {
    font-size: 0.75rem;
    color: var(--cb-gray);
    margin: 0;
}

/* Card body */
.lg-card-body {
    padding: 1.5rem 1.5rem 1.5rem 1.75rem;
}

/* Alert */
.lg-alert {
    padding: 0.75rem 1rem;
    font-size: 0.82rem;
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin-bottom: 1.25rem;
    border: 1px solid var(--cb-border);
    border-radius: 0 !important;
}

.lg-alert-success {
    background: rgba(5,150,105,0.05);
    border-left: 4px solid #059669;
    color: var(--cb-dark);
}

.lg-alert-success svg { color: #059669; flex-shrink: 0; }

.lg-alert-danger {
    background: rgba(220,38,38,0.04);
    border-left: 4px solid #dc2626;
    color: var(--cb-dark);
}

.lg-alert-danger svg { color: #dc2626; flex-shrink: 0; }

/* Labels */
.lg-label {
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--cb-dark);
    display: block;
    margin-bottom: 0.4rem;
}

/* Inputs */
.lg-input {
    border: 1px solid var(--cb-border);
    border-radius: 0 !important;
    font-size: 0.85rem;
    padding: 0.55rem 0.85rem;
    width: 100%;
    color: var(--cb-dark);
    background: var(--cb-white);
    transition: border-color 0.2s, box-shadow 0.2s;
    outline: none;
}

.lg-input:focus {
    border-color: var(--cb-accent);
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}

.lg-input::placeholder {
    color: #9ca3af;
}

.lg-field {
    margin-bottom: 1.1rem;
}

.lg-val-error {
    font-size: 0.72rem;
    color: #dc2626;
    margin-top: 0.25rem;
    display: block;
}

/* Checkbox */
.lg-check {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1.25rem;
}

.lg-check input[type="checkbox"] {
    width: 15px;
    height: 15px;
    border: 1px solid var(--cb-border);
    border-radius: 0 !important;
    flex-shrink: 0;
    cursor: pointer;
    accent-color: var(--cb-accent);
}

.lg-check label {
    font-size: 0.82rem;
    color: var(--cb-gray);
    cursor: pointer;
    margin: 0;
}

/* Submit button */
.lg-btn {
    background: var(--cb-accent);
    color: #fff;
    border: 2px solid var(--cb-accent);
    border-radius: 0 !important;
    padding: 0.6rem 1.5rem;
    font-weight: 600;
    font-size: 0.85rem;
    width: 100%;
    cursor: pointer;
    transition: background 0.2s, box-shadow 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.lg-btn:hover {
    background: var(--cb-accent-hover);
    border-color: var(--cb-accent-hover);
    box-shadow: 0 2px 8px rgba(227,72,36,0.2);
}

/* Links */
.lg-link {
    color: var(--cb-accent);
    text-decoration: none;
    font-size: 0.82rem;
    font-weight: 500;
    transition: color 0.2s;
}

.lg-link:hover {
    color: var(--cb-accent-hover);
    text-decoration: underline;
}

/* Divider */
.lg-divider {
    border: none;
    border-top: 1px solid var(--cb-light);
    margin: 1.25rem 0;
}

.lg-footer-text {
    font-size: 0.82rem;
    color: #9ca3af;
    text-align: center;
}

@media (max-width: 575.98px) {
    .lg-wrapper {
        padding: 1.25rem;
    }
}


/* ============================================
    ACCOUNT REGISTER PAGE STYLES
============================================ */

.rg-wrapper {
    min-height: calc(100vh - var(--topbar-height));
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    background: var(--cb-light);
}

.rg-card {
    background: var(--cb-white);
    border: 1px solid var(--cb-border);
    width: 100%;
    max-width: 520px;
    position: relative;
    overflow: hidden;
}

/* Accent bar sinistra */
.rg-card::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
    background: var(--cb-accent);
}

/* Card header */
.rg-card-header {
    padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--cb-border);
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.rg-icon-box {
    width: 34px;
    height: 34px;
    background: rgba(227,72,36,0.08);
    border: 1px solid rgba(227,72,36,0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rg-icon-box svg { color: var(--cb-accent); }

.rg-card-title {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--cb-dark);
    margin: 0;
}

.rg-card-subtitle {
    font-size: 0.75rem;
    color: var(--cb-gray);
    margin: 0;
}

/* Card body */
.rg-card-body {
    padding: 1.5rem 1.5rem 1.5rem 1.75rem;
}

/* Section title */
.rg-section-title {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--cb-gray);
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.85rem;
}

.rg-section-title svg { color: var(--cb-accent); }

.rg-separator {
    border: none;
    border-top: 1px solid var(--cb-light);
    margin: 1.25rem 0;
}

/* Alert */
.rg-alert-danger {
    padding: 0.75rem 1rem;
    font-size: 0.82rem;
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin-bottom: 1.25rem;
    border: 1px solid var(--cb-border);
    border-left: 4px solid #dc2626;
    border-radius: 0 !important;
    background: rgba(220,38,38,0.04);
    color: var(--cb-dark);
}

/* Labels */
.rg-label {
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--cb-dark);
    display: block;
    margin-bottom: 0.4rem;
}

/* Inputs & Selects */
.rg-input,
.rg-select {
    border: 1px solid var(--cb-border);
    border-radius: 0 !important;
    font-size: 0.85rem;
    padding: 0.55rem 0.85rem;
    width: 100%;
    color: var(--cb-dark);
    background: var(--cb-white);
    transition: border-color 0.2s, box-shadow 0.2s;
    outline: none;
}

.rg-input:focus,
.rg-select:focus {
    border-color: var(--cb-accent);
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}

.rg-input::placeholder { color: #9ca3af; }

.rg-select {
    appearance: auto;
}

.rg-field {
    margin-bottom: 1.1rem;
}

.rg-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.85rem;
}

.rg-val-error {
    font-size: 0.72rem;
    color: #dc2626;
    margin-top: 0.25rem;
    display: block;
}

/* Password hint */
.rg-hint {
    font-size: 0.72rem;
    color: var(--cb-gray);
    margin-top: 0.25rem;
    background: rgba(8,145,178,0.04);
    border-left: 3px solid #0891b2;
    padding: 0.35rem 0.65rem;
}

/* Submit button */
.rg-btn {
    background: var(--cb-green, #059669);
    color: #fff;
    border: 2px solid #059669;
    border-radius: 0 !important;
    padding: 0.6rem 1.5rem;
    font-weight: 600;
    font-size: 0.85rem;
    width: 100%;
    cursor: pointer;
    transition: background 0.2s, box-shadow 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.rg-btn:hover {
    background: #047857;
    border-color: #047857;
    box-shadow: 0 2px 8px rgba(5,150,105,0.2);
}

/* Links */
.rg-link {
    color: var(--cb-accent);
    text-decoration: none;
    font-size: 0.82rem;
    font-weight: 500;
    transition: color 0.2s;
}

.rg-link:hover {
    color: var(--cb-accent-hover);
    text-decoration: underline;
}

.rg-divider {
    border: none;
    border-top: 1px solid var(--cb-light);
    margin: 1.25rem 0;
}

.rg-footer-text {
    font-size: 0.82rem;
    color: #9ca3af;
    text-align: center;
}

@media (max-width: 575.98px) {
    .rg-wrapper { padding: 1.25rem; }
    .rg-row { grid-template-columns: 1fr; }
}

/* ============================================
    ACCOUNT FORGOT PASSWORD PAGE STYLES
============================================ */

.fp-wrapper {
    min-height: calc(100vh - var(--topbar-height));
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    background: var(--cb-light);
}

.fp-card {
    background: var(--cb-white);
    border: 1px solid var(--cb-border);
    width: 100%;
    max-width: 420px;
    position: relative;
    overflow: hidden;
}

.fp-card::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
    background: #0891b2;
}

.fp-card-header {
    padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--cb-border);
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.fp-icon-box {
    width: 34px;
    height: 34px;
    background: rgba(8,145,178,0.08);
    border: 1px solid rgba(8,145,178,0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.fp-icon-box svg { color: #0891b2; }

.fp-card-title {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--cb-dark);
    margin: 0;
}

.fp-card-subtitle {
    font-size: 0.75rem;
    color: var(--cb-gray);
    margin: 0;
}

.fp-card-body {
    padding: 1.5rem 1.5rem 1.5rem 1.75rem;
}

/* Info box */
.fp-info {
    font-size: 0.82rem;
    color: var(--cb-gray);
    background: rgba(8,145,178,0.04);
    border-left: 3px solid #0891b2;
    padding: 0.6rem 0.85rem;
    margin-bottom: 1.25rem;
    line-height: 1.5;
}

/* Alert */
.fp-alert-danger {
    padding: 0.75rem 1rem;
    font-size: 0.82rem;
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin-bottom: 1.25rem;
    border: 1px solid var(--cb-border);
    border-left: 4px solid #dc2626;
    border-radius: 0 !important;
    background: rgba(220,38,38,0.04);
    color: var(--cb-dark);
}

/* Label */
.fp-label {
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--cb-dark);
    display: block;
    margin-bottom: 0.4rem;
}

/* Input */
.fp-input {
    border: 1px solid var(--cb-border);
    border-radius: 0 !important;
    font-size: 0.85rem;
    padding: 0.55rem 0.85rem;
    width: 100%;
    color: var(--cb-dark);
    background: var(--cb-white);
    transition: border-color 0.2s, box-shadow 0.2s;
    outline: none;
}

.fp-input:focus {
    border-color: var(--cb-accent);
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}

.fp-input::placeholder { color: #9ca3af; }

.fp-field { margin-bottom: 1.25rem; }

.fp-val-error {
    font-size: 0.72rem;
    color: #dc2626;
    margin-top: 0.25rem;
    display: block;
}

/* Button */
.fp-btn {
    background: #0891b2;
    color: #fff;
    border: 2px solid #0891b2;
    border-radius: 0 !important;
    padding: 0.6rem 1.5rem;
    font-weight: 600;
    font-size: 0.85rem;
    width: 100%;
    cursor: pointer;
    transition: background 0.2s, box-shadow 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.fp-btn:hover {
    background: #0e7490;
    border-color: #0e7490;
    box-shadow: 0 2px 8px rgba(8,145,178,0.2);
}

.fp-divider {
    border: none;
    border-top: 1px solid var(--cb-light);
    margin: 1.25rem 0;
}

.fp-link {
    color: var(--cb-accent);
    text-decoration: none;
    font-size: 0.82rem;
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    transition: color 0.2s;
}

.fp-link:hover {
    color: var(--cb-accent-hover);
    text-decoration: underline;
}

@media (max-width: 575.98px) {
    .fp-wrapper { padding: 1.25rem; }
}


/* ============================================
    ACCOUNT FORGOT PASSWORD CONFIRMATION PAGE STYLES
============================================ */

.fpc-wrapper {
    min-height: calc(100vh - var(--topbar-height));
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    background: var(--cb-light);
}

.fpc-card {
    background: var(--cb-white);
    border: 1px solid var(--cb-border);
    width: 100%;
    max-width: 420px;
    position: relative;
    overflow: hidden;
}

.fpc-card::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
    background: #059669;
}

.fpc-card-header {
    padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--cb-border);
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.fpc-icon-box {
    width: 34px;
    height: 34px;
    background: rgba(5,150,105,0.08);
    border: 1px solid rgba(5,150,105,0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.fpc-icon-box svg { color: #059669; }

.fpc-card-title {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--cb-dark);
    margin: 0;
}

.fpc-card-subtitle {
    font-size: 0.75rem;
    color: var(--cb-gray);
    margin: 0;
}

.fpc-card-body {
    padding: 1.75rem 1.5rem 1.5rem 1.75rem;
}

/* Icona centrale */
.fpc-icon-center {
    width: 56px;
    height: 56px;
    background: rgba(5,150,105,0.08);
    border: 1px solid rgba(5,150,105,0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.25rem;
}

.fpc-icon-center svg { color: #059669; }

.fpc-heading {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--cb-dark);
    text-align: center;
    margin-bottom: 0.5rem;
}

.fpc-body-text {
    font-size: 0.82rem;
    color: var(--cb-gray);
    text-align: center;
    line-height: 1.6;
    margin-bottom: 1.25rem;
}

/* Info box */
.fpc-info {
    font-size: 0.82rem;
    color: var(--cb-gray);
    background: rgba(8,145,178,0.04);
    border-left: 3px solid #0891b2;
    padding: 0.6rem 0.85rem;
    margin-bottom: 1.5rem;
    line-height: 1.5;
}

.fpc-info strong { color: var(--cb-dark); }

.fpc-divider {
    border: none;
    border-top: 1px solid var(--cb-light);
    margin: 1.25rem 0;
}

/* Buttons */
.fpc-btn-primary {
    background: var(--cb-accent);
    color: #fff;
    border: 2px solid var(--cb-accent);
    border-radius: 0 !important;
    padding: 0.6rem 1.5rem;
    font-weight: 600;
    font-size: 0.85rem;
    width: 100%;
    cursor: pointer;
    transition: background 0.2s, box-shadow 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
    text-decoration: none;
}

.fpc-btn-primary:hover {
    background: var(--cb-accent-hover);
    border-color: var(--cb-accent-hover);
    box-shadow: 0 2px 8px rgba(227,72,36,0.2);
    color: #fff;
}

.fpc-btn-secondary {
    background: transparent;
    color: var(--cb-gray);
    border: 2px solid var(--cb-border);
    border-radius: 0 !important;
    padding: 0.6rem 1.5rem;
    font-weight: 600;
    font-size: 0.85rem;
    width: 100%;
    cursor: pointer;
    transition: border-color 0.2s, color 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    text-decoration: none;
}

.fpc-btn-secondary:hover {
    border-color: var(--cb-dark);
    color: var(--cb-dark);
}

@media (max-width: 575.98px) {
    .fpc-wrapper { padding: 1.25rem; }
}

/* ============================================
    ACCOUNT ACCESS DENIED PAGE STYLES
============================================ */


.ad-wrapper {
    min-height: calc(100vh - var(--topbar-height));
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    background: var(--cb-light);
}

.ad-card {
    background: var(--cb-white);
    border: 1px solid var(--cb-border);
    border-radius: 0;
    width: 100%;
    max-width: 440px;
    position: relative;
    overflow: hidden;
}

.ad-card::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: #dc2626;
}

.ad-card-header {
    padding: 1.5rem 1.5rem 1.25rem 1.75rem;
    border-bottom: 1px solid var(--cb-border);
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.ad-icon-box {
    width: 56px;
    height: 56px;
    flex-shrink: 0;
    background: rgba(220, 38, 38, 0.08);
    border: 1px solid rgba(220, 38, 38, 0.15);
    display: flex;
    align-items: center;
    justify-content: center;
}

.ad-header-text h1 {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--cb-dark);
    margin: 0 0 0.25rem 0;
    letter-spacing: -0.015em;
}

.ad-header-text p {
    font-size: 0.82rem;
    color: var(--cb-gray);
    margin: 0;
}

.ad-card-body {
    padding: 1.5rem 1.5rem 1.5rem 1.75rem;
}

.ad-info-box {
    background: rgba(8, 145, 178, 0.04);
    border-left: 3px solid #0891b2;
    padding: 0.75rem 0.9rem;
    font-size: 0.82rem;
    color: var(--cb-gray);
    margin-bottom: 1.5rem;
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
}

.ad-info-box svg {
    flex-shrink: 0;
    color: #0891b2;
    margin-top: 1px;
}

.ad-actions {
    display: flex;
    gap: 0.5rem;
}

.ad-btn-primary {
    flex: 1;
    padding: 0.55rem 1rem;
    font-size: 0.85rem;
    font-weight: 600;
    color: #fff;
    background: var(--cb-accent);
    border: 2px solid var(--cb-accent);
    border-radius: 0;
    text-decoration: none;
    text-align: center;
    cursor: pointer;
    transition: background 0.2s, box-shadow 0.2s;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
}

.ad-btn-primary:hover {
    background: var(--cb-accent-hover);
    border-color: var(--cb-accent-hover);
    box-shadow: 0 2px 8px rgba(227, 72, 36, 0.2);
    color: #fff;
    text-decoration: none;
}

.ad-btn-secondary {
    flex: 1;
    padding: 0.55rem 1rem;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--cb-gray);
    background: transparent;
    border: 2px solid var(--cb-border);
    border-radius: 0;
    cursor: pointer;
    transition: border-color 0.2s, color 0.2s;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
}

.ad-btn-secondary:hover {
    border-color: var(--cb-dark);
    color: var(--cb-dark);
}

/* ============================================
    ACCOUNT RESET PASSWORD PAGE STYLES
============================================ */

.rp-wrapper {
    min-height: calc(100vh - var(--topbar-height));
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    background: var(--cb-light);
}

.rp-card {
    background: var(--cb-white);
    border: 1px solid var(--cb-border);
    width: 100%;
    max-width: 440px;
    position: relative;
    overflow: hidden;
}

.rp-card::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
    background: var(--cb-accent);
}

.rp-card-header {
    padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--cb-border);
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.rp-icon-box {
    width: 34px;
    height: 34px;
    background: rgba(227,72,36,0.08);
    border: 1px solid rgba(227,72,36,0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rp-icon-box svg { color: var(--cb-accent); }

.rp-card-title {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--cb-dark);
    margin: 0;
}

.rp-card-subtitle {
    font-size: 0.75rem;
    color: var(--cb-gray);
    margin: 0;
}

.rp-card-body {
    padding: 1.5rem 1.5rem 1.5rem 1.75rem;
}

/* Section title */
.rp-section-title {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--cb-gray);
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.85rem;
}

.rp-section-title svg { color: var(--cb-accent); }

.rp-separator {
    border: none;
    border-top: 1px solid var(--cb-light);
    margin: 1.25rem 0;
}

/* Alert */
.rp-alert-danger {
    padding: 0.75rem 1rem;
    font-size: 0.82rem;
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin-bottom: 1.25rem;
    border: 1px solid var(--cb-border);
    border-left: 4px solid #dc2626;
    border-radius: 0 !important;
    background: rgba(220,38,38,0.04);
    color: var(--cb-dark);
}

/* Label */
.rp-label {
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--cb-dark);
    display: block;
    margin-bottom: 0.4rem;
}

/* Input */
.rp-input {
    border: 1px solid var(--cb-border);
    border-radius: 0 !important;
    font-size: 0.85rem;
    padding: 0.55rem 0.85rem;
    width: 100%;
    color: var(--cb-dark);
    background: var(--cb-white);
    transition: border-color 0.2s, box-shadow 0.2s;
    outline: none;
}

.rp-input:focus {
    border-color: var(--cb-accent);
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}

.rp-input::placeholder { color: #9ca3af; }

.rp-input[readonly] {
    background: var(--cb-light);
    color: var(--cb-gray);
    cursor: default;
}

.rp-field { margin-bottom: 1.1rem; }

.rp-val-error {
    font-size: 0.72rem;
    color: #dc2626;
    margin-top: 0.25rem;
    display: block;
}

/* Input group (password toggle) */
.rp-input-group {
    display: flex;
}

.rp-input-group .rp-input {
    flex: 1;
    border-right: none;
}

.rp-toggle-btn {
    background: var(--cb-light);
    border: 1px solid var(--cb-border);
    border-left: none;
    border-radius: 0 !important;
    padding: 0 0.75rem;
    color: var(--cb-gray);
    cursor: pointer;
    transition: color 0.2s, background 0.2s;
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.rp-toggle-btn:hover {
    color: var(--cb-accent);
    background: rgba(227,72,36,0.04);
}

/* Password hint */
.rp-hint {
    font-size: 0.72rem;
    color: var(--cb-gray);
    margin-top: 0.35rem;
    background: rgba(8,145,178,0.04);
    border-left: 3px solid #0891b2;
    padding: 0.4rem 0.65rem;
    line-height: 1.6;
}

/* Submit button */
.rp-btn {
    background: #059669;
    color: #fff;
    border: 2px solid #059669;
    border-radius: 0 !important;
    padding: 0.6rem 1.5rem;
    font-weight: 600;
    font-size: 0.85rem;
    width: 100%;
    cursor: pointer;
    transition: background 0.2s, box-shadow 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.rp-btn:hover {
    background: #047857;
    border-color: #047857;
    box-shadow: 0 2px 8px rgba(5,150,105,0.2);
}

.rp-divider {
    border: none;
    border-top: 1px solid var(--cb-light);
    margin: 1.25rem 0;
}

.rp-link {
    color: var(--cb-accent);
    text-decoration: none;
    font-size: 0.82rem;
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    transition: color 0.2s;
}

.rp-link:hover {
    color: var(--cb-accent-hover);
    text-decoration: underline;
}

@media (max-width: 575.98px) {
    .rp-wrapper { padding: 1.25rem; }
}

/* ============================================
    ACCOUNT RESET PASSWORD CONFIRMATION PAGE STYLES
============================================ */

.rpc-wrapper {
    min-height: calc(100vh - var(--topbar-height));
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    background: var(--cb-light);
}

.rpc-card {
    background: var(--cb-white);
    border: 1px solid var(--cb-border);
    width: 100%;
    max-width: 420px;
    position: relative;
    overflow: hidden;
}

.rpc-card::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
    background: #059669;
}

.rpc-card-header {
    padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--cb-border);
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.rpc-icon-box {
    width: 34px;
    height: 34px;
    background: rgba(5,150,105,0.08);
    border: 1px solid rgba(5,150,105,0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rpc-icon-box svg { color: #059669; }

.rpc-card-title {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--cb-dark);
    margin: 0;
}

.rpc-card-subtitle {
    font-size: 0.75rem;
    color: var(--cb-gray);
    margin: 0;
}

.rpc-card-body {
    padding: 2rem 1.5rem 1.75rem 1.75rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

/* Icona centrale */
.rpc-icon-center {
    width: 56px;
    height: 56px;
    background: rgba(5,150,105,0.08);
    border: 1px solid rgba(5,150,105,0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.25rem;
}

.rpc-icon-center svg { color: #059669; }

.rpc-heading {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--cb-dark);
    margin-bottom: 0.5rem;
}

.rpc-body-text {
    font-size: 0.82rem;
    color: var(--cb-gray);
    line-height: 1.6;
    margin-bottom: 1.75rem;
    max-width: 320px;
}

/* Button */
.rpc-btn {
    background: var(--cb-accent);
    color: #fff;
    border: 2px solid var(--cb-accent);
    border-radius: 0 !important;
    padding: 0.6rem 2rem;
    font-weight: 600;
    font-size: 0.85rem;
    cursor: pointer;
    transition: background 0.2s, box-shadow 0.2s;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    text-decoration: none;
    width: 100%;
}

.rpc-btn:hover {
    background: var(--cb-accent-hover);
    border-color: var(--cb-accent-hover);
    box-shadow: 0 2px 8px rgba(227,72,36,0.2);
    color: #fff;
}

@media (max-width: 575.98px) {
    .rpc-wrapper { padding: 1.25rem; }
}

/* ============================================
    ASSEGNAZIONI > RICONSEGNA PAGE STYLES
============================================ */

/* ── mrc- prefix: Mezzi RiconsegnaCreate ── */
.mrc-page { padding: 2rem; }

/* Breadcrumb */
.mrc-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.mrc-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.mrc-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.mrc-breadcrumb .mrc-sep { color: #e0e1e3; }
.mrc-breadcrumb .mrc-current { color: #6b7280; font-weight: 500; }

/* Page header */
.mrc-page-title { font-size: 1.4rem; font-weight: 700; color: #151515; letter-spacing: -0.025em; margin: 0 0 0.25rem 0; display: flex; align-items: center; gap: 0.6rem; }
.mrc-page-title svg { color: #E34824; flex-shrink: 0; }
.mrc-page-subtitle { font-size: 0.85rem; color: #6b7280; margin: 0 0 1.5rem 0; }

/* Cards */
.mrc-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; overflow: hidden; margin-bottom: 1.5rem; }
.mrc-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.75rem; }
.mrc-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.mrc-card-header--cyan::before  { background: #0891b2; }
.mrc-card-header--green::before { background: #059669; }
.mrc-card-icon { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 1rem; }
.mrc-card-icon--cyan  { background: rgba(8,145,178,0.08);  border: 1px solid rgba(8,145,178,0.15);  color: #0891b2; }
.mrc-card-icon--green { background: rgba(5,150,105,0.08);  border: 1px solid rgba(5,150,105,0.15);  color: #059669; }
.mrc-card-title { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; }
.mrc-card-body { padding: 1.5rem; }

/* Riepilogo campi */
.mrc-fields-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.5rem; }
.mrc-field { display: flex; flex-direction: column; padding: 0.6rem 0; border-bottom: 1px solid #EEEFF0; }
.mrc-field:last-child { border-bottom: none; }
.mrc-field--full { grid-column: 1 / -1; }
.mrc-field-label { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; margin-bottom: 0.2rem; }
.mrc-field-value { font-size: 0.85rem; color: #151515; font-weight: 500; }

/* Badge */
.mrc-badge {
    display: inline-flex; align-items: center; gap: 0.25rem;
    padding: 0.25rem 0.65rem; font-size: 0.68rem; font-weight: 600;
    border: 1px solid; border-radius: 0;
    text-transform: uppercase; letter-spacing: 0.03em;
}
.mrc-badge-danger { background: rgba(220,38,38,0.06); color: #dc2626; border-color: rgba(220,38,38,0.2); }

/* Info box giorni */
.mrc-info-box {
    background: rgba(8,145,178,0.04); border-left: 3px solid #0891b2;
    padding: 0.65rem 1rem; font-size: 0.85rem; color: #151515;
    display: flex; align-items: center; gap: 0.5rem; margin-top: 1rem;
}
.mrc-info-box i { color: #0891b2; flex-shrink: 0; }

/* Separatore */
.mrc-sep-section { border-top: 1px solid #EEEFF0; margin: 1.25rem 0; }

/* Form */
.mrc-form-section-title {
    font-size: 0.82rem; font-weight: 600; color: #6b7280;
    text-transform: uppercase; letter-spacing: 0.03em;
    display: flex; align-items: center; gap: 0.4rem;
    margin-bottom: 0.75rem; padding-bottom: 0.5rem;
    border-bottom: 1px solid #EEEFF0;
}
.mrc-form-section-title i { color: #E34824; }

.mrc-label { font-size: 0.8rem; font-weight: 600; color: #151515; text-transform: uppercase; letter-spacing: 0.04em; display: block; margin-bottom: 0.35rem; }
.mrc-form-control {
    border: 1px solid #e0e1e3; border-radius: 0;
    font-size: 0.85rem; color: #151515;
    padding: 0.5rem 0.75rem; width: 100%; background: #fff;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.mrc-form-control:focus { outline: none; border-color: #E34824; box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
textarea.mrc-form-control { resize: vertical; }
.mrc-form-text { font-size: 0.72rem; color: #9ca3af; margin-top: 0.25rem; }
.mrc-field-error { font-size: 0.72rem; color: #dc2626; margin-top: 0.25rem; display: block; }
.mrc-field-group { margin-bottom: 1rem; }

/* Validation */
.mrc-validation { border: 1px solid #e0e1e3; border-left: 4px solid #dc2626; background: rgba(220,38,38,0.04); padding: 0.85rem 1.25rem; font-size: 0.85rem; margin-bottom: 1.5rem; }
.mrc-validation ul { margin: 0; padding-left: 1.25rem; }

/* Km percorsi info (dinamico) */
.mrc-km-info {
    background: rgba(5,150,105,0.04); border-left: 3px solid #059669;
    padding: 0.65rem 1rem; font-size: 0.85rem; color: #151515;
    display: none; align-items: center; gap: 0.5rem; margin-top: 0.5rem;
}
.mrc-km-info.visible { display: flex; }
.mrc-km-info i { color: #059669; flex-shrink: 0; }
.mrc-km-info strong { color: #059669; }

/* Riepilogo durata box */
.mrc-durata-box {
    background: #EEEFF0; border: 1px solid #e0e1e3;
    padding: 0.85rem 1.25rem; margin-top: 0.75rem;
}
.mrc-durata-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem 1.5rem; }
.mrc-durata-item-label { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; }
.mrc-durata-item-value { font-size: 0.85rem; font-weight: 600; color: #151515; }

/* Bottoni */
.mrc-btn {
    display: inline-flex; align-items: center; gap: 0.4rem;
    padding: 0.55rem 1.5rem; font-size: 0.85rem; font-weight: 600;
    border: 2px solid; cursor: pointer; border-radius: 0;
    text-decoration: none; transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.mrc-btn-green     { background: #059669; color: #fff; border-color: #059669; }
.mrc-btn-green:hover { background: #047857; border-color: #047857; color: #fff; }
.mrc-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.mrc-btn-secondary:hover { border-color: #151515; color: #151515; text-decoration: none; }
.mrc-actions { display: flex; justify-content: space-between; align-items: center; gap: 0.5rem; flex-wrap: wrap; margin-top: 1.5rem; }

/* Responsive */
@media (max-width: 991.98px) { .mrc-fields-grid { grid-template-columns: 1fr; } .mrc-durata-grid { grid-template-columns: 1fr; } }
@media (max-width: 575.98px) { .mrc-page { padding: 1rem; } .mrc-actions { flex-direction: column-reverse; } .mrc-btn { width: 100%; justify-content: center; } }


/* ============================================
    ASSEGNAZIONI > STORICO UTENTE PAGE STYLES
============================================ */

/* ── msu- prefix: Mezzi StoricoAssegnazioniUtente ── */
.msu-page { padding: 2rem; }

/* Breadcrumb */
.msu-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.msu-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.msu-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.msu-breadcrumb .msu-sep { color: #e0e1e3; }
.msu-breadcrumb .msu-current { color: #6b7280; font-weight: 500; }

/* Page header */
.msu-page-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; flex-wrap: wrap; }
.msu-page-title { font-size: 1.4rem; font-weight: 700; color: #151515; letter-spacing: -0.025em; margin: 0; display: flex; align-items: center; gap: 0.6rem; }
.msu-page-title svg { color: #E34824; flex-shrink: 0; }
.msu-page-subtitle { font-size: 0.85rem; color: #6b7280; margin: 0.25rem 0 0 0; }

/* Avatar utente */
.msu-avatar {
    width: 52px; height: 52px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    font-size: 0.85rem; font-weight: 700; letter-spacing: 0.02em;
    background: rgba(227,72,36,0.1); color: #E34824;
    border: 1px solid rgba(227,72,36,0.2);
}

/* Info utente box */
.msu-utente-box {
    background: #fff; border: 1px solid #e0e1e3; border-left: 4px solid #0891b2;
    padding: 1rem 1.25rem; margin-bottom: 1.5rem;
    display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
}
.msu-utente-inner { display: flex; align-items: center; gap: 0.85rem; }
.msu-utente-name { font-size: 0.95rem; font-weight: 700; color: #151515; display: flex; align-items: center; gap: 0.5rem; }
.msu-utente-email { font-size: 0.78rem; color: #9ca3af; margin-top: 0.1rem; }
.msu-utente-reparto { font-size: 0.78rem; color: #6b7280; margin-top: 0.1rem; }

/* Badge */
.msu-badge {
    display: inline-flex; align-items: center; gap: 0.25rem;
    padding: 0.25rem 0.65rem; font-size: 0.68rem; font-weight: 600;
    border: 1px solid; border-radius: 0;
    text-transform: uppercase; letter-spacing: 0.03em;
}
.msu-badge-primary   { background: rgba(227,72,36,0.06);   color: #E34824; border-color: rgba(227,72,36,0.2); }
.msu-badge-info      { background: rgba(8,145,178,0.06);   color: #0891b2; border-color: rgba(8,145,178,0.2); }
.msu-badge-secondary { background: rgba(107,114,128,0.06); color: #6b7280; border-color: rgba(107,114,128,0.2); }

/* Stats */
.msu-stats { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1rem; margin-bottom: 1.5rem; }
.msu-stat { text-align: center; padding: 1.25rem 1rem; border: 1px solid #e0e1e3; background: #fff; }
.msu-stat-num { font-size: 1.75rem; font-weight: 700; line-height: 1; }
.msu-stat-label { font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; margin-top: 0.25rem; }
.msu-stat-num-accent  { color: #E34824; }
.msu-stat-num-green   { color: #059669; }
.msu-stat-num-gray    { color: #6b7280; }
.msu-stat-num-cyan    { color: #0891b2; }
.msu-stat-num-amber   { color: #d97706; }

/* Toolbar filtri */
.msu-toolbar {
    background: #fff; border: 1px solid #e0e1e3;
    padding: 0.85rem 1.25rem;
    display: flex; align-items: center; gap: 1rem; flex-wrap: wrap;
    margin-bottom: 1rem;
}
.msu-tab-group { display: flex; }
.msu-tab {
    padding: 0.4rem 0.9rem; font-size: 0.78rem; font-weight: 600;
    border: 1px solid #e0e1e3; background: transparent; color: #6b7280;
    cursor: pointer; transition: background 0.15s, color 0.15s;
}
.msu-tab:not(:last-child) { border-right: none; }
.msu-tab:hover { background: #EEEFF0; color: #151515; }
.msu-tab.active { background: #E34824; color: #fff; border-color: #E34824; }

/* Card */
.msu-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; overflow: hidden; margin-bottom: 1.5rem; }
.msu-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.75rem; }
.msu-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: #E34824; }
.msu-card-icon { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 1rem; background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15); color: #E34824; }
.msu-card-title { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; }
.msu-card-body--p0 { padding: 0; }

/* Tabella */
.msu-table { width: 100%; border-collapse: collapse; }
.msu-table thead th {
    background: #151515; color: #fff;
    font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em;
    padding: 0.65rem 0.85rem; border: none; white-space: nowrap;
}
.msu-table thead th:last-child { text-align: right; width: 100px; }
.msu-table tbody tr { border-bottom: 1px solid #EEEFF0; transition: background 0.15s; }
.msu-table tbody tr:last-child { border-bottom: none; }
.msu-table tbody tr:hover { background: rgba(227,72,36,0.03); }
.msu-table tbody tr.msu-row-attiva { background: rgba(5,150,105,0.03); }
.msu-table tbody tr.msu-row-attiva:hover { background: rgba(5,150,105,0.05); }
.msu-table tbody td { padding: 0.75rem 0.85rem; font-size: 0.85rem; color: #151515; vertical-align: middle; }
.msu-table tbody td:last-child { text-align: right; }

/* Celle */
.msu-mezzo-targa { font-size: 0.85rem; font-weight: 700; color: #151515; }
.msu-mezzo-desc  { font-size: 0.72rem; color: #9ca3af; margin-top: 0.1rem; }
.msu-cell-date   { font-size: 0.82rem; color: #151515; white-space: nowrap; }
.msu-cell-muted  { color: #9ca3af; font-size: 0.82rem; }
.msu-cell-dur-active { font-size: 0.82rem; color: #E34824; font-weight: 600; }
.msu-cell-km     { font-size: 0.82rem; color: #059669; font-weight: 700; }

/* Azioni 32×32 */
.msu-actions { display: inline-flex; gap: 0.25rem; justify-content: flex-end; }
.msu-action-btn {
    width: 32px; height: 32px; border-radius: 0;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 0.85rem; cursor: pointer; background: transparent;
    transition: background 0.15s, border-color 0.15s; text-decoration: none; border: 1px solid;
}
.msu-action-btn-accent { border-color: rgba(227,72,36,0.15);   color: #E34824; }
.msu-action-btn-accent:hover { background: rgba(227,72,36,0.06); border-color: #E34824; color: #E34824; }
.msu-action-btn-green  { border-color: rgba(5,150,105,0.15);   color: #059669; }
.msu-action-btn-green:hover { background: rgba(5,150,105,0.06); border-color: #059669; color: #059669; }
.msu-action-btn-danger { border-color: rgba(220,38,38,0.15);   color: #dc2626; }
.msu-action-btn-danger:hover { background: rgba(220,38,38,0.06); border-color: #dc2626; color: #dc2626; }

/* Bottoni */
.msu-btn {
    display: inline-flex; align-items: center; gap: 0.4rem;
    padding: 0.5rem 1.25rem; font-size: 0.85rem; font-weight: 600;
    border: 2px solid; cursor: pointer; border-radius: 0;
    text-decoration: none; transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.msu-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.msu-btn-secondary:hover { border-color: #151515; color: #151515; text-decoration: none; }
.msu-btn-accent { background: #E34824; color: #fff; border-color: #E34824; }
.msu-btn-accent:hover { background: #c93d1e; border-color: #c93d1e; color: #fff; text-decoration: none; }

/* Empty state */
.msu-empty { text-align: center; padding: 3rem 1.5rem; }
.msu-empty-icon { font-size: 3.5rem; color: #9ca3af; opacity: 0.5; line-height: 1; margin-bottom: 0.75rem; }
.msu-empty-title { font-size: 1rem; font-weight: 600; color: #6b7280; margin-bottom: 1rem; }

/* Responsive */
@media (max-width: 1199.98px) { .msu-stats { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 991.98px)  { .msu-stats { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575.98px)  { .msu-page { padding: 1rem; } .msu-stats { grid-template-columns: 1fr 1fr; } .msu-page-header { flex-direction: column; } }

/* ============================================
    CATEGORIE CONTRATTO > CREATE PAGE STYLES
============================================ */

.ccc-page { padding: 2rem; }

/* Breadcrumb */
.ccc-breadcrumb {
    display: flex; align-items: center; gap: 0.4rem;
    font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem;
}
.ccc-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.ccc-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.ccc-breadcrumb .ccc-sep { color: #e0e1e3; }
.ccc-breadcrumb .ccc-current { color: #6b7280; font-weight: 500; }

/* Page header */
.ccc-header { margin-bottom: 1.5rem; }
.ccc-title {
    font-size: 1.4rem; font-weight: 700; color: #151515;
    letter-spacing: -0.025em; margin: 0;
    display: flex; align-items: center; gap: 0.5rem;
}
.ccc-title svg { color: #E34824; flex-shrink: 0; }

/* Card */
.ccc-card {
    background: #fff; border: 1px solid #e0e1e3;
    border-radius: 0; overflow: hidden;
}
.ccc-card-header {
    position: relative; padding: 1rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex; align-items: center; gap: 0.75rem;
}
.ccc-card-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0;
    width: 4px; background: #059669;
}
.ccc-icon-box {
    width: 34px; height: 34px;
    display: flex; align-items: center; justify-content: center;
    background: rgba(5,150,105,0.08); border: 1px solid rgba(5,150,105,0.15);
    flex-shrink: 0;
}
.ccc-icon-box i { color: #059669; }
.ccc-card-title { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; }
.ccc-card-body  { padding: 1.5rem 1.5rem 1.5rem 1.75rem; }

/* Form */
.ccc-form-group { margin-bottom: 1.1rem; }
.ccc-form-label {
    display: block; font-size: 0.8rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.04em;
    color: #151515; margin-bottom: 0.4rem;
}
.ccc-required { color: #dc2626; margin-left: 0.2rem; }

.ccc-form-control {
    width: 100%; font-size: 0.85rem; color: #151515;
    border: 1px solid #e0e1e3; border-radius: 0;
    padding: 0.5rem 0.75rem; background: #fff;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.ccc-form-control:focus {
    outline: none;
    border-color: #E34824;
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}
.ccc-form-control::placeholder { color: #9ca3af; }
textarea.ccc-form-control { resize: vertical; }

.ccc-form-text {
    display: block; font-size: 0.72rem; color: #9ca3af; margin-top: 0.3rem;
}
.ccc-validation {
    display: block; font-size: 0.72rem; color: #dc2626; margin-top: 0.25rem;
}
.ccc-validation-success { color: #059669; }
.ccc-validation-warning { color: #d97706; }

/* Validation summary */
.ccc-validation-summary {
    display: flex; align-items: flex-start; gap: 0.5rem;
    padding: 0.85rem 1.25rem; margin-bottom: 1.25rem;
    border: 1px solid rgba(220,38,38,0.2);
    border-left: 4px solid #dc2626;
    background: rgba(220,38,38,0.04);
    font-size: 0.85rem; color: #151515; border-radius: 0;
}
.ccc-validation-summary i { color: #dc2626; flex-shrink: 0; margin-top: 0.1rem; }
.ccc-validation-summary ul { margin: 0; padding-left: 1.2rem; }

/* Two-col row */
.ccc-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.25rem; }

/* Toggle status row */
.ccc-toggle-row {
    display: flex; align-items: center; justify-content: space-between;
    padding: 0.75rem 0;
}
.ccc-toggle-label-main { font-size: 0.85rem; font-weight: 600; color: #151515; }
.ccc-toggle-label-sub  { font-size: 0.72rem; color: #9ca3af; margin-top: 0.1rem; }

/* Separator */
.ccc-sep-line { border-top: 1px solid #EEEFF0; margin: 1.5rem 0; }

/* Form footer */
.ccc-form-footer {
    display: flex; align-items: center;
    justify-content: space-between; gap: 0.5rem; flex-wrap: wrap;
}

/* Buttons */
.ccc-btn {
    display: inline-flex; align-items: center; gap: 0.4rem;
    padding: 0.55rem 1.25rem; font-size: 0.85rem; font-weight: 600;
    border: 2px solid transparent; cursor: pointer;
    text-decoration: none; border-radius: 0;
    transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.ccc-btn-green { background: #059669; color: #fff; border-color: #059669; }
.ccc-btn-green:hover { background: #047857; border-color: #047857; color: #fff; }
.ccc-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.ccc-btn-secondary:hover { border-color: #151515; color: #151515; }

/* Responsive */
@media (max-width: 991.98px) {
    .ccc-row { grid-template-columns: 1fr; }
}
@media (max-width: 575.98px) {
    .ccc-page { padding: 1rem; }
    .ccc-form-footer { flex-direction: column-reverse; }
    .ccc-btn { width: 100%; justify-content: center; }
}

/* ============================================
    CATEGORIE CONTRATTO > DETAILS PAGE STYLES
============================================ */

.ccd-page { padding: 2rem; }

/* Breadcrumb */
.ccd-breadcrumb {
    display: flex; align-items: center; gap: 0.4rem;
    font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem;
}
.ccd-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.ccd-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.ccd-breadcrumb .ccd-sep { color: #e0e1e3; }
.ccd-breadcrumb .ccd-current { color: #6b7280; font-weight: 500; }

/* Page header */
.ccd-header {
    display: flex; align-items: flex-start;
    justify-content: space-between; gap: 1rem;
    margin-bottom: 1.5rem; flex-wrap: wrap;
}
.ccd-title {
    font-size: 1.4rem; font-weight: 700; color: #151515;
    letter-spacing: -0.025em; margin: 0;
    display: flex; align-items: center; gap: 0.5rem;
}
.ccd-title svg { color: #E34824; flex-shrink: 0; }
.ccd-actions { display: flex; gap: 0.5rem; flex-wrap: wrap; align-items: center; }

/* Alerts */
.ccd-alert {
    display: flex; align-items: flex-start; gap: 0.5rem;
    padding: 0.85rem 1.25rem; border: 1px solid #e0e1e3;
    border-radius: 0; font-size: 0.85rem; margin-bottom: 1rem;
}
.ccd-alert-success { border-left: 4px solid #059669; background: rgba(5,150,105,0.05); }
.ccd-alert-success i { color: #059669; flex-shrink: 0; }
.ccd-alert-danger  { border-left: 4px solid #dc2626; background: rgba(220,38,38,0.04); }
.ccd-alert-danger i  { color: #dc2626; flex-shrink: 0; }
.ccd-alert-close {
    margin-left: auto; background: none; border: none; cursor: pointer;
    color: #6b7280; padding: 0; font-size: 1rem; line-height: 1; flex-shrink: 0;
}
.ccd-alert-close:hover { color: #151515; }

/* Buttons */
.ccd-btn {
    display: inline-flex; align-items: center; gap: 0.4rem;
    padding: 0.55rem 1.25rem; font-size: 0.85rem; font-weight: 600;
    border: 2px solid transparent; cursor: pointer;
    text-decoration: none; border-radius: 0;
    transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.ccd-btn-amber    { background: #d97706; color: #fff; border-color: #d97706; }
.ccd-btn-amber:hover { background: #b45309; border-color: #b45309; color: #fff; }
.ccd-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.ccd-btn-secondary:hover { border-color: #151515; color: #151515; }
.ccd-btn-danger   { background: #dc2626; color: #fff; border-color: #dc2626; }
.ccd-btn-danger:hover { background: #b91c1c; border-color: #b91c1c; color: #fff; }

/* Sidebar outline buttons */
.ccd-btn-outline-sm {
    display: inline-flex; align-items: center; gap: 0.35rem;
    padding: 0.4rem 0.8rem; font-size: 0.82rem; font-weight: 600;
    border-radius: 0; text-decoration: none; cursor: pointer;
    background: transparent; width: 100%; justify-content: flex-start;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.ccd-btn-outline-sm-amber  { border: 1px solid rgba(217,119,6,0.2);   color: #d97706; }
.ccd-btn-outline-sm-amber:hover  { background: rgba(217,119,6,0.04);  border-color: #d97706; color: #d97706; }
.ccd-btn-outline-sm-green  { border: 1px solid rgba(5,150,105,0.2);   color: #059669; }
.ccd-btn-outline-sm-green:hover  { background: rgba(5,150,105,0.04);  border-color: #059669; color: #059669; }
.ccd-btn-outline-sm-warn   { border: 1px solid rgba(217,119,6,0.2);   color: #d97706; }
.ccd-btn-outline-sm-warn:hover   { background: rgba(217,119,6,0.04);  border-color: #d97706; color: #d97706; }
.ccd-btn-outline-sm-danger { border: 1px solid rgba(220,38,38,0.2);   color: #dc2626; }
.ccd-btn-outline-sm-danger:hover { background: rgba(220,38,38,0.04);  border-color: #dc2626; color: #dc2626; }
.ccd-btn-outline-sm-gray   { border: 1px solid rgba(107,114,128,0.2); color: #6b7280; }
.ccd-btn-outline-sm-gray:hover   { background: rgba(107,114,128,0.04); border-color: #6b7280; color: #151515; }
.ccd-btn-outline-sm-cyan   { border: 1px solid rgba(8,145,178,0.2);   color: #0891b2; }
.ccd-btn-outline-sm-cyan:hover   { background: rgba(8,145,178,0.04);  border-color: #0891b2; color: #0891b2; }
.ccd-btn-outline-sm[disabled], .ccd-btn-outline-sm:disabled {
    opacity: 0.45; cursor: not-allowed; pointer-events: none;
}

/* Card */
.ccd-card {
    background: #fff; border: 1px solid #e0e1e3;
    border-radius: 0; overflow: hidden; margin-bottom: 1rem;
}
.ccd-card-header {
    position: relative; padding: 1rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex; align-items: center; gap: 0.75rem;
}
.ccd-card-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
}
.ccd-card-header--accent::before  { background: #E34824; }
.ccd-card-header--gray::before    { background: #6b7280; }
.ccd-card-header--neutral::before { background: #e0e1e3; }
.ccd-card-header--cyan::before    { background: #0891b2; }

.ccd-icon-box {
    width: 34px; height: 34px;
    display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.ccd-icon-box--accent  { background: rgba(227,72,36,0.08);   border: 1px solid rgba(227,72,36,0.15); }
.ccd-icon-box--accent i  { color: #E34824; }
.ccd-icon-box--gray    { background: rgba(107,114,128,0.08);  border: 1px solid rgba(107,114,128,0.15); }
.ccd-icon-box--gray i    { color: #6b7280; }
.ccd-icon-box--neutral { background: rgba(224,225,227,0.3);   border: 1px solid #e0e1e3; }
.ccd-icon-box--neutral i { color: #6b7280; }
.ccd-icon-box--cyan    { background: rgba(8,145,178,0.08);    border: 1px solid rgba(8,145,178,0.15); }
.ccd-icon-box--cyan i    { color: #0891b2; }

.ccd-card-title { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; }
.ccd-card-body  { padding: 1.5rem 1.5rem 1.5rem 1.75rem; }
.ccd-card-body--sm { padding: 1rem 1.25rem 1rem 1.5rem; }

/* Fields grid */
.ccd-fields-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.5rem;
}
.ccd-field {
    display: flex; flex-direction: column;
    padding: 0.6rem 0; border-bottom: 1px solid #EEEFF0;
}
.ccd-field--full { grid-column: 1 / -1; }
.ccd-field:last-child { border-bottom: none; }
.ccd-field-label {
    font-size: 0.68rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.04em; color: #6b7280; margin-bottom: 0.2rem;
}
.ccd-field-value { font-size: 0.85rem; color: #151515; font-weight: 500; }
.ccd-field-empty { font-size: 0.85rem; color: #9ca3af; font-style: italic; }
.ccd-field-sub   { font-size: 0.72rem; color: #9ca3af; margin-top: 0.1rem; }

/* Badge */
.ccd-badge {
    display: inline-flex; align-items: center; gap: 0.2rem;
    padding: 0.25rem 0.65rem; font-size: 0.68rem; font-weight: 600;
    border-radius: 0; text-transform: uppercase; letter-spacing: 0.03em;
}
.ccd-badge-success  { background: rgba(5,150,105,0.06);   color: #059669; border: 1px solid rgba(5,150,105,0.2); }
.ccd-badge-secondary{ background: rgba(107,114,128,0.06); color: #6b7280; border: 1px solid rgba(107,114,128,0.2); }
.ccd-badge-ordine   { background: rgba(107,114,128,0.08); color: #6b7280; border: 1px solid rgba(107,114,128,0.2); font-size: 0.82rem; font-weight: 700; padding: 0.2rem 0.6rem; }

/* Utilizzo stat */
.ccd-utilizzo-wrap { text-align: center; padding: 1.25rem 1rem; }
.ccd-utilizzo-num  { font-size: 3rem; font-weight: 800; line-height: 1; color: #E34824; margin-bottom: 0.25rem; }
.ccd-utilizzo-label { font-size: 0.78rem; color: #6b7280; }

/* Info non eliminabile */
.ccd-info-box {
    background: rgba(8,145,178,0.04);
    border-left: 3px solid #0891b2;
    padding: 0.6rem 0.85rem;
    font-size: 0.78rem; color: #6b7280;
    display: flex; align-items: flex-start; gap: 0.4rem;
    margin-top: 0.5rem;
}
.ccd-info-box i { color: #0891b2; flex-shrink: 0; margin-top: 0.1rem; }

/* Audit rows */
.ccd-audit-row {
    display: flex; flex-direction: column;
    padding: 0.6rem 0; border-bottom: 1px solid #EEEFF0;
}
.ccd-audit-row:last-child { border-bottom: none; }
.ccd-audit-label { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; margin-bottom: 0.15rem; }
.ccd-audit-value { font-size: 0.82rem; color: #151515; font-weight: 500; }
.ccd-audit-by    { font-size: 0.72rem; color: #9ca3af; }

/* Sidebar action list */
.ccd-action-list { display: flex; flex-direction: column; gap: 0.5rem; }
.ccd-sep-line { border-top: 1px solid #EEEFF0; margin: 0.25rem 0; }

/* Sidebar sticky */
.ccd-sidebar { position: sticky; top: 72px; z-index: 10; }

/* Modal */
.ccd-modal-overlay {
    display: none; position: fixed; inset: 0;
    background: rgba(21,21,21,0.5); z-index: 1060;
    align-items: center; justify-content: center;
}
.ccd-modal-overlay.open { display: flex; }
.ccd-modal {
    background: #fff; border: 1px solid #e0e1e3;
    border-radius: 0; width: 100%; max-width: 440px;
    margin: 1rem; overflow: hidden;
}
.ccd-modal-header {
    position: relative; padding: 1rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex; align-items: center; justify-content: space-between;
}
.ccd-modal-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0;
    width: 4px; background: #dc2626;
}
.ccd-modal-title { font-size: 0.95rem; font-weight: 700; color: #151515; margin: 0; }
.ccd-modal-close {
    background: none; border: none; cursor: pointer;
    color: #6b7280; font-size: 1.1rem; padding: 0; line-height: 1;
}
.ccd-modal-close:hover { color: #151515; }
.ccd-modal-body { padding: 1.25rem 1.5rem; font-size: 0.85rem; color: #151515; }
.ccd-modal-body p { margin: 0 0 0.5rem; }
.ccd-modal-body p:last-child { margin: 0; color: #9ca3af; font-size: 0.78rem; }
.ccd-modal-footer {
    padding: 1rem 1.5rem; border-top: 1px solid #e0e1e3;
    display: flex; align-items: center; justify-content: flex-end; gap: 0.5rem;
}

/* Responsive */
@media (max-width: 991.98px) {
    .ccd-sidebar { position: static; }
    .ccd-fields-grid { grid-template-columns: 1fr; }
    .ccd-field--full { grid-column: 1; }
}
@media (max-width: 575.98px) {
    .ccd-page { padding: 1rem; }
    .ccd-header { flex-direction: column; align-items: flex-start; }
    .ccd-actions { width: 100%; }
    .ccd-btn { width: 100%; justify-content: center; }
}

/* ============================================
    CATEGORIE CONTRATTO > EDIT PAGE STYLES
============================================ */

.cce-page { padding: 2rem; }

/* Breadcrumb */
.cce-breadcrumb {
    display: flex; align-items: center; gap: 0.4rem;
    font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem;
}
.cce-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.cce-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.cce-breadcrumb .cce-sep { color: #e0e1e3; }
.cce-breadcrumb .cce-current { color: #6b7280; font-weight: 500; }

/* Page header */
.cce-header { margin-bottom: 1.5rem; }
.cce-title {
    font-size: 1.4rem; font-weight: 700; color: #151515;
    letter-spacing: -0.025em; margin: 0;
    display: flex; align-items: center; gap: 0.5rem;
}
.cce-title svg { color: #E34824; flex-shrink: 0; }

/* Card */
.cce-card {
    background: #fff; border: 1px solid #e0e1e3;
    border-radius: 0; overflow: hidden; margin-bottom: 1rem;
}
.cce-card-header {
    position: relative; padding: 1rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex; align-items: center; gap: 0.75rem;
}
.cce-card-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
}
.cce-card-header--amber::before { background: #d97706; }
.cce-card-header--cyan::before  { background: #0891b2; }
.cce-card-header--gray::before  { background: #6b7280; }

.cce-icon-box {
    width: 34px; height: 34px;
    display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.cce-icon-box--amber  { background: rgba(217,119,6,0.08);  border: 1px solid rgba(217,119,6,0.15); }
.cce-icon-box--amber i  { color: #d97706; }
.cce-icon-box--cyan   { background: rgba(8,145,178,0.08);  border: 1px solid rgba(8,145,178,0.15); }
.cce-icon-box--cyan i   { color: #0891b2; }
.cce-icon-box--gray   { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); }
.cce-icon-box--gray i   { color: #6b7280; }

.cce-card-title { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; }
.cce-card-body  { padding: 1.5rem 1.5rem 1.5rem 1.75rem; }
.cce-card-body--sm { padding: 1rem 1.25rem 1rem 1.5rem; }

/* Form */
.cce-form-group { margin-bottom: 1.1rem; }
.cce-form-label {
    display: block; font-size: 0.8rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.04em;
    color: #151515; margin-bottom: 0.4rem;
}
.cce-required { color: #dc2626; margin-left: 0.2rem; }

.cce-form-control,
.cce-form-select {
    width: 100%; font-size: 0.85rem; color: #151515;
    border: 1px solid #e0e1e3; border-radius: 0;
    padding: 0.5rem 0.75rem; background: #fff;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.cce-form-control:focus,
.cce-form-select:focus {
    outline: none;
    border-color: #E34824;
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}
.cce-form-control::placeholder { color: #9ca3af; }
textarea.cce-form-control { resize: vertical; }

.cce-form-text {
    display: block; font-size: 0.72rem; color: #9ca3af; margin-top: 0.3rem;
}
.cce-validation {
    display: block; font-size: 0.72rem; color: #dc2626; margin-top: 0.25rem;
}
.cce-validation-success { color: #059669; }
.cce-validation-warning { color: #d97706; }

/* Validation summary */
.cce-validation-summary {
    display: flex; align-items: flex-start; gap: 0.5rem;
    padding: 0.85rem 1.25rem; margin-bottom: 1.25rem;
    border: 1px solid rgba(220,38,38,0.2);
    border-left: 4px solid #dc2626;
    background: rgba(220,38,38,0.04);
    font-size: 0.85rem; color: #151515; border-radius: 0;
}
.cce-validation-summary i { color: #dc2626; flex-shrink: 0; margin-top: 0.1rem; }
.cce-validation-summary ul { margin: 0; padding-left: 1.2rem; }

/* Toggle status row */
.cce-toggle-row {
    display: flex; align-items: center; justify-content: space-between;
    padding: 0.75rem 0;
}
.cce-toggle-label-main { font-size: 0.85rem; font-weight: 600; color: #151515; }
.cce-toggle-label-sub  { font-size: 0.72rem; color: #9ca3af; margin-top: 0.1rem; }

/* Two-col field row */
.cce-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.25rem; }

/* Separator */
.cce-sep-line { border-top: 1px solid #EEEFF0; margin: 1.5rem 0; }

/* Form footer */
.cce-form-footer {
    display: flex; align-items: center;
    justify-content: space-between; gap: 0.5rem; flex-wrap: wrap;
}

/* Buttons */
.cce-btn {
    display: inline-flex; align-items: center; gap: 0.4rem;
    padding: 0.55rem 1.25rem; font-size: 0.85rem; font-weight: 600;
    border: 2px solid transparent; cursor: pointer;
    text-decoration: none; border-radius: 0;
    transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.cce-btn-amber     { background: #d97706; color: #fff; border-color: #d97706; }
.cce-btn-amber:hover { background: #b45309; border-color: #b45309; color: #fff; }
.cce-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.cce-btn-secondary:hover { border-color: #151515; color: #151515; }

/* Sidebar outline buttons */
.cce-btn-outline-sm {
    display: inline-flex; align-items: center; gap: 0.35rem;
    padding: 0.4rem 0.8rem; font-size: 0.82rem; font-weight: 600;
    border-radius: 0; text-decoration: none; width: 100%;
    background: transparent;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.cce-btn-outline-sm-gray { border: 1px solid rgba(107,114,128,0.2); color: #6b7280; }
.cce-btn-outline-sm-gray:hover { background: rgba(107,114,128,0.04); border-color: #6b7280; color: #151515; }
.cce-btn-outline-sm-cyan { border: 1px solid rgba(8,145,178,0.2); color: #0891b2; }
.cce-btn-outline-sm-cyan:hover { background: rgba(8,145,178,0.04); border-color: #0891b2; color: #0891b2; }

/* Info note box */
.cce-note-box {
    background: rgba(8,145,178,0.04);
    border-left: 3px solid #0891b2;
    padding: 0.65rem 0.85rem;
    font-size: 0.82rem; color: #151515;
    display: flex; align-items: flex-start; gap: 0.5rem;
}
.cce-note-box i { color: #0891b2; flex-shrink: 0; margin-top: 0.1rem; }

/* Sidebar info rows */
.cce-info-row {
    display: flex; flex-direction: column;
    padding: 0.6rem 0; border-bottom: 1px solid #EEEFF0;
}
.cce-info-row:last-child { border-bottom: none; }
.cce-info-label { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; margin-bottom: 0.2rem; }
.cce-info-value { font-size: 0.85rem; color: #151515; font-weight: 500; }

/* Utilizzi count */
.cce-utilizzi-num { font-size: 1.25rem; font-weight: 700; color: #0891b2; }

/* Action list */
.cce-action-list { display: flex; flex-direction: column; gap: 0.5rem; }

/* Sidebar sticky */
.cce-sidebar { position: sticky; top: 72px; z-index: 10; }

/* Responsive */
@media (max-width: 991.98px) {
    .cce-sidebar { position: static; }
    .cce-row { grid-template-columns: 1fr; }
}
@media (max-width: 575.98px) {
    .cce-page { padding: 1rem; }
    .cce-form-footer { flex-direction: column-reverse; }
    .cce-btn { width: 100%; justify-content: center; }
}

/* ============================================
    DOCUMENTI GARA > DETAILS PAGE STYLES
============================================ */

.dd-page { padding: 2rem; }
.dd-breadcrumb { display: flex; align-items: center; gap: 0.4rem; margin-bottom: 0.75rem; font-size: 0.8rem; flex-wrap: wrap; }
.dd-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.dd-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.dd-breadcrumb .dd-sep { color: #e0e1e3; }
.dd-breadcrumb .dd-current { color: #6b7280; font-weight: 500; }
.dd-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 2rem; gap: 1rem; flex-wrap: wrap; }
.dd-header h1 { font-size: 1.5rem; font-weight: 700; color: #151515; margin: 0 0 0.35rem; display: flex; align-items: center; gap: 0.5rem; }
.dd-header-badges { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.dd-header-actions { display: flex; gap: 0.4rem; flex-direction: column; }
.dd-alert { border-radius: 0; border: 1px solid #e0e1e3; padding: 0.85rem 1.25rem; font-size: 0.85rem; display: flex; align-items: center; gap: 0.5rem; margin-bottom: 1rem; }
.dd-alert-success { background: rgba(5,150,105,0.05); border-left: 4px solid #059669; }
.dd-alert-success i { color: #059669; }
.dd-alert-danger { background: rgba(220,38,38,0.04); border-left: 4px solid #dc2626; }
.dd-alert-danger i { color: #dc2626; }
.dd-alert-info { background: rgba(8,145,178,0.04); border-left: 4px solid #0891b2; }
.dd-alert-info i { color: #0891b2; }
.dd-alert .btn-close { margin-left: auto; }
.dd-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; margin-bottom: 1.5rem; overflow: hidden; }
.dd-card-header { padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.6rem; position: relative; }
.dd-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.dd-card-header--orange::before { background: #E34824; }
.dd-card-header--green::before { background: #059669; }
.dd-card-header--cyan::before { background: #0891b2; }
.dd-card-header--light::before { background: #e0e1e3; }
.dd-card-header-icon { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.dd-card-header--orange .dd-card-header-icon { background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15); }
.dd-card-header--orange .dd-card-header-icon i { color: #E34824; }
.dd-card-header--green .dd-card-header-icon { background: rgba(5,150,105,0.08); border: 1px solid rgba(5,150,105,0.15); }
.dd-card-header--green .dd-card-header-icon i { color: #059669; }
.dd-card-header--cyan .dd-card-header-icon { background: rgba(8,145,178,0.08); border: 1px solid rgba(8,145,178,0.15); }
.dd-card-header--cyan .dd-card-header-icon i { color: #0891b2; }
.dd-card-header--light .dd-card-header-icon { background: rgba(107,114,128,0.06); border: 1px solid #e0e1e3; }
.dd-card-header--light .dd-card-header-icon i { color: #6b7280; }
.dd-card-header h2 { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; }
.dd-card-body { padding: 1.5rem; padding-left: calc(1.5rem + 4px); }
.dd-field { margin-bottom: 0.75rem; }
.dd-field:last-child { margin-bottom: 0; }
.dd-field-label { font-size: 0.7rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; margin-bottom: 0.1rem; }
.dd-field-value { font-size: 0.9rem; color: #151515; font-weight: 500; }
.dd-field-value--muted { color: #9ca3af; font-weight: 400; }
.dd-code { font-family: monospace; font-size: 0.75rem; background: #EEEFF0; padding: 0.2rem 0.5rem; border: 1px solid #e0e1e3; }
.dd-badge { display: inline-block; padding: 0.25rem 0.6rem; font-size: 0.7rem; font-weight: 600; border-radius: 0; }
.dd-badge-primary { background: rgba(227,72,36,0.08); color: #E34824; border: 1px solid rgba(227,72,36,0.15); }
.dd-badge-info { background: rgba(8,145,178,0.08); color: #0891b2; border: 1px solid rgba(8,145,178,0.15); }
.dd-badge-success { background: rgba(5,150,105,0.08); color: #059669; border: 1px solid rgba(5,150,105,0.15); }
.dd-badge-danger { background: rgba(220,38,38,0.08); color: #dc2626; border: 1px solid rgba(220,38,38,0.15); }
.dd-badge-warn { background: rgba(217,119,6,0.08); color: #d97706; border: 1px solid rgba(217,119,6,0.15); }
.dd-badge-secondary { background: #EEEFF0; color: #6b7280; border: 1px solid #e0e1e3; }
.dd-link { color: #E34824; text-decoration: none; font-weight: 600; }
.dd-link:hover { color: #c93d1e; text-decoration: underline; }
.dd-btn { padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem; transition: all 0.2s; cursor: pointer; border: 2px solid; }
.dd-btn-primary { background: #E34824; color: #fff; border-color: #E34824; }
.dd-btn-primary:hover { background: #c93d1e; border-color: #c93d1e; color: #fff; }
.dd-btn-amber { background: #d97706; color: #fff; border-color: #d97706; }
.dd-btn-amber:hover { background: #b45309; border-color: #b45309; color: #fff; }
.dd-btn-danger { background: #dc2626; color: #fff; border-color: #dc2626; }
.dd-btn-danger:hover { background: #b91c1c; border-color: #b91c1c; color: #fff; }
.dd-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.dd-btn-secondary:hover { border-color: #151515; color: #151515; }
.dd-assoc { margin-bottom: 1rem; padding-bottom: 1rem; border-bottom: 1px solid #EEEFF0; }
.dd-assoc:last-child { border-bottom: none; padding-bottom: 0; margin-bottom: 0; }
.dd-assoc h3 { font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; margin-bottom: 0.3rem; display: flex; align-items: center; gap: 0.3rem; }
.dd-assoc p { font-size: 0.82rem; color: #6b7280; margin: 0; }
.dd-sticky { position: sticky; top: 72px; z-index: 10; }
.dd-icon-file { font-size: 1.5rem; }
.dd-footer { display: flex; justify-content: space-between; align-items: center; margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid #EEEFF0; flex-wrap: wrap; gap: 0.5rem; }
@media (max-width: 991.98px) { .dd-sticky { position: static; } .dd-header { flex-direction: column; } }

/* ============================================
    DOCUMENTI GARA > EDIT PAGE STYLES
============================================ */

.de-page { padding: 2rem; }
.de-breadcrumb { display: flex; align-items: center; gap: 0.4rem; margin-bottom: 0.75rem; font-size: 0.8rem; flex-wrap: wrap; }
.de-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.de-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.de-breadcrumb .de-sep { color: #e0e1e3; }
.de-breadcrumb .de-current { color: #6b7280; font-weight: 500; }
.de-header { margin-bottom: 2rem; }
.de-header h1 { font-size: 1.5rem; font-weight: 700; color: #151515; margin: 0 0 0.25rem; display: flex; align-items: center; gap: 0.5rem; }
.de-header h1 svg { color: #E34824; }
.de-header p { font-size: 0.85rem; color: #6b7280; margin: 0; }
.de-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; margin-bottom: 1.5rem; overflow: hidden; }
.de-card-header { padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.6rem; position: relative; }
.de-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.de-card-header--amber::before { background: #d97706; }
.de-card-header--light::before { background: #e0e1e3; }
.de-card-header-icon { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.de-card-header--amber .de-card-header-icon { background: rgba(217,119,6,0.08); border: 1px solid rgba(217,119,6,0.15); }
.de-card-header--amber .de-card-header-icon i { color: #d97706; }
.de-card-header--light .de-card-header-icon { background: rgba(107,114,128,0.06); border: 1px solid #e0e1e3; }
.de-card-header--light .de-card-header-icon i { color: #6b7280; }
.de-card-header h2 { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; }
.de-card-body { padding: 1.5rem; padding-left: calc(1.5rem + 4px); }
.de-form .form-label { font-size: 0.8rem; font-weight: 600; color: #151515; margin-bottom: 0.3rem; }
.de-form .form-control, .de-form .form-select { border-radius: 0; border: 1px solid #e0e1e3; font-size: 0.85rem; }
.de-form .form-control:focus, .de-form .form-select:focus { border-color: #E34824; box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
.de-form small { font-size: 0.72rem; color: #9ca3af; }
.de-form .text-danger { font-size: 0.72rem; }
.de-btn { padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem; transition: all 0.2s; cursor: pointer; border: 2px solid; }
.de-btn-amber { background: #d97706; color: #fff; border-color: #d97706; }
.de-btn-amber:hover { background: #b45309; border-color: #b45309; color: #fff; }
.de-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.de-btn-secondary:hover { border-color: #151515; color: #151515; }
.de-btn-outline { background: transparent; border-color: rgba(227,72,36,0.2); color: #E34824; }
.de-btn-outline:hover { border-color: #E34824; background: rgba(227,72,36,0.04); }
.de-btn-outline-success { background: transparent; border-color: rgba(5,150,105,0.2); color: #059669; }
.de-btn-outline-success:hover { border-color: #059669; background: rgba(5,150,105,0.04); }
.de-sys-field { margin-bottom: 0.6rem; }
.de-sys-field:last-child { margin-bottom: 0; }
.de-sys-label { font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; }
.de-sys-value { font-size: 0.85rem; color: #151515; font-weight: 500; }
.de-alert-warning { border-radius: 0; border: 1px solid #e0e1e3; border-left: 4px solid #d97706; background: rgba(217,119,6,0.04); padding: 0.85rem 1.25rem; font-size: 0.82rem; }
.de-alert-warning i { color: #d97706; }
.de-sticky { position: sticky; top: 72px; z-index: 10; }
@media (max-width: 991.98px) { .de-sticky { position: static; } }

/* ============================================
    DOCUMENTI GARA > UPLOAD PAGE STYLES
============================================ */

.du-page { padding: 2rem; }
.du-breadcrumb { display: flex; align-items: center; gap: 0.4rem; margin-bottom: 0.75rem; font-size: 0.8rem; flex-wrap: wrap; }
.du-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.du-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.du-breadcrumb .du-sep { color: #e0e1e3; }
.du-breadcrumb .du-current { color: #6b7280; font-weight: 500; }
.du-header { margin-bottom: 2rem; }
.du-header h1 { font-size: 1.5rem; font-weight: 700; color: #151515; margin: 0 0 0.25rem; display: flex; align-items: center; gap: 0.5rem; }
.du-header h1 svg { color: #059669; }
.du-header p { font-size: 0.85rem; color: #6b7280; margin: 0; }
.du-tabs.nav-tabs { border-bottom: 2px solid #EEEFF0; margin-bottom: 1.5rem; gap: 0; }
.du-tabs .nav-item { margin-bottom: -2px; }
.du-tab-btn.nav-link { padding: 0.8rem 1.5rem; border: none; border-radius: 0; background: transparent; font-size: 0.85rem; font-weight: 600; color: #6b7280; cursor: pointer; position: relative; display: flex; align-items: center; gap: 0.35rem; transition: color 0.15s; }
.du-tab-btn.nav-link:hover { color: #E34824; border-color: transparent; }
.du-tab-btn.nav-link.active { color: #E34824; background: transparent; border-color: transparent; }
.du-tab-btn.nav-link.active::after { content: ''; position: absolute; bottom: -2px; left: 0; right: 0; height: 2px; background: #E34824; }
.du-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; margin-bottom: 1.5rem; overflow: hidden; }
.du-card-body { padding: 1.5rem; }
.du-form .form-label { font-size: 0.8rem; font-weight: 600; color: #151515; margin-bottom: 0.3rem; }
.du-form .form-control, .du-form .form-select { border-radius: 0; border: 1px solid #e0e1e3; font-size: 0.85rem; }
.du-form .form-control:focus, .du-form .form-select:focus { border-color: #E34824; box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
.du-form small { font-size: 0.72rem; color: #9ca3af; }
.du-form .text-danger { font-size: 0.72rem; }
.du-btn { padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem; transition: all 0.2s; cursor: pointer; border: 2px solid; }
.du-btn-success { background: #059669; color: #fff; border-color: #059669; }
.du-btn-success:hover { background: #047857; border-color: #047857; color: #fff; }
.du-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.du-btn-secondary:hover { border-color: #151515; color: #151515; }
.du-btn-outline { background: transparent; color: #E34824; border-color: rgba(227,72,36,0.3); }
.du-btn-outline:hover { border-color: #E34824; background: rgba(227,72,36,0.04); }
.du-btn-disabled { opacity: 0.5; cursor: not-allowed; }
.du-dropzone { border: 2px dashed #e0e1e3; padding: 3rem; text-align: center; cursor: pointer; background: #EEEFF0; transition: all 0.2s; }
.du-dropzone:hover, .du-dropzone.active { border-color: #E34824; background: rgba(227,72,36,0.03); }
.du-dropzone i { font-size: 3rem; color: #9ca3af; display: block; margin-bottom: 0.5rem; }
.du-dropzone h3 { font-size: 1rem; font-weight: 600; color: #151515; margin: 0 0 0.25rem; }
.du-dropzone p { font-size: 0.85rem; color: #6b7280; margin: 0 0 0.75rem; }
.du-alert { border-radius: 0; border: 1px solid #e0e1e3; padding: 0.75rem 1rem; font-size: 0.82rem; display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.75rem; }
.du-alert-info { background: rgba(8,145,178,0.04); border-left: 4px solid #0891b2; }
.du-alert-info i { color: #0891b2; }
.du-preview-table { width: 100%; border-collapse: collapse; }
.du-preview-table thead th { background: #151515; color: #fff; font-size: 0.72rem; font-weight: 600; text-transform: uppercase; padding: 0.6rem 0.8rem; border: none; }
.du-preview-table tbody td { padding: 0.6rem 0.8rem; font-size: 0.85rem; color: #151515; border-bottom: 1px solid #EEEFF0; vertical-align: middle; }
.du-preview-table tbody tr:last-child td { border-bottom: none; }
.du-progress-wrap { margin-top: 1rem; }
.du-progress-bar-bg { height: 20px; background: #EEEFF0; overflow: hidden; }
.du-progress-bar { height: 100%; background: #059669; transition: width 0.3s; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 0.75rem; font-weight: 600; }
.du-remove-btn { width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #e0e1e3; background: #fff; color: #dc2626; cursor: pointer; transition: all 0.15s; font-size: 0.8rem; padding: 0; }
.du-remove-btn:hover { border-color: #dc2626; background: rgba(220,38,38,0.04); }

/* ============================================
    ELABORAZIONE > AVVIA PAGE STYLES
============================================ */

.ea-page {
    padding: 2rem;
}

@media (max-width: 575.98px) {
    .ea-page { padding: 1rem; }
}

/* Breadcrumb */
.ea-breadcrumb {
    display: flex; align-items: center; gap: 0.4rem;
    font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem;
}
.ea-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.ea-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.ea-breadcrumb .ea-sep { color: #e0e1e3; }
.ea-breadcrumb .ea-current { color: #6b7280; font-weight: 500; }

/* Header */
.ea-header { margin-bottom: 1.5rem; }
.ea-title {
    display: flex; align-items: center; gap: 0.75rem;
    font-size: 1.4rem; font-weight: 700; color: #151515;
    letter-spacing: -0.025em; margin: 0;
}
.ea-title-icon {
    width: 38px; height: 38px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    background: rgba(5,150,105,0.08); border: 1px solid rgba(5,150,105,0.15);
}

/* Centred wrapper */
.ea-center {
    max-width: 640px;
    margin: 0 auto;
}

/* Card */
.ea-card {
    background: #fff; border: 1px solid #e0e1e3;
    border-radius: 0; overflow: hidden;
}
.ea-card-header {
    position: relative; padding: 1rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex; align-items: center; gap: 0.75rem;
}
.ea-card-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0;
    width: 4px; background: #059669;
}
.ea-icon-box {
    width: 34px; height: 34px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    background: rgba(5,150,105,0.08); border: 1px solid rgba(5,150,105,0.15);
    color: #059669;
}
.ea-card-title {
    font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0;
}
.ea-card-body { padding: 1.5rem 1.5rem 1.5rem 1.75rem; }
.ea-card-footer {
    padding: 1rem 1.5rem; border-top: 1px solid #e0e1e3;
    background: #EEEFF0;
    display: flex; align-items: center; justify-content: center; gap: 0.75rem;
    flex-wrap: wrap;
}

/* Info lotto box */
.ea-lotto-box {
    background: rgba(8,145,178,0.04);
    border: 1px solid #e0e1e3;
    border-left: 4px solid #0891b2;
    padding: 1rem 1.25rem;
    margin-bottom: 1.25rem;
}
.ea-lotto-box-title {
    font-size: 0.72rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.05em; color: #0891b2;
    display: flex; align-items: center; gap: 0.4rem;
    margin-bottom: 0.75rem;
}
.ea-fields-list { display: flex; flex-direction: column; gap: 0; }
.ea-field {
    display: flex; padding: 0.45rem 0;
    border-bottom: 1px solid rgba(8,145,178,0.1);
    align-items: baseline; gap: 0.5rem;
}
.ea-field:last-child { border-bottom: none; }
.ea-field-label {
    font-size: 0.68rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.04em; color: #6b7280; flex-shrink: 0; width: 110px;
}
.ea-field-value { font-size: 0.85rem; color: #151515; font-weight: 500; }

/* Warning box */
.ea-warning-box {
    background: rgba(217,119,6,0.04);
    border: 1px solid #e0e1e3;
    border-left: 4px solid #d97706;
    padding: 1rem 1.25rem;
    margin-bottom: 1.25rem;
}
.ea-warning-title {
    font-size: 0.72rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.05em; color: #d97706;
    display: flex; align-items: center; gap: 0.4rem;
    margin-bottom: 0.6rem;
}
.ea-warning-intro {
    font-size: 0.85rem; color: #151515; margin-bottom: 0.5rem;
}
.ea-list {
    margin: 0; padding: 0; list-style: none;
    display: flex; flex-direction: column; gap: 0.35rem;
}
.ea-list li {
    display: flex; align-items: flex-start; gap: 0.5rem;
    font-size: 0.82rem; color: #6b7280;
}
.ea-list li::before {
    content: ''; display: block; width: 5px; height: 5px;
    border-radius: 50%; background: #d97706;
    flex-shrink: 0; margin-top: 0.45rem;
}
.ea-list li strong { color: #151515; }

/* Steps box */
.ea-steps-box {
    background: rgba(107,114,128,0.03);
    border: 1px solid #e0e1e3;
    border-left: 4px solid #6b7280;
    padding: 1rem 1.25rem;
    margin-bottom: 0;
}
.ea-steps-title {
    font-size: 0.72rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.05em; color: #6b7280;
    display: flex; align-items: center; gap: 0.4rem;
    margin-bottom: 0.6rem;
}
.ea-steps-intro {
    font-size: 0.85rem; color: #151515; margin-bottom: 0.6rem;
}
.ea-steps-list {
    margin: 0; padding: 0; list-style: none;
    display: flex; flex-direction: column; gap: 0.4rem; counter-reset: ea-step;
}
.ea-steps-list li {
    display: flex; align-items: flex-start; gap: 0.65rem;
    font-size: 0.82rem; color: #6b7280;
    counter-increment: ea-step;
}
.ea-steps-list li::before {
    content: counter(ea-step);
    display: flex; align-items: center; justify-content: center;
    width: 20px; height: 20px; flex-shrink: 0;
    background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.2);
    color: #E34824; font-size: 0.65rem; font-weight: 700;
    margin-top: 0.1rem;
}
.ea-steps-list li strong { color: #151515; }

/* Bottoni */
.ea-btn {
    display: inline-flex; align-items: center; gap: 0.4rem;
    padding: 0.6rem 1.75rem; font-size: 0.85rem; font-weight: 600;
    border-radius: 0; border: 2px solid; cursor: pointer;
    text-decoration: none; transition: background 0.2s, border-color 0.2s, box-shadow 0.2s;
    white-space: nowrap;
}
.ea-btn--green {
    background: #059669; color: #fff; border-color: #059669;
}
.ea-btn--green:hover {
    background: #047857; border-color: #047857;
    box-shadow: 0 2px 8px rgba(5,150,105,0.2);
    color: #fff;
}
.ea-btn--secondary {
    background: transparent; color: #6b7280; border-color: #e0e1e3;
}
.ea-btn--secondary:hover {
    border-color: #151515; color: #151515; text-decoration: none;
}

@media (max-width: 575.98px) {
    .ea-card-footer { flex-direction: column; }
    .ea-btn { width: 100%; justify-content: center; }
    .ea-field-label { width: 90px; }
}

/* ============================================
    ELABORAZIONE > DETAILS PAGE STYLES
============================================ */

.ed-page { padding: 2rem; }

@media (max-width: 575.98px) {
    .ed-page { padding: 1rem; }
}

/* Breadcrumb */
.ed-breadcrumb {
    display: flex; align-items: center; gap: 0.4rem;
    font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem;
}
.ed-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.ed-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.ed-breadcrumb .ed-sep { color: #e0e1e3; }
.ed-breadcrumb .ed-current { color: #6b7280; font-weight: 500; }

/* Header */
.ed-header { margin-bottom: 1.5rem; }
.ed-title {
    display: flex; align-items: center; gap: 0.75rem;
    font-size: 1.4rem; font-weight: 700; color: #151515;
    letter-spacing: -0.025em; margin: 0 0 0.3rem 0;
}
.ed-title-icon {
    width: 38px; height: 38px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15);
}
.ed-subtitle { font-size: 0.85rem; color: #6b7280; margin: 0; }

/* Layout grid */
.ed-layout {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 20px;
    align-items: start;
}
.ed-sidebar { position: sticky; top: 72px; }

/* Card base */
.ed-card {
    background: #fff;
    border: 1px solid #e0e1e3;
    position: relative;
    overflow: hidden;
    margin-bottom: 1rem;
}
.ed-card-header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 1rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    position: relative;
}
.ed-card-header::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
}
.ed-card--accent .ed-card-header::before { background: #E34824; }
.ed-card--green  .ed-card-header::before { background: #059669; }
.ed-card--cyan   .ed-card-header::before { background: #0891b2; }
.ed-card--amber  .ed-card-header::before { background: #d97706; }
.ed-card--gray   .ed-card-header::before { background: #6b7280; }
.ed-card--blue   .ed-card-header::before { background: #2563eb; }
.ed-card--danger .ed-card-header::before { background: #dc2626; }

/* Icon-box */
.ed-card-icon {
    width: 34px; height: 34px;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.ed-card-icon i { font-size: 1rem; }
.ed-card-icon--accent { background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15); }
.ed-card-icon--accent i { color: #E34824; }
.ed-card-icon--green  { background: rgba(5,150,105,0.08);  border: 1px solid rgba(5,150,105,0.15); }
.ed-card-icon--green i  { color: #059669; }
.ed-card-icon--cyan   { background: rgba(8,145,178,0.08);  border: 1px solid rgba(8,145,178,0.15); }
.ed-card-icon--cyan i   { color: #0891b2; }
.ed-card-icon--amber  { background: rgba(217,119,6,0.08);  border: 1px solid rgba(217,119,6,0.15); }
.ed-card-icon--amber i  { color: #d97706; }
.ed-card-icon--gray   { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); }
.ed-card-icon--gray i   { color: #6b7280; }
.ed-card-icon--blue   { background: rgba(37,99,235,0.08);  border: 1px solid rgba(37,99,235,0.15); }
.ed-card-icon--blue i   { color: #2563eb; }

.ed-card-title {
    font-size: 0.88rem;
    font-weight: 700;
    color: #151515;
    text-transform: uppercase;
    letter-spacing: .04em;
    flex: 1;
    padding-left: 4px; /* compensa accent bar */
}
.ed-card-count {
    font-size: 0.72rem;
    font-weight: 700;
    background: #151515;
    color: #fff;
    padding: 2px 7px;
    letter-spacing: .03em;
}
.ed-card-body { padding: 1.5rem; padding-left: 1.75rem; }

/* Fields grid */
.ed-fields { display: grid; grid-template-columns: 160px 1fr; gap: 0; }
.ed-field {
    display: contents;
}
.ed-field-label {
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #6b7280;
    padding: 0.5rem 0.75rem 0.5rem 0;
    border-bottom: 1px solid #EEEFF0;
    display: flex;
    align-items: center;
}
.ed-field-value {
    font-size: 0.85rem;
    color: #151515;
    padding: 0.5rem 0;
    border-bottom: 1px solid #EEEFF0;
    display: flex;
    align-items: center;
}
.ed-field-label:last-of-type,
.ed-field-value:last-of-type { border-bottom: none; }
.ed-field-value strong { font-weight: 700; }

/* Badges */
.ed-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.68rem;
    font-weight: 600;
    padding: 0.25rem 0.65rem;
    border: 1px solid;
    letter-spacing: .03em;
    text-transform: uppercase;
}
.ed-badge--amber { background: rgba(217,119,6,0.06);   border-color: rgba(217,119,6,0.20);   color: #d97706; }
.ed-badge--green { background: rgba(5,150,105,0.06);   border-color: rgba(5,150,105,0.20);   color: #059669; }
.ed-badge--cyan  { background: rgba(8,145,178,0.06);   border-color: rgba(8,145,178,0.20);   color: #0891b2; }
.ed-badge--gray  { background: rgba(107,114,128,0.06); border-color: rgba(107,114,128,0.20); color: #6b7280; }
.ed-badge--red   { background: rgba(220,38,38,0.06);   border-color: rgba(220,38,38,0.20);   color: #dc2626; }
.ed-badge--blue  { background: rgba(37,99,235,0.06);   border-color: rgba(37,99,235,0.20);   color: #2563eb; }

/* Price cards */
.ed-price-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin-bottom: 1rem;
}
.ed-price-card {
    border: 1px solid #e0e1e3;
    padding: 1rem;
}
.ed-price-card-label {
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #6b7280;
    margin-bottom: 0.4rem;
}
.ed-price-card-value { font-size: 1.3rem; font-weight: 700; }
.ed-price-card-value--cyan   { color: #0891b2; }
.ed-price-card-value--green  { color: #059669; }
.ed-price-card-value--muted  { font-size: 0.82rem; color: #9ca3af; font-style: italic; font-weight: 400; }
.ed-price-card--desiderato { border-top: 3px solid #0891b2; }
.ed-price-card--reale      { border-top: 3px solid #059669; background: #EEEFF0; }

/* Scostamento */
.ed-scost-divider { border: none; border-top: 1px solid #e0e1e3; margin: 1rem 0; }
.ed-scost-title {
    display: flex; align-items: center; gap: 8px;
    font-size: 0.78rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: .04em;
    color: #151515; margin-bottom: 0.75rem;
}
.ed-scost-title i { color: #E34824; }
.ed-scost-rows { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }
.ed-scost-row { display: flex; flex-direction: column; gap: 2px; }
.ed-scost-row-label {
    font-size: 0.68rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: .04em; color: #6b7280;
}
.ed-scost-row-value { font-size: 0.88rem; font-weight: 700; color: #151515; }
.ed-scost-row-value--red   { color: #dc2626; }
.ed-scost-row-value--green { color: #059669; }

/* Confronto preventivi */
.ed-confronto-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.75rem; }
.ed-confronto-cell {
    text-align: center; padding: 0.75rem 0.5rem;
    background: #EEEFF0; border: 1px solid #e0e1e3;
}
.ed-confronto-cell-label {
    font-size: 0.65rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: .04em;
    color: #6b7280; display: block; margin-bottom: 4px;
}
.ed-confronto-cell-value { font-size: 0.88rem; font-weight: 700; }
.ed-confronto-cell-value--red   { color: #dc2626; }
.ed-confronto-cell-value--green { color: #059669; }
.ed-confronto-cell-value--blue  { color: #2563eb; }

/* Note / Motivazione */
.ed-note-section + .ed-note-section { border-top: 1px solid #e0e1e3; padding-top: 0.75rem; margin-top: 0.75rem; }
.ed-note-label {
    font-size: 0.68rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: .05em;
    color: #6b7280; margin-bottom: 0.3rem;
}
.ed-note-text { font-size: 0.85rem; color: #151515; margin: 0; }

/* Table */
.ed-table-wrap { overflow-x: auto; }
.ed-table { width: 100%; border-collapse: collapse; font-size: 0.82rem; }
.ed-table thead tr { background: #151515; }
.ed-table thead th {
    padding: 9px 12px; font-size: 0.7rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: .05em;
    color: #e0e1e3; border: none;
}
.ed-table thead th.text-end    { text-align: right; }
.ed-table thead th.text-center { text-align: center; }
.ed-table tbody tr { border-bottom: 1px solid #e0e1e3; }
.ed-table tbody tr:last-child { border-bottom: none; }
.ed-table tbody tr:hover { background: rgba(227,72,36,0.03); }
.ed-table td { padding: 9px 12px; color: #151515; vertical-align: middle; }
.ed-table td.text-end    { text-align: right; }
.ed-table td.text-center { text-align: center; }
.ed-table-name   { font-weight: 700; }
.ed-table-muted  { color: #6b7280; font-size: 0.8rem; }
.ed-table-amount { font-weight: 700; color: #0891b2; }

.ed-gg-badge {
    display: inline-flex; align-items: center; gap: 3px;
    font-size: 0.68rem; font-weight: 600;
    background: rgba(8,145,178,0.06);
    border: 1px solid rgba(8,145,178,0.20);
    color: #0891b2; padding: 0.15rem 0.5rem;
    text-transform: uppercase; letter-spacing: .03em;
}

/* Bottoni piccoli tabella */
.ed-btn-sm {
    display: inline-flex; align-items: center; justify-content: center;
    gap: 4px; padding: 4px 9px; font-size: 0.75rem; font-weight: 600;
    border: 1px solid; cursor: pointer; text-decoration: none;
    transition: opacity .15s;
}
.ed-btn-sm:hover { opacity: .8; text-decoration: none; }
.ed-btn-sm--outline { background: #fff; border-color: rgba(8,145,178,0.2); color: #0891b2; }
.ed-btn-sm--outline:hover { background: rgba(8,145,178,0.04); border-color: #0891b2; }

/* Stats row */
.ed-stats-grid {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.75rem;
    margin-top: 1rem; padding: 1rem;
    background: #EEEFF0; border: 1px solid #e0e1e3;
}
.ed-stat-cell { text-align: center; }
.ed-stat-label {
    font-size: 0.65rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: .04em;
    color: #6b7280; display: block; margin-bottom: 3px;
}
.ed-stat-value { font-size: 0.9rem; font-weight: 700; }
.ed-stat-value--green { color: #059669; }
.ed-stat-value--blue  { color: #2563eb; }
.ed-stat-value--red   { color: #dc2626; }

/* Document list */
.ed-doc-item {
    display: flex; align-items: center; gap: 0.75rem;
    padding: 0.65rem 0; border-bottom: 1px solid #EEEFF0;
}
.ed-doc-item:last-child { border-bottom: none; }
.ed-doc-icon {
    width: 34px; height: 34px; flex-shrink: 0;
    background: rgba(220,38,38,0.06);
    border: 1px solid rgba(220,38,38,0.15);
    display: flex; align-items: center; justify-content: center;
}
.ed-doc-icon i { font-size: 1rem; color: #dc2626; }
.ed-doc-info { flex: 1; min-width: 0; }
.ed-doc-name { font-size: 0.83rem; font-weight: 700; color: #151515; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ed-doc-meta { font-size: 0.72rem; color: #6b7280; margin-top: 2px; }
.ed-doc-actions { display: flex; gap: 6px; flex-shrink: 0; }
.ed-doc-more { padding: 0.5rem 0 0; font-size: 0.78rem; color: #6b7280; text-align: center; }
.ed-doc-more a { color: #0891b2; text-decoration: none; }
.ed-doc-more a:hover { text-decoration: underline; }

/* Audit trail */
.ed-sys-grid { display: grid; grid-template-columns: 34px 1fr; gap: 0.4rem 0.75rem; align-items: start; }
.ed-sys-icon {
    width: 34px; height: 34px;
    display: flex; align-items: center; justify-content: center;
    background: #EEEFF0; border: 1px solid #e0e1e3; flex-shrink: 0;
}
.ed-sys-icon i { font-size: 0.85rem; color: #6b7280; }
.ed-sys-label { font-size: 0.65rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #6b7280; }
.ed-sys-val   { font-size: 0.82rem; color: #151515; margin: 0; }
.ed-sys-sub   { font-size: 0.72rem; color: #9ca3af; }
.ed-sys-divider { grid-column: 1 / -1; border: none; border-top: 1px solid #e0e1e3; margin: 0.5rem 0; }

/* Action buttons */
.ed-btn {
    display: flex; align-items: center; justify-content: center;
    gap: 8px; padding: 0.55rem 1rem; font-size: 0.82rem; font-weight: 700;
    border: 2px solid; cursor: pointer; text-decoration: none;
    transition: opacity .15s; width: 100%; text-align: center;
}
.ed-btn + .ed-btn { margin-top: 0.5rem; }
.ed-btn:hover { opacity: .85; text-decoration: none; }
.ed-btn--amber     { background: #d97706; border-color: #d97706; color: #fff; }
.ed-btn--amber:hover { background: #b45309; border-color: #b45309; }
.ed-btn--secondary { background: #fff; border-color: #e0e1e3; color: #6b7280; }
.ed-btn--secondary:hover { border-color: #151515; color: #151515; }

/* Responsive */
@media (max-width: 991.98px) {
    .ed-layout { grid-template-columns: 1fr; }
    .ed-sidebar { position: static; }
    .ed-price-grid { grid-template-columns: 1fr 1fr; }
    .ed-confronto-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 575.98px) {
    .ed-price-grid { grid-template-columns: 1fr; }
    .ed-scost-rows { grid-template-columns: 1fr; }
    .ed-confronto-grid { grid-template-columns: 1fr; }
    .ed-stats-grid { grid-template-columns: 1fr; }
    .ed-fields { grid-template-columns: 1fr; }
    .ed-field-label,
    .ed-field-value { border-bottom: none; padding: 0.15rem 0; }
    .ed-field-label { padding-top: 0.5rem; }
    .ed-sys-grid { grid-template-columns: 1fr; }
    .ed-sys-icon { display: none; }
}

/* ============================================
    ELABORAZIONE > EDIT PAGE STYLES
============================================ */

.ee-page { padding: 2rem; }

@media (max-width: 575.98px) {
    .ee-page { padding: 1rem; }
}

/* Breadcrumb */
.ee-breadcrumb {
    display: flex; align-items: center; gap: 0.4rem;
    font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem;
}
.ee-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.ee-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.ee-breadcrumb .ee-sep { color: #e0e1e3; }
.ee-breadcrumb .ee-current { color: #6b7280; font-weight: 500; }

/* Header */
.ee-header { margin-bottom: 1.5rem; }
.ee-title {
    display: flex; align-items: center; gap: 0.75rem;
    font-size: 1.4rem; font-weight: 700; color: #151515;
    letter-spacing: -0.025em; margin: 0 0 0.3rem 0;
}
.ee-title-icon {
    width: 38px; height: 38px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    background: rgba(217,119,6,0.08); border: 1px solid rgba(217,119,6,0.15);
}
.ee-subtitle { font-size: 0.85rem; color: #6b7280; margin: 0; }

/* TempData alerts */
.ee-alert {
    display: flex; align-items: flex-start; gap: 0.65rem;
    padding: 0.85rem 1.25rem; font-size: 0.85rem;
    border: 1px solid #e0e1e3; border-radius: 0; margin-bottom: 1.25rem;
}
.ee-alert i { flex-shrink: 0; margin-top: 0.1rem; }
.ee-alert--success { background: rgba(5,150,105,0.05); border-left: 4px solid #059669; }
.ee-alert--success i { color: #059669; }
.ee-alert--danger  { background: rgba(220,38,38,0.04); border-left: 4px solid #dc2626; }
.ee-alert--danger  i { color: #dc2626; }
.ee-alert-close {
    background: none; border: none; cursor: pointer;
    color: #9ca3af; padding: 0; margin-left: auto; flex-shrink: 0;
}
.ee-alert-close:hover { color: #151515; }

/* Layout 2 colonne */
.ee-grid {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 1.5rem;
    align-items: start;
}
@media (max-width: 991.98px) {
    .ee-grid { grid-template-columns: 1fr; }
}

/* Sidebar sticky */
.ee-sidebar {
    position: sticky; top: 72px; z-index: 10;
}
@media (max-width: 991.98px) {
    .ee-sidebar { position: static; }
}

/* Card generica */
.ee-card {
    background: #fff; border: 1px solid #e0e1e3;
    border-radius: 0; overflow: hidden; margin-bottom: 1.5rem;
}
.ee-card:last-child { margin-bottom: 0; }
.ee-card-header {
    position: relative; padding: 0.85rem 1.25rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex; align-items: center; gap: 0.65rem;
}
.ee-card-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
}
.ee-card-header--cyan::before   { background: #0891b2; }
.ee-card-header--accent::before { background: #E34824; }
.ee-card-header--green::before  { background: #059669; }
.ee-card-header--amber::before  { background: #d97706; }

.ee-icon-box {
    width: 30px; height: 30px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    border: 1px solid;
}
.ee-icon-box--cyan   { background: rgba(8,145,178,0.08);  border-color: rgba(8,145,178,0.15);  color: #0891b2; }
.ee-icon-box--accent { background: rgba(227,72,36,0.08);  border-color: rgba(227,72,36,0.15);  color: #E34824; }
.ee-icon-box--green  { background: rgba(5,150,105,0.08);  border-color: rgba(5,150,105,0.15);  color: #059669; }
.ee-icon-box--amber  { background: rgba(217,119,6,0.08);  border-color: rgba(217,119,6,0.15);  color: #d97706; }

.ee-card-title {
    font-size: 0.85rem; font-weight: 700; color: #151515; margin: 0; flex: 1;
}
.ee-card-body { padding: 1.25rem 1.25rem 1.25rem 1.5rem; }

/* Badge contatore in header */
.ee-count-badge {
    display: inline-flex; align-items: center;
    padding: 0.15rem 0.5rem; font-size: 0.65rem; font-weight: 700;
    border-radius: 0; border: 1px solid rgba(107,114,128,0.2);
    background: rgba(107,114,128,0.06); color: #6b7280;
    text-transform: uppercase; letter-spacing: 0.03em;
}

/* Badge stato lotto */
.ee-badge {
    display: inline-flex; align-items: center; gap: 0.25rem;
    padding: 0.2rem 0.55rem; font-size: 0.68rem; font-weight: 600;
    border-radius: 0; text-transform: uppercase; letter-spacing: 0.03em;
    border: 1px solid;
}
.ee-badge--amber {
    background: rgba(217,119,6,0.06); color: #d97706;
    border-color: rgba(217,119,6,0.2);
}

/* Fields lotto */
.ee-fields { display: flex; flex-direction: column; }
.ee-field {
    display: flex; align-items: baseline; gap: 0.5rem;
    padding: 0.5rem 0; border-bottom: 1px solid #EEEFF0;
}
.ee-field:last-child { border-bottom: none; }
.ee-field-label {
    font-size: 0.68rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.04em; color: #6b7280; flex-shrink: 0; width: 110px;
}
.ee-field-value { font-size: 0.85rem; color: #151515; font-weight: 500; }
.ee-field-empty { font-size: 0.85rem; color: #9ca3af; font-style: italic; }

@media (max-width: 575.98px) {
    .ee-field { flex-direction: column; gap: 0.1rem; }
    .ee-field-label { width: auto; }
}

/* Stats preventivi */
.ee-stats {
    display: grid; grid-template-columns: repeat(3, 1fr);
    gap: 0; border-top: 1px solid #EEEFF0; margin-top: 1rem;
}
.ee-stat {
    text-align: center; padding: 0.85rem 0.5rem;
    border-right: 1px solid #EEEFF0;
}
.ee-stat:last-child { border-right: none; }
.ee-stat-num {
    font-size: 1rem; font-weight: 700; display: block; margin-bottom: 0.15rem;
}
.ee-stat-label {
    font-size: 0.65rem; font-weight: 600; text-transform: uppercase;
    letter-spacing: 0.04em; color: #6b7280;
}

/* Tabella preventivi */
.ee-table { width: 100%; border-collapse: collapse; font-size: 0.82rem; }
.ee-table thead th {
    background: #151515; color: #fff; padding: 0.55rem 0.75rem;
    font-size: 0.72rem; font-weight: 600; text-transform: uppercase;
    letter-spacing: 0.03em; border: none;
}
.ee-table thead th:last-child { text-align: center; }
.ee-table tbody tr { border-bottom: 1px solid #EEEFF0; }
.ee-table tbody tr:last-child { border-bottom: none; }
.ee-table tbody tr:hover { background: rgba(227,72,36,0.03); }
.ee-table tbody td { padding: 0.65rem 0.75rem; color: #151515; vertical-align: middle; }
.ee-table .td-right { text-align: right; }
.ee-table .td-center { text-align: center; }
.ee-table .td-fornitore strong { font-size: 0.85rem; }
.ee-table .td-fornitore small { font-size: 0.72rem; color: #9ca3af; display: block; margin-top: 0.1rem; }
.ee-table .td-importo { font-weight: 700; color: #E34824; }
.ee-table .td-nd { color: #9ca3af; font-style: italic; font-size: 0.78rem; }

/* Giorni badge */
.ee-gg-badge {
    display: inline-flex; align-items: center;
    padding: 0.15rem 0.5rem; font-size: 0.68rem; font-weight: 600;
    border-radius: 0; border: 1px solid rgba(8,145,178,0.2);
    background: rgba(8,145,178,0.06); color: #0891b2;
}

/* Bottone azione tabella */
.ee-btn-icon {
    width: 30px; height: 30px; border-radius: 0;
    display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid rgba(8,145,178,0.2); color: #0891b2;
    background: transparent; text-decoration: none; font-size: 0.85rem;
    transition: background 0.15s, border-color 0.15s;
}
.ee-btn-icon:hover { background: rgba(8,145,178,0.08); border-color: #0891b2; color: #0891b2; }
.ee-btn-icon--green { border-color: rgba(5,150,105,0.2); color: #059669; }
.ee-btn-icon--green:hover { background: rgba(5,150,105,0.08); border-color: #059669; color: #059669; }

/* Alert inline */
.ee-inline-alert {
    display: flex; align-items: flex-start; gap: 0.5rem;
    padding: 0.75rem 1rem; font-size: 0.82rem;
    border: 1px solid #e0e1e3; border-radius: 0;
}
.ee-inline-alert i { flex-shrink: 0; margin-top: 0.1rem; }
.ee-inline-alert--warning { background: rgba(217,119,6,0.04); border-left: 4px solid #d97706; }
.ee-inline-alert--warning i { color: #d97706; }
.ee-inline-alert--info    { background: rgba(8,145,178,0.04); border-left: 4px solid #0891b2; }
.ee-inline-alert--info    i { color: #0891b2; }
.ee-inline-alert a { color: #E34824; font-weight: 500; }
.ee-inline-alert a:hover { color: #c93d1e; }

/* Lista documenti */
.ee-doc-item {
    display: flex; align-items: center; gap: 0.75rem;
    padding: 0.65rem 0; border-bottom: 1px solid #EEEFF0;
}
.ee-doc-item:last-child { border-bottom: none; }
.ee-doc-icon { color: #dc2626; flex-shrink: 0; font-size: 1.1rem; }
.ee-doc-info { flex: 1; min-width: 0; }
.ee-doc-name { font-size: 0.82rem; font-weight: 600; color: #151515; }
.ee-doc-meta { font-size: 0.68rem; color: #9ca3af; margin-top: 0.1rem; }
.ee-doc-actions { display: flex; gap: 0.25rem; flex-shrink: 0; }

/* More docs link */
.ee-more-link { font-size: 0.72rem; color: #E34824; text-decoration: none; font-weight: 500; }
.ee-more-link:hover { color: #c93d1e; text-decoration: underline; }

/* Bottone outline pieno larghezza */
.ee-btn-outline-full {
    display: flex; align-items: center; justify-content: center; gap: 0.4rem;
    padding: 0.5rem 1rem; width: 100%; font-size: 0.82rem; font-weight: 600;
    border: 1px solid rgba(8,145,178,0.2); color: #0891b2;
    background: transparent; border-radius: 0; text-decoration: none;
    transition: background 0.15s, border-color 0.15s; margin-top: 0.75rem;
}
.ee-btn-outline-full:hover { background: rgba(8,145,178,0.06); border-color: #0891b2; color: #0891b2; }

/* ── Sidebar Destra ── */

/* Form labels */
.ee-form-section-title {
    font-size: 0.78rem; font-weight: 600; color: #6b7280;
    text-transform: uppercase; letter-spacing: 0.03em;
    display: flex; align-items: center; gap: 0.4rem;
    margin-bottom: 0.65rem;
}
.ee-form-section-title i { color: #E34824; }
.ee-separator { border-top: 1px solid #EEEFF0; margin: 1.1rem 0; }

.ee-form-label {
    font-size: 0.78rem; font-weight: 600; text-transform: uppercase;
    letter-spacing: 0.04em; color: #151515; display: block; margin-bottom: 0.35rem;
}
.ee-form-label .ee-opt { font-weight: 400; text-transform: none; color: #9ca3af; font-size: 0.72rem; }
.ee-form-label .ee-req { color: #dc2626; margin-left: 0.1rem; }
.ee-required { color: #dc2626; }

.ee-input-group { display: flex; }
.ee-input-prefix {
    display: flex; align-items: center; padding: 0 0.65rem;
    background: #EEEFF0; border: 1px solid #e0e1e3; border-right: none;
    font-size: 0.85rem; color: #6b7280; flex-shrink: 0;
}
.ee-form-control {
    border: 1px solid #e0e1e3; border-radius: 0; font-size: 0.85rem;
    padding: 0.5rem 0.65rem; flex: 1; width: 100%;
    transition: border-color 0.2s, box-shadow 0.2s;
    background: #fff; color: #151515;
}
.ee-form-control:focus {
    outline: none; border-color: #E34824;
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}
.ee-form-text {
    font-size: 0.7rem; color: #9ca3af; margin-top: 0.25rem;
    display: flex; align-items: center; gap: 0.25rem;
}
.ee-validation { color: #dc2626; font-size: 0.7rem; margin-top: 0.2rem; display: block; }
.ee-form-group { margin-bottom: 1rem; }

/* Suggerimento box */
.ee-suggest-box {
    background: rgba(8,145,178,0.04); border-left: 3px solid #0891b2;
    padding: 0.6rem 0.85rem; font-size: 0.8rem; color: #151515;
    margin-bottom: 1rem;
}
.ee-suggest-box i { color: #0891b2; }
.ee-suggest-sub { font-size: 0.72rem; color: #6b7280; margin-top: 0.15rem; }

/* Riepilogo calcoli */
.ee-riepilogo {
    background: rgba(107,114,128,0.03); border: 1px solid #EEEFF0;
    padding: 0.85rem 1rem; margin-top: 0.5rem;
}
.ee-riepilogo-title {
    font-size: 0.72rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.04em; color: #6b7280;
    display: flex; align-items: center; gap: 0.35rem; margin-bottom: 0.6rem;
}
.ee-riepilogo-row {
    display: flex; justify-content: space-between; align-items: center;
    padding: 0.3rem 0; border-bottom: 1px solid #EEEFF0; font-size: 0.78rem;
}
.ee-riepilogo-row:last-child { border-bottom: none; }
.ee-riepilogo-label { color: #6b7280; }
.ee-riepilogo-val { font-weight: 700; }

/* Card azioni */
.ee-actions { display: flex; flex-direction: column; gap: 0.5rem; }
.ee-btn {
    display: flex; align-items: center; justify-content: center; gap: 0.4rem;
    padding: 0.6rem 1rem; font-size: 0.85rem; font-weight: 600;
    border-radius: 0; border: 2px solid; cursor: pointer;
    text-decoration: none; transition: background 0.2s, border-color 0.2s, box-shadow 0.2s;
    width: 100%;
}
.ee-btn--accent {
    background: #E34824; color: #fff; border-color: #E34824;
}
.ee-btn--accent:hover { background: #c93d1e; border-color: #c93d1e; box-shadow: 0 2px 8px rgba(227,72,36,0.2); color: #fff; }
.ee-btn--green {
    background: #059669; color: #fff; border-color: #059669;
}
.ee-btn--green:hover { background: #047857; border-color: #047857; box-shadow: 0 2px 8px rgba(5,150,105,0.2); color: #fff; }
.ee-btn--amber {
    background: transparent; color: #d97706; border-color: rgba(217,119,6,0.3);
}
.ee-btn--amber:hover { background: rgba(217,119,6,0.06); border-color: #d97706; color: #d97706; }
.ee-btn--secondary {
    background: transparent; color: #6b7280; border-color: #e0e1e3;
}
.ee-btn--secondary:hover { border-color: #151515; color: #151515; text-decoration: none; }

/* Legenda azioni */
.ee-legend {
    background: rgba(107,114,128,0.03); border: 1px solid #EEEFF0;
    padding: 0.75rem 0.9rem; margin-top: 0.75rem;
}
.ee-legend-row { font-size: 0.72rem; color: #6b7280; line-height: 1.6; }
.ee-legend-row strong { color: #151515; }

/* ── Modal Annulla ── */
.ee-modal-overlay {
    display: none; position: fixed; inset: 0;
    background: rgba(21,21,21,0.5); z-index: 1060;
    align-items: center; justify-content: center;
}
.ee-modal-overlay.open { display: flex; }
.ee-modal {
    background: #fff; border: 1px solid #e0e1e3;
    border-radius: 0; width: 100%; max-width: 460px;
    margin: 1rem; overflow: hidden;
}
.ee-modal-header {
    position: relative; padding: 1rem 1.25rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex; align-items: center; justify-content: space-between;
}
.ee-modal-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0;
    width: 4px; background: #d97706;
}
.ee-modal-title { font-size: 0.9rem; font-weight: 700; color: #151515; }
.ee-modal-close {
    background: none; border: none; cursor: pointer;
    color: #9ca3af; font-size: 1.1rem; padding: 0;
}
.ee-modal-close:hover { color: #151515; }
.ee-modal-body { padding: 1.25rem 1.5rem; }
.ee-modal-body p { font-size: 0.85rem; color: #151515; margin-bottom: 0.75rem; }
.ee-modal-body .ee-modal-list {
    margin: 0 0 0.75rem 0; padding: 0; list-style: none;
    display: flex; flex-direction: column; gap: 0.3rem;
}
.ee-modal-body .ee-modal-list li {
    font-size: 0.82rem; color: #6b7280;
    display: flex; align-items: flex-start; gap: 0.45rem;
}
.ee-modal-body .ee-modal-list li::before {
    content: ''; width: 5px; height: 5px; border-radius: 50%;
    background: #d97706; flex-shrink: 0; margin-top: 0.45rem;
}
.ee-modal-body .ee-modal-list li strong { color: #151515; }
.ee-modal-danger { font-size: 0.82rem; color: #dc2626; font-weight: 600; }
.ee-modal-footer {
    padding: 0.85rem 1.25rem; border-top: 1px solid #e0e1e3;
    background: #EEEFF0;
    display: flex; align-items: center; justify-content: flex-end; gap: 0.5rem;
    flex-wrap: wrap;
}
.ee-modal-btn {
    display: inline-flex; align-items: center; gap: 0.35rem;
    padding: 0.5rem 1.25rem; font-size: 0.82rem; font-weight: 600;
    border-radius: 0; border: 2px solid; cursor: pointer;
    text-decoration: none; transition: background 0.2s, border-color 0.2s;
}
.ee-modal-btn--secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.ee-modal-btn--secondary:hover { border-color: #151515; color: #151515; }
.ee-modal-btn--amber { background: #d97706; color: #fff; border-color: #d97706; }
.ee-modal-btn--amber:hover { background: #b45309; border-color: #b45309; }

@media (max-width: 575.98px) {
    .ee-modal-footer { flex-direction: column-reverse; }
    .ee-modal-btn { width: 100%; justify-content: center; }
}

/* ============================================
    GARE > CREATE PAGE STYLES
============================================ */

/* ========== PAGE ========== */
.gc-page { padding: 2rem; }

/* ========== BREADCRUMB ========== */
.gc-breadcrumb {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.75rem;
    font-size: 0.8rem;
}
.gc-breadcrumb a {
    color: #E34824;
    text-decoration: none;
    font-weight: 500;
    transition: color 0.15s;
}
.gc-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.gc-breadcrumb .gc-sep { color: #e0e1e3; }
.gc-breadcrumb .gc-current { color: #6b7280; font-weight: 500; }

/* ========== HEADER ========== */
.gc-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 2rem;
    gap: 1rem;
    flex-wrap: wrap;
}
.gc-header-left h1 {
    font-size: 1.5rem;
    font-weight: 700;
    color: #151515;
    margin: 0 0 0.25rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.gc-header-left h1 svg { color: #E34824; flex-shrink: 0; }
.gc-header-left p { font-size: 0.85rem; color: #6b7280; margin: 0; }

/* ========== BUTTONS ========== */
.gc-btn {
    background: #E34824;
    color: #fff;
    border: 2px solid #E34824;
    padding: 0.55rem 1.5rem;
    font-weight: 600;
    font-size: 0.85rem;
    border-radius: 0;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    transition: all 0.2s;
    cursor: pointer;
}
.gc-btn:hover {
    background: #c93d1e;
    border-color: #c93d1e;
    color: #fff;
    box-shadow: 0 2px 8px rgba(227,72,36,0.2);
}
.gc-btn-lg {
    padding: 0.75rem 2rem;
    font-size: 0.95rem;
    width: 100%;
    justify-content: center;
}
.gc-btn-success {
    background: #059669;
    border-color: #059669;
}
.gc-btn-success:hover {
    background: #047857;
    border-color: #047857;
    box-shadow: 0 2px 8px rgba(5,150,105,0.25);
}
.gc-btn-secondary {
    background: transparent;
    color: #6b7280;
    border: 2px solid #e0e1e3;
    padding: 0.55rem 1.5rem;
    font-weight: 600;
    font-size: 0.85rem;
    border-radius: 0;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    transition: all 0.2s;
    cursor: pointer;
    justify-content: center;
    width: 100%;
}
.gc-btn-secondary:hover {
    border-color: #151515;
    color: #151515;
}

/* ========== CARD ========== */
.gc-card {
    background: #fff;
    border: 1px solid #e0e1e3;
    border-radius: 0;
    margin-bottom: 1.5rem;
    overflow: hidden;
}
.gc-card-header {
    padding: 1rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex;
    align-items: center;
    gap: 0.6rem;
    position: relative;
}
.gc-card-header::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
}
/* Color variants for accent bar */
.gc-card-header--primary::before   { background: #E34824; }
.gc-card-header--info::before      { background: #0891b2; }
.gc-card-header--secondary::before { background: #6b7280; }
.gc-card-header--warning::before   { background: #d97706; }
.gc-card-header--success::before   { background: #059669; }

.gc-card-header-icon {
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.gc-card-header--primary .gc-card-header-icon   { background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15); }
.gc-card-header--primary .gc-card-header-icon svg { color: #E34824; }
.gc-card-header--info .gc-card-header-icon       { background: rgba(8,145,178,0.08); border: 1px solid rgba(8,145,178,0.15); }
.gc-card-header--info .gc-card-header-icon svg   { color: #0891b2; }
.gc-card-header--secondary .gc-card-header-icon       { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); }
.gc-card-header--secondary .gc-card-header-icon svg   { color: #6b7280; }
.gc-card-header--warning .gc-card-header-icon    { background: rgba(217,119,6,0.08); border: 1px solid rgba(217,119,6,0.15); }
.gc-card-header--warning .gc-card-header-icon svg { color: #d97706; }
.gc-card-header--success .gc-card-header-icon    { background: rgba(5,150,105,0.08); border: 1px solid rgba(5,150,105,0.15); }
.gc-card-header--success .gc-card-header-icon svg { color: #059669; }

.gc-card-header h2 {
    font-size: 0.9rem;
    font-weight: 700;
    color: #151515;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.gc-card-body {
    padding: 1.5rem;
    padding-left: calc(1.5rem + 4px);
}

/* Required badge */
.gc-badge-required {
    font-size: 0.6rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 0.2rem 0.5rem;
    background: rgba(227,72,36,0.08);
    color: #E34824;
    border: 1px solid rgba(227,72,36,0.15);
    border-radius: 0;
}
.gc-badge-opt {
    font-size: 0.65rem;
    font-weight: 500;
    color: #9ca3af;
}

/* ========== FORM ========== */
.gc-form .form-label {
    font-size: 0.8rem;
    font-weight: 600;
    color: #151515;
    margin-bottom: 0.3rem;
}
.gc-form .form-label .text-danger {
    color: #E34824 !important;
    font-weight: 700;
}
.gc-form .form-control,
.gc-form .form-select {
    border-radius: 0;
    border: 1px solid #e0e1e3;
    font-size: 0.85rem;
    padding: 0.55rem 0.8rem;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.gc-form .form-control:focus,
.gc-form .form-select:focus {
    border-color: #E34824;
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}
.gc-form textarea.form-control { resize: vertical; }
.gc-form .text-danger { font-size: 0.72rem; }
.gc-form small, .gc-form .form-text { font-size: 0.72rem; color: #9ca3af; }
.gc-form .input-group-text {
    border-radius: 0;
    border: 1px solid #e0e1e3;
    background: #EEEFF0;
    font-size: 0.85rem;
    font-weight: 600;
    color: #151515;
}
.gc-form .form-check-input {
    border-radius: 0;
    border: 1px solid #e0e1e3;
}
.gc-form .form-check-input:checked {
    background-color: #E34824;
    border-color: #E34824;
}
.gc-form .form-check-input:focus {
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
    border-color: #E34824;
}
.gc-form .form-check-label { font-size: 0.85rem; color: #151515; }

/* ========== INFO BOX ========== */
.gc-info-box {
    background: rgba(8,145,178,0.04);
    border: 1px solid rgba(8,145,178,0.12);
    border-left: 4px solid #0891b2;
    border-radius: 0;
    padding: 1rem 1.25rem;
    font-size: 0.8rem;
    color: #151515;
}
.gc-info-box strong { font-weight: 700; }
.gc-info-box ul {
    margin: 0.5rem 0 0;
    padding-left: 1.1rem;
    color: #6b7280;
}
.gc-info-box li { margin-bottom: 0.15rem; }
.gc-info-box .text-danger { color: #E34824 !important; font-size: 0.8rem; }

/* Alert secondary for empty state */
.gc-alert-muted {
    background: #EEEFF0;
    border: 1px solid #e0e1e3;
    border-left: 4px solid #6b7280;
    border-radius: 0;
    padding: 0.85rem 1.25rem;
    font-size: 0.8rem;
    color: #6b7280;
}

/* Validation summary */
.gc-form .alert-danger {
    border-radius: 0;
    border: 1px solid #e0e1e3;
    border-left: 4px solid #E34824;
    background: rgba(227,72,36,0.04);
}

/* Sticky sidebar */
.gc-sticky { position: sticky; top: 72px; z-index: 10; }

/* Separator */
.gc-sep-line {
    border: none;
    border-top: 1px solid #EEEFF0;
    margin: 1rem 0;
}

/* Actions grid */
.gc-actions-grid { display: flex; flex-direction: column; gap: 0.5rem; }

@media (max-width: 991.98px) {
    .gc-sticky { position: static; }
    .gc-header { flex-direction: column; }
}

/* ============================================
    GARE > DETAILS PAGE STYLES
============================================ */

/* ========== PAGE ========== */
.gd-page { padding: 2rem; }

/* ========== BREADCRUMB ========== */
.gd-breadcrumb {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.75rem;
    font-size: 0.8rem;
}
.gd-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; transition: color 0.15s; }
.gd-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.gd-breadcrumb .gd-sep { color: #e0e1e3; }
.gd-breadcrumb .gd-current { color: #6b7280; font-weight: 500; }

/* ========== HEADER ========== */
.gd-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 2rem;
    gap: 1rem;
    flex-wrap: wrap;
}
.gd-header-left h1 {
    font-size: 1.4rem;
    font-weight: 700;
    color: #151515;
    margin: 0 0 0.5rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.gd-header-left h1 svg { color: #E34824; flex-shrink: 0; }
.gd-badges { display: flex; align-items: center; gap: 0.4rem; flex-wrap: wrap; }

/* ========== BADGES ========== */
.gd-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.25rem 0.6rem;
    font-size: 0.7rem;
    font-weight: 600;
    border-radius: 0;
    letter-spacing: 0.02em;
}
.gd-badge-stato { }
.gd-badge-tipo   { background: #EEEFF0; color: #151515; border: 1px solid #e0e1e3; }
.gd-badge-warn   { background: rgba(217,119,6,0.08); color: #d97706; border: 1px solid rgba(217,119,6,0.15); }
.gd-badge-danger  { background: rgba(220,38,38,0.08); color: #dc2626; border: 1px solid rgba(220,38,38,0.15); }
.gd-badge-success { background: rgba(5,150,105,0.08); color: #059669; border: 1px solid rgba(5,150,105,0.15); }
.gd-badge-info    { background: rgba(8,145,178,0.08); color: #0891b2; border: 1px solid rgba(8,145,178,0.15); }
.gd-badge-dark    { background: #151515; color: #fff; }
.gd-badge-primary { background: rgba(227,72,36,0.08); color: #E34824; border: 1px solid rgba(227,72,36,0.15); }
.gd-badge-secondary { background: #EEEFF0; color: #6b7280; border: 1px solid #e0e1e3; }
.gd-badge-white-on-dark { background: #fff; color: #E34824; font-weight: 700; padding: 0.15rem 0.5rem; }

/* ========== BUTTONS ========== */
.gd-btn {
    background: #E34824; color: #fff; border: 2px solid #E34824;
    padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem;
    border-radius: 0; text-decoration: none; display: inline-flex;
    align-items: center; gap: 0.4rem; transition: all 0.2s; cursor: pointer;
}
.gd-btn:hover { background: #c93d1e; border-color: #c93d1e; color: #fff; box-shadow: 0 2px 8px rgba(227,72,36,0.2); }
.gd-btn-secondary {
    background: transparent; color: #6b7280; border: 2px solid #e0e1e3;
    padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem;
    border-radius: 0; text-decoration: none; display: inline-flex;
    align-items: center; gap: 0.4rem; transition: all 0.2s; cursor: pointer;
}
.gd-btn-secondary:hover { border-color: #151515; color: #151515; }
.gd-btn-warn {
    background: #d97706; color: #fff; border: 2px solid #d97706;
    padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem;
    border-radius: 0; text-decoration: none; display: inline-flex;
    align-items: center; gap: 0.4rem; transition: all 0.2s; cursor: pointer;
    width: 100%; justify-content: center;
}
.gd-btn-warn:hover { background: #b45309; border-color: #b45309; color: #fff; }
.gd-btn-success {
    background: #059669; color: #fff; border: 2px solid #059669;
    padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem;
    border-radius: 0; text-decoration: none; display: inline-flex;
    align-items: center; gap: 0.4rem; transition: all 0.2s; cursor: pointer;
    width: 100%; justify-content: center;
}
.gd-btn-success:hover { background: #047857; border-color: #047857; color: #fff; }
.gd-btn-info {
    background: #0891b2; color: #fff; border: 2px solid #0891b2;
    padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem;
    border-radius: 0; text-decoration: none; display: inline-flex;
    align-items: center; gap: 0.4rem; transition: all 0.2s; cursor: pointer;
    width: 100%; justify-content: center;
}
.gd-btn-info:hover { background: #0e7490; border-color: #0e7490; color: #fff; }
.gd-btn-sm {
    padding: 0.35rem 0.85rem; font-size: 0.75rem;
    width: auto;
}
.gd-actions-group { display: flex; gap: 0.4rem; }

/* ========== CARD ========== */
.gd-card {
    background: #fff; border: 1px solid #e0e1e3;
    border-radius: 0; margin-bottom: 1.5rem; overflow: hidden;
}
.gd-card-header {
    padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3;
    display: flex; align-items: center; gap: 0.6rem; position: relative;
}
.gd-card-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
}
.gd-card-header--primary::before   { background: #E34824; }
.gd-card-header--info::before      { background: #0891b2; }
.gd-card-header--secondary::before { background: #6b7280; }
.gd-card-header--warning::before   { background: #d97706; }
.gd-card-header--success::before   { background: #059669; }
.gd-card-header--dark::before      { background: #151515; }

.gd-card-header-icon {
    width: 34px; height: 34px;
    display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.gd-card-header--primary .gd-card-header-icon   { background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15); }
.gd-card-header--primary .gd-card-header-icon svg { color: #E34824; }
.gd-card-header--info .gd-card-header-icon       { background: rgba(8,145,178,0.08); border: 1px solid rgba(8,145,178,0.15); }
.gd-card-header--info .gd-card-header-icon svg   { color: #0891b2; }
.gd-card-header--secondary .gd-card-header-icon       { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); }
.gd-card-header--secondary .gd-card-header-icon svg   { color: #6b7280; }
.gd-card-header--warning .gd-card-header-icon    { background: rgba(217,119,6,0.08); border: 1px solid rgba(217,119,6,0.15); }
.gd-card-header--warning .gd-card-header-icon svg { color: #d97706; }
.gd-card-header--success .gd-card-header-icon    { background: rgba(5,150,105,0.08); border: 1px solid rgba(5,150,105,0.15); }
.gd-card-header--success .gd-card-header-icon svg { color: #059669; }
.gd-card-header--dark .gd-card-header-icon       { background: rgba(21,21,21,0.08); border: 1px solid rgba(21,21,21,0.15); }
.gd-card-header--dark .gd-card-header-icon svg   { color: #151515; }

.gd-card-header h2 {
    font-size: 0.9rem; font-weight: 700; color: #151515;
    margin: 0; flex: 1; display: flex; align-items: center; gap: 0.5rem;
}
.gd-card-body { padding: 1.5rem; padding-left: calc(1.5rem + 4px); }
.gd-card-body-flush { padding: 0; }

/* ========== FIELD ROWS (read-only) ========== */
.gd-fields { display: flex; flex-wrap: wrap; gap: 0; }
.gd-field {
    padding: 0.85rem 1rem 0.85rem calc(1rem + 4px);
    border-bottom: 1px solid #EEEFF0;
}
.gd-field:last-child { border-bottom: none; }
.gd-field-label {
    font-size: 0.7rem; font-weight: 600; text-transform: uppercase;
    letter-spacing: 0.05em; color: #6b7280; margin-bottom: 0.2rem;
}
.gd-field-value { font-size: 0.85rem; font-weight: 500; color: #151515; }
.gd-field-value code {
    background: #EEEFF0; padding: 0.15rem 0.4rem;
    font-size: 0.8rem; color: #E34824; border: 1px solid #e0e1e3;
    border-radius: 0;
}
.gd-field-value a { color: #E34824; text-decoration: none; transition: color 0.15s; }
.gd-field-value a:hover { color: #c93d1e; text-decoration: underline; }
.gd-field-muted { color: #9ca3af; }

/* ========== TABLE ========== */
.gd-table-wrap { overflow-x: auto; }
.gd-table { width: 100%; margin: 0; border-collapse: collapse; }
.gd-table thead th {
    background: #151515; color: #fff;
    font-size: 0.72rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.04em;
    padding: 0.8rem 1rem; border: none; white-space: nowrap;
}
.gd-table tbody td {
    padding: 0.8rem 1rem; font-size: 0.85rem; color: #151515;
    border-bottom: 1px solid #EEEFF0; vertical-align: middle;
}
.gd-table tbody tr { transition: background 0.15s; }
.gd-table tbody tr:hover { background: rgba(227,72,36,0.03); }
.gd-table tbody tr:last-child td { border-bottom: none; }
.gd-title-cell { max-width: 250px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ========== ALERTS ========== */
.gd-alert {
    border-radius: 0; border: 1px solid #e0e1e3;
    padding: 0.85rem 1.25rem; font-size: 0.85rem;
    display: flex; align-items: center; gap: 0.5rem; margin-bottom: 1rem;
}
.gd-alert-success { background: rgba(5,150,105,0.05); border-left: 4px solid #059669; color: #151515; }
.gd-alert-success svg, .gd-alert-success i { color: #059669; flex-shrink: 0; }
.gd-alert-danger  { background: rgba(220,38,38,0.04); border-left: 4px solid #E34824; color: #151515; }
.gd-alert-danger svg, .gd-alert-danger i { color: #E34824; flex-shrink: 0; }
.gd-alert-warn    { background: rgba(217,119,6,0.05); border-left: 4px solid #d97706; color: #151515; }
.gd-alert-warn i  { color: #d97706; flex-shrink: 0; }
.gd-alert-info    { background: rgba(8,145,178,0.04); border-left: 4px solid #0891b2; color: #151515; }
.gd-alert-info i  { color: #0891b2; flex-shrink: 0; }

/* ========== STATS GRID ========== */
.gd-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; }
.gd-stat-box {
    background: #EEEFF0; padding: 1rem; text-align: center;
    border: 1px solid #e0e1e3;
}
.gd-stat-num { font-size: 1.75rem; font-weight: 700; line-height: 1; margin-bottom: 0.25rem; }
.gd-stat-label { font-size: 0.7rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; }
.gd-stat-primary { color: #E34824; }
.gd-stat-success { color: #059669; }
.gd-stat-danger  { color: #dc2626; }
.gd-stat-warn    { color: #d97706; }

/* ========== PROGRESS BAR ========== */
.gd-progress-wrap { margin: 1rem 0 0.5rem; }
.gd-progress-track {
    height: 8px; background: #EEEFF0; width: 100%;
    border: 1px solid #e0e1e3; overflow: hidden;
}
.gd-progress-bar { height: 100%; transition: width 0.4s ease; }
.gd-progress-bar--success { background: #059669; }
.gd-progress-bar--warn    { background: #d97706; }
.gd-progress-label {
    font-size: 0.75rem; font-weight: 600; color: #151515;
    text-align: center; margin-top: 0.3rem;
}

/* ========== CHECKLIST ITEMS ========== */
.gd-checklist-item {
    display: flex; align-items: flex-start; gap: 0.75rem;
    padding: 0.75rem; border: 1px solid #e0e1e3;
    margin-bottom: 0.5rem; transition: border-color 0.2s;
}
.gd-checklist-item--ok { border-left: 3px solid #059669; background: rgba(5,150,105,0.03); }
.gd-checklist-item--miss { border-left: 3px solid #e0e1e3; }
.gd-checklist-icon { flex-shrink: 0; margin-top: 0.1rem; }
.gd-checklist-icon--ok { color: #059669; }
.gd-checklist-icon--miss { color: #9ca3af; }
.gd-checklist-text { flex: 1; min-width: 0; }
.gd-checklist-text strong { font-size: 0.85rem; color: #151515; }
.gd-checklist-text small { font-size: 0.72rem; color: #9ca3af; display: block; }
.gd-checklist-text .gd-miss-label { font-size: 0.72rem; color: #dc2626; font-weight: 600; }

/* ========== EMPTY STATE ========== */
.gd-empty { padding: 3rem 2rem; text-align: center; }
.gd-empty svg, .gd-empty i { color: #e0e1e3; font-size: 3rem; margin-bottom: 0.75rem; }
.gd-empty p { font-size: 0.85rem; color: #6b7280; margin: 0 0 0.75rem; }

/* ========== SYSTEM INFO ========== */
.gd-sys-item { margin-bottom: 0.75rem; }
.gd-sys-item:last-child { margin-bottom: 0; }
.gd-sys-label { font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; margin-bottom: 0.1rem; }
.gd-sys-value { font-size: 0.8rem; color: #151515; }
.gd-sys-sub { font-size: 0.75rem; color: #9ca3af; }
.gd-sep-line { border: none; border-top: 1px solid #EEEFF0; margin: 0.75rem 0; }

/* ========== ACTION BUTTONS (sidebar) ========== */
.gd-action-grid { display: flex; flex-direction: column; gap: 0.5rem; }

/* Small action btn */
.gd-act-btn {
    width: 32px; height: 32px;
    display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid #e0e1e3; background: #fff; color: #6b7280;
    border-radius: 0; cursor: pointer; transition: all 0.15s;
    font-size: 0.85rem; text-decoration: none; padding: 0;
}
.gd-act-btn:hover { border-color: #E34824; color: #E34824; background: rgba(227,72,36,0.04); }

/* Sticky sidebar */
.gd-sticky { position: sticky; top: 72px; z-index: 10; }

@media (max-width: 991.98px) {
    .gd-header { flex-direction: column; }
    .gd-sticky { position: static; }
    .gd-stats { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 575.98px) {
    .gd-field { width: 100% !important; }
}

/* ============================================
    GARE > EDIT PAGE STYLES
============================================ */

/* ========== PAGE ========== */
.ge-page { padding: 2rem; }

/* ========== BREADCRUMB ========== */
.ge-breadcrumb { display: flex; align-items: center; gap: 0.4rem; margin-bottom: 0.75rem; font-size: 0.8rem; }
.ge-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; transition: color 0.15s; }
.ge-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.ge-breadcrumb .ge-sep { color: #e0e1e3; }
.ge-breadcrumb .ge-current { color: #6b7280; font-weight: 500; }

/* ========== HEADER ========== */
.ge-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 2rem; gap: 1rem; flex-wrap: wrap; }
.ge-header-left h1 { font-size: 1.5rem; font-weight: 700; color: #151515; margin: 0 0 0.25rem; display: flex; align-items: center; gap: 0.5rem; }
.ge-header-left h1 svg { color: #E34824; flex-shrink: 0; }
.ge-header-left p { font-size: 0.85rem; color: #6b7280; margin: 0; }

/* ========== BUTTONS ========== */
.ge-btn { background: #E34824; color: #fff; border: 2px solid #E34824; padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem; transition: all 0.2s; cursor: pointer; }
.ge-btn:hover { background: #c93d1e; border-color: #c93d1e; color: #fff; box-shadow: 0 2px 8px rgba(227,72,36,0.2); }
.ge-btn-lg { padding: 0.75rem 2rem; font-size: 0.95rem; width: 100%; justify-content: center; }
.ge-btn-warn { background: #d97706; border-color: #d97706; }
.ge-btn-warn:hover { background: #b45309; border-color: #b45309; box-shadow: 0 2px 8px rgba(217,119,6,0.25); }
.ge-btn-secondary { background: transparent; color: #6b7280; border: 2px solid #e0e1e3; padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem; transition: all 0.2s; cursor: pointer; justify-content: center; width: 100%; }
.ge-btn-secondary:hover { border-color: #151515; color: #151515; }

/* ========== CARD ========== */
.ge-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; margin-bottom: 1.5rem; overflow: hidden; }
.ge-card-header { padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.6rem; position: relative; }
.ge-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.ge-card-header--primary::before   { background: #E34824; }
.ge-card-header--info::before      { background: #0891b2; }
.ge-card-header--secondary::before { background: #6b7280; }
.ge-card-header--warning::before   { background: #d97706; }
.ge-card-header--light::before     { background: #e0e1e3; }
.ge-card-header-icon { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ge-card-header--primary .ge-card-header-icon   { background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15); }
.ge-card-header--primary .ge-card-header-icon svg { color: #E34824; }
.ge-card-header--info .ge-card-header-icon       { background: rgba(8,145,178,0.08); border: 1px solid rgba(8,145,178,0.15); }
.ge-card-header--info .ge-card-header-icon svg   { color: #0891b2; }
.ge-card-header--secondary .ge-card-header-icon       { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); }
.ge-card-header--secondary .ge-card-header-icon svg   { color: #6b7280; }
.ge-card-header--warning .ge-card-header-icon    { background: rgba(217,119,6,0.08); border: 1px solid rgba(217,119,6,0.15); }
.ge-card-header--warning .ge-card-header-icon svg { color: #d97706; }
.ge-card-header--light .ge-card-header-icon      { background: rgba(107,114,128,0.06); border: 1px solid #e0e1e3; }
.ge-card-header--light .ge-card-header-icon svg  { color: #6b7280; }
.ge-card-header h2 { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; display: flex; align-items: center; gap: 0.5rem; }
.ge-card-body { padding: 1.5rem; padding-left: calc(1.5rem + 4px); }

/* Required badge */
.ge-badge-req { font-size: 0.6rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; padding: 0.2rem 0.5rem; background: rgba(227,72,36,0.08); color: #E34824; border: 1px solid rgba(227,72,36,0.15); border-radius: 0; }

/* ========== FORM ========== */
.ge-form .form-label { font-size: 0.8rem; font-weight: 600; color: #151515; margin-bottom: 0.3rem; }
.ge-form .form-label .text-danger { color: #E34824 !important; font-weight: 700; }
.ge-form .form-control, .ge-form .form-select { border-radius: 0; border: 1px solid #e0e1e3; font-size: 0.85rem; padding: 0.55rem 0.8rem; transition: border-color 0.2s, box-shadow 0.2s; }
.ge-form .form-control:focus, .ge-form .form-select:focus { border-color: #E34824; box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
.ge-form textarea.form-control { resize: vertical; }
.ge-form .text-danger { font-size: 0.72rem; }
.ge-form small, .ge-form .form-text { font-size: 0.72rem; color: #9ca3af; }
.ge-form .input-group-text { border-radius: 0; border: 1px solid #e0e1e3; background: #EEEFF0; font-size: 0.85rem; font-weight: 600; color: #151515; }
.ge-form .form-check-input { border-radius: 0; border: 1px solid #e0e1e3; }
.ge-form .form-check-input:checked { background-color: #E34824; border-color: #E34824; }
.ge-form .form-check-input:focus { box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); border-color: #E34824; }
.ge-form .form-check-label { font-size: 0.85rem; color: #151515; }

/* Alert / Info */
.ge-info-box { background: rgba(8,145,178,0.04); border: 1px solid rgba(8,145,178,0.12); border-left: 4px solid #0891b2; border-radius: 0; padding: 1rem 1.25rem; font-size: 0.8rem; color: #151515; }
.ge-info-box strong { font-weight: 700; }
.ge-info-box ul { margin: 0.5rem 0 0; padding-left: 1.1rem; color: #6b7280; }
.ge-info-box li { margin-bottom: 0.15rem; }
.ge-info-box .text-danger { color: #E34824 !important; font-size: 0.8rem; }
.ge-info-box .text-warning { color: #d97706 !important; }

.ge-alert-warn { background: rgba(217,119,6,0.05); border: 1px solid rgba(217,119,6,0.12); border-left: 4px solid #d97706; border-radius: 0; padding: 0.85rem 1.25rem; font-size: 0.85rem; color: #151515; display: flex; align-items: center; gap: 0.5rem; margin-bottom: 1rem; }
.ge-alert-warn i { color: #d97706; flex-shrink: 0; }

.ge-alert-muted { background: #EEEFF0; border: 1px solid #e0e1e3; border-left: 4px solid #6b7280; border-radius: 0; padding: 0.85rem 1.25rem; font-size: 0.8rem; color: #6b7280; }
.ge-form .alert-danger { border-radius: 0; border: 1px solid #e0e1e3; border-left: 4px solid #E34824; background: rgba(227,72,36,0.04); }

/* System info */
.ge-sys-item { margin-bottom: 0.6rem; }
.ge-sys-item:last-child { margin-bottom: 0; }
.ge-sys-label { font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; margin-bottom: 0.1rem; }
.ge-sys-value { font-size: 0.8rem; color: #151515; }
.ge-sys-sub { font-size: 0.75rem; color: #9ca3af; }
.ge-sep-line { border: none; border-top: 1px solid #EEEFF0; margin: 0.75rem 0; }
.ge-badge-lotti { display: inline-block; background: #E34824; color: #fff; font-size: 0.7rem; font-weight: 700; padding: 0.15rem 0.5rem; border-radius: 0; }

/* Sticky + actions */
.ge-sticky { position: sticky; top: 72px; z-index: 10; }
.ge-actions-grid { display: flex; flex-direction: column; gap: 0.5rem; }

@media (max-width: 991.98px) {
    .ge-sticky { position: static; }
    .ge-header { flex-direction: column; }
}

/* ============================================
    LOTTI > CREATE PAGE STYLES
============================================ */

.lc-page { padding: 2rem; }
.lc-breadcrumb { display: flex; align-items: center; gap: 0.4rem; margin-bottom: 0.75rem; font-size: 0.8rem; }
.lc-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; transition: color 0.15s; }
.lc-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.lc-breadcrumb .lc-sep { color: #e0e1e3; }
.lc-breadcrumb .lc-current { color: #6b7280; font-weight: 500; }
.lc-header { margin-bottom: 2rem; }
.lc-header h1 { font-size: 1.5rem; font-weight: 700; color: #151515; margin: 0 0 0.25rem; display: flex; align-items: center; gap: 0.5rem; }
.lc-header h1 svg { color: #E34824; flex-shrink: 0; }
.lc-header p { font-size: 0.85rem; color: #6b7280; margin: 0; }

/* Card */
.lc-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; margin-bottom: 1.5rem; overflow: hidden; }
.lc-card-header { padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.6rem; position: relative; }
.lc-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.lc-card-header--primary::before   { background: #E34824; }
.lc-card-header--secondary::before { background: #6b7280; }
.lc-card-header--light::before     { background: #e0e1e3; }
.lc-card-header--warning::before   { background: #d97706; }
.lc-card-header--info::before      { background: #0891b2; }
.lc-card-header--success::before   { background: #059669; }
.lc-card-header-icon { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.lc-card-header--primary .lc-card-header-icon   { background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15); }
.lc-card-header--primary .lc-card-header-icon svg { color: #E34824; }
.lc-card-header--secondary .lc-card-header-icon   { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); }
.lc-card-header--secondary .lc-card-header-icon svg { color: #6b7280; }
.lc-card-header--light .lc-card-header-icon      { background: rgba(107,114,128,0.06); border: 1px solid #e0e1e3; }
.lc-card-header--light .lc-card-header-icon svg  { color: #6b7280; }
.lc-card-header--warning .lc-card-header-icon    { background: rgba(217,119,6,0.08); border: 1px solid rgba(217,119,6,0.15); }
.lc-card-header--warning .lc-card-header-icon svg { color: #d97706; }
.lc-card-header--info .lc-card-header-icon       { background: rgba(8,145,178,0.08); border: 1px solid rgba(8,145,178,0.15); }
.lc-card-header--info .lc-card-header-icon svg   { color: #0891b2; }
.lc-card-header--success .lc-card-header-icon    { background: rgba(5,150,105,0.08); border: 1px solid rgba(5,150,105,0.15); }
.lc-card-header--success .lc-card-header-icon svg { color: #059669; }
.lc-card-header h2 { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; display: flex; align-items: center; gap: 0.5rem; }
.lc-badge-opt { font-size: 0.65rem; font-weight: 500; color: #9ca3af; }
.lc-card-body { padding: 1.5rem; padding-left: calc(1.5rem + 4px); }

/* Form */
.lc-form .form-label { font-size: 0.8rem; font-weight: 600; color: #151515; margin-bottom: 0.3rem; }
.lc-form .form-label .text-danger { color: #E34824 !important; font-weight: 700; }
.lc-form .form-control, .lc-form .form-select { border-radius: 0; border: 1px solid #e0e1e3; font-size: 0.85rem; padding: 0.55rem 0.8rem; transition: border-color 0.2s, box-shadow 0.2s; }
.lc-form .form-control:focus, .lc-form .form-select:focus { border-color: #E34824; box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
.lc-form textarea.form-control { resize: vertical; }
.lc-form .text-danger { font-size: 0.72rem; }
.lc-form small, .lc-form .form-text { font-size: 0.72rem; color: #9ca3af; }
.lc-form .input-group-text { border-radius: 0; border: 1px solid #e0e1e3; background: #EEEFF0; font-size: 0.85rem; font-weight: 600; color: #151515; }
.lc-form .form-check-input { border-radius: 0; border: 1px solid #e0e1e3; }
.lc-form .form-check-input:checked { background-color: #E34824; border-color: #E34824; }
.lc-form .form-check-input:focus { box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); border-color: #E34824; }
.lc-form .form-check-label { font-size: 0.85rem; color: #151515; }
.lc-form .alert-danger { border-radius: 0; border: 1px solid #e0e1e3; border-left: 4px solid #E34824; background: rgba(227,72,36,0.04); }

/* Gara preimpostata info */
.lc-gara-info { background: rgba(8,145,178,0.04); border: 1px solid rgba(8,145,178,0.12); border-left: 4px solid #0891b2; border-radius: 0; padding: 1rem 1.25rem; font-size: 0.85rem; color: #151515; }
.lc-gara-info i { color: #0891b2; }
.lc-gara-info .lc-gara-title { font-size: 1rem; font-weight: 600; margin-top: 0.25rem; display: block; }

/* Alerts */
.lc-alert { border-radius: 0; border: 1px solid #e0e1e3; padding: 0.85rem 1.25rem; font-size: 0.85rem; display: flex; align-items: center; gap: 0.5rem; margin-bottom: 1rem; }
.lc-alert-success { background: rgba(5,150,105,0.05); border-left: 4px solid #059669; color: #151515; }
.lc-alert-success i { color: #059669; }
.lc-alert-danger { background: rgba(220,38,38,0.04); border-left: 4px solid #E34824; color: #151515; }
.lc-alert-danger i { color: #E34824; }
.lc-alert .btn-close { margin-left: auto; }
.lc-alert-muted { background: #EEEFF0; border: 1px solid #e0e1e3; border-left: 4px solid #6b7280; border-radius: 0; padding: 0.85rem 1.25rem; font-size: 0.8rem; color: #6b7280; }

/* Buttons */
.lc-btn { background: #E34824; color: #fff; border: 2px solid #E34824; padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem; transition: all 0.2s; cursor: pointer; width: 100%; justify-content: center; }
.lc-btn:hover { background: #c93d1e; border-color: #c93d1e; color: #fff; box-shadow: 0 2px 8px rgba(227,72,36,0.2); }
.lc-btn-lg { padding: 0.75rem 2rem; font-size: 0.95rem; }
.lc-btn-secondary { background: transparent; color: #6b7280; border: 2px solid #e0e1e3; padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem; transition: all 0.2s; cursor: pointer; width: 100%; justify-content: center; }
.lc-btn-secondary:hover { border-color: #151515; color: #151515; }
.lc-actions-grid { display: flex; flex-direction: column; gap: 0.5rem; }
.lc-sep-line { border: none; border-top: 1px solid #EEEFF0; margin: 1rem 0; }

/* Info box */
.lc-info-box { background: rgba(8,145,178,0.04); border: 1px solid rgba(8,145,178,0.12); border-left: 4px solid #0891b2; border-radius: 0; padding: 1rem 1.25rem; font-size: 0.8rem; color: #151515; }
.lc-info-box ul { margin: 0.5rem 0 0; padding-left: 0; list-style: none; }
.lc-info-box li { margin-bottom: 0.35rem; font-size: 0.8rem; color: #6b7280; display: flex; align-items: flex-start; gap: 0.4rem; }
.lc-info-box li i { flex-shrink: 0; margin-top: 0.1rem; }
.lc-info-box li strong { color: #151515; }

/* Required fields list */
.lc-req-list { margin: 0; padding: 0; list-style: none; }
.lc-req-list li { font-size: 0.8rem; color: #6b7280; padding: 0.25rem 0; display: flex; align-items: center; gap: 0.35rem; }
.lc-req-list li i { color: #E34824; font-size: 0.7rem; }

/* Sticky */
.lc-sticky { position: sticky; top: 72px; z-index: 10; }
@media (max-width: 991.98px) { .lc-sticky { position: static; } }

/* ============================================
    LOTTI > DETAILS PAGE STYLES
============================================ */

/* ========== PAGE ========== */
.ld-page { padding: 2rem; }

/* ========== BREADCRUMB ========== */
.ld-breadcrumb { display: flex; align-items: center; gap: 0.4rem; margin-bottom: 0.75rem; font-size: 0.8rem; flex-wrap: wrap; }
.ld-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; transition: color 0.15s; }
.ld-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.ld-breadcrumb .ld-sep { color: #e0e1e3; }
.ld-breadcrumb .ld-current { color: #6b7280; font-weight: 500; }

/* ========== ALERTS ========== */
.ld-alert { border-radius: 0; border: 1px solid #e0e1e3; padding: 0.85rem 1.25rem; font-size: 0.85rem; display: flex; align-items: center; gap: 0.5rem; margin-bottom: 1rem; }
.ld-alert-success { background: rgba(5,150,105,0.05); border-left: 4px solid #059669; }
.ld-alert-success i { color: #059669; }
.ld-alert-danger { background: rgba(220,38,38,0.04); border-left: 4px solid #E34824; }
.ld-alert-danger i { color: #E34824; }
.ld-alert-warning { background: rgba(217,119,6,0.04); border-left: 4px solid #d97706; }
.ld-alert-warning i { color: #d97706; }
.ld-alert-info { background: rgba(8,145,178,0.04); border-left: 4px solid #0891b2; }
.ld-alert-info i { color: #0891b2; }
.ld-alert .btn-close { margin-left: auto; }

/* ========== HEADER ========== */
.ld-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 2rem; gap: 1rem; flex-wrap: wrap; }
.ld-header h1 { font-size: 1.5rem; font-weight: 700; color: #151515; margin: 0 0 0.5rem; display: flex; align-items: center; gap: 0.5rem; }
.ld-header h1 svg { color: #E34824; flex-shrink: 0; }
.ld-header-badges { display: flex; flex-wrap: wrap; gap: 0.4rem; }

/* ========== CARD ========== */
.ld-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; margin-bottom: 1.5rem; }
.ld-card-header { padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.6rem; position: relative; }
.ld-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.ld-card-header--orange::before  { background: #E34824; }
.ld-card-header--gray::before    { background: #6b7280; }
.ld-card-header--cyan::before    { background: #0891b2; }
.ld-card-header--amber::before   { background: #d97706; }
.ld-card-header--green::before   { background: #059669; }
.ld-card-header--light::before   { background: #e0e1e3; }
.ld-card-header-icon { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ld-card-header--orange .ld-card-header-icon { background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15); }
.ld-card-header--orange .ld-card-header-icon svg, .ld-card-header--orange .ld-card-header-icon i { color: #E34824; }
.ld-card-header--gray .ld-card-header-icon { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); }
.ld-card-header--gray .ld-card-header-icon svg, .ld-card-header--gray .ld-card-header-icon i { color: #6b7280; }
.ld-card-header--cyan .ld-card-header-icon { background: rgba(8,145,178,0.08); border: 1px solid rgba(8,145,178,0.15); }
.ld-card-header--cyan .ld-card-header-icon svg, .ld-card-header--cyan .ld-card-header-icon i { color: #0891b2; }
.ld-card-header--amber .ld-card-header-icon { background: rgba(217,119,6,0.08); border: 1px solid rgba(217,119,6,0.15); }
.ld-card-header--amber .ld-card-header-icon svg, .ld-card-header--amber .ld-card-header-icon i { color: #d97706; }
.ld-card-header--green .ld-card-header-icon { background: rgba(5,150,105,0.08); border: 1px solid rgba(5,150,105,0.15); }
.ld-card-header--green .ld-card-header-icon svg, .ld-card-header--green .ld-card-header-icon i { color: #059669; }
.ld-card-header--light .ld-card-header-icon { background: rgba(107,114,128,0.06); border: 1px solid #e0e1e3; }
.ld-card-header--light .ld-card-header-icon svg, .ld-card-header--light .ld-card-header-icon i { color: #6b7280; }
.ld-card-header h2 { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; display: flex; align-items: center; gap: 0.5rem; }
.ld-card-header .ld-hdr-right { margin-left: auto; }
.ld-card-body { padding: 1.5rem; padding-left: calc(1.5rem + 4px); }

/* ========== FIELDS ========== */
.ld-field { margin-bottom: 1rem; }
.ld-field:last-child { margin-bottom: 0; }
.ld-field-label { font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; margin-bottom: 0.15rem; }
.ld-field-value { font-size: 0.9rem; color: #151515; font-weight: 500; }
.ld-field-value--lg { font-size: 1.1rem; }
.ld-field-value--muted { color: #9ca3af; font-weight: 400; }
.ld-sep { border: none; border-top: 1px solid #EEEFF0; margin: 1rem 0; }

/* Badges */
.ld-badge { display: inline-block; padding: 0.25rem 0.6rem; font-size: 0.7rem; font-weight: 600; border-radius: 0; letter-spacing: 0.02em; }
.ld-badge-secondary { background: #EEEFF0; color: #6b7280; border: 1px solid #e0e1e3; }
.ld-badge-info    { background: rgba(8,145,178,0.08); color: #0891b2; border: 1px solid rgba(8,145,178,0.15); }
.ld-badge-success { background: rgba(5,150,105,0.08); color: #059669; border: 1px solid rgba(5,150,105,0.15); }
.ld-badge-danger  { background: rgba(220,38,38,0.08); color: #dc2626; border: 1px solid rgba(220,38,38,0.15); }
.ld-badge-warn    { background: rgba(217,119,6,0.08); color: #d97706; border: 1px solid rgba(217,119,6,0.15); }
.ld-badge-primary { background: rgba(227,72,36,0.08); color: #E34824; border: 1px solid rgba(227,72,36,0.15); }
.ld-badge-dark    { background: #151515; color: #fff; }
.ld-badge-lg { font-size: 0.8rem; padding: 0.35rem 0.8rem; }
.ld-link { color: #E34824; text-decoration: none; font-weight: 500; transition: color 0.15s; }
.ld-link:hover { color: #c93d1e; text-decoration: underline; }
.ld-code { font-family: monospace; font-size: 0.85rem; background: #EEEFF0; padding: 0.2rem 0.5rem; border: 1px solid #e0e1e3; }

/* ========== BUTTONS ========== */
.ld-btn { padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem; transition: all 0.2s; cursor: pointer; width: 100%; justify-content: center; border: 2px solid; }
.ld-btn-primary { background: #E34824; color: #fff; border-color: #E34824; }
.ld-btn-primary:hover { background: #c93d1e; border-color: #c93d1e; color: #fff; }
.ld-btn-success { background: #059669; color: #fff; border-color: #059669; }
.ld-btn-success:hover { background: #047857; border-color: #047857; color: #fff; }
.ld-btn-outline { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.ld-btn-outline:hover { border-color: #151515; color: #151515; }
.ld-btn-outline-info { background: transparent; color: #0891b2; border-color: rgba(8,145,178,0.3); }
.ld-btn-outline-info:hover { background: rgba(8,145,178,0.04); border-color: #0891b2; }
.ld-btn-outline-danger { background: transparent; color: #dc2626; border-color: rgba(220,38,38,0.3); }
.ld-btn-outline-danger:hover { background: rgba(220,38,38,0.04); border-color: #dc2626; }
.ld-btn-sm { padding: 0.35rem 0.8rem; font-size: 0.8rem; width: auto; }
.ld-actions-grid { display: flex; flex-direction: column; gap: 0.5rem; }

/* Gara link button */
.ld-gara-btn { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.4rem 0.8rem; border: 1px solid rgba(227,72,36,0.2); color: #E34824; font-size: 0.85rem; font-weight: 500; text-decoration: none; transition: all 0.15s; }
.ld-gara-btn:hover { background: rgba(227,72,36,0.04); border-color: #E34824; color: #c93d1e; }
.ld-platform-btn { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.4rem 0.8rem; border: 1px solid #e0e1e3; color: #6b7280; font-size: 0.85rem; font-weight: 500; text-decoration: none; transition: all 0.15s; }
.ld-platform-btn:hover { border-color: #151515; color: #151515; }

/* ========== WORKFLOW TIMELINE ========== */
.ld-timeline { display: flex; justify-content: space-between; align-items: center; padding: 1.5rem 0; }
.ld-tl-step { display: flex; flex-direction: column; align-items: center; flex: 1; position: relative; }
.ld-tl-step:not(:last-child)::after { content: ''; position: absolute; top: 15px; left: 50%; width: 100%; height: 2px; background: #e0e1e3; z-index: 0; }
.ld-tl-step.completed::after { background: #059669; }
.ld-tl-circle { width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; z-index: 1; background: #fff; border: 2px solid #e0e1e3; cursor: default; transition: all 0.3s; border-radius: 50%; font-size: 0.7rem; }
.ld-tl-step.completed .ld-tl-circle { background: #059669; border-color: #059669; color: #fff; }
.ld-tl-step.active .ld-tl-circle { background: #E34824; border-color: #E34824; color: #fff; transform: scale(1.2); box-shadow: 0 0 0 4px rgba(227,72,36,0.15); }
.ld-tl-step.future .ld-tl-circle { background: #fff; border-color: #e0e1e3; color: #9ca3af; }
.ld-tl-step.active.failed .ld-tl-circle { background: #dc2626; border-color: #dc2626; }
.ld-tl-label { margin-top: 8px; font-size: 0.68rem; text-align: center; font-weight: 600; color: #6b7280; text-transform: uppercase; letter-spacing: 0.03em; }
.ld-tl-step.active .ld-tl-label { color: #E34824; }
.ld-tl-step.active.failed .ld-tl-label { color: #dc2626; }
.ld-tl-step.completed .ld-tl-label { color: #059669; }

/* ========== CHECKLIST ========== */
.ld-checklist-section { margin-bottom: 1.5rem; }
.ld-checklist-section:last-child { margin-bottom: 0; }
.ld-checklist-hdr { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.75rem; }
.ld-checklist-hdr h3 { font-size: 0.85rem; font-weight: 700; color: #151515; margin: 0; display: flex; align-items: center; gap: 0.4rem; }
.ld-progress-wrap { height: 8px; background: #EEEFF0; margin-bottom: 1rem; overflow: hidden; }
.ld-progress-bar { height: 100%; transition: width 0.4s ease; }
.ld-progress-bar--green { background: #059669; }
.ld-progress-bar--amber { background: #d97706; }
.ld-progress-bar--cyan { background: #0891b2; }
.ld-doc-item { display: flex; align-items: center; gap: 0.6rem; padding: 0.65rem 0.8rem; border: 1px solid #e0e1e3; margin-bottom: 0.5rem; transition: border-color 0.15s; }
.ld-doc-item--ok { border-left: 4px solid #059669; }
.ld-doc-item--missing { border-left: 4px solid #e0e1e3; }
.ld-doc-icon { flex-shrink: 0; font-size: 1.1rem; }
.ld-doc-icon--ok { color: #059669; }
.ld-doc-icon--missing { color: #9ca3af; }
.ld-doc-info { flex: 1; min-width: 0; }
.ld-doc-info strong { font-size: 0.85rem; color: #151515; display: block; }
.ld-doc-info small { font-size: 0.72rem; color: #9ca3af; }
.ld-doc-info .text-danger { color: #dc2626 !important; }
.ld-doc-view { width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; border: 1px solid #e0e1e3; background: #fff; color: #6b7280; text-decoration: none; flex-shrink: 0; transition: all 0.15s; }
.ld-doc-view:hover { border-color: #E34824; color: #E34824; }

/* ========== VALUTAZIONI / ELABORAZIONE ========== */
.ld-val-section { padding-bottom: 1rem; margin-bottom: 1rem; border-bottom: 1px solid #EEEFF0; }
.ld-val-section:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.ld-val-section h3 { font-size: 0.85rem; font-weight: 700; color: #151515; margin-bottom: 0.75rem; display: flex; align-items: center; gap: 0.4rem; }
.ld-val-section h3 i { font-size: 0.9rem; }

/* ========== STATS GRID ========== */
.ld-stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.75rem; }
.ld-stat-box { text-align: center; padding: 1rem; border: 1px solid #e0e1e3; }
.ld-stat-num { font-size: 1.5rem; font-weight: 700; margin-bottom: 0.1rem; }
.ld-stat-num--orange { color: #E34824; }
.ld-stat-num--cyan { color: #0891b2; }
.ld-stat-num--amber { color: #d97706; }
.ld-stat-label { font-size: 0.7rem; color: #6b7280; text-transform: uppercase; font-weight: 600; letter-spacing: 0.03em; }

/* ========== TABS ========== */
.ld-tabs-header { padding: 0; border-bottom: 2px solid #EEEFF0; }
.ld-tabs-nav { display: flex; gap: 0; overflow-x: auto; }
.ld-tab-btn { padding: 0.85rem 1.25rem; border: none; background: transparent; font-size: 0.8rem; font-weight: 600; color: #6b7280; cursor: pointer; position: relative; white-space: nowrap; display: flex; align-items: center; gap: 0.35rem; transition: color 0.15s; }
.ld-tab-btn:hover { color: #E34824; }
.ld-tab-btn.active { color: #E34824; }
.ld-tab-btn.active::after { content: ''; position: absolute; bottom: -2px; left: 0; right: 0; height: 2px; background: #E34824; }
.ld-tab-btn .badge { font-size: 0.6rem; padding: 0.15rem 0.4rem; border-radius: 0; }
.ld-tab-content { padding: 1.5rem; padding-left: calc(1.5rem + 4px); }
.ld-tab-pane { display: block; }
.ld-spinner { width: 28px; height: 28px; border: 3px solid #EEEFF0; border-top-color: #E34824; border-radius: 50%; animation: ld-spin 0.8s linear infinite; display: inline-block; }
@keyframes ld-spin { to { transform: rotate(360deg); } }

/* ========== SIDEBAR ========== */
.ld-sticky { position: sticky; top: 72px; z-index: 10; }
.ld-sys-field { margin-bottom: 0.6rem; }
.ld-sys-field:last-child { margin-bottom: 0; }
.ld-sys-label { font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; }
.ld-sys-value { font-size: 0.8rem; color: #151515; }

/* Dropdown */
.ld-dropdown { position: relative; width: 100%; }
.ld-dropdown-toggle { background: transparent; color: #6b7280; border: 2px solid #e0e1e3; padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border-radius: 0; width: 100%; display: flex; align-items: center; justify-content: center; gap: 0.4rem; cursor: pointer; transition: all 0.2s; }
.ld-dropdown-toggle:hover { border-color: #151515; color: #151515; }
.ld-dropdown-menu { border-radius: 0; border: 1px solid #e0e1e3; box-shadow: 0 4px 12px rgba(0,0,0,0.08); }
.ld-dropdown-menu .dropdown-item { font-size: 0.85rem; padding: 0.5rem 1rem; }
.ld-dropdown-menu .dropdown-item:hover { background: rgba(227,72,36,0.04); color: #E34824; }

/* ========== RESPONSIVE ========== */
@media (max-width: 991.98px) { .ld-sticky { position: static; } }
@media (max-width: 767.98px) {
    .ld-header { flex-direction: column; }
    .ld-timeline { flex-direction: column; align-items: flex-start; }
    .ld-tl-step { flex-direction: row; width: 100%; margin-bottom: 1rem; }
    .ld-tl-step::after { display: none !important; }
    .ld-tl-label { margin-top: 0; margin-left: 10px; text-align: left; }
    .ld-stats-grid { grid-template-columns: 1fr; }
}

/* ============================================
    LOTTI > EDIT PAGE STYLES
============================================ */

.le-page { padding: 2rem; }
.le-breadcrumb { display: flex; align-items: center; gap: 0.4rem; margin-bottom: 0.75rem; font-size: 0.8rem; flex-wrap: wrap; }
.le-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; transition: color 0.15s; }
.le-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.le-breadcrumb .le-sep { color: #e0e1e3; }
.le-breadcrumb .le-current { color: #6b7280; font-weight: 500; }
.le-header { margin-bottom: 2rem; }
.le-header h1 { font-size: 1.5rem; font-weight: 700; color: #151515; margin: 0 0 0.25rem; display: flex; align-items: center; gap: 0.5rem; }
.le-header h1 svg { color: #E34824; flex-shrink: 0; }

/* Card */
.le-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; margin-bottom: 1.5rem; overflow: hidden; }
.le-card-header { padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.6rem; position: relative; }
.le-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.le-card-header--orange::before { background: #E34824; }
.le-card-header--gray::before   { background: #6b7280; }
.le-card-header--green::before  { background: #059669; }
.le-card-header--light::before  { background: #e0e1e3; }
.le-card-header--amber::before  { background: #d97706; }
.le-card-header--red::before    { background: #dc2626; }
.le-card-header-icon { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.le-card-header--orange .le-card-header-icon { background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15); }
.le-card-header--orange .le-card-header-icon i { color: #E34824; }
.le-card-header--gray .le-card-header-icon { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); }
.le-card-header--gray .le-card-header-icon i { color: #6b7280; }
.le-card-header--green .le-card-header-icon { background: rgba(5,150,105,0.08); border: 1px solid rgba(5,150,105,0.15); }
.le-card-header--green .le-card-header-icon i { color: #059669; }
.le-card-header--light .le-card-header-icon { background: rgba(107,114,128,0.06); border: 1px solid #e0e1e3; }
.le-card-header--light .le-card-header-icon i { color: #6b7280; }
.le-card-header--amber .le-card-header-icon { background: rgba(217,119,6,0.08); border: 1px solid rgba(217,119,6,0.15); }
.le-card-header--amber .le-card-header-icon i { color: #d97706; }
.le-card-header--red .le-card-header-icon { background: rgba(220,38,38,0.08); border: 1px solid rgba(220,38,38,0.15); }
.le-card-header--red .le-card-header-icon i { color: #dc2626; }
.le-card-header h2 { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; }
.le-card-body { padding: 1.5rem; padding-left: calc(1.5rem + 4px); }

/* Form */
.le-form .form-label { font-size: 0.8rem; font-weight: 600; color: #151515; margin-bottom: 0.3rem; }
.le-form .form-label .text-danger { color: #E34824 !important; font-weight: 700; }
.le-form .form-control, .le-form .form-select { border-radius: 0; border: 1px solid #e0e1e3; font-size: 0.85rem; padding: 0.55rem 0.8rem; transition: border-color 0.2s, box-shadow 0.2s; }
.le-form .form-control:focus, .le-form .form-select:focus { border-color: #E34824; box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
.le-form textarea.form-control { resize: vertical; }
.le-form .text-danger { font-size: 0.72rem; }
.le-form small, .le-form .form-text { font-size: 0.72rem; color: #9ca3af; }
.le-form .input-group-text { border-radius: 0; border: 1px solid #e0e1e3; background: #EEEFF0; font-size: 0.85rem; font-weight: 600; color: #151515; }
.le-form .form-check-input { border-radius: 0; border: 1px solid #e0e1e3; }
.le-form .form-check-input:checked { background-color: #E34824; border-color: #E34824; }
.le-form .form-check-input:focus { box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); border-color: #E34824; }
.le-form .form-check-label { font-size: 0.85rem; color: #151515; }

/* Alerts */
.le-alert { border-radius: 0; border: 1px solid #e0e1e3; padding: 0.85rem 1.25rem; font-size: 0.85rem; display: flex; align-items: flex-start; gap: 0.5rem; }
.le-alert-warning { background: rgba(217,119,6,0.04); border-left: 4px solid #d97706; }
.le-alert-warning i { color: #d97706; margin-top: 0.1rem; }
.le-alert-info { background: rgba(8,145,178,0.04); border-left: 4px solid #0891b2; }
.le-alert-info i { color: #0891b2; margin-top: 0.1rem; }
.le-alert-muted { background: #EEEFF0; border: 1px solid #e0e1e3; border-left: 4px solid #6b7280; }
.le-alert-muted i { color: #6b7280; }

/* Gara info */
.le-gara-info { background: rgba(8,145,178,0.04); border: 1px solid rgba(8,145,178,0.12); border-left: 4px solid #0891b2; border-radius: 0; padding: 1rem 1.25rem; font-size: 0.85rem; color: #151515; }
.le-gara-info i { color: #0891b2; }
.le-gara-info .le-gara-title { font-size: 1rem; font-weight: 600; margin-top: 0.25rem; display: block; }
.le-gara-info small { color: #9ca3af; }

/* Buttons */
.le-btn { padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem; transition: all 0.2s; cursor: pointer; width: 100%; justify-content: center; border: 2px solid; }
.le-btn-amber { background: #d97706; color: #fff; border-color: #d97706; }
.le-btn-amber:hover { background: #b45309; border-color: #b45309; color: #fff; box-shadow: 0 2px 8px rgba(217,119,6,0.2); }
.le-btn-lg { padding: 0.75rem 2rem; font-size: 0.95rem; }
.le-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.le-btn-secondary:hover { border-color: #151515; color: #151515; }
.le-actions-grid { display: flex; flex-direction: column; gap: 0.5rem; }

/* Sidebar info */
.le-sys-field { margin-bottom: 0.6rem; }
.le-sys-field:last-child { margin-bottom: 0; }
.le-sys-label { font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; }
.le-sys-value { font-size: 0.8rem; color: #151515; }
.le-req-list { margin: 0; padding: 0; list-style: none; }
.le-req-list li { font-size: 0.8rem; color: #6b7280; padding: 0.25rem 0; display: flex; align-items: center; gap: 0.35rem; }
.le-req-list li i { color: #E34824; font-size: 0.7rem; }
.le-req-list li i.text-danger { color: #dc2626 !important; }

/* Sticky */
.le-sticky { position: sticky; top: 72px; z-index: 10; }
@media (max-width: 991.98px) { .le-sticky { position: static; } }

/* ============================================
    LOTTI > _ValutazioniPartial PAGE STYLES
============================================ */

.tab-val .tv-alert { border-radius: 0; border: 1px solid #e0e1e3; padding: 0.85rem 1.25rem; font-size: 0.85rem; display: flex; align-items: flex-start; gap: 0.5rem; }
.tab-val .tv-alert-info { background: rgba(8,145,178,0.04); border-left: 4px solid #0891b2; }
.tab-val .tv-alert-info i { color: #0891b2; }
.tab-val .tv-alert-secondary { background: #EEEFF0; border: 1px solid #e0e1e3; border-left: 4px solid #6b7280; }
.tab-val .tv-alert-secondary i { color: #6b7280; }
.tab-val .tv-alert-danger { background: rgba(220,38,38,0.04); border-left: 4px solid #dc2626; border: 1px solid #e0e1e3; }
.tab-val .tv-alert-danger i { color: #dc2626; }
.tab-val .tv-btn { padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem; transition: all 0.2s; cursor: pointer; width: 100%; justify-content: center; border: 2px solid; }
.tab-val .tv-btn-primary { background: #E34824; color: #fff; border-color: #E34824; }
.tab-val .tv-btn-primary:hover { background: #c93d1e; border-color: #c93d1e; color: #fff; }
.tab-val .tv-card { border: 1px solid #e0e1e3; margin-bottom: 1rem; overflow: hidden; }
.tab-val .tv-card-header { padding: 0.8rem 1rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.5rem; position: relative; }
.tab-val .tv-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.tab-val .tv-card-header--orange::before { background: #E34824; }
.tab-val .tv-card-header--green::before { background: #059669; }
.tab-val .tv-card-header h3 { font-size: 0.85rem; font-weight: 700; color: #151515; margin: 0; display: flex; align-items: center; gap: 0.4rem; }
.tab-val .tv-card-body { padding: 1rem; padding-left: calc(1rem + 4px); }
.tab-val .tv-field { margin-bottom: 0.6rem; }
.tab-val .tv-field:last-child { margin-bottom: 0; }
.tab-val .tv-label { font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; margin-bottom: 0.1rem; }
.tab-val .tv-value { font-size: 0.85rem; color: #151515; }
.tab-val .tv-value--muted { color: #9ca3af; }
.tab-val .tv-badge { display: inline-block; padding: 0.2rem 0.5rem; font-size: 0.68rem; font-weight: 600; border-radius: 0; }
.tab-val .tv-badge-success { background: rgba(5,150,105,0.08); color: #059669; border: 1px solid rgba(5,150,105,0.15); }
.tab-val .tv-badge-danger { background: rgba(220,38,38,0.08); color: #dc2626; border: 1px solid rgba(220,38,38,0.15); }
.tab-val .tv-badge-warn { background: rgba(217,119,6,0.08); color: #d97706; border: 1px solid rgba(217,119,6,0.15); }
.tab-val .tv-doc-card { background: #EEEFF0; border: 1px solid #e0e1e3; padding: 1rem; margin-bottom: 1rem; }
.tab-val .tv-doc-card h4 { font-size: 0.85rem; font-weight: 700; color: #151515; margin: 0 0 0.5rem; display: flex; align-items: center; gap: 0.4rem; }
.tab-val .tv-doc-card h4 i { color: #E34824; }
.tab-val .tv-doc-card p { font-size: 0.82rem; color: #6b7280; margin: 0 0 0.5rem; }
.tab-val .tv-doc-link { color: #E34824; text-decoration: none; font-weight: 600; font-size: 0.82rem; display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.35rem 0.7rem; border: 1px solid rgba(227,72,36,0.2); transition: all 0.15s; }
.tab-val .tv-doc-link:hover { background: rgba(227,72,36,0.04); border-color: #E34824; }
.tab-val .tv-prev-card { background: #EEEFF0; border: 1px solid #e0e1e3; padding: 1rem; }
.tab-val .tv-prev-card h4 { font-size: 0.85rem; font-weight: 700; color: #151515; margin: 0 0 0.5rem; display: flex; align-items: center; gap: 0.4rem; }

/* ============================================
    LOTTI > _ScadenzePartial PAGE STYLES
============================================ */

.tab-scad .ts-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; flex-wrap: wrap; gap: 0.5rem; }
.tab-scad .ts-header h3 { font-size: 0.85rem; font-weight: 700; color: #151515; margin: 0; display: flex; align-items: center; gap: 0.4rem; }
.tab-scad .ts-header h3 i { color: #E34824; }
.tab-scad .ts-header-actions { display: flex; gap: 0.4rem; }
.tab-scad .ts-btn-sm { padding: 0.35rem 0.8rem; font-size: 0.78rem; font-weight: 600; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.3rem; transition: all 0.15s; border: 1px solid; }
.tab-scad .ts-btn-primary { background: #E34824; color: #fff; border-color: #E34824; }
.tab-scad .ts-btn-primary:hover { background: #c93d1e; border-color: #c93d1e; color: #fff; }
.tab-scad .ts-btn-outline { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.tab-scad .ts-btn-outline:hover { border-color: #151515; color: #151515; }
.tab-scad .ts-alert { border-radius: 0; border: 1px solid #e0e1e3; padding: 0.7rem 1rem; font-size: 0.82rem; display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.75rem; }
.tab-scad .ts-alert-danger { background: rgba(220,38,38,0.04); border-left: 4px solid #dc2626; }
.tab-scad .ts-alert-danger i { color: #dc2626; }
.tab-scad .ts-alert-warning { background: rgba(217,119,6,0.04); border-left: 4px solid #d97706; }
.tab-scad .ts-alert-warning i { color: #d97706; }
.tab-scad .ts-alert-info { background: rgba(8,145,178,0.04); border-left: 4px solid #0891b2; }
.tab-scad .ts-alert-info i { color: #0891b2; }
.tab-scad .ts-badge-row { display: flex; gap: 0.5rem; justify-content: center; margin-bottom: 1rem; flex-wrap: wrap; }
.tab-scad .ts-badge { font-size: 0.68rem; font-weight: 600; border-radius: 0; }
.tab-scad .ts-badge-danger { background: rgba(220,38,38,0.08); color: #dc2626; border: 1px solid rgba(220,38,38,0.15); }
.tab-scad .ts-badge-warn { background: rgba(217,119,6,0.08); color: #d97706; border: 1px solid rgba(217,119,6,0.15); }
.tab-scad .ts-badge-primary { background: rgba(227,72,36,0.08); color: #E34824; border: 1px solid rgba(227,72,36,0.15); }
.tab-scad .ts-badge-success { background: rgba(5,150,105,0.08); color: #059669; border: 1px solid rgba(5,150,105,0.15); }
.tab-scad .ts-badge-secondary { background: #EEEFF0; color: #6b7280; border: 1px solid #e0e1e3; }
.tab-scad .ts-badge-info { background: rgba(8,145,178,0.08); color: #0891b2; border: 1px solid rgba(8,145,178,0.15); }
.tab-scad .ts-table { width: 100%; border-collapse: collapse; }
.tab-scad .ts-table thead th { background: #151515; color: #fff; font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; padding: 0.7rem 0.8rem; border: none; white-space: nowrap; }
.tab-scad .ts-table tbody td { padding: 0.7rem 0.8rem; font-size: 0.85rem; color: #151515; border-bottom: 1px solid #EEEFF0; vertical-align: middle; }
.tab-scad .ts-table tbody tr { transition: background 0.15s; }
.tab-scad .ts-table tbody tr:hover { background: rgba(227,72,36,0.03); }
.tab-scad .ts-table tbody tr:last-child td { border-bottom: none; }
.tab-scad .ts-row-danger { background: rgba(220,38,38,0.04); }
.tab-scad .ts-row-warning { background: rgba(217,119,6,0.04); }
.tab-scad .ts-row-success { background: rgba(5,150,105,0.04); opacity: 0.8; }
.tab-scad .ts-act-btn { width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #e0e1e3; background: #fff; color: #6b7280; text-decoration: none; transition: all 0.15s; font-size: 0.8rem; padding: 0; }
.tab-scad .ts-act-btn:hover { border-color: #E34824; color: #E34824; }
.tab-scad .ts-act-btn--success:hover { border-color: #059669; color: #059669; }
.tab-scad .ts-act-btn--warning:hover { border-color: #d97706; color: #d97706; }
.tab-scad .ts-link { color: #E34824; text-decoration: none; font-weight: 500; }
.tab-scad .ts-link:hover { text-decoration: underline; color: #c93d1e; }

/* ============================================
    LOTTI > _RichiesteIntegrazionePartial PAGE STYLES
============================================ */

.tab-rich .tr-alert { border-radius: 0; border: 1px solid #e0e1e3; padding: 0.85rem 1.25rem; font-size: 0.85rem; display: flex; align-items: flex-start; gap: 0.5rem; }
.tab-rich .tr-alert-info { background: rgba(8,145,178,0.04); border-left: 4px solid #0891b2; }
.tab-rich .tr-alert-info i { color: #0891b2; }
.tab-rich .tr-alert-warning { background: rgba(217,119,6,0.04); border-left: 4px solid #d97706; }
.tab-rich .tr-alert-warning i { color: #d97706; }
.tab-rich .tr-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.75rem; margin-bottom: 1rem; }
.tab-rich .tr-stat { text-align: center; padding: 1rem; border: 1px solid #e0e1e3; }
.tab-rich .tr-stat-num { font-size: 1.5rem; font-weight: 700; margin-bottom: 0.1rem; }
.tab-rich .tr-stat-label { font-size: 0.68rem; text-transform: uppercase; font-weight: 600; letter-spacing: 0.03em; color: #6b7280; }
.tab-rich .tr-table { width: 100%; border-collapse: collapse; }
.tab-rich .tr-table thead th { background: #151515; color: #fff; font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; padding: 0.7rem 0.8rem; border: none; white-space: nowrap; }
.tab-rich .tr-table tbody td { padding: 0.7rem 0.8rem; font-size: 0.85rem; color: #151515; border-bottom: 1px solid #EEEFF0; vertical-align: middle; }
.tab-rich .tr-table tbody tr { transition: background 0.15s; }
.tab-rich .tr-table tbody tr:hover { background: rgba(227,72,36,0.03); }
.tab-rich .tr-table tbody tr:last-child td { border-bottom: none; }
.tab-rich .tr-badge { display: inline-block; padding: 0.2rem 0.5rem; font-size: 0.68rem; font-weight: 600; border-radius: 0; }
.tab-rich .tr-badge-success { background: rgba(5,150,105,0.08); color: #059669; border: 1px solid rgba(5,150,105,0.15); }
.tab-rich .tr-badge-info { background: rgba(8,145,178,0.08); color: #0891b2; border: 1px solid rgba(8,145,178,0.15); }
.tab-rich .tr-badge-warn { background: rgba(217,119,6,0.08); color: #d97706; border: 1px solid rgba(217,119,6,0.15); }
.tab-rich .tr-act-btn { width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #e0e1e3; background: #fff; color: #6b7280; text-decoration: none; transition: all 0.15s; font-size: 0.8rem; padding: 0; }
.tab-rich .tr-act-btn:hover { border-color: #E34824; color: #E34824; background: rgba(227,72,36,0.04); }
.tab-rich .tr-act-btn--success:hover { border-color: #059669; color: #059669; background: rgba(5,150,105,0.04); }
.tab-rich .tr-footer { padding: 0.75rem 0.8rem; border-top: 1px solid #EEEFF0; text-align: right; }
.tab-rich .tr-footer a { color: #E34824; text-decoration: none; font-weight: 600; font-size: 0.85rem; display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.4rem 0.8rem; border: 1px solid rgba(227,72,36,0.2); transition: all 0.15s; }
.tab-rich .tr-footer a:hover { background: rgba(227,72,36,0.04); border-color: #E34824; }
.tab-rich .tr-empty { text-align: center; padding: 2rem; }
.tab-rich .tr-empty i { color: #e0e1e3; font-size: 2rem; display: block; margin-bottom: 0.5rem; }
.tab-rich .tr-empty p { font-size: 0.85rem; color: #6b7280; margin: 0; }
@media (max-width: 767.98px) { .tab-rich .tr-stats { grid-template-columns: 1fr; } }

/* ============================================
    LOTTI > _ElaborazioniPartial PAGE STYLES
============================================ */

.tab-elab .te-alert { border-radius: 0; border: 1px solid #e0e1e3; padding: 0.85rem 1.25rem; font-size: 0.85rem; display: flex; align-items: flex-start; gap: 0.5rem; }
.tab-elab .te-alert-info { background: rgba(8,145,178,0.04); border-left: 4px solid #0891b2; }
.tab-elab .te-alert-info i { color: #0891b2; margin-top: 0.1rem; }
.tab-elab .te-alert-warning { background: rgba(217,119,6,0.04); border-left: 4px solid #d97706; }
.tab-elab .te-alert-warning i { color: #d97706; margin-top: 0.1rem; }
.tab-elab .te-section { margin-bottom: 1.5rem; }
.tab-elab .te-section:last-child { margin-bottom: 0; }
.tab-elab .te-section-title { font-size: 0.85rem; font-weight: 700; color: #151515; margin-bottom: 0.75rem; display: flex; align-items: center; gap: 0.4rem; padding-bottom: 0.5rem; border-bottom: 1px solid #EEEFF0; }
.tab-elab .te-section-title i { font-size: 0.9rem; }
.tab-elab .te-field { margin-bottom: 0.75rem; }
.tab-elab .te-field:last-child { margin-bottom: 0; }
.tab-elab .te-label { font-size: 0.7rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; margin-bottom: 0.1rem; }
.tab-elab .te-value { font-size: 0.9rem; color: #151515; font-weight: 500; }
.tab-elab .te-value--lg { font-size: 1.1rem; }
.tab-elab .te-value--muted { color: #9ca3af; font-weight: 400; }
.tab-elab .te-badge { display: inline-block; padding: 0.25rem 0.6rem; font-size: 0.7rem; font-weight: 600; border-radius: 0; }
.tab-elab .te-badge-success { background: rgba(5,150,105,0.08); color: #059669; border: 1px solid rgba(5,150,105,0.15); }
.tab-elab .te-badge-danger { background: rgba(220,38,38,0.08); color: #dc2626; border: 1px solid rgba(220,38,38,0.15); }
.tab-elab .te-badge-secondary { background: #EEEFF0; color: #6b7280; border: 1px solid #e0e1e3; }
.tab-elab .te-badge-warn { background: rgba(217,119,6,0.08); color: #d97706; border: 1px solid rgba(217,119,6,0.15); }
.tab-elab .te-sep { border: none; border-top: 1px solid #EEEFF0; margin: 1rem 0; }
.tab-elab .te-empty { text-align: center; padding: 2rem; }
.tab-elab .te-empty i { color: #e0e1e3; font-size: 2.5rem; display: block; margin-bottom: 0.5rem; }
.tab-elab .te-empty p { font-size: 0.85rem; color: #6b7280; margin: 0; }

/* ============================================
    MEZZI > UploadDocumento PAGE STYLES
============================================ */

/* ── Variabili ──────────────────────────────────────────── */

/* ── Layout ─────────────────────────────────────────────── */
.mud-page { padding: 2rem; }

/* ── Breadcrumb ─────────────────────────────────────────── */
.mud-breadcrumb {
    display: flex; align-items: center; gap: 0.4rem;
    font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem;
}
.mud-breadcrumb a { color: var(--cb-accent); text-decoration: none; font-weight: 500; }
.mud-breadcrumb a:hover { color: var(--cb-accent-hover); text-decoration: underline; }
.mud-breadcrumb .mud-sep { color: var(--cb-border); }
.mud-breadcrumb .mud-current { color: var(--cb-gray); font-weight: 500; }

/* ── Header ─────────────────────────────────────────────── */
.mud-header { margin-bottom: 1.5rem; }
.mud-header h1 {
    font-size: 1.45rem; font-weight: 700; color: var(--cb-dark);
    letter-spacing: -0.025em; margin: 0;
    display: flex; align-items: center; gap: 0.5rem;
}
.mud-header h1 svg { color: var(--cb-accent); flex-shrink: 0; }

/* ── Info mezzo banner ───────────────────────────────────── */
.mud-mezzo-banner {
    background: var(--cb-white); border: 1px solid var(--cb-border);
    border-left: 4px solid var(--cb-cyan);
    padding: 0.85rem 1.25rem; margin-bottom: 1.5rem;
    display: flex; align-items: center; justify-content: space-between;
    gap: 1rem; flex-wrap: wrap;
}
.mud-mezzo-name { font-size: 0.88rem; font-weight: 600; color: var(--cb-dark); }
.mud-mezzo-targa {
    font-size: 0.72rem; color: var(--cb-muted); margin-top: 0.2rem;
    font-family: monospace; letter-spacing: 0.05em;
}

/* ── Card ───────────────────────────────────────────────── */
.mud-card {
    background: var(--cb-white); border: 1px solid var(--cb-border);
    border-radius: 0; overflow: hidden; margin-bottom: 1rem;
}
.mud-card-header {
    position: relative; padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--cb-border);
    display: flex; align-items: center; gap: 0.75rem;
}
.mud-card-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
}
.mud-card-header--accent::before  { background: var(--cb-accent); }
.mud-card-header--cyan::before    { background: var(--cb-cyan); }
.mud-card-header--neutral::before { background: var(--cb-border); }

.mud-icon-box {
    width: 34px; height: 34px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center; border: 1px solid;
}
.mud-icon-box--accent  { background: rgba(227,72,36,0.08);  border-color: rgba(227,72,36,0.15); }
.mud-icon-box--accent i  { color: var(--cb-accent); }
.mud-icon-box--cyan    { background: rgba(8,145,178,0.08);  border-color: rgba(8,145,178,0.15); }
.mud-icon-box--cyan i    { color: var(--cb-cyan); }
.mud-icon-box--neutral { background: rgba(224,225,227,0.4); border-color: var(--cb-border); }
.mud-icon-box--neutral i { color: var(--cb-muted); }

.mud-card-title { font-size: 0.88rem; font-weight: 700; color: var(--cb-dark); margin: 0; }
.mud-card-body  { padding: 1.5rem; }

/* ── Dropzone ────────────────────────────────────────────── */
.mud-dropzone {
    border: 2px dashed var(--cb-border);
    background: var(--cb-light);
    padding: 2rem; text-align: center;
    cursor: pointer; transition: border-color 0.2s, background 0.2s;
}
.mud-dropzone:hover,
.mud-dropzone.dragover {
    border-color: var(--cb-accent);
    background: rgba(227,72,36,0.03);
}
.mud-dropzone.has-file {
    border-color: var(--cb-green);
    background: rgba(5,150,105,0.04);
}
.mud-dropzone-icon { font-size: 2.25rem; color: var(--cb-muted); }
.mud-dropzone-icon--success { color: var(--cb-green); }
.mud-dropzone-text { font-size: 0.85rem; color: var(--cb-dark); margin: 0.6rem 0 0.25rem; }
.mud-dropzone-link { color: var(--cb-accent); text-decoration: none; font-weight: 600; cursor: pointer; }
.mud-dropzone-link:hover { color: var(--cb-accent-hover); }
.mud-dropzone-hint { font-size: 0.72rem; color: var(--cb-muted); }
.mud-file-name { font-size: 0.88rem; font-weight: 700; color: var(--cb-dark); margin: 0.5rem 0 0.15rem; }
.mud-file-size { font-size: 0.72rem; color: var(--cb-muted); }

/* ── Form elementi ──────────────────────────────────────── */
.mud-form-label {
    font-size: 0.8rem; font-weight: 600; text-transform: uppercase;
    letter-spacing: 0.04em; color: var(--cb-dark);
    display: block; margin-bottom: 0.35rem;
}
.mud-form-control,
.mud-form-select {
    border: 1px solid var(--cb-border); font-size: 0.85rem;
    border-radius: 0; padding: 0.45rem 0.75rem;
    width: 100%; background: #fff; color: var(--cb-dark);
    transition: border-color 0.2s, box-shadow 0.2s;
}
.mud-form-control:focus,
.mud-form-select:focus {
    outline: none; border-color: var(--cb-accent);
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}
.mud-form-text { font-size: 0.72rem; color: var(--cb-muted); margin-top: 0.25rem; display: block; }
.mud-validation { font-size: 0.72rem; color: var(--cb-danger); display: block; margin-top: 0.2rem; }
.mud-textarea {
    border: 1px solid var(--cb-border); font-size: 0.85rem;
    border-radius: 0; padding: 0.55rem 0.75rem;
    width: 100%; background: #fff; color: var(--cb-dark);
    resize: vertical; transition: border-color 0.2s, box-shadow 0.2s;
}
.mud-textarea:focus {
    outline: none; border-color: var(--cb-accent);
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}

.mud-form-row   { display: grid; gap: 0.85rem; }
.mud-form-row-2 { grid-template-columns: repeat(2, 1fr); }
.mud-sep { border-top: 1px solid var(--cb-light); margin: 1.25rem 0; }

/* Alert validation */
.mud-alert-danger {
    border-radius: 0; border: 1px solid var(--cb-border);
    border-left: 4px solid var(--cb-danger);
    background: rgba(220,38,38,0.04);
    padding: 0.85rem 1.25rem; font-size: 0.85rem;
    margin-bottom: 1.5rem; color: var(--cb-dark);
}

/* ── Bottoni ────────────────────────────────────────────── */
.mud-btn {
    padding: 0.5rem 1.15rem; font-weight: 600; font-size: 0.85rem;
    border-radius: 0; display: inline-flex; align-items: center;
    gap: 0.4rem; text-decoration: none; cursor: pointer;
    transition: background 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s;
    border: 2px solid;
}
.mud-btn-accent {
    background: var(--cb-accent); color: #fff; border-color: var(--cb-accent);
}
.mud-btn-accent:hover {
    background: var(--cb-accent-hover); border-color: var(--cb-accent-hover); color: #fff;
    box-shadow: 0 2px 8px rgba(227,72,36,0.2);
}
.mud-btn-accent:disabled {
    background: var(--cb-muted); border-color: var(--cb-muted); cursor: not-allowed;
}
.mud-btn-secondary {
    background: transparent; color: var(--cb-gray); border-color: var(--cb-border);
}
.mud-btn-secondary:hover { border-color: var(--cb-dark); color: var(--cb-dark); }
.mud-btn-remove {
    background: transparent; border: 1px solid rgba(220,38,38,0.2);
    color: var(--cb-danger); font-size: 0.78rem; font-weight: 600;
    padding: 0.3rem 0.75rem; cursor: pointer; border-radius: 0;
    display: inline-flex; align-items: center; gap: 0.3rem;
    margin-top: 0.5rem; transition: background 0.15s, border-color 0.15s;
}
.mud-btn-remove:hover { background: rgba(220,38,38,0.06); border-color: var(--cb-danger); }

.mud-btn-outline-sm {
    background: transparent; border: 1px solid rgba(107,114,128,0.2);
    color: var(--cb-gray); font-size: 0.78rem; font-weight: 600;
    padding: 0.3rem 0.75rem; cursor: pointer; border-radius: 0;
    text-decoration: none; display: inline-flex; align-items: center; gap: 0.3rem;
    transition: background 0.15s, border-color 0.15s;
}
.mud-btn-outline-sm:hover { background: var(--cb-light); border-color: var(--cb-gray); color: var(--cb-dark); }

/* ── Sidebar sticky ─────────────────────────────────────── */
.mud-sidebar { position: sticky; top: 72px; z-index: 10; }

/* Tipi documento list */
.mud-doc-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.35rem; }
.mud-doc-list li { font-size: 0.82rem; color: var(--cb-dark); display: flex; align-items: center; gap: 0.4rem; }
.mud-doc-list li i { flex-shrink: 0; }

/* ── Responsive ─────────────────────────────────────────── */
@media (max-width: 991.98px) {
    .mud-sidebar { position: static; }
    .mud-form-row-2 { grid-template-columns: 1fr; }
}

/* ============================================
    MEZZI > EditDocumento PAGE STYLES
============================================ */

.med-page { padding: 2rem; }

/* Breadcrumb */
.med-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.med-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.med-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.med-breadcrumb .med-sep { color: #e0e1e3; }
.med-breadcrumb .med-current { color: #6b7280; font-weight: 500; }

/* Page header */
.med-page-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; flex-wrap: wrap; }
.med-page-title { font-size: 1.4rem; font-weight: 700; color: #151515; letter-spacing: -0.025em; margin: 0; display: flex; align-items: center; gap: 0.6rem; }
.med-page-title svg { color: #E34824; flex-shrink: 0; }
.med-page-subtitle { font-size: 0.85rem; color: #6b7280; margin: 0.25rem 0 0 0; }

/* Info mezzo box */
.med-mezzo-box {
    background: #fff;
    border: 1px solid #e0e1e3;
    border-left: 4px solid #0891b2;
    padding: 0.85rem 1.25rem;
    display: flex; align-items: center; justify-content: space-between;
    gap: 1rem; flex-wrap: wrap;
    margin-bottom: 1.5rem;
}
.med-mezzo-label { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; margin-bottom: 0.15rem; }
.med-mezzo-name { font-size: 0.9rem; font-weight: 600; color: #151515; display: flex; align-items: center; gap: 0.4rem; }
.med-mezzo-targa { font-size: 0.78rem; color: #6b7280; }
.med-mezzo-targa code { background: #EEEFF0; padding: 0.1rem 0.4rem; font-size: 0.78rem; color: #151515; font-weight: 600; }

/* Cards */
.med-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; overflow: hidden; margin-bottom: 1.5rem; }
.med-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.75rem; }
.med-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.med-card-header--amber::before { background: #d97706; }
.med-card-header--cyan::before { background: #0891b2; }
.med-card-icon { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.med-card-icon--amber { background: rgba(217,119,6,0.08); border: 1px solid rgba(217,119,6,0.15); color: #d97706; }
.med-card-icon--cyan { background: rgba(8,145,178,0.08); border: 1px solid rgba(8,145,178,0.15); color: #0891b2; }
.med-card-title { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; }
.med-card-body { padding: 1.5rem; }

/* File info box */
.med-file-box {
    background: #EEEFF0;
    border-left: 3px solid #e0e1e3;
    padding: 0.85rem 1rem;
    display: flex; align-items: center; gap: 0.75rem;
    margin-bottom: 1.5rem;
}
.med-file-icon { font-size: 1.5rem; color: #6b7280; line-height: 1; flex-shrink: 0; }
.med-file-name { font-size: 0.85rem; font-weight: 600; color: #151515; }
.med-file-note { font-size: 0.72rem; color: #9ca3af; }

/* Form */
.med-form-section-title {
    font-size: 0.82rem; font-weight: 600; color: #6b7280;
    text-transform: uppercase; letter-spacing: 0.03em;
    display: flex; align-items: center; gap: 0.4rem;
    margin-bottom: 0.75rem; padding-bottom: 0.5rem;
    border-bottom: 1px solid #EEEFF0;
}
.med-form-section-title i { color: #E34824; }

.med-label {
    font-size: 0.8rem; font-weight: 600; color: #151515;
    text-transform: uppercase; letter-spacing: 0.04em;
    display: block; margin-bottom: 0.35rem;
}
.med-required { color: #dc2626; margin-left: 0.2rem; }
.med-form-control {
    border: 1px solid #e0e1e3; border-radius: 0;
    font-size: 0.85rem; color: #151515;
    padding: 0.5rem 0.75rem; width: 100%;
    background: #fff; transition: border-color 0.2s, box-shadow 0.2s;
}
.med-form-control:focus {
    outline: none;
    border-color: #E34824;
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}
textarea.med-form-control { resize: vertical; }

.med-form-text { font-size: 0.72rem; color: #9ca3af; margin-top: 0.25rem; }
.med-field-group { margin-bottom: 1rem; }

/* Validation */
.med-validation-summary {
    border: 1px solid #e0e1e3; border-left: 4px solid #dc2626;
    background: rgba(220,38,38,0.04);
    padding: 0.85rem 1.25rem; font-size: 0.85rem;
    margin-bottom: 1.5rem;
}
.med-validation-summary ul { margin: 0; padding-left: 1.25rem; }
.med-field-error { font-size: 0.72rem; color: #dc2626; margin-top: 0.25rem; display: block; }

/* Separatore sezione */
.med-sep-section { border-top: 1px solid #EEEFF0; margin: 1.5rem 0; }

/* Bottoni */
.med-btn {
    display: inline-flex; align-items: center; gap: 0.4rem;
    padding: 0.55rem 1.5rem; font-size: 0.85rem; font-weight: 600;
    border: 2px solid; cursor: pointer; border-radius: 0;
    text-decoration: none; transition: background 0.2s, border-color 0.2s, box-shadow 0.2s, color 0.2s;
}
.med-btn-amber { background: #d97706; color: #fff; border-color: #d97706; }
.med-btn-amber:hover { background: #b45309; border-color: #b45309; color: #fff; text-decoration: none; }
.med-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.med-btn-secondary:hover { border-color: #151515; color: #151515; text-decoration: none; }
.med-btn-sm {
    padding: 0.4rem 0.8rem; font-size: 0.82rem;
    border: 1px solid rgba(107,114,128,0.2); color: #6b7280; background: transparent;
}
.med-btn-sm:hover { background: rgba(107,114,128,0.04); border-color: #6b7280; color: #151515; text-decoration: none; }
.med-actions { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-top: 1.5rem; }

/* Sidebar info */
.med-info-box {
    background: rgba(8,145,178,0.04);
    border-left: 3px solid #0891b2;
    padding: 0.75rem 1rem; font-size: 0.85rem; color: #6b7280;
    margin-bottom: 1rem;
}

/* Sticky sidebar */
@media (min-width: 992px) {
    .med-sidebar-sticky { position: sticky; top: 72px; z-index: 10; }
}
@media (max-width: 991.98px) {
    .med-sidebar-sticky { position: static; }
}
@media (max-width: 575.98px) {
    .med-page { padding: 1rem; }
    .med-page-header { flex-direction: column; }
}

/* ============================================
    MEZZI > _DocumentiMezzoPartial PAGE STYLES
============================================ */

/* Card */
.mdp-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; overflow: hidden; margin-bottom: 1.5rem; }
.mdp-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; }
.mdp-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: #E34824; }
.mdp-card-header-left { display: flex; align-items: center; gap: 0.75rem; }
.mdp-card-icon { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 1rem; background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15); color: #E34824; }
.mdp-card-title { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; display: flex; align-items: center; gap: 0.5rem; }
.mdp-card-body { padding: 1.5rem; }
.mdp-card-body--p0 { padding: 0; }

/* Badge */
.mdp-badge {
    display: inline-flex; align-items: center; gap: 0.25rem;
    padding: 0.25rem 0.65rem; font-size: 0.68rem; font-weight: 600;
    border: 1px solid; border-radius: 0;
    text-transform: uppercase; letter-spacing: 0.03em;
}
.mdp-badge-success   { background: rgba(5,150,105,0.06);   color: #059669; border-color: rgba(5,150,105,0.2); }
.mdp-badge-danger    { background: rgba(220,38,38,0.06);   color: #dc2626; border-color: rgba(220,38,38,0.2); }
.mdp-badge-warn      { background: rgba(217,119,6,0.06);   color: #d97706; border-color: rgba(217,119,6,0.2); }
.mdp-badge-secondary { background: rgba(107,114,128,0.06); color: #6b7280; border-color: rgba(107,114,128,0.2); }
.mdp-badge-count     { background: rgba(21,21,21,0.06);    color: #151515; border-color: rgba(21,21,21,0.15); }

/* Header right alerts */
.mdp-header-right { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }

/* Bottone upload */
.mdp-btn-upload {
    display: inline-flex; align-items: center; gap: 0.35rem;
    padding: 0.4rem 0.9rem; font-size: 0.82rem; font-weight: 600;
    background: #059669; color: #fff; border: 2px solid #059669;
    border-radius: 0; text-decoration: none; cursor: pointer;
    transition: background 0.2s, border-color 0.2s;
}
.mdp-btn-upload:hover { background: #047857; border-color: #047857; color: #fff; text-decoration: none; }

/* Empty state */
.mdp-empty { text-align: center; padding: 2.5rem 1.5rem; }
.mdp-empty-icon { font-size: 3rem; color: #9ca3af; opacity: 0.6; line-height: 1; margin-bottom: 0.75rem; }
.mdp-empty-text { font-size: 0.85rem; color: #6b7280; margin: 0 0 1rem 0; }

/* Tabella */
.mdp-table { width: 100%; border-collapse: collapse; }
.mdp-table thead th {
    background: #151515; color: #fff;
    font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em;
    padding: 0.65rem 0.85rem; border: none; white-space: nowrap;
}
.mdp-table thead th:first-child { width: 44px; text-align: center; }
.mdp-table thead th:last-child  { width: 130px; text-align: right; }
.mdp-table tbody tr { border-bottom: 1px solid #EEEFF0; transition: background 0.15s; }
.mdp-table tbody tr:last-child { border-bottom: none; }
.mdp-table tbody tr:hover { background: rgba(227,72,36,0.03); }
.mdp-table tbody td { padding: 0.75rem 0.85rem; font-size: 0.85rem; color: #151515; vertical-align: middle; }
.mdp-table tbody td:first-child { text-align: center; }
.mdp-table tbody td:last-child  { text-align: right; }

/* File info in cella */
.mdp-file-icon { font-size: 1.2rem; color: #6b7280; }
.mdp-file-name { font-size: 0.85rem; font-weight: 600; color: #151515; }
.mdp-file-size { font-size: 0.72rem; color: #9ca3af; }
.mdp-file-desc { font-size: 0.72rem; color: #9ca3af; font-style: italic; }

/* Scadenza cella */
.mdp-scad-date { font-size: 0.82rem; color: #151515; font-weight: 500; }

/* Data caricamento */
.mdp-upload-date { font-size: 0.78rem; color: #151515; }
.mdp-upload-by   { font-size: 0.72rem; color: #9ca3af; }

/* Azioni icona 32×32 */
.mdp-actions { display: inline-flex; gap: 0.25rem; justify-content: flex-end; }
.mdp-action-btn {
    width: 32px; height: 32px; border-radius: 0;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 0.85rem; cursor: pointer; background: transparent;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
    text-decoration: none; border: 1px solid;
}
.mdp-action-btn-cyan   { border-color: rgba(8,145,178,0.15);   color: #0891b2; }
.mdp-action-btn-cyan:hover { background: rgba(8,145,178,0.06); border-color: #0891b2; color: #0891b2; }
.mdp-action-btn-accent { border-color: rgba(227,72,36,0.15);   color: #E34824; }
.mdp-action-btn-accent:hover { background: rgba(227,72,36,0.06); border-color: #E34824; color: #E34824; }
.mdp-action-btn-amber  { border-color: rgba(217,119,6,0.15);   color: #d97706; }
.mdp-action-btn-amber:hover { background: rgba(217,119,6,0.06); border-color: #d97706; color: #d97706; }
.mdp-action-btn-danger { border-color: rgba(220,38,38,0.15);   color: #dc2626; }
.mdp-action-btn-danger:hover { background: rgba(220,38,38,0.06); border-color: #dc2626; color: #dc2626; }

/* Modal */
.mdp-modal-content { border-radius: 0 !important; border: 1px solid #e0e1e3; }
.mdp-modal-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; justify-content: space-between; }
.mdp-modal-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: #dc2626; }
.mdp-modal-title { font-size: 0.95rem; font-weight: 700; color: #151515; margin: 0; display: flex; align-items: center; gap: 0.4rem; }
.mdp-modal-body { padding: 1.5rem; }
.mdp-modal-body p { font-size: 0.85rem; color: #151515; margin-bottom: 0.5rem; }
.mdp-modal-body .mdp-modal-filename { font-weight: 700; }
.mdp-modal-body .mdp-modal-note { font-size: 0.72rem; color: #9ca3af; margin: 0; }
.mdp-modal-footer { padding: 1rem 1.5rem; border-top: 1px solid #e0e1e3; display: flex; justify-content: flex-end; gap: 0.5rem; }
.mdp-modal-close { background: none; border: none; color: #9ca3af; cursor: pointer; font-size: 1.1rem; line-height: 1; padding: 0; }
.mdp-modal-close:hover { color: #151515; }

/* Bottoni modal */
.mdp-btn {
    display: inline-flex; align-items: center; gap: 0.4rem;
    padding: 0.5rem 1.25rem; font-size: 0.85rem; font-weight: 600;
    border: 2px solid; cursor: pointer; border-radius: 0;
    text-decoration: none; transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.mdp-btn-danger    { background: #dc2626; color: #fff; border-color: #dc2626; }
.mdp-btn-danger:hover { background: #b91c1c; border-color: #b91c1c; color: #fff; }
.mdp-btn-danger:disabled { opacity: 0.7; cursor: not-allowed; }
.mdp-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.mdp-btn-secondary:hover { border-color: #151515; color: #151515; }

/* Spinner inline */
.mdp-spinner-sm {
    width: 14px; height: 14px;
    border: 2px solid rgba(255,255,255,0.4); border-top-color: #fff;
    border-radius: 50%; display: inline-block;
    animation: mdp-spin 0.8s linear infinite; vertical-align: middle;
}
@keyframes mdp-spin { to { transform: rotate(360deg); } }

/* Empty state btn outline */
.mdp-btn-upload-outline {
    display: inline-flex; align-items: center; gap: 0.35rem;
    padding: 0.4rem 0.9rem; font-size: 0.82rem; font-weight: 600;
    background: transparent; color: #059669;
    border: 1px solid rgba(5,150,105,0.2);
    border-radius: 0; text-decoration: none; cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}
.mdp-btn-upload-outline:hover { background: rgba(5,150,105,0.06); border-color: #059669; color: #059669; text-decoration: none; }

/* ============================================
    NotificheConfig > EDIT PAGE STYLES
============================================ */


/* ── Page ── */
.nce-page { padding: 2rem; }

/* ── Breadcrumb ── */
.nce-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.nce-breadcrumb a { color: var(--cb-accent); text-decoration: none; font-weight: 500; }
.nce-breadcrumb a:hover { color: var(--cb-accent-hover); text-decoration: underline; }
.nce-breadcrumb .nce-sep { color: var(--cb-border); }
.nce-breadcrumb .nce-current { color: var(--cb-gray); font-weight: 500; }

/* ── Page Header ── */
.nce-page-header { display: flex; align-items: flex-start; gap: 0.75rem; margin-bottom: 1.5rem; }
.nce-page-icon {
    width: 42px; height: 42px; flex-shrink: 0;
    background: rgba(217,119,6,0.08);
    border: 1px solid rgba(217,119,6,0.15);
    display: flex; align-items: center; justify-content: center;
}
.nce-page-header h1 {
    font-size: 1.4rem; font-weight: 700; color: var(--cb-dark);
    letter-spacing: -0.025em; margin: 0 0 0.15rem 0;
}
.nce-page-header p { font-size: 0.85rem; color: var(--cb-gray); margin: 0; }

/* ── Layout ── */
.nce-layout { display: grid; grid-template-columns: 1fr 320px; gap: 1.5rem; align-items: start; }

/* ── Card ── */
.nce-card {
    background: var(--cb-white);
    border: 1px solid var(--cb-border);
    overflow: hidden;
}
.nce-card-header {
    position: relative;
    padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--cb-border);
    display: flex; align-items: center; gap: 0.75rem;
}
.nce-card-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0;
    width: 4px; background: var(--cb-amber);
}
.nce-card-header-icon {
    width: 34px; height: 34px;
    background: rgba(217,119,6,0.08);
    border: 1px solid rgba(217,119,6,0.15);
    display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.nce-card-title { font-size: 0.9rem; font-weight: 700; color: var(--cb-dark); margin: 0; }

.nce-card-body { padding: 1.5rem 1.5rem 1.5rem 1.75rem; }

/* ── Info card (sidebar) ── */
.nce-info-card {
    background: var(--cb-white);
    border: 1px solid var(--cb-border);
    overflow: hidden;
    position: sticky;
    top: 72px;
}
.nce-info-header {
    position: relative;
    padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--cb-border);
    display: flex; align-items: center; gap: 0.75rem;
}
.nce-info-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0;
    width: 4px; background: var(--cb-cyan);
}
.nce-info-header-icon {
    width: 34px; height: 34px;
    background: rgba(8,145,178,0.08);
    border: 1px solid rgba(8,145,178,0.15);
    display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.nce-info-header-title { font-size: 0.9rem; font-weight: 700; color: var(--cb-dark); margin: 0; }
.nce-info-body { padding: 1.25rem 1.5rem 1.25rem 1.75rem; }
.nce-info-text { font-size: 0.82rem; color: var(--cb-gray); margin-bottom: 1rem; }

.nce-info-box {
    background: rgba(8,145,178,0.04);
    border-left: 3px solid var(--cb-cyan);
    padding: 0.6rem 0.85rem;
    font-size: 0.82rem;
    color: var(--cb-gray);
    margin-bottom: 1rem;
}

.nce-section-label {
    font-size: 0.68rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.05em; color: var(--cb-gray); margin-bottom: 0.6rem;
}
.nce-placeholder-list { list-style: none; padding: 0; margin: 0; }
.nce-placeholder-list li { font-size: 0.8rem; color: var(--cb-gray); padding: 0.25rem 0; border-bottom: 1px solid var(--cb-light); }
.nce-placeholder-list li:last-child { border-bottom: none; }
.nce-placeholder-list code {
    font-size: 0.72rem; color: var(--cb-accent);
    background: rgba(227,72,36,0.06);
    border: 1px solid rgba(227,72,36,0.15);
    padding: 0.1rem 0.35rem;
    display: inline-block; margin-bottom: 0.1rem;
}

/* ── Validation summary ── */
.nce-validation {
    border-radius: 0; border: 1px solid var(--cb-border);
    border-left: 4px solid var(--cb-danger);
    background: rgba(220,38,38,0.04);
    padding: 0.85rem 1.25rem; font-size: 0.85rem;
    margin-bottom: 1.25rem; color: var(--cb-danger);
}

/* ── Form ── */
.nce-form-row { margin-bottom: 0.85rem; }
.nce-form-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; margin-bottom: 0.85rem; }

.nce-label {
    display: block; font-size: 0.8rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.04em;
    color: var(--cb-dark); margin-bottom: 0.35rem;
}
.nce-required { color: var(--cb-danger); margin-left: 0.2rem; }
.nce-input, .nce-textarea {
    width: 100%; border: 1px solid var(--cb-border);
    font-size: 0.85rem; color: var(--cb-dark);
    padding: 0.5rem 0.75rem; border-radius: 0;
    background: var(--cb-white); transition: border-color 0.2s, box-shadow 0.2s;
}
.nce-input:focus, .nce-textarea:focus {
    outline: none;
    border-color: var(--cb-accent);
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}
.nce-input[readonly], .nce-input:disabled {
    background: var(--cb-light); color: var(--cb-gray); cursor: not-allowed;
}
.nce-textarea { resize: vertical; min-height: 80px; }
.nce-form-text { font-size: 0.72rem; color: var(--cb-muted); margin-top: 0.3rem; }
.nce-validation-msg { font-size: 0.72rem; color: var(--cb-danger); margin-top: 0.25rem; }

/* ── Toggle switch override ── */
.nce-switch-row {
    display: flex; align-items: center; justify-content: space-between;
    padding: 0.75rem 0; border-top: 1px solid var(--cb-light);
    border-bottom: 1px solid var(--cb-light); margin: 0.85rem 0;
}
.nce-switch-label-text { font-size: 0.85rem; font-weight: 600; color: var(--cb-dark); }
.nce-switch-sub { font-size: 0.72rem; color: var(--cb-muted); margin-top: 0.15rem; }
/* ── Separator ── */
.nce-separator { border-top: 1px solid var(--cb-light); margin: 1.5rem 0; }

/* ── Buttons ── */
.nce-form-actions { display: flex; justify-content: space-between; align-items: center; gap: 0.5rem; }
.nce-btn-amber {
    padding: 0.55rem 1.5rem; font-size: 0.85rem; font-weight: 600;
    color: #fff; background: var(--cb-amber); border: 2px solid var(--cb-amber);
    border-radius: 0; cursor: pointer; display: inline-flex; align-items: center; gap: 0.4rem;
    transition: background 0.2s, box-shadow 0.2s;
}
.nce-btn-amber:hover { background: var(--cb-amber-hover); border-color: var(--cb-amber-hover); box-shadow: 0 2px 8px rgba(217,119,6,0.2); }
.nce-btn-secondary {
    padding: 0.55rem 1.25rem; font-size: 0.85rem; font-weight: 600;
    color: var(--cb-gray); background: transparent; border: 2px solid var(--cb-border);
    border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem;
    transition: border-color 0.2s, color 0.2s;
}
.nce-btn-secondary:hover { border-color: var(--cb-dark); color: var(--cb-dark); text-decoration: none; }

/* ── Responsive ── */
@media (max-width: 991.98px) {
    .nce-layout { grid-template-columns: 1fr; }
    .nce-info-card { position: static; }
}
@media (max-width: 575.98px) {
    .nce-page { padding: 1rem; }
    .nce-form-2col { grid-template-columns: 1fr; }
}

/* ============================================
    NotificheConfig > DETAILS PAGE STYLES
============================================ */


/* ── Page ── */
.ncd-page { padding: 2rem; }

/* ── Breadcrumb ── */
.ncd-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.ncd-breadcrumb a { color: var(--cb-accent); text-decoration: none; font-weight: 500; }
.ncd-breadcrumb a:hover { color: var(--cb-accent-hover); text-decoration: underline; }
.ncd-breadcrumb .ncd-sep { color: var(--cb-border); }
.ncd-breadcrumb .ncd-current { color: var(--cb-gray); font-weight: 500; }

/* ── Alerts ── */
.ncd-alert {
    border-radius: 0; border: 1px solid var(--cb-border);
    padding: 0.85rem 1.25rem; font-size: 0.85rem;
    display: flex; align-items: center; gap: 0.5rem;
    margin-bottom: 1.5rem;
}
.ncd-alert-success { border-left: 4px solid var(--cb-green); background: rgba(5,150,105,0.05); color: var(--cb-dark); }
.ncd-alert-success svg { color: var(--cb-green); flex-shrink: 0; }
.ncd-alert-danger  { border-left: 4px solid var(--cb-danger); background: rgba(220,38,38,0.04); color: var(--cb-dark); }
.ncd-alert-danger svg  { color: var(--cb-danger); flex-shrink: 0; }
.ncd-alert-close { margin-left: auto; background: transparent; border: none; cursor: pointer; color: var(--cb-muted); padding: 0; flex-shrink: 0; }
.ncd-alert-close:hover { color: var(--cb-dark); }

/* ── Layout ── */
.ncd-layout { display: grid; grid-template-columns: 1fr 300px; gap: 1.5rem; align-items: start; }

/* ── Card base ── */
.ncd-card { background: var(--cb-white); border: 1px solid var(--cb-border); overflow: hidden; margin-bottom: 1.5rem; }
.ncd-card:last-child { margin-bottom: 0; }

.ncd-card-header {
    position: relative;
    padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--cb-border);
    display: flex; align-items: center; gap: 0.75rem;
}
.ncd-card-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0;
    width: 4px;
}
.ncd-card-header--accent::before  { background: var(--cb-accent); }
.ncd-card-header--green::before   { background: var(--cb-green); }
.ncd-card-header--neutral::before { background: var(--cb-border); }
.ncd-card-header--cyan::before    { background: var(--cb-cyan); }

.ncd-icon-box {
    width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.ncd-icon-box--accent  { background: rgba(227,72,36,0.08);  border: 1px solid rgba(227,72,36,0.15); }
.ncd-icon-box--green   { background: rgba(5,150,105,0.08);  border: 1px solid rgba(5,150,105,0.15); }
.ncd-icon-box--neutral { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); }
.ncd-icon-box--cyan    { background: rgba(8,145,178,0.08);  border: 1px solid rgba(8,145,178,0.15); }

.ncd-card-title { font-size: 0.9rem; font-weight: 700; color: var(--cb-dark); margin: 0; flex: 1; }
.ncd-card-body  { padding: 1.5rem 1.5rem 1.5rem 1.75rem; }

/* ── Header actions ── */
.ncd-header-actions { display: flex; align-items: center; gap: 0.5rem; }

.ncd-btn-outline {
    padding: 0.4rem 0.9rem; font-size: 0.82rem; font-weight: 600;
    background: transparent; border-radius: 0; text-decoration: none;
    display: inline-flex; align-items: center; gap: 0.35rem;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.ncd-btn-outline-amber  { border: 1px solid rgba(217,119,6,0.2);  color: var(--cb-amber); }
.ncd-btn-outline-amber:hover  { background: rgba(217,119,6,0.08);  border-color: var(--cb-amber);  color: var(--cb-amber); text-decoration: none; }
.ncd-btn-outline-green  { border: 1px solid rgba(5,150,105,0.2);  color: var(--cb-green); }
.ncd-btn-outline-green:hover  { background: rgba(5,150,105,0.08);  border-color: var(--cb-green);  color: var(--cb-green); text-decoration: none; }
.ncd-btn-outline-gray   { border: 1px solid rgba(107,114,128,0.2); color: var(--cb-gray); }
.ncd-btn-outline-gray:hover   { background: rgba(107,114,128,0.08); border-color: var(--cb-gray);   color: var(--cb-gray); text-decoration: none; }

.ncd-toggle-form { display: inline-flex; }
.ncd-toggle-btn {
    padding: 0.4rem 0.9rem; font-size: 0.82rem; font-weight: 600;
    border-radius: 0; cursor: pointer; display: inline-flex; align-items: center; gap: 0.35rem;
    transition: background 0.15s, border-color 0.15s;
}
.ncd-toggle-btn-active   { background: transparent; border: 1px solid rgba(5,150,105,0.2);  color: var(--cb-green); }
.ncd-toggle-btn-active:hover   { background: rgba(5,150,105,0.08);  border-color: var(--cb-green); }
.ncd-toggle-btn-inactive { background: transparent; border: 1px solid rgba(107,114,128,0.2); color: var(--cb-gray); }
.ncd-toggle-btn-inactive:hover { background: rgba(107,114,128,0.08); border-color: var(--cb-gray); }

/* ── Fields grid ── */
.ncd-fields-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.5rem; }
.ncd-field { display: flex; flex-direction: column; padding: 0.6rem 0; border-bottom: 1px solid var(--cb-light); }
.ncd-field--full { grid-column: 1 / -1; }
.ncd-field:last-child { border-bottom: none; }
.ncd-field-label { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--cb-gray); margin-bottom: 0.2rem; }
.ncd-field-value { font-size: 0.85rem; color: var(--cb-dark); font-weight: 500; }
.ncd-field-empty { font-size: 0.85rem; color: var(--cb-muted); font-style: italic; }
.ncd-code { font-family: monospace; font-size: 0.78rem; color: var(--cb-accent); background: rgba(227,72,36,0.06); border: 1px solid rgba(227,72,36,0.15); padding: 0.15rem 0.4rem; }

/* ── Badge modulo ── */
.ncd-badge {
    display: inline-flex; align-items: center; gap: 0.25rem;
    padding: 0.25rem 0.65rem; font-size: 0.68rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.03em; border-radius: 0;
    background: rgba(8,145,178,0.06); color: var(--cb-cyan);
    border: 1px solid rgba(8,145,178,0.2);
}

/* ── Table ── */
.ncd-table { width: 100%; border-collapse: collapse; }
.ncd-table thead th { background: var(--cb-dark); color: #fff; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; padding: 0.65rem 1rem; border: none; }
.ncd-table thead th:last-child { text-align: right; width: 80px; }
.ncd-table tbody td { font-size: 0.83rem; color: var(--cb-dark); padding: 0.7rem 1rem; border-bottom: 1px solid var(--cb-light); vertical-align: middle; }
.ncd-table tbody tr:hover { background: rgba(227,72,36,0.03); }
.ncd-table tbody tr:last-child td { border-bottom: none; }
.ncd-table td.ncd-td-right { text-align: right; }

/* ── Destinatario badge ── */
.ncd-dest-badge {
    display: inline-flex; align-items: center; gap: 0.3rem;
    padding: 0.2rem 0.55rem; font-size: 0.68rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.03em; border-radius: 0;
}
.ncd-dest-name { font-weight: 600; font-size: 0.85rem; color: var(--cb-dark); }
.ncd-dest-note { font-size: 0.75rem; color: var(--cb-muted); }

/* ── Action btn ── */
.ncd-action-btn {
    width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center;
    background: transparent; border-radius: 0; cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}
.ncd-action-btn-danger { border: 1px solid rgba(220,38,38,0.15); color: var(--cb-danger); }
.ncd-action-btn-danger:hover { background: rgba(220,38,38,0.08); border-color: var(--cb-danger); }

/* ── Empty state ── */
.ncd-empty { padding: 3rem 2rem; text-align: center; }
.ncd-empty svg { color: var(--cb-muted); margin-bottom: 1rem; }
.ncd-empty p { color: var(--cb-gray); font-size: 0.85rem; margin: 0 0 0.25rem; }
.ncd-empty small { color: var(--cb-muted); font-size: 0.78rem; display: block; margin-bottom: 1.25rem; }

.ncd-btn-green {
    padding: 0.5rem 1.25rem; font-size: 0.85rem; font-weight: 600;
    color: #fff; background: var(--cb-green); border: 2px solid var(--cb-green);
    border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem;
    transition: background 0.2s;
}
.ncd-btn-green:hover { background: var(--cb-green-hover); border-color: var(--cb-green-hover); color: #fff; text-decoration: none; }

/* ── Sidebar status card ── */
.ncd-status-box {
    padding: 0.85rem 1rem; font-size: 0.85rem;
    display: flex; align-items: flex-start; gap: 0.6rem;
    border-left: 4px solid;
}
.ncd-status-box--success { border-color: var(--cb-green); background: rgba(5,150,105,0.05); }
.ncd-status-box--success svg { color: var(--cb-green); flex-shrink: 0; margin-top: 1px; }
.ncd-status-box--warn    { border-color: var(--cb-amber); background: rgba(217,119,6,0.04); }
.ncd-status-box--warn svg    { color: var(--cb-amber); flex-shrink: 0; margin-top: 1px; }
.ncd-status-box--secondary { border-color: var(--cb-gray); background: rgba(107,114,128,0.04); }
.ncd-status-box--secondary svg { color: var(--cb-gray); flex-shrink: 0; margin-top: 1px; }
.ncd-status-title { font-size: 0.85rem; font-weight: 700; color: var(--cb-dark); margin-bottom: 0.2rem; }
.ncd-status-sub { font-size: 0.75rem; color: var(--cb-gray); }

/* ── Audit list ── */
.ncd-audit-list { list-style: none; padding: 0; margin: 0; }
.ncd-audit-item { display: flex; justify-content: space-between; align-items: baseline; padding: 0.55rem 0; border-bottom: 1px solid var(--cb-light); }
.ncd-audit-item:last-child { border-bottom: none; }
.ncd-audit-label { font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--cb-gray); }
.ncd-audit-value { font-size: 0.82rem; color: var(--cb-dark); font-weight: 500; }

/* ── Back btn ── */
.ncd-btn-secondary {
    padding: 0.55rem 1.25rem; font-size: 0.85rem; font-weight: 600;
    color: var(--cb-gray); background: transparent; border: 2px solid var(--cb-border);
    border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem;
    transition: border-color 0.2s, color 0.2s;
}
.ncd-btn-secondary:hover { border-color: var(--cb-dark); color: var(--cb-dark); text-decoration: none; }

/* ── Responsive ── */
@media (max-width: 991.98px) {
    .ncd-layout { grid-template-columns: 1fr; }
    .ncd-sidebar { order: -1; }
    .ncd-fields-grid { grid-template-columns: 1fr; }
    .ncd-field--full { grid-column: 1; }
}
@media (max-width: 575.98px) {
    .ncd-page { padding: 1rem; }
    .ncd-header-actions { flex-wrap: wrap; }
}

/* ============================================
    MEZZI > AddDestinatario PAGE STYLES
============================================ */


/* ── Page ── */
.nca-page { padding: 2rem; }

/* ── Breadcrumb ── */
.nca-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.nca-breadcrumb a { color: var(--cb-accent); text-decoration: none; font-weight: 500; }
.nca-breadcrumb a:hover { color: var(--cb-accent-hover); text-decoration: underline; }
.nca-breadcrumb .nca-sep { color: var(--cb-border); }
.nca-breadcrumb .nca-current { color: var(--cb-gray); font-weight: 500; }

/* ── Page Header ── */
.nca-page-header { display: flex; align-items: flex-start; gap: 0.75rem; margin-bottom: 1.5rem; }
.nca-page-icon {
    width: 42px; height: 42px; flex-shrink: 0;
    background: rgba(5,150,105,0.08);
    border: 1px solid rgba(5,150,105,0.15);
    display: flex; align-items: center; justify-content: center;
}
.nca-page-header h1 { font-size: 1.4rem; font-weight: 700; color: var(--cb-dark); letter-spacing: -0.025em; margin: 0 0 0.15rem 0; }
.nca-page-header p { font-size: 0.85rem; color: var(--cb-gray); margin: 0; }

/* ── Layout ── */
.nca-layout { display: grid; grid-template-columns: 1fr 300px; gap: 1.5rem; align-items: start; }

/* ── Card ── */
.nca-card { background: var(--cb-white); border: 1px solid var(--cb-border); overflow: hidden; }
.nca-card-header {
    position: relative;
    padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--cb-border);
    display: flex; align-items: center; gap: 0.75rem;
}
.nca-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.nca-card-header--green::before  { background: var(--cb-green); }
.nca-card-header--cyan::before   { background: var(--cb-cyan); }
.nca-card-icon {
    width: 34px; height: 34px;
    display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.nca-card-icon--green { background: rgba(5,150,105,0.08);  border: 1px solid rgba(5,150,105,0.15); }
.nca-card-icon--cyan  { background: rgba(8,145,178,0.08);  border: 1px solid rgba(8,145,178,0.15); }
.nca-card-title { font-size: 0.9rem; font-weight: 700; color: var(--cb-dark); margin: 0; }
.nca-card-body  { padding: 1.5rem 1.5rem 1.5rem 1.75rem; }

/* ── Validation ── */
.nca-validation {
    border-radius: 0; border: 1px solid var(--cb-border);
    border-left: 4px solid var(--cb-danger);
    background: rgba(220,38,38,0.04);
    padding: 0.85rem 1.25rem; font-size: 0.85rem;
    margin-bottom: 1.25rem; color: var(--cb-danger);
}

/* ── Form ── */
.nca-form-row { margin-bottom: 1rem; }
.nca-label {
    display: block; font-size: 0.8rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.04em;
    color: var(--cb-dark); margin-bottom: 0.35rem;
}
.nca-required { color: var(--cb-danger); margin-left: 0.2rem; }
.nca-input, .nca-select {
    width: 100%; border: 1px solid var(--cb-border);
    font-size: 0.85rem; color: var(--cb-dark);
    padding: 0.5rem 0.75rem; border-radius: 0;
    background: var(--cb-white);
    transition: border-color 0.2s, box-shadow 0.2s;
    appearance: none; -webkit-appearance: none;
}
.nca-select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%236b7280' viewBox='0 0 16 16'%3E%3Cpath d='M7.247 11.14L2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    padding-right: 2rem;
}
.nca-input:focus, .nca-select:focus {
    outline: none;
    border-color: var(--cb-accent);
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}
.nca-validation-msg { font-size: 0.72rem; color: var(--cb-danger); margin-top: 0.25rem; display: block; }
.nca-form-text { font-size: 0.72rem; color: var(--cb-muted); margin-top: 0.3rem; display: flex; align-items: center; gap: 0.3rem; }

/* ── Separator ── */
.nca-separator { border-top: 1px solid var(--cb-light); margin: 1.5rem 0; }

/* ── Buttons ── */
.nca-form-actions { display: flex; justify-content: space-between; align-items: center; }
.nca-btn-green {
    padding: 0.55rem 1.5rem; font-size: 0.85rem; font-weight: 600;
    color: #fff; background: var(--cb-green); border: 2px solid var(--cb-green);
    border-radius: 0; cursor: pointer;
    display: inline-flex; align-items: center; gap: 0.4rem;
    transition: background 0.2s, box-shadow 0.2s;
}
.nca-btn-green:hover { background: var(--cb-green-hover); border-color: var(--cb-green-hover); box-shadow: 0 2px 8px rgba(5,150,105,0.2); }
.nca-btn-secondary {
    padding: 0.55rem 1.25rem; font-size: 0.85rem; font-weight: 600;
    color: var(--cb-gray); background: transparent; border: 2px solid var(--cb-border);
    border-radius: 0; text-decoration: none;
    display: inline-flex; align-items: center; gap: 0.4rem;
    transition: border-color 0.2s, color 0.2s;
}
.nca-btn-secondary:hover { border-color: var(--cb-dark); color: var(--cb-dark); text-decoration: none; }

/* ── Info sidebar ── */
.nca-info-card { background: var(--cb-white); border: 1px solid var(--cb-border); overflow: hidden; position: sticky; top: 72px; }
.nca-type-item { padding: 0.85rem 0; border-bottom: 1px solid var(--cb-light); }
.nca-type-item:last-child { border-bottom: none; padding-bottom: 0; }
.nca-type-badge {
    display: inline-flex; align-items: center; gap: 0.3rem;
    padding: 0.2rem 0.6rem; font-size: 0.68rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.03em; border-radius: 0;
    margin-bottom: 0.4rem;
}
.nca-type-badge--cyan   { background: rgba(8,145,178,0.06);  color: var(--cb-cyan);  border: 1px solid rgba(8,145,178,0.2); }
.nca-type-badge--amber  { background: rgba(217,119,6,0.06);  color: var(--cb-amber); border: 1px solid rgba(217,119,6,0.2); }
.nca-type-badge--accent { background: rgba(227,72,36,0.06);  color: var(--cb-accent);border: 1px solid rgba(227,72,36,0.2); }
.nca-type-desc { font-size: 0.8rem; color: var(--cb-gray); margin: 0; }

/* ── Responsive ── */
@media (max-width: 991.98px) {
    .nca-layout { grid-template-columns: 1fr; }
    .nca-info-card { position: static; }
}
@media (max-width: 575.98px) {
    .nca-page { padding: 1rem; }
}

/* ============================================
    LOTTI > _PartecipantiPartial PAGE STYLES
============================================ */

/* ----- Statistiche ----- */
.tab-stats-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    margin-bottom: 1.5rem;
}

@media (max-width: 991.98px) {
    .tab-stats-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 575.98px) {
    .tab-stats-grid { grid-template-columns: 1fr 1fr; gap: 0.75rem; }
}

.tab-stat-card {
    background: #fff;
    border: 1px solid #e0e1e3;
    border-radius: 0;
    padding: 1.25rem 1.5rem;
    position: relative;
    overflow: hidden;
}

.tab-stat-card::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
}

.tab-stat-card--accent::before  { background: #E34824; }
.tab-stat-card--success::before { background: #059669; }
.tab-stat-card--info::before    { background: #0891b2; }
.tab-stat-card--amber::before   { background: #d97706; }

.tab-stat-inner {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.tab-stat-icon {
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1.1rem;
}

.tab-stat-icon--accent  { background: rgba(227,72,36,0.08);  border: 1px solid rgba(227,72,36,0.15);  color: #E34824; }
.tab-stat-icon--success { background: rgba(5,150,105,0.08);  border: 1px solid rgba(5,150,105,0.15);  color: #059669; }
.tab-stat-icon--info    { background: rgba(8,145,178,0.08);  border: 1px solid rgba(8,145,178,0.15);  color: #0891b2; }
.tab-stat-icon--amber   { background: rgba(217,119,6,0.08);  border: 1px solid rgba(217,119,6,0.15);  color: #d97706; }

.tab-stat-label {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6b7280;
    margin-bottom: 0.15rem;
}

.tab-stat-value {
    font-size: 1.35rem;
    font-weight: 700;
    color: #151515;
    line-height: 1.1;
}

/* ----- Card ----- */
.tab-card {
    background: #fff;
    border: 1px solid #e0e1e3;
    border-radius: 0;
    overflow: hidden;
    margin-bottom: 1.5rem;
}

.tab-card-header {
    padding: 1rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.65rem;
}

.tab-card-header::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
}

.tab-card--accent  .tab-card-header::before { background: #E34824; }
.tab-card--gray    .tab-card-header::before { background: #6b7280; }
.tab-card--info    .tab-card-header::before { background: #0891b2; }

.tab-card-icon {
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1rem;
}

.tab-card-icon--accent { background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15); color: #E34824; }
.tab-card-icon--gray   { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); color: #6b7280; }
.tab-card-icon--info   { background: rgba(8,145,178,0.08); border: 1px solid rgba(8,145,178,0.15); color: #0891b2; }

.tab-card-title {
    font-size: 0.88rem;
    font-weight: 700;
    color: #151515;
    margin: 0;
}

.tab-card-body {
    padding: 1.5rem;
    padding-left: 1.75rem;
}

.tab-card-body--flush {
    padding: 0;
}

.tab-card-footer {
    padding: 0.85rem 1.5rem;
    border-top: 1px solid #e0e1e3;
    background: #EEEFF0;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 0.5rem;
}

/* ----- Tabella ----- */
.tab-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.83rem;
}

.tab-table thead th {
    background: #151515;
    color: #fff;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 0.7rem 1rem;
    border: none;
    white-space: nowrap;
}

.tab-table tbody td {
    padding: 0.75rem 1rem;
    border-bottom: 1px solid #EEEFF0;
    color: #151515;
    vertical-align: middle;
}

.tab-table tbody tr:last-child td {
    border-bottom: none;
}

.tab-table tbody tr:hover td {
    background: rgba(227,72,36,0.03);
}

.tab-table tbody tr.tab-row--highlight td {
    background: rgba(5,150,105,0.04);
}

.tab-table tbody tr.tab-row--highlight:hover td {
    background: rgba(5,150,105,0.07);
}

/* ----- Badge ----- */
.tab-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.25rem 0.65rem;
    font-size: 0.68rem;
    font-weight: 600;
    border-radius: 0;
    border: 1px solid transparent;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    white-space: nowrap;
}

.tab-badge--primary   { background: rgba(227,72,36,0.06);   border-color: rgba(227,72,36,0.20);   color: #E34824; }
.tab-badge--success   { background: rgba(5,150,105,0.06);   border-color: rgba(5,150,105,0.20);   color: #059669; }
.tab-badge--danger    { background: rgba(220,38,38,0.06);   border-color: rgba(220,38,38,0.20);   color: #dc2626; }
.tab-badge--info      { background: rgba(8,145,178,0.06);   border-color: rgba(8,145,178,0.20);   color: #0891b2; }
.tab-badge--secondary { background: rgba(107,114,128,0.06); border-color: rgba(107,114,128,0.20); color: #6b7280; }
.tab-badge--amber     { background: rgba(217,119,6,0.06);   border-color: rgba(217,119,6,0.20);   color: #d97706; }
.tab-badge--dark      { background: rgba(21,21,21,0.06);    border-color: rgba(21,21,21,0.20);    color: #151515; }

/* Posizione graduatoria */
.tab-pos-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.2rem;
    min-width: 28px;
    padding: 0.2rem 0.45rem;
    font-size: 0.68rem;
    font-weight: 700;
    border-radius: 0;
    border: 1px solid transparent;
}

.tab-pos-badge--gold   { background: rgba(217,119,6,0.10);  border-color: rgba(217,119,6,0.25);  color: #d97706; }
.tab-pos-badge--silver { background: rgba(107,114,128,0.10); border-color: rgba(107,114,128,0.25); color: #6b7280; }
.tab-pos-badge--bronze { background: rgba(180,83,9,0.10);   border-color: rgba(180,83,9,0.25);   color: #b45309; }
.tab-pos-badge--other  { background: rgba(21,21,21,0.05);   border-color: rgba(21,21,21,0.15);   color: #6b7280; }

/* ----- Bottoni ----- */
.tab-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.55rem 1.5rem;
    font-size: 0.85rem;
    font-weight: 600;
    border-radius: 0;
    border: 2px solid transparent;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.15s, border-color 0.15s, box-shadow 0.15s;
    white-space: nowrap;
}

.tab-btn--accent {
    background: #E34824;
    border-color: #E34824;
    color: #fff;
}

.tab-btn--accent:hover {
    background: #c93d1e;
    border-color: #c93d1e;
    color: #fff;
    box-shadow: 0 2px 8px rgba(227,72,36,0.20);
}

.tab-btn--icon {
    width: 32px;
    height: 32px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.85rem;
    border: 1px solid rgba(227,72,36,0.15);
    background: transparent;
    color: #E34824;
    border-radius: 0;
    text-decoration: none;
    transition: background 0.15s, border-color 0.15s;
}

.tab-btn--icon:hover {
    background: rgba(227,72,36,0.06);
    border-color: #E34824;
    color: #E34824;
}

/* ----- Alert empty state ----- */
.tab-alert {
    border-radius: 0;
    border: 1px solid #e0e1e3;
    padding: 0.85rem 1.25rem;
    font-size: 0.85rem;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin-bottom: 1rem;
}

.tab-alert--info {
    border-left: 4px solid #0891b2;
    background: rgba(8,145,178,0.04);
    color: #151515;
}

.tab-alert-title {
    font-size: 0.85rem;
    font-weight: 600;
    color: #151515;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.tab-alert-body {
    font-size: 0.82rem;
    color: #6b7280;
    margin: 0;
}

/* ----- Campo sola lettura (info base asta) ----- */
.tab-field {
    display: flex;
    margin-bottom: 0.5rem;
    align-items: baseline;
    gap: 0.5rem;
}

.tab-field-label {
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6b7280;
    flex-shrink: 0;
    min-width: 140px;
}

.tab-field-value {
    font-size: 0.85rem;
    font-weight: 500;
    color: #151515;
}

@media (max-width: 575.98px) {
    .tab-field { flex-direction: column; gap: 0.15rem; }
    .tab-field-label { min-width: auto; }
}

/* ----- Scostamento offerta ----- */
.tab-scost-positive { font-size: 0.72rem; color: #dc2626; }
.tab-scost-negative { font-size: 0.72rem; color: #059669; }

/* ----- Responsive tabella ----- */
@media (max-width: 767.98px) {
    .tab-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .tab-table thead th,
    .tab-table tbody td { padding: 0.6rem 0.75rem; }
}

/* ============================================
    PARTECIPANTI LOTTO INDEX PAGE STYLES
============================================ */

.pli-page { padding: 2rem; }

@media (max-width: 575.98px) {
    .pli-page { padding: 1rem; }
}

/* ----- Breadcrumb ----- */
.pli-breadcrumb {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    flex-wrap: wrap;
    margin-bottom: 1.25rem;
}

.pli-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.pli-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.pli-breadcrumb .pli-sep { color: #e0e1e3; }
.pli-breadcrumb .pli-current { color: #6b7280; font-weight: 500; }

/* ----- Info Lotto banner ----- */
.pli-lotto-banner {
    background: #fff;
    border: 1px solid #e0e1e3;
    border-radius: 0;
    position: relative;
    overflow: hidden;
    padding: 1.25rem 1.5rem;
    margin-bottom: 1.5rem;
}

.pli-lotto-banner::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
    background: #E34824;
}

.pli-lotto-banner-title {
    font-size: 0.95rem;
    font-weight: 700;
    color: #151515;
    margin-bottom: 0.65rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.pli-lotto-banner-title i { color: #E34824; }

.pli-lotto-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
}

.pli-lotto-meta-item {
    font-size: 0.83rem;
    color: #6b7280;
}

.pli-lotto-meta-item strong { color: #151515; font-weight: 600; }

/* ----- Alert TempData ----- */
.pli-alert {
    border-radius: 0;
    border: 1px solid #e0e1e3;
    padding: 0.85rem 1.25rem;
    font-size: 0.85rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.pli-alert--success {
    border-left: 4px solid #059669;
    background: rgba(5,150,105,0.05);
    color: #151515;
}

.pli-alert--danger {
    border-left: 4px solid #dc2626;
    background: rgba(220,38,38,0.04);
    color: #151515;
}

.pli-alert-left { display: flex; align-items: center; gap: 0.5rem; }

.pli-alert-close {
    background: transparent;
    border: none;
    cursor: pointer;
    color: #6b7280;
    font-size: 1rem;
    padding: 0;
    line-height: 1;
    flex-shrink: 0;
}

.pli-alert-close:hover { color: #151515; }

/* ----- Toolbar ----- */
.pli-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.25rem;
    flex-wrap: wrap;
}

.pli-toolbar-left {
    display: flex;
    align-items: center;
    gap: 0.65rem;
}

.pli-toolbar-title {
    font-size: 1rem;
    font-weight: 700;
    color: #151515;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.pli-count-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 0.4rem;
    font-size: 0.7rem;
    font-weight: 700;
    border-radius: 0;
    border: 1px solid rgba(107,114,128,0.20);
    background: rgba(107,114,128,0.06);
    color: #6b7280;
}

/* ----- Card tabella ----- */
.pli-card {
    background: #fff;
    border: 1px solid #e0e1e3;
    border-radius: 0;
    overflow: hidden;
    margin-bottom: 1.5rem;
}

/* ----- Tabella ----- */
.pli-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }

.pli-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.83rem;
}

.pli-table thead th {
    background: #151515;
    color: #fff;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 0.7rem 1rem;
    border: none;
    white-space: nowrap;
}

.pli-table tbody td {
    padding: 0.75rem 1rem;
    border-bottom: 1px solid #EEEFF0;
    color: #151515;
    vertical-align: middle;
}

.pli-table tbody tr:last-child td { border-bottom: none; }

.pli-table tbody tr:hover td { background: rgba(227,72,36,0.03); }

@media (max-width: 767.98px) {
    .pli-table thead th,
    .pli-table tbody td { padding: 0.6rem 0.75rem; }
}

/* ----- Badge ----- */
.pli-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.25rem 0.65rem;
    font-size: 0.68rem;
    font-weight: 600;
    border-radius: 0;
    border: 1px solid transparent;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    white-space: nowrap;
}

.pli-badge--success   { background: rgba(5,150,105,0.06);   border-color: rgba(5,150,105,0.20);   color: #059669; }
.pli-badge--danger    { background: rgba(220,38,38,0.06);   border-color: rgba(220,38,38,0.20);   color: #dc2626; }
.pli-badge--secondary { background: rgba(107,114,128,0.06); border-color: rgba(107,114,128,0.20); color: #6b7280; }
.pli-badge--info      { background: rgba(8,145,178,0.06);   border-color: rgba(8,145,178,0.20);   color: #0891b2; }

/* ----- Link anagrafica inline ----- */
.pli-link-inline {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: #0891b2;
    text-decoration: none;
    border: 1px solid rgba(8,145,178,0.20);
    padding: 0.2rem 0.5rem;
    border-radius: 0;
    transition: background 0.15s, border-color 0.15s;
}

.pli-link-inline:hover {
    background: rgba(8,145,178,0.06);
    border-color: #0891b2;
    color: #0891b2;
}

/* ----- Bottoni azione tabella ----- */
.pli-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
}

.pli-btn-icon {
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.85rem;
    border: 1px solid transparent;
    background: transparent;
    border-radius: 0;
    text-decoration: none;
    transition: background 0.15s, border-color 0.15s;
    cursor: pointer;
}

.pli-btn-icon--info {
    border-color: rgba(8,145,178,0.15);
    color: #0891b2;
}

.pli-btn-icon--info:hover {
    background: rgba(8,145,178,0.06);
    border-color: #0891b2;
    color: #0891b2;
}

.pli-btn-icon--amber {
    border-color: rgba(217,119,6,0.15);
    color: #d97706;
}

.pli-btn-icon--amber:hover {
    background: rgba(217,119,6,0.06);
    border-color: #d97706;
    color: #d97706;
}

.pli-btn-icon--danger {
    border-color: rgba(220,38,38,0.15);
    color: #dc2626;
}

.pli-btn-icon--danger:hover {
    background: rgba(220,38,38,0.06);
    border-color: #dc2626;
    color: #dc2626;
}

/* ----- Bottoni principali ----- */
.pli-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.55rem 1.5rem;
    font-size: 0.85rem;
    font-weight: 600;
    border-radius: 0;
    border: 2px solid transparent;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.15s, border-color 0.15s, box-shadow 0.15s;
    white-space: nowrap;
}

.pli-btn--accent {
    background: #E34824;
    border-color: #E34824;
    color: #fff;
}

.pli-btn--accent:hover {
    background: #c93d1e;
    border-color: #c93d1e;
    color: #fff;
    box-shadow: 0 2px 8px rgba(227,72,36,0.20);
}

.pli-btn--secondary {
    background: transparent;
    color: #6b7280;
    border-color: #e0e1e3;
}

.pli-btn--secondary:hover {
    border-color: #151515;
    color: #151515;
}

/* ----- Empty state ----- */
.pli-empty {
    border-radius: 0;
    border: 1px solid #e0e1e3;
    border-left: 4px solid #0891b2;
    background: rgba(8,145,178,0.04);
    padding: 1.5rem 1.5rem;
    margin-bottom: 1.5rem;
}

.pli-empty-title {
    font-size: 0.88rem;
    font-weight: 600;
    color: #151515;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.35rem;
}

.pli-empty-title i { color: #0891b2; }

.pli-empty-body {
    font-size: 0.83rem;
    color: #6b7280;
    margin: 0;
}

/* ----- Note troncate ----- */
.pli-note-truncate {
    font-size: 0.82rem;
    color: #6b7280;
    cursor: default;
}

/* ----- Footer ----- */
.pli-footer { margin-top: 0.5rem; }

/* ----- Valore offerta ----- */
.pli-amount {
    font-weight: 700;
    color: #059669;
}

/* ============================================
    PARTECIPANTI LOTTO > CREATE PAGE STYLES
============================================ */

.plc-page { padding: 2rem; }

@media (max-width: 575.98px) {
    .plc-page { padding: 1rem; }
}

/* ----- Breadcrumb ----- */
.plc-breadcrumb {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    flex-wrap: wrap;
    margin-bottom: 1.25rem;
}

.plc-breadcrumb a {
    color: #E34824;
    text-decoration: none;
    font-weight: 500;
}

.plc-breadcrumb a:hover {
    color: #c93d1e;
    text-decoration: underline;
}

.plc-breadcrumb .plc-sep { color: #e0e1e3; }

.plc-breadcrumb .plc-current {
    color: #6b7280;
    font-weight: 500;
}

/* ----- Header ----- */
.plc-header {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    margin-bottom: 1.75rem;
}

.plc-title-icon {
    width: 34px;
    height: 34px;
    background: rgba(5,150,105,0.08);
    border: 1px solid rgba(5,150,105,0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: #059669;
    font-size: 1rem;
    margin-top: 0.15rem;
}

.plc-title {
    font-size: 1.45rem;
    font-weight: 700;
    color: #151515;
    letter-spacing: -0.025em;
    margin: 0 0 0.25rem;
    line-height: 1.2;
}

.plc-subtitle {
    font-size: 0.82rem;
    color: #6b7280;
    margin: 0;
}

.plc-subtitle strong {
    color: #151515;
    font-weight: 600;
}

/* ----- Card ----- */
.plc-card {
    background: #fff;
    border: 1px solid #e0e1e3;
    border-radius: 0;
    overflow: hidden;
    margin-bottom: 1.5rem;
}

.plc-card-header {
    padding: 1rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.65rem;
}

.plc-card-header::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
}

.plc-card--green .plc-card-header::before  { background: #059669; }
.plc-card--info  .plc-card-header::before  { background: #0891b2; }
.plc-card--gray  .plc-card-header::before  { background: #6b7280; }

.plc-card-icon {
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1rem;
}

.plc-card-icon--green { background: rgba(5,150,105,0.08);  border: 1px solid rgba(5,150,105,0.15);  color: #059669; }
.plc-card-icon--info  { background: rgba(8,145,178,0.08);  border: 1px solid rgba(8,145,178,0.15);  color: #0891b2; }
.plc-card-icon--gray  { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); color: #6b7280; }

.plc-card-title {
    font-size: 0.88rem;
    font-weight: 700;
    color: #151515;
    margin: 0;
}

.plc-card-body {
    padding: 1.5rem;
    padding-left: 1.75rem;
}

/* ----- Form ----- */
.plc-form-group { margin-bottom: 1.25rem; }

.plc-label {
    display: block;
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #151515;
    margin-bottom: 0.4rem;
}

.plc-label .plc-required { color: #dc2626; }
.plc-label .plc-optional { color: #9ca3af; font-weight: 400; text-transform: none; letter-spacing: 0; font-size: 0.75rem; }

.plc-input,
.plc-select,
.plc-textarea {
    display: block;
    width: 100%;
    padding: 0.5rem 0.75rem;
    font-size: 0.85rem;
    color: #151515;
    background: #fff;
    border: 1px solid #e0e1e3;
    border-radius: 0;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.plc-input:focus,
.plc-select:focus,
.plc-textarea:focus {
    outline: none;
    border-color: #E34824;
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}

.plc-input[readonly],
.plc-input:disabled {
    background: #EEEFF0;
    color: #6b7280;
}

.plc-textarea { resize: vertical; min-height: 100px; }

.plc-input-group {
    display: flex;
}

.plc-input-group-text {
    padding: 0.5rem 0.75rem;
    font-size: 0.85rem;
    background: #EEEFF0;
    border: 1px solid #e0e1e3;
    border-right: none;
    border-radius: 0;
    color: #6b7280;
    white-space: nowrap;
}

.plc-input-group .plc-input {
    border-left: none;
}

.plc-input-group .plc-input:focus {
    border-color: #E34824;
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}

.plc-form-text {
    font-size: 0.72rem;
    color: #9ca3af;
    margin-top: 0.3rem;
    display: flex;
    align-items: flex-start;
    gap: 0.3rem;
}

.plc-form-text--success { color: #059669; }

.plc-validation-error {
    font-size: 0.72rem;
    color: #dc2626;
    margin-top: 0.25rem;
}

/* ----- Alert validation summary ----- */
.plc-alert-danger {
    border-radius: 0;
    border: 1px solid #e0e1e3;
    border-left: 4px solid #dc2626;
    background: rgba(220,38,38,0.04);
    padding: 0.85rem 1.25rem;
    font-size: 0.85rem;
    color: #151515;
    margin-bottom: 1.25rem;
}

/* ----- Separatore form ----- */
.plc-divider {
    border: none;
    border-top: 1px solid #EEEFF0;
    margin: 1.5rem 0;
}

/* ----- Checkbox / Switch ----- */
.plc-check-group {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.plc-check-label {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    font-weight: 500;
    color: #151515;
    cursor: pointer;
}

.plc-check-input {
    width: 1rem;
    height: 1rem;
    border: 1px solid #e0e1e3;
    border-radius: 0;
    accent-color: #E34824;
    cursor: pointer;
    flex-shrink: 0;
}

/* ----- Info box sidebar ----- */
.plc-info-section {
    margin-bottom: 1.1rem;
    padding-bottom: 1.1rem;
    border-bottom: 1px solid #EEEFF0;
}

.plc-info-section:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

.plc-info-heading {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6b7280;
    margin-bottom: 0.4rem;
}

.plc-info-text {
    font-size: 0.82rem;
    color: #6b7280;
    margin: 0;
    line-height: 1.5;
}

.plc-info-text strong { color: #151515; font-weight: 600; }

.plc-info-list {
    font-size: 0.82rem;
    color: #6b7280;
    padding-left: 1.1rem;
    margin: 0;
    line-height: 1.6;
}

.plc-info-warning {
    display: flex;
    align-items: flex-start;
    gap: 0.4rem;
    font-size: 0.82rem;
    color: #dc2626;
    background: rgba(220,38,38,0.04);
    border-left: 3px solid #dc2626;
    padding: 0.5rem 0.75rem;
    margin: 0;
}

.plc-info-warning strong { font-weight: 600; }

/* ----- Bottoni ----- */
.plc-btn-group {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 1.5rem;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.plc-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.55rem 1.5rem;
    font-size: 0.85rem;
    font-weight: 600;
    border-radius: 0;
    border: 2px solid transparent;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.15s, border-color 0.15s, box-shadow 0.15s;
    white-space: nowrap;
}

.plc-btn--secondary {
    background: transparent;
    color: #6b7280;
    border-color: #e0e1e3;
}

.plc-btn--secondary:hover {
    border-color: #151515;
    color: #151515;
}

.plc-btn--green {
    background: #059669;
    border-color: #059669;
    color: #fff;
}

.plc-btn--green:hover {
    background: #047857;
    border-color: #047857;
    color: #fff;
    box-shadow: 0 2px 8px rgba(5,150,105,0.20);
}

/* ----- Layout responsive ----- */
.plc-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}

@media (min-width: 992px) {
    .plc-row { grid-template-columns: 1fr 340px; }
}

.plc-flags-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

@media (max-width: 575.98px) {
    .plc-flags-row { grid-template-columns: 1fr; }
}

/* Sidebar sticky */
.plc-sidebar {
    position: sticky;
    top: 72px;
    z-index: 10;
    align-self: start;
}

@media (max-width: 991.98px) {
    .plc-sidebar { position: static; }
}

/* ============================================
    PARTECIPANTI LOTTO > DETAILS PAGE STYLES
============================================ */

.pld-page { padding: 2rem; }

@media (max-width: 575.98px) {
    .pld-page { padding: 1rem; }
}

/* ----- Breadcrumb ----- */
.pld-breadcrumb {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    flex-wrap: wrap;
    margin-bottom: 1.25rem;
}

.pld-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.pld-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.pld-breadcrumb .pld-sep { color: #e0e1e3; }
.pld-breadcrumb .pld-current { color: #6b7280; font-weight: 500; }

/* ----- Header ----- */
.pld-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 1.75rem;
    flex-wrap: wrap;
}

.pld-header-left { display: flex; align-items: flex-start; gap: 0.85rem; }

.pld-title-icon {
    width: 34px;
    height: 34px;
    background: rgba(227,72,36,0.08);
    border: 1px solid rgba(227,72,36,0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: #E34824;
    font-size: 1rem;
    margin-top: 0.15rem;
}

.pld-title {
    font-size: 1.45rem;
    font-weight: 700;
    color: #151515;
    letter-spacing: -0.025em;
    margin: 0 0 0.4rem;
    line-height: 1.2;
}

.pld-header-badges { display: flex; flex-wrap: wrap; gap: 0.4rem; }

.pld-header-actions { display: flex; align-items: center; gap: 0.5rem; flex-shrink: 0; }

/* ----- Badge ----- */
.pld-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.3rem 0.75rem;
    font-size: 0.75rem;
    font-weight: 600;
    border-radius: 0;
    border: 1px solid transparent;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    white-space: nowrap;
}

.pld-badge--success   { background: rgba(5,150,105,0.06);   border-color: rgba(5,150,105,0.20);   color: #059669; }
.pld-badge--danger    { background: rgba(220,38,38,0.06);   border-color: rgba(220,38,38,0.20);   color: #dc2626; }
.pld-badge--secondary { background: rgba(107,114,128,0.06); border-color: rgba(107,114,128,0.20); color: #6b7280; }
.pld-badge--info      { background: rgba(8,145,178,0.06);   border-color: rgba(8,145,178,0.20);   color: #0891b2; }
.pld-badge--primary   { background: rgba(227,72,36,0.06);   border-color: rgba(227,72,36,0.20);   color: #E34824; }

/* ----- Alert TempData ----- */
.pld-alert {
    border-radius: 0;
    border: 1px solid #e0e1e3;
    padding: 0.85rem 1.25rem;
    font-size: 0.85rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 1.5rem;
}

.pld-alert--success {
    border-left: 4px solid #059669;
    background: rgba(5,150,105,0.05);
    color: #151515;
}

.pld-alert-left { display: flex; align-items: center; gap: 0.5rem; }

.pld-alert-close {
    background: transparent;
    border: none;
    cursor: pointer;
    color: #6b7280;
    font-size: 1rem;
    padding: 0;
    line-height: 1;
    flex-shrink: 0;
}

.pld-alert-close:hover { color: #151515; }

/* ----- Layout ----- */
.pld-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}

@media (min-width: 992px) {
    .pld-row { grid-template-columns: 1fr 300px; }
}

/* ----- Card ----- */
.pld-card {
    background: #fff;
    border: 1px solid #e0e1e3;
    border-radius: 0;
    overflow: hidden;
    margin-bottom: 1.5rem;
}

.pld-card:last-child { margin-bottom: 0; }

.pld-card-header {
    padding: 1rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.65rem;
}

.pld-card-header::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
}

.pld-card--accent  .pld-card-header::before { background: #E34824; }
.pld-card--gray    .pld-card-header::before { background: #6b7280; }
.pld-card--neutral .pld-card-header::before { background: #e0e1e3; }

.pld-card-icon {
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1rem;
}

.pld-card-icon--accent  { background: rgba(227,72,36,0.08);   border: 1px solid rgba(227,72,36,0.15);   color: #E34824; }
.pld-card-icon--gray    { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); color: #6b7280; }
.pld-card-icon--neutral { background: rgba(224,225,227,0.40); border: 1px solid rgba(21,21,21,0.10);   color: #6b7280; }

.pld-card-title {
    font-size: 0.88rem;
    font-weight: 700;
    color: #151515;
    margin: 0;
}

.pld-card-body {
    padding: 1.5rem;
    padding-left: 1.75rem;
}

/* ----- Campi sola lettura ----- */
.pld-field {
    display: flex;
    margin-bottom: 0.85rem;
    align-items: baseline;
}

.pld-field:last-child { margin-bottom: 0; }

.pld-field-label {
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6b7280;
    width: 160px;
    flex-shrink: 0;
    padding-top: 0.1rem;
}

.pld-field-value {
    font-size: 0.85rem;
    color: #151515;
    flex: 1;
}

.pld-field-empty {
    font-size: 0.85rem;
    color: #9ca3af;
    font-style: italic;
}

@media (max-width: 991.98px) {
    .pld-field { flex-direction: column; gap: 0.15rem; }
    .pld-field-label { width: auto; }
}

/* ----- Separatore ----- */
.pld-divider {
    border: none;
    border-top: 1px solid #EEEFF0;
    margin: 1rem 0;
}

/* ----- Offerta valore grande ----- */
.pld-amount {
    font-size: 1.25rem;
    font-weight: 700;
    color: #059669;
    letter-spacing: -0.02em;
}

/* ----- Note box ----- */
.pld-note-box {
    background: rgba(8,145,178,0.04);
    border-left: 3px solid #0891b2;
    padding: 0.65rem 0.85rem;
    font-size: 0.85rem;
    color: #151515;
    line-height: 1.5;
}

/* ----- Sidebar sticky ----- */
.pld-sidebar {
    position: sticky;
    top: 72px;
    z-index: 10;
    align-self: start;
}

@media (max-width: 991.98px) {
    .pld-sidebar { position: static; }
}

/* ----- Audit (sistema) ----- */
.pld-sys-item { margin-bottom: 0.85rem; }
.pld-sys-item:last-child { margin-bottom: 0; }

.pld-sys-label {
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6b7280;
    margin-bottom: 0.15rem;
}

.pld-sys-value {
    font-size: 0.85rem;
    color: #151515;
}

.pld-sys-mono {
    font-size: 0.72rem;
    color: #9ca3af;
    font-family: monospace;
    word-break: break-all;
}

/* ----- Bottoni azioni ----- */
.pld-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.55rem 1.5rem;
    font-size: 0.85rem;
    font-weight: 600;
    border-radius: 0;
    border: 2px solid transparent;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.15s, border-color 0.15s, box-shadow 0.15s;
    white-space: nowrap;
}

.pld-btn--amber {
    background: #d97706;
    border-color: #d97706;
    color: #fff;
}

.pld-btn--amber:hover {
    background: #b45309;
    border-color: #b45309;
    color: #fff;
    box-shadow: 0 2px 8px rgba(217,119,6,0.20);
}

.pld-btn--danger {
    background: #dc2626;
    border-color: #dc2626;
    color: #fff;
}

.pld-btn--danger:hover {
    background: #b91c1c;
    border-color: #b91c1c;
    color: #fff;
    box-shadow: 0 2px 8px rgba(220,38,38,0.20);
}

.pld-btn--secondary {
    background: transparent;
    color: #6b7280;
    border-color: #e0e1e3;
}

.pld-btn--secondary:hover {
    border-color: #151515;
    color: #151515;
}

/* Bottoni outline sidebar (azioni rapide) */
.pld-btn--outline-gray {
    background: transparent;
    border: 1px solid rgba(107,114,128,0.20);
    color: #6b7280;
    font-size: 0.82rem;
    padding: 0.4rem 0.8rem;
    border-radius: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    text-decoration: none;
    font-weight: 600;
    transition: background 0.15s, border-color 0.15s;
    width: 100%;
    justify-content: flex-start;
}

.pld-btn--outline-gray:hover {
    background: rgba(107,114,128,0.04);
    border-color: #6b7280;
    color: #151515;
}

.pld-btn--outline-info {
    background: transparent;
    border: 1px solid rgba(8,145,178,0.20);
    color: #0891b2;
    font-size: 0.82rem;
    padding: 0.4rem 0.8rem;
    border-radius: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    text-decoration: none;
    font-weight: 600;
    transition: background 0.15s, border-color 0.15s;
    width: 100%;
    justify-content: flex-start;
}

.pld-btn--outline-info:hover {
    background: rgba(8,145,178,0.04);
    border-color: #0891b2;
    color: #0891b2;
}

.pld-btn--full-amber {
    background: #d97706;
    border: 2px solid #d97706;
    color: #fff;
    font-size: 0.85rem;
    padding: 0.55rem 1rem;
    border-radius: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    text-decoration: none;
    font-weight: 600;
    transition: background 0.15s, border-color 0.15s;
    width: 100%;
    justify-content: flex-start;
}

.pld-btn--full-amber:hover {
    background: #b45309;
    border-color: #b45309;
    color: #fff;
}

.pld-btn--full-danger {
    background: #dc2626;
    border: 2px solid #dc2626;
    color: #fff;
    font-size: 0.85rem;
    padding: 0.55rem 1rem;
    border-radius: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    text-decoration: none;
    font-weight: 600;
    transition: background 0.15s, border-color 0.15s;
    width: 100%;
    justify-content: flex-start;
}

.pld-btn--full-danger:hover {
    background: #b91c1c;
    border-color: #b91c1c;
    color: #fff;
}

.pld-actions-grid {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* ----- Footer torna lista ----- */
.pld-footer { margin-top: 1.5rem; }

/* ============================================
    PARTECIPANTI LOTTO > EDIT PAGE STYLES
============================================ */

.ple-page { padding: 2rem; }

@media (max-width: 575.98px) {
    .ple-page { padding: 1rem; }
}

/* ----- Breadcrumb ----- */
.ple-breadcrumb {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    flex-wrap: wrap;
    margin-bottom: 1.25rem;
}

.ple-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.ple-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.ple-breadcrumb .ple-sep { color: #e0e1e3; }
.ple-breadcrumb .ple-current { color: #6b7280; font-weight: 500; }

/* ----- Header ----- */
.ple-header {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    margin-bottom: 1.75rem;
}

.ple-title-icon {
    width: 34px;
    height: 34px;
    background: rgba(217,119,6,0.08);
    border: 1px solid rgba(217,119,6,0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: #d97706;
    font-size: 1rem;
    margin-top: 0.15rem;
}

.ple-title {
    font-size: 1.45rem;
    font-weight: 700;
    color: #151515;
    letter-spacing: -0.025em;
    margin: 0 0 0.25rem;
    line-height: 1.2;
}

.ple-subtitle {
    font-size: 0.82rem;
    color: #6b7280;
    margin: 0;
}

.ple-subtitle strong { color: #151515; font-weight: 600; }

/* ----- Layout ----- */
.ple-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}

@media (min-width: 992px) {
    .ple-row { grid-template-columns: 1fr 300px; }
}

/* ----- Card ----- */
.ple-card {
    background: #fff;
    border: 1px solid #e0e1e3;
    border-radius: 0;
    overflow: hidden;
    margin-bottom: 1.5rem;
}

.ple-card:last-child { margin-bottom: 0; }

.ple-card-header {
    padding: 1rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.65rem;
}

.ple-card-header::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
}

.ple-card--amber   .ple-card-header::before { background: #d97706; }
.ple-card--info    .ple-card-header::before { background: #0891b2; }
.ple-card--neutral .ple-card-header::before { background: #e0e1e3; }

.ple-card-icon {
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1rem;
}

.ple-card-icon--amber   { background: rgba(217,119,6,0.08);   border: 1px solid rgba(217,119,6,0.15);   color: #d97706; }
.ple-card-icon--info    { background: rgba(8,145,178,0.08);   border: 1px solid rgba(8,145,178,0.15);   color: #0891b2; }
.ple-card-icon--neutral { background: rgba(224,225,227,0.40); border: 1px solid rgba(21,21,21,0.10);    color: #6b7280; }

.ple-card-title {
    font-size: 0.88rem;
    font-weight: 700;
    color: #151515;
    margin: 0;
}

.ple-card-body {
    padding: 1.5rem;
    padding-left: 1.75rem;
}

/* ----- Form ----- */
.ple-form-group { margin-bottom: 1.25rem; }

.ple-label {
    display: block;
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #151515;
    margin-bottom: 0.4rem;
}

.ple-label .ple-required { color: #dc2626; }
.ple-label .ple-optional { color: #9ca3af; font-weight: 400; text-transform: none; letter-spacing: 0; font-size: 0.75rem; }

.ple-input,
.ple-select,
.ple-textarea {
    display: block;
    width: 100%;
    padding: 0.5rem 0.75rem;
    font-size: 0.85rem;
    color: #151515;
    background: #fff;
    border: 1px solid #e0e1e3;
    border-radius: 0;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.ple-input:focus,
.ple-select:focus,
.ple-textarea:focus {
    outline: none;
    border-color: #E34824;
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}

.ple-input[readonly],
.ple-input:disabled {
    background: #EEEFF0;
    color: #6b7280;
}

.ple-textarea { resize: vertical; min-height: 100px; }

.ple-input-group { display: flex; }

.ple-input-group-text {
    padding: 0.5rem 0.75rem;
    font-size: 0.85rem;
    background: #EEEFF0;
    border: 1px solid #e0e1e3;
    border-right: none;
    border-radius: 0;
    color: #6b7280;
    white-space: nowrap;
}

.ple-input-group .ple-input { border-left: none; }

.ple-input-group .ple-input:focus {
    border-color: #E34824;
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}

.ple-form-text {
    font-size: 0.72rem;
    color: #9ca3af;
    margin-top: 0.3rem;
    display: flex;
    align-items: flex-start;
    gap: 0.3rem;
}

.ple-validation-error {
    font-size: 0.72rem;
    color: #dc2626;
    margin-top: 0.25rem;
}

/* ----- Alert validation summary ----- */
.ple-alert-danger {
    border-radius: 0;
    border: 1px solid #e0e1e3;
    border-left: 4px solid #dc2626;
    background: rgba(220,38,38,0.04);
    padding: 0.85rem 1.25rem;
    font-size: 0.85rem;
    color: #151515;
    margin-bottom: 1.25rem;
}

/* ----- Separatore form ----- */
.ple-divider {
    border: none;
    border-top: 1px solid #EEEFF0;
    margin: 1.5rem 0;
}

/* ----- Checkbox ----- */
.ple-flags-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

@media (max-width: 575.98px) {
    .ple-flags-row { grid-template-columns: 1fr; }
}

.ple-check-group { display: flex; flex-direction: column; gap: 0.35rem; }

.ple-check-label {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    font-weight: 500;
    color: #151515;
    cursor: pointer;
}

.ple-check-input {
    width: 1rem;
    height: 1rem;
    border: 1px solid #e0e1e3;
    border-radius: 0;
    accent-color: #E34824;
    cursor: pointer;
    flex-shrink: 0;
}

/* ----- Sidebar ----- */
.ple-sidebar {
    position: sticky;
    top: 72px;
    z-index: 10;
    align-self: start;
}

@media (max-width: 991.98px) {
    .ple-sidebar { position: static; }
}

/* ----- Info sidebar ----- */
.ple-info-section {
    margin-bottom: 1.1rem;
    padding-bottom: 1.1rem;
    border-bottom: 1px solid #EEEFF0;
}

.ple-info-section:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

.ple-info-heading {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6b7280;
    margin-bottom: 0.4rem;
}

.ple-info-text {
    font-size: 0.82rem;
    color: #6b7280;
    margin: 0;
    line-height: 1.5;
}

.ple-info-text strong { color: #151515; font-weight: 600; }

.ple-info-list {
    font-size: 0.82rem;
    color: #6b7280;
    padding-left: 1.1rem;
    margin: 0;
    line-height: 1.6;
}

.ple-info-warning {
    display: flex;
    align-items: flex-start;
    gap: 0.4rem;
    font-size: 0.82rem;
    color: #dc2626;
    background: rgba(220,38,38,0.04);
    border-left: 3px solid #dc2626;
    padding: 0.5rem 0.75rem;
    margin: 0;
}

.ple-info-warning strong { font-weight: 600; }

/* ----- Audit ----- */
.ple-sys-item { margin-bottom: 0.65rem; }
.ple-sys-item:last-child { margin-bottom: 0; }

.ple-sys-label {
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6b7280;
    margin-bottom: 0.1rem;
}

.ple-sys-value {
    font-size: 0.82rem;
    color: #151515;
}

/* ----- Bottoni ----- */
.ple-btn-group {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 1.5rem;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.ple-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.55rem 1.5rem;
    font-size: 0.85rem;
    font-weight: 600;
    border-radius: 0;
    border: 2px solid transparent;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.15s, border-color 0.15s, box-shadow 0.15s;
    white-space: nowrap;
}

.ple-btn--secondary {
    background: transparent;
    color: #6b7280;
    border-color: #e0e1e3;
}

.ple-btn--secondary:hover {
    border-color: #151515;
    color: #151515;
}

.ple-btn--amber {
    background: #d97706;
    border-color: #d97706;
    color: #fff;
}

.ple-btn--amber:hover {
    background: #b45309;
    border-color: #b45309;
    color: #fff;
    box-shadow: 0 2px 8px rgba(217,119,6,0.20);
}

/* ============================================
    PARTECIPANTI LOTTO > DELETE PAGE STYLES
============================================ */

.pldel-page { padding: 2rem; }

@media (max-width: 575.98px) {
    .pldel-page { padding: 1rem; }
}

/* ----- Breadcrumb ----- */
.pldel-breadcrumb {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    flex-wrap: wrap;
    margin-bottom: 1.25rem;
}

.pldel-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.pldel-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.pldel-breadcrumb .pldel-sep { color: #e0e1e3; }
.pldel-breadcrumb .pldel-current { color: #6b7280; font-weight: 500; }

/* ----- Alert pericolo banner ----- */
.pldel-danger-banner {
    border-radius: 0;
    border: 1px solid rgba(220,38,38,0.20);
    border-left: 4px solid #dc2626;
    background: rgba(220,38,38,0.04);
    padding: 1rem 1.25rem;
    margin-bottom: 1.5rem;
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
}

.pldel-danger-banner-icon {
    color: #dc2626;
    font-size: 1.1rem;
    flex-shrink: 0;
    margin-top: 0.05rem;
}

.pldel-danger-banner-title {
    font-size: 0.9rem;
    font-weight: 700;
    color: #dc2626;
    margin-bottom: 0.25rem;
}

.pldel-danger-banner-body {
    font-size: 0.85rem;
    color: #151515;
    margin: 0;
}

/* ----- Header ----- */
.pldel-header {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    margin-bottom: 1.75rem;
}

.pldel-title-icon {
    width: 34px;
    height: 34px;
    background: rgba(220,38,38,0.08);
    border: 1px solid rgba(220,38,38,0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: #dc2626;
    font-size: 1rem;
    margin-top: 0.15rem;
}

.pldel-title {
    font-size: 1.45rem;
    font-weight: 700;
    color: #dc2626;
    letter-spacing: -0.025em;
    margin: 0;
    line-height: 1.2;
}

/* ----- Alert TempData errore ----- */
.pldel-alert-error {
    border-radius: 0;
    border: 1px solid #e0e1e3;
    border-left: 4px solid #dc2626;
    background: rgba(220,38,38,0.04);
    padding: 0.85rem 1.25rem;
    font-size: 0.85rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 1.5rem;
    color: #151515;
}

.pldel-alert-left { display: flex; align-items: center; gap: 0.5rem; }

.pldel-alert-close {
    background: transparent;
    border: none;
    cursor: pointer;
    color: #6b7280;
    font-size: 1rem;
    padding: 0;
    line-height: 1;
    flex-shrink: 0;
}

.pldel-alert-close:hover { color: #151515; }

/* ----- Layout ----- */
.pldel-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}

@media (min-width: 992px) {
    .pldel-row { grid-template-columns: 1fr 300px; }
}

/* ----- Card ----- */
.pldel-card {
    background: #fff;
    border: 1px solid #e0e1e3;
    border-radius: 0;
    overflow: hidden;
    margin-bottom: 1.5rem;
}

.pldel-card:last-child { margin-bottom: 0; }

.pldel-card-header {
    padding: 1rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.65rem;
}

.pldel-card-header::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
}

.pldel-card--danger  .pldel-card-header::before { background: #dc2626; }
.pldel-card--amber   .pldel-card-header::before { background: #d97706; }
.pldel-card--neutral .pldel-card-header::before { background: #e0e1e3; }
.pldel-card--info    .pldel-card-header::before { background: #0891b2; }

.pldel-card-icon {
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1rem;
}

.pldel-card-icon--danger  { background: rgba(220,38,38,0.08);   border: 1px solid rgba(220,38,38,0.15);   color: #dc2626; }
.pldel-card-icon--amber   { background: rgba(217,119,6,0.08);   border: 1px solid rgba(217,119,6,0.15);   color: #d97706; }
.pldel-card-icon--neutral { background: rgba(224,225,227,0.40); border: 1px solid rgba(21,21,21,0.10);    color: #6b7280; }
.pldel-card-icon--info    { background: rgba(8,145,178,0.08);   border: 1px solid rgba(8,145,178,0.15);   color: #0891b2; }

.pldel-card-title {
    font-size: 0.88rem;
    font-weight: 700;
    color: #151515;
    margin: 0;
}

.pldel-card-body {
    padding: 1.5rem;
    padding-left: 1.75rem;
}

/* ----- Campi sola lettura ----- */
.pldel-field {
    display: flex;
    margin-bottom: 0.85rem;
    align-items: baseline;
}

.pldel-field:last-child { margin-bottom: 0; }

.pldel-field-label {
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6b7280;
    width: 150px;
    flex-shrink: 0;
    padding-top: 0.1rem;
}

.pldel-field-value {
    font-size: 0.85rem;
    color: #151515;
    flex: 1;
}

.pldel-field-empty {
    font-size: 0.85rem;
    color: #9ca3af;
    font-style: italic;
}

@media (max-width: 991.98px) {
    .pldel-field { flex-direction: column; gap: 0.15rem; }
    .pldel-field-label { width: auto; }
}

/* ----- Separatore ----- */
.pldel-divider {
    border: none;
    border-top: 1px solid #EEEFF0;
    margin: 1rem 0;
}

/* ----- Sezione sub-heading ----- */
.pldel-section-heading {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6b7280;
    margin-bottom: 0.75rem;
}

/* ----- Badge ----- */
.pldel-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.25rem 0.65rem;
    font-size: 0.68rem;
    font-weight: 600;
    border-radius: 0;
    border: 1px solid transparent;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    white-space: nowrap;
}

.pldel-badge--success   { background: rgba(5,150,105,0.06);   border-color: rgba(5,150,105,0.20);   color: #059669; }
.pldel-badge--danger    { background: rgba(220,38,38,0.06);   border-color: rgba(220,38,38,0.20);   color: #dc2626; }
.pldel-badge--secondary { background: rgba(107,114,128,0.06); border-color: rgba(107,114,128,0.20); color: #6b7280; }
.pldel-badge--info      { background: rgba(8,145,178,0.06);   border-color: rgba(8,145,178,0.20);   color: #0891b2; }

/* ----- Nota soft-delete ----- */
.pldel-note-box {
    border-radius: 0;
    border: 1px solid rgba(217,119,6,0.20);
    border-left: 4px solid #d97706;
    background: rgba(217,119,6,0.04);
    padding: 0.85rem 1.25rem;
    font-size: 0.85rem;
    color: #151515;
    margin-bottom: 1.5rem;
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
}

.pldel-note-box i { color: #d97706; flex-shrink: 0; margin-top: 0.1rem; }

/* ----- Bottoni ----- */
.pldel-btn-group {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.pldel-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.65rem 1.75rem;
    font-size: 0.85rem;
    font-weight: 600;
    border-radius: 0;
    border: 2px solid transparent;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.15s, border-color 0.15s, box-shadow 0.15s;
    white-space: nowrap;
}

.pldel-btn--secondary {
    background: transparent;
    color: #6b7280;
    border-color: #e0e1e3;
}

.pldel-btn--secondary:hover {
    border-color: #151515;
    color: #151515;
}

.pldel-btn--danger {
    background: #dc2626;
    border-color: #dc2626;
    color: #fff;
}

.pldel-btn--danger:hover {
    background: #b91c1c;
    border-color: #b91c1c;
    color: #fff;
    box-shadow: 0 2px 8px rgba(220,38,38,0.20);
}

/* Bottoni outline sidebar */
.pldel-btn--outline-amber {
    background: transparent;
    border: 1px solid rgba(217,119,6,0.20);
    color: #d97706;
    font-size: 0.82rem;
    padding: 0.4rem 0.8rem;
    border-radius: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    text-decoration: none;
    font-weight: 600;
    transition: background 0.15s, border-color 0.15s;
    width: 100%;
    justify-content: flex-start;
}

.pldel-btn--outline-amber:hover {
    background: rgba(217,119,6,0.06);
    border-color: #d97706;
    color: #d97706;
}

.pldel-btn--outline-info {
    background: transparent;
    border: 1px solid rgba(8,145,178,0.20);
    color: #0891b2;
    font-size: 0.82rem;
    padding: 0.4rem 0.8rem;
    border-radius: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    text-decoration: none;
    font-weight: 600;
    transition: background 0.15s, border-color 0.15s;
    width: 100%;
    justify-content: flex-start;
}

.pldel-btn--outline-info:hover {
    background: rgba(8,145,178,0.04);
    border-color: #0891b2;
    color: #0891b2;
}

/* ----- Sidebar sticky ----- */
.pldel-sidebar {
    position: sticky;
    top: 72px;
    z-index: 10;
    align-self: start;
}

@media (max-width: 991.98px) {
    .pldel-sidebar { position: static; }
}

/* ----- Warning conseguenze ----- */
.pldel-consequences {
    border-radius: 0;
    border: 1px solid rgba(217,119,6,0.20);
    border-left: 4px solid #d97706;
    background: rgba(217,119,6,0.04);
    padding: 0;
    overflow: hidden;
    margin-bottom: 1.5rem;
}

.pldel-consequences-header {
    padding: 0.75rem 1rem;
    border-bottom: 1px solid rgba(217,119,6,0.15);
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #d97706;
}

.pldel-consequences-list {
    padding: 0.85rem 1rem 0.85rem 2rem;
    margin: 0;
    font-size: 0.82rem;
    color: #6b7280;
    line-height: 1.7;
}

/* ----- Audit ----- */
.pldel-sys-item { margin-bottom: 0.85rem; }
.pldel-sys-item:last-child { margin-bottom: 0; }

.pldel-sys-label {
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6b7280;
    margin-bottom: 0.15rem;
}

.pldel-sys-value {
    font-size: 0.82rem;
    color: #151515;
}

/* ----- Alternative actions ----- */
.pldel-alt-text {
    font-size: 0.82rem;
    color: #6b7280;
    margin-bottom: 0.85rem;
}

.pldel-alt-actions {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* ============================================
    PREVENTIVI > CREATE PAGE STYLES
============================================ */

.pc-page { padding: 2rem; }
.pc-breadcrumb { display: flex; align-items: center; gap: 0.4rem; margin-bottom: 0.75rem; font-size: 0.8rem; flex-wrap: wrap; }
.pc-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.pc-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.pc-breadcrumb .pc-sep { color: #e0e1e3; }
.pc-breadcrumb .pc-current { color: #6b7280; font-weight: 500; }
.pc-header { margin-bottom: 2rem; }
.pc-header h1 { font-size: 1.5rem; font-weight: 700; color: #151515; margin: 0 0 0.25rem; display: flex; align-items: center; gap: 0.5rem; }
.pc-header h1 svg { color: #059669; }
.pc-header p { font-size: 0.85rem; color: #6b7280; margin: 0; }
.pc-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; margin-bottom: 1.5rem; overflow: hidden; }
.pc-card-header { padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.6rem; position: relative; }
.pc-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.pc-card-header--green::before { background: #059669; }
.pc-card-header--cyan::before { background: #0891b2; }
.pc-card-header-icon { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.pc-card-header--green .pc-card-header-icon { background: rgba(5,150,105,0.08); border: 1px solid rgba(5,150,105,0.15); }
.pc-card-header--green .pc-card-header-icon i { color: #059669; }
.pc-card-header--cyan .pc-card-header-icon { background: rgba(8,145,178,0.08); border: 1px solid rgba(8,145,178,0.15); }
.pc-card-header--cyan .pc-card-header-icon i { color: #0891b2; }
.pc-card-header h2 { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; }
.pc-card-body { padding: 1.5rem; padding-left: calc(1.5rem + 4px); }
.pc-card-footer { padding: 1rem 1.5rem; border-top: 1px solid #EEEFF0; display: flex; justify-content: flex-end; gap: 0.5rem; }
.pc-form .form-label { font-size: 0.8rem; font-weight: 600; color: #151515; margin-bottom: 0.3rem; }
.pc-form .form-label .text-danger { color: #dc2626 !important; }
.pc-form .form-control, .pc-form .form-select { border-radius: 0; border: 1px solid #e0e1e3; font-size: 0.85rem; }
.pc-form .form-control:focus, .pc-form .form-select:focus { border-color: #E34824; box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
.pc-form .input-group-text { border-radius: 0; background: #EEEFF0; border: 1px solid #e0e1e3; font-size: 0.85rem; color: #6b7280; }
.pc-form small { font-size: 0.72rem; color: #9ca3af; }
.pc-form .text-danger { font-size: 0.72rem; }
.pc-form .form-check-input { border-radius: 0; border-color: #e0e1e3; }
.pc-form .form-check-input:checked { background-color: #d97706; border-color: #d97706; }
.pc-form .form-check-label { font-size: 0.85rem; }
.pc-form .alert-danger { border-radius: 0; border-left: 4px solid #dc2626; background: rgba(220,38,38,0.04); font-size: 0.85rem; }
.pc-sep-line { border: none; border-top: 1px solid #EEEFF0; margin: 1.5rem 0; }
.pc-section-title { font-size: 0.85rem; font-weight: 700; color: #151515; margin-bottom: 1rem; display: flex; align-items: center; gap: 0.4rem; }
.pc-section-title i { color: #E34824; }
.pc-btn { padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem; transition: all 0.2s; cursor: pointer; border: 2px solid; }
.pc-btn-success { background: #059669; color: #fff; border-color: #059669; }
.pc-btn-success:hover { background: #047857; border-color: #047857; color: #fff; }
.pc-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.pc-btn-secondary:hover { border-color: #151515; color: #151515; }
.pc-lotto-info { background: rgba(8,145,178,0.04); border: 1px solid rgba(8,145,178,0.15); padding: 1rem 1.25rem; margin-bottom: 1.5rem; display: flex; gap: 2rem; flex-wrap: wrap; }
.pc-lotto-info strong { font-size: 0.82rem; color: #151515; }
.pc-lotto-info span { font-size: 0.82rem; color: #6b7280; }

/* ============================================
    PREVENTIVI > DETAILS PAGE STYLES
============================================ */

.pd-page { padding: 2rem; }
.pd-breadcrumb { display: flex; align-items: center; gap: 0.4rem; margin-bottom: 0.75rem; font-size: 0.8rem; flex-wrap: wrap; }
.pd-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.pd-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.pd-breadcrumb .pd-sep { color: #e0e1e3; }
.pd-breadcrumb .pd-current { color: #6b7280; font-weight: 500; }
.pd-alert { border-radius: 0; border: 1px solid #e0e1e3; padding: 0.85rem 1.25rem; font-size: 0.85rem; display: flex; align-items: flex-start; gap: 0.6rem; margin-bottom: 1rem; }
.pd-alert-success { background: rgba(5,150,105,0.05); border-left: 4px solid #059669; }
.pd-alert-success i { color: #059669; }
.pd-alert-danger { background: rgba(220,38,38,0.04); border-left: 4px solid #dc2626; }
.pd-alert-danger i { color: #dc2626; }
.pd-alert-warning { background: rgba(217,119,6,0.04); border-left: 4px solid #d97706; }
.pd-alert-warning i { color: #d97706; }
.pd-alert .btn-close { margin-left: auto; }
.pd-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 2rem; gap: 1rem; flex-wrap: wrap; }
.pd-header h1 { font-size: 1.5rem; font-weight: 700; color: #151515; margin: 0 0 0.35rem; display: flex; align-items: center; gap: 0.5rem; }
.pd-header h1 svg { color: #E34824; }
.pd-header-badges { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 0.25rem; }
.pd-header p { font-size: 0.85rem; color: #6b7280; margin: 0; }
.pd-badge { display: inline-block; padding: 0.25rem 0.6rem; font-size: 0.7rem; font-weight: 600; border-radius: 0; }
.pd-badge-selected { background: rgba(217,119,6,0.1); color: #d97706; border: 1px solid rgba(217,119,6,0.2); }
.pd-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; margin-bottom: 1.5rem; overflow: hidden; }
.pd-card-header { padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.6rem; position: relative; }
.pd-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.pd-card-header--orange::before { background: #E34824; }
.pd-card-header--green::before { background: #059669; }
.pd-card-header--cyan::before { background: #0891b2; }
.pd-card-header--gray::before { background: #6b7280; }
.pd-card-header--light::before { background: #e0e1e3; }
.pd-card-header-icon { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.pd-card-header--orange .pd-card-header-icon { background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15); }
.pd-card-header--orange .pd-card-header-icon i { color: #E34824; }
.pd-card-header--green .pd-card-header-icon { background: rgba(5,150,105,0.08); border: 1px solid rgba(5,150,105,0.15); }
.pd-card-header--green .pd-card-header-icon i { color: #059669; }
.pd-card-header--cyan .pd-card-header-icon { background: rgba(8,145,178,0.08); border: 1px solid rgba(8,145,178,0.15); }
.pd-card-header--cyan .pd-card-header-icon i { color: #0891b2; }
.pd-card-header--gray .pd-card-header-icon { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); }
.pd-card-header--gray .pd-card-header-icon i { color: #6b7280; }
.pd-card-header--light .pd-card-header-icon { background: rgba(107,114,128,0.06); border: 1px solid #e0e1e3; }
.pd-card-header--light .pd-card-header-icon i { color: #6b7280; }
.pd-card-header h2 { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; }
.pd-card-body { padding: 1.5rem; padding-left: calc(1.5rem + 4px); }
.pd-field { margin-bottom: 0.75rem; }
.pd-field:last-child { margin-bottom: 0; }
.pd-field-label { font-size: 0.7rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; margin-bottom: 0.1rem; }
.pd-field-value { font-size: 0.9rem; color: #151515; font-weight: 500; }
.pd-field-value--lg { font-size: 1.1rem; }
.pd-field-value--muted { color: #9ca3af; font-weight: 400; }
.pd-link { color: #E34824; text-decoration: none; font-weight: 600; }
.pd-link:hover { color: #c93d1e; text-decoration: underline; }
.pd-btn { padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem; transition: all 0.2s; cursor: pointer; border: 2px solid; }
.pd-btn-amber { background: #d97706; color: #fff; border-color: #d97706; }
.pd-btn-amber:hover { background: #b45309; border-color: #b45309; color: #fff; }
.pd-btn-danger { background: #dc2626; color: #fff; border-color: #dc2626; }
.pd-btn-danger:hover { background: #b91c1c; border-color: #b91c1c; color: #fff; }
.pd-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.pd-btn-secondary:hover { border-color: #151515; color: #151515; }
.pd-btn-primary { background: #E34824; color: #fff; border-color: #E34824; }
.pd-btn-primary:hover { background: #c93d1e; border-color: #c93d1e; color: #fff; }
.pd-btn-outline { background: transparent; border-color: rgba(227,72,36,0.2); color: #E34824; font-size: 0.82rem; padding: 0.4rem 0.8rem; }
.pd-btn-outline:hover { border-color: #E34824; background: rgba(227,72,36,0.04); color: #E34824; }
.pd-btn-outline-green { background: transparent; border-color: rgba(5,150,105,0.2); color: #059669; font-size: 0.82rem; padding: 0.4rem 0.8rem; }
.pd-btn-outline-green:hover { border-color: #059669; background: rgba(5,150,105,0.04); color: #059669; }
.pd-sep { border: none; border-top: 1px solid #EEEFF0; margin: 1rem 0; }
.pd-note { background: rgba(8,145,178,0.04); border: 1px solid rgba(8,145,178,0.12); padding: 0.75rem 1rem; font-size: 0.85rem; color: #151515; }
.pd-doc-row { display: flex; align-items: center; gap: 1rem; }
.pd-doc-row .pd-doc-info { flex: 1; }
.pd-doc-row .pd-doc-info h3 { font-size: 0.9rem; font-weight: 600; color: #151515; margin: 0 0 0.1rem; }
.pd-doc-row .pd-doc-info small { font-size: 0.72rem; color: #9ca3af; }
.pd-footer { display: flex; justify-content: space-between; align-items: center; margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid #EEEFF0; flex-wrap: wrap; gap: 0.5rem; }
.pd-sticky { position: sticky; top: 72px; z-index: 10; }
@media (max-width: 991.98px) { .pd-sticky { position: static; } .pd-header { flex-direction: column; } }

/* ============================================
    PREVENTIVI > EDIT PAGE STYLES
============================================ */

.pe-page { padding: 2rem; }
.pe-breadcrumb { display: flex; align-items: center; gap: 0.4rem; margin-bottom: 0.75rem; font-size: 0.8rem; flex-wrap: wrap; }
.pe-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.pe-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.pe-breadcrumb .pe-sep { color: #e0e1e3; }
.pe-breadcrumb .pe-current { color: #6b7280; font-weight: 500; }
.pe-header { margin-bottom: 2rem; }
.pe-header h1 { font-size: 1.5rem; font-weight: 700; color: #151515; margin: 0 0 0.25rem; display: flex; align-items: center; gap: 0.5rem; }
.pe-header h1 svg { color: #E34824; }
.pe-header p { font-size: 0.85rem; color: #6b7280; margin: 0; }
.pe-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; margin-bottom: 1.5rem; overflow: hidden; }
.pe-card-header { padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.6rem; position: relative; }
.pe-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.pe-card-header--amber::before { background: #d97706; }
.pe-card-header--cyan::before { background: #0891b2; }
.pe-card-header-icon { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.pe-card-header--amber .pe-card-header-icon { background: rgba(217,119,6,0.08); border: 1px solid rgba(217,119,6,0.15); }
.pe-card-header--amber .pe-card-header-icon i { color: #d97706; }
.pe-card-header--cyan .pe-card-header-icon { background: rgba(8,145,178,0.08); border: 1px solid rgba(8,145,178,0.15); }
.pe-card-header--cyan .pe-card-header-icon i { color: #0891b2; }
.pe-card-header h2 { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; }
.pe-card-body { padding: 1.5rem; padding-left: calc(1.5rem + 4px); }
.pe-card-footer { padding: 1rem 1.5rem; border-top: 1px solid #EEEFF0; display: flex; justify-content: flex-end; gap: 0.5rem; }
.pe-form .form-label { font-size: 0.8rem; font-weight: 600; color: #151515; margin-bottom: 0.3rem; }
.pe-form .form-label .text-danger { color: #dc2626 !important; }
.pe-form .form-control, .pe-form .form-select { border-radius: 0; border: 1px solid #e0e1e3; font-size: 0.85rem; }
.pe-form .form-control:focus, .pe-form .form-select:focus { border-color: #E34824; box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
.pe-form .input-group-text { border-radius: 0; background: #EEEFF0; border: 1px solid #e0e1e3; font-size: 0.85rem; color: #6b7280; }
.pe-form small { font-size: 0.72rem; color: #9ca3af; }
.pe-form .text-danger { font-size: 0.72rem; }
.pe-form .form-check-input { border-radius: 0; border-color: #e0e1e3; }
.pe-form .form-check-input:checked { background-color: #d97706; border-color: #d97706; }
.pe-form .alert-danger { border-radius: 0; border-left: 4px solid #dc2626; background: rgba(220,38,38,0.04); font-size: 0.85rem; }
.pe-sep-line { border: none; border-top: 1px solid #EEEFF0; margin: 1.5rem 0; }
.pe-section-title { font-size: 0.85rem; font-weight: 700; color: #151515; margin-bottom: 1rem; display: flex; align-items: center; gap: 0.4rem; }
.pe-section-title i { color: #E34824; }
.pe-btn { padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem; transition: all 0.2s; cursor: pointer; border: 2px solid; }
.pe-btn-amber { background: #d97706; color: #fff; border-color: #d97706; }
.pe-btn-amber:hover { background: #b45309; border-color: #b45309; color: #fff; }
.pe-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.pe-btn-secondary:hover { border-color: #151515; color: #151515; }
.pe-btn-primary-sm { background: #E34824; color: #fff; border: 1px solid #E34824; padding: 0.35rem 0.8rem; font-size: 0.82rem; font-weight: 600; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.3rem; transition: all 0.15s; }
.pe-btn-primary-sm:hover { background: #c93d1e; border-color: #c93d1e; color: #fff; }
.pe-lotto-info { background: rgba(8,145,178,0.04); border: 1px solid rgba(8,145,178,0.15); padding: 1rem 1.25rem; margin-bottom: 1.5rem; display: flex; gap: 2rem; flex-wrap: wrap; }
.pe-lotto-info strong { font-size: 0.82rem; color: #151515; }
.pe-lotto-info span { font-size: 0.82rem; color: #6b7280; }
.pe-doc-alert { border-radius: 0; border: 1px solid #e0e1e3; padding: 0.85rem 1.25rem; font-size: 0.85rem; display: flex; align-items: center; gap: 0.75rem; }
.pe-doc-alert--info { background: rgba(8,145,178,0.04); border-left: 4px solid #0891b2; }
.pe-doc-alert--info i { color: #0891b2; font-size: 1.5rem; }
.pe-doc-alert--secondary { background: #EEEFF0; border-left: 4px solid #6b7280; }
.pe-doc-alert--secondary i { color: #6b7280; }

/* ============================================
    PROFILE INDEX PAGE STYLES
============================================ */

.p-page { padding: 2rem; }
.p-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 2rem;
    gap: 1rem;
    flex-wrap: wrap;
}
.p-header-text h1 {
    font-size: 1.5rem;
    font-weight: 700;
    color: #151515;
    margin: 0 0 0.25rem;
}
.p-header-text p {
    font-size: 0.85rem;
    color: #6b7280;
    margin: 0;
}
.p-btn {
    background: #E34824;
    color: #fff;
    border: 2px solid #E34824;
    padding: 0.55rem 1.5rem;
    font-weight: 600;
    font-size: 0.85rem;
    border-radius: 0;
    text-decoration: none;
    display: inline-block;
    transition: all 0.2s;
}
.p-btn:hover {
    background: #c93d1e;
    border-color: #c93d1e;
    color: #fff;
    box-shadow: 0 2px 8px rgba(227,72,36,0.2);
}
.p-btn-outline {
    background: transparent;
    color: #E34824;
    border: 2px solid #E34824;
    padding: 0.55rem 1.5rem;
    font-weight: 600;
    font-size: 0.85rem;
    border-radius: 0;
    text-decoration: none;
    display: inline-block;
    transition: all 0.2s;
}
.p-btn-outline:hover {
    background: #E34824;
    color: #fff;
}

/* Card */
.p-card {
    background: #fff;
    border: 1px solid #e0e1e3;
    border-radius: 0;
    margin-bottom: 1.5rem;
}
.p-card-header {
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex;
    align-items: center;
    gap: 0.6rem;
}
.p-card-header-icon {
    width: 36px;
    height: 36px;
    background: rgba(227,72,36,0.08);
    border: 1px solid rgba(227,72,36,0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.p-card-header-icon svg { color: #E34824; }
.p-card-header h2 {
    font-size: 0.95rem;
    font-weight: 700;
    color: #151515;
    margin: 0;
}
.p-card-body { padding: 1.5rem; }

/* Field rows */
.p-field {
    padding: 0.85rem 0;
    border-bottom: 1px solid #EEEFF0;
    display: flex;
    gap: 1rem;
}
.p-field:last-child { border-bottom: none; }
.p-field-label {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #6b7280;
    min-width: 140px;
    padding-top: 0.1rem;
    flex-shrink: 0;
}
.p-field-value {
    font-size: 0.9rem;
    font-weight: 500;
    color: #151515;
    flex: 1;
}
.p-field-empty {
    color: #9ca3af;
    font-style: italic;
}

/* Accent bar */
.p-accent-bar {
    width: 4px;
    background: #E34824;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
}

/* Security section */
.p-security-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}
.p-security-text p {
    font-size: 0.85rem;
    color: #6b7280;
    margin: 0;
}

@media (max-width: 575.98px) {
    .p-field { flex-direction: column; gap: 0.2rem; }
    .p-field-label { min-width: auto; }
    .p-header { flex-direction: column; }
}

/* ============================================
    PROFILE > EDIT PAGE STYLES
============================================ */

.pfe-page { padding: 2rem; }
.pfe-header { margin-bottom: 2rem; }
.pfe-header h1 {
    font-size: 1.5rem;
    font-weight: 700;
    color: #151515;
    margin: 0 0 0.25rem;
}
.pfe-header p {
    font-size: 0.85rem;
    color: #6b7280;
    margin: 0;
}

.pfe-card {
    background: #fff;
    border: 1px solid #e0e1e3;
    border-radius: 0;
    margin-bottom: 1.25rem;
}
.pfe-card-header {
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex;
    align-items: center;
    gap: 0.6rem;
}
.pfe-card-header-icon {
    width: 36px;
    height: 36px;
    background: rgba(227,72,36,0.08);
    border: 1px solid rgba(227,72,36,0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.pfe-card-header-icon svg { color: #E34824; }
.pfe-card-header h2 {
    font-size: 0.95rem;
    font-weight: 700;
    color: #151515;
    margin: 0;
}
.pfe-card-body { padding: 1.5rem; }

/* Form styling */
.pfe-form .form-label {
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #151515;
    margin-bottom: 0.35rem;
}
.pfe-form .form-control,
.pfe-form .form-select {
    border-radius: 0;
    border: 1px solid #e0e1e3;
    font-size: 0.9rem;
    padding: 0.6rem 0.85rem;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.pfe-form .form-control:focus,
.pfe-form .form-select:focus {
    border-color: #E34824;
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}
.pfe-form .form-text {
    font-size: 0.75rem;
    color: #9ca3af;
}
.pfe-form .text-danger {
    font-size: 0.75rem;
}

/* Buttons */
.pfe-btn {
    background: #E34824;
    color: #fff;
    border: 2px solid #E34824;
    padding: 0.55rem 1.5rem;
    font-weight: 600;
    font-size: 0.85rem;
    border-radius: 0;
    text-decoration: none;
    transition: all 0.2s;
    cursor: pointer;
}
.pfe-btn:hover {
    background: #c93d1e;
    border-color: #c93d1e;
    color: #fff;
    box-shadow: 0 2px 8px rgba(227,72,36,0.2);
}
.pfe-btn-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    color: #6b7280;
    border: 2px solid #e0e1e3;
    padding: 0.55rem 1.5rem;
    font-weight: 600;
    font-size: 0.85rem;
    border-radius: 0;
    text-decoration: none;
    cursor: pointer;
    transition: all 0.2s;
}
.pfe-btn-secondary:hover {
    border-color: #151515;
    color: #151515;
}

/* Note box */
.pfe-note {
    background: #EEEFF0;
    border: 1px solid #e0e1e3;
    border-left: 4px solid #E34824;
    border-radius: 0;
    padding: 1rem 1.25rem;
    font-size: 0.8rem;
    color: #6b7280;
}
.pfe-note strong { color: #151515; }

/* ============================================
    PROFILE > ChangePassword PAGE STYLES
============================================ */

.pcp-page { padding: 2rem; }
.pcp-header { margin-bottom: 2rem; }
.pcp-header h1 {
    font-size: 1.5rem;
    font-weight: 700;
    color: #151515;
    margin: 0 0 0.25rem;
}
.pcp-header p {
    font-size: 0.85rem;
    color: #6b7280;
    margin: 0;
}

.pcp-card {
    background: #fff;
    border: 1px solid #e0e1e3;
    border-radius: 0;
    margin-bottom: 1.25rem;
}
.pcp-card-header {
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex;
    align-items: center;
    gap: 0.6rem;
}
.pcp-card-header-icon {
    width: 36px;
    height: 36px;
    background: rgba(227,72,36,0.08);
    border: 1px solid rgba(227,72,36,0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.pcp-card-header-icon svg { color: #E34824; }
.pcp-card-header h2 {
    font-size: 0.95rem;
    font-weight: 700;
    color: #151515;
    margin: 0;
}
.pcp-card-body { padding: 1.5rem; }

/* Form */
.pcp-form .form-label {
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #151515;
    margin-bottom: 0.35rem;
}
.pcp-form .form-control {
    border-radius: 0;
    border: 1px solid #e0e1e3;
    font-size: 0.9rem;
    padding: 0.6rem 0.85rem;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.pcp-form .form-control:focus {
    border-color: #E34824;
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}
.pcp-form .text-danger { font-size: 0.75rem; }

/* Buttons */
.pcp-btn {
    background: #E34824;
    color: #fff;
    border: 2px solid #E34824;
    padding: 0.55rem 1.5rem;
    font-weight: 600;
    font-size: 0.85rem;
    border-radius: 0;
    text-decoration: none;
    transition: all 0.2s;
    cursor: pointer;
}
.pcp-btn:hover {
    background: #c93d1e;
    border-color: #c93d1e;
    color: #fff;
    box-shadow: 0 2px 8px rgba(227,72,36,0.2);
}
.pcp-btn-secondary {
    background: transparent;
    color: #6b7280;
    border: 2px solid #e0e1e3;
    padding: 0.55rem 1.5rem;
    font-weight: 600;
    font-size: 0.85rem;
    border-radius: 0;
    text-decoration: none;
    transition: all 0.2s;
}
.pcp-btn-secondary:hover {
    border-color: #151515;
    color: #151515;
}

/* Requirements box */
.pcp-requirements {
    background: #EEEFF0;
    border: 1px solid #e0e1e3;
    border-left: 4px solid #E34824;
    border-radius: 0;
    padding: 1rem 1.25rem;
    margin-bottom: 1.25rem;
}
.pcp-requirements h3 {
    font-size: 0.8rem;
    font-weight: 700;
    color: #151515;
    margin: 0 0 0.5rem;
}
.pcp-requirements ul {
    margin: 0;
    padding-left: 1.1rem;
    font-size: 0.8rem;
    color: #6b7280;
}
.pcp-requirements li { margin-bottom: 0.15rem; }

/* Tips card */
.pcp-tips {
    background: #fff;
    border: 1px solid #e0e1e3;
    border-radius: 0;
    padding: 1.25rem 1.5rem;
}
.pcp-tips h3 {
    font-size: 0.8rem;
    font-weight: 700;
    color: #151515;
    margin: 0 0 0.5rem;
    display: flex;
    align-items: center;
    gap: 0.4rem;
}
.pcp-tips h3 svg { color: #E34824; }
.pcp-tips ul {
    margin: 0;
    padding-left: 1.1rem;
    font-size: 0.8rem;
    color: #6b7280;
}
.pcp-tips li { margin-bottom: 0.15rem; }

/* ============================================
    REGISTRO CONTRATTI > ALLEGATO DETAILS PAGE STYLES
============================================ */
/* Breadcrumb */
.ra-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 0.75rem; }
.ra-breadcrumb a { color: var(--cb-accent); text-decoration: none; font-weight: 500; }
.ra-breadcrumb a:hover { color: var(--cb-accent-hover); text-decoration: underline; }
.ra-breadcrumb .ra-sep { color: var(--cb-border); }
.ra-breadcrumb .ra-current { color: var(--cb-gray); font-weight: 500; }

/* Page header */
.ra-page-header { display: flex; align-items: flex-start; gap: 1rem; margin-bottom: 1.5rem; flex-wrap: wrap; }
.ra-file-icon-lg { font-size: 2.8rem; line-height: 1; flex-shrink: 0; }
.ra-page-title { font-size: 1.4rem; font-weight: 700; color: var(--cb-dark); letter-spacing: -0.025em; margin: 0 0 0.3rem; word-break: break-all; }
.ra-page-meta { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; font-size: 0.82rem; color: var(--cb-gray); }
.ra-page-meta .ra-sep { color: var(--cb-muted); }

/* Alerts */
.ra-alert { border-radius: 0; border: 1px solid var(--cb-border); padding: 0.85rem 1.25rem; font-size: 0.85rem; display: flex; align-items: flex-start; gap: 0.6rem; margin-bottom: 1.5rem; }
.ra-alert-success { border-left: 4px solid var(--cb-green);  background: rgba(5,150,105,0.04); }
.ra-alert-success .ra-alert-icon { color: var(--cb-green); flex-shrink: 0; }
.ra-alert-danger  { border-left: 4px solid var(--cb-danger); background: rgba(220,38,38,0.04); }
.ra-alert-danger .ra-alert-icon  { color: var(--cb-danger); flex-shrink: 0; }
.ra-alert-close { margin-left: auto; background: none; border: none; cursor: pointer; color: var(--cb-muted); flex-shrink: 0; }
.ra-alert-close:hover { color: var(--cb-dark); }

/* Toast replacement */
.ra-toast-container { position: fixed; bottom: 1.5rem; right: 1.5rem; z-index: 2000; display: flex; flex-direction: column; gap: 0.5rem; }
.ra-toast { border-radius: 0; border: 1px solid; padding: 0.75rem 1rem; font-size: 0.85rem; display: flex; align-items: center; gap: 0.5rem; min-width: 280px; box-shadow: 0 4px 16px rgba(21,21,21,0.12); animation: raSlideIn 0.2s ease; }
.ra-toast--success { background: var(--cb-white); border-color: rgba(5,150,105,0.3); border-left: 4px solid var(--cb-green); color: var(--cb-dark); }
.ra-toast--success .ra-toast-icon { color: var(--cb-green); }
.ra-toast--danger  { background: var(--cb-white); border-color: rgba(220,38,38,0.3); border-left: 4px solid var(--cb-danger); color: var(--cb-dark); }
.ra-toast--danger .ra-toast-icon { color: var(--cb-danger); }
.ra-toast-close { margin-left: auto; background: none; border: none; cursor: pointer; color: var(--cb-muted); flex-shrink: 0; }
.ra-toast-close:hover { color: var(--cb-dark); }
@keyframes raSlideIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

/* Badges */
.ra-badge { display: inline-flex; align-items: center; padding: 0.25rem 0.65rem; font-size: 0.68rem; font-weight: 600; border-radius: 0; text-transform: uppercase; letter-spacing: 0.03em; border: 1px solid; }
.ra-badge--secondary { background: rgba(107,114,128,0.06); color: var(--cb-gray); border-color: rgba(107,114,128,0.2); }
.ra-badge--success   { background: rgba(5,150,105,0.06);   color: var(--cb-green); border-color: rgba(5,150,105,0.2); }
.ra-badge--info      { background: rgba(8,145,178,0.06);   color: var(--cb-cyan);  border-color: rgba(8,145,178,0.2); }
.ra-badge--danger    { background: rgba(220,38,38,0.06);   color: var(--cb-danger);border-color: rgba(220,38,38,0.2); }
.ra-badge--primary   { background: rgba(227,72,36,0.06);   color: var(--cb-accent);border-color: rgba(227,72,36,0.2); }

/* Cards */
.ra-card { background: var(--cb-white); border: 1px solid var(--cb-border); border-radius: 0; overflow: hidden; margin-bottom: 1.5rem; }
.ra-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid var(--cb-border); display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; }
.ra-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.ra-card-header--accent::before { background: var(--cb-accent); }
.ra-card-header--cyan::before   { background: var(--cb-cyan); }
.ra-card-header--gray::before   { background: var(--cb-gray); }
.ra-card-header--green::before  { background: var(--cb-green); }
.ra-card-header--amber::before  { background: var(--cb-amber); }
.ra-card-header-left { display: flex; align-items: center; gap: 0.75rem; }
.ra-icon-box { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ra-icon-box--accent { background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15); }
.ra-icon-box--accent i { color: var(--cb-accent); }
.ra-icon-box--cyan   { background: rgba(8,145,178,0.08);   border: 1px solid rgba(8,145,178,0.15); }
.ra-icon-box--cyan i  { color: var(--cb-cyan); }
.ra-icon-box--gray   { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); }
.ra-icon-box--gray i  { color: var(--cb-gray); }
.ra-icon-box--green  { background: rgba(5,150,105,0.08);   border: 1px solid rgba(5,150,105,0.15); }
.ra-icon-box--green i { color: var(--cb-green); }
.ra-icon-box--amber  { background: rgba(217,119,6,0.08);   border: 1px solid rgba(217,119,6,0.15); }
.ra-icon-box--amber i { color: var(--cb-amber); }
.ra-card-title { font-size: 0.9rem; font-weight: 700; color: var(--cb-dark); margin: 0; }
.ra-card-body  { padding: 1.5rem; padding-left: calc(1.5rem + 4px); }
.ra-card-body--nopad { padding: 0; }

/* Preview area */
.ra-preview-frame { width: 100%; height: 600px; border: none; display: block; }
.ra-preview-img-wrap { text-align: center; padding: 2rem; background: var(--cb-light); }
.ra-preview-img { max-height: 600px; max-width: 100%; cursor: zoom-in; border: 1px solid var(--cb-border); }
.ra-preview-hint { font-size: 0.72rem; color: var(--cb-muted); margin-top: 0.5rem; }
.ra-no-preview { text-align: center; padding: 4rem 2rem; }
.ra-no-preview-icon { font-size: 5rem; opacity: 0.3; margin-bottom: 1rem; }
.ra-no-preview-title { font-size: 1rem; font-weight: 600; color: var(--cb-gray); margin-bottom: 0.5rem; }
.ra-no-preview-sub { font-size: 0.82rem; color: var(--cb-muted); margin-bottom: 1.5rem; }

/* Descrizione inline edit */
.ra-desc-text { font-size: 0.85rem; color: var(--cb-dark); margin: 0; line-height: 1.6; }
.ra-desc-empty { font-size: 0.85rem; color: var(--cb-muted); font-style: italic; margin: 0; }
.ra-form-control { width: 100%; border: 1px solid var(--cb-border); border-radius: 0; font-size: 0.85rem; padding: 0.5rem 0.75rem; color: var(--cb-dark); background: var(--cb-white); transition: border-color 0.2s, box-shadow 0.2s; resize: vertical; }
.ra-form-control:focus { outline: none; border-color: var(--cb-accent); box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
.ra-edit-actions { display: flex; gap: 0.5rem; margin-top: 0.5rem; }

/* Info list (sidebar) */
.ra-info-list { list-style: none; padding: 0; margin: 0; }
.ra-info-item { display: flex; justify-content: space-between; align-items: flex-start; padding: 0.6rem 0; border-bottom: 1px solid var(--cb-light); gap: 0.75rem; font-size: 0.82rem; }
.ra-info-item:last-child { border-bottom: none; }
.ra-info-key { color: var(--cb-gray); flex-shrink: 0; white-space: nowrap; }
.ra-info-val { color: var(--cb-dark); font-weight: 500; text-align: right; word-break: break-all; }
.ra-info-code { font-size: 0.72rem; font-family: monospace; background: var(--cb-light); padding: 0.1rem 0.35rem; color: var(--cb-gray); }

/* Registro ref */
.ra-ref-label { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--cb-gray); display: block; margin-bottom: 0.2rem; }
.ra-ref-link { font-size: 0.85rem; font-weight: 600; color: var(--cb-accent); text-decoration: none; }
.ra-ref-link:hover { color: var(--cb-accent-hover); text-decoration: underline; }
.ra-ref-val { font-size: 0.85rem; color: var(--cb-dark); }
.ra-ref-item { margin-bottom: 0.85rem; }
.ra-ref-item:last-child { margin-bottom: 0; }

/* Sidebar sticky */
.ra-sidebar-sticky { position: sticky; top: 72px; z-index: 10; }

/* Buttons */
.ra-btn { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.55rem 1.5rem; font-size: 0.85rem; font-weight: 600; border-radius: 0; border: 2px solid; cursor: pointer; text-decoration: none; transition: background 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s; }
.ra-btn-accent    { background: var(--cb-accent);  color: #fff; border-color: var(--cb-accent); }
.ra-btn-accent:hover    { background: var(--cb-accent-hover); border-color: var(--cb-accent-hover); box-shadow: 0 2px 8px rgba(227,72,36,0.2); color: #fff; }
.ra-btn-secondary { background: transparent; color: var(--cb-gray); border-color: var(--cb-border); }
.ra-btn-secondary:hover { border-color: var(--cb-dark); color: var(--cb-dark); }
.ra-btn-green     { background: var(--cb-green);   color: #fff; border-color: var(--cb-green); }
.ra-btn-green:hover     { background: var(--cb-green-hover); border-color: var(--cb-green-hover); color: #fff; }
.ra-btn-sm { padding: 0.35rem 0.85rem; font-size: 0.78rem; }
/* Outline small for header card */
.ra-btn-outline-accent  { background: transparent; color: var(--cb-accent);  border: 1px solid rgba(227,72,36,0.25);  font-size: 0.78rem; padding: 0.35rem 0.75rem; border-radius: 0; font-weight: 600; text-decoration: none; transition: background 0.15s, border-color 0.15s; display: inline-flex; align-items: center; gap: 0.35rem; cursor: pointer; }
.ra-btn-outline-accent:hover  { background: rgba(227,72,36,0.06);  border-color: var(--cb-accent);  color: var(--cb-accent); }
.ra-btn-outline-secondary { background: transparent; color: var(--cb-gray); border: 1px solid rgba(107,114,128,0.25); font-size: 0.78rem; padding: 0.35rem 0.75rem; border-radius: 0; font-weight: 600; text-decoration: none; transition: background 0.15s, border-color 0.15s; display: inline-flex; align-items: center; gap: 0.35rem; cursor: pointer; }
.ra-btn-outline-secondary:hover { background: rgba(107,114,128,0.06); border-color: var(--cb-gray); color: var(--cb-gray); }
.ra-btn-outline-green { background: transparent; color: var(--cb-green); border: 1px solid rgba(5,150,105,0.25); font-size: 0.78rem; padding: 0.35rem 0.75rem; border-radius: 0; font-weight: 600; text-decoration: none; transition: background 0.15s, border-color 0.15s; display: inline-flex; align-items: center; gap: 0.35rem; cursor: pointer; }
.ra-btn-outline-green:hover { background: rgba(5,150,105,0.06); border-color: var(--cb-green); color: var(--cb-green); }
.ra-btn-outline-danger { background: transparent; color: var(--cb-danger); border: 1px solid rgba(220,38,38,0.25); font-size: 0.82rem; padding: 0.45rem 0.85rem; border-radius: 0; font-weight: 600; text-decoration: none; transition: background 0.15s, border-color 0.15s; display: inline-flex; align-items: center; gap: 0.35rem; width: 100%; justify-content: center; cursor: pointer; }
.ra-btn-outline-danger:hover { background: rgba(220,38,38,0.06); border-color: var(--cb-danger); color: var(--cb-danger); }
.ra-btn-danger { background: var(--cb-danger); color: #fff; border-color: var(--cb-danger); }
.ra-btn-danger:hover { background: var(--cb-danger-hover); border-color: var(--cb-danger-hover); color: #fff; }
.ra-btn-block { width: 100%; justify-content: center; }

/* Sidebar action stack */
.ra-action-stack { display: flex; flex-direction: column; gap: 0.5rem; }
.ra-divider { border: 0; border-top: 1px solid var(--cb-light); margin: 0.25rem 0; }

/* Custom Modal */
.ra-modal-backdrop { position: fixed; inset: 0; background: rgba(21,21,21,0.5); z-index: 1500; display: none; align-items: center; justify-content: center; padding: 1rem; }
.ra-modal-backdrop.active { display: flex; }
.ra-modal { background: var(--cb-white); border: 1px solid var(--cb-border); border-radius: 0; width: 100%; max-width: 520px; overflow: hidden; }
.ra-modal-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid var(--cb-border); display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; }
.ra-modal-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.ra-modal-header--danger::before { background: var(--cb-danger); }
.ra-modal-header--dark::before   { background: #151515; }
.ra-modal-header-left { display: flex; align-items: center; gap: 0.75rem; }
.ra-modal-title { font-size: 0.95rem; font-weight: 700; color: var(--cb-dark); margin: 0; }
.ra-modal-close { background: none; border: none; cursor: pointer; color: var(--cb-muted); font-size: 1rem; }
.ra-modal-close:hover { color: var(--cb-dark); }
.ra-modal-body  { padding: 1.5rem; font-size: 0.85rem; color: var(--cb-gray); line-height: 1.6; }
.ra-modal-body strong { color: var(--cb-dark); }
.ra-modal-footer { padding: 1rem 1.5rem; border-top: 1px solid var(--cb-border); display: flex; justify-content: flex-end; gap: 0.5rem; }

/* Image modal full */
.ra-img-modal-backdrop { position: fixed; inset: 0; background: rgba(21,21,21,0.9); z-index: 1600; display: none; align-items: center; justify-content: center; padding: 1rem; }
.ra-img-modal-backdrop.active { display: flex; }
.ra-img-modal { max-width: 95vw; max-height: 95vh; position: relative; }
.ra-img-modal img { max-width: 95vw; max-height: 90vh; display: block; border: none; }
.ra-img-modal-header { display: flex; align-items: center; justify-content: space-between; padding: 0.5rem 0; margin-bottom: 0.5rem; }
.ra-img-modal-title { font-size: 0.85rem; font-weight: 600; color: #fff; margin: 0; }
.ra-img-modal-close { background: none; border: 1px solid rgba(255,255,255,0.3); cursor: pointer; color: #fff; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border-radius: 0; }
.ra-img-modal-close:hover { background: rgba(255,255,255,0.1); }

@media (max-width: 991.98px) { .ra-sidebar-sticky { position: static; } }

/* ============================================
    REGISTRO CONTRATTI > _FILTERPARTIAL PAGE STYLES
============================================ */

.rf-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; overflow: hidden; margin-bottom: 1.5rem; }
.rf-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; }
.rf-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: #6b7280; }
.rf-card-header-left { display: flex; align-items: center; gap: 0.75rem; }
.rf-icon-box { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); }
.rf-icon-box i { color: #6b7280; }
.rf-card-title { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; }
.rf-badge { display: inline-flex; align-items: center; padding: 0.2rem 0.55rem; font-size: 0.65rem; font-weight: 700; border-radius: 0; text-transform: uppercase; letter-spacing: 0.03em; border: 1px solid; background: rgba(227,72,36,0.06); color: #E34824; border-color: rgba(227,72,36,0.2); }
.rf-toggle-btn { background: none; border: 1px solid #e0e1e3; cursor: pointer; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; color: #6b7280; border-radius: 0; transition: background 0.15s, border-color 0.15s; }
.rf-toggle-btn:hover { background: #EEEFF0; border-color: #151515; color: #151515; }
.rf-toggle-btn i { transition: transform 0.2s ease; }
.rf-toggle-btn.collapsed i { transform: rotate(-90deg); }

/* Collapse body */
.rf-body { padding: 1.5rem; padding-left: calc(1.5rem + 4px); display: none; }
.rf-body.open { display: block; }

/* Form elements */
.rf-label { display: block; font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; margin-bottom: 0.3rem; }
.rf-form-control { width: 100%; border: 1px solid #e0e1e3; border-radius: 0; font-size: 0.82rem; padding: 0.45rem 0.65rem; color: #151515; background: #fff; transition: border-color 0.2s, box-shadow 0.2s; }
.rf-form-control:focus { outline: none; border-color: #E34824; box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
.rf-form-control::placeholder { color: #9ca3af; font-size: 0.8rem; }

/* Input group */
.rf-input-group { display: flex; }
.rf-input-group .rf-input-group-text { background: #EEEFF0; border: 1px solid #e0e1e3; border-right: none; padding: 0.45rem 0.65rem; color: #6b7280; display: flex; align-items: center; flex-shrink: 0; font-size: 0.85rem; }
.rf-input-group .rf-form-control { border-radius: 0; }

/* Grid */
.rf-grid { display: grid; gap: 0.85rem; }
.rf-grid--3 { grid-template-columns: repeat(3, 1fr); }
.rf-grid--4 { grid-template-columns: repeat(4, 1fr); }
.rf-grid--main { grid-template-columns: 2fr 1fr 1.5fr 1.5fr; }
.rf-grid--row2  { grid-template-columns: 1.5fr 1.5fr 1fr 1fr; }

/* Divider */
.rf-divider { border: 0; border-top: 1px solid #EEEFF0; margin: 1rem 0; }

/* Filtri rapidi */
.rf-quick-label { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: #9ca3af; white-space: nowrap; }
.rf-quick-row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; }
.rf-quick-sep { width: 1px; height: 20px; background: #e0e1e3; flex-shrink: 0; }
.rf-check-wrap { display: flex; align-items: center; gap: 0.4rem; cursor: pointer; font-size: 0.82rem; color: #6b7280; user-select: none; }
.rf-check-wrap input[type="checkbox"] { width: 15px; height: 15px; border-radius: 0; border: 1px solid #e0e1e3; accent-color: #E34824; cursor: pointer; flex-shrink: 0; }
.rf-check-wrap:hover { color: #151515; }
.rf-check-icon--warn   { color: #d97706; }
.rf-check-icon--danger { color: #dc2626; }
.rf-check-icon--accent { color: #E34824; }
.rf-check-icon--cyan   { color: #0891b2; }

/* Date section toggle */
.rf-section-toggle { display: inline-flex; align-items: center; gap: 0.4rem; font-size: 0.78rem; font-weight: 600; color: #6b7280; background: none; border: none; cursor: pointer; padding: 0; text-decoration: none; transition: color 0.15s; }
.rf-section-toggle:hover { color: #E34824; }
.rf-section-toggle i.rf-chevron { transition: transform 0.2s ease; }
.rf-section-toggle.open i.rf-chevron { transform: rotate(180deg); }
.rf-date-body { display: none; margin-top: 0.75rem; }
.rf-date-body.open { display: block; }

/* Footer buttons */
.rf-footer { display: flex; justify-content: space-between; align-items: center; padding-top: 1rem; border-top: 1px solid #EEEFF0; margin-top: 1rem; }

/* Buttons */
.rf-btn { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.45rem 1rem; font-size: 0.78rem; font-weight: 600; border-radius: 0; border: 2px solid; cursor: pointer; text-decoration: none; transition: background 0.2s, border-color 0.2s, color 0.2s; }
.rf-btn-accent    { background: #E34824; color: #fff; border-color: #E34824; }
.rf-btn-accent:hover    { background: #c93d1e; border-color: #c93d1e; color: #fff; }
.rf-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.rf-btn-secondary:hover { border-color: #151515; color: #151515; }

@media (max-width: 991.98px) {
    .rf-grid--main { grid-template-columns: 1fr 1fr; }
    .rf-grid--row2  { grid-template-columns: 1fr 1fr; }
    .rf-grid--4     { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 575.98px) {
    .rf-grid--main { grid-template-columns: 1fr; }
    .rf-grid--row2  { grid-template-columns: 1fr; }
    .rf-grid--4     { grid-template-columns: 1fr; }
    .rf-quick-row   { gap: 0.5rem; }
}

/* ============================================
    REGISTRO CONTRATTI > UPLOAD PAGE STYLES
============================================ */
/* Breadcrumb */
.ru-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-top: 0.3rem; }
.ru-breadcrumb a { color: var(--cb-accent); text-decoration: none; font-weight: 500; }
.ru-breadcrumb a:hover { color: var(--cb-accent-hover); text-decoration: underline; }
.ru-breadcrumb .ru-sep { color: var(--cb-border); }
.ru-breadcrumb .ru-current { color: var(--cb-gray); font-weight: 500; }

/* Page Header */
.ru-page-title { font-size: 1.4rem; font-weight: 700; color: var(--cb-dark); letter-spacing: -0.025em; margin: 0.2rem 0 0; display: flex; align-items: center; gap: 0.6rem; }

/* Alerts */
.ru-alert { border-radius: 0; border: 1px solid var(--cb-border); padding: 0.85rem 1.25rem; font-size: 0.85rem; display: flex; align-items: flex-start; gap: 0.6rem; margin-bottom: 1.5rem; }
.ru-alert-success { border-left: 4px solid var(--cb-green);  background: rgba(5,150,105,0.04); }
.ru-alert-success .ru-alert-icon { color: var(--cb-green);  flex-shrink: 0; }
.ru-alert-danger  { border-left: 4px solid var(--cb-danger); background: rgba(220,38,38,0.04); }
.ru-alert-danger .ru-alert-icon  { color: var(--cb-danger); flex-shrink: 0; }
.ru-alert-close { margin-left: auto; background: none; border: none; cursor: pointer; color: var(--cb-muted); flex-shrink: 0; }
.ru-alert-close:hover { color: var(--cb-dark); }

/* Context info box */
.ru-context-box {
    background: var(--cb-white); border: 1px solid var(--cb-border);
    border-left: 4px solid var(--cb-cyan);
    padding: 1rem 1.25rem; margin-bottom: 1.5rem;
    display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
}
.ru-context-title { font-size: 0.9rem; font-weight: 600; color: var(--cb-dark); margin: 0 0 0.2rem 0; }
.ru-context-sub   { font-size: 0.75rem; color: var(--cb-muted); }
.ru-context-code  { font-size: 0.72rem; font-family: monospace; background: var(--cb-light); padding: 0.1rem 0.3rem; color: var(--cb-gray); }

/* Cards */
.ru-card { background: var(--cb-white); border: 1px solid var(--cb-border); border-radius: 0; overflow: hidden; margin-bottom: 1.5rem; }
.ru-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid var(--cb-border); display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; }
.ru-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.ru-card-header--accent::before { background: var(--cb-accent); }
.ru-card-header--gray::before   { background: var(--cb-gray); }
.ru-card-header--info::before   { background: var(--cb-cyan); }
.ru-card-header-left { display: flex; align-items: center; gap: 0.75rem; }
.ru-icon-box { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ru-icon-box--accent { background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15); }
.ru-icon-box--accent i { color: var(--cb-accent); }
.ru-icon-box--gray   { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); }
.ru-icon-box--gray i  { color: var(--cb-gray); }
.ru-icon-box--info   { background: rgba(8,145,178,0.08); border: 1px solid rgba(8,145,178,0.15); }
.ru-icon-box--info i  { color: var(--cb-cyan); }
.ru-card-title { font-size: 0.9rem; font-weight: 700; color: var(--cb-dark); margin: 0; }
.ru-card-body  { padding: 1.5rem; padding-left: calc(1.5rem + 4px); }
.ru-card-body--nopad { padding: 0; }

/* Badge */
.ru-badge { display: inline-flex; align-items: center; padding: 0.25rem 0.65rem; font-size: 0.68rem; font-weight: 600; border-radius: 0; text-transform: uppercase; letter-spacing: 0.03em; border: 1px solid; }
.ru-badge--secondary { background: rgba(107,114,128,0.06); color: var(--cb-gray); border-color: rgba(107,114,128,0.2); }

/* Form */
.ru-label { display: block; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--cb-dark); margin-bottom: 0.35rem; }
.ru-required { color: var(--cb-danger); margin-left: 0.15rem; }
.ru-form-control { width: 100%; border: 1px solid var(--cb-border); border-radius: 0; font-size: 0.85rem; padding: 0.5rem 0.75rem; color: var(--cb-dark); background: var(--cb-white); transition: border-color 0.2s, box-shadow 0.2s; }
.ru-form-control:focus { outline: none; border-color: var(--cb-accent); box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
.ru-form-control::placeholder { color: var(--cb-muted); }
.ru-validation { font-size: 0.72rem; color: var(--cb-danger); margin-top: 0.25rem; display: block; }
.ru-form-text  { font-size: 0.72rem; color: var(--cb-muted); margin-top: 0.25rem; display: block; }

/* Dropzone */
.ru-dropzone {
    border: 2px dashed var(--cb-border); padding: 2.5rem 1.5rem;
    text-align: center; cursor: pointer; background: var(--cb-white);
    transition: border-color 0.2s ease, background 0.2s ease;
}
.ru-dropzone:hover, .ru-dropzone.dragover {
    border-color: var(--cb-accent);
    background: rgba(227,72,36,0.02);
}
.ru-dropzone.has-file {
    border-color: var(--cb-green);
    background: rgba(5,150,105,0.02);
    border-style: solid;
}
.ru-dropzone-icon { font-size: 2.5rem; color: var(--cb-muted); }
.ru-dropzone.has-file .ru-dropzone-icon { color: var(--cb-green); }
.ru-dropzone-text { font-size: 0.85rem; color: var(--cb-gray); margin: 0.75rem 0 0.4rem 0; }
.ru-dropzone-link { color: var(--cb-accent); font-weight: 600; text-decoration: none; cursor: pointer; }
.ru-dropzone-link:hover { color: var(--cb-accent-hover); text-decoration: underline; }
.ru-dropzone-hint { font-size: 0.72rem; color: var(--cb-muted); }
.ru-file-name { font-size: 0.85rem; font-weight: 600; color: var(--cb-dark); margin: 0.5rem 0 0.2rem; }
.ru-file-size { font-size: 0.72rem; color: var(--cb-muted); }

/* Progress */
.ru-progress-wrap { margin-bottom: 1rem; }
.ru-progress-label { font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--cb-gray); margin-bottom: 0.4rem; display: block; }
.ru-progress { height: 8px; background: var(--cb-light); border-radius: 0; overflow: hidden; }
.ru-progress-bar { height: 100%; background: var(--cb-accent); border-radius: 0; transition: width 0.3s ease; }

/* Info list */
.ru-info-list { list-style: none; padding: 0; margin: 0; }
.ru-info-item { display: flex; align-items: flex-start; gap: 0.5rem; font-size: 0.82rem; color: var(--cb-gray); padding: 0.4rem 0; border-bottom: 1px solid var(--cb-light); }
.ru-info-item:last-child { border-bottom: none; }
.ru-info-item i { flex-shrink: 0; margin-top: 0.1rem; }
.ru-info-strong { font-weight: 600; color: var(--cb-dark); }

/* Allegati esistenti list */
.ru-file-list { list-style: none; padding: 0; margin: 0; }
.ru-file-item { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; padding: 0.65rem 1rem; border-bottom: 1px solid var(--cb-light); font-size: 0.82rem; transition: background 0.15s ease; }
.ru-file-item:last-child { border-bottom: none; }
.ru-file-item:hover { background: rgba(227,72,36,0.02); }
.ru-file-item-name { display: flex; align-items: center; gap: 0.4rem; min-width: 0; flex: 1; }
.ru-file-item-name span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--cb-dark); font-size: 0.8rem; }

/* Sidebar sticky */
.ru-sidebar-sticky { position: sticky; top: 72px; z-index: 10; }

/* Divider */
.ru-divider { border: 0; border-top: 1px solid var(--cb-light); margin: 1.25rem 0; }

/* Buttons */
.ru-btn { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.55rem 1.5rem; font-size: 0.85rem; font-weight: 600; border-radius: 0; border: 2px solid; cursor: pointer; text-decoration: none; transition: background 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s; }
.ru-btn-accent    { background: var(--cb-accent); color: #fff; border-color: var(--cb-accent); }
.ru-btn-accent:hover    { background: var(--cb-accent-hover); border-color: var(--cb-accent-hover); box-shadow: 0 2px 8px rgba(227,72,36,0.2); color: #fff; }
.ru-btn-secondary { background: transparent; color: var(--cb-gray); border-color: var(--cb-border); }
.ru-btn-secondary:hover { border-color: var(--cb-dark); color: var(--cb-dark); }
.ru-btn-outline-danger { background: transparent; color: var(--cb-danger); border: 1px solid rgba(220,38,38,0.25); font-size: 0.78rem; padding: 0.3rem 0.65rem; }
.ru-btn-outline-danger:hover { background: rgba(220,38,38,0.06); border-color: var(--cb-danger); color: var(--cb-danger); }
.ru-btn-icon--secondary { width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center; border-radius: 0; border: 1px solid rgba(107,114,128,0.2); color: var(--cb-gray); background: transparent; text-decoration: none; transition: background 0.15s, border-color 0.15s; flex-shrink: 0; }
.ru-btn-icon--secondary:hover { background: rgba(107,114,128,0.06); border-color: var(--cb-gray); color: var(--cb-gray); }

/* Form section footer */
.ru-form-footer { display: flex; justify-content: space-between; align-items: center; padding-top: 1.25rem; border-top: 1px solid var(--cb-light); }

/* Responsive */
@media (max-width: 991.98px) { .ru-sidebar-sticky { position: static; } }

/* ============================================
    REGISTRO CONTRATTI > UPLOADMULTIPLO PAGE STYLES
============================================ */
/* Breadcrumb */
.rm-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-top: 0.3rem; }
.rm-breadcrumb a { color: var(--cb-accent); text-decoration: none; font-weight: 500; }
.rm-breadcrumb a:hover { color: var(--cb-accent-hover); text-decoration: underline; }
.rm-breadcrumb .rm-sep { color: var(--cb-border); }
.rm-breadcrumb .rm-current { color: var(--cb-gray); font-weight: 500; }

/* Page title */
.rm-page-title { font-size: 1.4rem; font-weight: 700; color: var(--cb-dark); letter-spacing: -0.025em; margin: 0.2rem 0 0; display: flex; align-items: center; gap: 0.6rem; }

/* Alerts */
.rm-alert { border-radius: 0; border: 1px solid var(--cb-border); padding: 0.85rem 1.25rem; font-size: 0.85rem; display: flex; align-items: flex-start; gap: 0.6rem; margin-bottom: 1.5rem; }
.rm-alert-success { border-left: 4px solid var(--cb-green);  background: rgba(5,150,105,0.04); }
.rm-alert-success .rm-alert-icon { color: var(--cb-green);  flex-shrink: 0; }
.rm-alert-danger  { border-left: 4px solid var(--cb-danger); background: rgba(220,38,38,0.04); }
.rm-alert-danger .rm-alert-icon  { color: var(--cb-danger); flex-shrink: 0; }
.rm-alert-close { margin-left: auto; background: none; border: none; cursor: pointer; color: var(--cb-muted); flex-shrink: 0; }
.rm-alert-close:hover { color: var(--cb-dark); }

/* Inline validation alert (JS) */
.rm-validation-alert { border-radius: 0; border: 1px solid rgba(220,38,38,0.2); border-left: 4px solid var(--cb-danger); background: rgba(220,38,38,0.04); padding: 0.75rem 1rem; font-size: 0.82rem; color: var(--cb-danger); display: none; margin-bottom: 1rem; }

/* Context box */
.rm-context-box { background: var(--cb-white); border: 1px solid var(--cb-border); border-left: 4px solid var(--cb-cyan); padding: 1rem 1.25rem; margin-bottom: 1.5rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.rm-context-title { font-size: 0.9rem; font-weight: 600; color: var(--cb-dark); margin: 0 0 0.2rem 0; }
.rm-context-sub   { font-size: 0.75rem; color: var(--cb-muted); }
.rm-context-code  { font-size: 0.72rem; font-family: monospace; background: var(--cb-light); padding: 0.1rem 0.3rem; color: var(--cb-gray); }

/* Cards */
.rm-card { background: var(--cb-white); border: 1px solid var(--cb-border); border-radius: 0; overflow: hidden; margin-bottom: 1.5rem; }
.rm-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid var(--cb-border); display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; }
.rm-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.rm-card-header--accent::before { background: var(--cb-accent); }
.rm-card-header--gray::before   { background: var(--cb-gray); }
.rm-card-header--info::before   { background: var(--cb-cyan); }
.rm-card-header--amber::before  { background: var(--cb-amber); }
.rm-card-header-left { display: flex; align-items: center; gap: 0.75rem; }
.rm-icon-box { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.rm-icon-box--accent { background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15); }
.rm-icon-box--accent i { color: var(--cb-accent); }
.rm-icon-box--gray   { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); }
.rm-icon-box--gray i  { color: var(--cb-gray); }
.rm-icon-box--info   { background: rgba(8,145,178,0.08); border: 1px solid rgba(8,145,178,0.15); }
.rm-icon-box--info i  { color: var(--cb-cyan); }
.rm-icon-box--amber  { background: rgba(217,119,6,0.08); border: 1px solid rgba(217,119,6,0.15); }
.rm-icon-box--amber i { color: var(--cb-amber); }
.rm-card-title { font-size: 0.9rem; font-weight: 700; color: var(--cb-dark); margin: 0; }
.rm-card-body  { padding: 1.5rem; padding-left: calc(1.5rem + 4px); }
.rm-card-body--nopad { padding: 0; }

/* Badge */
.rm-badge { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.25rem 0.65rem; font-size: 0.68rem; font-weight: 600; border-radius: 0; text-transform: uppercase; letter-spacing: 0.03em; border: 1px solid; }
.rm-badge--secondary { background: rgba(107,114,128,0.06); color: var(--cb-gray); border-color: rgba(107,114,128,0.2); }
.rm-badge--accent    { background: rgba(227,72,36,0.06);   color: var(--cb-accent); border-color: rgba(227,72,36,0.2); }
.rm-badge--ext       { background: rgba(107,114,128,0.05); color: var(--cb-gray); border-color: rgba(107,114,128,0.15); font-size: 0.65rem; padding: 0.15rem 0.4rem; }

/* Form */
.rm-label { display: block; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--cb-dark); margin-bottom: 0.35rem; }
.rm-required { color: var(--cb-danger); margin-left: 0.15rem; }
.rm-form-control { width: 100%; border: 1px solid var(--cb-border); border-radius: 0; font-size: 0.85rem; padding: 0.5rem 0.75rem; color: var(--cb-dark); background: var(--cb-white); transition: border-color 0.2s, box-shadow 0.2s; }
.rm-form-control:focus { outline: none; border-color: var(--cb-accent); box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
.rm-validation { font-size: 0.72rem; color: var(--cb-danger); margin-top: 0.25rem; display: block; }
.rm-form-text  { font-size: 0.72rem; color: var(--cb-muted); margin-top: 0.25rem; display: block; }

/* Dropzone */
.rm-dropzone {
    border: 2px dashed var(--cb-border); min-height: 150px; padding: 2.5rem 1.5rem;
    text-align: center; cursor: pointer; background: var(--cb-white);
    display: flex; flex-direction: column; justify-content: center; align-items: center;
    transition: border-color 0.2s ease, background 0.2s ease;
}
.rm-dropzone:hover, .rm-dropzone.dragover { border-color: var(--cb-accent); background: rgba(227,72,36,0.02); }
.rm-dropzone.has-files { border-color: var(--cb-green); background: rgba(5,150,105,0.02); border-style: solid; }
.rm-dropzone-icon { font-size: 2.5rem; color: var(--cb-muted); }
.rm-dropzone.has-files .rm-dropzone-icon { color: var(--cb-green); }
.rm-dropzone-text { font-size: 0.85rem; color: var(--cb-gray); margin: 0.75rem 0 0.4rem 0; }
.rm-dropzone-link { color: var(--cb-accent); font-weight: 600; text-decoration: none; cursor: pointer; }
.rm-dropzone-link:hover { color: var(--cb-accent-hover); text-decoration: underline; }
.rm-dropzone-hint { font-size: 0.72rem; color: var(--cb-muted); }

/* Files list */
.rm-files-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.5rem; }
.rm-files-header-label { font-size: 0.8rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--cb-gray); }
.rm-files-list { border: 1px solid var(--cb-border); }
.rm-file-item { display: flex; align-items: center; padding: 0.6rem 0.85rem; border-bottom: 1px solid var(--cb-light); gap: 0.6rem; transition: background 0.15s ease; }
.rm-file-item:last-child { border-bottom: none; }
.rm-file-item:hover { background: rgba(227,72,36,0.02); }
.rm-file-item.error { background: rgba(220,38,38,0.04); }
.rm-file-icon { width: 34px; text-align: center; flex-shrink: 0; font-size: 1.3rem; }
.rm-file-info { flex: 1; min-width: 0; }
.rm-file-name { font-size: 0.82rem; font-weight: 600; color: var(--cb-dark); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rm-file-size { font-size: 0.72rem; color: var(--cb-muted); }
.rm-file-remove { background: none; border: 1px solid rgba(220,38,38,0.2); color: var(--cb-danger); width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; border-radius: 0; cursor: pointer; flex-shrink: 0; transition: background 0.15s, border-color 0.15s; }
.rm-file-remove:hover { background: rgba(220,38,38,0.08); border-color: var(--cb-danger); }

/* Files footer */
.rm-files-footer { display: flex; justify-content: space-between; align-items: center; margin-top: 0.6rem; font-size: 0.75rem; color: var(--cb-muted); }

/* Progress */
.rm-progress { height: 6px; background: var(--cb-light); border-radius: 0; overflow: hidden; margin-top: 0.75rem; }
.rm-progress-bar { height: 100%; background: var(--cb-accent); border-radius: 0; transition: width 0.3s ease; }

/* Divider */
.rm-divider { border: 0; border-top: 1px solid var(--cb-light); margin: 1.25rem 0; }

/* Form footer */
.rm-form-footer { display: flex; justify-content: space-between; align-items: center; padding-top: 1.25rem; border-top: 1px solid var(--cb-light); }

/* Link alternativo */
.rm-alt-link { text-align: center; font-size: 0.82rem; color: var(--cb-gray); margin-top: 0.75rem; }
.rm-alt-link a { color: var(--cb-accent); font-weight: 600; text-decoration: none; }
.rm-alt-link a:hover { color: var(--cb-accent-hover); text-decoration: underline; }

/* Sidebar allegati */
.rm-file-list-sidebar { list-style: none; padding: 0; margin: 0; }
.rm-file-list-item { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; padding: 0.65rem 1rem; border-bottom: 1px solid var(--cb-light); font-size: 0.82rem; transition: background 0.15s ease; }
.rm-file-list-item:last-child { border-bottom: none; }
.rm-file-list-item:hover { background: rgba(227,72,36,0.02); }
.rm-file-list-name { display: flex; align-items: center; gap: 0.4rem; min-width: 0; flex: 1; }
.rm-file-list-name span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--cb-dark); font-size: 0.8rem; }

/* Limits table */
.rm-limits-list { list-style: none; padding: 0; margin: 0; }
.rm-limits-item { display: flex; justify-content: space-between; align-items: center; padding: 0.55rem 0; border-bottom: 1px solid var(--cb-light); font-size: 0.82rem; }
.rm-limits-item:last-child { border-bottom: none; padding-bottom: 0; }
.rm-limits-key { color: var(--cb-gray); }
.rm-limits-val { font-weight: 700; color: var(--cb-dark); }
.rm-ext-tags { display: flex; flex-wrap: wrap; gap: 0.3rem; margin-top: 0.5rem; }

/* Tips list */
.rm-tips-list { list-style: none; padding: 0; margin: 0; }
.rm-tips-item { display: flex; align-items: flex-start; gap: 0.5rem; font-size: 0.82rem; color: var(--cb-gray); padding: 0.4rem 0; border-bottom: 1px solid var(--cb-light); }
.rm-tips-item:last-child { border-bottom: none; }
.rm-tips-item i { flex-shrink: 0; margin-top: 0.1rem; }

/* Buttons */
.rm-btn { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.55rem 1.5rem; font-size: 0.85rem; font-weight: 600; border-radius: 0; border: 2px solid; cursor: pointer; text-decoration: none; transition: background 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s; }
.rm-btn-accent    { background: var(--cb-accent); color: #fff; border-color: var(--cb-accent); }
.rm-btn-accent:hover    { background: var(--cb-accent-hover); border-color: var(--cb-accent-hover); box-shadow: 0 2px 8px rgba(227,72,36,0.2); color: #fff; }
.rm-btn-accent:disabled { opacity: 0.5; cursor: not-allowed; }
.rm-btn-secondary { background: transparent; color: var(--cb-gray); border-color: var(--cb-border); }
.rm-btn-secondary:hover { border-color: var(--cb-dark); color: var(--cb-dark); }
.rm-btn-outline-danger { background: transparent; color: var(--cb-danger); border: 1px solid rgba(220,38,38,0.25); font-size: 0.78rem; padding: 0.3rem 0.65rem; border-radius: 0; cursor: pointer; transition: background 0.15s, border-color 0.15s; }
.rm-btn-outline-danger:hover { background: rgba(220,38,38,0.06); border-color: var(--cb-danger); }
.rm-btn-icon--secondary { width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center; border-radius: 0; border: 1px solid rgba(107,114,128,0.2); color: var(--cb-gray); background: transparent; text-decoration: none; transition: background 0.15s, border-color 0.15s; flex-shrink: 0; }
.rm-btn-icon--secondary:hover { background: rgba(107,114,128,0.06); border-color: var(--cb-gray); color: var(--cb-gray); }

/* Sidebar sticky */
.rm-sidebar-sticky { position: sticky; top: 72px; z-index: 10; }

@media (max-width: 991.98px) { .rm-sidebar-sticky { position: static; } }

/* ============================================
    REPARTI > CREATE PAGE STYLES
============================================ */
/* ── Page ── */
.rptc-page { padding: 2rem; }

/* ── Breadcrumb ── */
.rptc-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.rptc-breadcrumb a { color: var(--cb-accent); text-decoration: none; font-weight: 500; }
.rptc-breadcrumb a:hover { color: var(--cb-accent-hover); text-decoration: underline; }
.rptc-breadcrumb .rptc-sep { color: var(--cb-border); }
.rptc-breadcrumb .rptc-current { color: var(--cb-gray); font-weight: 500; }

/* ── Page Header ── */
.rptc-page-header { display: flex; align-items: flex-start; gap: 0.75rem; margin-bottom: 1.5rem; }
.rptc-page-icon {
    width: 42px; height: 42px; flex-shrink: 0;
    background: rgba(5,150,105,0.08); border: 1px solid rgba(5,150,105,0.15);
    display: flex; align-items: center; justify-content: center;
}
.rptc-page-header h1 { font-size: 1.4rem; font-weight: 700; color: var(--cb-dark); letter-spacing: -0.025em; margin: 0 0 0.15rem 0; }
.rptc-page-header p  { font-size: 0.85rem; color: var(--cb-gray); margin: 0; }

/* ── Layout ── */
.rptc-layout { display: grid; grid-template-columns: 1fr 300px; gap: 1.5rem; align-items: start; }

/* ── Card ── */
.rptc-card { background: var(--cb-white); border: 1px solid var(--cb-border); overflow: hidden; }
.rptc-card-header {
    position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid var(--cb-border);
    display: flex; align-items: center; gap: 0.75rem;
}
.rptc-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.rptc-card-header--green::before { background: var(--cb-green); }
.rptc-card-header--cyan::before  { background: var(--cb-cyan); }
.rptc-card-icon { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.rptc-card-icon--green { background: rgba(5,150,105,0.08);  border: 1px solid rgba(5,150,105,0.15); }
.rptc-card-icon--cyan  { background: rgba(8,145,178,0.08);  border: 1px solid rgba(8,145,178,0.15); }
.rptc-card-title { font-size: 0.9rem; font-weight: 700; color: var(--cb-dark); margin: 0; }
.rptc-card-body  { padding: 1.5rem 1.5rem 1.5rem 1.75rem; }

/* ── Validation ── */
.rptc-validation {
    border-radius: 0; border: 1px solid var(--cb-border);
    border-left: 4px solid var(--cb-danger); background: rgba(220,38,38,0.04);
    padding: 0.85rem 1.25rem; font-size: 0.85rem; margin-bottom: 1.25rem; color: var(--cb-danger);
}

/* ── Form ── */
.rptc-form-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; margin-bottom: 1rem; }
.rptc-form-row  { margin-bottom: 1rem; }
.rptc-label {
    display: block; font-size: 0.8rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.04em;
    color: var(--cb-dark); margin-bottom: 0.35rem;
}
.rptc-required { color: var(--cb-danger); margin-left: 0.2rem; }
.rptc-input, .rptc-textarea {
    width: 100%; border: 1px solid var(--cb-border); font-size: 0.85rem; color: var(--cb-dark);
    padding: 0.5rem 0.75rem; border-radius: 0; background: var(--cb-white);
    transition: border-color 0.2s, box-shadow 0.2s;
}
.rptc-input:focus, .rptc-textarea:focus {
    outline: none; border-color: var(--cb-accent); box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}
.rptc-textarea { resize: vertical; min-height: 90px; }
.rptc-input-group { display: flex; }
.rptc-input-group .rptc-input-prefix {
    display: flex; align-items: center; justify-content: center;
    padding: 0 0.65rem; background: var(--cb-light); border: 1px solid var(--cb-border);
    border-right: none; color: var(--cb-gray); flex-shrink: 0;
}
.rptc-input-group .rptc-input { border-left: none; }
.rptc-input-group .rptc-input:focus { border-left: 1px solid var(--cb-accent); }
.rptc-validation-msg { font-size: 0.72rem; color: var(--cb-danger); margin-top: 0.25rem; display: block; }
.rptc-form-text { font-size: 0.72rem; color: var(--cb-muted); margin-top: 0.3rem; }

/* ── Separator ── */
.rptc-separator { border-top: 1px solid var(--cb-light); margin: 1.5rem 0; }

/* ── Buttons ── */
.rptc-form-actions { display: flex; justify-content: space-between; align-items: center; }
.rptc-btn-green {
    padding: 0.55rem 1.5rem; font-size: 0.85rem; font-weight: 600;
    color: #fff; background: var(--cb-green); border: 2px solid var(--cb-green);
    border-radius: 0; cursor: pointer; display: inline-flex; align-items: center; gap: 0.4rem;
    transition: background 0.2s, box-shadow 0.2s;
}
.rptc-btn-green:hover { background: var(--cb-green-hover); border-color: var(--cb-green-hover); box-shadow: 0 2px 8px rgba(5,150,105,0.2); }
.rptc-btn-secondary {
    padding: 0.55rem 1.25rem; font-size: 0.85rem; font-weight: 600;
    color: var(--cb-gray); background: transparent; border: 2px solid var(--cb-border);
    border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem;
    transition: border-color 0.2s, color 0.2s;
}
.rptc-btn-secondary:hover { border-color: var(--cb-dark); color: var(--cb-dark); text-decoration: none; }

/* ── Info sidebar ── */
.rptc-info-card { background: var(--cb-white); border: 1px solid var(--cb-border); overflow: hidden; position: sticky; top: 72px; }
.rptc-info-body { padding: 1.25rem 1.5rem 1.25rem 1.75rem; }
.rptc-info-box {
    background: rgba(8,145,178,0.04); border-left: 3px solid var(--cb-cyan);
    padding: 0.65rem 0.85rem; font-size: 0.82rem; color: var(--cb-gray); margin-bottom: 1rem;
}
.rptc-required-note { display: flex; align-items: center; gap: 0.4rem; font-size: 0.78rem; color: var(--cb-muted); }
.rptc-required-dot { color: var(--cb-danger); font-weight: 700; font-size: 1rem; line-height: 1; }

/* ── Responsive ── */
@media (max-width: 991.98px) {
    .rptc-layout { grid-template-columns: 1fr; }
    .rptc-info-card { position: static; }
}
@media (max-width: 575.98px) {
    .rptc-page { padding: 1rem; }
    .rptc-form-2col { grid-template-columns: 1fr; }
}

/* ============================================
    REPARTI > DETAILS PAGE STYLES
============================================ */
/* ── Page ── */
.rpd-page { padding: 2rem; }

/* ── Breadcrumb ── */
.rpd-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.rpd-breadcrumb a { color: var(--cb-accent); text-decoration: none; font-weight: 500; }
.rpd-breadcrumb a:hover { color: var(--cb-accent-hover); text-decoration: underline; }
.rpd-breadcrumb .rpd-sep { color: var(--cb-border); }
.rpd-breadcrumb .rpd-current { color: var(--cb-gray); font-weight: 500; }

/* ── Alerts ── */
.rpd-alert {
    border-radius: 0; border: 1px solid var(--cb-border);
    padding: 0.85rem 1.25rem; font-size: 0.85rem;
    display: flex; align-items: center; gap: 0.5rem; margin-bottom: 1.5rem;
}
.rpd-alert-success { border-left: 4px solid var(--cb-green); background: rgba(5,150,105,0.05); color: var(--cb-dark); }
.rpd-alert-success svg { color: var(--cb-green); flex-shrink: 0; }
.rpd-alert-danger  { border-left: 4px solid var(--cb-danger); background: rgba(220,38,38,0.04); color: var(--cb-dark); }
.rpd-alert-danger svg  { color: var(--cb-danger); flex-shrink: 0; }
.rpd-alert-close { margin-left: auto; background: transparent; border: none; cursor: pointer; color: var(--cb-muted); padding: 0; flex-shrink: 0; }
.rpd-alert-close:hover { color: var(--cb-dark); }

/* ── Layout ── */
.rpd-layout { display: grid; grid-template-columns: 1fr 280px; gap: 1.5rem; align-items: start; }

/* ── Card ── */
.rpd-card { background: var(--cb-white); border: 1px solid var(--cb-border); overflow: hidden; margin-bottom: 1.5rem; }
.rpd-card:last-child { margin-bottom: 0; }
.rpd-card-header {
    position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid var(--cb-border);
    display: flex; align-items: center; gap: 0.75rem;
}
.rpd-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.rpd-card-header--accent::before  { background: var(--cb-accent); }
.rpd-card-header--green::before   { background: var(--cb-green); }
.rpd-card-header--neutral::before { background: var(--cb-border); }
.rpd-card-header--danger::before  { background: var(--cb-danger); }

.rpd-icon-box { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.rpd-icon-box--accent  { background: rgba(227,72,36,0.08);  border: 1px solid rgba(227,72,36,0.15); }
.rpd-icon-box--green   { background: rgba(5,150,105,0.08);  border: 1px solid rgba(5,150,105,0.15); }
.rpd-icon-box--neutral { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); }
.rpd-icon-box--danger  { background: rgba(220,38,38,0.08);  border: 1px solid rgba(220,38,38,0.15); }

.rpd-card-title { font-size: 0.9rem; font-weight: 700; color: var(--cb-dark); margin: 0; flex: 1; }
.rpd-card-body  { padding: 1.5rem 1.5rem 1.5rem 1.75rem; }

/* ── Header actions ── */
.rpd-header-actions { display: flex; align-items: center; gap: 0.5rem; }
.rpd-btn-outline {
    padding: 0.4rem 0.9rem; font-size: 0.82rem; font-weight: 600;
    background: transparent; border-radius: 0; text-decoration: none;
    display: inline-flex; align-items: center; gap: 0.35rem;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.rpd-btn-outline-amber  { border: 1px solid rgba(217,119,6,0.2);  color: var(--cb-amber); }
.rpd-btn-outline-amber:hover  { background: rgba(217,119,6,0.08);  border-color: var(--cb-amber);  color: var(--cb-amber);  text-decoration: none; }
.rpd-btn-outline-danger { border: 1px solid rgba(220,38,38,0.2);  color: var(--cb-danger); }
.rpd-btn-outline-danger:hover { background: rgba(220,38,38,0.08);  border-color: var(--cb-danger); color: var(--cb-danger); text-decoration: none; }

/* ── Fields grid ── */
.rpd-fields-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.5rem; }
.rpd-field { display: flex; flex-direction: column; padding: 0.6rem 0; border-bottom: 1px solid var(--cb-light); }
.rpd-field--full { grid-column: 1 / -1; }
.rpd-field:last-child { border-bottom: none; }
.rpd-field-label { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--cb-gray); margin-bottom: 0.2rem; }
.rpd-field-value { font-size: 0.85rem; color: var(--cb-dark); font-weight: 500; }
.rpd-field-empty { font-size: 0.85rem; color: var(--cb-muted); font-style: italic; }

.rpd-email-link { color: var(--cb-cyan); text-decoration: none; display: inline-flex; align-items: center; gap: 0.3rem; font-size: 0.85rem; font-weight: 500; transition: color 0.2s; }
.rpd-email-link:hover { color: var(--cb-accent); text-decoration: none; }

/* ── Badge count ── */
.rpd-count-badge {
    display: inline-flex; align-items: center; padding: 0.2rem 0.55rem;
    font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; border-radius: 0;
    background: rgba(107,114,128,0.06); color: var(--cb-gray); border: 1px solid rgba(107,114,128,0.2);
}

/* ── Table ── */
.rpd-table { width: 100%; border-collapse: collapse; }
.rpd-table thead th { background: var(--cb-dark); color: #fff; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; padding: 0.65rem 1rem; border: none; }
.rpd-table thead th.rpd-th-center { text-align: center; }
.rpd-table tbody td { font-size: 0.83rem; color: var(--cb-dark); padding: 0.7rem 1rem; border-bottom: 1px solid var(--cb-light); vertical-align: middle; }
.rpd-table tbody tr:hover { background: rgba(227,72,36,0.03); }
.rpd-table tbody tr:last-child td { border-bottom: none; }
.rpd-table td.rpd-td-center { text-align: center; }

.rpd-user-name { display: inline-flex; align-items: center; gap: 0.4rem; font-weight: 600; font-size: 0.85rem; }
.rpd-user-email { color: var(--cb-cyan); font-size: 0.82rem; text-decoration: none; transition: color 0.2s; }
.rpd-user-email:hover { color: var(--cb-accent); text-decoration: none; }

.rpd-badge {
    display: inline-flex; align-items: center; padding: 0.2rem 0.55rem;
    font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; border-radius: 0;
}
.rpd-badge-success  { background: rgba(5,150,105,0.06); color: var(--cb-green); border: 1px solid rgba(5,150,105,0.2); }
.rpd-badge-secondary{ background: rgba(107,114,128,0.06); color: var(--cb-gray);  border: 1px solid rgba(107,114,128,0.2); }

/* ── Empty state ── */
.rpd-empty { padding: 2.5rem 2rem; text-align: center; }
.rpd-empty svg { color: var(--cb-muted); margin-bottom: 0.75rem; }
.rpd-empty p { color: var(--cb-gray); font-size: 0.85rem; margin: 0; }

/* ── Sidebar ── */
.rpd-sidebar-stack { position: sticky; top: 72px; display: flex; flex-direction: column; gap: 1.5rem; }

/* ── Audit list ── */
.rpd-audit-list { list-style: none; padding: 0; margin: 0; }
.rpd-audit-item { display: flex; justify-content: space-between; align-items: baseline; padding: 0.55rem 0; border-bottom: 1px solid var(--cb-light); }
.rpd-audit-item:last-child { border-bottom: none; }
.rpd-audit-label { font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--cb-gray); }
.rpd-audit-value { font-size: 0.82rem; color: var(--cb-dark); font-weight: 500; }

/* ── Azioni sidebar ── */
.rpd-actions-stack { display: flex; flex-direction: column; gap: 0.5rem; }
.rpd-action-link {
    padding: 0.5rem 0.9rem; font-size: 0.82rem; font-weight: 600;
    background: transparent; border-radius: 0; text-decoration: none;
    display: flex; align-items: center; gap: 0.5rem;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.rpd-action-link-amber  { border: 1px solid rgba(217,119,6,0.2);  color: var(--cb-amber); }
.rpd-action-link-amber:hover  { background: rgba(217,119,6,0.08);  border-color: var(--cb-amber);  color: var(--cb-amber);  text-decoration: none; }
.rpd-action-link-danger { border: 1px solid rgba(220,38,38,0.2);  color: var(--cb-danger); }
.rpd-action-link-danger:hover { background: rgba(220,38,38,0.08);  border-color: var(--cb-danger); color: var(--cb-danger); text-decoration: none; }
.rpd-action-btn-disabled {
    padding: 0.5rem 0.9rem; font-size: 0.82rem; font-weight: 600;
    background: transparent; border-radius: 0;
    display: flex; align-items: center; gap: 0.5rem;
    border: 1px solid rgba(220,38,38,0.1); color: rgba(220,38,38,0.35);
    cursor: not-allowed;
}
.rpd-warning-note {
    font-size: 0.72rem; color: var(--cb-muted);
    background: rgba(217,119,6,0.04); border-left: 3px solid var(--cb-amber);
    padding: 0.4rem 0.65rem; display: flex; gap: 0.35rem; align-items: flex-start;
}
.rpd-warning-note svg { flex-shrink: 0; color: var(--cb-amber); margin-top: 1px; }

/* ── Back btn ── */
.rpd-btn-secondary {
    padding: 0.55rem 1.25rem; font-size: 0.85rem; font-weight: 600;
    color: var(--cb-gray); background: transparent; border: 2px solid var(--cb-border);
    border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem;
    transition: border-color 0.2s, color 0.2s;
}
.rpd-btn-secondary:hover { border-color: var(--cb-dark); color: var(--cb-dark); text-decoration: none; }

/* ── Responsive ── */
@media (max-width: 991.98px) {
    .rpd-layout { grid-template-columns: 1fr; }
    .rpd-sidebar-stack { position: static; }
    .rpd-fields-grid { grid-template-columns: 1fr; }
    .rpd-field--full { grid-column: 1; }
}
@media (max-width: 575.98px) {
    .rpd-page { padding: 1rem; }
    .rpd-header-actions { flex-wrap: wrap; }
}

/* ============================================
    REPARTI > EDIT PAGE STYLES
============================================ */
/* ── Page ── */
.rpe-page { padding: 2rem; }

/* ── Breadcrumb ── */
.rpe-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.rpe-breadcrumb a { color: var(--cb-accent); text-decoration: none; font-weight: 500; }
.rpe-breadcrumb a:hover { color: var(--cb-accent-hover); text-decoration: underline; }
.rpe-breadcrumb .rpe-sep { color: var(--cb-border); }
.rpe-breadcrumb .rpe-current { color: var(--cb-gray); font-weight: 500; }

/* ── Page Header ── */
.rpe-page-header { display: flex; align-items: flex-start; gap: 0.75rem; margin-bottom: 1.5rem; }
.rpe-page-icon {
    width: 42px; height: 42px; flex-shrink: 0;
    background: rgba(217,119,6,0.08); border: 1px solid rgba(217,119,6,0.15);
    display: flex; align-items: center; justify-content: center;
}
.rpe-page-header h1 { font-size: 1.4rem; font-weight: 700; color: var(--cb-dark); letter-spacing: -0.025em; margin: 0 0 0.15rem 0; }
.rpe-page-header p  { font-size: 0.85rem; color: var(--cb-gray); margin: 0; }

/* ── Layout ── */
.rpe-layout { display: grid; grid-template-columns: 1fr 300px; gap: 1.5rem; align-items: start; }

/* ── Card ── */
.rpe-card { background: var(--cb-white); border: 1px solid var(--cb-border); overflow: hidden; }
.rpe-card-header {
    position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid var(--cb-border);
    display: flex; align-items: center; gap: 0.75rem;
}
.rpe-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.rpe-card-header--amber::before { background: var(--cb-amber); }
.rpe-card-header--cyan::before  { background: var(--cb-cyan); }
.rpe-card-icon { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.rpe-card-icon--amber { background: rgba(217,119,6,0.08); border: 1px solid rgba(217,119,6,0.15); }
.rpe-card-icon--cyan  { background: rgba(8,145,178,0.08);  border: 1px solid rgba(8,145,178,0.15); }
.rpe-card-title { font-size: 0.9rem; font-weight: 700; color: var(--cb-dark); margin: 0; }
.rpe-card-body  { padding: 1.5rem 1.5rem 1.5rem 1.75rem; }

/* ── Validation ── */
.rpe-validation {
    border-radius: 0; border: 1px solid var(--cb-border);
    border-left: 4px solid var(--cb-danger); background: rgba(220,38,38,0.04);
    padding: 0.85rem 1.25rem; font-size: 0.85rem; margin-bottom: 1.25rem; color: var(--cb-danger);
}

/* ── Form ── */
.rpe-form-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; margin-bottom: 1rem; }
.rpe-form-row  { margin-bottom: 1rem; }
.rpe-label {
    display: block; font-size: 0.8rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.04em;
    color: var(--cb-dark); margin-bottom: 0.35rem;
}
.rpe-required { color: var(--cb-danger); margin-left: 0.2rem; }
.rpe-input, .rpe-textarea {
    width: 100%; border: 1px solid var(--cb-border); font-size: 0.85rem; color: var(--cb-dark);
    padding: 0.5rem 0.75rem; border-radius: 0; background: var(--cb-white);
    transition: border-color 0.2s, box-shadow 0.2s;
}
.rpe-input:focus, .rpe-textarea:focus {
    outline: none; border-color: var(--cb-accent); box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}
.rpe-textarea { resize: vertical; min-height: 90px; }
.rpe-input-group { display: flex; }
.rpe-input-group .rpe-input-prefix {
    display: flex; align-items: center; justify-content: center;
    padding: 0 0.65rem; background: var(--cb-light); border: 1px solid var(--cb-border);
    border-right: none; color: var(--cb-gray); flex-shrink: 0;
}
.rpe-input-group .rpe-input { border-left: none; }
.rpe-input-group .rpe-input:focus { border-left: 1px solid var(--cb-accent); }
.rpe-validation-msg { font-size: 0.72rem; color: var(--cb-danger); margin-top: 0.25rem; display: block; }
.rpe-form-text { font-size: 0.72rem; color: var(--cb-muted); margin-top: 0.3rem; }

/* ── Separator ── */
.rpe-separator { border-top: 1px solid var(--cb-light); margin: 1.5rem 0; }

/* ── Buttons ── */
.rpe-form-actions { display: flex; justify-content: space-between; align-items: center; }
.rpe-btn-amber {
    padding: 0.55rem 1.5rem; font-size: 0.85rem; font-weight: 600;
    color: #fff; background: var(--cb-amber); border: 2px solid var(--cb-amber);
    border-radius: 0; cursor: pointer; display: inline-flex; align-items: center; gap: 0.4rem;
    transition: background 0.2s, box-shadow 0.2s;
}
.rpe-btn-amber:hover { background: var(--cb-amber-hover); border-color: var(--cb-amber-hover); box-shadow: 0 2px 8px rgba(217,119,6,0.2); }
.rpe-btn-secondary {
    padding: 0.55rem 1.25rem; font-size: 0.85rem; font-weight: 600;
    color: var(--cb-gray); background: transparent; border: 2px solid var(--cb-border);
    border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem;
    transition: border-color 0.2s, color 0.2s;
}
.rpe-btn-secondary:hover { border-color: var(--cb-dark); color: var(--cb-dark); text-decoration: none; }

/* ── Info sidebar ── */
.rpe-info-card { background: var(--cb-white); border: 1px solid var(--cb-border); overflow: hidden; position: sticky; top: 72px; }
.rpe-info-body { padding: 1.25rem 1.5rem 1.25rem 1.75rem; }
.rpe-info-box {
    background: rgba(8,145,178,0.04); border-left: 3px solid var(--cb-cyan);
    padding: 0.65rem 0.85rem; font-size: 0.82rem; color: var(--cb-gray); margin-bottom: 1rem;
}
.rpe-required-note { display: flex; align-items: center; gap: 0.4rem; font-size: 0.78rem; color: var(--cb-muted); }
.rpe-required-dot { color: var(--cb-danger); font-weight: 700; font-size: 1rem; line-height: 1; }

/* ── Responsive ── */
@media (max-width: 991.98px) {
    .rpe-layout { grid-template-columns: 1fr; }
    .rpe-info-card { position: static; }
}
@media (max-width: 575.98px) {
    .rpe-page { padding: 1rem; }
    .rpe-form-2col { grid-template-columns: 1fr; }
}

/* ============================================
    REPARTI > DELETE PAGE STYLES
============================================ */
/* ── Page ── */
.rpx-page { padding: 2rem; }

/* ── Breadcrumb ── */
.rpx-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.rpx-breadcrumb a { color: var(--cb-accent); text-decoration: none; font-weight: 500; }
.rpx-breadcrumb a:hover { color: var(--cb-accent-hover); text-decoration: underline; }
.rpx-breadcrumb .rpx-sep { color: var(--cb-border); }
.rpx-breadcrumb .rpx-current { color: var(--cb-gray); font-weight: 500; }

/* ── Alert ── */
.rpx-alert {
    border-radius: 0; border: 1px solid var(--cb-border);
    border-left: 4px solid var(--cb-danger); background: rgba(220,38,38,0.04);
    padding: 0.85rem 1.25rem; font-size: 0.85rem;
    display: flex; align-items: center; gap: 0.5rem;
    margin-bottom: 1.5rem; color: var(--cb-dark);
}
.rpx-alert svg { color: var(--cb-danger); flex-shrink: 0; }
.rpx-alert-close { margin-left: auto; background: transparent; border: none; cursor: pointer; color: var(--cb-muted); padding: 0; flex-shrink: 0; }
.rpx-alert-close:hover { color: var(--cb-dark); }

/* ── Centered wrapper ── */
.rpx-wrapper { display: flex; justify-content: center; }
.rpx-card { background: var(--cb-white); border: 1px solid var(--cb-border); overflow: hidden; width: 100%; max-width: 560px; }

/* ── Card header ── */
.rpx-card-header {
    position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid var(--cb-border);
    display: flex; align-items: center; gap: 0.75rem;
}
.rpx-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--cb-danger); }
.rpx-card-icon { width: 34px; height: 34px; background: rgba(220,38,38,0.08); border: 1px solid rgba(220,38,38,0.15); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.rpx-card-title { font-size: 0.9rem; font-weight: 700; color: var(--cb-dark); margin: 0; }

/* ── Card body ── */
.rpx-card-body { padding: 1.5rem 1.5rem 1.5rem 1.75rem; }

/* ── Warning box ── */
.rpx-warning-box {
    background: rgba(217,119,6,0.04); border-left: 4px solid var(--cb-amber);
    padding: 0.85rem 1rem; font-size: 0.85rem; color: var(--cb-dark);
    display: flex; align-items: flex-start; gap: 0.5rem; margin-bottom: 1.5rem;
}
.rpx-warning-box svg { color: var(--cb-amber); flex-shrink: 0; margin-top: 1px; }
.rpx-warning-box strong { font-weight: 700; }

/* ── Fields ── */
.rpx-fields { display: flex; flex-direction: column; }
.rpx-field { display: flex; padding: 0.6rem 0; border-bottom: 1px solid var(--cb-light); align-items: baseline; gap: 1rem; }
.rpx-field:last-child { border-bottom: none; }
.rpx-field-label { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--cb-gray); width: 130px; flex-shrink: 0; }
.rpx-field-value { font-size: 0.85rem; color: var(--cb-dark); font-weight: 500; flex: 1; }

/* ── Utenti warning inline ── */
.rpx-utenti-warn {
    display: flex; align-items: center; gap: 0.4rem; margin-top: 0.3rem;
    font-size: 0.72rem; color: var(--cb-danger);
}

/* ── Badge ── */
.rpx-badge {
    display: inline-flex; align-items: center; padding: 0.2rem 0.55rem;
    font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; border-radius: 0;
}
.rpx-badge-danger    { background: rgba(220,38,38,0.06);  color: var(--cb-danger); border: 1px solid rgba(220,38,38,0.2); }
.rpx-badge-secondary { background: rgba(107,114,128,0.06); color: var(--cb-gray);   border: 1px solid rgba(107,114,128,0.2); }

/* ── Card footer ── */
.rpx-card-footer { padding: 1rem 1.5rem 1rem 1.75rem; border-top: 1px solid var(--cb-border); display: flex; justify-content: space-between; align-items: center; gap: 0.5rem; }

/* ── Buttons ── */
.rpx-btn-secondary {
    padding: 0.55rem 1.25rem; font-size: 0.85rem; font-weight: 600;
    color: var(--cb-gray); background: transparent; border: 2px solid var(--cb-border);
    border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem;
    transition: border-color 0.2s, color 0.2s;
}
.rpx-btn-secondary:hover { border-color: var(--cb-dark); color: var(--cb-dark); text-decoration: none; }

.rpx-btn-danger {
    padding: 0.55rem 1.5rem; font-size: 0.85rem; font-weight: 600;
    color: #fff; background: var(--cb-danger); border: 2px solid var(--cb-danger);
    border-radius: 0; cursor: pointer; display: inline-flex; align-items: center; gap: 0.4rem;
    transition: background 0.2s, box-shadow 0.2s;
}
.rpx-btn-danger:hover { background: var(--cb-danger-hover); border-color: var(--cb-danger-hover); box-shadow: 0 2px 8px rgba(220,38,38,0.2); }
.rpx-btn-danger:disabled { opacity: 0.45; cursor: not-allowed; box-shadow: none; }

/* ── Responsive ── */
@media (max-width: 575.98px) {
    .rpx-page { padding: 1rem; }
    .rpx-field { flex-direction: column; gap: 0.2rem; }
    .rpx-field-label { width: auto; }
}

/* ============================================
    RICHIESTEINTEGRAZIONE PAGE STYLES
============================================ */

/* PAGE WRAPPER */
.ri-page { padding: 2rem; }

/* BREADCRUMB */
.ri-breadcrumb { display: flex; align-items: center; gap: 0.4rem; margin-bottom: 0.75rem; font-size: 0.8rem; flex-wrap: wrap; }
.ri-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; transition: color 0.15s; }
.ri-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.ri-breadcrumb .ri-sep { color: #e0e1e3; }
.ri-breadcrumb .ri-current { color: #6b7280; font-weight: 500; }

/* HEADER */
.ri-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 1.5rem; gap: 1rem; flex-wrap: wrap; }
.ri-header h1 { font-size: 1.4rem; font-weight: 700; color: #151515; margin: 0 0 0.25rem; display: flex; align-items: center; gap: 0.5rem; letter-spacing: -0.025em; }
.ri-header h1 svg { color: #E34824; flex-shrink: 0; }
.ri-header p { font-size: 0.85rem; color: #6b7280; margin: 0; }
.ri-header-actions { display: flex; gap: 0.5rem; flex-wrap: wrap; }

/* BUTTONS */
.ri-btn { background: #E34824; color: #fff; border: 2px solid #E34824; padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem; transition: all 0.2s; cursor: pointer; }
.ri-btn:hover { background: #c93d1e; border-color: #c93d1e; color: #fff; box-shadow: 0 2px 8px rgba(227,72,36,0.2); }
.ri-btn-green { background: #059669; border-color: #059669; }
.ri-btn-green:hover { background: #047857; border-color: #047857; color: #fff; box-shadow: 0 2px 8px rgba(5,150,105,0.2); }
.ri-btn-danger { background: #dc2626; border-color: #dc2626; }
.ri-btn-danger:hover { background: #b91c1c; border-color: #b91c1c; color: #fff; box-shadow: 0 2px 8px rgba(220,38,38,0.2); }
.ri-btn-secondary { background: transparent; color: #6b7280; border: 2px solid #e0e1e3; padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem; transition: all 0.2s; cursor: pointer; }
.ri-btn-secondary:hover { border-color: #151515; color: #151515; }

/* HERO CARD */
.ri-hero { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; position: relative; overflow: hidden; padding: 1.5rem; padding-left: calc(1.5rem + 4px); margin-bottom: 1.5rem; }
.ri-hero::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--ri-hero-color, #E34824); }
.ri-hero-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem 1.5rem; }
.ri-field { display: flex; flex-direction: column; }
.ri-field-label { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; margin-bottom: 0.15rem; }
.ri-field-value { font-size: 0.85rem; color: #151515; font-weight: 500; }

/* STATS */
.ri-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-bottom: 1.5rem; }
.ri-stat { text-align: center; padding: 1.25rem 1rem; background: #fff; border: 1px solid #e0e1e3; border-radius: 0; }
.ri-stat-num { font-size: 1.75rem; font-weight: 700; line-height: 1.1; }
.ri-stat-label { font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; color: #6b7280; margin-top: 0.25rem; }

/* TOOLBAR */
.ri-toolbar { background: #fff; border: 1px solid #e0e1e3; padding: 0.85rem 1.25rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 0; border-bottom: none; }
.ri-tab-group { display: flex; }
.ri-tab { padding: 0.4rem 0.9rem; font-size: 0.78rem; font-weight: 600; border: 1px solid #e0e1e3; background: transparent; color: #6b7280; text-decoration: none; transition: background 0.15s, color 0.15s; }
.ri-tab:not(:last-child) { border-right: none; }
.ri-tab:hover { background: #EEEFF0; color: #151515; text-decoration: none; }
.ri-tab.active { background: #E34824; color: #fff; border-color: #E34824; }
.ri-tab.active:hover { color: #fff; }

/* CARD */
.ri-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; margin-bottom: 1.5rem; overflow: hidden; }

/* TABLE */
.ri-table-wrap { overflow-x: auto; }
.ri-table { width: 100%; margin: 0; border-collapse: collapse; }
.ri-table thead th { background: #151515; color: #fff; font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; padding: 0.8rem 1rem; border: none; white-space: nowrap; }
.ri-table tbody td { padding: 0.8rem 1rem; font-size: 0.85rem; color: #151515; border-bottom: 1px solid #EEEFF0; vertical-align: middle; }
.ri-table tbody tr { transition: background 0.15s; }
.ri-table tbody tr:hover { background: rgba(227,72,36,0.03); }
.ri-table tbody tr:last-child td { border-bottom: none; }

/* Row accent — left border color by status */
.ri-row-accent { position: relative; }
.ri-row-accent td:first-child { border-left: 3px solid var(--ri-row-color, transparent); }

.ri-code { font-weight: 700; color: #151515; font-size: 0.85rem; }
.ri-sub { font-size: 0.72rem; color: #9ca3af; }
.ri-muted { font-size: 0.72rem; color: #9ca3af; }

/* BADGES */
.ri-badge { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.25rem 0.65rem; font-size: 0.68rem; font-weight: 600; border-radius: 0; text-transform: uppercase; letter-spacing: 0.03em; }
.ri-badge-success { background: rgba(5,150,105,0.06); color: #059669; border: 1px solid rgba(5,150,105,0.2); }
.ri-badge-danger { background: rgba(220,38,38,0.06); color: #dc2626; border: 1px solid rgba(220,38,38,0.2); }
.ri-badge-warn { background: rgba(217,119,6,0.06); color: #d97706; border: 1px solid rgba(217,119,6,0.2); }
.ri-badge-info { background: rgba(8,145,178,0.06); color: #0891b2; border: 1px solid rgba(8,145,178,0.2); }
.ri-badge-primary { background: rgba(227,72,36,0.06); color: #E34824; border: 1px solid rgba(227,72,36,0.2); }
.ri-badge-secondary { background: rgba(107,114,128,0.06); color: #6b7280; border: 1px solid rgba(107,114,128,0.2); }

/* ACTION BUTTONS */
.ri-actions { display: flex; gap: 2px; justify-content: center; }
.ri-act-btn { width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #e0e1e3; background: #fff; color: #6b7280; border-radius: 0; cursor: pointer; transition: all 0.15s; font-size: 0.85rem; text-decoration: none; padding: 0; }
.ri-act-btn:hover { border-color: #E34824; color: #E34824; background: rgba(227,72,36,0.04); }
.ri-act-btn-success:hover { border-color: #059669; color: #059669; background: rgba(5,150,105,0.04); }
.ri-act-btn-danger:hover { border-color: #dc2626; color: #dc2626; background: rgba(220,38,38,0.04); }

/* CARD FOOTER / LEGENDA */
.ri-card-footer { padding: 1rem 1.5rem; border-top: 1px solid #EEEFF0; }
.ri-legenda { display: flex; flex-wrap: wrap; gap: 1.25rem; }
.ri-legenda-item { display: flex; align-items: center; gap: 0.5rem; font-size: 0.82rem; color: #6b7280; }
.ri-legenda-color { width: 14px; height: 14px; flex-shrink: 0; }

/* EMPTY STATE */
.ri-empty { padding: 4rem 2rem; text-align: center; }
.ri-empty i { color: #e0e1e3; font-size: 3rem; margin-bottom: 0.75rem; display: block; }
.ri-empty h4 { font-size: 1.1rem; font-weight: 700; color: #151515; margin-bottom: 0.5rem; }
.ri-empty p { font-size: 0.85rem; color: #6b7280; margin: 0 0 1rem; }

/* MODAL OVERRIDES */
.modal-content { border-radius: 0 !important; }

/* ========== RESPONSIVE ========== */
@media (max-width: 991.98px) {
    .ri-hero-grid { grid-template-columns: 1fr; }
    .ri-stats { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 767.98px) {
    .ri-header { flex-direction: column; }
    .ri-header-actions { width: 100%; }
    .ri-header-actions a { flex: 1; justify-content: center; }
}

@media (max-width: 575.98px) {
    .ri-page { padding: 1rem; }
    .ri-stats { grid-template-columns: 1fr; }
    .ri-toolbar { padding: 0.65rem 0.85rem; }
    .ri-tab { padding: 0.35rem 0.65rem; font-size: 0.72rem; }
    .ri-legenda { flex-direction: column; gap: 0.5rem; }
}

/* ============================================
    RICHIESTEINTEGRAZIONE > CREATE PAGE STYLES
============================================ */

/* PAGE WRAPPER */
.ric-page { padding: 2rem; }

/* BREADCRUMB */
.ric-breadcrumb { display: flex; align-items: center; gap: 0.4rem; margin-bottom: 0.75rem; font-size: 0.8rem; flex-wrap: wrap; }
.ric-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; transition: color 0.15s; }
.ric-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.ric-breadcrumb .ric-sep { color: #e0e1e3; }
.ric-breadcrumb .ric-current { color: #6b7280; font-weight: 500; }

/* HEADER */
.ric-header { margin-bottom: 2rem; }
.ric-header h1 { font-size: 1.4rem; font-weight: 700; color: #151515; margin: 0 0 0.25rem; display: flex; align-items: center; gap: 0.5rem; letter-spacing: -0.025em; }
.ric-header h1 svg { color: #E34824; flex-shrink: 0; }
.ric-header p { font-size: 0.85rem; color: #6b7280; margin: 0.25rem 0 0; }

/* CARDS */
.ric-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; margin-bottom: 1.5rem; overflow: hidden; }
.ric-card-header { padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.6rem; position: relative; }
.ric-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.ric-card-header--green::before { background: #059669; }
.ric-card-header--accent::before { background: #E34824; }
.ric-card-header--cyan::before { background: #0891b2; }
.ric-card-header--amber::before { background: #d97706; }
.ric-card-header--gray::before { background: #6b7280; }
.ric-card-header-icon { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ric-card-header--green .ric-card-header-icon { background: rgba(5,150,105,0.08); border: 1px solid rgba(5,150,105,0.15); }
.ric-card-header--green .ric-card-header-icon i { color: #059669; }
.ric-card-header--accent .ric-card-header-icon { background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15); }
.ric-card-header--accent .ric-card-header-icon i { color: #E34824; }
.ric-card-header--cyan .ric-card-header-icon { background: rgba(8,145,178,0.08); border: 1px solid rgba(8,145,178,0.15); }
.ric-card-header--cyan .ric-card-header-icon i { color: #0891b2; }
.ric-card-header--amber .ric-card-header-icon { background: rgba(217,119,6,0.08); border: 1px solid rgba(217,119,6,0.15); }
.ric-card-header--amber .ric-card-header-icon i { color: #d97706; }
.ric-card-header h2 { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; }
.ric-card-body { padding: 1.5rem; padding-left: calc(1.5rem + 4px); }

/* FORM */
.ric-form .form-label { font-size: 0.8rem; font-weight: 600; color: #151515; margin-bottom: 0.3rem; }
.ric-form .form-label .text-danger { color: #dc2626 !important; }
.ric-form .form-control,
.ric-form .form-select { border-radius: 0; border: 1px solid #e0e1e3; font-size: 0.85rem; }
.ric-form .form-control:focus,
.ric-form .form-select:focus { border-color: #E34824; box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
.ric-form .form-text { font-size: 0.72rem; color: #9ca3af; }
.ric-form .form-text i { margin-right: 0.2rem; }
.ric-form .text-danger { font-size: 0.72rem; }
.ric-alert-danger { border-radius: 0; border: 1px solid #e0e1e3; border-left: 4px solid #dc2626; background: rgba(220,38,38,0.04); font-size: 0.85rem; padding: 0.85rem 1.25rem; margin-bottom: 1rem; }
.ric-sep-line { border: none; border-top: 1px solid #EEEFF0; margin: 1.5rem 0; }
.ric-section-title { font-size: 0.82rem; font-weight: 600; color: #6b7280; margin-bottom: 0.75rem; display: flex; align-items: center; gap: 0.4rem; text-transform: uppercase; letter-spacing: 0.03em; }
.ric-section-title i { color: #E34824; }

/* INFO BOX */
.ric-info-box { background: rgba(8,145,178,0.04); border-left: 3px solid #0891b2; padding: 0.85rem 1rem; margin-bottom: 1.5rem; }
.ric-info-box-title { font-size: 0.85rem; font-weight: 700; color: #151515; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.4rem; }
.ric-info-box-title i { color: #0891b2; }

/* INFO LIST */
.ric-info-list { font-size: 0.82rem; color: #151515; padding-left: 1.2rem; margin: 0; }
.ric-info-list li { margin-bottom: 0.35rem; }
.ric-info-list li:last-child { margin-bottom: 0; }
.ric-info-list li strong { color: #E34824; }

/* BADGES */
.ric-badge { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.25rem 0.65rem; font-size: 0.68rem; font-weight: 600; border-radius: 0; text-transform: uppercase; letter-spacing: 0.03em; }
.ric-badge-primary { background: rgba(227,72,36,0.06); color: #E34824; border: 1px solid rgba(227,72,36,0.2); }
.ric-badge-warn { background: rgba(217,119,6,0.06); color: #d97706; border: 1px solid rgba(217,119,6,0.2); }
.ric-badge-success { background: rgba(5,150,105,0.06); color: #059669; border: 1px solid rgba(5,150,105,0.2); }

/* FIELDS (sidebar) */
.ric-field { display: flex; flex-direction: column; padding: 0.6rem 0; border-bottom: 1px solid #EEEFF0; }
.ric-field:first-child { padding-top: 0; }
.ric-field-label { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; margin-bottom: 0.15rem; }
.ric-field-value { font-size: 0.85rem; color: #151515; font-weight: 500; }

/* BUTTONS */
.ric-btn { padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem; transition: all 0.2s; cursor: pointer; border: 2px solid; }
.ric-btn-green { background: #059669; color: #fff; border-color: #059669; }
.ric-btn-green:hover { background: #047857; border-color: #047857; color: #fff; box-shadow: 0 2px 8px rgba(5,150,105,0.2); }
.ric-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.ric-btn-secondary:hover { border-color: #151515; color: #151515; }
.ric-form-actions { display: flex; justify-content: space-between; margin-top: 1.5rem; }

/* SIDEBAR STICKY */
.ric-sticky { position: sticky; top: 72px; z-index: 10; }

/* ========== RESPONSIVE ========== */
@media (max-width: 991.98px) {
    .ric-sticky { position: static; }
}

@media (max-width: 575.98px) {
    .ric-page { padding: 1rem; }
    .ric-form-actions { flex-direction: column; gap: 0.5rem; }
    .ric-form-actions .ric-btn { justify-content: center; }
}

/* ============================================
    RICHIESTEINTEGRAZIONE > DETAILS PAGE STYLES
============================================ */

/* PAGE WRAPPER */
.rid-page { padding: 2rem; }

/* BREADCRUMB */
.rid-breadcrumb { display: flex; align-items: center; gap: 0.4rem; margin-bottom: 0.75rem; font-size: 0.8rem; flex-wrap: wrap; }
.rid-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; transition: color 0.15s; }
.rid-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.rid-breadcrumb .rid-sep { color: #e0e1e3; }
.rid-breadcrumb .rid-current { color: #6b7280; font-weight: 500; }

/* HEADER */
.rid-header { display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; gap: 1rem; margin-bottom: 1.5rem; }
.rid-header h1 { font-size: 1.4rem; font-weight: 700; color: #151515; margin: 0 0 0.5rem; display: flex; align-items: center; gap: 0.5rem; letter-spacing: -0.025em; }
.rid-header h1 svg { color: #E34824; flex-shrink: 0; }
.rid-badges { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.rid-header-actions { display: flex; gap: 0.5rem; flex-wrap: wrap; }

/* BUTTONS */
.rid-btn { padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem; transition: all 0.2s; cursor: pointer; border: 2px solid; }
.rid-btn-green { background: #059669; color: #fff; border-color: #059669; }
.rid-btn-green:hover { background: #047857; border-color: #047857; color: #fff; box-shadow: 0 2px 8px rgba(5,150,105,0.2); }
.rid-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.rid-btn-secondary:hover { border-color: #151515; color: #151515; }

/* OUTLINE BUTTONS (sidebar/document) */
.rid-btn-outline { background: transparent; font-size: 0.82rem; padding: 0.4rem 0.8rem; border: 1px solid; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.3rem; transition: all 0.15s; font-weight: 600; }
.rid-btn-outline-primary { color: #E34824; border-color: rgba(227,72,36,0.2); }
.rid-btn-outline-primary:hover { background: rgba(227,72,36,0.04); border-color: #E34824; color: #E34824; }
.rid-btn-outline-green { color: #059669; border-color: rgba(5,150,105,0.2); }
.rid-btn-outline-green:hover { background: rgba(5,150,105,0.04); border-color: #059669; color: #059669; }

/* CARDS */
.rid-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; margin-bottom: 1.5rem; overflow: hidden; }
.rid-card-header { padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.6rem; position: relative; }
.rid-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.rid-card-header--accent::before { background: #E34824; }
.rid-card-header--amber::before { background: #d97706; }
.rid-card-header--green::before { background: #059669; }
.rid-card-header--cyan::before { background: #0891b2; }
.rid-card-header--gray::before { background: #6b7280; }
.rid-card-header--light::before { background: #e0e1e3; }
.rid-card-header--red::before { background: #dc2626; }
.rid-card-header-icon { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.rid-card-header--accent .rid-card-header-icon { background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15); }
.rid-card-header--accent .rid-card-header-icon i { color: #E34824; }
.rid-card-header--amber .rid-card-header-icon { background: rgba(217,119,6,0.08); border: 1px solid rgba(217,119,6,0.15); }
.rid-card-header--amber .rid-card-header-icon i { color: #d97706; }
.rid-card-header--green .rid-card-header-icon { background: rgba(5,150,105,0.08); border: 1px solid rgba(5,150,105,0.15); }
.rid-card-header--green .rid-card-header-icon i { color: #059669; }
.rid-card-header--cyan .rid-card-header-icon { background: rgba(8,145,178,0.08); border: 1px solid rgba(8,145,178,0.15); }
.rid-card-header--cyan .rid-card-header-icon i { color: #0891b2; }
.rid-card-header--gray .rid-card-header-icon { background: rgba(107,114,128,0.06); border: 1px solid #e0e1e3; }
.rid-card-header--gray .rid-card-header-icon i { color: #6b7280; }
.rid-card-header--light .rid-card-header-icon { background: rgba(107,114,128,0.06); border: 1px solid #e0e1e3; }
.rid-card-header--light .rid-card-header-icon i { color: #6b7280; }
.rid-card-header h2 { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; }
.rid-card-body { padding: 1.5rem; padding-left: calc(1.5rem + 4px); }

/* FIELDS — horizontal layout (main column) */
.rid-field { display: flex; margin-bottom: 0.85rem; }
.rid-field:last-child { margin-bottom: 0; }
.rid-field-label { font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; width: 140px; flex-shrink: 0; padding-top: 0.15rem; }
.rid-field-value { font-size: 0.85rem; color: #151515; flex: 1; }
.rid-field-value small { font-size: 0.72rem; color: #9ca3af; }

/* TEXT BOX (testo richiesta/risposta) */
.rid-text-box { background: #EEEFF0; padding: 0.85rem 1rem; font-size: 0.85rem; color: #151515; border: 1px solid #e0e1e3; cursor: pointer; transition: background 0.15s; }
.rid-text-box:hover { background: #e8e9eb; }

/* FIELDS GRID — 2 column (info lotto) */
.rid-fields-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.5rem; }
.rid-field-v { display: flex; flex-direction: column; padding: 0.6rem 0; border-bottom: 1px solid #EEEFF0; }
.rid-field-v:last-child { border-bottom: none; }
.rid-field-v-label { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; margin-bottom: 0.15rem; }
.rid-field-v-value { font-size: 0.85rem; color: #151515; font-weight: 500; }

/* LINK */
.rid-link { color: #E34824; text-decoration: none; font-weight: 500; transition: color 0.15s; }
.rid-link:hover { color: #c93d1e; text-decoration: underline; }

/* BADGES */
.rid-badge { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.25rem 0.65rem; font-size: 0.68rem; font-weight: 600; border-radius: 0; text-transform: uppercase; letter-spacing: 0.03em; }
.rid-badge-success { background: rgba(5,150,105,0.06); color: #059669; border: 1px solid rgba(5,150,105,0.2); }
.rid-badge-danger { background: rgba(220,38,38,0.06); color: #dc2626; border: 1px solid rgba(220,38,38,0.2); }
.rid-badge-warn { background: rgba(217,119,6,0.06); color: #d97706; border: 1px solid rgba(217,119,6,0.2); }
.rid-badge-info { background: rgba(8,145,178,0.06); color: #0891b2; border: 1px solid rgba(8,145,178,0.2); }
.rid-badge-primary { background: rgba(227,72,36,0.06); color: #E34824; border: 1px solid rgba(227,72,36,0.2); }
.rid-badge-secondary { background: rgba(107,114,128,0.06); color: #6b7280; border: 1px solid rgba(107,114,128,0.2); }

/* ALERT */
.rid-alert { border-radius: 0; border: 1px solid #e0e1e3; padding: 0.85rem 1.25rem; font-size: 0.85rem; display: flex; align-items: flex-start; gap: 0.5rem; margin-bottom: 1.5rem; }
.rid-alert strong { display: block; margin-bottom: 0.25rem; }
.rid-alert p { margin: 0; color: #6b7280; font-size: 0.82rem; }
.rid-alert-warn { background: rgba(217,119,6,0.04); border-left: 4px solid #d97706; }
.rid-alert-warn > i { color: #d97706; margin-top: 0.1rem; flex-shrink: 0; }

/* COUNTDOWN */
.rid-countdown { text-align: center; padding: 1rem 0.5rem; }
.rid-countdown-num { font-size: 3rem; font-weight: 800; line-height: 1; color: var(--rid-countdown-color, #E34824); margin-bottom: 0.2rem; }
.rid-countdown-label { font-size: 0.82rem; color: #6b7280; }

/* SIDEBAR SYSTEM FIELDS */
.rid-sys-field { margin-bottom: 0.6rem; }
.rid-sys-field:last-child { margin-bottom: 0; }
.rid-sys-label { font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; display: flex; align-items: center; gap: 0.3rem; }
.rid-sys-label i { font-size: 0.72rem; }
.rid-sys-value { font-size: 0.85rem; color: #151515; }
.rid-sys-value small { font-size: 0.72rem; color: #9ca3af; }
.rid-sys-value .rid-badge { margin-left: 0.3rem; }
.rid-sep-line { border: none; border-top: 1px solid #EEEFF0; margin: 0.75rem 0; }

/* SIDEBAR STICKY */
.rid-sticky { position: sticky; top: 72px; z-index: 10; }

/* ACTION LIST */
.rid-action-list { display: flex; flex-direction: column; gap: 0.5rem; }
.rid-action-list .rid-btn-outline { justify-content: center; width: 100%; }

/* ========== RESPONSIVE ========== */
@media (max-width: 991.98px) {
    .rid-sticky { position: static; }
    .rid-header { flex-direction: column; }
    .rid-field { flex-direction: column; }
    .rid-field-label { width: auto; margin-bottom: 0.15rem; }
    .rid-fields-grid { grid-template-columns: 1fr; }
}

@media (max-width: 575.98px) {
    .rid-page { padding: 1rem; }
    .rid-header-actions { width: 100%; }
    .rid-header-actions .rid-btn { flex: 1; justify-content: center; }
}

/* ============================================
    RICHIESTEINTEGRAZIONE > RISPONDI PAGE STYLES
============================================ */

/* PAGE WRAPPER */
.rir-page { padding: 2rem; }

/* BREADCRUMB */
.rir-breadcrumb { display: flex; align-items: center; gap: 0.4rem; margin-bottom: 0.75rem; font-size: 0.8rem; flex-wrap: wrap; }
.rir-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; transition: color 0.15s; }
.rir-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.rir-breadcrumb .rir-sep { color: #e0e1e3; }
.rir-breadcrumb .rir-current { color: #6b7280; font-weight: 500; }

/* HEADER */
.rir-header { margin-bottom: 1.5rem; }
.rir-header h1 { font-size: 1.4rem; font-weight: 700; color: #151515; margin: 0 0 0.25rem; display: flex; align-items: center; gap: 0.5rem; letter-spacing: -0.025em; }
.rir-header h1 svg { color: #059669; flex-shrink: 0; }
.rir-header p { font-size: 0.85rem; color: #6b7280; margin: 0.25rem 0 0; }

/* CONTEXT BAR */
.rir-context-bar { background: #fff; border: 1px solid #e0e1e3; padding: 0.85rem 1.25rem; display: flex; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap; margin-bottom: 1.5rem; position: relative; }
.rir-context-bar::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: #E34824; }
.rir-context-item { display: flex; flex-direction: column; }
.rir-context-label { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; }
.rir-context-value { font-size: 0.85rem; color: #151515; font-weight: 500; }

/* CARDS */
.rir-card { background: #fff; border: 1px solid #e0e1e3; border-radius: 0; margin-bottom: 1.5rem; overflow: hidden; }
.rir-card-header { padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.6rem; position: relative; }
.rir-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.rir-card-header--amber::before { background: #d97706; }
.rir-card-header--green::before { background: #059669; }
.rir-card-header--cyan::before { background: #0891b2; }
.rir-card-header-icon { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.rir-card-header--amber .rir-card-header-icon { background: rgba(217,119,6,0.08); border: 1px solid rgba(217,119,6,0.15); }
.rir-card-header--amber .rir-card-header-icon i { color: #d97706; }
.rir-card-header--green .rir-card-header-icon { background: rgba(5,150,105,0.08); border: 1px solid rgba(5,150,105,0.15); }
.rir-card-header--green .rir-card-header-icon i { color: #059669; }
.rir-card-header--cyan .rir-card-header-icon { background: rgba(8,145,178,0.08); border: 1px solid rgba(8,145,178,0.15); }
.rir-card-header--cyan .rir-card-header-icon i { color: #0891b2; }
.rir-card-header h2 { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; }
.rir-card-body { padding: 1.5rem; padding-left: calc(1.5rem + 4px); }

/* FIELDS — horizontal read-only */
.rir-field { display: flex; margin-bottom: 0.85rem; }
.rir-field:last-child { margin-bottom: 0; }
.rir-field-label { font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; width: 130px; flex-shrink: 0; padding-top: 0.15rem; }
.rir-field-value { font-size: 0.85rem; color: #151515; flex: 1; }
.rir-field-value small { font-size: 0.72rem; color: #9ca3af; }
.rir-muted { font-size: 0.82rem; color: #9ca3af; font-style: italic; }
.rir-muted i { font-style: normal; margin-right: 0.2rem; }

/* TEXT BOX */
.rir-text-box { background: #EEEFF0; padding: 0.85rem 1rem; font-size: 0.85rem; color: #151515; border: 1px solid #e0e1e3; cursor: text; transition: background 0.15s; }
.rir-text-box:hover { background: #e8e9eb; }

/* OUTLINE BUTTONS */
.rir-btn-outline { background: transparent; font-size: 0.82rem; padding: 0.4rem 0.8rem; border: 1px solid; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.3rem; transition: all 0.15s; font-weight: 600; }
.rir-btn-outline-primary { color: #E34824; border-color: rgba(227,72,36,0.2); }
.rir-btn-outline-primary:hover { background: rgba(227,72,36,0.04); border-color: #E34824; color: #E34824; }

/* FORM */
.rir-form .form-label { font-size: 0.8rem; font-weight: 600; color: #151515; margin-bottom: 0.3rem; }
.rir-form .form-label .text-danger { color: #dc2626 !important; }
.rir-form .form-control,
.rir-form .form-select { border-radius: 0; border: 1px solid #e0e1e3; font-size: 0.85rem; }
.rir-form .form-control:focus,
.rir-form .form-select:focus { border-color: #E34824; box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
.rir-form .form-text { font-size: 0.72rem; color: #9ca3af; }
.rir-form .form-text i { margin-right: 0.2rem; }
.rir-form .text-danger { font-size: 0.72rem; }
.rir-alert-danger { border-radius: 0; border: 1px solid #e0e1e3; border-left: 4px solid #dc2626; background: rgba(220,38,38,0.04); font-size: 0.85rem; padding: 0.85rem 1.25rem; margin-bottom: 1rem; }
.rir-sep-line { border: none; border-top: 1px solid #EEEFF0; margin: 1.5rem 0; }
.rir-section-title { font-size: 0.82rem; font-weight: 600; color: #6b7280; margin-bottom: 0.75rem; display: flex; align-items: center; gap: 0.4rem; text-transform: uppercase; letter-spacing: 0.03em; }
.rir-section-title i { color: #E34824; }

/* BADGES */
.rir-badge { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.25rem 0.65rem; font-size: 0.68rem; font-weight: 600; border-radius: 0; text-transform: uppercase; letter-spacing: 0.03em; }
.rir-badge-warn { background: rgba(217,119,6,0.06); color: #d97706; border: 1px solid rgba(217,119,6,0.2); }

/* ALERT */
.rir-alert { border-radius: 0; border: 1px solid #e0e1e3; padding: 0.85rem 1.25rem; font-size: 0.85rem; display: flex; align-items: flex-start; gap: 0.5rem; margin-bottom: 1.5rem; }
.rir-alert strong { display: block; margin-bottom: 0.2rem; }
.rir-alert p { margin: 0; color: #6b7280; font-size: 0.82rem; }
.rir-alert-warn { background: rgba(217,119,6,0.04); border-left: 4px solid #d97706; }
.rir-alert-warn > i { color: #d97706; margin-top: 0.1rem; flex-shrink: 0; }

/* INFO LIST */
.rir-info-list { font-size: 0.82rem; color: #151515; padding-left: 1.2rem; margin: 0; }
.rir-info-list li { margin-bottom: 0.35rem; }
.rir-info-list li:last-child { margin-bottom: 0; }
.rir-info-list li strong { color: #E34824; }

/* BUTTONS */
.rir-btn { padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem; transition: all 0.2s; cursor: pointer; border: 2px solid; }
.rir-btn-green { background: #059669; color: #fff; border-color: #059669; }
.rir-btn-green:hover { background: #047857; border-color: #047857; color: #fff; box-shadow: 0 2px 8px rgba(5,150,105,0.2); }
.rir-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.rir-btn-secondary:hover { border-color: #151515; color: #151515; }
.rir-form-actions { display: flex; justify-content: space-between; margin-top: 1.5rem; }

/* ========== RESPONSIVE ========== */
@media (max-width: 991.98px) {
    .rir-field { flex-direction: column; }
    .rir-field-label { width: auto; margin-bottom: 0.15rem; }
    .rir-context-bar { flex-direction: column; gap: 0.5rem; }
}

@media (max-width: 575.98px) {
    .rir-page { padding: 1rem; }
    .rir-form-actions { flex-direction: column; gap: 0.5rem; }
    .rir-form-actions .rir-btn { justify-content: center; }
}

/* ============================================
    SCADENZE REGISTRO > CREATE PAGE STYLES
============================================ */

.srcc-page { padding: 2rem; }

@media (max-width: 575.98px) {
    .srcc-page { padding: 1rem; }
}

/* Breadcrumb */
.srcc-breadcrumb {
    display: flex; align-items: center; gap: 0.4rem;
    font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1rem;
}
.srcc-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.srcc-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.srcc-breadcrumb .srcc-sep { color: #e0e1e3; }
.srcc-breadcrumb .srcc-current { color: #6b7280; font-weight: 500; }

/* Header */
.srcc-header { margin-bottom: 1.5rem; }
.srcc-title {
    font-size: 1.4rem; font-weight: 700; color: #151515;
    letter-spacing: -0.025em; margin: 0;
}

/* Info registro box */
.srcc-info-box {
    background: rgba(8,145,178,0.04);
    border-left: 4px solid #0891b2;
    padding: 0.85rem 1.25rem;
    margin-bottom: 1.5rem;
    display: flex; align-items: center;
    justify-content: space-between; flex-wrap: wrap; gap: 0.75rem;
}
.srcc-info-label {
    font-size: 0.68rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.04em; color: #0891b2; margin-bottom: 0.2rem;
}
.srcc-info-title { font-size: 0.9rem; font-weight: 600; color: #151515; }
.srcc-info-sub { font-size: 0.78rem; color: #6b7280; margin-top: 0.15rem; }
.srcc-info-sub code {
    font-size: 0.78rem; color: #E34824; background: rgba(227,72,36,0.06);
    padding: 0.1rem 0.4rem; border: 1px solid rgba(227,72,36,0.15);
    font-family: monospace;
}

/* Alert */
.srcc-alert {
    display: flex; align-items: flex-start; gap: 0.5rem;
    padding: 0.85rem 1.25rem; margin-bottom: 1rem;
    font-size: 0.85rem; border: 1px solid #e0e1e3;
}
.srcc-alert-danger { border-left: 4px solid #dc2626; background: rgba(220,38,38,0.04); color: #dc2626; }
.srcc-alert-close {
    background: none; border: none; cursor: pointer; margin-left: auto;
    color: #9ca3af; font-size: 1rem; padding: 0; line-height: 1;
}
.srcc-alert-close:hover { color: #151515; }

/* Layout 2 colonne */
.srcc-layout {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 1.5rem;
    align-items: start;
}
@media (max-width: 991.98px) {
    .srcc-layout { grid-template-columns: 1fr; }
}

/* Card */
.srcc-card {
    background: #fff; border: 1px solid #e0e1e3; overflow: hidden;
    margin-bottom: 1rem;
}
.srcc-card:last-child { margin-bottom: 0; }
.srcc-card-header {
    position: relative; padding: 1rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex; align-items: center; gap: 0.75rem;
}
.srcc-card-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0;
    width: 4px; background: #E34824;
}
.srcc-card-header-gray::before  { background: #6b7280; }
.srcc-card-header-green::before { background: #059669; }
.srcc-icon-box {
    width: 34px; height: 34px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15);
    color: #E34824; font-size: 1rem;
}
.srcc-icon-box-gray {
    background: rgba(107,114,128,0.08); border-color: rgba(107,114,128,0.15); color: #6b7280;
}
.srcc-icon-box-green {
    background: rgba(5,150,105,0.08); border-color: rgba(5,150,105,0.15); color: #059669;
}
.srcc-card-title { font-size: 0.875rem; font-weight: 700; color: #151515; margin: 0; }
.srcc-card-body { padding: 1.25rem 1.5rem 1.25rem 1.75rem; }

/* Form section title */
.srcc-section-title {
    font-size: 0.72rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.05em; color: #6b7280;
    display: flex; align-items: center; gap: 0.4rem;
    margin-bottom: 0.75rem; margin-top: 1.25rem;
}
.srcc-section-title:first-child { margin-top: 0; }
.srcc-section-title i { color: #E34824; }
.srcc-separator { border-top: 1px solid #EEEFF0; margin: 1.25rem 0; }

/* Campi form */
.srcc-field-group { display: grid; gap: 0.85rem 1rem; margin-bottom: 0; }
.srcc-field-group-2 { grid-template-columns: 1fr 1fr; }
.srcc-field-group-3 { grid-template-columns: 1fr 1fr 1fr; }
@media (max-width: 575.98px) {
    .srcc-field-group-2, .srcc-field-group-3 { grid-template-columns: 1fr; }
}
@media (max-width: 767.98px) {
    .srcc-field-group-3 { grid-template-columns: 1fr 1fr; }
}

.srcc-field { display: flex; flex-direction: column; }
.srcc-label {
    font-size: 0.8rem; font-weight: 600; color: #151515;
    text-transform: uppercase; letter-spacing: 0.04em;
    margin-bottom: 0.35rem;
}
.srcc-label .req { color: #dc2626; margin-left: 0.2rem; }
.srcc-input, .srcc-select, .srcc-textarea {
    border: 1px solid #e0e1e3; font-size: 0.85rem; padding: 0.5rem 0.75rem;
    color: #151515; background: #fff; width: 100%; outline: none;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.srcc-input:focus, .srcc-select:focus, .srcc-textarea:focus {
    border-color: #E34824; box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}
.srcc-textarea { resize: vertical; min-height: 80px; }
.srcc-form-text { font-size: 0.72rem; color: #9ca3af; margin-top: 0.25rem; }
.srcc-validation { font-size: 0.72rem; color: #dc2626; margin-top: 0.25rem; }

/* Input group con prefisso */
.srcc-input-group { display: flex; }
.srcc-input-prefix {
    padding: 0.5rem 0.75rem; font-size: 0.85rem;
    background: #EEEFF0; border: 1px solid #e0e1e3; border-right: none;
    color: #6b7280; white-space: nowrap;
}
.srcc-input-group .srcc-input { border-left: none; flex: 1; }
.srcc-input-group .srcc-input:focus { border-left: 1px solid #E34824; }

/* Bottoni */
.srcc-btn {
    padding: 0.55rem 1.5rem; font-size: 0.85rem; font-weight: 600;
    border: 2px solid; cursor: pointer; text-decoration: none;
    display: inline-flex; align-items: center; gap: 0.4rem;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.srcc-btn-primary { background: #059669; color: #fff; border-color: #059669; }
.srcc-btn-primary:hover { background: #047857; border-color: #047857; color: #fff; }
.srcc-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.srcc-btn-secondary:hover { border-color: #151515; color: #151515; }

/* Footer form */
.srcc-form-footer {
    display: flex; justify-content: space-between; align-items: center;
    gap: 0.5rem; flex-wrap: wrap; margin-top: 1.5rem;
}

/* Sidebar sticky */
.srcc-sidebar {
    position: sticky;
    top: 72px;
}
@media (max-width: 991.98px) {
    .srcc-sidebar { position: static; }
}

/* Info card sidebar */
.srcc-sys-row {
    display: flex; flex-direction: column;
    padding: 0.6rem 0; border-bottom: 1px solid #EEEFF0;
}
.srcc-sys-row:last-child { border-bottom: none; }
.srcc-sys-label {
    font-size: 0.68rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.04em; color: #6b7280;
}
.srcc-sys-value { font-size: 0.85rem; color: #151515; font-weight: 500; margin-top: 0.15rem; }
.srcc-sys-empty { font-size: 0.85rem; color: #9ca3af; font-style: italic; }

/* ============================================
    SCADENZE REGISTRO > DETAILS PAGE STYLES
============================================ */

.srd-page { padding: 2rem; }

@media (max-width: 575.98px) {
    .srd-page { padding: 1rem; }
}

/* Breadcrumb */
.srd-breadcrumb {
    display: flex; align-items: center; gap: 0.4rem;
    font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1rem;
}
.srd-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.srd-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.srd-breadcrumb .srd-sep { color: #e0e1e3; }
.srd-breadcrumb .srd-current { color: #6b7280; font-weight: 500; }

/* Hero header */
.srd-hero {
    background: #fff; border: 1px solid #e0e1e3;
    position: relative; overflow: hidden;
    padding: 1.5rem 1.5rem 1.5rem 1.75rem;
    margin-bottom: 1.5rem;
    display: flex; align-items: flex-start;
    justify-content: space-between; flex-wrap: wrap; gap: 1rem;
}
.srd-hero::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0;
    width: 4px; background: var(--srd-hero-color, #E34824);
}
.srd-hero-left { display: flex; align-items: center; gap: 1rem; }
.srd-hero-icon {
    width: 48px; height: 48px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.5rem;
}
.srd-hero-title {
    font-size: 1.3rem; font-weight: 700; color: #151515;
    letter-spacing: -0.02em; margin: 0 0 0.35rem;
}
.srd-hero-meta {
    display: flex; align-items: center; gap: 0.5rem;
    flex-wrap: wrap; font-size: 0.82rem; color: #6b7280;
}
.srd-hero-actions { display: flex; gap: 0.5rem; flex-wrap: wrap; align-items: center; }

/* Badge */
.srd-badge {
    display: inline-flex; align-items: center; gap: 0.25rem;
    padding: 0.25rem 0.65rem; font-size: 0.68rem; font-weight: 600;
    border: 1px solid; text-transform: uppercase; letter-spacing: 0.03em;
}
.srd-badge-success  { background: rgba(5,150,105,0.06);   color: #059669; border-color: rgba(5,150,105,0.2); }
.srd-badge-danger   { background: rgba(220,38,38,0.06);   color: #dc2626; border-color: rgba(220,38,38,0.2); }
.srd-badge-warn     { background: rgba(217,119,6,0.06);   color: #d97706; border-color: rgba(217,119,6,0.2); }
.srd-badge-primary  { background: rgba(227,72,36,0.06);   color: #E34824; border-color: rgba(227,72,36,0.2); }
.srd-badge-secondary{ background: rgba(107,114,128,0.06); color: #6b7280; border-color: rgba(107,114,128,0.2); }

/* Bottoni */
.srd-btn {
    padding: 0.5rem 1rem; font-size: 0.82rem; font-weight: 600;
    border: 2px solid; cursor: pointer; text-decoration: none;
    display: inline-flex; align-items: center; gap: 0.4rem;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
    background: transparent;
}
.srd-btn-green   { background: #059669; color: #fff; border-color: #059669; }
.srd-btn-green:hover   { background: #047857; border-color: #047857; color: #fff; }
.srd-btn-amber   { background: transparent; color: #d97706; border-color: rgba(217,119,6,0.3); }
.srd-btn-amber:hover   { background: rgba(217,119,6,0.08); border-color: #d97706; color: #d97706; }
.srd-btn-accent  { background: transparent; color: #E34824; border-color: rgba(227,72,36,0.3); }
.srd-btn-accent:hover  { background: rgba(227,72,36,0.08); border-color: #E34824; color: #E34824; }
.srd-btn-secondary { color: #6b7280; border-color: #e0e1e3; }
.srd-btn-secondary:hover { border-color: #151515; color: #151515; }
.srd-btn-danger  { background: transparent; color: #dc2626; border-color: rgba(220,38,38,0.3); }
.srd-btn-danger:hover  { background: rgba(220,38,38,0.06); border-color: #dc2626; color: #dc2626; }
.srd-btn-cyan    { background: transparent; color: #0891b2; border-color: rgba(8,145,178,0.3); }
.srd-btn-cyan:hover    { background: rgba(8,145,178,0.08); border-color: #0891b2; color: #0891b2; }

/* Alert */
.srd-alert {
    display: flex; align-items: center; gap: 0.5rem;
    padding: 0.85rem 1.25rem; margin-bottom: 1rem;
    font-size: 0.85rem; border: 1px solid #e0e1e3;
}
.srd-alert-success { border-left: 4px solid #059669; background: rgba(5,150,105,0.05); }
.srd-alert-danger  { border-left: 4px solid #dc2626; background: rgba(220,38,38,0.04); }
.srd-alert-close {
    background: none; border: none; cursor: pointer; margin-left: auto;
    color: #9ca3af; font-size: 1rem; padding: 0;
}
.srd-alert-close:hover { color: #151515; }

/* Layout 2 colonne */
.srd-layout {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 1.5rem;
    align-items: start;
}
@media (max-width: 991.98px) {
    .srd-layout { grid-template-columns: 1fr; }
}

/* Card */
.srd-card {
    background: #fff; border: 1px solid #e0e1e3; overflow: hidden;
    margin-bottom: 1rem;
}
.srd-card:last-child { margin-bottom: 0; }
.srd-card-header {
    position: relative; padding: 1rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex; align-items: center; justify-content: space-between; gap: 0.75rem;
}
.srd-card-header-inner { display: flex; align-items: center; gap: 0.75rem; }
.srd-card-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0;
    width: 4px; background: #E34824;
}
.srd-card-header-gray::before   { background: #6b7280; }
.srd-card-header-cyan::before   { background: #0891b2; }
.srd-card-header-green::before  { background: #059669; }
.srd-card-header-neutral::before{ background: #e0e1e3; }
.srd-icon-box {
    width: 34px; height: 34px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15);
    color: #E34824; font-size: 1rem;
}
.srd-icon-box-gray   { background: rgba(107,114,128,0.08); border-color: rgba(107,114,128,0.15); color: #6b7280; }
.srd-icon-box-cyan   { background: rgba(8,145,178,0.08);   border-color: rgba(8,145,178,0.15);   color: #0891b2; }
.srd-icon-box-green  { background: rgba(5,150,105,0.08);   border-color: rgba(5,150,105,0.15);   color: #059669; }
.srd-icon-box-neutral{ background: rgba(224,225,227,0.4);  border-color: #e0e1e3;                color: #6b7280; }
.srd-card-title { font-size: 0.875rem; font-weight: 700; color: #151515; margin: 0; }
.srd-card-body  { padding: 1.25rem 1.5rem 1.25rem 1.75rem; }

/* Campi details grid */
.srd-fields-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.5rem; }
.srd-fields-grid--full { grid-template-columns: 1fr; }
@media (max-width: 575.98px) { .srd-fields-grid { grid-template-columns: 1fr; } }

.srd-field {
    display: flex; flex-direction: column;
    padding: 0.6rem 0; border-bottom: 1px solid #EEEFF0;
}
.srd-field:last-child { border-bottom: none; }
.srd-field--full { grid-column: 1 / -1; }
.srd-field-label {
    font-size: 0.68rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.04em; color: #6b7280; margin-bottom: 0.2rem;
}
.srd-field-value { font-size: 0.85rem; color: #151515; font-weight: 500; }
.srd-field-empty { font-size: 0.85rem; color: #9ca3af; font-style: italic; }

/* Sidebar sticky */
.srd-sidebar { position: sticky; top: 72px; }
@media (max-width: 991.98px) { .srd-sidebar { position: static; } }

/* Info row sidebar */
.srd-info-row {
    display: flex; align-items: center; justify-content: space-between;
    padding: 0.6rem 0; border-bottom: 1px solid #EEEFF0; gap: 0.5rem;
}
.srd-info-row:last-child { border-bottom: none; }
.srd-info-label {
    font-size: 0.72rem; font-weight: 600; text-transform: uppercase;
    letter-spacing: 0.04em; color: #6b7280; flex-shrink: 0;
}
.srd-info-value { font-size: 0.82rem; color: #151515; font-weight: 500; text-align: right; }
.srd-info-empty { font-size: 0.82rem; color: #9ca3af; font-style: italic; text-align: right; }

/* Bottoni sidebar outline */
.srd-side-btn {
    display: flex; align-items: center; gap: 0.5rem;
    width: 100%; padding: 0.5rem 0.85rem; font-size: 0.82rem; font-weight: 600;
    border: 1px solid; background: transparent; cursor: pointer; text-decoration: none;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
    margin-bottom: 0.5rem;
}
.srd-side-btn:last-child { margin-bottom: 0; }
.srd-side-btn-accent  { color: #E34824; border-color: rgba(227,72,36,0.2); }
.srd-side-btn-accent:hover  { background: rgba(227,72,36,0.06); border-color: #E34824; color: #E34824; }
.srd-side-btn-cyan    { color: #0891b2; border-color: rgba(8,145,178,0.2); }
.srd-side-btn-cyan:hover    { background: rgba(8,145,178,0.06); border-color: #0891b2; color: #0891b2; }
.srd-side-btn-danger  { color: #dc2626; border-color: rgba(220,38,38,0.2); }
.srd-side-btn-danger:hover  { background: rgba(220,38,38,0.06); border-color: #dc2626; color: #dc2626; }

/* Modal custom */
.srd-modal-overlay {
    display: none; position: fixed; inset: 0;
    background: rgba(21,21,21,0.5); z-index: 1060;
    align-items: center; justify-content: center;
}
.srd-modal-overlay.open { display: flex; }
.srd-modal {
    background: #fff; border: 1px solid #e0e1e3;
    width: 100%; max-width: 440px; margin: 1rem; overflow: hidden;
}
.srd-modal-header {
    position: relative; padding: 1rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex; align-items: center; justify-content: space-between;
}
.srd-modal-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0;
    width: 4px; background: #dc2626;
}
.srd-modal-title { font-size: 0.95rem; font-weight: 700; color: #151515; }
.srd-modal-close {
    background: none; border: none; cursor: pointer;
    color: #9ca3af; font-size: 1.1rem; padding: 0; line-height: 1;
}
.srd-modal-close:hover { color: #151515; }
.srd-modal-body { padding: 1.25rem 1.5rem; font-size: 0.85rem; color: #151515; }
.srd-modal-warn {
    background: rgba(220,38,38,0.04); border-left: 3px solid #dc2626;
    padding: 0.65rem 0.85rem; font-size: 0.82rem; color: #dc2626;
    margin-top: 0.75rem;
}
.srd-modal-footer {
    padding: 1rem 1.5rem; border-top: 1px solid #e0e1e3;
    display: flex; justify-content: flex-end; gap: 0.5rem;
}

/* Allegati partial override */
.srd-card-body.p-0 { padding: 0 !important; }

/* ============================================
    SCADENZE REGISTRO > EDIT PAGE STYLES
============================================ */

.sre-page { padding: 2rem; }

@media (max-width: 575.98px) {
    .sre-page { padding: 1rem; }
}

/* Breadcrumb */
.sre-breadcrumb {
    display: flex; align-items: center; gap: 0.4rem;
    font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1rem;
}
.sre-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.sre-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.sre-breadcrumb .sre-sep { color: #e0e1e3; }
.sre-breadcrumb .sre-current { color: #6b7280; font-weight: 500; }

/* Header */
.sre-header { margin-bottom: 1.5rem; }
.sre-title {
    font-size: 1.4rem; font-weight: 700; color: #151515;
    letter-spacing: -0.025em; margin: 0;
}

/* Info registro box */
.sre-info-box {
    background: rgba(8,145,178,0.04);
    border-left: 4px solid #0891b2;
    padding: 0.85rem 1.25rem;
    margin-bottom: 1.5rem;
    display: flex; align-items: center;
    justify-content: space-between; flex-wrap: wrap; gap: 0.75rem;
}
.sre-info-label {
    font-size: 0.68rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.04em; color: #0891b2; margin-bottom: 0.2rem;
}
.sre-info-title { font-size: 0.9rem; font-weight: 600; color: #151515; }
.sre-info-sub { font-size: 0.78rem; color: #6b7280; margin-top: 0.15rem; }
.sre-info-sub code {
    font-size: 0.78rem; color: #E34824; background: rgba(227,72,36,0.06);
    padding: 0.1rem 0.4rem; border: 1px solid rgba(227,72,36,0.15);
    font-family: monospace;
}

/* Alert */
.sre-alert {
    display: flex; align-items: flex-start; gap: 0.5rem;
    padding: 0.85rem 1.25rem; margin-bottom: 1rem;
    font-size: 0.85rem; border: 1px solid #e0e1e3;
}
.sre-alert-danger { border-left: 4px solid #dc2626; background: rgba(220,38,38,0.04); color: #dc2626; }
.sre-alert-close {
    background: none; border: none; cursor: pointer; margin-left: auto;
    color: #9ca3af; font-size: 1rem; padding: 0; line-height: 1;
}
.sre-alert-close:hover { color: #151515; }

/* Layout 2 colonne */
.sre-layout {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 1.5rem;
    align-items: start;
}
@media (max-width: 991.98px) {
    .sre-layout { grid-template-columns: 1fr; }
}

/* Card */
.sre-card {
    background: #fff; border: 1px solid #e0e1e3; overflow: hidden;
    margin-bottom: 1rem;
}
.sre-card:last-child { margin-bottom: 0; }
.sre-card-header {
    position: relative; padding: 1rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex; align-items: center; gap: 0.75rem;
}
.sre-card-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0;
    width: 4px; background: #d97706;
}
.sre-card-header-green::before  { background: #059669; }
.sre-card-header-gray::before   { background: #6b7280; }
.sre-icon-box {
    width: 34px; height: 34px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    background: rgba(217,119,6,0.08); border: 1px solid rgba(217,119,6,0.15);
    color: #d97706; font-size: 1rem;
}
.sre-icon-box-green {
    background: rgba(5,150,105,0.08); border-color: rgba(5,150,105,0.15); color: #059669;
}
.sre-icon-box-gray {
    background: rgba(107,114,128,0.08); border-color: rgba(107,114,128,0.15); color: #6b7280;
}
.sre-card-title { font-size: 0.875rem; font-weight: 700; color: #151515; margin: 0; }
.sre-card-body  { padding: 1.25rem 1.5rem 1.25rem 1.75rem; }

/* Form section title */
.sre-section-title {
    font-size: 0.72rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.05em; color: #6b7280;
    display: flex; align-items: center; gap: 0.4rem;
    margin-bottom: 0.75rem; margin-top: 1.25rem;
}
.sre-section-title:first-child { margin-top: 0; }
.sre-section-title i { color: #d97706; }
.sre-separator { border-top: 1px solid #EEEFF0; margin: 1.25rem 0; }

/* Campi form */
.sre-field-group { display: grid; gap: 0.85rem 1rem; }
.sre-field-group-3 { grid-template-columns: 1fr 1fr 1fr; }
.sre-field-group-2 { grid-template-columns: 1fr 1fr; }
@media (max-width: 575.98px) {
    .sre-field-group-3, .sre-field-group-2 { grid-template-columns: 1fr; }
}
@media (max-width: 767.98px) {
    .sre-field-group-3 { grid-template-columns: 1fr 1fr; }
}

.sre-field { display: flex; flex-direction: column; }
.sre-label {
    font-size: 0.8rem; font-weight: 600; color: #151515;
    text-transform: uppercase; letter-spacing: 0.04em;
    margin-bottom: 0.35rem;
}
.sre-label .req { color: #dc2626; margin-left: 0.2rem; }
.sre-input, .sre-select, .sre-textarea {
    border: 1px solid #e0e1e3; font-size: 0.85rem; padding: 0.5rem 0.75rem;
    color: #151515; background: #fff; width: 100%; outline: none;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.sre-input:focus, .sre-select:focus, .sre-textarea:focus {
    border-color: #E34824; box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}
.sre-textarea { resize: vertical; min-height: 80px; }
.sre-form-text { font-size: 0.72rem; color: #9ca3af; margin-top: 0.25rem; }
.sre-validation { font-size: 0.72rem; color: #dc2626; margin-top: 0.25rem; }

/* Input group con prefisso */
.sre-input-group { display: flex; }
.sre-input-prefix {
    padding: 0.5rem 0.75rem; font-size: 0.85rem;
    background: #EEEFF0; border: 1px solid #e0e1e3; border-right: none;
    color: #6b7280; white-space: nowrap;
}
.sre-input-group .sre-input { border-left: none; flex: 1; }
.sre-input-group .sre-input:focus { border-left: 1px solid #E34824; }

/* Toggle completamento */
.sre-toggle-row {
    display: flex; align-items: center; justify-content: space-between;
    padding: 0.75rem 0; gap: 1rem;
}
.sre-toggle-info { flex: 1; }
.sre-toggle-label { font-size: 0.85rem; font-weight: 600; color: #151515; }
.sre-toggle-sub   { font-size: 0.72rem; color: #9ca3af; margin-top: 0.1rem; }
/* Bottoni */
.sre-btn {
    padding: 0.55rem 1.5rem; font-size: 0.85rem; font-weight: 600;
    border: 2px solid; cursor: pointer; text-decoration: none;
    display: inline-flex; align-items: center; gap: 0.4rem;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
    background: transparent;
}
.sre-btn-amber { background: #d97706; color: #fff; border-color: #d97706; }
.sre-btn-amber:hover { background: #b45309; border-color: #b45309; color: #fff; }
.sre-btn-secondary { color: #6b7280; border-color: #e0e1e3; }
.sre-btn-secondary:hover { border-color: #151515; color: #151515; }

/* Footer form */
.sre-form-footer {
    display: flex; justify-content: space-between; align-items: center;
    gap: 0.5rem; flex-wrap: wrap; margin-top: 1.5rem;
}

/* Sidebar sticky */
.sre-sidebar { position: sticky; top: 72px; }
@media (max-width: 991.98px) { .sre-sidebar { position: static; } }

/* Info sidebar */
.sre-sys-row {
    display: flex; flex-direction: column;
    padding: 0.6rem 0; border-bottom: 1px solid #EEEFF0;
}
.sre-sys-row:last-child { border-bottom: none; }
.sre-sys-label {
    font-size: 0.68rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.04em; color: #6b7280;
}
.sre-sys-value { font-size: 0.85rem; color: #151515; font-weight: 500; margin-top: 0.15rem; }
.sre-sys-empty { font-size: 0.85rem; color: #9ca3af; font-style: italic; margin-top: 0.15rem; }

/* Bottone sidebar outline */
.sre-side-btn {
    display: flex; align-items: center; gap: 0.5rem;
    width: 100%; padding: 0.5rem 0.85rem; font-size: 0.82rem; font-weight: 600;
    border: 1px solid rgba(227,72,36,0.2); background: transparent;
    color: #E34824; cursor: pointer; text-decoration: none;
    transition: background 0.15s, border-color 0.15s;
    margin-bottom: 0.5rem;
}
.sre-side-btn:last-child { margin-bottom: 0; }
.sre-side-btn:hover { background: rgba(227,72,36,0.06); border-color: #E34824; color: #E34824; }
.sre-side-btn-gray { color: #6b7280; border-color: rgba(107,114,128,0.2); }
.sre-side-btn-gray:hover { background: rgba(107,114,128,0.06); border-color: #6b7280; color: #151515; }

/* ============================================
    SCADENZE REGISTRO > _ALLEGATI PARTIAL PAGE STYLES
============================================ */

.srap-table-wrap { overflow-x: auto; }
.srap-table { width: 100%; border-collapse: collapse; font-size: 0.85rem; }

.srap-table thead th {
    background: #151515; color: #fff;
    padding: 0.6rem 0.85rem; font-size: 0.72rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.03em;
    white-space: nowrap; border: none;
}

.srap-table tbody tr { border-bottom: 1px solid #EEEFF0; }
.srap-table tbody tr:hover { background: rgba(227,72,36,0.03); }
.srap-table tbody td { padding: 0.6rem 0.85rem; vertical-align: middle; }

.srap-file-icon { font-size: 1.1rem; color: #6b7280; }
.srap-file-name { font-size: 0.85rem; font-weight: 600; color: #151515; }
.srap-file-desc { font-size: 0.72rem; color: #9ca3af; margin-top: 0.1rem; }

.srap-badge {
    display: inline-flex; padding: 0.2rem 0.55rem;
    font-size: 0.68rem; font-weight: 600;
    background: rgba(107,114,128,0.06); color: #6b7280;
    border: 1px solid rgba(107,114,128,0.2);
    text-transform: uppercase; letter-spacing: 0.03em;
}

.srap-small { font-size: 0.78rem; color: #6b7280; white-space: nowrap; }
.srap-muted { font-size: 0.78rem; color: #9ca3af; }

.srap-actions { display: flex; gap: 0.25rem; justify-content: flex-end; }
.srap-action-btn {
    width: 32px; height: 32px; border: 1px solid; background: transparent;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 0.82rem; text-decoration: none; cursor: pointer;
    transition: background 0.15s;
}
.srap-action-download { color: #0891b2; border-color: rgba(8,145,178,0.2); }
.srap-action-download:hover { background: rgba(8,145,178,0.08); border-color: #0891b2; color: #0891b2; }
.srap-action-delete { color: #dc2626; border-color: rgba(220,38,38,0.2); }
.srap-action-delete:hover { background: rgba(220,38,38,0.06); border-color: #dc2626; color: #dc2626; }

.srap-empty { text-align: center; padding: 2rem 1rem; }
.srap-empty-icon { font-size: 2rem; color: #e0e1e3; display: block; margin-bottom: 0.5rem; }
.srap-empty p { font-size: 0.85rem; color: #9ca3af; margin: 0; }

/* ============================================
    SCADENZE REGISTRO > UPLOAD ALLEGATO PAGE STYLES
============================================ */

.srua-page { padding: 2rem; }

@media (max-width: 575.98px) {
    .srua-page { padding: 1rem; }
}

/* Breadcrumb */
.srua-breadcrumb {
    display: flex; align-items: center; gap: 0.4rem;
    font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1rem;
}
.srua-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.srua-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.srua-breadcrumb .srua-sep { color: #e0e1e3; }
.srua-breadcrumb .srua-current { color: #6b7280; font-weight: 500; }

/* Header */
.srua-header { margin-bottom: 1.5rem; }
.srua-title {
    font-size: 1.4rem; font-weight: 700; color: #151515;
    letter-spacing: -0.025em; margin: 0;
}

/* Info scadenza box */
.srua-info-box {
    background: rgba(8,145,178,0.04);
    border-left: 4px solid #0891b2;
    padding: 0.85rem 1.25rem;
    margin-bottom: 1.5rem;
    display: flex; align-items: center;
    justify-content: space-between; flex-wrap: wrap; gap: 0.75rem;
}
.srua-info-label {
    font-size: 0.68rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.04em; color: #0891b2; margin-bottom: 0.2rem;
}
.srua-info-title { font-size: 0.9rem; font-weight: 600; color: #151515; }
.srua-info-sub { font-size: 0.78rem; color: #6b7280; margin-top: 0.15rem; }
.srua-info-sub code {
    font-size: 0.78rem; color: #E34824; background: rgba(227,72,36,0.06);
    padding: 0.1rem 0.4rem; border: 1px solid rgba(227,72,36,0.15);
    font-family: monospace;
}

/* Alert */
.srua-alert {
    display: flex; align-items: flex-start; gap: 0.5rem;
    padding: 0.85rem 1.25rem; margin-bottom: 1rem;
    font-size: 0.85rem; border: 1px solid #e0e1e3;
}
.srua-alert-success { border-left: 4px solid #059669; background: rgba(5,150,105,0.05); }
.srua-alert-danger  { border-left: 4px solid #dc2626; background: rgba(220,38,38,0.04); color: #dc2626; }
.srua-alert-close {
    background: none; border: none; cursor: pointer; margin-left: auto;
    color: #9ca3af; font-size: 1rem; padding: 0; line-height: 1;
}
.srua-alert-close:hover { color: #151515; }

/* Layout 2 colonne */
.srua-layout {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 1.5rem;
    align-items: start;
}
@media (max-width: 991.98px) {
    .srua-layout { grid-template-columns: 1fr; }
}

/* Card */
.srua-card {
    background: #fff; border: 1px solid #e0e1e3; overflow: hidden;
    margin-bottom: 1rem;
}
.srua-card:last-child { margin-bottom: 0; }
.srua-card-header {
    position: relative; padding: 1rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex; align-items: center; gap: 0.75rem;
}
.srua-card-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0;
    width: 4px; background: #E34824;
}
.srua-card-header-cyan::before  { background: #0891b2; }
.srua-card-header-gray::before  { background: #6b7280; }
.srua-icon-box {
    width: 34px; height: 34px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15);
    color: #E34824; font-size: 1rem;
}
.srua-icon-box-cyan {
    background: rgba(8,145,178,0.08); border-color: rgba(8,145,178,0.15); color: #0891b2;
}
.srua-icon-box-gray {
    background: rgba(107,114,128,0.08); border-color: rgba(107,114,128,0.15); color: #6b7280;
}
.srua-card-title { font-size: 0.875rem; font-weight: 700; color: #151515; margin: 0; }
.srua-card-body  { padding: 1.25rem 1.5rem 1.25rem 1.75rem; }

/* Badge allegati */
.srua-badge {
    display: inline-flex; padding: 0.15rem 0.45rem;
    font-size: 0.68rem; font-weight: 600;
    background: rgba(107,114,128,0.08); color: #6b7280;
    border: 1px solid rgba(107,114,128,0.2);
    text-transform: uppercase; letter-spacing: 0.03em;
    vertical-align: middle; margin-left: 0.4rem;
}

/* Form section title */
.srua-section-title {
    font-size: 0.72rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.05em; color: #6b7280;
    display: flex; align-items: center; gap: 0.4rem;
    margin-bottom: 0.75rem; margin-top: 1.25rem;
}
.srua-section-title:first-child { margin-top: 0; }
.srua-section-title i { color: #E34824; }
.srua-separator { border-top: 1px solid #EEEFF0; margin: 1.25rem 0; }

/* Campi form */
.srua-field-group-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0.85rem 1rem; }
@media (max-width: 575.98px) { .srua-field-group-2 { grid-template-columns: 1fr; } }

.srua-field { display: flex; flex-direction: column; }
.srua-label {
    font-size: 0.8rem; font-weight: 600; color: #151515;
    text-transform: uppercase; letter-spacing: 0.04em;
    margin-bottom: 0.35rem;
}
.srua-label .req { color: #dc2626; margin-left: 0.2rem; }
.srua-input, .srua-select {
    border: 1px solid #e0e1e3; font-size: 0.85rem; padding: 0.5rem 0.75rem;
    color: #151515; background: #fff; width: 100%; outline: none;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.srua-input:focus, .srua-select:focus {
    border-color: #E34824; box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}
.srua-form-text { font-size: 0.72rem; color: #9ca3af; margin-top: 0.25rem; }
.srua-validation { font-size: 0.72rem; color: #dc2626; margin-top: 0.25rem; }

/* File input custom */
.srua-file-wrap {
    border: 2px dashed #e0e1e3; padding: 1.5rem; text-align: center;
    cursor: pointer; transition: border-color 0.2s, background 0.2s;
    position: relative;
}
.srua-file-wrap:hover, .srua-file-wrap.dragover {
    border-color: #E34824; background: rgba(227,72,36,0.02);
}
.srua-file-wrap input[type="file"] {
    position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%;
}
.srua-file-icon { font-size: 2rem; color: #e0e1e3; margin-bottom: 0.5rem; }
.srua-file-hint { font-size: 0.82rem; color: #6b7280; }
.srua-file-hint strong { color: #E34824; }

/* File preview */
.srua-file-preview {
    display: flex; align-items: center; gap: 0.75rem;
    padding: 0.65rem 0.85rem;
    background: rgba(8,145,178,0.04); border-left: 3px solid #0891b2;
    font-size: 0.85rem; margin-top: 0.75rem;
}
.srua-file-preview-icon { color: #0891b2; font-size: 1.1rem; flex-shrink: 0; }
.srua-file-preview-name { font-weight: 600; color: #151515; }
.srua-file-preview-size { font-size: 0.75rem; color: #9ca3af; margin-left: 0.5rem; }

/* Link upload multiplo */
.srua-multiplo-hint {
    text-align: center; font-size: 0.82rem; color: #6b7280;
    margin-top: 1rem; padding: 0.65rem;
    background: rgba(107,114,128,0.04); border: 1px solid #e0e1e3;
}
.srua-multiplo-hint a { color: #E34824; font-weight: 600; text-decoration: none; }
.srua-multiplo-hint a:hover { color: #c93d1e; text-decoration: underline; }

/* Bottoni */
.srua-btn {
    padding: 0.55rem 1.5rem; font-size: 0.85rem; font-weight: 600;
    border: 2px solid; cursor: pointer; text-decoration: none;
    display: inline-flex; align-items: center; gap: 0.4rem;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
    background: transparent;
}
.srua-btn-primary { background: #E34824; color: #fff; border-color: #E34824; }
.srua-btn-primary:hover { background: #c93d1e; border-color: #c93d1e; color: #fff; }
.srua-btn-secondary { color: #6b7280; border-color: #e0e1e3; }
.srua-btn-secondary:hover { border-color: #151515; color: #151515; }

/* Footer form */
.srua-form-footer {
    display: flex; justify-content: space-between; align-items: center;
    gap: 0.5rem; flex-wrap: wrap; margin-top: 1.5rem;
}

/* Sidebar sticky */
.srua-sidebar { position: sticky; top: 72px; }
@media (max-width: 991.98px) { .srua-sidebar { position: static; } }

/* Lista allegati esistenti */
.srua-allegato-item {
    display: flex; align-items: center; gap: 0.65rem;
    padding: 0.65rem 1rem; border-bottom: 1px solid #EEEFF0;
}
.srua-allegato-item:last-child { border-bottom: none; }
.srua-allegato-icon { color: #6b7280; font-size: 1rem; flex-shrink: 0; }
.srua-allegato-name { font-size: 0.82rem; font-weight: 600; color: #151515; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.srua-allegato-size { font-size: 0.72rem; color: #9ca3af; }
.srua-empty {
    text-align: center; padding: 1.5rem 1rem;
    font-size: 0.82rem; color: #9ca3af;
}

/* ============================================
    SCADENZE REGISTRO > UPLOAD ALLEGATO MULTIPLO PAGE STYLES
============================================ */

.srum-page { padding: 2rem; }

@media (max-width: 575.98px) {
    .srum-page { padding: 1rem; }
}

/* Breadcrumb */
.srum-breadcrumb {
    display: flex; align-items: center; gap: 0.4rem;
    font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1rem;
}
.srum-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.srum-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.srum-breadcrumb .srum-sep { color: #e0e1e3; }
.srum-breadcrumb .srum-current { color: #6b7280; font-weight: 500; }

/* Header */
.srum-header { margin-bottom: 1.5rem; }
.srum-title {
    font-size: 1.4rem; font-weight: 700; color: #151515;
    letter-spacing: -0.025em; margin: 0;
}

/* Info scadenza box */
.srum-info-box {
    background: rgba(8,145,178,0.04);
    border-left: 4px solid #0891b2;
    padding: 0.85rem 1.25rem;
    margin-bottom: 1.5rem;
    display: flex; align-items: center;
    justify-content: space-between; flex-wrap: wrap; gap: 0.75rem;
}
.srum-info-label {
    font-size: 0.68rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.04em; color: #0891b2; margin-bottom: 0.2rem;
}
.srum-info-title { font-size: 0.9rem; font-weight: 600; color: #151515; }
.srum-info-sub { font-size: 0.78rem; color: #6b7280; margin-top: 0.15rem; }
.srum-info-sub code {
    font-size: 0.78rem; color: #E34824; background: rgba(227,72,36,0.06);
    padding: 0.1rem 0.4rem; border: 1px solid rgba(227,72,36,0.15);
    font-family: monospace;
}

/* Alert */
.srum-alert {
    display: flex; align-items: flex-start; gap: 0.5rem;
    padding: 0.85rem 1.25rem; margin-bottom: 1rem;
    font-size: 0.85rem; border: 1px solid #e0e1e3;
}
.srum-alert-success { border-left: 4px solid #059669; background: rgba(5,150,105,0.05); }
.srum-alert-danger  { border-left: 4px solid #dc2626; background: rgba(220,38,38,0.04); color: #dc2626; }
.srum-alert-close {
    background: none; border: none; cursor: pointer; margin-left: auto;
    color: #9ca3af; font-size: 1rem; padding: 0; line-height: 1;
}
.srum-alert-close:hover { color: #151515; }

/* Layout 2 colonne */
.srum-layout {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 1.5rem;
    align-items: start;
}
@media (max-width: 991.98px) {
    .srum-layout { grid-template-columns: 1fr; }
}

/* Card */
.srum-card {
    background: #fff; border: 1px solid #e0e1e3; overflow: hidden;
    margin-bottom: 1rem;
}
.srum-card:last-child { margin-bottom: 0; }
.srum-card-header {
    position: relative; padding: 1rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex; align-items: center; gap: 0.75rem;
}
.srum-card-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0;
    width: 4px; background: #E34824;
}
.srum-card-header-cyan::before { background: #0891b2; }
.srum-icon-box {
    width: 34px; height: 34px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15);
    color: #E34824; font-size: 1rem;
}
.srum-icon-box-cyan {
    background: rgba(8,145,178,0.08); border-color: rgba(8,145,178,0.15); color: #0891b2;
}
.srum-card-title { font-size: 0.875rem; font-weight: 700; color: #151515; margin: 0; }
.srum-card-body  { padding: 1.25rem 1.5rem 1.25rem 1.75rem; }

/* Badge */
.srum-badge {
    display: inline-flex; padding: 0.15rem 0.45rem;
    font-size: 0.68rem; font-weight: 600;
    background: rgba(107,114,128,0.08); color: #6b7280;
    border: 1px solid rgba(107,114,128,0.2);
    text-transform: uppercase; letter-spacing: 0.03em;
    vertical-align: middle; margin-left: 0.4rem;
}

/* Form section title */
.srum-section-title {
    font-size: 0.72rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.05em; color: #6b7280;
    display: flex; align-items: center; gap: 0.4rem;
    margin-bottom: 0.75rem; margin-top: 1.25rem;
}
.srum-section-title:first-child { margin-top: 0; }
.srum-section-title i { color: #E34824; }
.srum-separator { border-top: 1px solid #EEEFF0; margin: 1.25rem 0; }

/* Campi form */
.srum-field-group-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0.85rem 1rem; }
@media (max-width: 575.98px) { .srum-field-group-2 { grid-template-columns: 1fr; } }

.srum-field { display: flex; flex-direction: column; }
.srum-label {
    font-size: 0.8rem; font-weight: 600; color: #151515;
    text-transform: uppercase; letter-spacing: 0.04em;
    margin-bottom: 0.35rem;
}
.srum-label .req { color: #dc2626; margin-left: 0.2rem; }
.srum-input, .srum-select {
    border: 1px solid #e0e1e3; font-size: 0.85rem; padding: 0.5rem 0.75rem;
    color: #151515; background: #fff; width: 100%; outline: none;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.srum-input:focus, .srum-select:focus {
    border-color: #E34824; box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}
.srum-form-text { font-size: 0.72rem; color: #9ca3af; margin-top: 0.25rem; }
.srum-validation { font-size: 0.72rem; color: #dc2626; margin-top: 0.25rem; }

/* File drop area */
.srum-file-wrap {
    border: 2px dashed #e0e1e3; padding: 2rem 1.5rem; text-align: center;
    cursor: pointer; transition: border-color 0.2s, background 0.2s;
    position: relative;
}
.srum-file-wrap:hover, .srum-file-wrap.dragover {
    border-color: #E34824; background: rgba(227,72,36,0.02);
}
.srum-file-wrap input[type="file"] {
    position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%;
}
.srum-file-icon { font-size: 2.5rem; color: #e0e1e3; margin-bottom: 0.5rem; }
.srum-file-hint { font-size: 0.85rem; color: #6b7280; }
.srum-file-hint strong { color: #E34824; }
.srum-file-multi-badge {
    display: inline-flex; align-items: center; gap: 0.35rem;
    padding: 0.2rem 0.65rem; font-size: 0.72rem; font-weight: 600;
    background: rgba(227,72,36,0.06); color: #E34824;
    border: 1px solid rgba(227,72,36,0.2);
    text-transform: uppercase; letter-spacing: 0.03em;
    margin-bottom: 0.5rem;
}

/* File preview multiplo */
.srum-files-preview {
    margin-top: 0.75rem;
    background: rgba(8,145,178,0.04); border-left: 3px solid #0891b2;
    padding: 0.75rem 1rem;
}
.srum-files-summary {
    display: flex; align-items: center; gap: 0.5rem;
    font-size: 0.85rem; font-weight: 600; color: #151515; margin-bottom: 0.5rem;
}
.srum-files-summary i { color: #0891b2; }
.srum-files-total { font-size: 0.75rem; color: #9ca3af; font-weight: 400; margin-left: 0.25rem; }
.srum-files-list { display: flex; flex-direction: column; gap: 0.25rem; }
.srum-file-item {
    display: flex; align-items: center; gap: 0.5rem;
    font-size: 0.78rem; color: #6b7280;
}
.srum-file-item i { color: #0891b2; flex-shrink: 0; }
.srum-file-item-name { color: #151515; font-weight: 500; }

/* Hint upload singolo */
.srum-singolo-hint {
    text-align: center; font-size: 0.82rem; color: #6b7280;
    margin-top: 1rem; padding: 0.65rem;
    background: rgba(107,114,128,0.04); border: 1px solid #e0e1e3;
}
.srum-singolo-hint a { color: #E34824; font-weight: 600; text-decoration: none; }
.srum-singolo-hint a:hover { color: #c93d1e; text-decoration: underline; }

/* Bottoni */
.srum-btn {
    padding: 0.55rem 1.5rem; font-size: 0.85rem; font-weight: 600;
    border: 2px solid; cursor: pointer; text-decoration: none;
    display: inline-flex; align-items: center; gap: 0.4rem;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
    background: transparent;
}
.srum-btn-primary { background: #E34824; color: #fff; border-color: #E34824; }
.srum-btn-primary:hover { background: #c93d1e; border-color: #c93d1e; color: #fff; }
.srum-btn-secondary { color: #6b7280; border-color: #e0e1e3; }
.srum-btn-secondary:hover { border-color: #151515; color: #151515; }

/* Footer form */
.srum-form-footer {
    display: flex; justify-content: space-between; align-items: center;
    gap: 0.5rem; flex-wrap: wrap; margin-top: 1.5rem;
}

/* Sidebar sticky */
.srum-sidebar { position: sticky; top: 72px; }
@media (max-width: 991.98px) { .srum-sidebar { position: static; } }

/* Lista allegati esistenti */
.srum-allegato-item {
    display: flex; align-items: center; gap: 0.65rem;
    padding: 0.65rem 1rem; border-bottom: 1px solid #EEEFF0;
}
.srum-allegato-item:last-child { border-bottom: none; }
.srum-allegato-icon { color: #6b7280; font-size: 1rem; flex-shrink: 0; }
.srum-allegato-name {
    font-size: 0.82rem; font-weight: 600; color: #151515;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.srum-allegato-size { font-size: 0.72rem; color: #9ca3af; }
.srum-empty {
    text-align: center; padding: 1.5rem 1rem;
    font-size: 0.82rem; color: #9ca3af;
}

/* ============================================
    LAYOUT PAGE STYLES
============================================ */
* { box-sizing: border-box; }
body {
    margin: 0;
    background: var(--cb-light);
    color: var(--cb-dark);
    overflow-x: hidden;
}

/* Remove all list bullets globally in layout areas */
.cb-topbar ul,
.cb-topbar li,
.cb-sidebar ul,
.cb-sidebar li,
.cb-topbar-right ul,
.cb-topbar-right li,
.dropdown-menu,
.dropdown-menu li {
    list-style: none;
    padding-left: 0;
    margin: 0;
}

/* ========== TOPBAR ========== */
.cb-topbar {
    position: fixed;
    top: 0;
    left: var(--sidebar-width);
    right: 0;
    height: var(--topbar-height);
    background: var(--cb-white);
    border-bottom: 1px solid var(--cb-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 1.5rem;
    z-index: 1040;
    transition: left 0.3s ease;
}
body.cb-sidebar-collapsed .cb-topbar {
    left: var(--sidebar-collapsed-width);
}
.cb-topbar-left {
    display: flex;
    align-items: center;
    gap: 1rem;
}
.cb-topbar-toggle {
    background: none;
    border: none;
    color: var(--cb-dark);
    cursor: pointer;
    padding: 0.4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color 0.2s;
}
.cb-topbar-toggle:hover { color: var(--cb-accent); }
.cb-topbar-title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--cb-dark);
    margin: 0;
}
.cb-topbar-right {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}
.cb-topbar-right .dropdown-toggle::after { display: none; }
.cb-topbar-right .nav-link {
    color: var(--cb-dark);
    font-weight: 500;
    font-size: 0.875rem;
    padding: 0.4rem 0.6rem;
    border-radius: 0;
    transition: color 0.2s;
}
.cb-topbar-right .nav-link:hover { color: var(--cb-accent); }

/* ========== SIDEBAR ========== */
.cb-sidebar {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    width: var(--sidebar-width);
    background: var(--cb-white);
    border-right: 1px solid var(--cb-border);
    z-index: 1050;
    display: flex;
    flex-direction: column;
    transition: transform 0.3s ease, width 0.3s ease;
    overflow-y: auto;
    overflow-x: hidden;
}

/* ---- COLLAPSED: icon-only mode ---- */
body.cb-sidebar-collapsed .cb-sidebar {
    width: var(--sidebar-collapsed-width);
    transform: none; /* non nasconde, rimane visibile a 64px */
}

/* Nasconde testi, chevron, sezione titoli e brand testuale nel collassato */
body.cb-sidebar-collapsed .cb-sidebar .cb-nav-section-title,
body.cb-sidebar-collapsed .cb-sidebar .cb-nav-item span,
body.cb-sidebar-collapsed .cb-sidebar .cb-nav-collapse-btn span,
body.cb-sidebar-collapsed .cb-sidebar .cb-nav-collapse-btn .cb-chevron,
body.cb-sidebar-collapsed .cb-sidebar .cb-user-details,
body.cb-sidebar-collapsed .cb-sidebar .cb-user-chevron,
body.cb-sidebar-collapsed .cb-sidebar .cb-nav-sub {
    display: none !important;
}

/* Centra le icone nei nav-item */
body.cb-sidebar-collapsed .cb-sidebar .cb-nav-item,
body.cb-sidebar-collapsed .cb-sidebar .cb-nav-collapse-btn {
    justify-content: center;
    padding: 0.65rem 0;
    gap: 0;
}

/* Brand in modalità collassata: solo il dot */
body.cb-sidebar-collapsed .cb-sidebar .cb-sidebar-brand {
    justify-content: center;
    padding: 0;
}

body.cb-sidebar-collapsed .cb-sidebar .cb-brand-logo {
    display: none;
}
body.cb-sidebar-collapsed .cb-sidebar .cb-brand-icon {
    display: block;
}

/* Tooltip al hover in modalità collassata */
body.cb-sidebar-collapsed .cb-sidebar .cb-nav-item,
body.cb-sidebar-collapsed .cb-sidebar .cb-nav-collapse-btn {
    position: relative;
}

body.cb-sidebar-collapsed .cb-sidebar .cb-nav-item[data-label]::after,
body.cb-sidebar-collapsed .cb-sidebar .cb-nav-collapse-btn[data-label]::after {
    content: attr(data-label);
    position: absolute;
    left: calc(var(--sidebar-collapsed-width) + 8px);
    top: 50%;
    transform: translateY(-50%);
    background: var(--cb-dark);
    color: #fff;
    font-size: 0.75rem;
    font-weight: 500;
    padding: 0.3rem 0.65rem;
    white-space: nowrap;
    pointer-events: none;
    opacity: 0;
    z-index: 2000;
    transition: opacity 0.15s ease;
}

body.cb-sidebar-collapsed .cb-sidebar .cb-nav-item[data-label]:hover::after,
body.cb-sidebar-collapsed .cb-sidebar .cb-nav-collapse-btn[data-label]:hover::after {
    opacity: 1;
}

/* User footer collassato: solo avatar centrato, niente bordo superiore */
body.cb-sidebar-collapsed .cb-sidebar .cb-sidebar-footer {
    border-top: none;
    padding: 0.5rem 0;
    display: flex;
    justify-content: center;
}

body.cb-sidebar-collapsed .cb-sidebar .cb-user-toggle {
    justify-content: center;
    padding: 0.5rem 0;
    width: auto;
}

body.cb-sidebar-collapsed .cb-sidebar .cb-user-avatar {
    width: 36px;
    height: 36px;
}

/* Brand */
.cb-sidebar-brand {
    height: var(--topbar-height);
    display: flex;
    align-items: center;
    padding: 0 1.25rem;
    border-bottom: 1px solid var(--cb-border);
    flex-shrink: 0;
    transition: padding 0.3s ease;
}
.cb-sidebar-brand a {
    text-decoration: none;
    display: flex;
    align-items: center;
    height: 100%;
}
.cb-brand-logo {
    width: 150px;
    height: auto;
    display: block;
    transition: opacity 0.3s ease;
}
.cb-brand-icon {
    width: 32px;
    height: 32px;
    display: none;
    transition: opacity 0.3s ease;
}

/* Nav sections */
.cb-sidebar-nav {
    flex: 1;
    padding: 1rem 0;
}
.cb-nav-section {
    margin-bottom: 0;
}
.cb-nav-section + .cb-nav-section {
    border-top: 1px solid var(--cb-border);
    padding-top: 0.25rem;
    margin-top: 0.25rem;
}
body.cb-sidebar-collapsed .cb-sidebar .cb-nav-section + .cb-nav-section {
    border-top: none;
    padding-top: 0;
    margin-top: 0;
}
.cb-nav-section-title {
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--cb-gray);
    padding: 0.5rem 1.25rem 0.25rem;
    margin: 0;
    transition: opacity 0.2s;
}

/* Nav items */
.cb-nav-item {
    display: flex;
    align-items: center;
    padding: 0.55rem 1.25rem;
    color: var(--cb-dark);
    text-decoration: none;
    font-size: 0.875rem;
    font-weight: 500;
    transition: all 0.15s ease;
    border-left: 3px solid transparent;
    gap: 0.65rem;
}
.cb-nav-item:hover {
    background: rgba(227,72,36,0.05);
    color: var(--cb-accent);
    border-left-color: var(--cb-accent);
    text-decoration: none;
}
.cb-nav-item.active {
    background: rgba(227,72,36,0.08);
    color: var(--cb-accent);
    border-left-color: var(--cb-accent);
    font-weight: 600;
}
.cb-nav-item svg { opacity: 0.7; flex-shrink: 0; }
.cb-nav-item:hover svg, .cb-nav-item.active svg { opacity: 1; color: var(--cb-accent); }

/* Collapsible sub-menu */
.cb-nav-collapse-btn {
    display: flex;
    align-items: center;
    width: 100%;
    padding: 0.55rem 1.25rem;
    color: var(--cb-dark);
    text-decoration: none;
    font-size: 0.875rem;
    font-weight: 500;
    transition: all 0.15s ease;
    border: none;
    background: none;
    border-left: 3px solid transparent;
    gap: 0.65rem;
    cursor: pointer;
}
.cb-nav-collapse-btn:hover {
    background: rgba(227,72,36,0.05);
    color: var(--cb-accent);
    border-left-color: var(--cb-accent);
}
.cb-nav-collapse-btn svg { opacity: 0.7; flex-shrink: 0; }
.cb-nav-collapse-btn:hover svg { opacity: 1; color: var(--cb-accent); }
.cb-nav-collapse-btn .cb-chevron {
    margin-left: auto;
    transition: transform 0.2s ease;
}
.cb-nav-collapse-btn[aria-expanded="true"] .cb-chevron {
    transform: rotate(90deg);
}
.cb-nav-sub {
    padding-left: 1rem;
}
.cb-nav-sub .cb-nav-item {
    font-size: 0.825rem;
    padding: 0.4rem 1.25rem;
    border-left: none;
    padding-left: 2.5rem;
}
.cb-nav-sub .cb-nav-item::before {
    content: '';
    display: inline-block;
    width: 5px;
    height: 5px;
    background: var(--cb-border);
    margin-right: 0.5rem;
    flex-shrink: 0;
}
.cb-nav-item.active::before {
    background: var(--cb-accent);
}
.cb-nav-sub .cb-nav-item:hover::before {
    background: var(--cb-accent);
}

/* Sidebar footer / user */
.cb-sidebar-footer {
    border-top: 1px solid var(--cb-border);
    padding: 0.75rem 1.25rem;
    flex-shrink: 0;
    transition: padding 0.3s ease, border 0.3s ease;
}
.cb-sidebar-footer .cb-user-info {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-size: 0.8rem;
    color: var(--cb-dark);
}
.cb-sidebar-footer .cb-user-avatar {
    width: 32px;
    height: 32px;
    background: var(--cb-light);
    border: 1px solid var(--cb-border);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.cb-sidebar-footer .cb-user-avatar svg { color: var(--cb-gray); }

/* User toggle (clickable) */
.cb-user-toggle {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    width: 100%;
    padding: 0.5rem 0.25rem;
    text-decoration: none;
    color: var(--cb-dark);
    transition: background 0.15s ease;
    cursor: pointer;
}
.cb-user-toggle:hover {
    background: rgba(227,72,36,0.05);
    color: var(--cb-accent);
    text-decoration: none;
}
.cb-user-details {
    flex: 1;
    overflow: hidden;
}
.cb-user-name {
    display: block;
    font-weight: 600;
    font-size: 0.8rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--cb-dark);
}
.cb-user-toggle:hover .cb-user-name { color: var(--cb-accent); }
.cb-user-role {
    display: block;
    font-size: 0.7rem;
    color: var(--cb-gray);
}
.cb-user-chevron {
    flex-shrink: 0;
    opacity: 0.5;
    transition: transform 0.2s ease, opacity 0.2s ease;
}
.cb-user-toggle:hover .cb-user-chevron { opacity: 1; color: var(--cb-accent); }
.cb-user-toggle[aria-expanded="true"] .cb-user-chevron {
    transform: rotate(180deg);
    opacity: 1;
}

/* User dropdown (dropup from sidebar footer) */
.cb-user-dropdown {
    width: calc(var(--sidebar-width) - 2.5rem);
    border: 1px solid var(--cb-border);
    border-radius: 0 !important;
    box-shadow: 0 -4px 16px rgba(21,21,21,0.1);
    padding: 0.4rem 0;
}
.cb-user-dropdown .dropdown-item {
    font-size: 0.85rem;
    font-weight: 500;
    padding: 0.5rem 1rem;
    color: var(--cb-dark);
    border-radius: 0;
    transition: all 0.15s;
}
.cb-user-dropdown .dropdown-item:hover {
    background: rgba(227,72,36,0.06);
    color: var(--cb-accent);
}
.cb-user-dropdown .dropdown-item svg {
    margin-right: 0.5rem;
    opacity: 0.7;
}
.cb-user-dropdown .dropdown-item:hover svg { opacity: 1; color: var(--cb-accent); }
.cb-user-dropdown .dropdown-item.text-danger { color: var(--cb-accent) !important; }
.cb-user-dropdown .dropdown-item.text-danger:hover { background: rgba(227,72,36,0.08); }
.cb-user-dropdown .dropdown-divider { border-color: var(--cb-border); margin: 0.25rem 0; }

/* ========== MAIN CONTENT ========== */
.cb-main-wrapper {
    margin-left: var(--sidebar-width);
    margin-top: var(--topbar-height);
    min-height: calc(100vh - var(--topbar-height));
    transition: margin-left 0.3s ease;
    display: flex;
    flex-direction: column;
}
body.cb-sidebar-collapsed .cb-main-wrapper {
    margin-left: var(--sidebar-collapsed-width);
}
.cb-main-content {
    flex: 1;
    padding: 0;
}

/* ========== FOOTER — trasparente, testo scuro ========== */
.cb-footer {
    background: transparent;
    border-top: none;
    color: var(--cb-gray);
    padding: 1rem 1.5rem;
    font-size: 0.8rem;
}
.cb-footer a {
    color: var(--cb-gray);
    text-decoration: none;
    transition: color 0.2s;
}
.cb-footer a:hover { color: var(--cb-accent); }

/* ========== OVERLAY (mobile) ========== */
.cb-sidebar-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.4);
    z-index: 1045;
}

/* ========== DROPDOWN STYLING (topbar) ========== */
.cb-topbar .dropdown-menu {
    background: var(--cb-white);
    border: 1px solid var(--cb-border);
    border-radius: 0;
    box-shadow: 0 8px 24px rgba(21,21,21,0.12);
    padding: 0.5rem 0;
}
.cb-topbar .dropdown-item {
    color: var(--cb-dark);
    font-size: 0.85rem;
    font-weight: 500;
    padding: 0.5rem 1.25rem;
    border-radius: 0;
    transition: all 0.15s;
}
.cb-topbar .dropdown-item:hover {
    background: rgba(227,72,36,0.06);
    color: var(--cb-accent);
}
.cb-topbar .dropdown-item svg {
    margin-right: 0.5rem;
    opacity: 0.7;
}
.cb-topbar .dropdown-item:hover svg { opacity: 1; color: var(--cb-accent); }
.cb-topbar .dropdown-item.text-danger { color: var(--cb-accent) !important; }
.cb-topbar .dropdown-item.text-danger:hover { background: rgba(227,72,36,0.08); }
.cb-topbar .dropdown-divider { border-color: var(--cb-border); margin: 0.25rem 0; }

/* ========== GLOBAL OVERRIDES ========== */
.card, .btn, .form-control, .form-select, .input-group-text,
.alert, .badge, .modal-content, .toast, .dropdown-menu,
.nav-tabs .nav-link, .nav-pills .nav-link, .pagination .page-link,
.table, .accordion-item, .accordion-button {
    border-radius: 0 !important;
}
.card { border: 1px solid var(--cb-border); box-shadow: none; }
.card:hover { border-color: rgba(227,72,36,0.25); }

.btn-primary {
    background: var(--cb-accent) !important;
    border-color: var(--cb-accent) !important;
    color: #fff !important;
}
.btn-primary:hover {
    background: var(--cb-accent-hover) !important;
    border-color: var(--cb-accent-hover) !important;
}
.btn-outline-primary {
    color: var(--cb-accent) !important;
    border-color: var(--cb-accent) !important;
}
.btn-outline-primary:hover {
    background: var(--cb-accent) !important;
    color: #fff !important;
}
.text-primary { color: var(--cb-accent) !important; }
.bg-primary { background-color: var(--cb-dark) !important; }

.table thead th {
    background: var(--cb-dark);
    color: #fff;
    font-weight: 600;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    border: none;
}
.table tbody tr:hover { background: rgba(227,72,36,0.03); }
.page-item.active .page-link { background-color: var(--cb-accent); border-color: var(--cb-accent); }
.page-link { color: var(--cb-accent); }
.page-link:hover { color: var(--cb-accent-hover); }
.form-control:focus, .form-select:focus {
    border-color: var(--cb-accent);
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.15);
}

::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--cb-light); }
::-webkit-scrollbar-thumb { background: #c4c5c7; }
::-webkit-scrollbar-thumb:hover { background: var(--cb-accent); }

/* ========== RESPONSIVE ========== */
@media (max-width: 991.98px) {
    .cb-sidebar {
        /* Su mobile la sidebar si nasconde completamente (fuori schermo a sinistra) */
        transform: translateX(calc(-1 * var(--sidebar-width)));
        width: var(--sidebar-width) !important; /* ripristina larghezza piena su mobile */
    }
    body.cb-sidebar-open .cb-sidebar {
        transform: translateX(0);
    }
    body.cb-sidebar-open .cb-sidebar-overlay {
        display: block;
    }
    /* In collapsed mode su mobile: torna all'icona-only solo se aperta */
    body.cb-sidebar-collapsed .cb-sidebar {
        transform: translateX(calc(-1 * var(--sidebar-width)));
        width: var(--sidebar-width) !important;
    }
    .cb-topbar { left: 0 !important; }
    .cb-main-wrapper { margin-left: 0 !important; }
}
@media (min-width: 992px) {
    body.cb-sidebar-open .cb-sidebar-overlay { display: none; }
}

/* ============================================
    _PAGINATIONPARTIAL PAGE STYLES
============================================ */

/* ── Paginazione Design System ── */
.pg-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.25rem;
    padding: 0;
    margin: 0;
    list-style: none;
}

.pg-pagination .page-item .page-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    height: 34px;
    padding: 0 0.5rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: #151515;
    background: #fff;
    border: 1px solid #e0e1e3;
    border-radius: 0;
    text-decoration: none;
    transition: all 0.15s ease;
    cursor: pointer;
}

.pg-pagination .page-item .page-link:hover {
    color: #E34824;
    border-color: #E34824;
    background: rgba(227, 72, 36, 0.04);
}

.pg-pagination .page-item.active .page-link {
    color: #fff;
    background: #E34824;
    border-color: #E34824;
}

.pg-pagination .page-item.active .page-link:hover {
    background: #c93d1e;
    border-color: #c93d1e;
    color: #fff;
}

.pg-pagination .page-item.disabled .page-link {
    color: #9ca3af;
    background: #EEEFF0;
    border-color: #e0e1e3;
    cursor: not-allowed;
    pointer-events: none;
}

/* Ellipsis */
.pg-pagination .page-item.disabled .page-link.pg-ellipsis {
    background: transparent;
    border-color: transparent;
    color: #6b7280;
    min-width: 28px;
}

/* Info pagina */
.pg-info {
    font-size: 0.72rem;
    font-weight: 500;
    color: #6b7280;
    text-align: center;
    margin-top: 0.5rem;
}

/* ── Responsive ── */
@media (max-width: 575.98px) {
    .pg-pagination .page-item .page-link {
        min-width: 30px;
        height: 30px;
        font-size: 0.72rem;
        padding: 0 0.35rem;
    }

    .pg-pagination {
        gap: 0.15rem;
    }
}

/* ============================================
    SOGGETTI > CREATE PAGE STYLES
============================================ */

/* ── Variabili ──────────────────────────────────────────── */
/* ── Layout pagina ──────────────────────────────────────── */
.sgc-page { padding: 2rem; }

/* ── Breadcrumb ─────────────────────────────────────────── */
.sgc-breadcrumb {
    display: flex; align-items: center; gap: 0.4rem;
    font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem;
}
.sgc-breadcrumb a { color: var(--cb-accent); text-decoration: none; font-weight: 500; }
.sgc-breadcrumb a:hover { color: var(--cb-accent-hover); text-decoration: underline; }
.sgc-breadcrumb .sgc-sep { color: var(--cb-border); }
.sgc-breadcrumb .sgc-current { color: var(--cb-gray); font-weight: 500; }

/* ── Header ─────────────────────────────────────────────── */
.sgc-header { margin-bottom: 1.5rem; }
.sgc-header h1 {
    font-size: 1.45rem; font-weight: 700;
    color: var(--cb-dark); letter-spacing: -0.025em;
    margin: 0; display: flex; align-items: center; gap: 0.5rem;
}
.sgc-header h1 svg { color: var(--cb-green); flex-shrink: 0; }

/* ── Card ───────────────────────────────────────────────── */
.sgc-card {
    background: var(--cb-white); border: 1px solid var(--cb-border);
    border-radius: 0; overflow: hidden; margin-bottom: 1rem;
}
.sgc-card-header {
    position: relative; padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--cb-border);
    display: flex; align-items: center; gap: 0.75rem;
}
.sgc-card-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
}
.sgc-card-header--accent::before  { background: var(--cb-accent); }
.sgc-card-header--gray::before    { background: var(--cb-gray); }
.sgc-card-header--green::before   { background: var(--cb-green); }
.sgc-card-header--cyan::before    { background: var(--cb-cyan); }
.sgc-card-header--amber::before   { background: var(--cb-amber); }
.sgc-card-header--neutral::before { background: var(--cb-border); }

.sgc-icon-box {
    width: 34px; height: 34px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center; border: 1px solid;
}
.sgc-icon-box--accent  { background: rgba(227,72,36,0.08);  border-color: rgba(227,72,36,0.15); }
.sgc-icon-box--accent i  { color: var(--cb-accent); }
.sgc-icon-box--gray    { background: rgba(107,114,128,0.08);border-color: rgba(107,114,128,0.15); }
.sgc-icon-box--gray i    { color: var(--cb-gray); }
.sgc-icon-box--green   { background: rgba(5,150,105,0.08);  border-color: rgba(5,150,105,0.15); }
.sgc-icon-box--green i   { color: var(--cb-green); }
.sgc-icon-box--cyan    { background: rgba(8,145,178,0.08);  border-color: rgba(8,145,178,0.15); }
.sgc-icon-box--cyan i    { color: var(--cb-cyan); }
.sgc-icon-box--amber   { background: rgba(217,119,6,0.08);  border-color: rgba(217,119,6,0.15); }
.sgc-icon-box--amber i   { color: var(--cb-amber); }
.sgc-icon-box--neutral { background: rgba(224,225,227,0.4); border-color: var(--cb-border); }
.sgc-icon-box--neutral i { color: var(--cb-muted); }

.sgc-card-title { font-size: 0.88rem; font-weight: 700; color: var(--cb-dark); margin: 0; }
.sgc-card-body  { padding: 1.5rem; }

/* ── Form elementi ──────────────────────────────────────── */
.sgc-form-label {
    font-size: 0.8rem; font-weight: 600; text-transform: uppercase;
    letter-spacing: 0.04em; color: var(--cb-dark);
    display: block; margin-bottom: 0.35rem;
}
.sgc-form-control,
.sgc-form-select {
    border: 1px solid var(--cb-border); font-size: 0.85rem;
    border-radius: 0; padding: 0.45rem 0.75rem;
    width: 100%; background: #fff; color: var(--cb-dark);
    transition: border-color 0.2s, box-shadow 0.2s;
}
.sgc-form-control:focus,
.sgc-form-select:focus {
    outline: none; border-color: var(--cb-accent);
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}
.sgc-form-text {
    font-size: 0.72rem; color: var(--cb-muted); margin-top: 0.25rem; display: block;
}
.sgc-validation { font-size: 0.72rem; color: var(--cb-danger); display: block; margin-top: 0.2rem; }

/* Input group (% suffix) */
.sgc-input-group { display: flex; }
.sgc-input-group .sgc-form-control { border-right: none; }
.sgc-input-group-text {
    background: var(--cb-light); border: 1px solid var(--cb-border);
    padding: 0.45rem 0.65rem; color: var(--cb-gray); font-size: 0.85rem;
    display: flex; align-items: center; flex-shrink: 0;
}

/* Textarea */
.sgc-textarea {
    border: 1px solid var(--cb-border); font-size: 0.85rem;
    border-radius: 0; padding: 0.55rem 0.75rem;
    width: 100%; background: #fff; color: var(--cb-dark);
    resize: vertical; transition: border-color 0.2s, box-shadow 0.2s;
}
.sgc-textarea:focus {
    outline: none; border-color: var(--cb-accent);
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}

/* Titoli sezione form */
.sgc-section-title {
    font-size: 0.82rem; font-weight: 600; text-transform: uppercase;
    letter-spacing: 0.03em; color: var(--cb-gray);
    display: flex; align-items: center; gap: 0.4rem;
    margin-bottom: 0.75rem;
}
.sgc-section-title i { color: var(--cb-accent); }

/* Separatore */
.sgc-sep { border-top: 1px solid var(--cb-light); margin: 1.25rem 0; }

/* Griglie form */
.sgc-form-row      { display: grid; gap: 0.85rem; }
.sgc-form-row-3    { grid-template-columns: repeat(3, 1fr); }
.sgc-form-row-2    { grid-template-columns: repeat(2, 1fr); }
.sgc-form-row-addr { grid-template-columns: 130px 1fr 100px; }
.sgc-form-row-addr2{ grid-template-columns: 2fr 100px 60px 90px; }
.sgc-col-full      { grid-column: 1 / -1; }
/* Pattern status row per toggle */
.sgc-toggle-row {
    display: flex; align-items: center;
    justify-content: space-between; padding: 0.65rem 0;
    border-bottom: 1px solid var(--cb-light);
}
.sgc-toggle-row:last-child { border-bottom: none; }
.sgc-toggle-label { font-size: 0.85rem; font-weight: 600; color: var(--cb-dark); }
.sgc-toggle-sub   { font-size: 0.72rem; color: var(--cb-muted); margin-top: 0.1rem; }

/* ── Alert validation ───────────────────────────────────── */
.sgc-alert-danger {
    border-radius: 0; border: 1px solid var(--cb-border);
    border-left: 4px solid var(--cb-danger);
    background: rgba(220,38,38,0.04);
    padding: 0.85rem 1.25rem; font-size: 0.85rem;
    margin-bottom: 1.5rem; color: var(--cb-dark);
}

/* ── Card azioni bottom ─────────────────────────────────── */
.sgc-actions-card {
    background: var(--cb-white); border: 1px solid var(--cb-border);
    border-radius: 0; padding: 1rem 1.5rem;
    display: flex; align-items: center;
    justify-content: space-between; gap: 1rem;
    flex-wrap: wrap; margin-top: 0.5rem;
}

/* Bottoni */
.sgc-btn {
    padding: 0.5rem 1.25rem; font-weight: 600; font-size: 0.85rem;
    border-radius: 0; display: inline-flex; align-items: center;
    gap: 0.4rem; text-decoration: none; cursor: pointer;
    transition: background 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s;
    border: 2px solid;
}
.sgc-btn-secondary {
    background: transparent; color: var(--cb-gray); border-color: var(--cb-border);
}
.sgc-btn-secondary:hover { border-color: var(--cb-dark); color: var(--cb-dark); }
.sgc-btn-green {
    background: var(--cb-green); color: #fff; border-color: var(--cb-green);
}
.sgc-btn-green:hover {
    background: #047857; border-color: #047857; color: #fff;
    box-shadow: 0 2px 8px rgba(5,150,105,0.2);
}

/* ── Sidebar sticky ─────────────────────────────────────── */
.sgc-sidebar { position: sticky; top: 72px; z-index: 10; }

/* ── Responsive ─────────────────────────────────────────── */
@media (max-width: 991.98px) {
    .sgc-form-row-3    { grid-template-columns: repeat(2, 1fr); }
    .sgc-form-row-addr { grid-template-columns: 110px 1fr; }
    .sgc-form-row-addr2{ grid-template-columns: 1fr 1fr; }
    .sgc-sidebar       { position: static; }
}
@media (max-width: 575.98px) {
    .sgc-form-row-3    { grid-template-columns: 1fr; }
    .sgc-form-row-2    { grid-template-columns: 1fr; }
    .sgc-form-row-addr { grid-template-columns: 1fr; }
    .sgc-form-row-addr2{ grid-template-columns: 1fr; }
}

/* ============================================
    SOGGETTI > DETAILS PAGE STYLES
============================================ */

/* ── Variabili ──────────────────────────────────────────── */
/* ── Layout pagina ──────────────────────────────────────── */
.sgd-page { padding: 2rem; }

/* ── Breadcrumb ─────────────────────────────────────────── */
.sgd-breadcrumb {
    display: flex; align-items: center; gap: 0.4rem;
    font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem;
}
.sgd-breadcrumb a { color: var(--cb-accent); text-decoration: none; font-weight: 500; }
.sgd-breadcrumb a:hover { color: var(--cb-accent-hover); text-decoration: underline; }
.sgd-breadcrumb .sgd-sep { color: var(--cb-border); }
.sgd-breadcrumb .sgd-current { color: var(--cb-gray); font-weight: 500; }

/* ── Header pagina ──────────────────────────────────────── */
.sgd-header {
    display: flex; align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 1.5rem;
    flex-wrap: wrap; gap: 1rem;
}
.sgd-header-left h1 {
    font-size: 1.45rem; font-weight: 700;
    color: var(--cb-dark); letter-spacing: -0.025em;
    margin: 0 0 0.2rem; display: flex; align-items: center; gap: 0.5rem;
}
.sgd-header-left h1 svg { color: var(--cb-accent); flex-shrink: 0; }
.sgd-header-actions { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }

/* ── Bottoni ────────────────────────────────────────────── */
.sgd-btn {
    padding: 0.5rem 1.1rem; font-weight: 600; font-size: 0.82rem;
    border-radius: 0; display: inline-flex; align-items: center;
    gap: 0.4rem; text-decoration: none; cursor: pointer;
    transition: background 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s;
    border: 2px solid;
}
.sgd-btn-secondary {
    background: transparent; color: var(--cb-gray);
    border-color: var(--cb-border);
}
.sgd-btn-secondary:hover { border-color: var(--cb-dark); color: var(--cb-dark); }
.sgd-btn-amber {
    background: var(--cb-amber); color: #fff; border-color: var(--cb-amber);
}
.sgd-btn-amber:hover { background: #b45309; border-color: #b45309; box-shadow: 0 2px 8px rgba(217,119,6,0.2); color:#fff; }
.sgd-btn-danger {
    background: var(--cb-danger); color: #fff; border-color: var(--cb-danger);
}
.sgd-btn-danger:hover { background: #b91c1c; border-color: #b91c1c; color:#fff; }

/* Outline piccoli sidebar */
.sgd-btn-outline {
    background: transparent; font-weight: 600; font-size: 0.82rem;
    border-radius: 0; padding: 0.4rem 0.8rem; border: 1px solid;
    display: inline-flex; align-items: center; gap: 0.4rem;
    text-decoration: none; cursor: pointer; width: 100%;
    justify-content: center; transition: background 0.15s, border-color 0.15s;
}
.sgd-btn-outline-accent  { border-color: rgba(227,72,36,0.2);  color: var(--cb-accent); }
.sgd-btn-outline-accent:hover  { background: rgba(227,72,36,0.08);  border-color: var(--cb-accent); }
.sgd-btn-outline-green   { border-color: rgba(5,150,105,0.2);  color: var(--cb-green); }
.sgd-btn-outline-green:hover   { background: rgba(5,150,105,0.08);  border-color: var(--cb-green); }
.sgd-btn-outline-amber   { border-color: rgba(217,119,6,0.2);  color: var(--cb-amber); }
.sgd-btn-outline-amber:hover   { background: rgba(217,119,6,0.08);  border-color: var(--cb-amber); }

/* ── Alert TempData ─────────────────────────────────────── */
.sgd-alert {
    border-radius: 0; border: 1px solid var(--cb-border);
    padding: 0.85rem 1.25rem; font-size: 0.85rem;
    display: flex; align-items: center; gap: 0.5rem; margin-bottom: 1.5rem;
}
.sgd-alert-success { border-left: 4px solid var(--cb-green); background: rgba(5,150,105,0.05); }
.sgd-alert-success i { color: var(--cb-green); }
.sgd-alert-close {
    margin-left: auto; background: none; border: none;
    color: var(--cb-muted); cursor: pointer; font-size: 1rem; padding: 0;
}
.sgd-alert-close:hover { color: var(--cb-dark); }

/* ── Card ───────────────────────────────────────────────── */
.sgd-card {
    background: var(--cb-white); border: 1px solid var(--cb-border);
    border-radius: 0; overflow: hidden; margin-bottom: 1rem;
}
.sgd-card-header {
    position: relative; padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--cb-border);
    display: flex; align-items: center; gap: 0.75rem;
}
.sgd-card-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
}
.sgd-card-header--accent::before  { background: var(--cb-accent); }
.sgd-card-header--gray::before    { background: var(--cb-gray); }
.sgd-card-header--green::before   { background: var(--cb-green); }
.sgd-card-header--cyan::before    { background: var(--cb-cyan); }
.sgd-card-header--amber::before   { background: var(--cb-amber); }
.sgd-card-header--neutral::before { background: var(--cb-border); }

.sgd-icon-box {
    width: 34px; height: 34px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    border: 1px solid;
}
.sgd-icon-box--accent { background: rgba(227,72,36,0.08); border-color: rgba(227,72,36,0.15); }
.sgd-icon-box--accent i  { color: var(--cb-accent); }
.sgd-icon-box--gray   { background: rgba(107,114,128,0.08); border-color: rgba(107,114,128,0.15); }
.sgd-icon-box--gray i    { color: var(--cb-gray); }
.sgd-icon-box--green  { background: rgba(5,150,105,0.08);  border-color: rgba(5,150,105,0.15); }
.sgd-icon-box--green i   { color: var(--cb-green); }
.sgd-icon-box--cyan   { background: rgba(8,145,178,0.08);  border-color: rgba(8,145,178,0.15); }
.sgd-icon-box--cyan i    { color: var(--cb-cyan); }
.sgd-icon-box--amber  { background: rgba(217,119,6,0.08);  border-color: rgba(217,119,6,0.15); }
.sgd-icon-box--amber i   { color: var(--cb-amber); }
.sgd-icon-box--neutral{ background: rgba(224,225,227,0.4); border-color: var(--cb-border); }
.sgd-icon-box--neutral i { color: var(--cb-muted); }

.sgd-card-title {
    font-size: 0.88rem; font-weight: 700; color: var(--cb-dark); margin: 0;
}
.sgd-card-body { padding: 1.5rem; }

/* ── Griglia campi details ──────────────────────────────── */
.sgd-fields-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.5rem;
}
.sgd-field {
    display: flex; flex-direction: column;
    padding: 0.6rem 0; border-bottom: 1px solid var(--cb-light);
}
.sgd-field:last-child { border-bottom: none; }
.sgd-field--full { grid-column: 1 / -1; }
.sgd-field-label {
    font-size: 0.68rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.04em; color: var(--cb-gray); margin-bottom: 0.2rem;
}
.sgd-field-value { font-size: 0.85rem; color: var(--cb-dark); font-weight: 500; }
.sgd-field-empty { font-size: 0.85rem; color: var(--cb-muted); font-style: italic; }

/* separatore sezione dentro card */
.sgd-sep { border-top: 1px solid var(--cb-light); margin: 1rem 0 0.5rem; }

/* ── Badge ──────────────────────────────────────────────── */
.sgd-badge {
    display: inline-flex; align-items: center; gap: 0.25rem;
    padding: 0.22rem 0.6rem; font-size: 0.68rem; font-weight: 600;
    border: 1px solid; border-radius: 0;
    text-transform: uppercase; letter-spacing: 0.03em;
}
.sgd-badge-primary   { background: rgba(227,72,36,0.06);  color: var(--cb-accent);  border-color: rgba(227,72,36,0.2); }
.sgd-badge-info      { background: rgba(8,145,178,0.06);  color: var(--cb-cyan);    border-color: rgba(8,145,178,0.2); }
.sgd-badge-success   { background: rgba(5,150,105,0.06);  color: var(--cb-green);   border-color: rgba(5,150,105,0.2); }
.sgd-badge-secondary { background: rgba(107,114,128,0.06);color: var(--cb-gray);    border-color: rgba(107,114,128,0.2); }
.sgd-badge-warn      { background: rgba(217,119,6,0.06);  color: var(--cb-amber);   border-color: rgba(217,119,6,0.2); }
.sgd-badge-dark      { background: rgba(21,21,21,0.06);   color: var(--cb-dark);    border-color: rgba(21,21,21,0.2); }

/* ── Code monospace ─────────────────────────────────────── */
.sgd-code {
    font-family: monospace; font-size: 0.82rem;
    background: var(--cb-light); padding: 0.15rem 0.45rem;
    color: var(--cb-dark); border: 1px solid var(--cb-border);
    display: inline-block;
}

/* ── Link contatti ──────────────────────────────────────── */
.sgd-link {
    color: var(--cb-gray); text-decoration: none; font-size: 0.85rem;
    display: inline-flex; align-items: center; gap: 0.3rem;
    transition: color 0.15s;
}
.sgd-link:hover { color: var(--cb-accent); }

/* ── Box sconto partner ─────────────────────────────────── */
.sgd-info-box {
    background: rgba(8,145,178,0.04);
    border-left: 3px solid var(--cb-cyan);
    padding: 0.75rem 1rem; font-size: 0.85rem;
    margin-top: 0.5rem;
}
.sgd-info-box-label { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--cb-cyan); margin-bottom: 0.2rem; }
.sgd-info-box-value { font-size: 1.25rem; font-weight: 700; color: var(--cb-dark); }

/* ── Avviso PA ──────────────────────────────────────────── */
.sgd-warn-inline {
    font-size: 0.78rem; color: var(--cb-amber); font-weight: 600;
    display: inline-flex; align-items: center; gap: 0.3rem;
}

/* ── Sidebar sticky ─────────────────────────────────────── */
.sgd-sidebar {
    position: sticky; top: 72px; z-index: 10;
}

/* ── Audit campi verticali ──────────────────────────────── */
.sgd-sys-label {
    font-size: 0.68rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.04em; color: var(--cb-gray); margin-bottom: 0.1rem;
}
.sgd-sys-value { font-size: 0.82rem; color: var(--cb-dark); margin-bottom: 0.75rem; }
.sgd-sys-value:last-child { margin-bottom: 0; }

/* ── Responsive ─────────────────────────────────────────── */
@media (max-width: 991.98px) {
    .sgd-fields-grid { grid-template-columns: 1fr; }
    .sgd-field--full { grid-column: 1; }
    .sgd-sidebar { position: static; }
}
@media (max-width: 575.98px) {
    .sgd-header { flex-direction: column; }
    .sgd-header-actions { width: 100%; }
}

/* ============================================
    SOGGETTI > EDIT PAGE STYLES
============================================ */

/* ── Variabili ──────────────────────────────────────────── */
/* ── Layout pagina ──────────────────────────────────────── */
.sge-page { padding: 2rem; }

/* ── Breadcrumb ─────────────────────────────────────────── */
.sge-breadcrumb {
    display: flex; align-items: center; gap: 0.4rem;
    font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem;
}
.sge-breadcrumb a { color: var(--cb-accent); text-decoration: none; font-weight: 500; }
.sge-breadcrumb a:hover { color: var(--cb-accent-hover); text-decoration: underline; }
.sge-breadcrumb .sge-sep { color: var(--cb-border); }
.sge-breadcrumb .sge-current { color: var(--cb-gray); font-weight: 500; }

/* ── Header ─────────────────────────────────────────────── */
.sge-header { margin-bottom: 1.5rem; }
.sge-header h1 {
    font-size: 1.45rem; font-weight: 700;
    color: var(--cb-dark); letter-spacing: -0.025em;
    margin: 0; display: flex; align-items: center; gap: 0.5rem;
}
.sge-header h1 svg { color: var(--cb-amber); flex-shrink: 0; }

/* ── Card ───────────────────────────────────────────────── */
.sge-card {
    background: var(--cb-white); border: 1px solid var(--cb-border);
    border-radius: 0; overflow: hidden; margin-bottom: 1rem;
}
.sge-card-header {
    position: relative; padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--cb-border);
    display: flex; align-items: center; gap: 0.75rem;
}
.sge-card-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
}
.sge-card-header--accent::before { background: var(--cb-accent); }
.sge-card-header--gray::before   { background: var(--cb-gray); }
.sge-card-header--green::before  { background: var(--cb-green); }
.sge-card-header--cyan::before   { background: var(--cb-cyan); }
.sge-card-header--amber::before  { background: var(--cb-amber); }
.sge-card-header--neutral::before{ background: var(--cb-border); }

.sge-icon-box {
    width: 34px; height: 34px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center; border: 1px solid;
}
.sge-icon-box--accent  { background: rgba(227,72,36,0.08);  border-color: rgba(227,72,36,0.15); }
.sge-icon-box--accent i  { color: var(--cb-accent); }
.sge-icon-box--gray    { background: rgba(107,114,128,0.08);border-color: rgba(107,114,128,0.15); }
.sge-icon-box--gray i    { color: var(--cb-gray); }
.sge-icon-box--green   { background: rgba(5,150,105,0.08);  border-color: rgba(5,150,105,0.15); }
.sge-icon-box--green i   { color: var(--cb-green); }
.sge-icon-box--cyan    { background: rgba(8,145,178,0.08);  border-color: rgba(8,145,178,0.15); }
.sge-icon-box--cyan i    { color: var(--cb-cyan); }
.sge-icon-box--amber   { background: rgba(217,119,6,0.08);  border-color: rgba(217,119,6,0.15); }
.sge-icon-box--amber i   { color: var(--cb-amber); }
.sge-icon-box--neutral { background: rgba(224,225,227,0.4); border-color: var(--cb-border); }
.sge-icon-box--neutral i { color: var(--cb-muted); }

.sge-card-title { font-size: 0.88rem; font-weight: 700; color: var(--cb-dark); margin: 0; }
.sge-card-body  { padding: 1.5rem; }

/* ── Form elementi ──────────────────────────────────────── */
.sge-form-label {
    font-size: 0.8rem; font-weight: 600; text-transform: uppercase;
    letter-spacing: 0.04em; color: var(--cb-dark);
    display: block; margin-bottom: 0.35rem;
}
.sge-form-control,
.sge-form-select {
    border: 1px solid var(--cb-border); font-size: 0.85rem;
    border-radius: 0; padding: 0.45rem 0.75rem;
    width: 100%; background: #fff; color: var(--cb-dark);
    transition: border-color 0.2s, box-shadow 0.2s;
}
.sge-form-control:focus,
.sge-form-select:focus {
    outline: none; border-color: var(--cb-accent);
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}
.sge-form-text {
    font-size: 0.72rem; color: var(--cb-muted); margin-top: 0.25rem; display: block;
}
.sge-validation { font-size: 0.72rem; color: var(--cb-danger); display: block; margin-top: 0.2rem; }

/* Input group (% suffix) */
.sge-input-group { display: flex; }
.sge-input-group .sge-form-control { border-right: none; }
.sge-input-group-text {
    background: var(--cb-light); border: 1px solid var(--cb-border);
    padding: 0.45rem 0.65rem; color: var(--cb-gray); font-size: 0.85rem;
    display: flex; align-items: center; flex-shrink: 0;
}

/* Textarea */
.sge-textarea {
    border: 1px solid var(--cb-border); font-size: 0.85rem;
    border-radius: 0; padding: 0.55rem 0.75rem;
    width: 100%; background: #fff; color: var(--cb-dark);
    resize: vertical; transition: border-color 0.2s, box-shadow 0.2s;
}
.sge-textarea:focus {
    outline: none; border-color: var(--cb-accent);
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}

/* Titoli sezione form */
.sge-section-title {
    font-size: 0.82rem; font-weight: 600; text-transform: uppercase;
    letter-spacing: 0.03em; color: var(--cb-gray);
    display: flex; align-items: center; gap: 0.4rem;
    margin-bottom: 0.75rem;
}
.sge-section-title i { color: var(--cb-accent); }

/* Separatore sezione */
.sge-sep { border-top: 1px solid var(--cb-light); margin: 1.25rem 0; }

/* Griglia form */
.sge-form-row { display: grid; gap: 0.85rem; }
.sge-form-row-3 { grid-template-columns: repeat(3, 1fr); }
.sge-form-row-2 { grid-template-columns: repeat(2, 1fr); }
.sge-form-row-4 { grid-template-columns: 1fr 1fr 1fr 1fr; }
.sge-form-row-addr { grid-template-columns: 130px 1fr 100px; }
.sge-form-row-addr2 { grid-template-columns: 2fr 100px 60px 90px; }
.sge-col-full { grid-column: 1 / -1; }
/* Pattern status row per toggle */
.sge-toggle-row {
    display: flex; align-items: center;
    justify-content: space-between; padding: 0.65rem 0;
    border-bottom: 1px solid var(--cb-light);
}
.sge-toggle-row:last-child { border-bottom: none; }
.sge-toggle-label { font-size: 0.85rem; font-weight: 600; color: var(--cb-dark); }
.sge-toggle-sub   { font-size: 0.72rem; color: var(--cb-muted); margin-top: 0.1rem; }

/* ── Alert validation ───────────────────────────────────── */
.sge-alert-danger {
    border-radius: 0; border: 1px solid var(--cb-border);
    border-left: 4px solid var(--cb-danger);
    background: rgba(220,38,38,0.04);
    padding: 0.85rem 1.25rem; font-size: 0.85rem;
    margin-bottom: 1.5rem; color: var(--cb-dark);
}

/* ── Card azioni bottom ─────────────────────────────────── */
.sge-actions-card {
    background: var(--cb-white); border: 1px solid var(--cb-border);
    border-radius: 0; padding: 1rem 1.5rem;
    display: flex; align-items: center;
    justify-content: space-between; gap: 1rem;
    flex-wrap: wrap; margin-top: 0.5rem;
}
.sge-actions-left { display: flex; align-items: center; gap: 0.5rem; }

/* Bottoni */
.sge-btn {
    padding: 0.5rem 1.25rem; font-weight: 600; font-size: 0.85rem;
    border-radius: 0; display: inline-flex; align-items: center;
    gap: 0.4rem; text-decoration: none; cursor: pointer;
    transition: background 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s;
    border: 2px solid;
}
.sge-btn-secondary {
    background: transparent; color: var(--cb-gray); border-color: var(--cb-border);
}
.sge-btn-secondary:hover { border-color: var(--cb-dark); color: var(--cb-dark); }
.sge-btn-amber {
    background: var(--cb-amber); color: #fff; border-color: var(--cb-amber);
}
.sge-btn-amber:hover {
    background: #b45309; border-color: #b45309; color: #fff;
    box-shadow: 0 2px 8px rgba(217,119,6,0.2);
}

/* ── Sidebar sticky ─────────────────────────────────────── */
.sge-sidebar { position: sticky; top: 72px; z-index: 10; }

/* ── Responsive ─────────────────────────────────────────── */
@media (max-width: 991.98px) {
    .sge-form-row-3    { grid-template-columns: repeat(2, 1fr); }
    .sge-form-row-4    { grid-template-columns: repeat(2, 1fr); }
    .sge-form-row-addr { grid-template-columns: 110px 1fr; }
    .sge-form-row-addr2{ grid-template-columns: 1fr 1fr; }
    .sge-sidebar       { position: static; }
}
@media (max-width: 575.98px) {
    .sge-form-row-3    { grid-template-columns: 1fr; }
    .sge-form-row-2    { grid-template-columns: 1fr; }
    .sge-form-row-addr { grid-template-columns: 1fr; }
    .sge-form-row-addr2{ grid-template-columns: 1fr; }
}

/* ============================================
    SOGGETTI > DELETE PAGE STYLES
============================================ */

/* ── Variabili ──────────────────────────────────────────── */
/* ── Layout pagina ──────────────────────────────────────── */
.sdel-page { padding: 2rem; }

/* ── Breadcrumb ─────────────────────────────────────────── */
.sdel-breadcrumb {
    display: flex; align-items: center; gap: 0.4rem;
    font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem;
}
.sdel-breadcrumb a { color: var(--cb-accent); text-decoration: none; font-weight: 500; }
.sdel-breadcrumb a:hover { color: var(--cb-accent-hover); text-decoration: underline; }
.sdel-breadcrumb .sdel-sep { color: var(--cb-border); }
.sdel-breadcrumb .sdel-current { color: var(--cb-gray); font-weight: 500; }

/* ── Header ─────────────────────────────────────────────── */
.sdel-header { margin-bottom: 1.5rem; }
.sdel-header h1 {
    font-size: 1.45rem; font-weight: 700;
    color: var(--cb-danger); letter-spacing: -0.025em;
    margin: 0; display: flex; align-items: center; gap: 0.5rem;
}

/* ── Alert principale (warning eliminazione) ────────────── */
.sdel-warning-alert {
    border-radius: 0;
    border: 1px solid rgba(220,38,38,0.2);
    border-left: 4px solid var(--cb-danger);
    background: rgba(220,38,38,0.04);
    padding: 1rem 1.25rem;
    font-size: 0.85rem;
    margin-bottom: 1.5rem;
    display: flex; align-items: flex-start; gap: 0.75rem;
}
.sdel-warning-alert-icon { color: var(--cb-danger); font-size: 1.2rem; flex-shrink: 0; margin-top: 0.1rem; }
.sdel-warning-alert-title { font-size: 0.88rem; font-weight: 700; color: var(--cb-danger); margin-bottom: 0.25rem; }
.sdel-warning-alert-body  { font-size: 0.85rem; color: var(--cb-dark); }

/* Alert errore TempData */
.sdel-alert-warn {
    border-radius: 0;
    border: 1px solid rgba(217,119,6,0.2);
    border-left: 4px solid var(--cb-amber);
    background: rgba(217,119,6,0.04);
    padding: 0.85rem 1.25rem; font-size: 0.85rem;
    display: flex; align-items: center; gap: 0.5rem;
    margin-bottom: 1.5rem; color: var(--cb-dark);
}
.sdel-alert-warn i { color: var(--cb-amber); flex-shrink: 0; }
.sdel-alert-close {
    margin-left: auto; background: none; border: none;
    color: var(--cb-muted); cursor: pointer; font-size: 1rem; padding: 0;
}
.sdel-alert-close:hover { color: var(--cb-dark); }

/* ── Card ───────────────────────────────────────────────── */
.sdel-card {
    background: var(--cb-white); border: 1px solid var(--cb-border);
    border-radius: 0; overflow: hidden; margin-bottom: 1rem;
}
.sdel-card-header {
    position: relative; padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--cb-border);
    display: flex; align-items: center; gap: 0.75rem;
}
.sdel-card-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
}
.sdel-card-header--danger::before  { background: var(--cb-danger); }
.sdel-card-header--neutral::before { background: var(--cb-border); }
.sdel-card-header--cyan::before    { background: var(--cb-cyan); }

.sdel-icon-box {
    width: 34px; height: 34px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center; border: 1px solid;
}
.sdel-icon-box--danger  { background: rgba(220,38,38,0.08);  border-color: rgba(220,38,38,0.15); }
.sdel-icon-box--danger i  { color: var(--cb-danger); }
.sdel-icon-box--neutral { background: rgba(224,225,227,0.4); border-color: var(--cb-border); }
.sdel-icon-box--neutral i { color: var(--cb-muted); }
.sdel-icon-box--cyan    { background: rgba(8,145,178,0.08);  border-color: rgba(8,145,178,0.15); }
.sdel-icon-box--cyan i    { color: var(--cb-cyan); }

.sdel-card-title { font-size: 0.88rem; font-weight: 700; color: var(--cb-dark); margin: 0; }
.sdel-card-body  { padding: 1.5rem; }

/* ── Griglia campi riepilogo ────────────────────────────── */
.sdel-fields-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.5rem;
}
.sdel-field {
    display: flex; flex-direction: column;
    padding: 0.6rem 0; border-bottom: 1px solid var(--cb-light);
}
.sdel-field:last-child { border-bottom: none; }
.sdel-field--full { grid-column: 1 / -1; }
.sdel-field-label {
    font-size: 0.68rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.04em; color: var(--cb-gray); margin-bottom: 0.2rem;
}
.sdel-field-value { font-size: 0.85rem; color: var(--cb-dark); font-weight: 500; }
.sdel-field-value--lg { font-size: 1rem; font-weight: 700; }
.sdel-field-empty { font-size: 0.85rem; color: var(--cb-muted); font-style: italic; }

.sdel-sep { border-top: 1px solid var(--cb-light); margin: 0.25rem 0; }

/* ── Badge ──────────────────────────────────────────────── */
.sdel-badge {
    display: inline-flex; align-items: center; gap: 0.25rem;
    padding: 0.22rem 0.6rem; font-size: 0.68rem; font-weight: 600;
    border: 1px solid; border-radius: 0;
    text-transform: uppercase; letter-spacing: 0.03em;
}
.sdel-badge-primary   { background: rgba(227,72,36,0.06);  color: var(--cb-accent);  border-color: rgba(227,72,36,0.2); }
.sdel-badge-info      { background: rgba(8,145,178,0.06);  color: var(--cb-cyan);    border-color: rgba(8,145,178,0.2); }
.sdel-badge-warn      { background: rgba(217,119,6,0.06);  color: var(--cb-amber);   border-color: rgba(217,119,6,0.2); }

/* ── Link contatti ──────────────────────────────────────── */
.sdel-link {
    color: var(--cb-gray); text-decoration: none; font-size: 0.85rem;
    display: inline-flex; align-items: center; gap: 0.3rem; transition: color 0.15s;
}
.sdel-link:hover { color: var(--cb-accent); }

/* ── Box informativo soft-delete ─────────────────────────── */
.sdel-info-box {
    background: rgba(8,145,178,0.04);
    border-left: 3px solid var(--cb-cyan);
    padding: 0.75rem 1rem; font-size: 0.82rem; color: var(--cb-dark);
    margin-bottom: 1rem;
}
.sdel-info-box-title {
    font-size: 0.75rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.04em; color: var(--cb-cyan); margin-bottom: 0.4rem;
    display: flex; align-items: center; gap: 0.3rem;
}
.sdel-info-list {
    list-style: none; padding: 0; margin: 0;
    display: flex; flex-direction: column; gap: 0.3rem;
}
.sdel-info-list li {
    display: flex; align-items: flex-start; gap: 0.4rem;
    font-size: 0.82rem; color: var(--cb-dark);
}
.sdel-info-list li i { color: var(--cb-cyan); flex-shrink: 0; margin-top: 0.1rem; }

/* ── Box nota relazioni ──────────────────────────────────── */
.sdel-note-box {
    background: rgba(217,119,6,0.04);
    border-left: 3px solid var(--cb-amber);
    padding: 0.65rem 0.85rem; font-size: 0.78rem; color: var(--cb-dark);
}
.sdel-note-box i { color: var(--cb-amber); margin-right: 0.3rem; }

/* ── Bottoni ────────────────────────────────────────────── */
.sdel-btn {
    padding: 0.55rem 1.25rem; font-weight: 600; font-size: 0.85rem;
    border-radius: 0; display: inline-flex; align-items: center;
    gap: 0.4rem; text-decoration: none; cursor: pointer;
    transition: background 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s;
    border: 2px solid; width: 100%; justify-content: center;
}
.sdel-btn-secondary {
    background: transparent; color: var(--cb-gray); border-color: var(--cb-border);
}
.sdel-btn-secondary:hover { border-color: var(--cb-dark); color: var(--cb-dark); }
.sdel-btn-danger {
    background: var(--cb-danger); color: #fff; border-color: var(--cb-danger);
}
.sdel-btn-danger:hover {
    background: #b91c1c; border-color: #b91c1c; color: #fff;
    box-shadow: 0 2px 8px rgba(220,38,38,0.25);
}
.sdel-btn-sm {
    padding: 0.4rem 1rem; font-size: 0.82rem;
}

/* ── Sidebar sticky ─────────────────────────────────────── */
.sdel-sidebar { position: sticky; top: 72px; z-index: 10; }

/* ── Responsive ─────────────────────────────────────────── */
@media (max-width: 991.98px) {
    .sdel-fields-grid { grid-template-columns: 1fr; }
    .sdel-field--full { grid-column: 1; }
    .sdel-sidebar { position: static; }
}
@media (max-width: 575.98px) {
    .sdel-header h1 { font-size: 1.2rem; }
}

/* ============================================
    TIPI DOCUMENTO > CREATE PAGE STYLES
============================================ */

/* ===== TipoDocumento Create — prefisso tdc- ===== */

.tdc-page { padding: 2rem; }

/* Breadcrumb */
.tdc-breadcrumb {
    display: flex; align-items: center; gap: 0.4rem;
    font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem;
}
.tdc-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.tdc-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.tdc-breadcrumb .tdc-sep { color: #e0e1e3; }
.tdc-breadcrumb .tdc-current { color: #6b7280; font-weight: 500; }

/* Page header */
.tdc-header { margin-bottom: 1.5rem; }
.tdc-title {
    font-size: 1.4rem; font-weight: 700; color: #151515;
    letter-spacing: -0.025em; margin: 0;
    display: flex; align-items: center; gap: 0.5rem;
}
.tdc-title svg { color: #E34824; flex-shrink: 0; }

/* Card */
.tdc-card {
    background: #fff; border: 1px solid #e0e1e3;
    border-radius: 0; overflow: hidden; margin-bottom: 1rem;
}
.tdc-card-header {
    position: relative; padding: 1rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex; align-items: center; gap: 0.75rem;
}
.tdc-card-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
}
.tdc-card-header--green::before  { background: #059669; }
.tdc-card-header--cyan::before   { background: #0891b2; }
.tdc-card-header--gray::before   { background: #6b7280; }

.tdc-icon-box {
    width: 34px; height: 34px;
    display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.tdc-icon-box--green { background: rgba(5,150,105,0.08);  border: 1px solid rgba(5,150,105,0.15); }
.tdc-icon-box--green i { color: #059669; }
.tdc-icon-box--cyan  { background: rgba(8,145,178,0.08);  border: 1px solid rgba(8,145,178,0.15); }
.tdc-icon-box--cyan i  { color: #0891b2; }
.tdc-icon-box--gray  { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); }
.tdc-icon-box--gray i  { color: #6b7280; }

.tdc-card-title { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; }
.tdc-card-body  { padding: 1.5rem 1.5rem 1.5rem 1.75rem; }
.tdc-card-body--sm { padding: 1rem 1.25rem; }

/* Form elements */
.tdc-form-label {
    display: block; font-size: 0.8rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.04em;
    color: #151515; margin-bottom: 0.4rem;
}
.tdc-required { color: #dc2626; margin-left: 0.2rem; }

.tdc-form-control,
.tdc-form-select {
    width: 100%; font-size: 0.85rem; color: #151515;
    border: 1px solid #e0e1e3; border-radius: 0;
    padding: 0.5rem 0.75rem; background: #fff;
    transition: border-color 0.2s, box-shadow 0.2s;
    appearance: auto;
}
.tdc-form-control:focus,
.tdc-form-select:focus {
    outline: none;
    border-color: #E34824;
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}
.tdc-form-control::placeholder { color: #9ca3af; }
textarea.tdc-form-control { resize: vertical; }

.tdc-form-text {
    display: block; font-size: 0.72rem;
    color: #9ca3af; margin-top: 0.3rem;
}
.tdc-validation {
    display: block; font-size: 0.72rem;
    color: #dc2626; margin-top: 0.25rem;
}

/* Section separator */
.tdc-sep-line { border-top: 1px solid #EEEFF0; margin: 1.5rem 0; }

/* Form footer */
.tdc-form-footer {
    display: flex; align-items: center;
    justify-content: space-between; gap: 0.5rem; flex-wrap: wrap;
}

/* Buttons */
.tdc-btn {
    display: inline-flex; align-items: center; gap: 0.4rem;
    padding: 0.55rem 1.25rem; font-size: 0.85rem; font-weight: 600;
    border: 2px solid transparent; cursor: pointer;
    text-decoration: none; border-radius: 0;
    transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.tdc-btn-green { background: #059669; color: #fff; border-color: #059669; }
.tdc-btn-green:hover { background: #047857; border-color: #047857; color: #fff; }
.tdc-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.tdc-btn-secondary:hover { border-color: #151515; color: #151515; }

/* Note box cyan */
.tdc-note-box {
    background: rgba(8,145,178,0.04);
    border-left: 3px solid #0891b2;
    padding: 0.65rem 0.85rem;
    font-size: 0.82rem; color: #151515;
}
.tdc-note-box p { margin: 0 0 0.4rem; }
.tdc-note-box p:last-child { margin: 0; }

/* Aree list */
.tdc-area-list { list-style: none; margin: 0; padding: 0; }
.tdc-area-item {
    display: flex; align-items: center; gap: 0.6rem;
    padding: 0.55rem 1.25rem; font-size: 0.82rem; color: #151515;
    border-bottom: 1px solid #EEEFF0;
}
.tdc-area-item:last-child { border-bottom: none; }
.tdc-area-item i { color: #E34824; font-size: 0.9rem; flex-shrink: 0; }

/* Sidebar sticky */
.tdc-sidebar { position: sticky; top: 72px; z-index: 10; }

/* Validation summary */
.tdc-validation-summary {
    display: flex; align-items: flex-start; gap: 0.5rem;
    padding: 0.85rem 1.25rem; margin-bottom: 1.25rem;
    border: 1px solid rgba(220,38,38,0.2);
    border-left: 4px solid #dc2626;
    background: rgba(220,38,38,0.04);
    font-size: 0.85rem; color: #151515;
    border-radius: 0;
}
.tdc-validation-summary i { color: #dc2626; flex-shrink: 0; margin-top: 0.1rem; }
.tdc-validation-summary ul { margin: 0; padding-left: 1.2rem; }

/* Responsive */
@media (max-width: 991.98px) {
    .tdc-sidebar { position: static; }
}
@media (max-width: 575.98px) {
    .tdc-page { padding: 1rem; }
    .tdc-form-footer { flex-direction: column-reverse; }
    .tdc-btn { width: 100%; justify-content: center; }
}

/* ============================================
    TIPI DOCUMENTO > DETAILS PAGE STYLES
============================================ */

.tdet-page {
    padding: 2rem;
}

/* Breadcrumb */
.tdet-breadcrumb {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    flex-wrap: wrap;
    margin-bottom: 1.5rem;
}
.tdet-breadcrumb a {
    color: #E34824;
    text-decoration: none;
    font-weight: 500;
}
.tdet-breadcrumb a:hover {
    color: #c93d1e;
    text-decoration: underline;
}
.tdet-breadcrumb .tdet-sep { color: #e0e1e3; }
.tdet-breadcrumb .tdet-current { color: #6b7280; font-weight: 500; }

/* Page header */
.tdet-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
}
.tdet-title {
    font-size: 1.4rem;
    font-weight: 700;
    color: #151515;
    letter-spacing: -0.025em;
    margin: 0 0 0.5rem 0;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.tdet-title svg { color: #E34824; flex-shrink: 0; }
.tdet-subtitle { display: flex; align-items: center; gap: 0.4rem; flex-wrap: wrap; }

/* Alert */
.tdet-alert {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 0.85rem 1.25rem;
    border: 1px solid #e0e1e3;
    border-radius: 0;
    font-size: 0.85rem;
    margin-bottom: 1rem;
}
.tdet-alert-success {
    border-left: 4px solid #059669;
    background: rgba(5,150,105,0.05);
    color: #151515;
}
.tdet-alert-success i { color: #059669; }
.tdet-alert-danger {
    border-left: 4px solid #dc2626;
    background: rgba(220,38,38,0.04);
    color: #151515;
}
.tdet-alert-danger i { color: #dc2626; }
.tdet-alert-close {
    margin-left: auto;
    background: none;
    border: none;
    cursor: pointer;
    color: #6b7280;
    padding: 0;
    font-size: 1rem;
    line-height: 1;
    flex-shrink: 0;
}
.tdet-alert-close:hover { color: #151515; }

/* Buttons */
.tdet-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.55rem 1.25rem;
    font-size: 0.85rem;
    font-weight: 600;
    border: 2px solid transparent;
    cursor: pointer;
    text-decoration: none;
    border-radius: 0;
    transition: background 0.2s, border-color 0.2s, box-shadow 0.2s, color 0.2s;
}
.tdet-btn-amber {
    background: #d97706; color: #fff; border-color: #d97706;
}
.tdet-btn-amber:hover {
    background: #b45309; border-color: #b45309; color: #fff;
}
.tdet-btn-danger {
    background: #dc2626; color: #fff; border-color: #dc2626;
}
.tdet-btn-danger:hover {
    background: #b91c1c; border-color: #b91c1c; color: #fff;
}
.tdet-btn-secondary {
    background: transparent; color: #6b7280; border-color: #e0e1e3;
}
.tdet-btn-secondary:hover {
    border-color: #151515; color: #151515;
}
.tdet-btn-outline-sm {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.4rem 0.8rem;
    font-size: 0.82rem;
    font-weight: 600;
    border-radius: 0;
    text-decoration: none;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.tdet-btn-outline-sm-accent {
    border: 1px solid rgba(227,72,36,0.2);
    color: #E34824;
    background: transparent;
}
.tdet-btn-outline-sm-accent:hover {
    background: rgba(227,72,36,0.04);
    border-color: #E34824;
    color: #E34824;
}
.tdet-btn-outline-sm-gray {
    border: 1px solid rgba(107,114,128,0.2);
    color: #6b7280;
    background: transparent;
}
.tdet-btn-outline-sm-gray:hover {
    background: rgba(107,114,128,0.04);
    border-color: #6b7280;
    color: #151515;
}
.tdet-btn-outline-sm-danger {
    border: 1px solid rgba(220,38,38,0.2);
    color: #dc2626;
    background: transparent;
}
.tdet-btn-outline-sm-danger:hover {
    background: rgba(220,38,38,0.04);
    border-color: #dc2626;
    color: #dc2626;
}

/* Header buttons group */
.tdet-actions { display: flex; gap: 0.5rem; flex-wrap: wrap; align-items: center; }

/* Card */
.tdet-card {
    background: #fff;
    border: 1px solid #e0e1e3;
    border-radius: 0;
    overflow: hidden;
    margin-bottom: 1rem;
}
.tdet-card-header {
    position: relative;
    padding: 1rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}
.tdet-card-header::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
}
.tdet-card-header--accent::before { background: #E34824; }
.tdet-card-header--amber::before  { background: #d97706; }
.tdet-card-header--gray::before   { background: #6b7280; }
.tdet-card-header--neutral::before { background: #e0e1e3; }

.tdet-icon-box {
    width: 34px; height: 34px;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.tdet-icon-box--accent {
    background: rgba(227,72,36,0.08);
    border: 1px solid rgba(227,72,36,0.15);
}
.tdet-icon-box--accent i { color: #E34824; }
.tdet-icon-box--amber {
    background: rgba(217,119,6,0.08);
    border: 1px solid rgba(217,119,6,0.15);
}
.tdet-icon-box--amber i { color: #d97706; }
.tdet-icon-box--gray {
    background: rgba(107,114,128,0.08);
    border: 1px solid rgba(107,114,128,0.15);
}
.tdet-icon-box--gray i { color: #6b7280; }
.tdet-icon-box--neutral {
    background: rgba(224,225,227,0.3);
    border: 1px solid #e0e1e3;
}
.tdet-icon-box--neutral i { color: #6b7280; }

.tdet-card-title {
    font-size: 0.9rem;
    font-weight: 700;
    color: #151515;
    margin: 0;
}
.tdet-card-body { padding: 1.5rem 1.5rem 1.5rem 1.75rem; }
.tdet-card-body--sm { padding: 1rem 1.5rem 1rem 1.75rem; }

/* Fields */
.tdet-fields-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 1.5rem;
}
.tdet-field {
    display: flex;
    flex-direction: column;
    padding: 0.6rem 0;
    border-bottom: 1px solid #EEEFF0;
}
.tdet-field--full { grid-column: 1 / -1; }
.tdet-field:last-child { border-bottom: none; }
.tdet-field-label {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6b7280;
    margin-bottom: 0.2rem;
}
.tdet-field-value {
    font-size: 0.85rem;
    color: #151515;
    font-weight: 500;
}
.tdet-field-empty {
    font-size: 0.85rem;
    color: #9ca3af;
    font-style: italic;
}
.tdet-field-sub {
    font-size: 0.72rem;
    color: #9ca3af;
    margin-top: 0.15rem;
}

/* Badge */
.tdet-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.25rem 0.65rem;
    font-size: 0.68rem;
    font-weight: 600;
    border-radius: 0;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}
.tdet-badge-secondary {
    background: rgba(107,114,128,0.06);
    color: #6b7280;
    border: 1px solid rgba(107,114,128,0.2);
}
.tdet-badge-info {
    background: rgba(8,145,178,0.06);
    color: #0891b2;
    border: 1px solid rgba(8,145,178,0.2);
}

/* Docs count badge (large) */
.tdet-doc-count {
    font-size: 1.5rem;
    font-weight: 700;
    color: #E34824;
    line-height: 1;
}

/* Warning box */
.tdet-warning-box {
    background: rgba(217,119,6,0.04);
    border-left: 3px solid #d97706;
    padding: 0.6rem 0.85rem;
    font-size: 0.85rem;
    color: #151515;
    margin-bottom: 0.75rem;
}
.tdet-warning-box:last-child { margin-bottom: 0; }
.tdet-warning-box strong { color: #d97706; }
.tdet-warning-box .tdet-warning-sub {
    font-size: 0.78rem;
    color: #6b7280;
    margin-top: 0.2rem;
}

/* Separator */
.tdet-sep-line {
    border-top: 1px solid #EEEFF0;
    margin: 1rem 0;
}

/* Sidebar sticky */
.tdet-sidebar {
    position: sticky;
    top: 72px;
    z-index: 10;
}

/* Audit rows */
.tdet-audit-row {
    display: flex;
    flex-direction: column;
    padding: 0.6rem 0;
    border-bottom: 1px solid #EEEFF0;
}
.tdet-audit-row:last-child { border-bottom: none; }
.tdet-audit-label {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6b7280;
    margin-bottom: 0.15rem;
}
.tdet-audit-value {
    font-size: 0.82rem;
    color: #151515;
    font-weight: 500;
}
.tdet-audit-by {
    font-size: 0.72rem;
    color: #9ca3af;
}

/* ===== Responsive ===== */
@media (max-width: 991.98px) {
    .tdet-sidebar { position: static; }
    .tdet-fields-grid { grid-template-columns: 1fr; }
    .tdet-field--full { grid-column: 1; }
}
@media (max-width: 575.98px) {
    .tdet-page { padding: 1rem; }
    .tdet-header { flex-direction: column; align-items: flex-start; }
    .tdet-actions { width: 100%; }
    .tdet-btn { width: 100%; justify-content: center; }
}

/* ============================================
    TIPI DOCUMENTO > EDIT PAGE STYLES
============================================ */

.tde-breadcrumb {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    flex-wrap: wrap;
    margin-bottom: 1.5rem;
}
.tde-breadcrumb a {
    color: #E34824;
    text-decoration: none;
    font-weight: 500;
}
.tde-breadcrumb a:hover {
    color: #c93d1e;
    text-decoration: underline;
}
.tde-breadcrumb .tde-sep { color: #e0e1e3; }
.tde-breadcrumb .tde-current { color: #6b7280; font-weight: 500; }

/* Page header */
.tde-page-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem;
}
.tde-page-title {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    font-size: 1.4rem;
    font-weight: 700;
    color: #151515;
    letter-spacing: -0.025em;
    margin: 0;
}
.tde-page-title svg { color: #E34824; flex-shrink: 0; }
.tde-page-subtitle {
    font-size: 0.85rem;
    color: #6b7280;
    margin: 0.25rem 0 0 0;
}

/* Alerts */
.tde-alert {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 0.85rem 1.25rem;
    font-size: 0.85rem;
    border-radius: 0;
    border: 1px solid #e0e1e3;
    margin-bottom: 1rem;
}
.tde-alert-warning {
    border-left: 4px solid #d97706;
    background: rgba(217,119,6,0.04);
    color: #151515;
}
.tde-alert-warning i { color: #d97706; flex-shrink: 0; margin-top: 2px; }
.tde-alert-info {
    border-left: 4px solid #0891b2;
    background: rgba(8,145,178,0.04);
    color: #151515;
}
.tde-alert-info i { color: #0891b2; flex-shrink: 0; margin-top: 2px; }
.tde-alert-danger {
    border-left: 4px solid #dc2626;
    background: rgba(220,38,38,0.04);
    color: #151515;
}
.tde-alert-danger i { color: #dc2626; flex-shrink: 0; margin-top: 2px; }

/* Card */
.tde-card {
    background: #fff;
    border: 1px solid #e0e1e3;
    border-radius: 0;
    overflow: hidden;
    margin-bottom: 1.25rem;
}
.tde-card-header {
    position: relative;
    padding: 1rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}
.tde-card-header::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
}
.tde-card-header--amber::before { background: #d97706; }
.tde-card-header--gray::before  { background: #6b7280; }
.tde-card-header--cyan::before  { background: #0891b2; }

.tde-icon-box {
    width: 34px; height: 34px;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.tde-icon-box--amber {
    background: rgba(217,119,6,0.08);
    border: 1px solid rgba(217,119,6,0.15);
}
.tde-icon-box--amber i { color: #d97706; }
.tde-icon-box--gray {
    background: rgba(107,114,128,0.08);
    border: 1px solid rgba(107,114,128,0.15);
}
.tde-icon-box--gray i { color: #6b7280; }
.tde-icon-box--cyan {
    background: rgba(8,145,178,0.08);
    border: 1px solid rgba(8,145,178,0.15);
}
.tde-icon-box--cyan i { color: #0891b2; }

.tde-card-title {
    font-size: 0.88rem;
    font-weight: 700;
    color: #151515;
    margin: 0;
}
.tde-card-body { padding: 1.5rem 1.5rem 1.5rem 1.75rem; }

/* Form elements */
.tde-section-label {
    font-size: 0.82rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #6b7280;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.75rem;
}
.tde-section-label i { color: #E34824; }

.tde-form-label {
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #151515;
    margin-bottom: 0.35rem;
    display: block;
}
.tde-required { color: #dc2626; }

.tde-form-control {
    border: 1px solid #e0e1e3;
    border-radius: 0;
    font-size: 0.85rem;
    padding: 0.5rem 0.75rem;
    color: #151515;
    width: 100%;
    background: #fff;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.tde-form-control:focus {
    outline: none;
    border-color: #E34824;
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}
.tde-form-control[readonly],
.tde-form-control--readonly {
    background: #EEEFF0;
    color: #6b7280;
}
.tde-form-control--locked {
    background: #EEEFF0;
    border: 1px solid #e0e1e3;
    padding: 0.5rem 0.75rem;
    font-size: 0.85rem;
    color: #6b7280;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.tde-form-text {
    font-size: 0.72rem;
    color: #9ca3af;
    margin-top: 0.25rem;
    display: block;
}
.tde-validation { font-size: 0.72rem; color: #dc2626; margin-top: 0.2rem; display: block; }

.tde-field { margin-bottom: 0.85rem; }

.tde-separator {
    border: 0;
    border-top: 1px solid #EEEFF0;
    margin: 1.5rem 0;
}

/* Buttons */
.tde-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.55rem 1.5rem;
    font-size: 0.85rem;
    font-weight: 600;
    border-radius: 0;
    border: 2px solid transparent;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.2s, border-color 0.2s, box-shadow 0.2s, color 0.2s;
    white-space: nowrap;
}
.tde-btn-secondary {
    background: transparent;
    color: #6b7280;
    border-color: #e0e1e3;
}
.tde-btn-secondary:hover {
    border-color: #151515;
    color: #151515;
    text-decoration: none;
}
.tde-btn-amber {
    background: #d97706;
    color: #fff;
    border-color: #d97706;
}
.tde-btn-amber:hover {
    background: #b45309;
    border-color: #b45309;
    box-shadow: 0 2px 8px rgba(217,119,6,0.2);
    color: #fff;
}
.tde-btn-outline-danger {
    background: transparent;
    color: #dc2626;
    border: 1px solid rgba(220,38,38,0.2);
    padding: 0.4rem 0.8rem;
    font-size: 0.82rem;
}
.tde-btn-outline-danger:hover {
    background: rgba(220,38,38,0.04);
    border-color: #dc2626;
    color: #dc2626;
    text-decoration: none;
}
.tde-btn-outline-cyan {
    background: transparent;
    color: #0891b2;
    border: 1px solid rgba(8,145,178,0.2);
    padding: 0.4rem 0.8rem;
    font-size: 0.82rem;
}
.tde-btn-outline-cyan:hover {
    background: rgba(8,145,178,0.04);
    border-color: #0891b2;
    color: #0891b2;
    text-decoration: none;
}
.tde-btn-outline-gray {
    background: transparent;
    color: #6b7280;
    border: 1px solid rgba(107,114,128,0.2);
    padding: 0.4rem 0.8rem;
    font-size: 0.82rem;
}
.tde-btn-outline-gray:hover {
    background: rgba(107,114,128,0.04);
    border-color: #6b7280;
    color: #6b7280;
    text-decoration: none;
}

.tde-btn-actions { display: flex; gap: 0.5rem; justify-content: space-between; align-items: center; }

/* Sidebar actions */
.tde-sidebar-actions { display: flex; flex-direction: column; gap: 0.5rem; }

/* Info rows */
.tde-info-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.55rem 0;
    border-bottom: 1px solid #EEEFF0;
    font-size: 0.85rem;
}
.tde-info-row:last-child { border-bottom: none; }
.tde-info-label { color: #6b7280; font-size: 0.82rem; }

/* Badges */
.tde-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.25rem 0.65rem;
    font-size: 0.68rem;
    font-weight: 600;
    border-radius: 0;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    border: 1px solid;
}
.tde-badge-secondary {
    background: rgba(107,114,128,0.06);
    color: #6b7280;
    border-color: rgba(107,114,128,0.2);
}
.tde-badge-info {
    background: rgba(8,145,178,0.06);
    color: #0891b2;
    border-color: rgba(8,145,178,0.2);
}
.tde-badge-success {
    background: rgba(5,150,105,0.06);
    color: #059669;
    border-color: rgba(5,150,105,0.2);
}
.tde-badge-danger {
    background: rgba(220,38,38,0.06);
    color: #dc2626;
    border-color: rgba(220,38,38,0.2);
}
.tde-badge-system {
    background: rgba(21,21,21,0.06);
    color: #151515;
    border-color: rgba(21,21,21,0.2);
}

/* Sticky sidebar */
.tde-sidebar {
    position: sticky;
    top: 72px;
    z-index: 10;
}

@media (max-width: 991.98px) {
    .tde-sidebar { position: static; }
    .tde-page-header { flex-direction: column; align-items: flex-start; gap: 0.75rem; }
}
.tde-page { padding: 2rem; }
@media (max-width: 575.98px) { .tde-page { padding: 1rem; } }

/* ============================================
    TIPI DOCUMENTO > DELETE PAGE STYLES
============================================ */

.tdd-page { padding: 2rem; }

/* Breadcrumb */
.tdd-breadcrumb {
    display: flex; align-items: center; gap: 0.4rem;
    font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem;
}
.tdd-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.tdd-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.tdd-breadcrumb .tdd-sep { color: #e0e1e3; }
.tdd-breadcrumb .tdd-current { color: #6b7280; font-weight: 500; }

/* Page header */
.tdd-header {
    margin-bottom: 1.5rem;
}
.tdd-title {
    font-size: 1.4rem; font-weight: 700; color: #dc2626;
    letter-spacing: -0.025em; margin: 0;
    display: flex; align-items: center; gap: 0.5rem;
}

/* Alert */
.tdd-alert {
    display: flex; align-items: flex-start; gap: 0.5rem;
    padding: 0.85rem 1.25rem; border: 1px solid #e0e1e3;
    border-radius: 0; font-size: 0.85rem; margin-bottom: 1rem;
}
.tdd-alert-danger {
    border-left: 4px solid #dc2626; background: rgba(220,38,38,0.04); color: #151515;
}
.tdd-alert-danger i { color: #dc2626; flex-shrink: 0; }
.tdd-alert-close {
    margin-left: auto; background: none; border: none; cursor: pointer;
    color: #6b7280; padding: 0; font-size: 1rem; line-height: 1; flex-shrink: 0;
}
.tdd-alert-close:hover { color: #151515; }

/* Card */
.tdd-card {
    background: #fff; border: 1px solid #e0e1e3;
    border-radius: 0; overflow: hidden; margin-bottom: 1rem;
}
.tdd-card-header {
    position: relative; padding: 1rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex; align-items: center; gap: 0.75rem;
}
.tdd-card-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
}
.tdd-card-header--danger::before  { background: #dc2626; }
.tdd-card-header--amber::before   { background: #d97706; }
.tdd-card-header--cyan::before    { background: #0891b2; }
.tdd-card-header--gray::before    { background: #6b7280; }

.tdd-icon-box {
    width: 34px; height: 34px;
    display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.tdd-icon-box--danger  { background: rgba(220,38,38,0.08);  border: 1px solid rgba(220,38,38,0.15); }
.tdd-icon-box--danger i  { color: #dc2626; }
.tdd-icon-box--amber   { background: rgba(217,119,6,0.08);  border: 1px solid rgba(217,119,6,0.15); }
.tdd-icon-box--amber i   { color: #d97706; }
.tdd-icon-box--cyan    { background: rgba(8,145,178,0.08);  border: 1px solid rgba(8,145,178,0.15); }
.tdd-icon-box--cyan i    { color: #0891b2; }
.tdd-icon-box--gray    { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); }
.tdd-icon-box--gray i    { color: #6b7280; }

.tdd-card-title { font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0; }
.tdd-card-body  { padding: 1.5rem 1.5rem 1.5rem 1.75rem; }
.tdd-card-body--sm { padding: 1rem 1.25rem 1rem 1.5rem; }

/* Blocco non eliminabile */
.tdd-block-box {
    display: flex; align-items: flex-start; gap: 0.75rem;
    padding: 1rem 1.25rem;
    border: 1px solid rgba(220,38,38,0.2);
    border-left: 4px solid #dc2626;
    background: rgba(220,38,38,0.04);
    margin-bottom: 1.25rem;
}
.tdd-block-box i { color: #dc2626; font-size: 1.25rem; flex-shrink: 0; margin-top: 0.1rem; }
.tdd-block-title { font-size: 0.9rem; font-weight: 700; color: #dc2626; margin-bottom: 0.25rem; }
.tdd-block-text  { font-size: 0.85rem; color: #151515; margin: 0; }

/* Warning box (avviso irreversibile) */
.tdd-warning-box {
    display: flex; align-items: flex-start; gap: 0.5rem;
    background: rgba(217,119,6,0.04);
    border-left: 3px solid #d97706;
    padding: 0.65rem 0.85rem;
    font-size: 0.85rem; color: #151515;
    margin-bottom: 1.25rem;
}
.tdd-warning-box i { color: #d97706; flex-shrink: 0; margin-top: 0.1rem; }

/* Campi riepilogo */
.tdd-field {
    display: flex; padding: 0.6rem 0;
    border-bottom: 1px solid #EEEFF0;
}
.tdd-field:last-child { border-bottom: none; }
.tdd-field-label {
    font-size: 0.68rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.04em; color: #6b7280;
    width: 130px; flex-shrink: 0; padding-top: 0.1rem;
}
.tdd-field-value { font-size: 0.85rem; color: #151515; font-weight: 500; flex: 1; }

/* Badge */
.tdd-badge {
    display: inline-flex; align-items: center; gap: 0.25rem;
    padding: 0.25rem 0.65rem; font-size: 0.68rem; font-weight: 600;
    border-radius: 0; text-transform: uppercase; letter-spacing: 0.03em;
}
.tdd-badge-info {
    background: rgba(8,145,178,0.06); color: #0891b2;
    border: 1px solid rgba(8,145,178,0.2);
}
.tdd-badge-secondary {
    background: rgba(107,114,128,0.06); color: #6b7280;
    border: 1px solid rgba(107,114,128,0.2);
}

/* Buttons */
.tdd-btn {
    display: inline-flex; align-items: center; gap: 0.4rem;
    padding: 0.55rem 1.25rem; font-size: 0.85rem; font-weight: 600;
    border: 2px solid transparent; cursor: pointer;
    text-decoration: none; border-radius: 0;
    transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.tdd-btn-danger  { background: #dc2626; color: #fff; border-color: #dc2626; }
.tdd-btn-danger:hover  { background: #b91c1c; border-color: #b91c1c; color: #fff; }
.tdd-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.tdd-btn-secondary:hover { border-color: #151515; color: #151515; }

.tdd-btn-outline-sm {
    display: inline-flex; align-items: center; gap: 0.35rem;
    padding: 0.4rem 0.8rem; font-size: 0.82rem; font-weight: 600;
    border-radius: 0; text-decoration: none;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.tdd-btn-outline-sm-amber {
    border: 1px solid rgba(217,119,6,0.2); color: #d97706; background: transparent;
}
.tdd-btn-outline-sm-amber:hover { background: rgba(217,119,6,0.04); border-color: #d97706; color: #d97706; }
.tdd-btn-outline-sm-gray {
    border: 1px solid rgba(107,114,128,0.2); color: #6b7280; background: transparent;
}
.tdd-btn-outline-sm-gray:hover { background: rgba(107,114,128,0.04); border-color: #6b7280; color: #151515; }

/* Form footer (bottoni affiancati) */
.tdd-form-footer {
    display: flex; align-items: center; justify-content: space-between;
    gap: 0.5rem; padding-top: 1.25rem;
    border-top: 1px solid #EEEFF0; flex-wrap: wrap;
}

/* Info list sidebar */
.tdd-info-list { list-style: none; margin: 0; padding: 0; }
.tdd-info-list li {
    display: flex; align-items: flex-start; gap: 0.5rem;
    font-size: 0.82rem; color: #6b7280;
    padding: 0.45rem 0; border-bottom: 1px solid #EEEFF0;
}
.tdd-info-list li:last-child { border-bottom: none; }
.tdd-info-list li::before {
    content: ''; width: 5px; height: 5px;
    background: #e0e1e3; border-radius: 50%;
    flex-shrink: 0; margin-top: 0.45rem;
}

/* Cyan note box */
.tdd-note-box {
    background: rgba(8,145,178,0.04);
    border-left: 3px solid #0891b2;
    padding: 0.65rem 0.85rem;
    font-size: 0.82rem; color: #151515;
}
.tdd-note-box p { margin: 0 0 0.4rem; }
.tdd-note-box p:last-child { margin: 0; }
.tdd-note-list { list-style: none; margin: 0; padding: 0; }
.tdd-note-list li {
    font-size: 0.82rem; color: #6b7280;
    padding: 0.2rem 0; display: flex; align-items: flex-start; gap: 0.4rem;
}
.tdd-note-list li::before {
    content: '›'; color: #0891b2; font-weight: 700; flex-shrink: 0;
}

/* Sidebar sticky */
.tdd-sidebar { position: sticky; top: 72px; z-index: 10; }

/* Responsive */
@media (max-width: 991.98px) {
    .tdd-sidebar { position: static; }
}
@media (max-width: 575.98px) {
    .tdd-page { padding: 1rem; }
    .tdd-form-footer { flex-direction: column-reverse; }
    .tdd-btn { width: 100%; justify-content: center; }
    .tdd-field { flex-direction: column; }
    .tdd-field-label { width: auto; }
}

/* ============================================
    TIPI SCADENZA MEZZO > CREA PAGE STYLES
============================================ */

.tsmc-page {
    padding: 2rem;
}

@media (max-width: 575.98px) {
    .tsmc-page {
        padding: 1rem;
    }
}

/* Breadcrumb */
.tsmc-breadcrumb {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    flex-wrap: wrap;
    margin-bottom: 1.5rem;
}

.tsmc-breadcrumb a {
    color: #E34824;
    text-decoration: none;
    font-weight: 500;
}

.tsmc-breadcrumb a:hover {
    color: #c93d1e;
    text-decoration: underline;
}

.tsmc-breadcrumb .tsmc-sep {
    color: #e0e1e3;
}

.tsmc-breadcrumb .tsmc-current {
    color: #6b7280;
    font-weight: 500;
}

/* Page header */
.tsmc-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
}

.tsmc-header-left {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.tsmc-header-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.tsmc-title {
    font-size: 1.4rem;
    font-weight: 700;
    color: #151515;
    letter-spacing: -0.025em;
    margin: 0;
    line-height: 1.2;
}

.tsmc-subtitle {
    font-size: 0.85rem;
    color: #6b7280;
    margin: 0.15rem 0 0;
}

/* Card */
.tsmc-card {
    background: #fff;
    border: 1px solid #e0e1e3;
    border-radius: 0;
    overflow: hidden;
    margin-bottom: 1.5rem;
}

.tsmc-card-header {
    position: relative;
    padding: 1rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.tsmc-card-header::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: #E34824;
}

.tsmc-card-header--amber::before {
    background: #d97706;
}

.tsmc-card-header--cyan::before {
    background: #0891b2;
}

.tsmc-card-header--green::before {
    background: #059669;
}

.tsmc-icon-box {
    width: 34px;
    height: 34px;
    background: rgba(227, 72, 36, 0.08);
    border: 1px solid rgba(227, 72, 36, 0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.tsmc-icon-box--amber {
    background: rgba(217, 119, 6, 0.08);
    border-color: rgba(217, 119, 6, 0.15);
}

.tsmc-icon-box--cyan {
    background: rgba(8, 145, 178, 0.08);
    border-color: rgba(8, 145, 178, 0.15);
}

.tsmc-icon-box--green {
    background: rgba(5, 150, 105, 0.08);
    border-color: rgba(5, 150, 105, 0.15);
}

.tsmc-card-title {
    font-size: 0.9rem;
    font-weight: 700;
    color: #151515;
    margin: 0;
}

.tsmc-card-body {
    padding: 1.5rem 1.5rem 1.5rem 1.75rem;
}

/* Form section titles */
.tsmc-section-title {
    font-size: 0.82rem;
    font-weight: 600;
    color: #6b7280;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.75rem;
}

.tsmc-section-title i {
    color: #E34824;
    font-size: 0.9rem;
}

.tsmc-separator {
    border-top: 1px solid #EEEFF0;
    margin: 1.5rem 0;
}

/* Form labels */
.tsmc-label {
    display: block;
    font-size: 0.8rem;
    font-weight: 600;
    color: #151515;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 0.35rem;
}

/* Form controls override */
.tsmc-page .form-control,
.tsmc-page .form-select {
    border: 1px solid #e0e1e3;
    border-radius: 0;
    font-size: 0.85rem;
    color: #151515;
}

.tsmc-page .form-control:focus,
.tsmc-page .form-select:focus {
    border-color: #E34824;
    box-shadow: 0 0 0 0.2rem rgba(227, 72, 36, 0.12);
}

.tsmc-page .input-group-text {
    background: #EEEFF0;
    border: 1px solid #e0e1e3;
    border-radius: 0;
    color: #6b7280;
    font-size: 0.82rem;
    font-weight: 500;
}

.tsmc-form-text {
    font-size: 0.72rem;
    color: #9ca3af;
    margin-top: 0.3rem;
    display: block;
}

.tsmc-validation {
    font-size: 0.72rem;
    color: #dc2626;
    margin-top: 0.25rem;
    display: block;
}

/* Info box */
.tsmc-info-box {
    background: rgba(8, 145, 178, 0.04);
    border-left: 3px solid #0891b2;
    padding: 0.6rem 0.85rem;
    font-size: 0.82rem;
    color: #6b7280;
    margin-bottom: 1rem;
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
}

.tsmc-info-box i {
    color: #0891b2;
    flex-shrink: 0;
    margin-top: 0.1rem;
}

/* Toggle switch override */
.tsmc-page .form-switch .form-check-input {
    border-radius: 0 !important;
    border: 1px solid #e0e1e3;
    background-color: #e0e1e3;
    width: 44px;
    height: 24px;
    transition: background-color 0.2s, border-color 0.2s;
    cursor: pointer;
}

.tsmc-page .form-switch .form-check-input:checked {
    background-color: #059669;
    border-color: #059669;
}

.tsmc-page .form-switch .form-check-input:focus {
    box-shadow: 0 0 0 0.2rem rgba(227, 72, 36, 0.12);
    border-color: #E34824;
}

.tsmc-toggle-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem 0;
}

.tsmc-toggle-label {
    font-size: 0.85rem;
    font-weight: 600;
    color: #151515;
}

.tsmc-toggle-sub {
    font-size: 0.72rem;
    color: #9ca3af;
    margin-top: 0.1rem;
}

/* Alert validation summary */
.tsmc-alert-danger {
    border-radius: 0;
    border: 1px solid #e0e1e3;
    border-left: 4px solid #dc2626;
    background: rgba(220, 38, 38, 0.04);
    padding: 0.85rem 1.25rem;
    font-size: 0.85rem;
    color: #dc2626;
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin-bottom: 1.25rem;
}

/* Buttons */
.tsmc-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.55rem 1.5rem;
    font-size: 0.85rem;
    font-weight: 600;
    border-radius: 0;
    border: 2px solid transparent;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s;
    white-space: nowrap;
}

.tsmc-btn-secondary {
    background: transparent;
    color: #6b7280;
    border-color: #e0e1e3;
}

.tsmc-btn-secondary:hover {
    border-color: #151515;
    color: #151515;
    text-decoration: none;
}

.tsmc-btn-green {
    background: #059669;
    color: #fff;
    border-color: #059669;
}

.tsmc-btn-green:hover {
    background: #047857;
    border-color: #047857;
    box-shadow: 0 2px 8px rgba(5, 150, 105, 0.2);
    color: #fff;
}

.tsmc-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    flex-wrap: wrap;
    padding-top: 0.5rem;
}

/* Responsive */
@media (max-width: 991.98px) {
    .tsmc-header {
        flex-direction: column;
        gap: 0.75rem;
    }
}

@media (max-width: 575.98px) {
    .tsmc-card-body {
        padding: 1rem 1rem 1rem 1.25rem;
    }

    .tsmc-footer {
        flex-direction: column-reverse;
    }

    .tsmc-btn {
        width: 100%;
        justify-content: center;
    }
}

/* ============================================
    TIPI SCADENZA MEZZO > EDIT PAGE STYLES
============================================ */

.tsme-page {
    padding: 2rem;
}

@media (max-width: 575.98px) {
    .tsme-page {
        padding: 1rem;
    }
}

/* Breadcrumb */
.tsme-breadcrumb {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    flex-wrap: wrap;
    margin-bottom: 1.5rem;
}

.tsme-breadcrumb a {
    color: #E34824;
    text-decoration: none;
    font-weight: 500;
}

.tsme-breadcrumb a:hover {
    color: #c93d1e;
    text-decoration: underline;
}

.tsme-breadcrumb .tsme-sep { color: #e0e1e3; }
.tsme-breadcrumb .tsme-current { color: #6b7280; font-weight: 500; }

/* Page header */
.tsme-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
}

.tsme-header-left {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.tsme-title {
    font-size: 1.4rem;
    font-weight: 700;
    color: #151515;
    letter-spacing: -0.025em;
    margin: 0;
    line-height: 1.2;
}

.tsme-subtitle {
    font-size: 0.85rem;
    color: #6b7280;
    margin: 0.15rem 0 0;
}

/* Badge sistema */
.tsme-badge-system {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.25rem 0.65rem;
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    border-radius: 0;
    background: rgba(107, 114, 128, 0.06);
    color: #6b7280;
    border: 1px solid rgba(107, 114, 128, 0.2);
    flex-shrink: 0;
    align-self: flex-start;
    margin-top: 0.3rem;
}

/* Card */
.tsme-card {
    background: #fff;
    border: 1px solid #e0e1e3;
    border-radius: 0;
    overflow: hidden;
    margin-bottom: 1.5rem;
}

.tsme-card-header {
    position: relative;
    padding: 1rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.tsme-card-header::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
    background: #d97706;
}

.tsme-card-header--cyan::before  { background: #0891b2; }
.tsme-card-header--green::before { background: #059669; }
.tsme-card-header--gray::before  { background: #6b7280; }

.tsme-icon-box {
    width: 34px;
    height: 34px;
    background: rgba(217, 119, 6, 0.08);
    border: 1px solid rgba(217, 119, 6, 0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.tsme-icon-box--cyan  { background: rgba(8,145,178,0.08);  border-color: rgba(8,145,178,0.15); }
.tsme-icon-box--green { background: rgba(5,150,105,0.08);  border-color: rgba(5,150,105,0.15); }
.tsme-icon-box--gray  { background: rgba(107,114,128,0.08); border-color: rgba(107,114,128,0.15); }

.tsme-card-title {
    font-size: 0.9rem;
    font-weight: 700;
    color: #151515;
    margin: 0;
}

.tsme-card-body {
    padding: 1.5rem 1.5rem 1.5rem 1.75rem;
}

/* Section titles */
.tsme-section-title {
    font-size: 0.82rem;
    font-weight: 600;
    color: #6b7280;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.75rem;
}

.tsme-separator {
    border-top: 1px solid #EEEFF0;
    margin: 1.5rem 0;
}

/* Form labels */
.tsme-label {
    display: block;
    font-size: 0.8rem;
    font-weight: 600;
    color: #151515;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 0.35rem;
}

/* Form controls */
.tsme-page .form-control,
.tsme-page .form-select {
    border: 1px solid #e0e1e3;
    border-radius: 0;
    font-size: 0.85rem;
    color: #151515;
}

.tsme-page .form-control:focus,
.tsme-page .form-select:focus {
    border-color: #E34824;
    box-shadow: 0 0 0 0.2rem rgba(227, 72, 36, 0.12);
}

.tsme-page .input-group-text {
    background: #EEEFF0;
    border: 1px solid #e0e1e3;
    border-radius: 0;
    color: #6b7280;
    font-size: 0.82rem;
    font-weight: 500;
}

.tsme-form-text {
    font-size: 0.72rem;
    color: #9ca3af;
    margin-top: 0.3rem;
    display: block;
}

.tsme-validation {
    font-size: 0.72rem;
    color: #dc2626;
    margin-top: 0.25rem;
    display: block;
}

/* Alert info utilizzi */
.tsme-alert-info {
    border-radius: 0;
    border: 1px solid #e0e1e3;
    border-left: 4px solid #0891b2;
    background: rgba(8, 145, 178, 0.04);
    padding: 0.85rem 1.25rem;
    font-size: 0.85rem;
    color: #151515;
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin-bottom: 1.25rem;
}

.tsme-alert-info i { color: #0891b2; flex-shrink: 0; margin-top: 0.1rem; }

/* Alert validation summary */
.tsme-alert-danger {
    border-radius: 0;
    border: 1px solid #e0e1e3;
    border-left: 4px solid #dc2626;
    background: rgba(220, 38, 38, 0.04);
    padding: 0.85rem 1.25rem;
    font-size: 0.85rem;
    color: #dc2626;
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin-bottom: 1.25rem;
}

/* Info box sistema */
.tsme-info-box {
    background: rgba(107, 114, 128, 0.04);
    border-left: 3px solid #6b7280;
    padding: 0.6rem 0.85rem;
    font-size: 0.82rem;
    color: #6b7280;
    margin-bottom: 1rem;
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
}

.tsme-info-box i { flex-shrink: 0; margin-top: 0.1rem; }

/* Locked field */
.tsme-locked-field {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 0.75rem;
    background: #EEEFF0;
    border: 1px solid #e0e1e3;
    font-size: 0.85rem;
    color: #6b7280;
}

.tsme-locked-field i.lock { color: #9ca3af; font-size: 0.8rem; }

/* Toggle switch override */
.tsme-page .form-switch .form-check-input {
    border-radius: 0 !important;
    border: 1px solid #e0e1e3;
    background-color: #e0e1e3;
    width: 44px;
    height: 24px;
    transition: background-color 0.2s, border-color 0.2s;
    cursor: pointer;
}

.tsme-page .form-switch .form-check-input:checked {
    background-color: #059669;
    border-color: #059669;
}

.tsme-page .form-switch .form-check-input:focus {
    box-shadow: 0 0 0 0.2rem rgba(227, 72, 36, 0.12);
    border-color: #E34824;
}

.tsme-toggle-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem 0;
}

.tsme-toggle-label {
    font-size: 0.85rem;
    font-weight: 600;
    color: #151515;
}

.tsme-toggle-sub {
    font-size: 0.72rem;
    color: #9ca3af;
    margin-top: 0.1rem;
}

/* Buttons */
.tsme-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.55rem 1.5rem;
    font-size: 0.85rem;
    font-weight: 600;
    border-radius: 0;
    border: 2px solid transparent;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s;
    white-space: nowrap;
}

.tsme-btn-secondary {
    background: transparent;
    color: #6b7280;
    border-color: #e0e1e3;
}

.tsme-btn-secondary:hover {
    border-color: #151515;
    color: #151515;
    text-decoration: none;
}

.tsme-btn-amber {
    background: #d97706;
    color: #fff;
    border-color: #d97706;
}

.tsme-btn-amber:hover {
    background: #b45309;
    border-color: #b45309;
    box-shadow: 0 2px 8px rgba(217, 119, 6, 0.2);
    color: #fff;
}

.tsme-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    flex-wrap: wrap;
    padding-top: 0.5rem;
}

/* Responsive */
@media (max-width: 991.98px) {
    .tsme-header { flex-direction: column; gap: 0.75rem; }
}

@media (max-width: 575.98px) {
    .tsme-card-body { padding: 1rem 1rem 1rem 1.25rem; }
    .tsme-footer { flex-direction: column-reverse; }
    .tsme-btn { width: 100%; justify-content: center; }
}

/* ============================================
    TIPI SCADENZA MEZZO > _TIPO SCADENZA MEZZO TABLE PAGE STYLES
============================================ */

.tsmp-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
}

.tsmp-table thead th {
    background: #151515;
    color: #fff;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 0.65rem 0.85rem;
    border: none;
    white-space: nowrap;
}

.tsmp-table thead th:first-child { padding-left: 1rem; }
.tsmp-table thead th:last-child  { padding-right: 1rem; text-align: right; }
.tsmp-table thead th.tsmp-th-center { text-align: center; }

.tsmp-table tbody tr {
    border-bottom: 1px solid #EEEFF0;
    transition: background 0.15s;
}

.tsmp-table tbody tr:hover {
    background: rgba(227, 72, 36, 0.03);
}

.tsmp-table tbody td {
    padding: 0.7rem 0.85rem;
    color: #151515;
    vertical-align: middle;
}

.tsmp-table tbody td:first-child { padding-left: 1rem; }
.tsmp-table tbody td:last-child  { padding-right: 1rem; }

/* Ordine */
.tsmp-ordine {
    font-size: 0.8rem;
    font-weight: 700;
    color: #9ca3af;
}

/* Nome e descrizione */
.tsmp-nome {
    font-size: 0.85rem;
    font-weight: 600;
    color: #151515;
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.tsmp-nome .tsmp-lock {
    color: #9ca3af;
    font-size: 0.78rem;
}

.tsmp-desc {
    font-size: 0.72rem;
    color: #9ca3af;
    margin-top: 0.15rem;
}

/* Badge preavviso / rinnovo */
.tsmp-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.2rem 0.55rem;
    font-size: 0.72rem;
    font-weight: 600;
    border-radius: 0;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    border: 1px solid rgba(107, 114, 128, 0.2);
    background: rgba(107, 114, 128, 0.06);
    color: #6b7280;
}

.tsmp-badge i { font-size: 0.7rem; }

/* Testo muted vuoto */
.tsmp-empty {
    color: #9ca3af;
    font-size: 0.82rem;
}

/* Km */
.tsmp-km {
    font-size: 0.82rem;
    color: #151515;
    font-weight: 500;
}

/* Colonne centrate */
.tsmp-td-center { text-align: center; }

/* Badge stato — usa le classi calcolate dal ViewModel */
/* Le classi StatoBadgeClass seguono il pattern badge Corebeet già nel ViewModel */

/* Badge utilizzi */
.tsmp-badge-utilizzi {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.2rem 0.55rem;
    font-size: 0.72rem;
    font-weight: 600;
    border-radius: 0;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    border: 1px solid rgba(8, 145, 178, 0.2);
    background: rgba(8, 145, 178, 0.06);
    color: #0891b2;
}

/* Bottoni azione */
.tsmp-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.25rem;
}

.tsmp-btn-action {
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0;
    border: 1px solid;
    background: transparent;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
    text-decoration: none;
    font-size: 0.85rem;
}

.tsmp-btn-edit {
    color: #d97706;
    border-color: rgba(217, 119, 6, 0.2);
}

.tsmp-btn-edit:hover {
    background: rgba(217, 119, 6, 0.06);
    border-color: #d97706;
    color: #d97706;
    text-decoration: none;
}

.tsmp-btn-delete {
    color: #dc2626;
    border-color: rgba(220, 38, 38, 0.2);
}

.tsmp-btn-delete:hover {
    background: rgba(220, 38, 38, 0.06);
    border-color: #dc2626;
    color: #dc2626;
}

/* Empty state */
.tsmp-empty-state {
    padding: 2.5rem 1rem;
    text-align: center;
}

.tsmp-empty-state i {
    font-size: 2rem;
    color: #e0e1e3;
    display: block;
    margin-bottom: 0.5rem;
}

.tsmp-empty-state p {
    font-size: 0.85rem;
    color: #6b7280;
    margin: 0;
}

/* Responsive scroll */
.tsmp-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* ============================================
    USER > CREATE PAGE STYLES
============================================ */
/* Page header */
.uc-page-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.uc-page-title { font-size: 1.4rem; font-weight: 700; color: var(--cb-dark); letter-spacing: -0.025em; margin: 0 0 0.2rem; display: flex; align-items: center; gap: 0.6rem; }
.uc-page-sub { font-size: 0.85rem; color: var(--cb-gray); margin: 0; }

/* Alert validation */
.uc-alert-danger { border-radius: 0; border: 1px solid rgba(220,38,38,0.2); border-left: 4px solid var(--cb-danger); background: rgba(220,38,38,0.04); padding: 0.85rem 1.25rem; font-size: 0.85rem; color: var(--cb-danger); margin-bottom: 1.25rem; }

/* Cards */
.uc-card { background: var(--cb-white); border: 1px solid var(--cb-border); border-radius: 0; overflow: hidden; margin-bottom: 1.5rem; }
.uc-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid var(--cb-border); display: flex; align-items: center; gap: 0.75rem; }
.uc-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.uc-card-header--green::before  { background: var(--cb-green); }
.uc-card-header--cyan::before   { background: var(--cb-cyan); }
.uc-card-header--accent::before { background: var(--cb-accent); }
.uc-card-header--gray::before   { background: var(--cb-gray); }
.uc-icon-box { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.uc-icon-box--green  { background: rgba(5,150,105,0.08);   border: 1px solid rgba(5,150,105,0.15); }
.uc-icon-box--green i  { color: var(--cb-green); }
.uc-icon-box--cyan   { background: rgba(8,145,178,0.08);   border: 1px solid rgba(8,145,178,0.15); }
.uc-icon-box--cyan i   { color: var(--cb-cyan); }
.uc-icon-box--accent { background: rgba(227,72,36,0.08);   border: 1px solid rgba(227,72,36,0.15); }
.uc-icon-box--accent i { color: var(--cb-accent); }
.uc-icon-box--gray   { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); }
.uc-icon-box--gray i   { color: var(--cb-gray); }
.uc-card-title { font-size: 0.9rem; font-weight: 700; color: var(--cb-dark); margin: 0; }
.uc-card-body  { padding: 1.5rem; padding-left: calc(1.5rem + 4px); }

/* Section label */
.uc-section-divider { border: 0; border-top: 1px solid var(--cb-light); margin: 1.25rem 0; }

/* Form */
.uc-label { display: block; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--cb-dark); margin-bottom: 0.35rem; }
.uc-form-control { width: 100%; border: 1px solid var(--cb-border); border-radius: 0; font-size: 0.85rem; padding: 0.5rem 0.75rem; color: var(--cb-dark); background: var(--cb-white); transition: border-color 0.2s, box-shadow 0.2s; }
.uc-form-control:focus { outline: none; border-color: var(--cb-accent); box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
.uc-form-control::placeholder { color: var(--cb-muted); }
.uc-validation { font-size: 0.72rem; color: var(--cb-danger); margin-top: 0.25rem; display: block; }
.uc-form-text  { font-size: 0.72rem; color: var(--cb-muted); margin-top: 0.25rem; display: block; }
.uc-field { margin-bottom: 1rem; }
.uc-field:last-child { margin-bottom: 0; }

/* Password strength hint */
.uc-password-hint { font-size: 0.72rem; color: var(--cb-muted); margin-top: 0.25rem; background: rgba(8,145,178,0.04); border-left: 3px solid var(--cb-cyan); padding: 0.4rem 0.65rem; }

/* Roles */
.uc-roles-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; }
.uc-role-item { display: flex; align-items: center; gap: 0.5rem; padding: 0.5rem 0.75rem; border: 1px solid var(--cb-border); cursor: pointer; transition: background 0.15s, border-color 0.15s; }
.uc-role-item:hover { background: rgba(5,150,105,0.03); border-color: rgba(5,150,105,0.2); }
.uc-role-item input[type="checkbox"] { width: 15px; height: 15px; border-radius: 0; accent-color: var(--cb-green); flex-shrink: 0; cursor: pointer; }
.uc-role-label { font-size: 0.82rem; font-weight: 500; color: var(--cb-dark); cursor: pointer; }

/* Status toggle */
.uc-status-row { display: flex; align-items: center; justify-content: space-between; padding: 0.75rem 0; }
.uc-status-label { font-size: 0.85rem; font-weight: 600; color: var(--cb-dark); }
.uc-status-sub { font-size: 0.72rem; color: var(--cb-muted); margin-top: 0.15rem; }
.uc-toggle-wrap { position: relative; width: 44px; height: 24px; flex-shrink: 0; }
.uc-toggle-wrap input { opacity: 0; width: 0; height: 0; position: absolute; }
.uc-toggle-slider { position: absolute; inset: 0; background: var(--cb-border); cursor: pointer; transition: background 0.2s; border-radius: 0; }
.uc-toggle-slider::before { content: ''; position: absolute; width: 18px; height: 18px; left: 3px; top: 3px; background: #fff; transition: transform 0.2s; }
.uc-toggle-wrap input:checked + .uc-toggle-slider { background: var(--cb-green); }
.uc-toggle-wrap input:checked + .uc-toggle-slider::before { transform: translateX(20px); }

/* Info box */
.uc-info-box { background: rgba(8,145,178,0.04); border-left: 3px solid var(--cb-cyan); padding: 0.65rem 0.9rem; font-size: 0.78rem; color: var(--cb-gray); margin-top: 1rem; }

/* Sidebar sticky */
.uc-sidebar-sticky { position: sticky; top: 72px; z-index: 10; }

/* Buttons */
.uc-btn { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.55rem 1.5rem; font-size: 0.85rem; font-weight: 600; border-radius: 0; border: 2px solid; cursor: pointer; text-decoration: none; transition: background 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s; width: 100%; justify-content: center; }
.uc-btn-green     { background: var(--cb-green);   color: #fff; border-color: var(--cb-green); }
.uc-btn-green:hover     { background: var(--cb-green-hover); border-color: var(--cb-green-hover); box-shadow: 0 2px 8px rgba(5,150,105,0.2); color: #fff; }
.uc-btn-secondary { background: transparent; color: var(--cb-gray); border-color: var(--cb-border); }
.uc-btn-secondary:hover { border-color: var(--cb-dark); color: var(--cb-dark); }

@media (max-width: 991.98px) {
    .uc-sidebar-sticky { position: static; }
    .uc-roles-grid { grid-template-columns: 1fr; }
}

/* ============================================
    USER > DETAILS PAGE STYLES
============================================ */
/* Alerts */
.ud-alert { border-radius: 0; border: 1px solid var(--cb-border); padding: 0.85rem 1.25rem; font-size: 0.85rem; display: flex; align-items: flex-start; gap: 0.6rem; margin-bottom: 1.25rem; }
.ud-alert-success { border-left: 4px solid var(--cb-green);  background: rgba(5,150,105,0.04); }
.ud-alert-success i { color: var(--cb-green); flex-shrink: 0; }
.ud-alert-danger  { border-left: 4px solid var(--cb-danger); background: rgba(220,38,38,0.04); }
.ud-alert-danger i  { color: var(--cb-danger); flex-shrink: 0; }
.ud-alert-close { margin-left: auto; background: none; border: none; cursor: pointer; color: var(--cb-muted); flex-shrink: 0; }
.ud-alert-close:hover { color: var(--cb-dark); }

/* Page header */
.ud-page-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.ud-page-title { font-size: 1.4rem; font-weight: 700; color: var(--cb-dark); letter-spacing: -0.025em; margin: 0 0 0.2rem; display: flex; align-items: center; gap: 0.6rem; }
.ud-page-sub { font-size: 0.85rem; color: var(--cb-gray); margin: 0; }

/* Avatar */
.ud-avatar-wrap { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.25rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--cb-light); }
.ud-avatar { width: 52px; height: 52px; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; font-weight: 700; background: rgba(227,72,36,0.1); color: var(--cb-accent); border: 1px solid rgba(227,72,36,0.2); flex-shrink: 0; letter-spacing: 0.02em; }
.ud-avatar-name { font-size: 1rem; font-weight: 700; color: var(--cb-dark); }
.ud-avatar-email { font-size: 0.78rem; color: var(--cb-muted); }

/* Cards */
.ud-card { background: var(--cb-white); border: 1px solid var(--cb-border); border-radius: 0; overflow: hidden; margin-bottom: 1.5rem; }
.ud-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid var(--cb-border); display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; }
.ud-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.ud-card-header--accent::before { background: var(--cb-accent); }
.ud-card-header--cyan::before   { background: var(--cb-cyan); }
.ud-card-header--green::before  { background: var(--cb-green); }
.ud-card-header--gray::before   { background: var(--cb-gray); }
.ud-card-header--danger::before { background: var(--cb-danger); }
.ud-card-header-left { display: flex; align-items: center; gap: 0.75rem; }
.ud-icon-box { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ud-icon-box--accent { background: rgba(227,72,36,0.08);   border: 1px solid rgba(227,72,36,0.15); }
.ud-icon-box--accent i { color: var(--cb-accent); }
.ud-icon-box--cyan   { background: rgba(8,145,178,0.08);   border: 1px solid rgba(8,145,178,0.15); }
.ud-icon-box--cyan i   { color: var(--cb-cyan); }
.ud-icon-box--green  { background: rgba(5,150,105,0.08);   border: 1px solid rgba(5,150,105,0.15); }
.ud-icon-box--green i  { color: var(--cb-green); }
.ud-icon-box--gray   { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); }
.ud-icon-box--gray i   { color: var(--cb-gray); }
.ud-icon-box--danger { background: rgba(220,38,38,0.08);   border: 1px solid rgba(220,38,38,0.15); }
.ud-icon-box--danger i { color: var(--cb-danger); }
.ud-card-title { font-size: 0.9rem; font-weight: 700; color: var(--cb-dark); margin: 0; }
.ud-card-body  { padding: 1.5rem; padding-left: calc(1.5rem + 4px); }

/* Fields (read-only) */
.ud-fields-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.5rem; }
.ud-field { display: flex; flex-direction: column; padding: 0.6rem 0; border-bottom: 1px solid var(--cb-light); }
.ud-field--full { grid-column: 1 / -1; }
.ud-field:last-child, .ud-field--full:last-child { border-bottom: none; }
.ud-field-label { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--cb-gray); margin-bottom: 0.2rem; }
.ud-field-value { font-size: 0.85rem; color: var(--cb-dark); font-weight: 500; }
.ud-field-empty { font-size: 0.85rem; color: var(--cb-muted); font-style: italic; }

/* Badges */
.ud-badge { display: inline-flex; align-items: center; padding: 0.25rem 0.65rem; font-size: 0.68rem; font-weight: 600; border-radius: 0; text-transform: uppercase; letter-spacing: 0.03em; border: 1px solid; }
.ud-badge--success   { background: rgba(5,150,105,0.06);   color: var(--cb-green); border-color: rgba(5,150,105,0.2); }
.ud-badge--secondary { background: rgba(107,114,128,0.06); color: var(--cb-gray);  border-color: rgba(107,114,128,0.2); }
.ud-badge--role      { background: rgba(8,145,178,0.06);   color: var(--cb-cyan);  border-color: rgba(8,145,178,0.2); font-size: 0.72rem; }

/* Roles list */
.ud-roles-wrap { display: flex; flex-wrap: wrap; gap: 0.4rem; }

/* Status display */
.ud-status-row { display: flex; align-items: center; justify-content: space-between; padding: 0.75rem 0; border-bottom: 1px solid var(--cb-light); }
.ud-status-key { font-size: 0.82rem; color: var(--cb-gray); }

/* Danger zone */
.ud-danger-text { font-size: 0.78rem; color: var(--cb-muted); margin: 0 0 1rem; line-height: 1.5; }

/* Sidebar sticky */
.ud-sidebar-sticky { position: sticky; top: 72px; z-index: 10; }

/* Buttons */
.ud-btn { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.55rem 1.25rem; font-size: 0.85rem; font-weight: 600; border-radius: 0; border: 2px solid; cursor: pointer; text-decoration: none; transition: background 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s; }
.ud-btn-sm { padding: 0.35rem 0.85rem; font-size: 0.78rem; }
.ud-btn-block { width: 100%; justify-content: center; }
.ud-btn-accent    { background: var(--cb-accent);  color: #fff; border-color: var(--cb-accent); }
.ud-btn-accent:hover    { background: var(--cb-accent-hover); border-color: var(--cb-accent-hover); box-shadow: 0 2px 8px rgba(227,72,36,0.2); color: #fff; }
.ud-btn-green     { background: var(--cb-green);   color: #fff; border-color: var(--cb-green); }
.ud-btn-green:hover     { background: var(--cb-green-hover); border-color: var(--cb-green-hover); color: #fff; }
.ud-btn-amber     { background: var(--cb-amber);   color: #fff; border-color: var(--cb-amber); }
.ud-btn-amber:hover     { background: #b45309; border-color: #b45309; color: #fff; }
.ud-btn-secondary { background: transparent; color: var(--cb-gray); border-color: var(--cb-border); }
.ud-btn-secondary:hover { border-color: var(--cb-dark); color: var(--cb-dark); }
.ud-btn-outline-accent { background: transparent; color: var(--cb-accent); border: 1px solid rgba(227,72,36,0.25); font-size: 0.78rem; padding: 0.35rem 0.75rem; border-radius: 0; font-weight: 600; text-decoration: none; display: inline-flex; align-items: center; gap: 0.35rem; transition: background 0.15s, border-color 0.15s; }
.ud-btn-outline-accent:hover { background: rgba(227,72,36,0.06); border-color: var(--cb-accent); color: var(--cb-accent); }
.ud-btn-outline-danger { background: transparent; color: var(--cb-danger); border: 2px solid var(--cb-danger); font-size: 0.85rem; font-weight: 600; padding: 0.5rem 1rem; border-radius: 0; display: inline-flex; align-items: center; gap: 0.4rem; width: 100%; justify-content: center; cursor: pointer; transition: background 0.15s, box-shadow 0.15s; }
.ud-btn-outline-danger:hover { background: rgba(220,38,38,0.06); box-shadow: 0 2px 8px rgba(220,38,38,0.15); }
.ud-action-stack { display: flex; flex-direction: column; gap: 0.5rem; }
.ud-divider { border: 0; border-top: 1px solid var(--cb-light); margin: 0.5rem 0; }

@media (max-width: 991.98px) {
    .ud-sidebar-sticky { position: static; }
    .ud-fields-grid { grid-template-columns: 1fr; }
    .ud-field--full { grid-column: 1; }
}

/* ============================================
    USER > EDIT PAGE STYLES
============================================ */
/* Page header */
.ue-page-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.ue-page-title { font-size: 1.4rem; font-weight: 700; color: var(--cb-dark); letter-spacing: -0.025em; margin: 0 0 0.2rem; display: flex; align-items: center; gap: 0.6rem; }
.ue-page-sub { font-size: 0.85rem; color: var(--cb-gray); margin: 0; }

/* Alert */
.ue-alert-danger { border-radius: 0; border: 1px solid rgba(220,38,38,0.2); border-left: 4px solid var(--cb-danger); background: rgba(220,38,38,0.04); padding: 0.85rem 1.25rem; font-size: 0.85rem; color: var(--cb-danger); margin-bottom: 1.25rem; }

/* Cards */
.ue-card { background: var(--cb-white); border: 1px solid var(--cb-border); border-radius: 0; overflow: hidden; margin-bottom: 1.5rem; }
.ue-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid var(--cb-border); display: flex; align-items: center; gap: 0.75rem; }
.ue-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.ue-card-header--amber::before  { background: var(--cb-amber); }
.ue-card-header--cyan::before   { background: var(--cb-cyan); }
.ue-card-header--accent::before { background: var(--cb-accent); }
.ue-card-header--gray::before   { background: var(--cb-gray); }
.ue-card-header--green::before  { background: var(--cb-green); }
.ue-icon-box { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ue-icon-box--amber  { background: rgba(217,119,6,0.08);   border: 1px solid rgba(217,119,6,0.15); }
.ue-icon-box--amber i  { color: var(--cb-amber); }
.ue-icon-box--cyan   { background: rgba(8,145,178,0.08);   border: 1px solid rgba(8,145,178,0.15); }
.ue-icon-box--cyan i   { color: var(--cb-cyan); }
.ue-icon-box--accent { background: rgba(227,72,36,0.08);   border: 1px solid rgba(227,72,36,0.15); }
.ue-icon-box--accent i { color: var(--cb-accent); }
.ue-icon-box--gray   { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); }
.ue-icon-box--gray i   { color: var(--cb-gray); }
.ue-icon-box--green  { background: rgba(5,150,105,0.08);   border: 1px solid rgba(5,150,105,0.15); }
.ue-icon-box--green i  { color: var(--cb-green); }
.ue-card-title { font-size: 0.9rem; font-weight: 700; color: var(--cb-dark); margin: 0; }
.ue-card-body  { padding: 1.5rem; padding-left: calc(1.5rem + 4px); }

/* Section label */
.ue-section-label { font-size: 0.82rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; color: var(--cb-gray); display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.75rem; margin-top: 1.25rem; }
.ue-section-label:first-child { margin-top: 0; }
.ue-section-label i { color: var(--cb-accent); }
.ue-section-divider { border: 0; border-top: 1px solid var(--cb-light); margin: 1.25rem 0; }

/* Form */
.ue-label { display: block; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--cb-dark); margin-bottom: 0.35rem; }
.ue-form-control { width: 100%; border: 1px solid var(--cb-border); border-radius: 0; font-size: 0.85rem; padding: 0.5rem 0.75rem; color: var(--cb-dark); background: var(--cb-white); transition: border-color 0.2s, box-shadow 0.2s; }
.ue-form-control:focus { outline: none; border-color: var(--cb-accent); box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
.ue-form-control::placeholder { color: var(--cb-muted); }
.ue-validation { font-size: 0.72rem; color: var(--cb-danger); margin-top: 0.25rem; display: block; }
.ue-form-text  { font-size: 0.72rem; color: var(--cb-muted); margin-top: 0.25rem; display: block; }
.ue-field { margin-bottom: 1rem; }
.ue-field:last-child { margin-bottom: 0; }

/* Roles checklist */
.ue-roles-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; }
.ue-role-item { display: flex; align-items: center; gap: 0.5rem; padding: 0.5rem 0.75rem; border: 1px solid var(--cb-border); cursor: pointer; transition: background 0.15s, border-color 0.15s; }
.ue-role-item:hover { background: rgba(227,72,36,0.03); border-color: rgba(227,72,36,0.2); }
.ue-role-item input[type="checkbox"] { width: 15px; height: 15px; border-radius: 0; accent-color: var(--cb-accent); flex-shrink: 0; cursor: pointer; }
.ue-role-label { font-size: 0.82rem; font-weight: 500; color: var(--cb-dark); cursor: pointer; }

/* Status toggle */
.ue-status-row { display: flex; align-items: center; justify-content: space-between; padding: 0.85rem 0; }
.ue-status-label { font-size: 0.85rem; font-weight: 600; color: var(--cb-dark); }
.ue-status-sub { font-size: 0.72rem; color: var(--cb-muted); margin-top: 0.15rem; }
/* Custom toggle switch */
/* Toggle switch — override Bootstrap form-switch */
.ue-card-body .form-switch .form-check-input { border-radius: 0 !important; border: 1px solid var(--cb-border); background-color: var(--cb-border); width: 44px; height: 24px; transition: background-color 0.2s, border-color 0.2s; cursor: pointer; }
.ue-card-body .form-switch .form-check-input:checked { background-color: var(--cb-green); border-color: var(--cb-green); }
.ue-card-body .form-switch .form-check-input:focus { box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); border-color: var(--cb-accent); }

/* Info box sidebar */
.ue-info-box { background: rgba(8,145,178,0.04); border-left: 3px solid var(--cb-cyan); padding: 0.65rem 0.9rem; font-size: 0.78rem; color: var(--cb-gray); margin-top: 1rem; }

/* Sidebar sticky */
.ue-sidebar-sticky { position: sticky; top: 72px; z-index: 10; }

/* Buttons */
.ue-btn { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.55rem 1.5rem; font-size: 0.85rem; font-weight: 600; border-radius: 0; border: 2px solid; cursor: pointer; text-decoration: none; transition: background 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s; width: 100%; justify-content: center; }
.ue-btn-amber    { background: var(--cb-amber);  color: #fff; border-color: var(--cb-amber); }
.ue-btn-amber:hover    { background: var(--cb-amber-hover); border-color: var(--cb-amber-hover); box-shadow: 0 2px 8px rgba(217,119,6,0.2); color: #fff; }
.ue-btn-secondary { background: transparent; color: var(--cb-gray); border-color: var(--cb-border); }
.ue-btn-secondary:hover { border-color: var(--cb-dark); color: var(--cb-dark); }

@media (max-width: 991.98px) {
    .ue-sidebar-sticky { position: static; }
    .ue-roles-grid { grid-template-columns: 1fr; }
}
@media (max-width: 575.98px) {
    .ue-roles-grid { grid-template-columns: 1fr; }
}

/* ============================================
    VALUTAZIONI > DETAILS PAGE STYLES
============================================ */

.vd-page {
    padding: 2rem;
}

@media (max-width: 575.98px) {
    .vd-page { padding: 1rem; }
}

/* Breadcrumb */
.vd-breadcrumb {
    display: flex; align-items: center; gap: 0.4rem;
    font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem;
}
.vd-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.vd-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.vd-breadcrumb .vd-sep { color: #e0e1e3; }
.vd-breadcrumb .vd-current { color: #6b7280; font-weight: 500; }

/* Header */
.vd-header {
    display: flex; align-items: flex-start; justify-content: space-between;
    gap: 1rem; margin-bottom: 1.5rem; flex-wrap: wrap;
}
.vd-header-left { flex: 1; min-width: 0; }
.vd-title {
    display: flex; align-items: center; gap: 0.75rem;
    font-size: 1.4rem; font-weight: 700; color: #151515;
    letter-spacing: -0.025em; margin: 0 0 0.35rem 0;
}
.vd-title-icon {
    width: 38px; height: 38px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15);
}
.vd-subtitle { font-size: 0.85rem; color: #6b7280; margin: 0; }
.vd-subtitle strong { color: #151515; }

/* Bottone torna */
.vd-btn-back {
    display: inline-flex; align-items: center; gap: 0.4rem;
    padding: 0.55rem 1.25rem; font-size: 0.85rem; font-weight: 600;
    background: transparent; color: #6b7280;
    border: 2px solid #e0e1e3; border-radius: 0;
    text-decoration: none; transition: border-color 0.2s, color 0.2s;
    white-space: nowrap;
}
.vd-btn-back:hover { border-color: #151515; color: #151515; }

/* Card generica */
.vd-card {
    background: #fff; border: 1px solid #e0e1e3;
    border-radius: 0; overflow: hidden; margin-bottom: 1.5rem;
}
.vd-card-header {
    position: relative; padding: 1rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex; align-items: center; gap: 0.75rem;
}
.vd-card-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
}
.vd-card-header--accent::before  { background: #E34824; }
.vd-card-header--primary::before { background: #E34824; }
.vd-card-header--green::before   { background: #059669; }
.vd-card-header--cyan::before    { background: #0891b2; }

.vd-icon-box {
    width: 34px; height: 34px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    border: 1px solid;
}
.vd-icon-box--accent  { background: rgba(227,72,36,0.08);  border-color: rgba(227,72,36,0.15);  color: #E34824; }
.vd-icon-box--green   { background: rgba(5,150,105,0.08);  border-color: rgba(5,150,105,0.15);  color: #059669; }
.vd-icon-box--cyan    { background: rgba(8,145,178,0.08);  border-color: rgba(8,145,178,0.15);  color: #0891b2; }

.vd-card-title {
    font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0;
}
.vd-card-body { padding: 1.5rem 1.5rem 1.5rem 1.75rem; }

/* Card info gara â fields grid */
.vd-fields-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.5rem;
}
@media (max-width: 767.98px) {
    .vd-fields-grid { grid-template-columns: 1fr; }
}
.vd-field {
    display: flex; flex-direction: column;
    padding: 0.6rem 0; border-bottom: 1px solid #EEEFF0;
}
.vd-field:last-child { border-bottom: none; }
.vd-field--full { grid-column: 1 / -1; }
@media (max-width: 767.98px) {
    .vd-field--full { grid-column: 1; }
}
.vd-field-label {
    font-size: 0.68rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.04em; color: #6b7280; margin-bottom: 0.2rem;
}
.vd-field-value { font-size: 0.85rem; color: #151515; font-weight: 500; }
.vd-field-empty { font-size: 0.85rem; color: #9ca3af; font-style: italic; }

/* Valutazione card â due colonne */
.vd-val-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem;
    margin-bottom: 1.5rem;
}
@media (max-width: 767.98px) {
    .vd-val-grid { grid-template-columns: 1fr; }
}

/* Badge semantici */
.vd-badge {
    display: inline-flex; align-items: center; gap: 0.25rem;
    padding: 0.25rem 0.65rem; font-size: 0.7rem; font-weight: 600;
    border-radius: 0; text-transform: uppercase; letter-spacing: 0.03em;
    border: 1px solid;
}
.vd-badge--success {
    background: rgba(5,150,105,0.06); color: #059669;
    border-color: rgba(5,150,105,0.2);
}
.vd-badge--danger {
    background: rgba(220,38,38,0.06); color: #dc2626;
    border-color: rgba(220,38,38,0.2);
}
.vd-badge--info {
    background: rgba(8,145,178,0.06); color: #0891b2;
    border-color: rgba(8,145,178,0.2);
}

/* Stato row */
.vd-stato-row {
    display: flex; align-items: center; gap: 0.5rem;
    padding: 0.6rem 0; border-bottom: 1px solid #EEEFF0; margin-bottom: 0.5rem;
}
.vd-stato-label {
    font-size: 0.68rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.04em; color: #6b7280; flex-shrink: 0;
}

/* Alert Corebeet */
.vd-alert {
    display: flex; align-items: flex-start; gap: 0.5rem;
    padding: 0.75rem 1rem; font-size: 0.85rem;
    border: 1px solid #e0e1e3; border-radius: 0;
}
.vd-alert--danger {
    background: rgba(220,38,38,0.04);
    border-left: 4px solid #dc2626; color: #151515;
}
.vd-alert--danger i { color: #dc2626; flex-shrink: 0; }
.vd-alert--info {
    background: rgba(8,145,178,0.04);
    border-left: 4px solid #0891b2; color: #151515;
}
.vd-alert--info i { color: #0891b2; flex-shrink: 0; }
.vd-alert--secondary {
    background: rgba(107,114,128,0.04);
    border-left: 4px solid #9ca3af; color: #6b7280;
}
.vd-alert--secondary i { color: #9ca3af; flex-shrink: 0; }

/* Info sistema â audit row */
.vd-sys-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.5rem;
}
@media (max-width: 575.98px) {
    .vd-sys-grid { grid-template-columns: 1fr; }
}
.vd-sys-item { padding: 0.5rem 0; }
.vd-sys-label {
    font-size: 0.68rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.04em; color: #6b7280; margin-bottom: 0.15rem;
}
.vd-sys-value { font-size: 0.82rem; color: #151515; }
.vd-sys-sub   { font-size: 0.75rem; color: #9ca3af; }

/* ============================================
    VALUTAZIONI > CREATE TECNICA PAGE STYLES
============================================ */

.vct-page {
    padding: 2rem;
}

@media (max-width: 575.98px) {
    .vct-page { padding: 1rem; }
}

/* Breadcrumb */
.vct-breadcrumb {
    display: flex; align-items: center; gap: 0.4rem;
    font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem;
}
.vct-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.vct-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.vct-breadcrumb .vct-sep { color: #e0e1e3; }
.vct-breadcrumb .vct-current { color: #6b7280; font-weight: 500; }

/* Header */
.vct-header { margin-bottom: 1.5rem; }
.vct-title {
    display: flex; align-items: center; gap: 0.75rem;
    font-size: 1.4rem; font-weight: 700; color: #151515;
    letter-spacing: -0.025em; margin: 0 0 0.35rem 0;
}
.vct-title-icon {
    width: 38px; height: 38px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15);
}
.vct-subtitle { font-size: 0.85rem; color: #6b7280; margin: 0; }

/* Card generica */
.vct-card {
    background: #fff; border: 1px solid #e0e1e3;
    border-radius: 0; overflow: hidden; margin-bottom: 1.5rem;
}
.vct-card-header {
    position: relative; padding: 1rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex; align-items: center; gap: 0.75rem;
}
.vct-card-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
}
.vct-card-header--cyan::before   { background: #0891b2; }
.vct-card-header--accent::before { background: #E34824; }
.vct-card-header--amber::before  { background: #d97706; }

.vct-icon-box {
    width: 34px; height: 34px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    border: 1px solid;
}
.vct-icon-box--cyan   { background: rgba(8,145,178,0.08);  border-color: rgba(8,145,178,0.15);  color: #0891b2; }
.vct-icon-box--accent { background: rgba(227,72,36,0.08);  border-color: rgba(227,72,36,0.15);  color: #E34824; }
.vct-icon-box--amber  { background: rgba(217,119,6,0.08);  border-color: rgba(217,119,6,0.15);  color: #d97706; }

.vct-card-title {
    font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0;
}
.vct-card-body { padding: 1.5rem 1.5rem 1.5rem 1.75rem; }
.vct-card-footer {
    padding: 1rem 1.5rem; border-top: 1px solid #e0e1e3;
    background: #EEEFF0;
    display: flex; align-items: center; justify-content: flex-end; gap: 0.5rem;
    flex-wrap: wrap;
}

/* Fields grid (info lotto) */
.vct-fields-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.5rem;
}
@media (max-width: 767.98px) {
    .vct-fields-grid { grid-template-columns: 1fr; }
}
.vct-field {
    display: flex; flex-direction: column;
    padding: 0.6rem 0; border-bottom: 1px solid #EEEFF0;
}
.vct-field:last-child { border-bottom: none; }
.vct-field--full { grid-column: 1 / -1; }
@media (max-width: 767.98px) {
    .vct-field--full { grid-column: 1; }
}
.vct-field-label {
    font-size: 0.68rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.04em; color: #6b7280; margin-bottom: 0.2rem;
}
.vct-field-value { font-size: 0.85rem; color: #151515; font-weight: 500; }
.vct-field-empty { font-size: 0.85rem; color: #9ca3af; font-style: italic; }

/* Alert Corebeet */
.vct-alert {
    display: flex; align-items: flex-start; gap: 0.65rem;
    padding: 0.85rem 1.25rem; font-size: 0.85rem;
    border: 1px solid #e0e1e3; border-radius: 0;
    margin-bottom: 1.5rem;
}
.vct-alert i { flex-shrink: 0; margin-top: 0.1rem; }
.vct-alert--success {
    background: rgba(5,150,105,0.05); border-left: 4px solid #059669;
}
.vct-alert--success i { color: #059669; }
.vct-alert--danger {
    background: rgba(220,38,38,0.04); border-left: 4px solid #dc2626;
}
.vct-alert--danger i { color: #dc2626; }
.vct-alert--info {
    background: rgba(8,145,178,0.04); border-left: 4px solid #0891b2;
}
.vct-alert--info i { color: #0891b2; }
.vct-alert--warning {
    background: rgba(217,119,6,0.04); border-left: 4px solid #d97706;
}
.vct-alert--warning i { color: #d97706; }
.vct-alert-body { flex: 1; }
.vct-alert-title { font-weight: 700; color: #151515; margin-bottom: 0.25rem; font-size: 0.85rem; }
.vct-alert-text  { color: #6b7280; font-size: 0.82rem; }

/* Form */
.vct-form-section-title {
    font-size: 0.82rem; font-weight: 600; color: #6b7280;
    text-transform: uppercase; letter-spacing: 0.03em;
    display: flex; align-items: center; gap: 0.4rem;
    margin-bottom: 0.75rem;
}
.vct-form-section-title i { color: #E34824; }
.vct-separator { border-top: 1px solid #EEEFF0; margin: 1.5rem 0; }

.vct-form-label {
    font-size: 0.8rem; font-weight: 600; text-transform: uppercase;
    letter-spacing: 0.04em; color: #151515; display: block; margin-bottom: 0.4rem;
}
.vct-required { color: #dc2626; margin-left: 0.15rem; }
.vct-form-control {
    border: 1px solid #e0e1e3; border-radius: 0; font-size: 0.85rem;
    padding: 0.5rem 0.75rem; width: 100%;
    transition: border-color 0.2s, box-shadow 0.2s;
    background: #fff; color: #151515;
}
.vct-form-control:focus {
    outline: none; border-color: #E34824;
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}
.vct-form-text {
    font-size: 0.72rem; color: #9ca3af; margin-top: 0.3rem;
    display: flex; align-items: center; gap: 0.3rem;
}
.vct-validation { color: #dc2626; font-size: 0.72rem; margin-top: 0.25rem; display: block; }
.vct-form-group { margin-bottom: 1.25rem; }

/* Radio esito */
.vct-radio-group { display: flex; flex-direction: column; gap: 0.65rem; }
.vct-radio-item {
    display: flex; align-items: center; gap: 0.65rem;
    padding: 0.75rem 1rem; border: 1px solid #e0e1e3;
    cursor: pointer; transition: border-color 0.2s, background 0.2s;
}
.vct-radio-item:hover { border-color: #9ca3af; background: rgba(107,114,128,0.03); }
.vct-radio-item input[type="radio"] {
    width: 16px; height: 16px; accent-color: #E34824;
    flex-shrink: 0; cursor: pointer;
}
.vct-radio-item.is-success { border-color: rgba(5,150,105,0.3); background: rgba(5,150,105,0.03); }
.vct-radio-item.is-danger  { border-color: rgba(220,38,38,0.3);  background: rgba(220,38,38,0.03); }
.vct-radio-label { font-size: 0.85rem; font-weight: 600; color: #151515; }
.vct-radio-sub   { font-size: 0.75rem; color: #6b7280; margin-top: 0.1rem; }

/* Info box (nota finale) */
.vct-info-box {
    background: rgba(8,145,178,0.04);
    border-left: 3px solid #0891b2;
    padding: 0.65rem 0.9rem; font-size: 0.82rem; color: #151515;
    display: flex; align-items: flex-start; gap: 0.5rem;
}
.vct-info-box i { color: #0891b2; flex-shrink: 0; margin-top: 0.1rem; }

/* Validation summary */
.vct-validation-summary {
    display: flex; align-items: flex-start; gap: 0.65rem;
    padding: 0.85rem 1.25rem; font-size: 0.85rem;
    background: rgba(220,38,38,0.04);
    border: 1px solid #e0e1e3; border-left: 4px solid #dc2626;
    border-radius: 0; margin-bottom: 1.25rem; color: #dc2626;
}

/* Bottoni */
.vct-btn {
    display: inline-flex; align-items: center; gap: 0.4rem;
    padding: 0.55rem 1.5rem; font-size: 0.85rem; font-weight: 600;
    border-radius: 0; border: 2px solid; cursor: pointer;
    text-decoration: none; transition: background 0.2s, border-color 0.2s, box-shadow 0.2s;
    white-space: nowrap;
}
.vct-btn--secondary {
    background: transparent; color: #6b7280; border-color: #e0e1e3;
}
.vct-btn--secondary:hover { border-color: #151515; color: #151515; text-decoration: none; }
.vct-btn--accent {
    background: #E34824; color: #fff; border-color: #E34824;
}
.vct-btn--accent:hover {
    background: #c93d1e; border-color: #c93d1e;
    box-shadow: 0 2px 8px rgba(227,72,36,0.2);
}
.vct-btn--green {
    background: #059669; color: #fff; border-color: #059669;
}
.vct-btn--green:hover {
    background: #047857; border-color: #047857;
    box-shadow: 0 2px 8px rgba(5,150,105,0.2);
}
.vct-btn--sm {
    padding: 0.35rem 0.9rem; font-size: 0.78rem;
}

@media (max-width: 575.98px) {
    .vct-card-footer { justify-content: stretch; }
    .vct-btn { width: 100%; justify-content: center; }
}

/* ============================================
    VALUTAZIONI > CREATE ECONOMICA PAGE STYLES
============================================ */

.vce-page {
    padding: 2rem;
}

@media (max-width: 575.98px) {
    .vce-page { padding: 1rem; }
}

/* Breadcrumb */
.vce-breadcrumb {
    display: flex; align-items: center; gap: 0.4rem;
    font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1.5rem;
}
.vce-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.vce-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.vce-breadcrumb .vce-sep { color: #e0e1e3; }
.vce-breadcrumb .vce-current { color: #6b7280; font-weight: 500; }

/* Header */
.vce-header {
    display: flex; align-items: flex-start; justify-content: space-between;
    gap: 1rem; margin-bottom: 1.5rem; flex-wrap: wrap;
}
.vce-header-left { flex: 1; min-width: 0; }
.vce-title {
    display: flex; align-items: center; gap: 0.75rem;
    font-size: 1.4rem; font-weight: 700; color: #151515;
    letter-spacing: -0.025em; margin: 0 0 0.35rem 0;
}
.vce-title-icon {
    width: 38px; height: 38px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    background: rgba(5,150,105,0.08); border: 1px solid rgba(5,150,105,0.15);
}
.vce-subtitle { font-size: 0.85rem; color: #6b7280; margin: 0; }

/* Card generica */
.vce-card {
    background: #fff; border: 1px solid #e0e1e3;
    border-radius: 0; overflow: hidden; margin-bottom: 1.5rem;
}
.vce-card-header {
    position: relative; padding: 1rem 1.5rem;
    border-bottom: 1px solid #e0e1e3;
    display: flex; align-items: center; gap: 0.75rem;
}
.vce-card-header::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
}
.vce-card-header--cyan::before   { background: #0891b2; }
.vce-card-header--green::before  { background: #059669; }
.vce-card-header--amber::before  { background: #d97706; }

.vce-icon-box {
    width: 34px; height: 34px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    border: 1px solid;
}
.vce-icon-box--cyan  { background: rgba(8,145,178,0.08);  border-color: rgba(8,145,178,0.15);  color: #0891b2; }
.vce-icon-box--green { background: rgba(5,150,105,0.08);  border-color: rgba(5,150,105,0.15);  color: #059669; }
.vce-icon-box--amber { background: rgba(217,119,6,0.08);  border-color: rgba(217,119,6,0.15);  color: #d97706; }

.vce-card-title {
    font-size: 0.9rem; font-weight: 700; color: #151515; margin: 0;
}
.vce-card-body { padding: 1.5rem 1.5rem 1.5rem 1.75rem; }
.vce-card-footer {
    padding: 1rem 1.5rem; border-top: 1px solid #e0e1e3;
    background: #EEEFF0;
    display: flex; align-items: center; justify-content: flex-end; gap: 0.5rem;
    flex-wrap: wrap;
}

/* Fields grid (info lotto) */
.vce-fields-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.5rem;
}
@media (max-width: 767.98px) {
    .vce-fields-grid { grid-template-columns: 1fr; }
}
.vce-field {
    display: flex; flex-direction: column;
    padding: 0.6rem 0; border-bottom: 1px solid #EEEFF0;
}
.vce-field:last-child { border-bottom: none; }
.vce-field--full { grid-column: 1 / -1; }
@media (max-width: 767.98px) {
    .vce-field--full { grid-column: 1; }
}
.vce-field-label {
    font-size: 0.68rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.04em; color: #6b7280; margin-bottom: 0.2rem;
}
.vce-field-value { font-size: 0.85rem; color: #151515; font-weight: 500; }
.vce-field-empty { font-size: 0.85rem; color: #9ca3af; font-style: italic; }

/* Badge */
.vce-badge {
    display: inline-flex; align-items: center; gap: 0.25rem;
    padding: 0.25rem 0.65rem; font-size: 0.7rem; font-weight: 600;
    border-radius: 0; text-transform: uppercase; letter-spacing: 0.03em;
    border: 1px solid;
}
.vce-badge--success {
    background: rgba(5,150,105,0.06); color: #059669;
    border-color: rgba(5,150,105,0.2);
}

/* Alert Corebeet */
.vce-alert {
    display: flex; align-items: flex-start; gap: 0.65rem;
    padding: 0.85rem 1.25rem; font-size: 0.85rem;
    border: 1px solid #e0e1e3; border-radius: 0;
    margin-bottom: 1.5rem;
}
.vce-alert i { flex-shrink: 0; margin-top: 0.1rem; }
.vce-alert--success {
    background: rgba(5,150,105,0.05);
    border-left: 4px solid #059669;
}
.vce-alert--success i { color: #059669; }
.vce-alert--danger {
    background: rgba(220,38,38,0.04);
    border-left: 4px solid #dc2626;
}
.vce-alert--danger i { color: #dc2626; }
.vce-alert--info {
    background: rgba(8,145,178,0.04);
    border-left: 4px solid #0891b2;
}
.vce-alert--info i { color: #0891b2; }
.vce-alert--warning {
    background: rgba(217,119,6,0.04);
    border-left: 4px solid #d97706;
}
.vce-alert--warning i { color: #d97706; }
.vce-alert-body { flex: 1; }
.vce-alert-title { font-weight: 700; color: #151515; margin-bottom: 0.25rem; font-size: 0.85rem; }
.vce-alert-text  { color: #6b7280; font-size: 0.82rem; }

/* Form */
.vce-form-section-title {
    font-size: 0.82rem; font-weight: 600; color: #6b7280;
    text-transform: uppercase; letter-spacing: 0.03em;
    display: flex; align-items: center; gap: 0.4rem;
    margin-bottom: 0.75rem;
}
.vce-form-section-title i { color: #E34824; }
.vce-separator { border-top: 1px solid #EEEFF0; margin: 1.5rem 0; }

.vce-form-label {
    font-size: 0.8rem; font-weight: 600; text-transform: uppercase;
    letter-spacing: 0.04em; color: #151515; display: block; margin-bottom: 0.4rem;
}
.vce-form-label .vce-required { color: #dc2626; margin-left: 0.15rem; }
.vce-form-control {
    border: 1px solid #e0e1e3; border-radius: 0; font-size: 0.85rem;
    padding: 0.5rem 0.75rem; width: 100%;
    transition: border-color 0.2s, box-shadow 0.2s;
    background: #fff; color: #151515;
}
.vce-form-control:focus {
    outline: none; border-color: #E34824;
    box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12);
}
.vce-form-text {
    font-size: 0.72rem; color: #9ca3af; margin-top: 0.3rem;
    display: flex; align-items: center; gap: 0.3rem;
}
.vce-validation { color: #dc2626; font-size: 0.72rem; margin-top: 0.25rem; display: block; }
.vce-form-group { margin-bottom: 1.25rem; }

/* Radio esito */
.vce-radio-group { display: flex; flex-direction: column; gap: 0.65rem; }
.vce-radio-item {
    display: flex; align-items: center; gap: 0.65rem;
    padding: 0.75rem 1rem; border: 1px solid #e0e1e3;
    cursor: pointer; transition: border-color 0.2s, background 0.2s;
}
.vce-radio-item:hover { border-color: #9ca3af; background: rgba(107,114,128,0.03); }
.vce-radio-item input[type="radio"] {
    width: 16px; height: 16px; accent-color: #E34824;
    flex-shrink: 0; cursor: pointer;
}
.vce-radio-item.is-success { border-color: rgba(5,150,105,0.3); background: rgba(5,150,105,0.03); }
.vce-radio-item.is-danger  { border-color: rgba(220,38,38,0.3);  background: rgba(220,38,38,0.03); }
.vce-radio-label { font-size: 0.85rem; font-weight: 600; color: #151515; }
.vce-radio-sub   { font-size: 0.75rem; color: #6b7280; margin-top: 0.1rem; }

/* Info box (nota finale) */
.vce-info-box {
    background: rgba(8,145,178,0.04);
    border-left: 3px solid #0891b2;
    padding: 0.65rem 0.9rem; font-size: 0.82rem; color: #151515;
    display: flex; align-items: flex-start; gap: 0.5rem;
}
.vce-info-box i { color: #0891b2; flex-shrink: 0; margin-top: 0.1rem; }

/* Bottoni */
.vce-btn {
    display: inline-flex; align-items: center; gap: 0.4rem;
    padding: 0.55rem 1.5rem; font-size: 0.85rem; font-weight: 600;
    border-radius: 0; border: 2px solid; cursor: pointer;
    text-decoration: none; transition: background 0.2s, border-color 0.2s, box-shadow 0.2s;
    white-space: nowrap;
}
.vce-btn--secondary {
    background: transparent; color: #6b7280; border-color: #e0e1e3;
}
.vce-btn--secondary:hover { border-color: #151515; color: #151515; text-decoration: none; }
.vce-btn--green {
    background: #059669; color: #fff; border-color: #059669;
}
.vce-btn--green:hover {
    background: #047857; border-color: #047857;
    box-shadow: 0 2px 8px rgba(5,150,105,0.2);
}
.vce-btn--accent {
    background: #E34824; color: #fff; border-color: #E34824;
}
.vce-btn--accent:hover {
    background: #c93d1e; border-color: #c93d1e;
    box-shadow: 0 2px 8px rgba(227,72,36,0.2);
}
.vce-btn--sm {
    padding: 0.35rem 0.9rem; font-size: 0.78rem;
}

/* Validation summary */
.vce-validation-summary {
    display: flex; align-items: flex-start; gap: 0.65rem;
    padding: 0.85rem 1.25rem; font-size: 0.85rem;
    background: rgba(220,38,38,0.04);
    border: 1px solid #e0e1e3;
    border-left: 4px solid #dc2626;
    border-radius: 0; margin-bottom: 1.25rem; color: #dc2626;
}

@media (max-width: 575.98px) {
    .vce-card-footer { justify-content: stretch; }
    .vce-btn { width: 100%; justify-content: center; }
}

/* ============================================
    PROGETTI PAGE STYLES
============================================ */

/* ===== pri- Progetti Index ===== */
.pri-page { padding: 2rem; }

/* Breadcrumb */
.pri-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1rem; }
.pri-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.pri-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.pri-sep { color: #e0e1e3; display: flex; align-items: center; }
.pri-current { color: #6b7280; font-weight: 500; }

/* Header */
.pri-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 1.5rem; gap: 1rem; flex-wrap: wrap; }
.pri-header-left { display: flex; flex-direction: column; }
.pri-title { font-size: 1.45rem; font-weight: 700; color: #151515; letter-spacing: -0.025em; display: flex; align-items: center; gap: 0.5rem; margin: 0; }
.pri-subtitle { font-size: 0.85rem; color: #6b7280; margin: 0.25rem 0 0 0; }
.pri-header-right { display: flex; align-items: center; gap: 0.5rem; flex-shrink: 0; }

/* Alerts */
.pri-alert { display: flex; align-items: center; gap: 0.5rem; padding: 0.85rem 1.25rem; font-size: 0.85rem; border: 1px solid #e0e1e3; margin-bottom: 1rem; position: relative; }
.pri-alert-success { border-left: 4px solid #059669; background: rgba(5,150,105,0.05); color: #151515; }
.pri-alert-success i:first-child { color: #059669; }
.pri-alert-danger { border-left: 4px solid #dc2626; background: rgba(220,38,38,0.04); color: #151515; }
.pri-alert-danger i:first-child { color: #dc2626; }
.pri-alert span { flex: 1; }
.pri-alert-close { background: none; border: none; cursor: pointer; color: #6b7280; padding: 0.25rem; line-height: 1; font-size: 1.1rem; }
.pri-alert-close:hover { color: #151515; }

/* Buttons */
.pri-btn { display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border: 2px solid transparent; cursor: pointer; text-decoration: none; transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease; line-height: 1.4; }
.pri-btn-green { background: #059669; color: #fff; border-color: #059669; }
.pri-btn-green:hover { background: #047857; border-color: #047857; color: #fff; box-shadow: 0 2px 8px rgba(5,150,105,0.2); }
.pri-btn-accent { background: #E34824; color: #fff; border-color: #E34824; }
.pri-btn-accent:hover { background: #c93d1e; border-color: #c93d1e; color: #fff; box-shadow: 0 2px 8px rgba(227,72,36,0.2); }
.pri-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.pri-btn-secondary:hover { border-color: #151515; color: #151515; }

/* Cards */
.pri-card { background: #fff; border: 1px solid #e0e1e3; overflow: hidden; margin-bottom: 1.5rem; }
.pri-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.6rem; }
.pri-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.pri-card-header--accent::before { background: #E34824; }
.pri-card-header--gray::before { background: #6b7280; }
.pri-card-title { font-size: 0.88rem; font-weight: 700; color: #151515; margin: 0; flex: 1; }

/* Icon Box */
.pri-icon-box { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.pri-icon-box--accent { background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15); color: #E34824; }
.pri-icon-box--gray { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); color: #6b7280; }

/* Badge */
.pri-badge { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.25rem 0.65rem; font-size: 0.7rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; }
.pri-badge-secondary { background: rgba(107,114,128,0.06); color: #6b7280; border: 1px solid rgba(107,114,128,0.2); }

/* Filter Card */
.pri-toggle-btn { background: none; border: none; cursor: pointer; color: #6b7280; padding: 0.25rem; line-height: 1; margin-left: auto; transition: transform 0.2s ease; }
.pri-toggle-btn.collapsed i { transform: rotate(-90deg); }
.pri-toggle-btn i { transition: transform 0.2s ease; display: inline-block; }
.pri-filter-body { display: none; padding: 1.25rem 1.5rem; }
.pri-filter-body.open { display: block; }
.pri-filter-row { display: flex; gap: 1rem; align-items: flex-end; flex-wrap: wrap; }
.pri-filter-field { display: flex; flex-direction: column; gap: 0.3rem; min-width: 160px; }
.pri-filter-field--grow { flex: 1; min-width: 200px; }
.pri-filter-actions { display: flex; gap: 0.5rem; align-items: flex-end; }

/* Labels & Inputs */
.pri-label { font-size: 0.8rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #151515; }
.pri-input { border: 1px solid #e0e1e3; font-size: 0.85rem; padding: 0.45rem 0.65rem; background: #fff; color: #151515; width: 100%; transition: border-color 0.2s, box-shadow 0.2s; }
.pri-input:focus { outline: none; border-color: #E34824; box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
.pri-search-wrap { position: relative; }
.pri-search-icon { position: absolute; left: 0.65rem; top: 50%; transform: translateY(-50%); color: #9ca3af; pointer-events: none; font-size: 0.85rem; }
.pri-search-input { padding-left: 2rem; }

/* Table */
.pri-table-wrap { overflow-x: auto; }
.pri-table { width: 100%; border-collapse: collapse; }
.pri-table thead th { background: #151515; color: #fff; font-size: 0.78rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; padding: 0.75rem 1rem; text-align: left; white-space: nowrap; }
.pri-th-actions { text-align: right !important; width: 180px; }
.pri-table tbody td { font-size: 0.85rem; color: #151515; padding: 0.75rem 1rem; border-bottom: 1px solid #EEEFF0; vertical-align: middle; }
.pri-table tbody tr:hover { background: rgba(227,72,36,0.03); }
.pri-link-name { font-weight: 600; color: #E34824; text-decoration: none; }
.pri-link-name:hover { color: #c93d1e; text-decoration: underline; }
.pri-td-desc { color: #6b7280; font-size: 0.82rem; max-width: 320px; }
.pri-td-date { white-space: nowrap; color: #151515; }
.pri-td-actions { text-align: right; white-space: nowrap; }

/* Action Buttons */
.pri-action-btn { width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(0,0,0,0.15); background: transparent; text-decoration: none; transition: background 0.2s ease, border-color 0.2s ease; margin-left: 0.25rem; font-size: 0.85rem; }
.pri-action-btn--cyan { color: #0891b2; border-color: rgba(8,145,178,0.15); }
.pri-action-btn--cyan:hover { background: rgba(8,145,178,0.08); border-color: #0891b2; color: #0891b2; }
.pri-action-btn--accent { color: #E34824; border-color: rgba(227,72,36,0.15); }
.pri-action-btn--accent:hover { background: rgba(227,72,36,0.08); border-color: #E34824; color: #E34824; }
.pri-action-btn--amber { color: #d97706; border-color: rgba(217,119,6,0.15); }
.pri-action-btn--amber:hover { background: rgba(217,119,6,0.08); border-color: #d97706; color: #d97706; }
.pri-action-btn--danger { color: #dc2626; border-color: rgba(220,38,38,0.15); }
.pri-action-btn--danger:hover { background: rgba(220,38,38,0.08); border-color: #dc2626; color: #dc2626; }

/* Empty State */
.pri-empty-state { text-align: center; padding: 2.5rem 1rem !important; }
.pri-empty-icon { font-size: 2.5rem; color: #e0e1e3; display: block; margin-bottom: 0.5rem; }
.pri-empty-text { font-size: 0.85rem; color: #6b7280; margin: 0; }

/* Pagination */
.pri-pagination-bar { display: flex; justify-content: space-between; align-items: center; padding: 0.85rem 1.25rem; border-top: 1px solid #e0e1e3; flex-wrap: wrap; gap: 0.75rem; }
.pri-pagination-info { font-size: 0.78rem; color: #9ca3af; }
.pri-pagination { display: flex; gap: 0; }
.pri-page-link { display: inline-flex; align-items: center; justify-content: center; min-width: 34px; height: 34px; padding: 0 0.5rem; font-size: 0.82rem; font-weight: 500; color: #151515; border: 1px solid #e0e1e3; background: #fff; text-decoration: none; transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease; }
.pri-page-link:not(:last-child) { border-right: none; }
.pri-page-link:hover:not(.disabled):not(.active) { background: rgba(227,72,36,0.06); color: #E34824; }
.pri-page-link.active { background: #E34824; color: #fff; border-color: #E34824; }
.pri-page-link.active + .pri-page-link { border-left-color: #E34824; }
.pri-page-link.disabled { color: #9ca3af; pointer-events: none; opacity: 0.5; }

/* ===== Responsive ===== */
@media (max-width: 991.98px) {
    .pri-filter-row { flex-direction: column; }
    .pri-filter-field { min-width: 100%; }
    .pri-filter-actions { width: 100%; }
    .pri-filter-actions .pri-btn { flex: 1; justify-content: center; }
    .pri-td-desc { max-width: 200px; }
}

@media (max-width: 575.98px) {
    .pri-page { padding: 1rem; }
    .pri-header { flex-direction: column; align-items: stretch; }
    .pri-header-right { width: 100%; }
    .pri-header-right .pri-btn { width: 100%; justify-content: center; }
    .pri-title { font-size: 1.25rem; }
    .pri-pagination-bar { flex-direction: column; align-items: stretch; text-align: center; }
    .pri-pagination { justify-content: center; }
}

/* ============================================
    PROGETTI > CREATE PAGE STYLES
============================================ */

/* ===== prc- Progetto Create ===== */
.prc-page { padding: 2rem; }

/* Breadcrumb */
.prc-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1rem; }
.prc-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.prc-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.prc-sep { color: #e0e1e3; display: flex; align-items: center; }
.prc-current { color: #6b7280; font-weight: 500; }

/* Header */
.prc-header { margin-bottom: 1.5rem; }
.prc-title { font-size: 1.45rem; font-weight: 700; color: #151515; letter-spacing: -0.025em; display: flex; align-items: center; gap: 0.5rem; margin: 0; }
.prc-subtitle { font-size: 0.85rem; color: #6b7280; margin: 0.25rem 0 0 0; }

/* Alerts */
.prc-alert { display: flex; align-items: center; gap: 0.5rem; padding: 0.85rem 1.25rem; font-size: 0.85rem; border: 1px solid #e0e1e3; margin-bottom: 1rem; }
.prc-alert-danger { border-left: 4px solid #dc2626; background: rgba(220,38,38,0.04); color: #151515; }

/* Cards */
.prc-card { background: #fff; border: 1px solid #e0e1e3; overflow: hidden; margin-bottom: 1.5rem; }
.prc-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.6rem; }
.prc-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.prc-card-header--accent::before { background: #E34824; }
.prc-card-header--green::before { background: #059669; }
.prc-card-header--cyan::before { background: #0891b2; }
.prc-card-title { font-size: 0.88rem; font-weight: 700; color: #151515; margin: 0; }
.prc-card-body { padding: 1.5rem 1.5rem 1.5rem 1.75rem; }
.prc-card-body--actions { display: flex; flex-direction: column; gap: 0.5rem; }

/* Icon Box */
.prc-icon-box { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.prc-icon-box--accent { background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15); color: #E34824; }
.prc-icon-box--green { background: rgba(5,150,105,0.08); border: 1px solid rgba(5,150,105,0.15); color: #059669; }
.prc-icon-box--cyan { background: rgba(8,145,178,0.08); border: 1px solid rgba(8,145,178,0.15); color: #0891b2; }

/* Sidebar */
.prc-sidebar { position: sticky; top: 72px; z-index: 10; }

/* Section Title */
.prc-section-title { font-size: 0.82rem; font-weight: 600; color: #6b7280; text-transform: uppercase; letter-spacing: 0.03em; margin-bottom: 0.75rem; display: flex; align-items: center; gap: 0.4rem; }

/* Separator */
.prc-separator { border-top: 1px solid #EEEFF0; margin: 1.5rem 0; }

/* Form */
.prc-form-group { margin-bottom: 0.85rem; }
.prc-label { display: block; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #151515; margin-bottom: 0.35rem; }
.prc-required { color: #dc2626; font-weight: 700; }
.prc-input,
.prc-textarea { display: block; width: 100%; border: 1px solid #e0e1e3; font-size: 0.85rem; padding: 0.5rem 0.75rem; background: #fff; color: #151515; transition: border-color 0.2s, box-shadow 0.2s; font-family: inherit; }
.prc-input:focus,
.prc-textarea:focus { outline: none; border-color: #E34824; box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
.prc-textarea { resize: vertical; min-height: 100px; }
.prc-validation { font-size: 0.72rem; color: #dc2626; display: block; margin-top: 0.2rem; }

/* Row / Col */
.prc-row { display: flex; gap: 1rem; }
.prc-col { flex: 1; min-width: 0; }

/* Buttons */
.prc-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.35rem; padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border: 2px solid transparent; cursor: pointer; text-decoration: none; transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease; line-height: 1.4; }
.prc-btn-full { width: 100%; }
.prc-btn-green { background: #059669; color: #fff; border-color: #059669; }
.prc-btn-green:hover { background: #047857; border-color: #047857; color: #fff; box-shadow: 0 2px 8px rgba(5,150,105,0.2); }
.prc-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.prc-btn-secondary:hover { border-color: #151515; color: #151515; }

/* Info Box */
.prc-info-box { display: flex; align-items: flex-start; gap: 0.5rem; font-size: 0.82rem; color: #6b7280; padding: 0.5rem 0.65rem; background: rgba(8,145,178,0.04); border-left: 3px solid #0891b2; margin-bottom: 0.6rem; }
.prc-info-box i { color: #0891b2; margin-top: 0.1rem; flex-shrink: 0; }
.prc-info-box:last-child { margin-bottom: 0; }

/* ===== Responsive ===== */
@media (max-width: 991.98px) {
    .prc-sidebar { position: static; }
}

@media (max-width: 575.98px) {
    .prc-page { padding: 1rem; }
    .prc-title { font-size: 1.25rem; }
    .prc-row { flex-direction: column; gap: 0; }
}

/* ============================================
    PROGETTI > DETAILS PAGE STYLES
============================================ */

/* ===== prd- Progetto Details ===== */
.prd-page { padding: 2rem; }

/* Breadcrumb */
.prd-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1rem; }
.prd-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.prd-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.prd-sep { color: #e0e1e3; display: flex; align-items: center; }
.prd-current { color: #6b7280; font-weight: 500; }

/* Header */
.prd-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 1.5rem; gap: 1rem; flex-wrap: wrap; }
.prd-header-left { display: flex; flex-direction: column; }
.prd-title { font-size: 1.45rem; font-weight: 700; color: #151515; letter-spacing: -0.025em; display: flex; align-items: center; gap: 0.5rem; margin: 0; }
.prd-subtitle { font-size: 0.85rem; color: #6b7280; margin: 0.25rem 0 0 0; }
.prd-header-right { display: flex; align-items: center; gap: 0.5rem; flex-shrink: 0; }

/* Buttons */
.prd-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.35rem; padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border: 2px solid transparent; cursor: pointer; text-decoration: none; transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease; line-height: 1.4; }
.prd-btn-accent { background: #E34824; color: #fff; border-color: #E34824; }
.prd-btn-accent:hover { background: #c93d1e; border-color: #c93d1e; color: #fff; box-shadow: 0 2px 8px rgba(227,72,36,0.2); }
.prd-btn-green { background: #059669; color: #fff; border-color: #059669; }
.prd-btn-green:hover { background: #047857; border-color: #047857; color: #fff; box-shadow: 0 2px 8px rgba(5,150,105,0.2); }
.prd-btn-amber { background: #d97706; color: #fff; border-color: #d97706; }
.prd-btn-amber:hover { background: #b45309; border-color: #b45309; color: #fff; box-shadow: 0 2px 8px rgba(217,119,6,0.2); }
.prd-btn-danger { background: #dc2626; color: #fff; border-color: #dc2626; }
.prd-btn-danger:hover { background: #b91c1c; border-color: #b91c1c; color: #fff; box-shadow: 0 2px 8px rgba(220,38,38,0.2); }
.prd-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.prd-btn-secondary:hover { border-color: #151515; color: #151515; }
.prd-btn-sm { padding: 0.35rem 0.85rem; font-size: 0.8rem; margin-left: auto; }

/* Alerts */
.prd-alert { display: flex; align-items: center; gap: 0.5rem; padding: 0.85rem 1.25rem; font-size: 0.85rem; border: 1px solid #e0e1e3; margin-bottom: 1rem; position: relative; }
.prd-alert-success { border-left: 4px solid #059669; background: rgba(5,150,105,0.05); color: #151515; }
.prd-alert-success i:first-child { color: #059669; }
.prd-alert-danger { border-left: 4px solid #dc2626; background: rgba(220,38,38,0.04); color: #151515; }
.prd-alert-danger i:first-child { color: #dc2626; }
.prd-alert span { flex: 1; }
.prd-alert-close { background: none; border: none; cursor: pointer; color: #6b7280; padding: 0.25rem; line-height: 1; font-size: 1.1rem; }
.prd-alert-close:hover { color: #151515; }

/* Cards */
.prd-card { background: #fff; border: 1px solid #e0e1e3; overflow: hidden; margin-bottom: 1.5rem; }
.prd-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.6rem; }
.prd-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.prd-card-header--accent::before { background: #E34824; }
.prd-card-header--green::before { background: #059669; }
.prd-card-header--cyan::before { background: #0891b2; }
.prd-card-title { font-size: 0.88rem; font-weight: 700; color: #151515; margin: 0; flex: 1; }
.prd-card-body { padding: 1.5rem 1.5rem 1.5rem 1.75rem; }

/* Icon Box */
.prd-icon-box { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.prd-icon-box--accent { background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15); color: #E34824; }
.prd-icon-box--green { background: rgba(5,150,105,0.08); border: 1px solid rgba(5,150,105,0.15); color: #059669; }
.prd-icon-box--cyan { background: rgba(8,145,178,0.08); border: 1px solid rgba(8,145,178,0.15); color: #0891b2; }

/* Fields (read-only) */
.prd-field { display: flex; margin-bottom: 0.85rem; }
.prd-field:last-child { margin-bottom: 0; }
.prd-field-label { font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; width: 140px; flex-shrink: 0; padding-top: 0.1rem; }
.prd-field-value { font-size: 0.85rem; color: #151515; flex: 1; }
.prd-empty-val { color: #9ca3af; font-style: italic; }

/* Badge */
.prd-badge { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.25rem 0.65rem; font-size: 0.7rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; }
.prd-badge-secondary { background: rgba(107,114,128,0.06); color: #6b7280; border: 1px solid rgba(107,114,128,0.2); }

/* Table */
.prd-table-wrap { overflow-x: auto; }
.prd-table { width: 100%; border-collapse: collapse; }
.prd-table thead th { background: #151515; color: #fff; font-size: 0.78rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; padding: 0.75rem 1rem; text-align: left; white-space: nowrap; }
.prd-th-right { text-align: right !important; }
.prd-th-center { text-align: center !important; }
.prd-th-actions { text-align: right !important; width: 160px; }
.prd-table tbody td { font-size: 0.85rem; color: #151515; padding: 0.75rem 1rem; border-bottom: 1px solid #EEEFF0; vertical-align: middle; }
.prd-table tbody tr:hover { background: rgba(227,72,36,0.03); }
.prd-td-right { text-align: right; }
.prd-td-center { text-align: center; }
.prd-td-actions { text-align: right; white-space: nowrap; }
.prd-text-danger { color: #dc2626; }
.prd-text-success { color: #059669; }
.prd-muted { color: #9ca3af; }

/* Action Buttons */
.prd-action-btn { width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(0,0,0,0.15); background: transparent; text-decoration: none; cursor: pointer; transition: background 0.2s ease, border-color 0.2s ease; margin-left: 0.25rem; font-size: 0.85rem; }
.prd-action-btn--accent { color: #E34824; border-color: rgba(227,72,36,0.15); }
.prd-action-btn--accent:hover { background: rgba(227,72,36,0.08); border-color: #E34824; color: #E34824; }
.prd-action-btn--amber { color: #d97706; border-color: rgba(217,119,6,0.15); }
.prd-action-btn--amber:hover { background: rgba(217,119,6,0.08); border-color: #d97706; color: #d97706; }
.prd-action-btn--danger { color: #dc2626; border-color: rgba(220,38,38,0.15); }
.prd-action-btn--danger:hover { background: rgba(220,38,38,0.08); border-color: #dc2626; color: #dc2626; }

/* Empty State */
.prd-empty-state { text-align: center; padding: 2.5rem 1rem; }
.prd-empty-icon { font-size: 2.5rem; color: #e0e1e3; display: block; margin-bottom: 0.5rem; }
.prd-empty-text { font-size: 0.85rem; color: #6b7280; margin: 0; }

/* Form (modals) */
.prd-form-group { margin-bottom: 0.85rem; }
.prd-label { display: block; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #151515; margin-bottom: 0.35rem; }
.prd-required { color: #dc2626; font-weight: 700; }
.prd-input { display: block; width: 100%; border: 1px solid #e0e1e3; font-size: 0.85rem; padding: 0.5rem 0.75rem; background: #fff; color: #151515; transition: border-color 0.2s, box-shadow 0.2s; font-family: inherit; }
.prd-input:focus { outline: none; border-color: #E34824; box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
.prd-form-text { font-size: 0.72rem; color: #9ca3af; margin-top: 0.25rem; }

/* Info Box */
.prd-info-box { display: flex; align-items: flex-start; gap: 0.5rem; font-size: 0.82rem; color: #6b7280; padding: 0.5rem 0.65rem; margin-top: 0.75rem; }
.prd-info-box i { margin-top: 0.1rem; flex-shrink: 0; }
.prd-info-box--danger { background: rgba(220,38,38,0.04); border-left: 3px solid #dc2626; color: #dc2626; }
.prd-info-box--danger i { color: #dc2626; }

/* ===== Responsive ===== */
@media (max-width: 991.98px) {
    .prd-field { flex-direction: column; }
    .prd-field-label { width: auto; margin-bottom: 0.15rem; }
}

@media (max-width: 575.98px) {
    .prd-page { padding: 1rem; }
    .prd-header { flex-direction: column; align-items: stretch; }
    .prd-header-right { width: 100%; display: flex; flex-direction: column; gap: 0.5rem; }
    .prd-header-right .prd-btn { width: 100%; justify-content: center; }
    .prd-title { font-size: 1.25rem; }
}

/* ============================================
    PROGETTI > EDIT PAGE STYLES
============================================ */

/* ===== pre- Progetto Edit ===== */
.pre-page { padding: 2rem; }

/* Breadcrumb */
.pre-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1rem; }
.pre-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.pre-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.pre-sep { color: #e0e1e3; display: flex; align-items: center; }
.pre-current { color: #6b7280; font-weight: 500; }

/* Header */
.pre-header { margin-bottom: 1.5rem; }
.pre-title { font-size: 1.45rem; font-weight: 700; color: #151515; letter-spacing: -0.025em; display: flex; align-items: center; gap: 0.5rem; margin: 0; }
.pre-subtitle { font-size: 0.85rem; color: #6b7280; margin: 0.25rem 0 0 0; }

/* Alerts */
.pre-alert { display: flex; align-items: center; gap: 0.5rem; padding: 0.85rem 1.25rem; font-size: 0.85rem; border: 1px solid #e0e1e3; margin-bottom: 1rem; }
.pre-alert-danger { border-left: 4px solid #dc2626; background: rgba(220,38,38,0.04); color: #151515; }

/* Cards */
.pre-card { background: #fff; border: 1px solid #e0e1e3; overflow: hidden; margin-bottom: 1.5rem; }
.pre-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.6rem; }
.pre-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.pre-card-header--amber::before { background: #d97706; }
.pre-card-header--green::before { background: #059669; }
.pre-card-header--cyan::before { background: #0891b2; }
.pre-card-title { font-size: 0.88rem; font-weight: 700; color: #151515; margin: 0; }
.pre-card-body { padding: 1.5rem 1.5rem 1.5rem 1.75rem; }
.pre-card-body--actions { display: flex; flex-direction: column; gap: 0.5rem; }

/* Icon Box */
.pre-icon-box { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.pre-icon-box--amber { background: rgba(217,119,6,0.08); border: 1px solid rgba(217,119,6,0.15); color: #d97706; }
.pre-icon-box--green { background: rgba(5,150,105,0.08); border: 1px solid rgba(5,150,105,0.15); color: #059669; }
.pre-icon-box--cyan { background: rgba(8,145,178,0.08); border: 1px solid rgba(8,145,178,0.15); color: #0891b2; }

/* Sidebar */
.pre-sidebar { position: sticky; top: 72px; z-index: 10; }

/* Section Title */
.pre-section-title { font-size: 0.82rem; font-weight: 600; color: #6b7280; text-transform: uppercase; letter-spacing: 0.03em; margin-bottom: 0.75rem; display: flex; align-items: center; gap: 0.4rem; }

/* Separator */
.pre-separator { border-top: 1px solid #EEEFF0; margin: 1.5rem 0; }

/* Form */
.pre-form-group { margin-bottom: 0.85rem; }
.pre-label { display: block; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #151515; margin-bottom: 0.35rem; }
.pre-required { color: #dc2626; font-weight: 700; }
.pre-input,
.pre-textarea { display: block; width: 100%; border: 1px solid #e0e1e3; font-size: 0.85rem; padding: 0.5rem 0.75rem; background: #fff; color: #151515; transition: border-color 0.2s, box-shadow 0.2s; font-family: inherit; }
.pre-input:focus,
.pre-textarea:focus { outline: none; border-color: #E34824; box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
.pre-textarea { resize: vertical; min-height: 100px; }
.pre-validation { font-size: 0.72rem; color: #dc2626; display: block; margin-top: 0.2rem; }

/* Row / Col */
.pre-row { display: flex; gap: 1rem; }
.pre-col { flex: 1; min-width: 0; }

/* Buttons */
.pre-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.35rem; padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border: 2px solid transparent; cursor: pointer; text-decoration: none; transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease; line-height: 1.4; }
.pre-btn-full { width: 100%; }
.pre-btn-amber { background: #d97706; color: #fff; border-color: #d97706; }
.pre-btn-amber:hover { background: #b45309; border-color: #b45309; color: #fff; box-shadow: 0 2px 8px rgba(217,119,6,0.2); }
.pre-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.pre-btn-secondary:hover { border-color: #151515; color: #151515; }

/* Info Box */
.pre-info-box { display: flex; align-items: flex-start; gap: 0.5rem; font-size: 0.82rem; color: #6b7280; padding: 0.5rem 0.65rem; background: rgba(8,145,178,0.04); border-left: 3px solid #0891b2; margin-bottom: 0.6rem; }
.pre-info-box i { color: #0891b2; margin-top: 0.1rem; flex-shrink: 0; }
.pre-info-box:last-child { margin-bottom: 0; }

/* ===== Responsive ===== */
@media (max-width: 991.98px) {
    .pre-sidebar { position: static; }
}

@media (max-width: 575.98px) {
    .pre-page { padding: 1rem; }
    .pre-title { font-size: 1.25rem; }
    .pre-row { flex-direction: column; gap: 0; }
}

/* ============================================
    PROGETTI > DELETE PAGE STYLES
============================================ */

/* ===== prdel- Progetto Delete ===== */
.prdel-page { padding: 2rem; }

/* Breadcrumb */
.prdel-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1rem; }
.prdel-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.prdel-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.prdel-sep { color: #e0e1e3; display: flex; align-items: center; }
.prdel-current { color: #6b7280; font-weight: 500; }

/* Header */
.prdel-header { margin-bottom: 1.5rem; }
.prdel-title { font-size: 1.45rem; font-weight: 700; color: #dc2626; letter-spacing: -0.025em; display: flex; align-items: center; gap: 0.5rem; margin: 0; }

/* Alerts */
.prdel-alert { display: flex; align-items: flex-start; gap: 0.5rem; padding: 0.85rem 1.25rem; font-size: 0.85rem; border: 1px solid #e0e1e3; margin-bottom: 1rem; }
.prdel-alert-danger { border-left: 4px solid #dc2626; background: rgba(220,38,38,0.04); color: #151515; }
.prdel-alert-danger i:first-child { color: #dc2626; margin-top: 0.15rem; flex-shrink: 0; }
.prdel-alert span { flex: 1; }

/* Cards */
.prdel-card { background: #fff; border: 1px solid #e0e1e3; overflow: hidden; margin-bottom: 1.5rem; }
.prdel-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.6rem; }
.prdel-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.prdel-card-header--danger::before { background: #dc2626; }
.prdel-card-header--gray::before { background: #6b7280; }
.prdel-card-title { font-size: 0.88rem; font-weight: 700; color: #151515; margin: 0; }
.prdel-card-body { padding: 1.5rem 1.5rem 1.5rem 1.75rem; }
.prdel-card-body--actions { display: flex; flex-direction: column; gap: 0.5rem; }

/* Icon Box */
.prdel-icon-box { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.prdel-icon-box--danger { background: rgba(220,38,38,0.08); border: 1px solid rgba(220,38,38,0.15); color: #dc2626; }
.prdel-icon-box--gray { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); color: #6b7280; }

/* Sidebar */
.prdel-sidebar { position: sticky; top: 72px; z-index: 10; }

/* Fields (read-only) */
.prdel-field { display: flex; margin-bottom: 0.85rem; }
.prdel-field:last-child { margin-bottom: 0; }
.prdel-field-label { font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; width: 140px; flex-shrink: 0; padding-top: 0.1rem; }
.prdel-field-value { font-size: 0.85rem; color: #151515; flex: 1; }
.prdel-empty-val { color: #9ca3af; font-style: italic; }

/* Buttons */
.prdel-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.35rem; padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border: 2px solid transparent; cursor: pointer; text-decoration: none; transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease; line-height: 1.4; }
.prdel-btn-full { width: 100%; }
.prdel-btn-danger { background: #dc2626; color: #fff; border-color: #dc2626; }
.prdel-btn-danger:hover { background: #b91c1c; border-color: #b91c1c; color: #fff; box-shadow: 0 2px 8px rgba(220,38,38,0.2); }
.prdel-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.prdel-btn-secondary:hover { border-color: #151515; color: #151515; }

/* ===== Responsive ===== */
@media (max-width: 991.98px) {
    .prdel-sidebar { position: static; }
    .prdel-field { flex-direction: column; }
    .prdel-field-label { width: auto; margin-bottom: 0.15rem; }
}

@media (max-width: 575.98px) {
    .prdel-page { padding: 1rem; }
    .prdel-title { font-size: 1.25rem; }
}

/* ============================================
    PROGETTI > GANTT PAGE STYLES
============================================ */

/* ===== prg- Progetto Gantt ===== */
.prg-page { padding: 2rem; }

/* Breadcrumb */
.prg-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1rem; }
.prg-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.prg-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.prg-sep { color: #e0e1e3; display: flex; align-items: center; }
.prg-current { color: #6b7280; font-weight: 500; }

/* Header */
.prg-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 1.5rem; gap: 1rem; flex-wrap: wrap; }
.prg-header-left { display: flex; flex-direction: column; }
.prg-title { font-size: 1.45rem; font-weight: 700; color: #151515; letter-spacing: -0.025em; display: flex; align-items: center; gap: 0.5rem; margin: 0; }
.prg-subtitle { font-size: 0.85rem; color: #6b7280; margin: 0.25rem 0 0 0; display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.prg-header-right { display: flex; align-items: center; gap: 0.5rem; flex-shrink: 0; }

/* Year Bar */
.prg-year-bar { display: flex; align-items: center; justify-content: center; gap: 0.35rem; padding: 0.75rem 1rem; background: #fff; border: 1px solid #e0e1e3; margin-bottom: 1rem; }
.prg-year-btn { width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #e0e1e3; background: #fff; color: #151515; text-decoration: none; cursor: pointer; transition: background 0.2s, border-color 0.2s; font-size: 0.85rem; }
.prg-year-btn:hover:not(:disabled) { background: rgba(227,72,36,0.06); border-color: #E34824; color: #E34824; }
.prg-year-btn:disabled { color: #9ca3af; cursor: not-allowed; opacity: 0.5; }
.prg-year-btn.dropdown-toggle { width: auto; padding: 0 0.5rem; }
.prg-year-btn.dropdown-toggle::after { margin-left: 0.3rem; }
.prg-year-label { font-size: 1.15rem; font-weight: 700; color: #151515; min-width: 3.5rem; text-align: center; }

/* Buttons */
.prg-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.35rem; padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border: 2px solid transparent; cursor: pointer; text-decoration: none; transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease; line-height: 1.4; }
.prg-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.prg-btn-secondary:hover { border-color: #151515; color: #151515; }

/* Badge */
.prg-badge { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.25rem 0.65rem; font-size: 0.7rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; }
.prg-badge-secondary { background: rgba(107,114,128,0.06); color: #6b7280; border: 1px solid rgba(107,114,128,0.2); }

/* Alerts */
.prg-alert { display: flex; align-items: center; gap: 0.5rem; padding: 0.85rem 1.25rem; font-size: 0.85rem; border: 1px solid #e0e1e3; margin-bottom: 1rem; position: relative; }
.prg-alert-success { border-left: 4px solid #059669; background: rgba(5,150,105,0.05); color: #151515; }
.prg-alert-success i:first-child { color: #059669; }
.prg-alert-danger { border-left: 4px solid #dc2626; background: rgba(220,38,38,0.04); color: #151515; }
.prg-alert-danger i:first-child { color: #dc2626; }
.prg-alert span { flex: 1; }
.prg-alert-close { background: none; border: none; cursor: pointer; color: #6b7280; padding: 0.25rem; line-height: 1; font-size: 1.1rem; }
.prg-alert-close:hover { color: #151515; }

/* Stats */
.prg-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-bottom: 1rem; }
.prg-stat { text-align: center; padding: 1rem 0.75rem; border: 1px solid #e0e1e3; background: #fff; }
.prg-stat-label { font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; margin-bottom: 0.25rem; }
.prg-stat-num { font-size: 1.5rem; font-weight: 700; }
.prg-stat-sep { color: #9ca3af; font-weight: 400; margin: 0 0.15rem; }

/* Legend */
.prg-legend { display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: 1.25rem; }
.prg-legend-item { display: flex; align-items: center; gap: 0.4rem; font-size: 0.78rem; color: #6b7280; }
.prg-legend-dot { width: 14px; height: 14px; flex-shrink: 0; }

/* Card */
.prg-card { background: #fff; border: 1px solid #e0e1e3; overflow: hidden; margin-bottom: 1.5rem; }

/* Gantt Table */
.prg-table-wrap { overflow-x: auto; }
.prg-table { width: 100%; border-collapse: collapse; }
.prg-table thead th { background: #151515; color: #fff; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; padding: 0.7rem 0.6rem; text-align: left; white-space: nowrap; }
.prg-th-center { text-align: center !important; }
.prg-table tbody td { font-size: 0.82rem; color: #151515; padding: 0.6rem 0.6rem; border-bottom: 1px solid #EEEFF0; vertical-align: middle; }
.prg-table tfoot td { font-size: 0.82rem; font-weight: 700; color: #151515; padding: 0.7rem 0.6rem; border-bottom: 1px solid #e0e1e3; }
.prg-table tbody tr:hover { background: rgba(227,72,36,0.03); }
.prg-td-center { text-align: center; }

/* Sticky column */
.prg-sticky-col { position: sticky; left: 0; background: #fff; z-index: 1; font-weight: 700; }
thead .prg-sticky-col { background: #151515; z-index: 2; }
.prg-tfoot-anno .prg-sticky-col { background: #EEEFF0; }
.prg-tfoot-progetto .prg-sticky-col { background: #fff3cd; }

/* Cell states */
.prg-active-cell { background-color: #e8f4e8 !important; }
.prg-disabled-cell { background-color: #f5f5f5 !important; color: #ccc; }
.prg-disabled-header { opacity: 0.4; }
.prg-scostamento-cell { background-color: #fff3cd !important; }

/* Cell values */
.prg-cell-values { font-size: 0.82rem; }
.prg-val-plan { color: #E34824; font-weight: 600; }
.prg-val-sep { color: #9ca3af; margin: 0 0.1rem; }
.prg-val-eff { color: #059669; font-weight: 700; }
.prg-cell-scost { font-size: 0.65rem; font-weight: 700; }
.prg-text-danger { color: #dc2626; }
.prg-text-success { color: #059669; }
.prg-text-muted { color: #9ca3af; }

/* Footer rows */
.prg-tfoot-anno td { background: #EEEFF0; }
.prg-tfoot-progetto td { background: #fff3cd; }
.prg-tfoot-sub { font-size: 0.68rem; font-weight: 400; color: #9ca3af; }

/* Link */
.prg-link-name { font-weight: 600; color: #E34824; text-decoration: none; }
.prg-link-name:hover { color: #c93d1e; text-decoration: underline; }
.prg-link { color: #E34824; text-decoration: none; font-weight: 500; }
.prg-link:hover { color: #c93d1e; text-decoration: underline; }

/* Empty state */
.prg-empty-state { text-align: center; padding: 3rem 1rem; }
.prg-empty-icon { font-size: 3rem; color: #e0e1e3; display: block; margin-bottom: 0.75rem; }
.prg-empty-text { font-size: 0.85rem; color: #6b7280; margin: 0; }

/* ===== Responsive ===== */
@media (max-width: 991.98px) {
    .prg-stats { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 575.98px) {
    .prg-page { padding: 1rem; }
    .prg-header { flex-direction: column; align-items: stretch; }
    .prg-header-right { width: 100%; flex-wrap: wrap; }
    .prg-title { font-size: 1.25rem; }
    .prg-stats { grid-template-columns: 1fr; }
    .prg-stat-num { font-size: 1.25rem; }
}


/* ============================================
    PROGETTI > GANTT DETTAGLIO PAGE STYLES
============================================ */

/* ===== gd- Gantt Dettaglio ===== */
.gd-page { padding: 2rem; }

/* Breadcrumb */
.gd-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1rem; }
.gd-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.gd-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.gd-sep { color: #e0e1e3; display: flex; align-items: center; }
.gd-current { color: #6b7280; font-weight: 500; }

/* Header */
.gd-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 1.5rem; gap: 1rem; flex-wrap: wrap; }
.gd-header-left { display: flex; flex-direction: column; }
.gd-title { font-size: 1.35rem; font-weight: 700; color: #151515; letter-spacing: -0.025em; display: flex; align-items: center; gap: 0.5rem; margin: 0; }
.gd-title-muted { color: #6b7280; font-weight: 500; }
.gd-subtitle { font-size: 0.85rem; color: #6b7280; margin: 0.25rem 0 0 0; }
.gd-header-right { display: flex; align-items: center; gap: 0.5rem; flex-shrink: 0; }

/* Year Bar */
.gd-year-bar { display: flex; align-items: center; justify-content: center; gap: 0.35rem; padding: 0.75rem 1rem; background: #fff; border: 1px solid #e0e1e3; margin-bottom: 1rem; }
.gd-year-btn { width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #e0e1e3; background: #fff; color: #151515; text-decoration: none; cursor: pointer; transition: background 0.2s, border-color 0.2s; font-size: 0.85rem; }
.gd-year-btn:hover:not(:disabled) { background: rgba(227,72,36,0.06); border-color: #E34824; color: #E34824; }
.gd-year-btn:disabled { color: #9ca3af; cursor: not-allowed; opacity: 0.5; }
.gd-year-btn.dropdown-toggle { width: auto; padding: 0 0.5rem; }
.gd-year-btn.dropdown-toggle::after { margin-left: 0.3rem; }
.gd-year-label { font-size: 1.15rem; font-weight: 700; color: #151515; min-width: 3.5rem; text-align: center; }

/* Buttons */
.gd-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.35rem; padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border: 2px solid transparent; cursor: pointer; text-decoration: none; transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease; line-height: 1.4; }
.gd-btn-green { background: #059669; color: #fff; border-color: #059669; }
.gd-btn-green:hover { background: #047857; border-color: #047857; color: #fff; box-shadow: 0 2px 8px rgba(5,150,105,0.2); }
.gd-btn-danger { background: #dc2626; color: #fff; border-color: #dc2626; }
.gd-btn-danger:hover { background: #b91c1c; border-color: #b91c1c; color: #fff; box-shadow: 0 2px 8px rgba(220,38,38,0.2); }
.gd-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.gd-btn-secondary:hover { border-color: #151515; color: #151515; }

/* Badge */
.gd-badge { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.25rem 0.65rem; font-size: 0.7rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; }
.gd-badge-secondary { background: rgba(107,114,128,0.06); color: #6b7280; border: 1px solid rgba(107,114,128,0.2); }

/* Alerts */
.gd-alert { display: flex; align-items: flex-start; gap: 0.5rem; padding: 0.85rem 1.25rem; font-size: 0.85rem; border: 1px solid #e0e1e3; margin-bottom: 1rem; position: relative; }
.gd-alert-success { border-left: 4px solid #059669; background: rgba(5,150,105,0.05); color: #151515; }
.gd-alert-success i:first-child { color: #059669; flex-shrink: 0; margin-top: 0.1rem; }
.gd-alert-danger { border-left: 4px solid #dc2626; background: rgba(220,38,38,0.04); color: #151515; }
.gd-alert-danger i:first-child { color: #dc2626; flex-shrink: 0; margin-top: 0.1rem; }
.gd-alert-warning { border-left: 4px solid #d97706; background: rgba(217,119,6,0.04); color: #151515; }
.gd-alert-warning i:first-child { color: #d97706; flex-shrink: 0; margin-top: 0.1rem; }
.gd-alert span { flex: 1; }
.gd-alert-close { background: none; border: none; cursor: pointer; color: #6b7280; padding: 0.25rem; line-height: 1; font-size: 1.1rem; }
.gd-alert-close:hover { color: #151515; }

/* Stats */
.gd-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-bottom: 1rem; }
.gd-stat { text-align: center; padding: 1rem 0.75rem; border: 1px solid #e0e1e3; background: #fff; }
.gd-stat-label { font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; margin-bottom: 0.25rem; }
.gd-stat-num { font-size: 1.5rem; font-weight: 700; color: #151515; }
.gd-text-accent { color: #E34824; }
.gd-text-green { color: #059669; }
.gd-text-danger { color: #dc2626; }
.gd-text-success { color: #059669; }
.gd-text-muted { color: #9ca3af; }

/* Tabs (override Bootstrap nav-tabs) */
.gd-tabs-header.nav-tabs { border-bottom: 2px solid #e0e1e3; }
.gd-tabs-header.nav-tabs .gd-tab-btn.nav-link { padding: 0.85rem 1.25rem; font-size: 0.8rem; font-weight: 600; color: #6b7280; background: transparent; border: none; border-radius: 0; position: relative; white-space: nowrap; display: flex; align-items: center; gap: 0.35rem; cursor: pointer; transition: color 0.15s; }
.gd-tabs-header.nav-tabs .gd-tab-btn.nav-link:hover { color: #E34824; border-color: transparent; }
.gd-tabs-header.nav-tabs .gd-tab-btn.nav-link.active { color: #E34824; background: transparent; border-color: transparent; }
.gd-tabs-header.nav-tabs .gd-tab-btn.nav-link.active::after { content: ''; position: absolute; bottom: -2px; left: 0; right: 0; height: 2px; background: #E34824; }

/* Form elements (modals) */
.gd-form-group { margin-bottom: 0.85rem; }
.gd-label { display: block; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #151515; margin-bottom: 0.35rem; }
.gd-required { color: #dc2626; font-weight: 700; }
.gd-form-text { font-size: 0.72rem; color: #9ca3af; margin-top: 0.25rem; }
.gd-separator { border-top: 1px solid #EEEFF0; margin: 1rem 0; }

/* Info Box */
.gd-info-box { display: flex; align-items: flex-start; gap: 0.5rem; font-size: 0.82rem; color: #6b7280; padding: 0.5rem 0.65rem; background: rgba(8,145,178,0.04); border-left: 3px solid #0891b2; }
.gd-info-box i { color: #0891b2; margin-top: 0.1rem; flex-shrink: 0; }

/* Card (partial) */
.gd-card { background: #fff; border: 1px solid #e0e1e3; overflow: hidden; margin-bottom: 1.5rem; }
.gd-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.6rem; }
.gd-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.gd-card-header--accent::before { background: #E34824; }
.gd-card-header--green::before { background: #059669; }
.gd-card-title { font-size: 0.88rem; font-weight: 700; color: #151515; margin: 0; flex: 1; }
.gd-header-info { font-size: 0.78rem; color: #9ca3af; }
.gd-card-footer { padding: 1rem 1.5rem; border-top: 1px solid #e0e1e3; text-align: right; }

/* Icon Box */
.gd-icon-box { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gd-icon-box--accent { background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15); color: #E34824; }
.gd-icon-box--green { background: rgba(5,150,105,0.08); border: 1px solid rgba(5,150,105,0.15); color: #059669; }

/* Btn extras */
.gd-btn-accent { background: #E34824; color: #fff; border-color: #E34824; }
.gd-btn-accent:hover { background: #c93d1e; border-color: #c93d1e; color: #fff; box-shadow: 0 2px 8px rgba(227,72,36,0.2); }
.gd-btn-sm { padding: 0.35rem 0.85rem; font-size: 0.8rem; }

/* Badge variants */
.gd-badge-danger { background: rgba(220,38,38,0.06); color: #dc2626; border: 1px solid rgba(220,38,38,0.2); }
.gd-badge-warn { background: rgba(217,119,6,0.06); color: #d97706; border: 1px solid rgba(217,119,6,0.2); }
.gd-badge-info { background: rgba(8,145,178,0.06); color: #0891b2; border: 1px solid rgba(8,145,178,0.2); }

/* Gantt Table */
.gd-table-wrap { overflow-x: auto; }
.gd-table { width: 100%; border-collapse: collapse; }
.gd-table thead th { background: #151515; color: #fff; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; padding: 0.7rem 0.6rem; text-align: left; white-space: nowrap; }
.gd-th-center { text-align: center !important; }
.gd-table tbody td { font-size: 0.82rem; color: #151515; padding: 0.6rem 0.6rem; border-bottom: 1px solid #EEEFF0; vertical-align: middle; }
.gd-table tfoot td { font-size: 0.82rem; font-weight: 700; color: #151515; padding: 0.7rem 0.6rem; border-bottom: 1px solid #e0e1e3; }
.gd-table tbody tr:hover { background: rgba(227,72,36,0.03); }
.gd-td-center { text-align: center; }

/* Sticky column */
.gd-sticky-col { position: sticky; left: 0; background: #fff; z-index: 1; font-weight: 700; }
thead .gd-sticky-col { background: #151515; z-index: 2; }
.gd-tfoot-anno .gd-sticky-col { background: #EEEFF0; }
.gd-tfoot-progetto .gd-sticky-col { background: #fff3cd; }

/* Cell states */
.gd-active-cell { background-color: #e8f4e8 !important; }
.gd-disabled-cell { background-color: #f5f5f5 !important; color: #ccc; }
.gd-disabled-header { opacity: 0.4; }
.gd-scostamento-cell { background-color: #fff3cd !important; }
.gd-terminated-cell { background-color: #fce4e4 !important; }

/* Cell values */
.gd-val-plan { color: #E34824; font-weight: 600; }
.gd-val-sep { color: #9ca3af; margin: 0 0.1rem; }
.gd-val-eff { color: #059669; font-weight: 700; }

/* Footer rows */
.gd-tfoot-anno td { background: #EEEFF0; }
.gd-tfoot-progetto td { background: #fff3cd; }
.gd-tfoot-sub { font-size: 0.68rem; font-weight: 400; color: #9ca3af; }

/* Ore input */
.gd-ore-input { width: 65px; margin: 0 auto; display: block; border: 1px solid #e0e1e3; font-size: 0.8rem; padding: 2px 4px; text-align: center; background: #fff; color: #151515; transition: border-color 0.2s, box-shadow 0.2s; }
.gd-ore-input:focus { outline: none; border-color: #E34824; box-shadow: 0 0 0 2px rgba(227,72,36,0.15); }

/* Action Buttons */
.gd-action-btn { width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(0,0,0,0.15); background: transparent; text-decoration: none; cursor: pointer; transition: background 0.2s ease, border-color 0.2s ease; font-size: 0.8rem; }
.gd-action-btn--danger { color: #dc2626; border-color: rgba(220,38,38,0.15); }
.gd-action-btn--danger:hover { background: rgba(220,38,38,0.08); border-color: #dc2626; }
.gd-action-btn--green { color: #059669; border-color: rgba(5,150,105,0.15); }
.gd-action-btn--green:hover { background: rgba(5,150,105,0.08); border-color: #059669; }

/* Empty state */
.gd-empty-state { text-align: center; padding: 2.5rem 1rem; }
.gd-empty-icon { font-size: 2.5rem; color: #e0e1e3; display: block; margin-bottom: 0.5rem; }
.gd-empty-text { font-size: 0.85rem; color: #6b7280; margin: 0; }

/* Mese select (header) */
.gd-mese-select { display: flex; align-items: center; gap: 0.4rem; }
.gd-label-inline { font-size: 0.78rem; font-weight: 600; color: #151515; white-space: nowrap; }

/* Rendicontazione section */
.gd-rend-section { border-top: 2px solid #e0e1e3; padding: 1.25rem 1.5rem; }
.gd-rend-title { font-size: 0.88rem; font-weight: 700; color: #151515; margin: 0 0 1rem 0; display: flex; align-items: center; gap: 0.4rem; }
.gd-rend-table { margin-bottom: 0; }
.gd-rend-thead th { background: #059669 !important; color: #fff; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; padding: 0.65rem 0.6rem; }

/* Ore max label */
.gd-ore-max-label { font-size: 0.65rem; color: #0891b2; margin-top: 0.2rem; text-align: center; }

/* ===== Responsive ===== */
@media (max-width: 991.98px) {
    .gd-stats { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 575.98px) {
    .gd-page { padding: 1rem; }
    .gd-header { flex-direction: column; align-items: stretch; }
    .gd-header-right { width: 100%; }
    .gd-header-right .gd-btn { width: 100%; justify-content: center; }
    .gd-title { font-size: 1.15rem; }
    .gd-stats { grid-template-columns: 1fr; }
}

/* ============================================
    RISORSE > INDEX PAGE STYLES
============================================ */

/* ===== rsi- Risorsa Index ===== */
.rsi-page { padding: 2rem; }

/* Breadcrumb */
.rsi-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1rem; }
.rsi-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.rsi-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.rsi-sep { color: #e0e1e3; display: flex; align-items: center; }
.rsi-current { color: #6b7280; font-weight: 500; }

/* Header */
.rsi-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 1.5rem; gap: 1rem; flex-wrap: wrap; }
.rsi-header-left { display: flex; flex-direction: column; }
.rsi-title { font-size: 1.45rem; font-weight: 700; color: #151515; letter-spacing: -0.025em; display: flex; align-items: center; gap: 0.5rem; margin: 0; }
.rsi-subtitle { font-size: 0.85rem; color: #6b7280; margin: 0.25rem 0 0 0; }
.rsi-header-right { display: flex; align-items: center; gap: 0.5rem; flex-shrink: 0; }

/* Buttons */
.rsi-btn { display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border: 2px solid transparent; cursor: pointer; text-decoration: none; transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease; line-height: 1.4; }
.rsi-btn-green { background: #059669; color: #fff; border-color: #059669; }
.rsi-btn-green:hover { background: #047857; border-color: #047857; color: #fff; box-shadow: 0 2px 8px rgba(5,150,105,0.2); }
.rsi-btn-accent { background: #E34824; color: #fff; border-color: #E34824; }
.rsi-btn-accent:hover { background: #c93d1e; border-color: #c93d1e; color: #fff; box-shadow: 0 2px 8px rgba(227,72,36,0.2); }
.rsi-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.rsi-btn-secondary:hover { border-color: #151515; color: #151515; }

/* Alerts */
.rsi-alert { display: flex; align-items: center; gap: 0.5rem; padding: 0.85rem 1.25rem; font-size: 0.85rem; border: 1px solid #e0e1e3; margin-bottom: 1rem; position: relative; }
.rsi-alert-success { border-left: 4px solid #059669; background: rgba(5,150,105,0.05); color: #151515; }
.rsi-alert-success i:first-child { color: #059669; }
.rsi-alert-danger { border-left: 4px solid #dc2626; background: rgba(220,38,38,0.04); color: #151515; }
.rsi-alert-danger i:first-child { color: #dc2626; }
.rsi-alert span { flex: 1; }
.rsi-alert-close { background: none; border: none; cursor: pointer; color: #6b7280; padding: 0.25rem; line-height: 1; font-size: 1.1rem; }
.rsi-alert-close:hover { color: #151515; }

/* Cards */
.rsi-card { background: #fff; border: 1px solid #e0e1e3; overflow: hidden; margin-bottom: 1.5rem; }
.rsi-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.6rem; }
.rsi-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.rsi-card-header--accent::before { background: #E34824; }
.rsi-card-header--gray::before { background: #6b7280; }
.rsi-card-title { font-size: 0.88rem; font-weight: 700; color: #151515; margin: 0; flex: 1; }

/* Icon Box */
.rsi-icon-box { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.rsi-icon-box--accent { background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15); color: #E34824; }
.rsi-icon-box--gray { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); color: #6b7280; }

/* Badge */
.rsi-badge { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.25rem 0.65rem; font-size: 0.7rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; }
.rsi-badge-secondary { background: rgba(107,114,128,0.06); color: #6b7280; border: 1px solid rgba(107,114,128,0.2); }
.rsi-badge-success { background: rgba(5,150,105,0.06); color: #059669; border: 1px solid rgba(5,150,105,0.2); }
.rsi-badge-danger { background: rgba(220,38,38,0.06); color: #dc2626; border: 1px solid rgba(220,38,38,0.2); }
.rsi-badge-primary { background: rgba(227,72,36,0.06); color: #E34824; border: 1px solid rgba(227,72,36,0.2); }
.rsi-badge-warn { background: rgba(217,119,6,0.06); color: #d97706; border: 1px solid rgba(217,119,6,0.2); }

/* Filter Card */
.rsi-toggle-btn { background: none; border: none; cursor: pointer; color: #6b7280; padding: 0.25rem; line-height: 1; margin-left: auto; transition: transform 0.2s ease; }
.rsi-toggle-btn.collapsed i { transform: rotate(-90deg); }
.rsi-toggle-btn i { transition: transform 0.2s ease; display: inline-block; }
.rsi-filter-body { display: none; padding: 1.25rem 1.5rem; }
.rsi-filter-body.open { display: block; }
.rsi-filter-row { display: flex; gap: 1rem; align-items: flex-end; flex-wrap: wrap; }
.rsi-filter-field { display: flex; flex-direction: column; gap: 0.3rem; min-width: 160px; }
.rsi-filter-field--grow { flex: 1; min-width: 200px; }
.rsi-filter-actions { display: flex; gap: 0.5rem; align-items: flex-end; }

/* Labels & Inputs */
.rsi-label { font-size: 0.8rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #151515; }
.rsi-input { border: 1px solid #e0e1e3; font-size: 0.85rem; padding: 0.45rem 0.65rem; background: #fff; color: #151515; width: 100%; transition: border-color 0.2s, box-shadow 0.2s; }
.rsi-input:focus { outline: none; border-color: #E34824; box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
.rsi-search-wrap { position: relative; }
.rsi-search-icon { position: absolute; left: 0.65rem; top: 50%; transform: translateY(-50%); color: #9ca3af; pointer-events: none; font-size: 0.85rem; }
.rsi-search-input { padding-left: 2rem; }

/* Table */
.rsi-table-wrap { overflow-x: auto; }
.rsi-table { width: 100%; border-collapse: collapse; }
.rsi-table thead th { background: #151515; color: #fff; font-size: 0.78rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; padding: 0.75rem 1rem; text-align: left; white-space: nowrap; }
.rsi-th-actions { text-align: right !important; width: 200px; }
.rsi-table tbody td { font-size: 0.85rem; color: #151515; padding: 0.75rem 1rem; border-bottom: 1px solid #EEEFF0; vertical-align: middle; }
.rsi-table tbody tr:hover { background: rgba(227,72,36,0.03); }
.rsi-td-actions { text-align: right; white-space: nowrap; }

/* Action Buttons */
.rsi-action-btn { width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(0,0,0,0.15); background: transparent; text-decoration: none; transition: background 0.2s ease, border-color 0.2s ease; margin-left: 0.25rem; font-size: 0.85rem; }
.rsi-action-btn--amber { color: #d97706; border-color: rgba(217,119,6,0.15); }
.rsi-action-btn--amber:hover { background: rgba(217,119,6,0.08); border-color: #d97706; color: #d97706; }
.rsi-action-btn--danger { color: #dc2626; border-color: rgba(220,38,38,0.15); }
.rsi-action-btn--danger:hover { background: rgba(220,38,38,0.08); border-color: #dc2626; color: #dc2626; }
.rsi-action-btn--accent { color: #E34824; border-color: rgba(227,72,36,0.15); }
.rsi-action-btn--accent:hover { background: rgba(227,72,36,0.08); border-color: #E34824; color: #E34824; }
.rsi-action-btn--cyan { color: #0891b2; border-color: rgba(8,145,178,0.15); }
.rsi-action-btn--cyan:hover { background: rgba(8,145,178,0.08); border-color: #0891b2; color: #0891b2; }

/* Empty State */
.rsi-empty-state { text-align: center; padding: 2.5rem 1rem !important; }
.rsi-empty-icon { font-size: 2.5rem; color: #e0e1e3; display: block; margin-bottom: 0.5rem; }
.rsi-empty-text { font-size: 0.85rem; color: #6b7280; margin: 0; }

/* Pagination */
.rsi-pagination-bar { display: flex; justify-content: space-between; align-items: center; padding: 0.85rem 1.25rem; border-top: 1px solid #e0e1e3; flex-wrap: wrap; gap: 0.75rem; }
.rsi-pagination-info { font-size: 0.78rem; color: #9ca3af; }
.rsi-pagination { display: flex; gap: 0; }
.rsi-page-link { display: inline-flex; align-items: center; justify-content: center; min-width: 34px; height: 34px; padding: 0 0.5rem; font-size: 0.82rem; font-weight: 500; color: #151515; border: 1px solid #e0e1e3; background: #fff; text-decoration: none; transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease; }
.rsi-page-link:not(:last-child) { border-right: none; }
.rsi-page-link:hover:not(.disabled):not(.active) { background: rgba(227,72,36,0.06); color: #E34824; }
.rsi-page-link.active { background: #E34824; color: #fff; border-color: #E34824; }
.rsi-page-link.active + .rsi-page-link { border-left-color: #E34824; }
.rsi-page-link.disabled { color: #9ca3af; pointer-events: none; opacity: 0.5; }

/* ===== Responsive ===== */
@media (max-width: 991.98px) {
    .rsi-filter-row { flex-direction: column; }
    .rsi-filter-field { min-width: 100%; }
    .rsi-filter-actions { width: 100%; }
    .rsi-filter-actions .rsi-btn { flex: 1; justify-content: center; }
}

@media (max-width: 575.98px) {
    .rsi-page { padding: 1rem; }
    .rsi-header { flex-direction: column; align-items: stretch; }
    .rsi-header-right { width: 100%; }
    .rsi-header-right .rsi-btn { width: 100%; justify-content: center; }
    .rsi-title { font-size: 1.25rem; }
    .rsi-pagination-bar { flex-direction: column; align-items: stretch; text-align: center; }
    .rsi-pagination { justify-content: center; }
}

/* ============================================
    RISORSE > CREATE PAGE STYLES
============================================ */

/* ===== rsc- Risorsa Create ===== */
.rsc-page { padding: 2rem; }

/* Breadcrumb */
.rsc-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1rem; }
.rsc-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.rsc-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.rsc-sep { color: #e0e1e3; display: flex; align-items: center; }
.rsc-current { color: #6b7280; font-weight: 500; }

/* Header */
.rsc-header { margin-bottom: 1.5rem; }
.rsc-title { font-size: 1.45rem; font-weight: 700; color: #151515; letter-spacing: -0.025em; display: flex; align-items: center; gap: 0.5rem; margin: 0; }
.rsc-subtitle { font-size: 0.85rem; color: #6b7280; margin: 0.25rem 0 0 0; }

/* Alerts */
.rsc-alert { display: flex; align-items: center; gap: 0.5rem; padding: 0.85rem 1.25rem; font-size: 0.85rem; border: 1px solid #e0e1e3; margin-bottom: 1rem; }
.rsc-alert-danger { border-left: 4px solid #dc2626; background: rgba(220,38,38,0.04); color: #151515; }

/* Cards */
.rsc-card { background: #fff; border: 1px solid #e0e1e3; overflow: hidden; margin-bottom: 1.5rem; }
.rsc-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.6rem; }
.rsc-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.rsc-card-header--accent::before { background: #E34824; }
.rsc-card-header--green::before { background: #059669; }
.rsc-card-header--cyan::before { background: #0891b2; }
.rsc-card-title { font-size: 0.88rem; font-weight: 700; color: #151515; margin: 0; }
.rsc-card-body { padding: 1.5rem 1.5rem 1.5rem 1.75rem; }
.rsc-card-body--actions { display: flex; flex-direction: column; gap: 0.5rem; }

/* Icon Box */
.rsc-icon-box { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.rsc-icon-box--accent { background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15); color: #E34824; }
.rsc-icon-box--green { background: rgba(5,150,105,0.08); border: 1px solid rgba(5,150,105,0.15); color: #059669; }
.rsc-icon-box--cyan { background: rgba(8,145,178,0.08); border: 1px solid rgba(8,145,178,0.15); color: #0891b2; }

/* Sidebar */
.rsc-sidebar { position: sticky; top: 72px; z-index: 10; }

/* Section Title */
.rsc-section-title { font-size: 0.82rem; font-weight: 600; color: #6b7280; text-transform: uppercase; letter-spacing: 0.03em; margin-bottom: 0.75rem; display: flex; align-items: center; gap: 0.4rem; }

/* Separator */
.rsc-separator { border-top: 1px solid #EEEFF0; margin: 1.5rem 0; }

/* Form */
.rsc-form-group { margin-bottom: 0.85rem; }
.rsc-label { display: block; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #151515; margin-bottom: 0.35rem; }
.rsc-required { color: #dc2626; font-weight: 700; }
.rsc-input { display: block; width: 100%; border: 1px solid #e0e1e3; font-size: 0.85rem; padding: 0.5rem 0.75rem; background: #fff; color: #151515; transition: border-color 0.2s, box-shadow 0.2s; font-family: inherit; }
.rsc-input:focus { outline: none; border-color: #E34824; box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
.rsc-validation { font-size: 0.72rem; color: #dc2626; display: block; margin-top: 0.2rem; }
.rsc-form-text { font-size: 0.72rem; color: #9ca3af; margin-top: 0.25rem; }

/* Row / Col */
.rsc-row { display: flex; gap: 1rem; }
.rsc-col { flex: 1; min-width: 0; }

/* Buttons */
.rsc-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.35rem; padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border: 2px solid transparent; cursor: pointer; text-decoration: none; transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease; line-height: 1.4; }
.rsc-btn-full { width: 100%; }
.rsc-btn-green { background: #059669; color: #fff; border-color: #059669; }
.rsc-btn-green:hover { background: #047857; border-color: #047857; color: #fff; box-shadow: 0 2px 8px rgba(5,150,105,0.2); }
.rsc-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.rsc-btn-secondary:hover { border-color: #151515; color: #151515; }

/* Info Box */
.rsc-info-box { display: flex; align-items: flex-start; gap: 0.5rem; font-size: 0.82rem; color: #6b7280; padding: 0.5rem 0.65rem; background: rgba(8,145,178,0.04); border-left: 3px solid #0891b2; margin-bottom: 0.6rem; }
.rsc-info-box i { color: #0891b2; margin-top: 0.1rem; flex-shrink: 0; }
.rsc-info-box:last-child { margin-bottom: 0; }

/* ===== Responsive ===== */
@media (max-width: 991.98px) {
    .rsc-sidebar { position: static; }
}

@media (max-width: 575.98px) {
    .rsc-page { padding: 1rem; }
    .rsc-title { font-size: 1.25rem; }
    .rsc-row { flex-direction: column; gap: 0; }
}

/* ============================================
    RISORSE > EDIT PAGE STYLES
============================================ */

/* ===== rse- Risorsa Edit ===== */
.rse-page { padding: 2rem; }

/* Breadcrumb */
.rse-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1rem; }
.rse-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.rse-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.rse-sep { color: #e0e1e3; display: flex; align-items: center; }
.rse-current { color: #6b7280; font-weight: 500; }

/* Header */
.rse-header { margin-bottom: 1.5rem; }
.rse-title { font-size: 1.45rem; font-weight: 700; color: #151515; letter-spacing: -0.025em; display: flex; align-items: center; gap: 0.5rem; margin: 0; }
.rse-subtitle { font-size: 0.85rem; color: #6b7280; margin: 0.25rem 0 0 0; }

/* Alerts */
.rse-alert { display: flex; align-items: flex-start; gap: 0.5rem; padding: 0.85rem 1.25rem; font-size: 0.85rem; border: 1px solid #e0e1e3; margin-bottom: 1rem; }
.rse-alert-danger { border-left: 4px solid #dc2626; background: rgba(220,38,38,0.04); color: #151515; }
.rse-alert-warning { border-left: 4px solid #d97706; background: rgba(217,119,6,0.04); color: #151515; }
.rse-alert-warning i:first-child { color: #d97706; margin-top: 0.15rem; flex-shrink: 0; }

/* Conflict cards */
.rse-conflict-card { border: 1px solid rgba(217,119,6,0.3); margin-bottom: 0.75rem; overflow: hidden; }
.rse-conflict-header { padding: 0.5rem 1rem; background: rgba(217,119,6,0.06); border-bottom: 1px solid rgba(217,119,6,0.2); display: flex; justify-content: space-between; align-items: center; font-size: 0.82rem; flex-wrap: wrap; gap: 0.5rem; }
.rse-conflict-table thead th { background: #EEEFF0 !important; color: #151515; font-size: 0.72rem; }
.rse-conflict-table tbody td { font-size: 0.8rem; }
.rse-text-danger { color: #dc2626; }

/* Confirm box */
.rse-confirm-box { background: rgba(217,119,6,0.04); border: 1px solid rgba(217,119,6,0.2); border-left: 4px solid #d97706; padding: 1rem 1.25rem; margin-bottom: 1.25rem; }
.rse-confirm-text { font-size: 0.82rem; color: #151515; margin: 0 0 0.75rem 0; }
.rse-check-row { display: flex; align-items: flex-start; gap: 0.5rem; }
.rse-check-label { font-size: 0.82rem; font-weight: 700; color: #151515; cursor: pointer; }

/* Cards */
.rse-card { background: #fff; border: 1px solid #e0e1e3; overflow: hidden; margin-bottom: 1.5rem; }
.rse-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.6rem; }
.rse-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.rse-card-header--amber::before { background: #d97706; }
.rse-card-header--green::before { background: #059669; }
.rse-card-header--cyan::before { background: #0891b2; }
.rse-card-title { font-size: 0.88rem; font-weight: 700; color: #151515; margin: 0; }
.rse-card-body { padding: 1.5rem 1.5rem 1.5rem 1.75rem; }
.rse-card-body--actions { display: flex; flex-direction: column; gap: 0.5rem; }

/* Icon Box */
.rse-icon-box { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.rse-icon-box--amber { background: rgba(217,119,6,0.08); border: 1px solid rgba(217,119,6,0.15); color: #d97706; }
.rse-icon-box--green { background: rgba(5,150,105,0.08); border: 1px solid rgba(5,150,105,0.15); color: #059669; }
.rse-icon-box--cyan { background: rgba(8,145,178,0.08); border: 1px solid rgba(8,145,178,0.15); color: #0891b2; }

/* Sidebar */
.rse-sidebar { position: sticky; top: 72px; z-index: 10; }

/* Section Title */
.rse-section-title { font-size: 0.82rem; font-weight: 600; color: #6b7280; text-transform: uppercase; letter-spacing: 0.03em; margin-bottom: 0.75rem; display: flex; align-items: center; gap: 0.4rem; }

/* Separator */
.rse-separator { border-top: 1px solid #EEEFF0; margin: 1.5rem 0; }

/* Form */
.rse-form-group { margin-bottom: 0.85rem; }
.rse-label { display: block; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #151515; margin-bottom: 0.35rem; }
.rse-required { color: #dc2626; font-weight: 700; }
.rse-input { display: block; width: 100%; border: 1px solid #e0e1e3; font-size: 0.85rem; padding: 0.5rem 0.75rem; background: #fff; color: #151515; transition: border-color 0.2s, box-shadow 0.2s; font-family: inherit; }
.rse-input:focus { outline: none; border-color: #E34824; box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
.rse-validation { font-size: 0.72rem; color: #dc2626; display: block; margin-top: 0.2rem; }
.rse-form-text { font-size: 0.72rem; color: #9ca3af; margin-top: 0.25rem; }

/* Row / Col */
.rse-row { display: flex; gap: 1rem; }
.rse-col { flex: 1; min-width: 0; }

/* Badge */
.rse-badge { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.25rem 0.65rem; font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; }
.rse-badge-secondary { background: rgba(107,114,128,0.06); color: #6b7280; border: 1px solid rgba(107,114,128,0.2); }

/* Table (conflicts) */
.rse-table-wrap { overflow-x: auto; }
.rse-table { width: 100%; border-collapse: collapse; }
.rse-table thead th { font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; padding: 0.5rem 0.75rem; text-align: left; white-space: nowrap; }
.rse-table tbody td { font-size: 0.82rem; color: #151515; padding: 0.5rem 0.75rem; border-bottom: 1px solid #EEEFF0; }
.rse-th-center { text-align: center !important; }

/* Buttons */
.rse-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.35rem; padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border: 2px solid transparent; cursor: pointer; text-decoration: none; transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease; line-height: 1.4; }
.rse-btn-full { width: 100%; }
.rse-btn-amber { background: #d97706; color: #fff; border-color: #d97706; }
.rse-btn-amber:hover { background: #b45309; border-color: #b45309; color: #fff; box-shadow: 0 2px 8px rgba(217,119,6,0.2); }
.rse-btn-amber:disabled { opacity: 0.5; cursor: not-allowed; }
.rse-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.rse-btn-secondary:hover { border-color: #151515; color: #151515; }

/* Info Box */
.rse-info-box { display: flex; align-items: flex-start; gap: 0.5rem; font-size: 0.82rem; color: #6b7280; padding: 0.5rem 0.65rem; background: rgba(8,145,178,0.04); border-left: 3px solid #0891b2; margin-bottom: 0.6rem; }
.rse-info-box i { color: #0891b2; margin-top: 0.1rem; flex-shrink: 0; }
.rse-info-box:last-child { margin-bottom: 0; }

/* ===== Responsive ===== */
@media (max-width: 991.98px) {
    .rse-sidebar { position: static; }
}

@media (max-width: 575.98px) {
    .rse-page { padding: 1rem; }
    .rse-title { font-size: 1.25rem; }
    .rse-row { flex-direction: column; gap: 0; }
    .rse-conflict-header { flex-direction: column; }
}

/* ============================================
    RISORSE > DELETE PAGE STYLES
============================================ */

/* ===== rsdel- Risorsa Delete ===== */
.rsdel-page { padding: 2rem; }

/* Breadcrumb */
.rsdel-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1rem; }
.rsdel-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.rsdel-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.rsdel-sep { color: #e0e1e3; display: flex; align-items: center; }
.rsdel-current { color: #6b7280; font-weight: 500; }

/* Header */
.rsdel-header { margin-bottom: 1.5rem; }
.rsdel-title { font-size: 1.45rem; font-weight: 700; color: #dc2626; letter-spacing: -0.025em; display: flex; align-items: center; gap: 0.5rem; margin: 0; }

/* Alerts */
.rsdel-alert { display: flex; align-items: flex-start; gap: 0.5rem; padding: 0.85rem 1.25rem; font-size: 0.85rem; border: 1px solid #e0e1e3; margin-bottom: 1rem; }
.rsdel-alert-danger { border-left: 4px solid #dc2626; background: rgba(220,38,38,0.04); color: #151515; }
.rsdel-alert-danger i:first-child { color: #dc2626; margin-top: 0.15rem; flex-shrink: 0; }
.rsdel-alert span { flex: 1; }

/* Cards */
.rsdel-card { background: #fff; border: 1px solid #e0e1e3; overflow: hidden; margin-bottom: 1.5rem; }
.rsdel-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.6rem; }
.rsdel-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.rsdel-card-header--danger::before { background: #dc2626; }
.rsdel-card-header--gray::before { background: #6b7280; }
.rsdel-card-title { font-size: 0.88rem; font-weight: 700; color: #151515; margin: 0; }
.rsdel-card-body { padding: 1.5rem 1.5rem 1.5rem 1.75rem; }
.rsdel-card-body--actions { display: flex; flex-direction: column; gap: 0.5rem; }

/* Icon Box */
.rsdel-icon-box { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.rsdel-icon-box--danger { background: rgba(220,38,38,0.08); border: 1px solid rgba(220,38,38,0.15); color: #dc2626; }
.rsdel-icon-box--gray { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); color: #6b7280; }

/* Sidebar */
.rsdel-sidebar { position: sticky; top: 72px; z-index: 10; }

/* Fields */
.rsdel-field { display: flex; margin-bottom: 0.85rem; }
.rsdel-field:last-child { margin-bottom: 0; }
.rsdel-field-label { font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; width: 140px; flex-shrink: 0; padding-top: 0.1rem; }
.rsdel-field-value { font-size: 0.85rem; color: #151515; flex: 1; }

/* Badge */
.rsdel-badge { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.25rem 0.65rem; font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; }
.rsdel-badge-secondary { background: rgba(107,114,128,0.06); color: #6b7280; border: 1px solid rgba(107,114,128,0.2); }

/* Buttons */
.rsdel-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.35rem; padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border: 2px solid transparent; cursor: pointer; text-decoration: none; transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease; line-height: 1.4; }
.rsdel-btn-full { width: 100%; }
.rsdel-btn-danger { background: #dc2626; color: #fff; border-color: #dc2626; }
.rsdel-btn-danger:hover { background: #b91c1c; border-color: #b91c1c; color: #fff; box-shadow: 0 2px 8px rgba(220,38,38,0.2); }
.rsdel-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.rsdel-btn-secondary:hover { border-color: #151515; color: #151515; }

/* ===== Responsive ===== */
@media (max-width: 991.98px) {
    .rsdel-sidebar { position: static; }
    .rsdel-field { flex-direction: column; }
    .rsdel-field-label { width: auto; margin-bottom: 0.15rem; }
}

@media (max-width: 575.98px) {
    .rsdel-page { padding: 1rem; }
    .rsdel-title { font-size: 1.25rem; }
}

/* ============================================
    RISORSE > GANTT PAGE STYLES
============================================ */

/* ===== rsg- Risorsa Gantt ===== */
.rsg-page { padding: 2rem; }

/* Breadcrumb */
.rsg-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1rem; }
.rsg-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.rsg-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.rsg-sep { color: #e0e1e3; display: flex; align-items: center; }
.rsg-current { color: #6b7280; font-weight: 500; }

/* Header */
.rsg-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 1.5rem; gap: 1rem; flex-wrap: wrap; }
.rsg-header-left { display: flex; flex-direction: column; }
.rsg-title { font-size: 1.35rem; font-weight: 700; color: #151515; letter-spacing: -0.025em; display: flex; align-items: center; gap: 0.5rem; margin: 0; }
.rsg-subtitle { margin: 0.25rem 0 0 0; }
.rsg-header-right { display: flex; align-items: center; gap: 0.5rem; flex-shrink: 0; }

/* Year Bar */
.rsg-year-bar { display: flex; align-items: center; justify-content: center; gap: 0.35rem; padding: 0.75rem 1rem; background: #fff; border: 1px solid #e0e1e3; margin-bottom: 1rem; }
.rsg-year-btn { width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #e0e1e3; background: #fff; color: #151515; text-decoration: none; cursor: pointer; transition: background 0.2s, border-color 0.2s; font-size: 0.85rem; }
.rsg-year-btn:hover:not(:disabled) { background: rgba(227,72,36,0.06); border-color: #E34824; color: #E34824; }
.rsg-year-btn:disabled { color: #9ca3af; cursor: not-allowed; opacity: 0.5; }
.rsg-year-btn.dropdown-toggle { width: auto; padding: 0 0.5rem; }
.rsg-year-btn.dropdown-toggle::after { margin-left: 0.3rem; }
.rsg-year-label { font-size: 1.15rem; font-weight: 700; color: #151515; min-width: 3.5rem; text-align: center; }

/* Buttons */
.rsg-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.35rem; padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border: 2px solid transparent; cursor: pointer; text-decoration: none; transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease; line-height: 1.4; }
.rsg-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.rsg-btn-secondary:hover { border-color: #151515; color: #151515; }

/* Badge */
.rsg-badge { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.25rem 0.65rem; font-size: 0.7rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; }
.rsg-badge-secondary { background: rgba(107,114,128,0.06); color: #6b7280; border: 1px solid rgba(107,114,128,0.2); }
.rsg-badge-danger { background: rgba(220,38,38,0.06); color: #dc2626; border: 1px solid rgba(220,38,38,0.2); }

/* Stats */
.rsg-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-bottom: 1rem; }
.rsg-stat { text-align: center; padding: 1rem 0.75rem; border: 1px solid #e0e1e3; background: #fff; }
.rsg-stat-label { font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; margin-bottom: 0.25rem; }
.rsg-stat-num { font-size: 1.5rem; font-weight: 700; color: #151515; }
.rsg-stat-sep { color: #9ca3af; font-weight: 400; margin: 0 0.15rem; }
.rsg-text-accent { color: #E34824; }
.rsg-text-green { color: #059669; }
.rsg-text-danger { color: #dc2626; }
.rsg-text-muted { color: #9ca3af; }

/* Legend */
.rsg-legend { display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: 1.25rem; }
.rsg-legend-item { display: flex; align-items: center; gap: 0.4rem; font-size: 0.78rem; color: #6b7280; }
.rsg-legend-dot { width: 14px; height: 14px; flex-shrink: 0; }

/* Card */
.rsg-card { background: #fff; border: 1px solid #e0e1e3; overflow: hidden; margin-bottom: 1.5rem; }
.rsg-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap; }
.rsg-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.rsg-card-header--accent::before { background: #E34824; }
.rsg-card-title { font-size: 0.88rem; font-weight: 700; color: #151515; margin: 0; flex: 1; }
.rsg-icon-box { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.rsg-icon-box--accent { background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15); color: #E34824; }

/* Gantt Table */
.rsg-table-wrap { overflow-x: auto; }
.rsg-table { width: 100%; border-collapse: collapse; }
.rsg-table thead th { background: #151515; color: #fff; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; padding: 0.7rem 0.6rem; text-align: left; white-space: nowrap; }
.rsg-th-center { text-align: center !important; }
.rsg-table tbody td { font-size: 0.82rem; color: #151515; padding: 0.6rem 0.6rem; border-bottom: 1px solid #EEEFF0; vertical-align: middle; }
.rsg-table tfoot td { font-size: 0.82rem; font-weight: 700; color: #151515; padding: 0.7rem 0.6rem; border-bottom: 1px solid #e0e1e3; }
.rsg-table tbody tr:hover { background: rgba(227,72,36,0.03); }
.rsg-td-center { text-align: center; }

/* Sticky column */
.rsg-sticky-col { position: sticky; left: 0; background: #fff; z-index: 1; font-weight: 700; }
thead .rsg-sticky-col { background: #151515; z-index: 2; }
.rsg-tfoot-anno .rsg-sticky-col { background: #EEEFF0; }
.rsg-tfoot-progetto .rsg-sticky-col { background: #fff3cd; }

/* Cell states */
.rsg-active-cell { background-color: #e8f4e8 !important; }
.rsg-disabled-cell { background-color: #f5f5f5 !important; color: #ccc; }
.rsg-terminated-cell { background-color: #fce4e4 !important; }
.rsg-scostamento-cell { background-color: #fff3cd !important; }

/* Cell values */
.rsg-val-plan { color: #E34824; font-weight: 600; }
.rsg-val-sep { color: #9ca3af; margin: 0 0.1rem; }
.rsg-val-eff { color: #059669; font-weight: 700; }
.rsg-cell-scost { font-size: 0.6rem; font-weight: 700; }

/* Footer rows */
.rsg-tfoot-anno td { background: #EEEFF0; }
.rsg-tfoot-progetto td { background: #fff3cd; }
.rsg-tfoot-sub { font-size: 0.68rem; font-weight: 400; color: #9ca3af; }

/* Link */
.rsg-link-name { color: #E34824; text-decoration: none; font-weight: 600; }
.rsg-link-name:hover { color: #c93d1e; text-decoration: underline; }

/* Chart */
.rsg-chart-body { padding: 1.5rem; }
.rsg-chart-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 0; text-align: center; }
.rsg-chart-col { display: flex; flex-direction: column; align-items: center; }
.rsg-chart-bars { position: relative; display: flex; align-items: flex-end; justify-content: center; gap: 2px; }
.rsg-chart-bar { width: 14px; z-index: 1; }
.rsg-chart-bar--plan { background-color: rgba(227,72,36,0.4); }
.rsg-chart-bar--eff { background-color: rgba(5,150,105,0.7); }
.rsg-chart-bar--exceed { background-color: rgba(220,38,38,0.7); box-shadow: 0 0 4px rgba(220,38,38,0.5); }
.rsg-chart-max-line { position: absolute; left: 0; right: 0; border-top: 2px dashed #dc2626; z-index: 2; }
.rsg-chart-month { font-size: 0.75rem; color: #6b7280; margin-top: 0.35rem; font-weight: 500; }
.rsg-chart-val { font-size: 0.7rem; }
.rsg-chart-exceed-label { font-size: 0.6rem; font-weight: 700; color: #dc2626; }
.rsg-chart-max-label { font-size: 0.6rem; color: #9ca3af; }
.rsg-chart-legend { display: flex; gap: 1rem; margin-left: auto; font-size: 0.75rem; color: #6b7280; }
.rsg-chart-legend-item { display: flex; align-items: center; gap: 0.3rem; }
.rsg-chart-legend-dot { width: 12px; height: 12px; flex-shrink: 0; }
.rsg-chart-legend-line { width: 12px; height: 0; border-top: 2px dashed #dc2626; flex-shrink: 0; }

/* Empty state */
.rsg-empty-state { text-align: center; padding: 3rem 1rem; }
.rsg-empty-icon { font-size: 3rem; color: #e0e1e3; display: block; margin-bottom: 0.75rem; }
.rsg-empty-text { font-size: 0.85rem; color: #6b7280; margin: 0; }

/* ===== Responsive ===== */
@media (max-width: 991.98px) {
    .rsg-stats { grid-template-columns: repeat(2, 1fr); }
    .rsg-chart-legend { flex-wrap: wrap; }
}

@media (max-width: 575.98px) {
    .rsg-page { padding: 1rem; }
    .rsg-header { flex-direction: column; align-items: stretch; }
    .rsg-header-right { width: 100%; }
    .rsg-header-right .rsg-btn { width: 100%; justify-content: center; }
    .rsg-title { font-size: 1.15rem; }
    .rsg-stats { grid-template-columns: 1fr; }
    .rsg-stat-num { font-size: 1.25rem; }
}

/* ============================================
    RISORSE > ORE MASSIME PAGE STYLES
============================================ */

/* ===== rsom- Risorsa OreMassime ===== */
.rsom-page { padding: 2rem; }

/* Breadcrumb */
.rsom-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1rem; }
.rsom-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.rsom-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.rsom-sep { color: #e0e1e3; display: flex; align-items: center; }
.rsom-current { color: #6b7280; font-weight: 500; }

/* Header */
.rsom-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 1.5rem; gap: 1rem; flex-wrap: wrap; }
.rsom-header-left { display: flex; flex-direction: column; }
.rsom-title { font-size: 1.35rem; font-weight: 700; color: #151515; letter-spacing: -0.025em; display: flex; align-items: center; gap: 0.5rem; margin: 0; }
.rsom-subtitle { font-size: 0.85rem; color: #151515; margin: 0.25rem 0 0 0; }
.rsom-ruoli { display: flex; gap: 0.35rem; margin-top: 0.35rem; flex-wrap: wrap; }
.rsom-header-right { display: flex; align-items: center; gap: 0.5rem; flex-shrink: 0; }
.rsom-text-muted { color: #9ca3af; }
.rsom-text-cyan { color: #0891b2; }
.rsom-text-danger { color: #dc2626; }

/* Year Bar */
.rsom-year-bar { display: flex; align-items: center; justify-content: center; gap: 0.35rem; padding: 0.75rem 1rem; background: #fff; border: 1px solid #e0e1e3; margin-bottom: 1rem; }
.rsom-year-btn { width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #e0e1e3; background: #fff; color: #151515; text-decoration: none; cursor: pointer; transition: background 0.2s, border-color 0.2s; font-size: 0.85rem; }
.rsom-year-btn:hover:not(:disabled) { background: rgba(227,72,36,0.06); border-color: #E34824; color: #E34824; }
.rsom-year-btn:disabled { color: #9ca3af; cursor: not-allowed; opacity: 0.5; }
.rsom-year-label { font-size: 1.15rem; font-weight: 700; color: #151515; min-width: 3.5rem; text-align: center; }

/* Buttons */
.rsom-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.35rem; padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border: 2px solid transparent; cursor: pointer; text-decoration: none; transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease; line-height: 1.4; }
.rsom-btn-accent { background: #E34824; color: #fff; border-color: #E34824; }
.rsom-btn-accent:hover { background: #c93d1e; border-color: #c93d1e; color: #fff; box-shadow: 0 2px 8px rgba(227,72,36,0.2); }
.rsom-btn-danger { background: #dc2626; color: #fff; border-color: #dc2626; }
.rsom-btn-danger:hover { background: #b91c1c; border-color: #b91c1c; color: #fff; }
.rsom-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.rsom-btn-secondary:hover { border-color: #151515; color: #151515; }
.rsom-btn-sm { padding: 0.35rem 0.85rem; font-size: 0.8rem; }

/* Badge */
.rsom-badge { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.25rem 0.65rem; font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; }
.rsom-badge-secondary { background: rgba(107,114,128,0.06); color: #6b7280; border: 1px solid rgba(107,114,128,0.2); }

/* Alerts */
.rsom-alert { display: flex; align-items: flex-start; gap: 0.5rem; padding: 0.85rem 1.25rem; font-size: 0.85rem; border: 1px solid #e0e1e3; margin-bottom: 1rem; position: relative; }
.rsom-alert-success { border-left: 4px solid #059669; background: rgba(5,150,105,0.05); color: #151515; }
.rsom-alert-success i:first-child { color: #059669; flex-shrink: 0; margin-top: 0.1rem; }
.rsom-alert-danger { border-left: 4px solid #dc2626; background: rgba(220,38,38,0.04); color: #151515; }
.rsom-alert-danger i:first-child { color: #dc2626; flex-shrink: 0; margin-top: 0.1rem; }
.rsom-alert-warning { border-left: 4px solid #d97706; background: rgba(217,119,6,0.04); color: #151515; }
.rsom-alert-warning i:first-child { color: #d97706; flex-shrink: 0; margin-top: 0.1rem; }
.rsom-alert span { flex: 1; }
.rsom-alert-close { background: none; border: none; cursor: pointer; color: #6b7280; padding: 0.25rem; line-height: 1; font-size: 1.1rem; }
.rsom-alert-close:hover { color: #151515; }

/* Stats */
.rsom-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; margin-bottom: 1.5rem; }
.rsom-stat { text-align: center; padding: 1rem 0.75rem; border: 1px solid #e0e1e3; background: #fff; }
.rsom-stat-label { font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; margin-bottom: 0.25rem; }
.rsom-stat-num { font-size: 1.75rem; font-weight: 700; color: #151515; }

/* Card */
.rsom-card { background: #fff; border: 1px solid #e0e1e3; overflow: hidden; margin-bottom: 1.5rem; }
.rsom-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap; }
.rsom-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.rsom-card-header--cyan::before { background: #0891b2; }
.rsom-card-title { font-size: 0.88rem; font-weight: 700; color: #151515; margin: 0; flex: 1; }
.rsom-header-info { font-size: 0.78rem; color: #9ca3af; }
.rsom-card-body { padding: 1.5rem; }
.rsom-icon-box { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.rsom-icon-box--cyan { background: rgba(8,145,178,0.08); border: 1px solid rgba(8,145,178,0.15); color: #0891b2; }

/* Months Grid */
.rsom-months-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.rsom-month-item { display: flex; flex-direction: column; gap: 0.3rem; }
.rsom-month-label { font-size: 0.8rem; font-weight: 600; color: #151515; }
.rsom-input-wrap { display: flex; align-items: center; }
.rsom-ore-input { border: 1px solid #e0e1e3; font-size: 0.85rem; padding: 0.4rem 0.5rem; text-align: center; background: #fff; color: #151515; width: 100%; transition: border-color 0.2s, box-shadow 0.2s; }
.rsom-ore-input:focus { outline: none; border-color: #E34824; box-shadow: 0 0 0 0.2rem rgba(227,72,36,0.12); }
.rsom-ore-disabled { background: #EEEFF0; color: #9ca3af; }
.rsom-input-suffix { background: #EEEFF0; border: 1px solid #e0e1e3; border-left: none; padding: 0.4rem 0.6rem; font-size: 0.82rem; color: #6b7280; }

/* Conflict cards */
.rsom-conflict-card { border: 1px solid rgba(220,38,38,0.3); margin-bottom: 0.75rem; overflow: hidden; }
.rsom-conflict-header { padding: 0.5rem 1rem; background: rgba(220,38,38,0.06); border-bottom: 1px solid rgba(220,38,38,0.2); display: flex; justify-content: space-between; align-items: center; font-size: 0.82rem; flex-wrap: wrap; gap: 0.5rem; }
.rsom-conflict-total td { background: rgba(220,38,38,0.04); }

/* Table (conflicts) */
.rsom-table-wrap { overflow-x: auto; }
.rsom-table { width: 100%; border-collapse: collapse; }
.rsom-table thead th { background: #EEEFF0; color: #151515; font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; padding: 0.5rem 0.75rem; text-align: left; }
.rsom-table tbody td { font-size: 0.8rem; color: #151515; padding: 0.5rem 0.75rem; border-bottom: 1px solid #EEEFF0; }
.rsom-th-center { text-align: center !important; }

/* Confirm box */
.rsom-confirm-box { background: rgba(220,38,38,0.04); border: 1px solid rgba(220,38,38,0.2); border-left: 4px solid #dc2626; padding: 1rem 1.25rem; margin-top: 1rem; }
.rsom-confirm-text { font-size: 0.82rem; color: #151515; margin: 0 0 0.75rem 0; }
.rsom-check-row { display: flex; align-items: flex-start; gap: 0.5rem; }
.rsom-check-label { font-size: 0.82rem; font-weight: 700; color: #151515; cursor: pointer; }

/* Actions bar */
.rsom-actions-bar { border-top: 1px solid #EEEFF0; padding-top: 1.25rem; margin-top: 1.25rem; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; }
.rsom-quick-actions { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.rsom-quick-input-wrap { display: flex; align-items: center; gap: 0; }
.rsom-quick-input-wrap .rsom-ore-input { width: 80px; border-right: none; }
.rsom-action-btn { width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #e0e1e3; background: #fff; cursor: pointer; transition: background 0.2s, border-color 0.2s; font-size: 0.85rem; }
.rsom-action-btn--cyan { color: #0891b2; }
.rsom-action-btn--cyan:hover { background: rgba(8,145,178,0.08); border-color: #0891b2; }

/* Info Box */
.rsom-info-box { display: flex; align-items: flex-start; gap: 0.5rem; font-size: 0.82rem; color: #6b7280; padding: 0.75rem 1rem; background: rgba(8,145,178,0.04); border-left: 3px solid #0891b2; }
.rsom-info-box i { color: #0891b2; margin-top: 0.1rem; flex-shrink: 0; }

/* ===== Responsive ===== */
@media (max-width: 767.98px) {
    .rsom-months-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 575.98px) {
    .rsom-page { padding: 1rem; }
    .rsom-header { flex-direction: column; align-items: stretch; }
    .rsom-header-right { width: 100%; }
    .rsom-header-right .rsom-btn { width: 100%; justify-content: center; }
    .rsom-title { font-size: 1.15rem; }
    .rsom-months-grid { grid-template-columns: repeat(2, 1fr); }
    .rsom-stats { grid-template-columns: 1fr; }
    .rsom-actions-bar { flex-direction: column; align-items: stretch; }
    .rsom-actions-bar .rsom-btn-accent { width: 100%; justify-content: center; }
}

/* ============================================
    IMPORT SOGGETTI > INDEX PAGE STYLES
============================================ */

/* ===== sgi- ImportSoggetti Index ===== */
.sgi-page { padding: 2rem; max-width: 1100px; }

/* Breadcrumb */
.sgi-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1rem; }
.sgi-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.sgi-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.sgi-sep { color: #e0e1e3; display: flex; align-items: center; }
.sgi-current { color: #6b7280; font-weight: 500; }

/* Header */
.sgi-header { margin-bottom: 1.5rem; }
.sgi-title { font-size: 1.45rem; font-weight: 700; color: #151515; letter-spacing: -0.025em; display: flex; align-items: center; gap: 0.5rem; margin: 0; }

/* Alert */
.sgi-alert { display: flex; align-items: flex-start; gap: 0.5rem; padding: 0.85rem 1.25rem; font-size: 0.85rem; border: 1px solid #e0e1e3; margin-bottom: 1rem; }
.sgi-alert-danger { border-left: 4px solid #dc2626; background: rgba(220,38,38,0.04); color: #151515; }
.sgi-alert-danger i:first-child { color: #dc2626; flex-shrink: 0; margin-top: 0.15rem; }

/* Cards */
.sgi-card { background: #fff; border: 1px solid #e0e1e3; overflow: hidden; margin-bottom: 1.5rem; }
.sgi-card-header { position: relative; padding: 1rem 1.5rem; border-bottom: 1px solid #e0e1e3; display: flex; align-items: center; gap: 0.6rem; }
.sgi-card-header::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.sgi-card-header--accent::before { background: #E34824; }
.sgi-card-header--amber::before { background: #d97706; }
.sgi-card-header--cyan::before { background: #0891b2; }
.sgi-card-title { font-size: 0.88rem; font-weight: 700; color: #151515; margin: 0; text-transform: uppercase; letter-spacing: 0.02em; }
.sgi-card-body { padding: 1.5rem; }

/* Icon Box */
.sgi-icon-box { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.sgi-icon-box--accent { background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15); color: #E34824; }
.sgi-icon-box--amber { background: rgba(217,119,6,0.08); border: 1px solid rgba(217,119,6,0.15); color: #d97706; }
.sgi-icon-box--cyan { background: rgba(8,145,178,0.08); border: 1px solid rgba(8,145,178,0.15); color: #0891b2; }

/* Dropzone */
.sgi-dropzone { border: 2px dashed #e0e1e3; padding: 2.5rem 1.5rem; text-align: center; cursor: pointer; transition: border-color 0.2s, background 0.2s; background: #EEEFF0; position: relative; }
.sgi-dropzone:hover,
.sgi-dropzone.dragover { border-color: #E34824; background: rgba(227,72,36,0.02); }
.sgi-dropzone input[type="file"] { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%; }
.sgi-dropzone-icon { font-size: 2.5rem; color: #9ca3af; margin-bottom: 0.75rem; display: block; }
.sgi-dropzone-text { font-size: 0.92rem; color: #151515; font-weight: 500; margin-bottom: 0.25rem; }
.sgi-dropzone-sub { font-size: 0.78rem; color: #9ca3af; }
.sgi-file-selected { display: none; align-items: center; gap: 0.5rem; margin-top: 0.75rem; padding: 0.5rem 0.75rem; background: rgba(227,72,36,0.06); border: 1px solid rgba(227,72,36,0.15); font-size: 0.82rem; color: #E34824; font-weight: 500; }
.sgi-upload-actions { display: flex; gap: 0.75rem; align-items: center; margin-top: 1.25rem; }

/* Buttons */
.sgi-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.35rem; padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border: 2px solid transparent; cursor: pointer; text-decoration: none; transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease; line-height: 1.4; }
.sgi-btn-accent { background: #E34824; color: #fff; border-color: #E34824; }
.sgi-btn-accent:hover { background: #c93d1e; border-color: #c93d1e; color: #fff; box-shadow: 0 2px 8px rgba(227,72,36,0.2); }
.sgi-btn-accent:disabled { opacity: 0.5; cursor: not-allowed; }
.sgi-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.sgi-btn-secondary:hover { border-color: #151515; color: #151515; }

/* Rules */
.sgi-rule { display: flex; gap: 0.75rem; align-items: flex-start; padding: 0.6rem 0; border-bottom: 1px solid #EEEFF0; font-size: 0.83rem; }
.sgi-rule:last-child { border-bottom: none; padding-bottom: 0; }
.sgi-rule-num { width: 22px; height: 22px; background: #E34824; color: #fff; font-size: 0.72rem; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 0.1rem; }
.sgi-rule-text { color: #151515; line-height: 1.5; }

/* Mapping table */
.sgi-mapping-table { width: 100%; font-size: 0.82rem; border-collapse: collapse; }
.sgi-mapping-table th { padding: 0.4rem 0.6rem; text-align: left; font-weight: 600; color: #6b7280; border-bottom: 1px solid #e0e1e3; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.04em; }
.sgi-mapping-table td { padding: 0.4rem 0.6rem; border-bottom: 1px solid #EEEFF0; color: #151515; vertical-align: middle; }
.sgi-mapping-table tr:last-child td { border-bottom: none; }
.sgi-code { font-family: monospace; background: #EEEFF0; padding: 0.1rem 0.35rem; font-size: 0.78rem; color: #E34824; }
.sgi-badge-ignore { font-size: 0.68rem; padding: 0.15rem 0.45rem; background: rgba(107,114,128,0.08); color: #9ca3af; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; }
.sgi-badge-rule { font-size: 0.68rem; padding: 0.15rem 0.45rem; background: rgba(217,119,6,0.08); color: #d97706; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; }

/* ===== Responsive ===== */
@media (max-width: 575.98px) {
    .sgi-page { padding: 1rem; }
    .sgi-title { font-size: 1.25rem; }
    .sgi-upload-actions { flex-direction: column; }
    .sgi-upload-actions .sgi-btn { width: 100%; justify-content: center; }
}


/* ============================================
    IMPORT SOGGETTI > _IMPORTLOGTABLE PAGE STYLES
============================================ */

/* Log Table (partial _ImportLogTable) */
.sgr-table-wrap { overflow-x: auto; }
.sgr-table { width: 100%; border-collapse: collapse; }
.sgr-table thead th { background: #151515; color: #fff; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; padding: 0.6rem 0.75rem; text-align: left; white-space: nowrap; }
.sgr-table tbody td { font-size: 0.82rem; color: #151515; padding: 0.55rem 0.75rem; border-bottom: 1px solid #EEEFF0; vertical-align: middle; }
.sgr-table tbody tr:hover { background: rgba(227,72,36,0.03); }
.sgr-code { font-family: monospace; background: #EEEFF0; padding: 0.1rem 0.35rem; font-size: 0.78rem; color: #E34824; }
.sgr-muted { color: #9ca3af; font-size: 0.75rem; }
.sgr-msg { font-size: 0.8rem; color: #6b7280; }
.sgr-empty { text-align: center; padding: 1.5rem 1rem; font-size: 0.85rem; color: #059669; display: flex; align-items: center; justify-content: center; gap: 0.35rem; }

/* ============================================
    IMPORT SOGGETTI > RISULTATO PAGE STYLES
============================================ */

/* ===== sgr- ImportSoggetti Risultato ===== */
.sgr-page { padding: 2rem; max-width: 1100px; }

/* Breadcrumb */
.sgr-breadcrumb { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; flex-wrap: wrap; margin-bottom: 1rem; }
.sgr-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; }
.sgr-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.sgr-sep { color: #e0e1e3; display: flex; align-items: center; }
.sgr-current { color: #6b7280; font-weight: 500; }

/* Header */
.sgr-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 1.5rem; gap: 1rem; flex-wrap: wrap; }
.sgr-header-left { display: flex; flex-direction: column; }
.sgr-title { font-size: 1.45rem; font-weight: 700; color: #151515; letter-spacing: -0.025em; display: flex; align-items: center; gap: 0.5rem; margin: 0; }
.sgr-filename { font-size: 0.78rem; color: #9ca3af; font-family: monospace; margin-top: 0.25rem; display: flex; align-items: center; gap: 0.3rem; }
.sgr-header-right { display: flex; align-items: center; gap: 0.5rem; flex-shrink: 0; }

/* Buttons */
.sgr-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.35rem; padding: 0.55rem 1.5rem; font-weight: 600; font-size: 0.85rem; border: 2px solid transparent; cursor: pointer; text-decoration: none; transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease; line-height: 1.4; }
.sgr-btn-accent { background: #E34824; color: #fff; border-color: #E34824; }
.sgr-btn-accent:hover { background: #c93d1e; border-color: #c93d1e; color: #fff; box-shadow: 0 2px 8px rgba(227,72,36,0.2); }
.sgr-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.sgr-btn-secondary:hover { border-color: #151515; color: #151515; }

/* Banner */
.sgr-banner { padding: 0.85rem 1.25rem; display: flex; align-items: center; gap: 0.6rem; font-size: 0.85rem; font-weight: 500; margin-bottom: 1.5rem; border: 1px solid; }
.sgr-banner--success { background: rgba(5,150,105,0.05); border-color: rgba(5,150,105,0.2); color: #059669; }
.sgr-banner--warn { background: rgba(217,119,6,0.05); border-color: rgba(217,119,6,0.2); color: #d97706; }
.sgr-banner--danger { background: rgba(220,38,38,0.05); border-color: rgba(220,38,38,0.2); color: #dc2626; }
.sgr-banner span { flex: 1; }

/* KPI strip */
.sgr-kpi-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 0.85rem; margin-bottom: 1.5rem; }
.sgr-kpi { background: #fff; border: 1px solid #e0e1e3; padding: 1rem 1.1rem; display: flex; flex-direction: column; gap: 0.25rem; }
.sgr-kpi-value { font-size: 1.9rem; font-weight: 800; line-height: 1; color: #151515; }
.sgr-kpi-label { font-size: 0.68rem; color: #9ca3af; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; }
.sgr-kpi--success .sgr-kpi-value { color: #059669; }
.sgr-kpi--warn .sgr-kpi-value { color: #d97706; }
.sgr-kpi--danger .sgr-kpi-value { color: #dc2626; }
.sgr-kpi--info .sgr-kpi-value { color: #0891b2; }
.sgr-kpi--muted .sgr-kpi-value { color: #9ca3af; }

/* Cards (collapsible) */
.sgr-card { background: #fff; border: 1px solid #e0e1e3; overflow: hidden; margin-bottom: 1rem; }
.sgr-card-header { display: flex; align-items: center; gap: 0.6rem; padding: 0.75rem 1.25rem; border-bottom: 1px solid #e0e1e3; cursor: pointer; user-select: none; transition: background 0.15s; }
.sgr-card-header:hover { background: rgba(227,72,36,0.03); }
.sgr-card-title { font-size: 0.82rem; font-weight: 600; color: #151515; text-transform: uppercase; letter-spacing: 0.02em; flex: 1; }

/* Icon Box */
.sgr-icon-box { width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; font-size: 0.8rem; flex-shrink: 0; }
.sgr-icon-box--cyan { background: rgba(8,145,178,0.08); border: 1px solid rgba(8,145,178,0.15); color: #0891b2; }
.sgr-icon-box--amber { background: rgba(217,119,6,0.08); border: 1px solid rgba(217,119,6,0.15); color: #d97706; }
.sgr-icon-box--danger { background: rgba(220,38,38,0.08); border: 1px solid rgba(220,38,38,0.15); color: #dc2626; }
.sgr-icon-box--gray { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.15); color: #6b7280; }

/* Count badges */
.sgr-card-count { font-size: 0.72rem; padding: 0.15rem 0.55rem; font-weight: 700; }
.sgr-badge--info { background: rgba(8,145,178,0.08); color: #0891b2; }
.sgr-badge--warn { background: rgba(217,119,6,0.08); color: #d97706; }
.sgr-badge--danger { background: rgba(220,38,38,0.08); color: #dc2626; }
.sgr-badge--muted { background: rgba(107,114,128,0.06); color: #9ca3af; }

/* Chevron toggle */
.sgr-chevron { transition: transform 0.2s; color: #9ca3af; margin-left: auto; }
.collapsed .sgr-chevron { transform: rotate(-90deg); }

/* ===== Responsive ===== */
@media (max-width: 575.98px) {
    .sgr-page { padding: 1rem; }
    .sgr-header { flex-direction: column; align-items: stretch; }
    .sgr-header-right { width: 100%; flex-direction: column; }
    .sgr-header-right .sgr-btn { width: 100%; justify-content: center; }
    .sgr-title { font-size: 1.25rem; }
    .sgr-kpi-strip { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================
    REVISO > AllineamentoSoggetti PAGE STYLES
============================================ */

/* ── Page wrapper ── */
.rva-page { padding: 2rem; max-width: 1200px; margin: 0 auto; }

/* ── Breadcrumb (SVG chevron inline) ── */
.rva-breadcrumb { display: flex; align-items: center; gap: .4rem; font-size: .8rem; flex-wrap: wrap; margin-bottom: 1rem; }
.rva-breadcrumb a { color: #E34824; text-decoration: none; font-weight: 500; display: inline-flex; align-items: center; gap: .25rem; }
.rva-breadcrumb a:hover { color: #c93d1e; text-decoration: underline; }
.rva-breadcrumb .rva-sep { color: #e0e1e3; display: inline-flex; align-items: center; }
.rva-breadcrumb .rva-current { color: #6b7280; font-weight: 500; }

/* ── Page header ── */
.rva-page-header {
    display: flex; align-items: center; justify-content: space-between;
    flex-wrap: wrap; gap: 1rem; margin-bottom: 1.5rem;
    padding-bottom: 1rem; border-bottom: 1px solid #e0e1e3;
}
.rva-page-title-area { display: flex; align-items: center; gap: 1rem; }
.rva-page-icon {
    width: 48px; height: 48px; border-radius: 0;
    background: rgba(227,72,36,0.08); border: 1px solid rgba(227,72,36,0.15);
    color: #E34824; display: flex; align-items: center; justify-content: center;
    font-size: 1.4rem;
}
.rva-page-title { font-size: 1.4rem; font-weight: 700; margin: 0; color: #151515; letter-spacing: -0.025em; }
.rva-page-subtitle { font-size: .85rem; color: #6b7280; margin: 0; }
.rva-page-actions { display: flex; gap: .5rem; flex-wrap: wrap; }

/* ── Bottoni (DS conforme) ── */
.rva-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: .4rem;
    padding: .55rem 1.5rem; font-size: .85rem; font-weight: 600;
    border-radius: 0; border: 2px solid transparent; cursor: pointer;
    text-decoration: none; transition: background .15s, border-color .15s, color .15s, box-shadow .15s;
}
.rva-btn-primary   { background: #E34824; color: #fff; border-color: #E34824; }
.rva-btn-primary:hover   { background: #c93d1e; border-color: #c93d1e; box-shadow: 0 2px 8px rgba(227,72,36,0.2); }
.rva-btn-success   { background: #059669; color: #fff; border-color: #059669; }
.rva-btn-success:hover   { background: #047857; border-color: #047857; }
.rva-btn-amber     { background: #d97706; color: #fff; border-color: #d97706; }
.rva-btn-amber:hover     { background: #b45309; border-color: #b45309; }
.rva-btn-danger    { background: #dc2626; color: #fff; border-color: #dc2626; }
.rva-btn-danger:hover    { background: #b91c1c; border-color: #b91c1c; }
.rva-btn-secondary { background: transparent; color: #6b7280; border-color: #e0e1e3; }
.rva-btn-secondary:hover { border-color: #151515; color: #151515; }
.rva-btn-sm { padding: .35rem .75rem; font-size: .78rem; }

/* ── Alert ── */
.rva-alert {
    display: flex; align-items: flex-start; gap: .5rem;
    padding: .85rem 1.25rem; font-size: .85rem;
    border: 1px solid #e0e1e3; border-radius: 0; border-left-width: 4px;
    margin-bottom: 1.5rem;
}
.rva-alert-warning { border-left-color: #d97706; background: rgba(217,119,6,0.04); color: #92400e; }
.rva-alert-warning i { color: #d97706; }
.rva-alert-danger  { border-left-color: #dc2626; background: rgba(220,38,38,0.04); color: #7f1d1d; display: none; align-items: center; }
.rva-alert-danger i { color: #dc2626; }

/* ── Launch card ── */
.rva-launch-card {
    background: #fff; border: 1px solid #e0e1e3; border-radius: 0;
    padding: 2.5rem; text-align: center; max-width: 520px; margin: 0 auto;
    position: relative; overflow: hidden;
}
.rva-launch-card::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0;
    width: 4px; background: #E34824;
}
.rva-launch-icon { font-size: 2.5rem; color: #E34824; margin-bottom: 1rem; }
.rva-launch-desc { color: #6b7280; font-size: .85rem; margin-bottom: 1.5rem; }

/* ── KPI bar ── */
.rva-kpi-bar { display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; margin-bottom: 1.5rem; }
.rva-kpi {
    background: #fff; border: 1px solid #e0e1e3; border-radius: 0;
    padding: 1rem; text-align: center; cursor: pointer;
    transition: transform .15s, box-shadow .15s; position: relative; overflow: hidden;
}
.rva-kpi::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0;
    width: 3px; background: #e0e1e3;
}
.rva-kpi:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,.08); }
.rva-kpi-num  { font-size: 1.8rem; font-weight: 800; line-height: 1.1; }
.rva-kpi-label{ font-size: .68rem; color: #6b7280; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; margin-top: .35rem; }
.rva-kpi--warning::before { background: #d97706; } .rva-kpi--warning .rva-kpi-num { color: #d97706; }
.rva-kpi--danger::before  { background: #dc2626; } .rva-kpi--danger  .rva-kpi-num { color: #dc2626; }
.rva-kpi--info::before    { background: #0891b2; } .rva-kpi--info    .rva-kpi-num { color: #0891b2; }
.rva-kpi--success::before { background: #059669; } .rva-kpi--success .rva-kpi-num { color: #059669; }

/* ── Progress ── */
.rva-progress-wrap {
    background: #fff; border: 1px solid #e0e1e3; border-radius: 0;
    padding: .85rem 1rem; margin-bottom: 1.5rem; position: relative; overflow: hidden;
}
.rva-progress-wrap::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0;
    width: 4px; background: #059669;
}
.rva-progress-label { display: flex; justify-content: space-between; margin-bottom: .5rem; font-size: .82rem; color: #151515; }
.rva-progress-note  { color: #9ca3af; font-size: .75rem; }
.rva-progress-bar   { height: 8px; background: #EEEFF0; border-radius: 0; overflow: hidden; }
.rva-progress-fill  { height: 100%; background: #059669; transition: width .3s; }

/* ── Tabs (JS puro) ── */
.rva-tabs-header { border-bottom: 2px solid #e0e1e3; margin-bottom: 0; }
.rva-tabs-nav    { display: flex; gap: 0; flex-wrap: nowrap; }
.rva-tab-btn {
    padding: .85rem 1.25rem; font-size: .8rem; font-weight: 600;
    color: #6b7280; background: transparent; border: none;
    position: relative; white-space: nowrap;
    display: inline-flex; align-items: center; gap: .35rem;
    cursor: pointer; transition: color .15s;
}
.rva-tab-btn:hover { color: #E34824; }
.rva-tab-btn.active { color: #E34824; }
.rva-tab-btn.active::after {
    content: ''; position: absolute; bottom: -2px; left: 0; right: 0;
    height: 2px; background: #E34824;
}
.rva-tab-count {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 20px; height: 18px; padding: 0 .4rem;
    background: #EEEFF0; color: #151515;
    border-radius: 0; font-size: .68rem; font-weight: 700;
    margin-left: .25rem;
}
.rva-tab-btn.active .rva-tab-count { background: #E34824; color: #fff; }

/* ── Pannello ── */
.rva-tab-pane { display: block; }
.rva-panel {
    background: #fff; border: 1px solid #e0e1e3; border-top: none;
    border-radius: 0; overflow: hidden;
}
.rva-empty { padding: 2rem; text-align: center; color: #6b7280; margin: 0; }

/* ── Riga divergente ── */
.rva-riga-divergente { padding: .9rem 1.1rem; border-bottom: 1px solid #EEEFF0; }
.rva-riga-divergente:last-child { border-bottom: none; }
.rva-riga-divergente:hover { background: rgba(227,72,36,0.02); }
.rva-riga-header {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: .65rem; flex-wrap: wrap; gap: .5rem;
}
.rva-riga-left { display: flex; align-items: center; gap: .5rem; }
.rva-riga-nome { font-weight: 700; color: #151515; display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; }
.rva-riga-check { width: 16px; height: 16px; border-radius: 0; cursor: pointer; accent-color: #E34824; }

/* ── Diff table ── */
.rva-diff-table { width: 100%; font-size: .82rem; border-collapse: collapse; margin-top: .5rem; }
.rva-diff-table th {
    background: #151515; color: #fff;
    padding: .45rem .65rem; font-size: .72rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: .04em; text-align: left;
}
.rva-diff-table td { padding: .45rem .65rem; border-bottom: 1px solid #EEEFF0; vertical-align: middle; }
.rva-diff-table tr:last-child td { border-bottom: none; }
.rva-diff-table tbody tr:hover { background: rgba(227,72,36,0.03); }
.rva-diff-campo  { font-weight: 600; color: #151515; width: 130px; }
.rva-diff-locale { color: #6b7280; }
.rva-diff-reviso { color: #059669; font-weight: 600; }
.rva-diff-arrow  { width: 30px; text-align: center; color: #9ca3af; }

/* ── Tabelle (Solo locale, Solo reviso, Allineati) ── */
.rva-table { width: 100%; border-collapse: collapse; font-size: .85rem; }
.rva-table thead th {
    background: #151515; color: #fff;
    padding: .6rem 1rem; font-weight: 600; font-size: .72rem;
    text-transform: uppercase; letter-spacing: .04em; text-align: left;
}
.rva-table tbody td { padding: .65rem 1rem; border-bottom: 1px solid #EEEFF0; vertical-align: middle; }
.rva-table tbody tr:last-child td { border-bottom: none; }
.rva-table tbody tr:hover { background: rgba(227,72,36,0.03); }
.rva-td-nome { font-weight: 600; color: #151515; }
.rva-link { color: #E34824; text-decoration: none; font-weight: 600; }
.rva-link:hover { color: #c93d1e; text-decoration: underline; }
.rva-id-code {
    font-size: .8rem; font-family: monospace;
    background: #EEEFF0; color: #E34824;
    padding: .15rem .4rem; border-radius: 0;
}

/* ── Badge (DS conforme: sharp, uppercase 0.68rem) ── */
.rva-badge {
    display: inline-flex; align-items: center; gap: .25rem;
    padding: .2rem .55rem; font-size: .68rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: .03em;
    border-radius: 0; border: 1px solid transparent;
}
.rva-badge-info      { background: rgba(8,145,178,.06);  color: #0891b2; border-color: rgba(8,145,178,.2); }
.rva-badge-accent,
.rva-badge-primary   { background: rgba(227,72,36,.06);  color: #E34824; border-color: rgba(227,72,36,.2); }
.rva-badge-secondary { background: rgba(107,114,128,.06); color: #6b7280; border-color: rgba(107,114,128,.2); }
.rva-badge-success   { background: rgba(5,150,105,.06);  color: #059669; border-color: rgba(5,150,105,.2); }
.rva-badge-warn,
.rva-badge-warning   { background: rgba(217,119,6,.06);  color: #d97706; border-color: rgba(217,119,6,.2); }
.rva-badge-danger    { background: rgba(220,38,38,.06);  color: #dc2626; border-color: rgba(220,38,38,.2); }

/* ── Toolbar bulk ── */
.rva-bulk-toolbar {
    display: flex; align-items: center; justify-content: space-between;
    padding: .65rem 1rem; background: #EEEFF0; border-bottom: 1px solid #e0e1e3;
    flex-wrap: wrap; gap: .5rem;
}
.rva-check-all {
    display: flex; align-items: center; gap: .4rem;
    font-size: .78rem; font-weight: 600; color: #151515;
    text-transform: uppercase; letter-spacing: .04em; cursor: pointer;
}
.rva-check-all input[type="checkbox"] { accent-color: #E34824; cursor: pointer; }
.rva-bulk-actions { display: flex; gap: .5rem; flex-wrap: wrap; }
.rva-bulk-count {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 18px; height: 18px; padding: 0 .3rem;
    background: rgba(255,255,255,.25);
    border-radius: 0; font-size: .7rem; font-weight: 700;
    margin-left: .25rem;
}

/* ── Footer meta ── */
.rva-footer {
    display: flex; align-items: center; justify-content: space-between;
    padding: .75rem 0; margin-top: 1rem; flex-wrap: wrap; gap: .5rem;
    border-top: 1px solid #EEEFF0;
}
.rva-footer-meta { font-size: .78rem; color: #6b7280; display: inline-flex; align-items: center; gap: .35rem; }

/* ── Loading spinner ── */
.rva-loading {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    padding: 3rem 1rem; gap: 1rem;
}
.rva-loading p { color: #6b7280; font-size: .85rem; margin: 0; }
.rva-spinner {
    width: 36px; height: 36px;
    border: 3px solid #EEEFF0; border-top-color: #E34824;
    border-radius: 50%; animation: rva-spin .8s linear infinite;
}
@keyframes rva-spin { to { transform: rotate(360deg); } }

/* ── Toast ── */
.rva-toast {
    position: fixed; bottom: 1.5rem; right: 1.5rem;
    background: #fff; border: 1px solid #e0e1e3; border-radius: 0;
    padding: .75rem 1.1rem;
    box-shadow: 0 4px 20px rgba(0,0,0,.12);
    display: flex; align-items: center; gap: .6rem;
    font-size: .85rem; font-weight: 600; z-index: 9999;
    transform: translateY(20px); opacity: 0;
    transition: all .3s ease; border-left: 4px solid;
}
.rva-toast--success { color: #059669; border-left-color: #059669; }
.rva-toast--warning { color: #d97706; border-left-color: #d97706; }
.rva-toast--danger  { color: #dc2626; border-left-color: #dc2626; }
.rva-toast--show    { transform: translateY(0); opacity: 1; }
.rva-toast-btn {
    margin-left: .75rem; padding: .25rem .7rem;
    border-radius: 0; border: 1px solid currentColor; background: none;
    cursor: pointer; font-size: .72rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: .04em; color: inherit;
}
.rva-toast-btn:hover { background: currentColor; color: #fff; }

/* ── Overlay fullscreen ── */
.rva-overlay-backdrop { position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 1040; }
.rva-overlay-box {
    position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%);
    z-index: 1050; background: #fff; border: 1px solid #e0e1e3; border-radius: 0;
    padding: 2.5rem 3rem; text-align: center;
    box-shadow: 0 20px 60px rgba(0,0,0,.2); min-width: 280px;
}
.rva-overlay-spinner {
    width: 3rem; height: 3rem; margin: 0 auto 1.25rem;
    border: 3px solid #EEEFF0; border-top-color: #E34824;
    border-radius: 50%; animation: rva-spin .8s linear infinite;
}
.rva-overlay-title { font-size: 1rem; font-weight: 700; color: #151515; margin-bottom: .35rem; text-transform: uppercase; letter-spacing: .04em; }
.rva-overlay-sub   { font-size: .83rem; color: #6b7280; }

/* ── Responsive ── */
@media (max-width: 991.98px) {
    .rva-kpi-bar { grid-template-columns: repeat(2, 1fr); }
    .rva-page-title { font-size: 1.2rem; }
}
@media (max-width: 767.98px) {
    .rva-page-header { flex-direction: column; align-items: flex-start; }
    .rva-page-actions { width: 100%; }
    .rva-page-actions .rva-btn { flex: 1; justify-content: center; }
    .rva-bulk-toolbar { flex-direction: column; align-items: stretch; }
    .rva-bulk-actions { width: 100%; }
    .rva-bulk-actions .rva-btn { flex: 1; justify-content: center; }
    .rva-riga-header { flex-direction: column; align-items: stretch; }
    .rva-riga-header > button { width: 100%; }
    .rva-diff-table { font-size: .78rem; }
    .rva-diff-campo { width: auto; }
}
@media (max-width: 575.98px) {
    .rva-page { padding: 1rem; }
    .rva-launch-card { padding: 1.5rem; }
    .rva-launch-icon { font-size: 2rem; }
    .rva-kpi-bar { grid-template-columns: 1fr; }
    .rva-kpi-num { font-size: 1.5rem; }
    .rva-page-title-area { flex-direction: column; align-items: flex-start; text-align: left; }
    .rva-page-icon { width: 40px; height: 40px; font-size: 1.2rem; }
    .rva-overlay-box { padding: 1.5rem; min-width: auto; width: calc(100% - 2rem); }
    .rva-tab-btn { padding: .65rem .85rem; font-size: .75rem; }
    .rva-toast { left: 1rem; right: 1rem; bottom: 1rem; }
}