/* ============================================================
   Consolidati Theme — override Bootstrap 5
   Colori istituzionali:
     --csm-navy  : #1e4a7a  (primario)
     --csm-coral : #e05a4e  (accent)
     --csm-white : #ffffff
   ============================================================ */

:root {
    --csm-navy:        #1e4a7a;
    --csm-navy-dark:   #163960;   /* hover / pressed */
    --csm-navy-light:  #255a96;   /* focus ring */
    --csm-coral:       #e05a4e;
    --csm-coral-dark:  #c44d42;   /* hover / pressed */
    --csm-white:       #ffffff;
}

/* ── Body ─────────────────────────────────────────────────── */
body {
    background-color: #f0f3f7;
}

/* ── Navbar ───────────────────────────────────────────────── */
.navbar.bg-dark {
    background-color: var(--csm-navy) !important;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
}

/* icona fallback brand */
.navbar-brand .bi-diagram-3-fill {
    color: var(--csm-coral) !important;
}

/* ── Sidebar ──────────────────────────────────────────────── */
.sidebar.bg-dark {
    background-color: var(--csm-navy) !important;
    border-right: 1px solid rgba(255, 255, 255, .07);
}

.sidebar .nav-link {
    color: rgba(255, 255, 255, .72);
    border-radius: .375rem;
    transition: background-color .15s, color .15s;
}

.sidebar .nav-link:hover {
    color: var(--csm-white);
    background-color: rgba(255, 255, 255, .10);
}

.sidebar .nav-link.active {
    color: var(--csm-white);
    background-color: var(--csm-coral);
    font-weight: 500;
}

.sidebar .nav-section {
    font-size: .68rem;
    color: rgba(255, 255, 255, .38);
    padding: .75rem 1rem .25rem;
    letter-spacing: .09em;
    text-transform: uppercase;
}

/* ── Footer ───────────────────────────────────────────────── */
.app-footer {
    background-color: var(--csm-navy) !important;
    border-top: 1px solid rgba(255, 255, 255, .08);
}

/* ── Pulsanti primari ─────────────────────────────────────── */
.btn-primary {
    --bs-btn-color:              #ffffff;
    --bs-btn-bg:                 var(--csm-coral);
    --bs-btn-border-color:       var(--csm-coral);
    --bs-btn-hover-color:        #ffffff;
    --bs-btn-hover-bg:           var(--csm-coral-dark);
    --bs-btn-hover-border-color: var(--csm-coral-dark);
    --bs-btn-active-color:       #ffffff;
    --bs-btn-active-bg:          #c94a3e;
    --bs-btn-active-border-color:#c94a3e;
    --bs-btn-focus-shadow-rgb:   224, 90, 78;
}

.btn-outline-primary {
    --bs-btn-color:        var(--csm-navy);
    --bs-btn-border-color: var(--csm-navy);
    --bs-btn-hover-bg:     var(--csm-navy);
    --bs-btn-hover-border-color: var(--csm-navy);
    --bs-btn-active-bg:    var(--csm-navy-dark);
    --bs-btn-focus-shadow-rgb: 30, 74, 122;
}

/* ── Pulsanti azione nelle tabelle ────────────────────────── */
.btn-sm.btn-outline-info,
.btn-sm.btn-outline-warning,
.btn-sm.btn-outline-danger,
.btn-sm.btn-outline-success,
.btn-sm.btn-outline-secondary,
.btn-sm.btn-outline-primary {
    border-radius: 8px;
    border-width: 1.5px;
    background-color: #fff;
    font-size: .78rem;
    padding: .3rem .55rem;
    transition: all .15s ease-in-out;
}

.btn-sm.btn-outline-info:hover,
.btn-sm.btn-outline-warning:hover,
.btn-sm.btn-outline-danger:hover,
.btn-sm.btn-outline-success:hover,
.btn-sm.btn-outline-secondary:hover,
.btn-sm.btn-outline-primary:hover {
    color: #fff;
    box-shadow: 0 2px 6px rgba(0,0,0,.12);
}

/* Visualizza (occhio) — azzurro */
.btn-sm.btn-outline-info {
    border-color: #17A2B8;
    color: #17A2B8;
}
.btn-sm.btn-outline-info:hover {
    background-color: #004C7A;
    border-color: #004C7A;
}

/* Modifica (matita) — giallo/arancione */
.btn-sm.btn-outline-warning {
    border-color: #FFC107;
    color: #FFC107;
}
.btn-sm.btn-outline-warning:hover {
    background-color: #004C7A;
    border-color: #004C7A;
}

/* Elimina (cestino) — rosso */
.btn-sm.btn-outline-danger {
    border-color: #DC3545;
    color: #DC3545;
}
.btn-sm.btn-outline-danger:hover {
    background-color: #CC0000;
    border-color: #CC0000;
}

