/* Stili personalizzati dell'applicazione */
body {
    background-color: #f8f9fa;
}

.card {
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
    border: none;
}

.btn-primary {
    background-color: #007bff;
    border-color: #007bff;
}

.btn-primary:hover {
    background-color: #0069d9;
    border-color: #0062cc;
}

/* =========================== */
/* Temi UI basati su Bootstrap */
/* =========================== */

/* Tema: Modern Blue (default) */
body[data-theme="modern-blue"] {
    --bs-primary: #0d6efd;
    --bs-primary-rgb: 13, 110, 253;
    --bs-secondary: #6c757d;
    --app-bg: #f8f9fa;
    --sidebar-bg: #ffffff;
    --sidebar-link: #2b2f32;
    --sidebar-active-bg: var(--bs-primary);
    --sidebar-active-color: #ffffff;
    /* Variabili componenti */
    --radius-card: .5rem;
    --radius-btn: .5rem;
    --table-head-bg: #eaf2ff; /* azzurro molto chiaro */
    --table-head-color: #0d6efd;
    --table-row-hover: rgba(13,110,253,.06);
}

/* Tema: Modern Slate */
body[data-theme="modern-slate"] {
    --bs-primary: #495057;
    --bs-primary-rgb: 73, 80, 87;
    --bs-secondary: #adb5bd;
    --app-bg: #f1f3f5;
    --sidebar-bg: #ffffff;
    --sidebar-link: #343a40;
    --sidebar-active-bg: #343a40;
    --sidebar-active-color: #ffffff;
    /* Variabili componenti */
    --radius-card: .375rem;
    --radius-btn: .375rem;
    --table-head-bg: #343a40;
    --table-head-color: #ffffff;
    --table-row-hover: rgba(52,58,64,.08);
}

/* Tema: Professionecasa (grigio/rosso/bianco) */
body[data-theme="professionecasa"] {
    /* Colori richiesti: grigio #6C7074, rosso #E92F2A, bianco #FFFFFF */
    --bs-primary: #E92F2A; /* rosso */
    --bs-primary-rgb: 233, 47, 42;
    --bs-secondary: #6C7074; /* grigio */
    --app-bg: #FFFFFF; /* bianco */
    --sidebar-bg: #6C7074; /* grigio 6C7074*/
    --sidebar-link: #FFFFFF; /* bianco */
    --sidebar-active-bg: #E92F2A; /* rosso */
    --sidebar-active-color: #FFFFFF; /* bianco */
    /* Variabili componenti e densità più “professionale” */
    --radius-card: .25rem; /* più squadrato */
    --radius-btn: .25rem;
    --table-head-bg: #E92F2A;
    --table-head-color: #ffffff;
    --table-row-hover: rgba(233,47,42,.06);
}

