@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap");

/*
 * Tema ReeVo CloudPortal (restyling 2026).
 * Caricato per ultimo nel bundle ~/Content/ReeVoCSS: sovrascrive Inspinia (style.css) e ReeVo_CloudPortal.css
 * senza toccare il markup. Tutte le regole sono limitate a body.cloudportal: la pagina di login
 * (body.loginscreen), allineata alle pagine di pre-autenticazione del WAF, resta invariata.
 * La variante Cloudzzle usa un altro bundle e non carica questo file.
 */

body.cloudportal {
    --rv-brand: #00a3da;          /* azzurro del marchio */
    --rv-primary: #0079ad;        /* azzurro per pulsanti e link: contrasto 4.8:1 col bianco */
    --rv-primary-hover: #00668f;
    --rv-primary-soft: #e6f5fb;
    --rv-link: var(--rv-primary);         /* testo dei link: nel tema scuro si schiarisce, i pulsanti no */
    --rv-link-hover: var(--rv-primary-hover);
    --rv-navy: #00a3da;           /* sidebar: azzurro ReeVo */
    --rv-navy-2: #008fc0;         /* voce attiva e sottomenu della sidebar ridotta */
    --rv-navy-text: #f2fbfe;
    --rv-side-hover: rgba(255, 255, 255, .14);
    --rv-side-accent: #ffffff;    /* bordo della voce attiva e punto del sottomenu */
    --rv-side-header: linear-gradient(135deg, #0089b8 0%, #006a93 100%);
    --rv-bg: #f3f6f9;
    --rv-surface: #ffffff;
    --rv-border: #e2e8ee;
    --rv-border-strong: #cfd8e1;
    --rv-text: #1e2d3b;
    --rv-muted: #687887;
    --rv-success: #16a36a;
    --rv-success-soft: #e3f6ee;
    --rv-warning: #c77c02;
    --rv-warning-soft: #fdf2dc;
    --rv-danger: #d93a3f;
    --rv-danger-soft: #fce8e8;
    --rv-info-soft: #e6f5fb;
    /* superfici e testi secondari */
    --rv-surface-alt: #f5f7f9;    /* campi disabilitati, addon */
    --rv-thead: #f7f9fb;
    --rv-stripe: #fbfcfd;
    --rv-modal-body: #fafbfc;
    --rv-hover: #f6f8fa;
    --rv-row-hover: #f1f8fc;
    --rv-row-line: #edf1f5;
    --rv-selected: #d7ecf8;
    --rv-track: #e9eef3;
    --rv-label: #3a4a58;
    --rv-table-text: #46586a;     /* testo delle celle: piu' leggero del testo principale */
    --rv-thead-text: #4f6070;
    --rv-disabled: #a8b4bf;
    --rv-neutral-soft: #edf1f5;
    /* testi su fondo tenue */
    --rv-success-text: #0f7a4f;
    --rv-warning-text: #9a5f00;
    --rv-danger-text: #b42d32;
    --rv-info-soft-2: #e3f3f7;
    --rv-info-text: #0b7591;
    /* avvisi */
    --rv-alert-info-border: #b8e2f2;   --rv-alert-info-text: #0b5876;
    --rv-alert-success-border: #bfe8d5; --rv-alert-success-text: #0f6b46;
    --rv-alert-warning-border: #f4dca8; --rv-alert-warning-text: #7c4f00;
    --rv-alert-danger-border: #f4c6c7;  --rv-alert-danger-text: #9d2a2e;
    --rv-radius: 10px;
    --rv-radius-sm: 7px;
    --rv-shadow: 0 1px 2px rgba(16, 38, 56, .06), 0 2px 8px rgba(16, 38, 56, .05);
    --rv-shadow-lg: 0 10px 30px rgba(16, 38, 56, .16);
    /* card (ibox): nel tema chiaro le separa dal fondo il colore e un'ombra appena percettibile, senza bordo */
    --rv-card-border: transparent;
    --rv-card-shadow: 0 1px 2px rgba(16, 38, 56, .04), 0 6px 20px rgba(16, 38, 56, .06);
    --rv-card-radius: 8px;
    --rv-focus: 0 0 0 3px rgba(0, 163, 218, .22);

    background: var(--rv-navy);
    color: var(--rv-text);
    font-family: "Inter", "Open Sans", "Segoe UI", Arial, sans-serif;
    font-size: 13.5px;
    -webkit-font-smoothing: antialiased;
}

body.cloudportal h1, body.cloudportal h2, body.cloudportal h3,
body.cloudportal h4, body.cloudportal h5, body.cloudportal h6 {
    font-family: inherit;
    color: var(--rv-text);
}

body.cloudportal a { color: var(--rv-link); }
body.cloudportal a:hover, body.cloudportal a:focus { color: var(--rv-link-hover); }

/* ---------- area contenuti ---------- */
body.cloudportal #page-wrapper,
body.cloudportal .gray-bg { background: var(--rv-bg); }

body.cloudportal .wrapper-content { padding: 24px 20px; }

/* ---------- sidebar ---------- */
body.cloudportal .navbar-static-side,
body.cloudportal .navbar-default { background: var(--rv-navy); }

body.cloudportal .nav-header {
    background: var(--rv-side-header) !important;
    padding: 22px 20px 18px;
    text-align: left;
}
body.cloudportal .nav-header h1 {
    color: #fff;
    font-size: 19px;
    font-weight: 700;
    letter-spacing: .2px;
    margin: 0 0 4px;
    line-height: 1.25;
}
body.cloudportal .nav-header h6 { color: rgba(255, 255, 255, .78); margin: 0; font-weight: 500; }
body.cloudportal .profile-element { text-align: left; }
body.cloudportal .logo-element { color: #fff; }

body.cloudportal .nav > li > a {
    color: var(--rv-navy-text);
    font-weight: 500;
    padding: 11px 18px 11px 20px;
    border-left: 3px solid transparent;
    transition: background .15s, color .15s;
}
body.cloudportal .nav > li > a i { color: inherit; width: 18px; text-align: center; margin-right: 4px; opacity: .9; }
/* voci del menu: icona, etichetta e freccia affiancate. Le etichette lunghe (es. "Email Security Gateway")
   vanno a capo allineate al testo e la freccia di espansione resta a destra, senza sovrapporsi */
body.cloudportal .navbar-static-side .nav > li > a { display: flex; align-items: center; }
body.cloudportal .navbar-static-side .nav > li > a > i { flex: 0 0 18px; margin-right: 8px; }
body.cloudportal .navbar-static-side .nav > li > a > .nav-label { flex: 1 1 auto; min-width: 0; line-height: 1.35; }
body.cloudportal .navbar-static-side .nav > li > a > .fa.arrow { flex: 0 0 auto; float: none; margin-left: 8px; }
body.cloudportal .navbar-default .nav > li > a:hover,
body.cloudportal .navbar-default .nav > li > a:focus {
    background: var(--rv-side-hover);
    color: #fff;
    font-weight: 500;
    border-left: 3px solid transparent;
}
body.cloudportal .nav > li.active {
    background: var(--rv-navy-2);
    border: none;
}
body.cloudportal .nav > li.active > a {
    color: #fff;
    font-weight: 600;
    border-left: 3px solid var(--rv-side-accent);
}
body.cloudportal ul.nav-second-level { background: transparent; }
body.cloudportal .nav-second-level li a {
    color: var(--rv-navy-text);
    padding: 7px 10px 7px 48px;
    font-size: 13px;
    border-left: none !important;
}
body.cloudportal .nav-second-level li a:hover { color: #fff; background: transparent !important; }
body.cloudportal .nav-second-level li.active a { color: #fff; font-weight: 600; }
body.cloudportal .nav-second-level li.active a::before {
    content: ""; display: inline-block; width: 6px; height: 6px; border-radius: 50%;
    background: var(--rv-side-accent); margin: 0 8px 2px -14px;
}
body.cloudportal .nav .open > a,
body.cloudportal .nav .open > a:hover,
body.cloudportal .nav .open > a:focus { background: var(--rv-side-hover) !important; }

/* sidebar ridotta */
body.cloudportal.mini-navbar .nav-second-level {
    background: var(--rv-navy-2) !important;
    border-radius: 0 var(--rv-radius-sm) var(--rv-radius-sm) 0 !important;
    box-shadow: var(--rv-shadow-lg);
}
body.cloudportal.mini-navbar .nav-header { padding: 16px 0; text-align: center; }

/* ---------- barra superiore ---------- */
body.cloudportal .navbar-static-top,
body.cloudportal.fixed-nav .navbar-fixed-top,
body.cloudportal .navbar {
    background: var(--rv-surface) !important;
    border-bottom: 1px solid var(--rv-border);
    min-height: 58px;
}
body.cloudportal .border-bottom { border-bottom: none !important; }
body.cloudportal .navbar a,
body.cloudportal .navbar .control-label { color: var(--rv-text) !important; font-weight: 500; }
body.cloudportal .navbar a:hover { font-weight: 500; color: var(--rv-link) !important; }
body.cloudportal .navbar .dropdown-menu a { color: var(--rv-text) !important; }
body.cloudportal .navbar-top-links li a { padding: 18px 12px; min-height: 58px; }
body.cloudportal .navbar-top-links li:last-child { margin-right: 18px; }

body.cloudportal .navbar-minimalize {
    background: transparent !important;
    border: 1px solid var(--rv-border-strong) !important;
    color: var(--rv-text) !important;
    border-radius: var(--rv-radius-sm);
    margin: 12px 5px 5px 20px;
    box-shadow: none !important;
}
body.cloudportal .navbar-minimalize i,
body.cloudportal .navbar-minimalize:hover { color: var(--rv-link) !important; }

/* ---------- intestazione di pagina ---------- */
body.cloudportal .page-heading,
body.cloudportal .breadcrumbNavigation {
    background: var(--rv-surface) !important;
    border-bottom: 1px solid var(--rv-border) !important;
    padding: 6px 24px 20px;       /* qualche pixel sotto il selettore dei cloud */
    margin-bottom: 20px !important; /* stesso spazio che separa le file di riquadri (margin-bottom dell'ibox) */
}
/* le colonne dell'intestazione hanno m-b-n (-15px): con il margine dell'intestazione azzerato il contenuto
   successivo saliva sopra percorso e selettore (es. Administration/Clouds, ibox subito dopo l'intestazione) */
body.cloudportal .breadcrumbNavigation > [class*="col-"] { margin-bottom: 0; }
/* contenuto delle pagine (_Layout: div.rv-page-content intorno a RenderBody): stesso rientro per tutte le view,
   che mettano le righe direttamente o dentro wrapper-content; lo spazio sopra e' il margine dell'intestazione */
body.cloudportal .rv-page-content { padding: 0 20px; }
body.cloudportal .rv-page-content > .wrapper-content { padding: 0; }
/* Account/UserProfile usa page-heading come contenitore delle schede: diventa un riquadro */
body.cloudportal .rv-page-content > .page-heading {
    margin: 0 0 20px !important;
    padding: 18px 8px 20px;
    border: 1px solid var(--rv-card-border) !important;
    border-radius: var(--rv-card-radius);
    box-shadow: var(--rv-card-shadow);
}
body.cloudportal .page-heading h2 { font-size: 22px; font-weight: 600; margin-top: 14px; margin-bottom: 4px; }
body.cloudportal .breadcrumb { background: transparent !important; font-size: 12.5px; margin: 0; }
body.cloudportal .breadcrumb > li, body.cloudportal .breadcrumb > li a { color: var(--rv-muted); }
body.cloudportal .breadcrumb > .active, body.cloudportal .breadcrumb > .active strong { color: var(--rv-text); font-weight: 600; }

/* ---------- riquadri (ibox) ---------- */
body.cloudportal .ibox {
    background: var(--rv-surface);
    border: 1px solid var(--rv-card-border);
    border-radius: var(--rv-card-radius);
    box-shadow: var(--rv-card-shadow);
    margin-bottom: 20px;
    overflow: visible;
}
body.cloudportal .ibox-title {
    background: transparent;
    border: none !important;
    border-bottom: 1px solid var(--rv-border) !important;
    border-radius: var(--rv-card-radius) var(--rv-card-radius) 0 0;
    min-height: 0;
    padding: 14px 18px 12px;
}
/* h5, etichette e ibox-tools sono flottanti: senza clearfix il titolo collassa e il bordo taglia il testo */
body.cloudportal .ibox-title::after { content: ""; display: table; clear: both; }
body.cloudportal .ibox-title h5 { font-size: 14.5px; font-weight: 600; color: var(--rv-text); margin: 2px 0 0; }
body.cloudportal .ibox-content {
    background: transparent;
    border: none !important;
    border-radius: 0 0 var(--rv-card-radius) var(--rv-card-radius);
    padding: 16px 18px 18px;
}
body.cloudportal .ibox-content h1 { font-weight: 600; font-size: 28px; color: var(--rv-text); }
body.cloudportal .ibox-content small, body.cloudportal .text-muted { color: var(--rv-muted); }
body.cloudportal .ibox-tools a { color: var(--rv-muted); }
body.cloudportal .ibox-footer { background: transparent; border-top: 1px solid var(--rv-border); padding: 12px 18px; }

/* ---------- pulsanti ---------- */
body.cloudportal .btn {
    border-radius: var(--rv-radius-sm);
    font-weight: 500;
    font-size: 13px;
    padding: 7px 14px;
    box-shadow: none;
    transition: background .15s, border-color .15s, color .15s;
}
body.cloudportal .btn-sm, body.cloudportal .btn-group-sm > .btn { padding: 5px 11px; font-size: 12.5px; }
body.cloudportal .btn-xs { padding: 2px 8px; font-size: 12px; border-radius: 6px; }
body.cloudportal .btn:focus, body.cloudportal .btn.focus { box-shadow: var(--rv-focus); outline: none; }

/* nel portale btn-success e btn-primary sono le azioni principali */
body.cloudportal .btn-success, body.cloudportal .btn-primary {
    background: var(--rv-primary); border-color: var(--rv-primary); color: #fff;
}
body.cloudportal .btn-success:hover, body.cloudportal .btn-success:focus, body.cloudportal .btn-success:active, body.cloudportal .btn-success.active,
body.cloudportal .btn-primary:hover, body.cloudportal .btn-primary:focus, body.cloudportal .btn-primary:active, body.cloudportal .btn-primary.active,
body.cloudportal .open .dropdown-toggle.btn-success, body.cloudportal .open .dropdown-toggle.btn-primary {
    background: var(--rv-primary-hover); border-color: var(--rv-primary-hover); color: #fff;
}
body.cloudportal .btn-white, body.cloudportal .btn-default {
    background: var(--rv-surface); border: 1px solid var(--rv-border-strong); color: var(--rv-text);
}
body.cloudportal .btn-white:hover, body.cloudportal .btn-default:hover,
body.cloudportal .btn-white:focus, body.cloudportal .btn-default:focus,
body.cloudportal .btn-white.active, body.cloudportal .btn-white:active {
    background: var(--rv-hover); border-color: var(--rv-border-strong); color: var(--rv-text);
}
body.cloudportal .btn-danger { background: var(--rv-danger); border-color: var(--rv-danger); color: #fff; }
body.cloudportal .btn-danger:hover, body.cloudportal .btn-danger:focus { background: #bd2f34; border-color: #bd2f34; color: #fff; }
body.cloudportal .btn-warning { background: #e39a12; border-color: #e39a12; color: #fff; }
body.cloudportal .btn-warning:hover, body.cloudportal .btn-warning:focus { background: #c98608; border-color: #c98608; color: #fff; }
body.cloudportal .btn-info { background: #0a8fc7; border-color: #0a8fc7; color: #fff; }
body.cloudportal .btn.disabled, body.cloudportal .btn[disabled] { opacity: .5; }

/* ---------- form ---------- */
body.cloudportal .form-group label,
body.cloudportal .control-label { color: var(--rv-label) !important; font-weight: 600; font-size: 12.5px; }
body.cloudportal .form-control,
body.cloudportal .input-group-addon {
    border: 1px solid var(--rv-border-strong);
    border-radius: var(--rv-radius-sm);
    box-shadow: none;
    font-size: 13.5px;
    color: var(--rv-text);
}
body.cloudportal .form-control { height: 36px; padding: 7px 11px; transition: border-color .15s, box-shadow .15s; }
body.cloudportal textarea.form-control { height: auto; }
body.cloudportal .form-control:focus { border-color: var(--rv-brand); box-shadow: var(--rv-focus); }
body.cloudportal .form-control[disabled], body.cloudportal .form-control[readonly] { background: var(--rv-surface-alt); color: var(--rv-muted); }
body.cloudportal .input-group-addon { background: var(--rv-surface-alt); color: var(--rv-muted); }
body.cloudportal .input-group .form-control:not(:first-child),
body.cloudportal .input-group-addon:not(:first-child) { border-top-left-radius: 0; border-bottom-left-radius: 0; }
body.cloudportal .input-group .form-control:not(:last-child),
body.cloudportal .input-group-addon:not(:last-child) { border-top-right-radius: 0; border-bottom-right-radius: 0; }
body.cloudportal .has-error .form-control { border-color: var(--rv-danger); }
/* pulsanti nei gruppi (es. spinbutton TouchSpin "-"/"+"): stessa altezza dei campi da 36px, bordi continui */
body.cloudportal .input-group > .input-group-btn > .btn {
    height: 36px;
    padding-top: 0;
    padding-bottom: 0;
    line-height: 34px;
    border-color: var(--rv-border-strong);
}
body.cloudportal .input-group > .input-group-btn:first-child > .btn { border-top-right-radius: 0; border-bottom-right-radius: 0; }
body.cloudportal .input-group > .input-group-btn:last-child > .btn { border-top-left-radius: 0; border-bottom-left-radius: 0; }
body.cloudportal .input-group > .input-group-btn > .btn-success,
body.cloudportal .input-group > .input-group-btn > .btn-primary { border-color: var(--rv-primary); }
body.cloudportal .input-group > .input-group-btn > .btn-danger { border-color: var(--rv-danger); }

/* select2 allineato ai campi */
body.cloudportal .select2-container--default .select2-selection--single,
body.cloudportal .select2-container--default .select2-selection--multiple {
    border: 1px solid var(--rv-border-strong);
    border-radius: var(--rv-radius-sm);
    min-height: 36px;
}
body.cloudportal .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 34px; padding-left: 11px; color: var(--rv-text); }
body.cloudportal .select2-container--default .select2-selection--single .select2-selection__arrow { height: 34px; right: 6px; }
body.cloudportal .select2-container--default.select2-container--focus .select2-selection--multiple,
body.cloudportal .select2-container--default.select2-container--open .select2-selection--single { border-color: var(--rv-brand); box-shadow: var(--rv-focus); }
body.cloudportal .select2-dropdown { border-color: var(--rv-border-strong); border-radius: var(--rv-radius-sm); box-shadow: var(--rv-shadow-lg); }
body.cloudportal .select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--rv-navy); color: #fff; }   /* come il menu laterale */

/* ---------- tabelle ---------- */
body.cloudportal .table { color: var(--rv-table-text); margin-bottom: 8px; }
body.cloudportal .table > thead > tr > th {
    background: var(--rv-thead);
    color: var(--rv-thead-text);
    font-weight: 600;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .3px;
    border-bottom: 1px solid var(--rv-border) !important;
    border-top: none !important;
    padding: 10px 10px;
    white-space: nowrap;
}
body.cloudportal .table > tbody > tr > td {
    border-top: 1px solid var(--rv-row-line);
    padding: 9px 10px;
    vertical-align: middle;
}
body.cloudportal .table-striped > tbody > tr:nth-of-type(odd) { background: var(--rv-stripe); }
body.cloudportal .table-hover > tbody > tr:hover,
body.cloudportal table.dataTable.table-hover > tbody > tr:hover { background: var(--rv-row-hover); }
body.cloudportal table.dataTable { border-collapse: collapse !important; }

/* DataTables: ricerca, informazioni, paginazione, pulsanti di esportazione */
body.cloudportal .dataTables_wrapper .dataTables_filter input,
body.cloudportal .dataTables_wrapper .dataTables_length select {
    border: 1px solid var(--rv-border-strong);
    border-radius: var(--rv-radius-sm);
    height: 32px;
    padding: 4px 10px;
    margin-left: 6px;
    box-shadow: none;
}
body.cloudportal .dataTables_wrapper .dataTables_filter input:focus { border-color: var(--rv-brand); box-shadow: var(--rv-focus); outline: none; }
body.cloudportal .dataTables_wrapper .dataTables_info { color: var(--rv-muted); font-size: 12.5px; padding-top: 12px; }
body.cloudportal .pagination > li > a,
body.cloudportal .pagination > li > span {
    border: 1px solid var(--rv-border);
    color: var(--rv-text);
    margin-left: 4px;
    border-radius: var(--rv-radius-sm) !important;
    padding: 5px 11px;
    font-size: 12.5px;
}
body.cloudportal .pagination > .active > a,
body.cloudportal .pagination > .active > span,
body.cloudportal .pagination > .active > a:hover { background: var(--rv-primary); border-color: var(--rv-primary); color: #fff; }
body.cloudportal .pagination > li > a:hover { background: var(--rv-primary-soft); color: var(--rv-link); }
body.cloudportal .pagination > .disabled > a, body.cloudportal .pagination > .disabled > span { color: var(--rv-disabled); background: var(--rv-surface); }
body.cloudportal div.dt-buttons { margin-bottom: 10px; }
body.cloudportal div.dt-buttons .btn,
body.cloudportal div.dt-buttons .dt-button {
    background: var(--rv-surface);
    border: 1px solid var(--rv-border-strong);
    color: var(--rv-text);
    font-size: 12px;
    padding: 4px 10px;
    border-radius: var(--rv-radius-sm) !important;
    margin-right: 4px;
}
body.cloudportal div.dt-buttons .btn:hover { background: var(--rv-hover); }
body.cloudportal table.dataTable tbody tr.selected { background-color: var(--rv-selected) !important; }

/* ---------- etichette e badge (tinta tenue, stessi significati di prima) ---------- */
body.cloudportal .label, body.cloudportal .badge {
    border-radius: 999px;
    font-weight: 600;
    font-size: 11px;
    padding: 3px 9px;
    letter-spacing: .2px;
    text-shadow: none;
}
body.cloudportal .label-default, body.cloudportal .badge { background: var(--rv-neutral-soft); color: var(--rv-thead-text); }
body.cloudportal .label-primary, body.cloudportal .badge-primary { background: var(--rv-success-soft); color: var(--rv-success-text); }
body.cloudportal .label-success, body.cloudportal .badge-success { background: var(--rv-primary-soft); color: var(--rv-link); }
body.cloudportal .label-info, body.cloudportal .badge-info { background: var(--rv-info-soft-2); color: var(--rv-info-text); }
body.cloudportal .label-warning, body.cloudportal .badge-warning { background: var(--rv-warning-soft); color: var(--rv-warning-text); }
body.cloudportal .label-danger, body.cloudportal .badge-danger { background: var(--rv-danger-soft); color: var(--rv-danger-text); }

/* ---------- avvisi ---------- */
body.cloudportal .alert { border-radius: var(--rv-radius-sm); border: 1px solid transparent; border-left-width: 4px; padding: 11px 14px; }
body.cloudportal .alert-info { background: var(--rv-info-soft); border-color: var(--rv-alert-info-border); border-left-color: var(--rv-brand); color: var(--rv-alert-info-text); }
body.cloudportal .alert-success { background: var(--rv-success-soft); border-color: var(--rv-alert-success-border); border-left-color: var(--rv-success); color: var(--rv-alert-success-text); }
body.cloudportal .alert-warning { background: var(--rv-warning-soft); border-color: var(--rv-alert-warning-border); border-left-color: #e39a12; color: var(--rv-alert-warning-text); }
body.cloudportal .alert-danger { background: var(--rv-danger-soft); border-color: var(--rv-alert-danger-border); border-left-color: var(--rv-danger); color: var(--rv-alert-danger-text); }

/* ---------- schede ---------- */
body.cloudportal .nav-tabs { border-bottom: 1px solid var(--rv-border); }
body.cloudportal .nav-tabs > li > a {
    border: none !important;
    border-bottom: 2px solid transparent !important;
    color: var(--rv-muted);
    font-weight: 500;
    padding: 9px 14px;
    margin-right: 4px;
    background: transparent !important;
}
body.cloudportal .nav-tabs > li > a:hover { color: var(--rv-text); }
body.cloudportal .nav.nav-tabs > li.active > a,
body.cloudportal .nav.nav-tabs > li.active > a:hover,
body.cloudportal .nav.nav-tabs > li.active > a:focus { color: var(--rv-link); border-bottom-color: var(--rv-primary) !important; font-weight: 600; }
body.cloudportal .nav.nav-tabs > li.active { background: transparent; }
body.cloudportal .tabs-container .panel-body { border-color: var(--rv-border); border-radius: 0 0 var(--rv-card-radius) var(--rv-card-radius); }

/* ---------- menu a tendina ---------- */
body.cloudportal .dropdown-menu {
    border: 1px solid var(--rv-border);
    border-radius: var(--rv-radius-sm);
    box-shadow: var(--rv-shadow-lg);
    padding: 6px;
}
body.cloudportal .dropdown-menu > li > a { border-radius: 6px; padding: 7px 10px; color: var(--rv-text); line-height: 1.4; }
body.cloudportal .dropdown-menu > li > a:hover,
body.cloudportal .dropdown-menu > li > a:focus { background: var(--rv-primary-soft); color: var(--rv-link); font-weight: 500; }
body.cloudportal .nav .dropdown-menu { background: var(--rv-surface); }
body.cloudportal .dropdown-menu .divider { background: var(--rv-border); margin: 5px 0; }

/* ---------- finestre modali ---------- */
body.cloudportal .modal-content { border: none; border-radius: var(--rv-card-radius); box-shadow: var(--rv-shadow-lg); }
body.cloudportal .modal-header { border-bottom: 1px solid var(--rv-border); padding: 16px 20px; }
body.cloudportal .modal-title { font-weight: 600; font-size: 17px; }
body.cloudportal .inmodal .modal-header { background: transparent; text-align: left; padding: 18px 20px; }
body.cloudportal .inmodal .modal-title { font-size: 18px; }
body.cloudportal .inmodal .modal-body { background: var(--rv-modal-body); }
body.cloudportal .modal-body { padding: 18px 20px; }
/* Nelle modali molte view mettono tabelle, form-group e messaggi in una .row senza colonne: i margini
   negativi della riga (-15px) non sono compensati e il contenuto esce dal padding del body
   (es. Iaas/Virtualmachines, dettagli di rete). Le righe con colonne col-* restano invariate. */
body.cloudportal .modal-body .row:not(:has(> [class*="col-"])) { margin-left: 0; margin-right: 0; }
body.cloudportal .modal-footer { border-top: 1px solid var(--rv-border); padding: 12px 20px; }
body.cloudportal .modal-backdrop.in { opacity: .45; background: #0d2433; }

/* ---------- varie ---------- */
body.cloudportal .popover { border-radius: var(--rv-radius-sm); border-color: var(--rv-border); box-shadow: var(--rv-shadow-lg); }
body.cloudportal .progress { border-radius: 999px; background: var(--rv-track); box-shadow: none; }
body.cloudportal .progress-bar { background-color: var(--rv-primary); }
body.cloudportal .footer { background: var(--rv-surface) !important; border-top: 1px solid var(--rv-border); color: var(--rv-muted); }
body.cloudportal .footer a { color: var(--rv-link) !important; }
body.cloudportal hr { border-top-color: var(--rv-border); }
body.cloudportal .text-danger { color: var(--rv-danger); }

/* =========================================================================================
 * Fase 2: componenti ridisegnati
 * ========================================================================================= */

/* ---------- riquadri delle risorse (dashboard dei servizi) ---------- */
body.cloudportal .ibox-title.border-bottom { border-bottom: 1px solid var(--rv-border) !important; }
body.cloudportal .rv-res-title { line-height: 1.35; margin: 4px 0 0; font-size: 13.5px; }
body.cloudportal .rv-res-title strong { font-weight: 600; }
body.cloudportal .rv-res-badge {
    line-height: 1.2;
    font-size: 11.5px;
    padding: 4px 10px;
    margin: 2px 0 0;
    white-space: nowrap;
}
body.cloudportal .rv-res-badge.navy-bg { background: var(--rv-success-soft) !important; color: var(--rv-success-text) !important; }
body.cloudportal .rv-res-badge.yellow-bg { background: var(--rv-warning-soft) !important; color: var(--rv-warning-text) !important; }
body.cloudportal .rv-res-badge.red-bg { background: var(--rv-danger-soft) !important; color: var(--rv-danger-text) !important; }
/* risorsa senza totale (DashBoardLabelClass non restituisce classi): neutra */
body.cloudportal .rv-res-badge:not(.navy-bg):not(.yellow-bg):not(.red-bg) { background: var(--rv-neutral-soft); color: var(--rv-thead-text); }

/* ---------- banner e avvisi Inspinia (.widget con navy/yellow/red-bg, es. _DisableOnParent, _ErrorMessage) ----------
   Al posto dei fondi pieni (testo bianco su arancio, contrasto circa 2:1, uguali in tema scuro): fondo tenue,
   testo e bordo sinistro del colore di stato, come i badge delle risorse. Il tema scuro usa le stesse variabili. */
body.cloudportal .widget.navy-bg, body.cloudportal .widget.yellow-bg, body.cloudportal .widget.red-bg {
    border-radius: var(--rv-card-radius, 8px); border: 1px solid var(--rv-border); border-left-width: 4px; box-shadow: none;
}
body.cloudportal .widget.navy-bg { background: var(--rv-success-soft) !important; border-left-color: var(--rv-success); color: var(--rv-success-text) !important; }
body.cloudportal .widget.yellow-bg { background: var(--rv-warning-soft) !important; border-left-color: var(--rv-warning); color: var(--rv-warning-text) !important; }
body.cloudportal .widget.red-bg { background: var(--rv-danger-soft) !important; border-left-color: var(--rv-danger); color: var(--rv-danger-text) !important; }
body.cloudportal .widget.navy-bg :is(h1, h2, h3, h4, h5, p, span, strong, small, i, label),
body.cloudportal .widget.yellow-bg :is(h1, h2, h3, h4, h5, p, span, strong, small, i, label),
body.cloudportal .widget.red-bg :is(h1, h2, h3, h4, h5, p, span, strong, small, i, label) { color: inherit; }

/* ---------- finestre: i pulsanti che chiudono (Annulla, Chiudi) sono secondari ----------
   Nel portale btn-success e btn-primary hanno lo stesso aspetto, quindi Annulla e Conferma erano identici. Solo i
   pulsanti di chiusura senza onclick: quelli con data-dismiss e un'azione (Conferma, Salva...) restano principali. */
body.cloudportal .modal-footer .btn[data-dismiss="modal"]:not([onclick]) {
    background: var(--rv-surface); border: 1px solid var(--rv-border-strong); color: var(--rv-text);
}
body.cloudportal .modal-footer .btn[data-dismiss="modal"]:not([onclick]):hover,
body.cloudportal .modal-footer .btn[data-dismiss="modal"]:not([onclick]):focus {
    background: var(--rv-hover); border-color: var(--rv-border-strong); color: var(--rv-text);
}
body.cloudportal .rv-res-icon {
    font-size: 32px;
    color: var(--rv-link);
    background: var(--rv-primary-soft);
    width: 56px;
    height: 56px;
    line-height: 56px;
    border-radius: 14px;
    display: inline-block;
    text-align: center;
    margin: 14px 0 6px;
}
body.cloudportal .rv-res-icon::before { line-height: 56px; }
body.cloudportal .ibox-content.no-padding .text-right { color: var(--rv-muted); font-size: 12.5px; padding-top: 6px; }
body.cloudportal .ibox-content.no-padding .text-right strong { color: var(--rv-text); font-size: 13.5px; font-weight: 600; margin-left: 2px; }
body.cloudportal .ibox-content.no-padding .text-right .row { margin: 0; line-height: 1.75; }
body.cloudportal .rv-res-spacer { line-height: 6px; }

/* ---------- tabelle vuote e caricamento ---------- */
body.cloudportal table.dataTable td.dataTables_empty {
    color: var(--rv-muted);
    padding: 26px 10px !important;
    background: var(--rv-stripe);
    font-style: italic;
}
body.cloudportal .dataTables_processing {
    border: 1px solid var(--rv-border) !important;
    border-radius: var(--rv-radius-sm);
    box-shadow: var(--rv-shadow-lg);
    background: var(--rv-surface) !important;
    color: var(--rv-text);
}
/* ---------- schermi stretti (smartphone e tablet in verticale) ---------- */
@media (max-width: 767px) {
    body.cloudportal #page-wrapper { overflow-x: hidden; }
    body.cloudportal .wrapper-content { padding: 16px 10px; }
    body.cloudportal .rv-page-content { padding: 0; }

    /* barra superiore: voci compatte, il benvenuto si accorcia */
    body.cloudportal .navbar-top-links li a { padding: 18px 8px; font-size: 12.5px; }
    body.cloudportal .navbar-top-links li:last-child { margin-right: 6px; }
    body.cloudportal .navbar-top-links > li:first-child .control-label {
        display: inline-block; max-width: 110px; overflow: hidden; text-overflow: ellipsis;
        white-space: nowrap; vertical-align: bottom;
    }
    body.cloudportal .navbar-minimalize { margin-left: 10px; }

    /* intestazione: titolo, percorso, ultimo accesso e selettore uno sotto l'altro */
    body.cloudportal .page-heading, body.cloudportal .breadcrumbNavigation { padding: 4px 14px 16px; }
    body.cloudportal .page-heading h2 { font-size: 19px; }
    body.cloudportal .breadcrumbNavigation .navbar-right { float: none !important; margin: 0; }
    body.cloudportal .breadcrumbNavigation .small.pull-right { float: none !important; display: block; margin-top: 8px; clear: both; }
    body.cloudportal .breadcrumbNavigation .breadcrumb { margin-bottom: 0; }

    /* tabelle larghe: scorrimento orizzontale dentro il riquadro, non della pagina */
    body.cloudportal .dataTables_wrapper { overflow-x: auto; -webkit-overflow-scrolling: touch; }
    body.cloudportal .dataTables_wrapper .dataTables_filter,
    body.cloudportal .dataTables_wrapper .dataTables_filter input { width: 100%; margin-left: 0; text-align: left; }
    body.cloudportal .dataTables_wrapper .dataTables_filter label { display: block; }
    body.cloudportal .dataTables_wrapper .dataTables_filter input { display: block; margin-top: 4px; }
    body.cloudportal .ibox-title, body.cloudportal .ibox-content { padding-left: 14px; padding-right: 14px; }
    body.cloudportal .modal-dialog { margin: 10px; }
}
/* =========================================================================================
 * Tema scuro
 * Attivo con <html data-theme="dark">, impostato da Scripts/theme-switch.js (scelta salvata nel
 * browser). Ridefinisce le variabili del tema e copre i componenti di Inspinia, Bootstrap e dei
 * plugin che il tema chiaro lascia ai loro colori. Login e Cloudzzle non caricano questo file.
 * ========================================================================================= */
html[data-theme="dark"] { color-scheme: dark; background: #0a141c; }

html[data-theme="dark"] body.cloudportal {
    --rv-primary: #0a86bd;
    --rv-primary-hover: #0b97d4;
    --rv-primary-soft: rgba(0, 163, 218, .14);
    --rv-link: #4cc3ef;
    --rv-link-hover: #84d6f5;
    --rv-navy: #0a141c;
    --rv-navy-2: #13222f;
    --rv-navy-text: #9fb2c2;
    --rv-side-hover: rgba(255, 255, 255, .06);
    --rv-side-accent: #00a3da;
    --rv-side-header: linear-gradient(135deg, #00a3da 0%, #0b6d99 100%);
    --rv-bg: #0f1923;
    --rv-surface: #16212c;
    --rv-border: #263645;
    --rv-border-strong: #364a5d;
    --rv-text: #e1e8ef;
    --rv-muted: #8fa1b2;
    --rv-success-soft: rgba(22, 163, 106, .16);
    --rv-warning-soft: rgba(227, 154, 18, .16);
    --rv-danger-soft: rgba(217, 58, 63, .18);
    --rv-info-soft: rgba(0, 163, 218, .12);
    --rv-surface-alt: #1c2a37;
    --rv-thead: #1a2733;
    --rv-stripe: #18242f;
    --rv-modal-body: #141f29;
    --rv-hover: #1f2f3d;
    --rv-row-hover: #1c3142;
    --rv-row-line: #22313f;
    --rv-selected: #1b4562;
    --rv-track: #26384a;
    --rv-label: #c2cfdb;
    --rv-table-text: var(--rv-text);
    --rv-thead-text: #a6b6c5;
    --rv-disabled: #5b6c7c;
    --rv-neutral-soft: #253544;
    --rv-success-text: #5fd3a0;
    --rv-warning-text: #f0bd5e;
    --rv-danger-text: #f38b8f;
    --rv-info-soft-2: rgba(11, 117, 145, .24);
    --rv-info-text: #6fd0e8;
    --rv-alert-info-border: rgba(0, 163, 218, .35);    --rv-alert-info-text: #9edcf4;
    --rv-alert-success-border: rgba(22, 163, 106, .35); --rv-alert-success-text: #8fe0bb;
    --rv-alert-warning-border: rgba(227, 154, 18, .35); --rv-alert-warning-text: #f3cf8a;
    --rv-alert-danger-border: rgba(217, 58, 63, .4);    --rv-alert-danger-text: #f6aaad;
    --rv-shadow: 0 1px 2px rgba(0, 0, 0, .35), 0 2px 8px rgba(0, 0, 0, .2);
    --rv-shadow-lg: 0 10px 30px rgba(0, 0, 0, .5);
    /* card nel tema scuro: le ombre non si vedono, separa un filo sottile */
    --rv-card-border: #233240;
    --rv-card-shadow: none;
    --rv-focus: 0 0 0 3px rgba(0, 163, 218, .35);
}

/* superfici che Bootstrap e Inspinia dipingono di bianco */
html[data-theme="dark"] body.cloudportal .form-control,
html[data-theme="dark"] body.cloudportal .dataTables_wrapper .dataTables_filter input,
html[data-theme="dark"] body.cloudportal .dataTables_wrapper .dataTables_length select,
html[data-theme="dark"] body.cloudportal .pagination > li > a,
html[data-theme="dark"] body.cloudportal .pagination > li > span,
html[data-theme="dark"] body.cloudportal .dropdown-menu,
html[data-theme="dark"] body.cloudportal .modal-content,
html[data-theme="dark"] body.cloudportal .popover,
html[data-theme="dark"] body.cloudportal .panel,
html[data-theme="dark"] body.cloudportal .panel-body,
html[data-theme="dark"] body.cloudportal .tabs-container .panel-body,
html[data-theme="dark"] body.cloudportal .tab-content,
html[data-theme="dark"] body.cloudportal .list-group-item,
html[data-theme="dark"] body.cloudportal .white-bg,
html[data-theme="dark"] body.cloudportal .bg-white,
html[data-theme="dark"] body.cloudportal .ibox-content {
    background-color: var(--rv-surface);
    color: var(--rv-text);
    border-color: var(--rv-border);
}
html[data-theme="dark"] body.cloudportal .ibox .ibox-content { background-color: transparent; }
html[data-theme="dark"] body.cloudportal .pagination > .active > a,
html[data-theme="dark"] body.cloudportal .pagination > .active > span { background-color: var(--rv-primary); border-color: var(--rv-primary); color: #fff; }
html[data-theme="dark"] body.cloudportal .pagination > li > a:hover { background-color: var(--rv-primary-soft); color: var(--rv-link); }
html[data-theme="dark"] body.cloudportal .pagination > .disabled > a, html[data-theme="dark"] body.cloudportal .pagination > .disabled > span { color: var(--rv-disabled); }
html[data-theme="dark"] body.cloudportal .form-control[disabled],
html[data-theme="dark"] body.cloudportal .form-control[readonly],
html[data-theme="dark"] body.cloudportal fieldset[disabled] .form-control { background-color: var(--rv-surface-alt); color: var(--rv-muted); }
html[data-theme="dark"] body.cloudportal .form-control::placeholder { color: var(--rv-disabled); }
html[data-theme="dark"] body.cloudportal input:-webkit-autofill {
    -webkit-box-shadow: 0 0 0 40px var(--rv-surface-alt) inset;
    -webkit-text-fill-color: var(--rv-text);
}
html[data-theme="dark"] body.cloudportal .help-block { color: var(--rv-muted); }
html[data-theme="dark"] body.cloudportal .close { color: var(--rv-text); text-shadow: none; opacity: .6; }
html[data-theme="dark"] body.cloudportal .close:hover { opacity: 1; }
html[data-theme="dark"] body.cloudportal .modal-backdrop.in { background: #000; opacity: .6; }
html[data-theme="dark"] body.cloudportal .dropdown-header { color: var(--rv-muted); }
html[data-theme="dark"] body.cloudportal .panel-heading,
html[data-theme="dark"] body.cloudportal .panel-default > .panel-heading,
html[data-theme="dark"] body.cloudportal .panel-footer { background-color: var(--rv-thead); color: var(--rv-text); border-color: var(--rv-border); }
html[data-theme="dark"] body.cloudportal .well,
html[data-theme="dark"] body.cloudportal pre { background-color: var(--rv-surface-alt); border-color: var(--rv-border); color: var(--rv-text); }
html[data-theme="dark"] body.cloudportal code { background-color: var(--rv-surface-alt); color: #f39ac4; }
html[data-theme="dark"] body.cloudportal .table-bordered,
html[data-theme="dark"] body.cloudportal .table-bordered > thead > tr > th,
html[data-theme="dark"] body.cloudportal .table-bordered > tbody > tr > td { border-color: var(--rv-border); }
html[data-theme="dark"] body.cloudportal .table > tbody > tr.active > td { background-color: var(--rv-hover); }
html[data-theme="dark"] body.cloudportal .table > tbody > tr.success > td { background-color: var(--rv-success-soft); }
html[data-theme="dark"] body.cloudportal .table > tbody > tr.warning > td { background-color: var(--rv-warning-soft); }
html[data-theme="dark"] body.cloudportal .table > tbody > tr.danger > td { background-color: var(--rv-danger-soft); }
html[data-theme="dark"] body.cloudportal .table > tbody > tr.info > td { background-color: var(--rv-info-soft); }
html[data-theme="dark"] body.cloudportal .nav-pills > li > a:hover,
html[data-theme="dark"] body.cloudportal .nav > li > a:focus { background-color: var(--rv-hover); }
html[data-theme="dark"] body.cloudportal .navbar-default .nav > li > a:focus { background: rgba(255, 255, 255, .06); }

/* popover: anche le frecce */
html[data-theme="dark"] body.cloudportal .popover-title { background-color: var(--rv-thead); border-color: var(--rv-border); color: var(--rv-text); }
html[data-theme="dark"] body.cloudportal .popover.top > .arrow::after { border-top-color: var(--rv-surface); }
html[data-theme="dark"] body.cloudportal .popover.bottom > .arrow::after { border-bottom-color: var(--rv-surface); }
html[data-theme="dark"] body.cloudportal .popover.left > .arrow::after { border-left-color: var(--rv-surface); }
html[data-theme="dark"] body.cloudportal .popover.right > .arrow::after { border-right-color: var(--rv-surface); }

/* select2 (il menu è aggiunto in fondo al body) */
html[data-theme="dark"] body.cloudportal .select2-container--default .select2-selection--single,
html[data-theme="dark"] body.cloudportal .select2-container--default .select2-selection--multiple,
html[data-theme="dark"] body.cloudportal .select2-dropdown { background-color: var(--rv-surface); color: var(--rv-text); }
html[data-theme="dark"] body.cloudportal .select2-results__option { color: var(--rv-text); }
html[data-theme="dark"] body.cloudportal .select2-container--default .select2-results__option[aria-selected=true] { background-color: var(--rv-hover); }
html[data-theme="dark"] body.cloudportal .select2-container--default .select2-results__option--highlighted[aria-selected] { background-color: var(--rv-primary); color: #fff; }
html[data-theme="dark"] body.cloudportal .select2-container--default .select2-search--dropdown .select2-search__field {
    background-color: var(--rv-surface-alt); border-color: var(--rv-border-strong); color: var(--rv-text);
}
html[data-theme="dark"] body.cloudportal .select2-container--default .select2-search--inline .select2-search__field { color: var(--rv-text); }
html[data-theme="dark"] body.cloudportal .select2-container--default .select2-selection--multiple .select2-selection__choice {
    background-color: var(--rv-neutral-soft); border-color: var(--rv-border-strong); color: var(--rv-text);
}
html[data-theme="dark"] body.cloudportal .select2-container--default .select2-selection--single .select2-selection__placeholder { color: var(--rv-disabled); }
html[data-theme="dark"] body.cloudportal .select2-container--default .select2-selection--single .select2-selection__arrow b { border-top-color: var(--rv-muted); }
html[data-theme="dark"] body.cloudportal .select2-container--default.select2-container--disabled .select2-selection--single { background-color: var(--rv-surface-alt); }

/* chosen */
html[data-theme="dark"] body.cloudportal .chosen-container-single .chosen-single,
html[data-theme="dark"] body.cloudportal .chosen-container-multi .chosen-choices,
html[data-theme="dark"] body.cloudportal .chosen-container .chosen-drop {
    background: var(--rv-surface); border-color: var(--rv-border-strong); color: var(--rv-text); box-shadow: none;
}
html[data-theme="dark"] body.cloudportal .chosen-container .chosen-results li { color: var(--rv-text); }
html[data-theme="dark"] body.cloudportal .chosen-container .chosen-results li.highlighted { background: var(--rv-primary); color: #fff; }
html[data-theme="dark"] body.cloudportal .chosen-container-multi .chosen-choices li.search-choice { background: var(--rv-neutral-soft); border-color: var(--rv-border-strong); color: var(--rv-text); box-shadow: none; }

/* DataTables: pulsanti di esportazione e loro menu */
html[data-theme="dark"] body.cloudportal div.dt-button-collection { background-color: var(--rv-surface); border-color: var(--rv-border); }
html[data-theme="dark"] body.cloudportal div.dt-button-info { background-color: var(--rv-surface); color: var(--rv-text); border-color: var(--rv-border); }

/* jQuery UI (autocomplete, dialog, datepicker) */
html[data-theme="dark"] body.cloudportal .ui-widget-content { background: var(--rv-surface); color: var(--rv-text); border-color: var(--rv-border); }
html[data-theme="dark"] body.cloudportal .ui-widget-header { background: var(--rv-thead); color: var(--rv-text); border-color: var(--rv-border); }
html[data-theme="dark"] body.cloudportal .ui-state-default,
html[data-theme="dark"] body.cloudportal .ui-widget-content .ui-state-default { background: var(--rv-surface-alt); color: var(--rv-text); border-color: var(--rv-border); }
html[data-theme="dark"] body.cloudportal .ui-state-hover,
html[data-theme="dark"] body.cloudportal .ui-state-focus,
html[data-theme="dark"] body.cloudportal .ui-menu .ui-menu-item-wrapper.ui-state-active,
html[data-theme="dark"] body.cloudportal .ui-state-active { background: var(--rv-primary); color: #fff; border-color: var(--rv-primary); }

/* bootstrap-datepicker */
html[data-theme="dark"] body.cloudportal .datepicker.dropdown-menu { background-color: var(--rv-surface); color: var(--rv-text); }
html[data-theme="dark"] body.cloudportal .datepicker-dropdown.datepicker-orient-bottom::after { border-bottom-color: var(--rv-surface); }
html[data-theme="dark"] body.cloudportal .datepicker-dropdown.datepicker-orient-top::after { border-top-color: var(--rv-surface); }
html[data-theme="dark"] body.cloudportal .datepicker table tr td.day:hover,
html[data-theme="dark"] body.cloudportal .datepicker table tr td.focused,
html[data-theme="dark"] body.cloudportal .datepicker table tr td span:hover,
html[data-theme="dark"] body.cloudportal .datepicker .datepicker-switch:hover,
html[data-theme="dark"] body.cloudportal .datepicker .prev:hover,
html[data-theme="dark"] body.cloudportal .datepicker .next:hover,
html[data-theme="dark"] body.cloudportal .datepicker tfoot tr th:hover { background: var(--rv-hover); }
html[data-theme="dark"] body.cloudportal .datepicker table tr td.old,
html[data-theme="dark"] body.cloudportal .datepicker table tr td.new,
html[data-theme="dark"] body.cloudportal .datepicker table tr td.disabled { color: var(--rv-disabled); }
html[data-theme="dark"] body.cloudportal .datepicker table tr td.today { background: var(--rv-warning-soft); color: var(--rv-warning-text); }
html[data-theme="dark"] body.cloudportal .datepicker table tr td.active,
html[data-theme="dark"] body.cloudportal .datepicker table tr td.active:hover,
html[data-theme="dark"] body.cloudportal .datepicker table tr td span.active { background: var(--rv-primary); color: #fff; text-shadow: none; }

/* jquery-steps (procedure guidate) */
html[data-theme="dark"] body.cloudportal .wizard > .content { background: var(--rv-surface-alt); }
html[data-theme="dark"] body.cloudportal .wizard > .steps .disabled a,
html[data-theme="dark"] body.cloudportal .wizard > .actions .disabled a { background: var(--rv-neutral-soft); color: var(--rv-disabled); }
html[data-theme="dark"] body.cloudportal .wizard > .steps .done a { background: var(--rv-primary-soft); color: var(--rv-link); }

/* switchery: il fondo dello stato spento è uno stile inline */
html[data-theme="dark"] body.cloudportal .switchery[style*="255, 255, 255"] {
    background-color: var(--rv-surface-alt) !important;
    border-color: var(--rv-border-strong) !important;
    box-shadow: var(--rv-border-strong) 0 0 0 0 inset !important;
}

/* barra laterale dell'help */
html[data-theme="dark"] body.cloudportal #right-sidebar { background-color: var(--rv-surface); border-left-color: var(--rv-border); color: var(--rv-text); }
html[data-theme="dark"] body.cloudportal #right-sidebar .sidebar-title { background: var(--rv-thead); border-bottom-color: var(--rv-border); }
html[data-theme="dark"] body.cloudportal #right-sidebar .sidebar-message:nth-child(2n+2) { background: var(--rv-surface-alt); }

/* messaggio di blockUI sui singoli riquadri (colori inline del plugin); quello a tutta pagina e' .rv-loading-box */
html[data-theme="dark"] body.cloudportal .blockUI.blockMsg.blockElement {
    background-color: var(--rv-surface) !important;
    color: var(--rv-text) !important;
    border-color: var(--rv-border-strong) !important;
    border-radius: var(--rv-radius-sm);
}

/* grafici Morris (Iaas/Performance, Iaas/Virtualmachines): griglia, etichette e riquadro al passaggio */
html[data-theme="dark"] body.cloudportal svg text[fill="#888888"] { fill: var(--rv-muted); }
html[data-theme="dark"] body.cloudportal svg path[stroke="#aaaaaa"] { stroke: var(--rv-border-strong); }
html[data-theme="dark"] body.cloudportal .morris-hover.morris-default-style {
    background: rgba(22, 33, 44, .92); border-color: var(--rv-border-strong); color: var(--rv-text);
}

/* stili inline delle view con fondo bianco o testo grigio scuro fisso */
html[data-theme="dark"] body.cloudportal [style*="background-color:white" i],
html[data-theme="dark"] body.cloudportal [style*="background-color: white" i],
html[data-theme="dark"] body.cloudportal [style*="background-color:#fff" i],
html[data-theme="dark"] body.cloudportal [style*="background-color: #fff" i],
html[data-theme="dark"] body.cloudportal [style*="background:#fff" i],
html[data-theme="dark"] body.cloudportal [style*="background: #fff" i],
html[data-theme="dark"] body.cloudportal [style*="background:white" i],
html[data-theme="dark"] body.cloudportal [style*="background: white" i] { background-color: var(--rv-surface) !important; }
html[data-theme="dark"] body.cloudportal [style*="color:#676A6C" i],
html[data-theme="dark"] body.cloudportal [style*="color: #676A6C" i],
html[data-theme="dark"] body.cloudportal [style*="color:#333945" i] { color: var(--rv-text) !important; }
html[data-theme="dark"] body.cloudportal tr.group[style*="#99C7EE" i] { background-color: var(--rv-selected) !important; }

/* selettore del tema nella barra superiore: sole e luna affiancati, evidenziato quello attivo */
body.cloudportal .navbar-top-links li .rv-theme-switch {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    margin: 13px 6px;
    padding: 3px;
    border: 1px solid var(--rv-border-strong);
    border-radius: 999px;
    background: var(--rv-surface-alt);
    vertical-align: middle;
}
body.cloudportal .navbar-top-links li .rv-theme-switch a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 24px;
    min-height: 0;
    padding: 0;
    border-radius: 999px;
    color: var(--rv-muted) !important;
    font-size: 14px;
    transition: background .15s, color .15s;
}
body.cloudportal .navbar-top-links li .rv-theme-switch a:hover { color: var(--rv-text) !important; }
/* evidenziazione legata a html[data-theme], gia' impostato prima del disegno: nessuno scatto al caricamento */
html:not([data-theme="dark"]) body.cloudportal .navbar-top-links li .rv-theme-switch a[data-theme-set="light"] {
    background: var(--rv-surface);
    color: #e39a12 !important;
    box-shadow: 0 1px 3px rgba(16, 38, 56, .18);
}
html[data-theme="dark"] body.cloudportal .navbar-top-links li .rv-theme-switch a[data-theme-set="dark"] {
    background: var(--rv-primary-soft);
    color: var(--rv-link) !important;
    box-shadow: none;
}
@media (max-width: 767px) {
    body.cloudportal .navbar-top-links li .rv-theme-switch { margin: 13px 2px; }
    body.cloudportal .navbar-top-links li .rv-theme-switch a { width: 24px; }
}
