/* ============================================================================
 * backup-mi-console — Tema applicativo
 * Palette, font e logo derivati dal sito istituzionale https://backup.mi.it
 * (variabili colore --mint/--blue/--yellow/--ink originali del brand).
 * Pensato per affiancare Bootstrap 5.3 nelle pagine di back-office.
 * ========================================================================== */

:root {
    /* --- Brand backup.mi --- */
    --bmi-mint: #A8DFD0;
    --bmi-mint-2: #92D5C4;
    --bmi-blue: #1E88E5;
    --bmi-blue-900: #0E5FB7;
    --bmi-yellow: #FFD33D;
    --bmi-ink: #0F2B46;
    --bmi-card: #F6FFFB;
    --bmi-muted: #2a4d6d;

    /* --- Mapping su variabili Bootstrap --- */
    --bs-primary: var(--bmi-blue);
    --bs-primary-rgb: 30, 136, 229;
    --bs-link-color: var(--bmi-blue);
    --bs-link-color-rgb: 30, 136, 229;
    --bs-link-hover-color: var(--bmi-blue-900);
    --bs-body-color: var(--bmi-ink);
    --bs-body-font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    --bs-border-radius: 0.75rem;
}

body {
    font-family: var(--bs-body-font-family);
    color: var(--bmi-ink);
    font-size: 0.95rem;
    min-height: 100vh;
    background: radial-gradient(circle at 12% 18%, rgba(255, 211, 61, .12), transparent 26%),
        radial-gradient(circle at 88% 24%, rgba(30, 136, 229, .12), transparent 30%),
        linear-gradient(120deg, #eaf7f2 0%, #eef7fb 60%, #f5fbff 100%);
    background-attachment: fixed;
}

/* ---------- Navbar / brand ---------- */
.navbar.bmi-navbar {
    background: rgba(255, 255, 255, .82);
    backdrop-filter: saturate(140%) blur(8px);
    border-bottom: 1px solid rgba(15, 43, 70, .08);
    box-shadow: 0 6px 20px rgba(15, 43, 70, .08);
}

.bmi-navbar .navbar-brand {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    font-weight: 800;
    color: var(--bmi-ink);
}

.bmi-navbar .navbar-brand .bmi-logo {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: conic-gradient(from 180deg at 50% 50%, #dff7ef, #e7fdf7);
    box-shadow: 0 8px 20px rgba(15, 43, 70, .12), inset 0 0 0 4px rgba(255, 255, 255, .6);
    padding: 5px;
}

.bmi-navbar .navbar-brand .bmi-dot {
    color: var(--bmi-yellow);
}

.bmi-navbar .nav-link {
    color: var(--bmi-muted);
    font-weight: 600;
}

.bmi-navbar .nav-link:hover,
.bmi-navbar .nav-link.active {
    color: var(--bmi-blue);
}

.bmi-navbar .navbar-text {
    color: var(--bmi-muted) !important;
}

/* ---------- Pulsanti ---------- */
.btn-primary {
    --bs-btn-bg: var(--bmi-blue);
    --bs-btn-border-color: var(--bmi-blue);
    --bs-btn-hover-bg: var(--bmi-blue-900);
    --bs-btn-hover-border-color: var(--bmi-blue-900);
    --bs-btn-active-bg: var(--bmi-blue-900);
    --bs-btn-active-border-color: var(--bmi-blue-900);
    box-shadow: 0 8px 20px rgba(14, 95, 183, .28);
}

.btn-outline-primary {
    --bs-btn-color: var(--bmi-blue);
    --bs-btn-border-color: var(--bmi-blue);
    --bs-btn-hover-bg: var(--bmi-blue);
    --bs-btn-hover-border-color: var(--bmi-blue);
    --bs-btn-active-bg: var(--bmi-blue-900);
}

.btn {
    border-radius: 12px;
    font-weight: 600;
}

/* ---------- Card / contenitori ---------- */
main.container-fluid {
    max-width: 1280px;
}

.card {
    border: 1px solid rgba(15, 43, 70, .06);
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(255, 255, 255, .92), var(--bmi-card));
    box-shadow: 0 14px 40px rgba(15, 43, 70, .08);
}

/* Il tema rende le card chiare: le utility text-bg-* di Bootstrap
 * imporrebbero testo bianco (illeggibile su fondo chiaro), quindi
 * riportiamo il testo al colore di brand ovunque vengano riusate. */
.card[class*="text-bg-"],
.card[class*="text-bg-"] .card-body {
    color: var(--bmi-ink);
}

.card .display-6 {
    font-weight: 700;
    color: var(--bmi-blue);
}

/* ---------- Tabelle & form ---------- */
.table {
    --bs-table-hover-bg: rgba(30, 136, 229, .06);
}

.form-control:focus,
.form-select:focus {
    border-color: var(--bmi-mint-2);
    box-shadow: 0 0 0 .2rem rgba(30, 136, 229, .15);
}

a {
    color: var(--bmi-blue);
}

a:hover {
    color: var(--bmi-blue-900);
}

/* ---------- Badge di stato sistemi ---------- */
.bmi-status {
    --bs-badge-font-weight: 600;
    border-radius: 999px;
}

.bmi-status.ok {
    background: #1f9d63;
}

.bmi-status.warning {
    background: var(--bmi-yellow);
    color: var(--bmi-ink);
}

.bmi-status.error {
    background: #d9534f;
}

.bmi-status.unknown {
    background: #8aa0b3;
}

/* ---------- Dashboard KPI ---------- */
.bmi-kpi-stripe {
    height: 4px;
    border-radius: 18px 18px 0 0;
    margin: -1px -1px 0;
}
.bmi-kpi-stripe-blue  { background: var(--bmi-blue); }
.bmi-kpi-stripe-teal  { background: #17a2b8; }
.bmi-kpi-stripe-green { background: #1f9d63; }
.bmi-kpi-stripe-red   { background: #d9534f; }
.bmi-kpi-stripe-grey  { background: #8aa0b3; }

.bmi-kpi--err-active {
    background: linear-gradient(180deg, rgba(217, 83, 79, .06), var(--bmi-card)) !important;
    box-shadow: 0 14px 40px rgba(217, 83, 79, .20) !important;
}

.kpi-num {
    font-size: 2.2rem;
    font-weight: 800;
    line-height: 1;
    color: var(--bmi-ink);
}
.kpi-num-teal  { color: #17a2b8; }
.kpi-num-green { color: #1f9d63; }
.kpi-num-red   { color: #d9534f; }
.kpi-num-grey  { color: #8aa0b3; }
.kpi-label { font-size: .85rem; color: var(--bmi-muted); margin-top: .25rem; }
.kpi-sub   { font-size: .75rem; color: #8aa0b3; margin-top: .2rem; }
.kpi-sub-warn { color: #c47d00; }

/* ---------- Login ---------- */
.bmi-login-wrap {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 24px;
}

.bmi-login-card {
    width: 100%;
    max-width: 400px;
    border-radius: 28px;
    background: linear-gradient(180deg, rgba(255, 255, 255, .95), rgba(255, 255, 255, .85));
    box-shadow: 0 20px 60px rgba(15, 43, 70, .15);
}

.bmi-login-logo {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: conic-gradient(from 180deg at 50% 50%, #dff7ef, #e7fdf7);
    box-shadow: 0 12px 30px rgba(15, 43, 70, .12), inset 0 0 0 6px rgba(255, 255, 255, .6);
    padding: 10px;
}