/* Pulsanti azione specifici per tabelle (stile uniforme 36x36) */
.btn-action-edit,
.btn-action-delete,
.btn-action-success,
.btn-action-upload {
    width: 36px;
    height: 36px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    border-width: 1.5px;
    border-style: solid;
    background-color: #fff;
    font-size: .85rem;
    transition: all .15s ease-in-out;
}
.btn-action-edit {
    border-color: #FFC107;
    color: #FFC107;
}
.btn-action-edit:hover {
    background-color: #004C7A;
    border-color: #004C7A;
    color: #fff;
}
.btn-action-delete {
    border-color: #DC3545;
    color: #DC3545;
}
.btn-action-delete:hover {
    background-color: #CC0000;
    border-color: #CC0000;
    color: #fff;
}
.btn-action-success {
    border-color: #198754;
    color: #198754;
}
.btn-action-success:hover {
    background-color: #004C7A;
    border-color: #004C7A;
    color: #fff;
}
.btn-action-upload {
    border-color: #004C7A;
    color: #004C7A;
}
.btn-action-upload:hover {
    background-color: #004C7A;
    border-color: #004C7A;
    color: #fff;
}

/* ── Hover blu avio per pulsanti outline generici ────────── */
.btn-outline-secondary:hover,
.btn-outline-primary:hover,
.btn-outline-dark:hover {
    background-color: #004C7A !important;
    border-color: #004C7A !important;
    color: white !important;
}

/* ── Link e testo accent ──────────────────────────────────── */
a { color: var(--csm-navy); }
a:hover { color: var(--csm-navy-dark); }

.text-primary { color: var(--csm-navy) !important; }

/* ── Badge ruolo ──────────────────────────────────────────── */
.badge-ruolo-admin {
    background-color: var(--csm-coral);
}
.badge-ruolo-operatore {
    background-color: rgba(255, 255, 255, .22);
}
.badge-ruolo-account {
    background-color: #0dcaf0;
}

/* ── Badge accent (bg-primary) ────────────────────────────── */
.badge.bg-primary {
    background-color: var(--csm-coral) !important;
}

/* ── Card header accent ───────────────────────────────────── */
.card-header .bi,
.card-header i.text-primary {
    color: var(--csm-coral) !important;
}

/* ── Form focus ring ──────────────────────────────────────── */
.form-control:focus,
.form-select:focus {
    border-color: var(--csm-navy-light);
    box-shadow: 0 0 0 .25rem rgba(30, 74, 122, .20);
}

/* ── Alert / callout accent ───────────────────────────────── */
.alert-primary {
    --bs-alert-color:        var(--csm-navy-dark);
    --bs-alert-bg:           #dde9f5;
    --bs-alert-border-color: #b8d0ea;
}

/* ── Pagination ───────────────────────────────────────────── */
.page-link { color: var(--csm-navy); }
.page-item.active .page-link {
    background-color: var(--csm-navy);
    border-color:     var(--csm-navy);
}

/* ── Bulk action bar ──────────────────────────────────────── */
.bulk-bar {
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 9999;
    background: var(--csm-navy);
    color: #fff;
    padding: 12px 20px;
    box-shadow: 0 -4px 12px rgba(0,0,0,.25);
}
.bulk-bar.show { display: flex; align-items: center; gap: 1rem; }
.bulk-bar .bulk-count { font-weight: 600; }

/* ── Nav tabs / pills ─────────────────────────────────────── */
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
    background-color: var(--csm-navy);
}

/* ── Spinner accent ───────────────────────────────────────── */
.spinner-border.text-primary,
.spinner-grow.text-primary {
    color: var(--csm-navy) !important;
}

/* ── Badge codice servizio (DOM, HST, SMM, ecc.) ─────────── */
.badge.bg-dark.font-monospace {
    background-color: var(--csm-navy) !important;
    color: var(--csm-white) !important;
}

/* ── Intestazioni tabelle ─────────────────────────────────── */
thead th {
    background-color: #f0f2f5 !important;
    color: var(--csm-navy) !important;
    border-bottom-color: #d5dce8 !important;
}

/* ── Sidebar offcanvas / responsive ───────────────────────── */

/* Mobile: offcanvas bg usa il nostro navy */
.sidebar {
    --bs-offcanvas-bg: var(--csm-navy);
    --bs-offcanvas-width: 260px;
    --bs-offcanvas-border-color: rgba(255,255,255,.07);
}

/* Desktop (md+): annulla l'offcanvas e ripristina il pannello fisso */
@media (min-width: 768px) {
    .sidebar.offcanvas-md {
        position: sticky !important;
        top: 56px !important;
        width: 230px !important;
        min-height: calc(100vh - 56px);
        flex-shrink: 0 !important;
        flex-grow: 0 !important;
        transform: none !important;
        visibility: visible !important;
        /* Azzera le variabili di transizione offcanvas */
        --bs-offcanvas-transition: none;
    }
}

