/* === Layout === */
.dashboard-container {
    max-width: 96%;
    margin: 0 auto;
}

/* === Filtri === */
#filters-wrap .form-control,
#filters-wrap .form-select {
    width: 150px;
    max-width: 150px;
}

/* === Card containers === */
.filters-card,
.results-card,
.home-card {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    margin-bottom: 24px;
    transition: box-shadow 0.15s ease-in-out;
}

.results-card,
.home-card {
    overflow: hidden;
}

.filters-card:hover,
.results-card:hover,
.home-card:hover {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}

.card-header {
    padding: 16px 20px;
    font-weight: 600;
    color: #495057;
    display: flex;
    align-items: center;
}

.card-body {
    padding: 20px;
}

/* === Form === */
.form-select {
    padding: .375rem .75rem;
    height: calc(2.25rem + 2px);
}

.btn {
    border-radius: 8px;
    font-weight: 500;
}

/* === Risultati === */
#results_container {
    margin: 0 15px;
}

/* === Tabella dispositivi === */
#devices_table {
    font-size: 0.875rem;
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
}

#devices_table th {
    font-weight: 600;
    vertical-align: middle;
    background-color: #fff;
    color: #495057;
    padding: 0.5rem;
    border-bottom: none;
    border-top: none;
}

#devices_table th:first-child { width: 50px; }
#devices_table th:last-child  { width: 50px; }

#devices_table td {
    vertical-align: middle;
    border-top: 1px solid #dee2e6;
    padding: 0.1rem 0.5rem !important;
}

#devices_table td .btn {
    padding: 0.1rem 0.5rem;
    margin: 0.1rem;
    border-radius: 8px;
}

#devices_table tbody tr:hover {
    background-color: rgba(var(--cui-primary-rgb), 0.05);
}

/* === Paginazione === */
.page-link {
    color: var(--cui-primary);
}

.page-item.active .page-link {
    z-index: 1;
    color: #fff;
    background-color: var(--cui-primary);
    border-color: var(--cui-primary);
}

/* === Badge === */
.badge {
    font-size: 0.75rem;
    padding: 4px 8px;
    border-radius: 6px;
}

.col_alarm_td .badge {
    font-size: 11px;
}

/* === Loading / no results === */
.loading-spinner {
    text-align: center;
    padding: 3rem 0;
}

.spinner-border {
    width: 3rem;
    height: 3rem;
    border-color: var(--cui-primary);
    border-right-color: transparent;
}

.no-results {
    text-align: center;
    color: #6c757d;
    padding: 3rem 0;
}

/* === Mappa base (l'altezza varia per pagina) === */
#map {
    width: 100%;
    border: 1px solid #d8dbe0;
}

/* === Tipologia card (condivisa tra Home e Dispositivo) === */
.col-tipologia-img {
    display: flex;
    justify-content: center;
    background: var(--cui-primary);
    border-radius: 5px 0 0 5px;
}

.col-tipologia-img img {
    width: 30%;
    filter: invert(1) grayscale(1) brightness(2) contrast(1);
}

/* === Responsive === */
@media (max-width: 768px) {
    #devices_table {
        font-size: 0.75rem;
    }

    .btn-group-sm .btn {
        padding: 0.125rem 0.25rem;
        font-size: 0.675rem;
    }

    .card-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }

    .row > div[class*="col-"] {
        margin-bottom: 16px;
    }
}