/* Applica sfondo app in base al tema */
body[data-theme] {
    background-color: var(--app-bg, #f8f9fa);
}

/* Sidebar stile WordPress-like */
.sidebar {
    width: 248px;
    min-height: 100vh;
    background-color: var(--sidebar-bg, #fff) !important;
    position: relative;
}
.sidebar .nav-link {
    color: var(--sidebar-link, #2b2f32);
    border-radius: .375rem;
    padding: .5rem .75rem;
}
.sidebar .nav-link:hover {
    background-color: rgba(var(--bs-primary-rgb, 13,110,253), .08);
}
.sidebar .nav-link.active {
    color: var(--sidebar-active-color, #fff) !important;
    background-color: var(--sidebar-active-bg, var(--bs-primary));
}
.sidebar .link-body-emphasis {
    color: var(--sidebar-link, #2b2f32) !important;
}

/* Bottoni primari armonizzati al tema tramite variabili */
.btn-primary {
    background-color: var(--bs-primary) !important;
    border-color: var(--bs-primary) !important;
}
.btn-primary:hover {
    filter: brightness(0.95);
}

/* ================================ */
/* Componenti comuni guidati dal tema */
/* ================================ */

/* Card: raggio e ombra coerenti per tema */
.card {
    border-radius: var(--radius-card, .5rem);
}

/* Bottoni: raggio e variante tema */
.btn {
    border-radius: var(--radius-btn, .5rem);
}

/* Tema Professionecasa: stile più deciso */
body[data-theme="professionecasa"] .btn-primary,
body[data-theme="professionecasa"] .badge.bg-primary {
    text-transform: uppercase;
    letter-spacing: .02em;
}
body[data-theme="professionecasa"] .badge {
    border-radius: .25rem;
}

/* Tabelle: header e hover coerenti con tema */
.table thead th {
    background-color: var(--table-head-bg, #f8f9fa);
    color: var(--table-head-color, #212529);
    border-bottom: 2px solid rgba(0,0,0,.06);
}
.table tbody tr:hover {
    background-color: var(--table-row-hover, rgba(0,0,0,.02));
}
.table-striped>tbody>tr:nth-of-type(odd)>*{
    --bs-table-accent-bg: color-mix(in oklab, var(--table-row-hover, rgba(0,0,0,.03)) 40%, transparent);
}

/* Form controls */
.form-control:focus, .form-select:focus {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb, 13,110,253), .25);
}

/* Riduzione gap tra sidebar e contenuto (container full width) */
.content-fluid .container,
.content-fluid .container-sm,
.content-fluid .container-md,
.content-fluid .container-lg,
.content-fluid .container-xl,
.content-fluid .container-xxl {
    max-width: 100% !important;
}
.content-fluid .container,
.content-fluid .container-fluid {
    padding-left: .75rem;
    padding-right: .75rem;
}

/* Dropdown menu sidebar */
.sidebar .dropdown-menu {
    background-color: var(--sidebar-bg, #fff);
    border: 1px solid rgba(var(--bs-primary-rgb, 13,110,253), .15);
    box-shadow: 0 .5rem 1rem rgba(0,0,0,.15);
}
.sidebar .dropdown-item {
    color: var(--sidebar-link, #2b2f32);
    padding: .5rem 1rem;
}
.sidebar .dropdown-item:hover {
    background-color: rgba(var(--bs-primary-rgb, 13,110,253), .08);
    color: var(--sidebar-link, #2b2f32);
}
.sidebar .dropdown-item:focus {
    background-color: rgba(var(--bs-primary-rgb, 13,110,253), .08);
    color: var(--sidebar-link, #2b2f32);
}

/* Compattezza generale per professionecasa */
body[data-theme="professionecasa"] .table td,
body[data-theme="professionecasa"] .table th {
    padding-top: .55rem;
    padding-bottom: .55rem;
}
body[data-theme="professionecasa"] .card .card-header {
    font-weight: 600;
}

/* ================================ */
/* Layout differenziati per tema */
/* ================================ */

/* Modern Blue: layout arioso, moderno, spazioso */
body[data-theme="modern-blue"] {
    --card-spacing: 2rem;
    --btn-height: 2.75rem;
    --table-cell-padding: 1rem;
}
body[data-theme="modern-blue"] .card {
    border-radius: 1rem;
    box-shadow: 0 .5rem 1.5rem rgba(13,110,253,.08);
    border: none;
    margin-bottom: var(--card-spacing);
}
body[data-theme="modern-blue"] .card-header {
    border-radius: 1rem 1rem 0 0;
    background: linear-gradient(135deg, var(--bs-primary), #4dabf7);
    color: white;
    padding: 1.25rem 1.5rem;
    border: none;
    font-weight: 600;
}
body[data-theme="modern-blue"] .card-body {
    padding: 1.5rem;
}
body[data-theme="modern-blue"] .btn {
    padding: .75rem 2rem;
    font-weight: 600;
    border-radius: 2rem;
    min-height: var(--btn-height);
    text-transform: none;
    letter-spacing: .025em;
}
body[data-theme="modern-blue"] .btn-primary {
    background: linear-gradient(135deg, var(--bs-primary), #4dabf7);
    border: none;
    box-shadow: 0 .25rem .75rem rgba(13,110,253,.3);
}
body[data-theme="modern-blue"] .table {
    border-radius: .75rem;
    overflow: hidden;
    box-shadow: 0 .25rem 1rem rgba(0,0,0,.05);
}
body[data-theme="modern-blue"] .table td,
body[data-theme="modern-blue"] .table th {
    padding: var(--table-cell-padding);
    vertical-align: middle;
}
body[data-theme="modern-blue"] .form-control,
body[data-theme="modern-blue"] .form-select {
    border-radius: .75rem;
    padding: .75rem 1rem;
    border: 2px solid #e9ecef;
}

/* Modern Slate: layout industriale, geometrico */
body[data-theme="modern-slate"] {
    --card-spacing: 1.5rem;
    --btn-height: 2.5rem;
    --table-cell-padding: .75rem;
}
body[data-theme="modern-slate"] .card {
    border-radius: 0;
    box-shadow: 0 .5rem 1rem rgba(52,58,64,.15);
    border-left: 4px solid var(--bs-primary);
    margin-bottom: var(--card-spacing);
}
body[data-theme="modern-slate"] .card-header {
    background-color: var(--bs-primary);
    color: white;
    padding: 1rem 1.25rem;
    border-radius: 0;
    border: none;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    font-size: .875rem;
}
body[data-theme="modern-slate"] .card-body {
    padding: 1.25rem;
}
body[data-theme="modern-slate"] .btn {
    padding: .625rem 1.5rem;
    font-weight: 600;
    border-radius: 0;
    min-height: var(--btn-height);
    text-transform: uppercase;
    letter-spacing: .075em;
    font-size: .875rem;
}
body[data-theme="modern-slate"] .btn-primary {
    background-color: var(--bs-primary);
    border: 2px solid var(--bs-primary);
}
body[data-theme="modern-slate"] .table {
    border-radius: 0;
    border: 2px solid #dee2e6;
}
body[data-theme="modern-slate"] .table td,
body[data-theme="modern-slate"] .table th {
    padding: var(--table-cell-padding);
    border-color: #dee2e6;
}
body[data-theme="modern-slate"] .table thead th {
    font-weight: 700;
    text-transform: uppercase;
    font-size: .8125rem;
    letter-spacing: .1em;
}
body[data-theme="modern-slate"] .form-control,
body[data-theme="modern-slate"] .form-select {
    border-radius: 0;
    padding: .625rem .875rem;
    border: 2px solid #adb5bd;
}

/* Professionecasa: layout denso, corporate, efficiente */
body[data-theme="professionecasa"] {
    --card-spacing: 1rem;
    --btn-height: 2.25rem;
    --table-cell-padding: .5rem;
}
body[data-theme="professionecasa"] .card {
    border-radius: .125rem;
    box-shadow: 0 .125rem .5rem rgba(108,112,116,.2);
    border: 1px solid #dee2e6;
    margin-bottom: var(--card-spacing);
}
body[data-theme="professionecasa"] .card-header {
    background: linear-gradient(90deg, var(--bs-primary), #dc3545);
    color: white;
    padding: .75rem 1rem;
    border-radius: .125rem .125rem 0 0;
    border: none;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
    font-size: .8125rem;
}
body[data-theme="professionecasa"] .card-body {
    padding: 1rem;
}
body[data-theme="professionecasa"] .btn {
    padding: .5rem 1rem;
    font-weight: 700;
    border-radius: .125rem;
    min-height: var(--btn-height);
    text-transform: uppercase;
    letter-spacing: .1em;
    font-size: .8125rem;
}
body[data-theme="professionecasa"] .btn-primary {
    background: linear-gradient(45deg, var(--bs-primary), #dc3545);
    border: none;
    box-shadow: 0 .125rem .375rem rgba(233,47,42,.4);
}
body[data-theme="professionecasa"] .table {
    border-radius: .125rem;
    font-size: .8125rem;
    border: 1px solid #dee2e6;
}
body[data-theme="professionecasa"] .table td,
body[data-theme="professionecasa"] .table th {
    padding: var(--table-cell-padding) .75rem;
    border-color: #dee2e6;
    font-size: .8125rem;
}
/* Professionecasa: forza allineamento centro per colonna "Messaggi" (8a colonna) */
body[data-theme="professionecasa"] .table thead th:nth-child(8),
body[data-theme="professionecasa"] .table tbody td:nth-child(8) {
    text-align: center !important;
}
body[data-theme="professionecasa"] .table thead th {
    font-weight: 800;
    text-transform: uppercase;
    font-size: .75rem;
    letter-spacing: .125em;
}
body[data-theme="professionecasa"] .badge {
    font-size: .6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    border-radius: .125rem;
}
/* Badge info personalizzato per tema Professionecasa */
body[data-theme="professionecasa"] .badge.bg-info {
    background-color: #2F2F2F !important;
    border-color: #2F2F2F !important;
    color: #FFFFFF !important;
}
/* Badge conteggio messaggi (tema Professionecasa) */
body[data-theme="professionecasa"] .badge-messages-count {
    background-color: transparent !important;
    border-color: transparent !important;
    color: var(--bs-primary) !important; /* #E92F2A */
    padding: 0 !important;
    border-radius: 0 !important;
    font-weight: 700 !important; /* grassetto */
    font-size: 1rem !important;  /* più grande del testo tabellare (.8125rem) */
}
/* Dropdown submenu Configurazioni più contrastato rispetto al menu (tema Professionecasa) */
body[data-theme="professionecasa"] .sidebar .dropdown-menu {
    background-color: #555b60 !important; /* grigio più scuro del sidebar */
    border-color: #4a4f53 !important;
    box-shadow: 0 .5rem 1rem rgba(0,0,0,.3);
}
body[data-theme="professionecasa"] .sidebar .dropdown-item {
    color: #ffffff !important;
}
body[data-theme="professionecasa"] .sidebar .dropdown-item:hover,
body[data-theme="professionecasa"] .sidebar .dropdown-item:focus {
    background-color: rgba(255,255,255,.08) !important;
    color: #ffffff !important;
}
body[data-theme="professionecasa"] .list-group-item {
    padding: .5rem .75rem;
    font-size: .8125rem;
    border-radius: .125rem;
}
body[data-theme="professionecasa"] .form-control,
body[data-theme="professionecasa"] .form-select {
    border-radius: .125rem;
    padding: .5rem .75rem;
    border: 1px solid #6c757d;
    font-size: .8125rem;
}

/* Professionecasa: override colori pannelli top dashboard admin */
/* Target selettivo: solo le 4 card in col-md-3 della dashboard admin */
body[data-theme="professionecasa"] .container > .row.justify-content-center > .col-md-12 > .card > .card-body > .row > .col-md-3 > .card.bg-primary,
body[data-theme="professionecasa"] .container > .row.justify-content-center > .col-md-12 > .card > .card-body > .row > .col-md-3 > .card.bg-primary .card-body,
body[data-theme="professionecasa"] .container > .row.justify-content-center > .col-md-12 > .card > .card-body > .row > .col-md-3 > .card.bg-primary .card-footer {
    background-color: #FF7043 !important; /* Agenti: Soft Orange */
    border-color: #FF7043 !important;
    color: #ffffff !important;
}
body[data-theme="professionecasa"] .container > .row.justify-content-center > .col-md-12 > .card > .card-body > .row > .col-md-3 > .card.bg-success,
body[data-theme="professionecasa"] .container > .row.justify-content-center > .col-md-12 > .card > .card-body > .row > .col-md-3 > .card.bg-success .card-body,
body[data-theme="professionecasa"] .container > .row.justify-content-center > .col-md-12 > .card > .card-body > .row > .col-md-3 > .card.bg-success .card-footer {
    background-color: #66BB6A !important; /* Lead: Sage Green */
    border-color: #66BB6A !important;
    color: #ffffff !important;
}
body[data-theme="professionecasa"] .container > .row.justify-content-center > .col-md-12 > .card > .card-body > .row > .col-md-3 > .card.bg-warning,
body[data-theme="professionecasa"] .container > .row.justify-content-center > .col-md-12 > .card > .card-body > .row > .col-md-3 > .card.bg-warning .card-body,
body[data-theme="professionecasa"] .container > .row.justify-content-center > .col-md-12 > .card > .card-body > .row > .col-md-3 > .card.bg-warning .card-footer {
    background-color: #0288D1 !important; /* Proprietà: Petrol Blue */
    border-color: #0288D1 !important;
    color: #ffffff !important;
}
body[data-theme="professionecasa"] .container > .row.justify-content-center > .col-md-12 > .card > .card-body > .row > .col-md-3 > .card.bg-info,
body[data-theme="professionecasa"] .container > .row.justify-content-center > .col-md-12 > .card > .card-body > .row > .col-md-3 > .card.bg-info .card-body,
body[data-theme="professionecasa"] .container > .row.justify-content-center > .col-md-12 > .card > .card-body > .row > .col-md-3 > .card.bg-info .card-footer {
    background-color: #8E24AA !important; /* Appuntamenti: Desaturated Purple */
    border-color: #8E24AA !important;
    color: #ffffff !important;
}

/* Logo nella sidebar (tema Professionecasa) */
body[data-theme="professionecasa"] .pc-sidebar-logo {
    display: block;
    margin: 0 0 0.75rem 0; /* allineato a sinistra */
    padding-bottom: 0.25rem;
}
body[data-theme="professionecasa"] .pc-sidebar-logo .pc-logo {
    width: 100%;
    max-width: 180px;
    height: auto;
    object-fit: contain;
}

/* Layout auth page */
.auth-layout {
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    min-height: 100vh;
    position: relative;
}
.auth-layout::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grain" width="100" height="100" patternUnits="userSpaceOnUse"><circle cx="20" cy="20" r="1" fill="%23ffffff" opacity="0.1"/><circle cx="80" cy="40" r="1" fill="%23ffffff" opacity="0.1"/><circle cx="40" cy="80" r="1" fill="%23ffffff" opacity="0.1"/></pattern></defs><rect width="100" height="100" fill="url(%23grain)"/></svg>') repeat;
    pointer-events: none;
}
.auth-container {
    width: 100%;
    max-width: 450px;
    padding: 2rem;
    position: relative;
    z-index: 1;
}
.auth-layout .card {
    background: #ffffff;
    border: none;
    border-radius: 1rem;
    box-shadow: 0 1rem 3rem rgba(0,0,0,.1);
    overflow: hidden;
}
.auth-layout .card-header {
    background: linear-gradient(135deg, var(--bs-primary, #0d6efd), #4dabf7);
    color: white;
    text-align: center;
    padding: 2rem 1.5rem 1.5rem;
    border: none;
    font-size: 1.5rem;
    font-weight: 600;
}
.auth-layout .card-body {
    padding: 2rem;
}
.auth-layout .form-control {
    border-radius: .5rem;
    padding: .75rem 1rem;
    border: 2px solid #e9ecef;
    font-size: 1rem;
    transition: all .3s ease;
}
.auth-layout .input-group-text {
    background-color: #f8f9fa;
    border: 2px solid #e9ecef;
    border-right: none;
    color: #6c757d;
}
.auth-layout .input-group .form-control {
    border-left: none;
}
.auth-layout .input-group .form-control:focus {
    border-left: none;
    box-shadow: none;
}
.auth-layout .input-group:focus-within .input-group-text {
    border-color: var(--bs-primary, #0d6efd);
    background-color: rgba(var(--bs-primary-rgb, 13,110,253), .05);
    color: var(--bs-primary, #0d6efd);
}
.auth-layout .input-group:focus-within .form-control {
    border-color: var(--bs-primary, #0d6efd);
    box-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb, 13,110,253), .15);
}
.auth-layout .form-control:focus {
    border-color: var(--bs-primary, #0d6efd);
    box-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb, 13,110,253), .15);
}
.auth-layout .btn-primary {
    background: linear-gradient(135deg, var(--bs-primary, #0d6efd), #4dabf7);
    border: none;
    border-radius: .5rem;
    padding: .75rem 2rem;
    font-weight: 600;
    font-size: 1rem;
    box-shadow: 0 .25rem .75rem rgba(var(--bs-primary-rgb, 13,110,253), .3);
    transition: all .3s ease;
}
.auth-layout .btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 .5rem 1rem rgba(var(--bs-primary-rgb, 13,110,253), .4);
}
.auth-layout .btn-link {
    color: var(--bs-primary, #0d6efd);
    text-decoration: none;
    font-weight: 500;
}
.auth-layout .btn-link:hover {
    color: var(--bs-primary, #0d6efd);
    text-decoration: underline;
}

/* Responsive adjustments per tema */
@media (max-width: 768px) {
    body[data-theme="modern-blue"] {
        --card-spacing: 1.5rem;
        --btn-height: 2.5rem;
        --table-cell-padding: .75rem;
    }
    body[data-theme="modern-slate"] {
        --card-spacing: 1rem;
        --btn-height: 2.25rem;
        --table-cell-padding: .625rem;
    }
    body[data-theme="professionecasa"] {
        --card-spacing: .75rem;
        --btn-height: 2rem;
        --table-cell-padding: .375rem;
    }
    .auth-container {
        padding: 1rem;
        max-width: 350px;
    }
}