/* ============================================================
   Badge tipo documento — sezione Documenti e Contratti
   ============================================================ */

.badge-doc-fattura {
    background-color: #d4edda !important;
    color: #155724 !important;
}

.badge-doc-preventivo {
    background-color: #cce5ff !important;
    color: #004085 !important;
}

.badge-doc-contratto {
    background-color: #fff3cd !important;
    color: #856404 !important;
}

.badge-doc-altro {
    background-color: #e2e3e5 !important;
    color: #383d41 !important;
}

.badge[class*="badge-doc-"] {
    font-weight: 600;
    font-size: 0.75em;
    padding: 0.35em 0.65em;
    border-radius: 0.25rem;
}

/* ============================================================
   Banner scadenze — scheda cliente
   ============================================================ */

/* Sfondo e bordo dinamici via inline style */
.scadenze-banner {
    border-radius: 0.5rem;
}

/* Tabelle dentro il banner: sfondo trasparente */
.scadenze-table {
    background: transparent !important;
    --bs-table-bg: transparent;
}

.scadenze-table thead tr {
    border-bottom: 1px solid rgba(0,0,0,0.08);
}

.scadenze-table tbody tr {
    border-bottom: 1px solid rgba(0,0,0,0.04);
}

/* Hover righe scadenze */
.scadenze-table.table-hover > tbody > tr:hover {
    background-color: rgba(255,255,255,0.5) !important;
}

/* Badge urgenza dentro il banner */
.scadenze-banner .badge {
    font-weight: 600;
    font-size: 0.7em;
    padding: 0.3em 0.6em;
}

/* ============================================================
   Leggibilità — Dimensioni font globali
   ============================================================
   Tutti i valori sono stati incrementati per migliorare la
   leggibilità su monitor e laptop. I valori precedenti erano
   troppo piccoli (13-14px) per un uso quotidiano prolungato.

   body:            15px → 15px (confermato)
   tabelle td:      0.875rem (14px) → 14px (confermato)
   tabelle th:      0.875rem → 13px + letter-spacing 0.3px
   sidebar link:    0.97rem → 14px con padding 10px 16px
   card body:       inherit → 15px
   card title:      1.05rem → 17px
   form input:      0.875rem → 15px
   form label:      0.875rem → 14px + font-weight 500
   btn:             0.875rem → 14px + padding 7px 14px
   btn-sm:          0.8125rem → 13px + padding 5px 10px
   badge:           bootstrap default → 12px + padding 5px 10px
   breadcrumb:      0.8125rem → 13px
   ============================================================ */

/* 1. Body base */
body {
    font-size: 15px;
    line-height: 1.6;
}

/* 2. Titoli pagina — scala armonica */
h1, .h1 { font-size: 1.7rem; }
h2, .h2 { font-size: 1.45rem; }
h3, .h3 { font-size: 1.25rem; }
h4, .h4 { font-size: 1.1rem; }

/* 3. Tabelle */
.table {
    font-size: 14px;
}
.table th {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.3px;
}

/* 4. Sidebar */
.sidebar .nav-section,
.csm-sidebar .nav-section {
    font-size: .75rem;
}
.sidebar .nav-link,
.sidebar .sidebar-link,
.csm-sidebar .nav-link {
    font-size: 14px;
    padding: 10px 16px;
}

/* 5. Card e widget */
.card-body {
    font-size: 15px;
}
.card-title,
.card-header h5,
.card-header h6,
.card-header .fw-bold,
.card-header .fw-semibold {
    font-size: 17px;
}

/* 6. Badge — più grandi e leggibili */
.badge {
    font-size: 12px;
    padding: 5px 10px;
}
.badge[class*="badge-doc-"] {
    font-size: 12px;
}

/* 7. Form — input e label */
.form-control,
.form-select,
textarea.form-control {
    font-size: 15px;
}
.form-label {
    font-size: 14px;
    font-weight: 500;
}

/* 8. Pulsanti */
.btn {
    font-size: 14px;
    padding: 7px 14px;
}
.btn-sm {
    font-size: 13px;
    padding: 5px 10px;
}
.btn-action-edit,
.btn-action-view,
.btn-action-delete,
.btn-action-success,
.btn-action-upload {
    font-size: 14px;
}

/* 9. Breadcrumb e filtri */
.breadcrumb {
    font-size: 13px;
}

/* 10. Banner scadenze */
.scadenze-banner .badge {
    font-size: 12px;
}
.scadenze-table td,
.scadenze-table th {
    font-size: 14px;
}

/* ── Badge viola (security: upload sospetto) ─────────────── */
.bg-purple {
    background-color: #6f42c1 !important;
    color: #fff !important;
}
