@charset "utf-8";

/* ================================================================
   DARK MODE — applica solo quando html[data-theme="dark"]
   ================================================================ */

[data-theme="dark"] {

  /* ---- CSS custom properties Bootstrap 5 ---- */
  --bs-body-color: #e8e8e8;
  --bs-body-bg: #1a1a1a;
  --bs-card-color: #e8e8e8;
  --bs-card-bg: #2a2a2a;
  --bs-success: #3dae2b;
  --bs-success-rgb: 61, 174, 43;

  /* ---- Body / Layout ---- */
  body {
    background-color: #1a1a1a;
    color: #e8e8e8;
  }

  /* ---- Form boxes (form-action, form-signin, contact-form-section) ---- */
  .form-action,
  .form-signin {
    background-color: #2a2a2a;
    border-color: rgba(255, 255, 255, 0.08);
    box-shadow: 1px 1px 6px 3px rgba(0, 0, 0, 0.3);
  }

  .contact-form-section {
    background-color: #2a2a2a;
    color: #e8e8e8;
  }

  /* ---- Footer ---- */
  .footer {
    color: rgba(255, 255, 255, 0.7);
  }

  .footer a {
    color: rgba(255, 255, 255, 0.7);
  }

  .footer a:hover {
    color: rgba(255, 255, 255, 1);
  }

  /* ---- Inputs ---- */
  .form-control {
    background-color: #2a2a2a;
    border-color: #555;
    color: #e8e8e8;
  }

  .form-control:focus {
    background-color: #2a2a2a;
    color: #e8e8e8;
  }

  .form-control::placeholder {
    color: #888;
  }

  /* ---- Inputs disabilitati ---- */
  .input-disabled input,
  .input-disabled select,
  .input-disabled .select2 {
    background-color: #333 !important;
    color: #666 !important;
    border-color: #444;
  }

  .input-disabled input::placeholder,
  .input-disabled select::placeholder {
    color: #666 !important;
  }

  .input-disabled .select2-container--default .select2-selection--single {
    background-color: #333;
  }

  /* ---- Bootstrap form controls (floating labels, ecc.) ---- */
  .form-floating > .form-control,
  .form-floating > .form-select {
    background-color: #2a2a2a;
    border-color: #555;
    color: #e8e8e8;
  }

  .form-floating > label {
    color: #888;
  }

  /* ---- Select2 ---- */
  .select2-container--default .select2-selection--single {
    background-color: #2a2a2a;
    border-color: #555;
    color: #e8e8e8;
  }

  .select2-container--default .select2-selection--single .select2-selection__rendered {
    color: #e8e8e8;
  }

  .select2-container--default .select2-selection--single .select2-selection__placeholder {
    color: #888;
  }

  .select2-dropdown {
    background-color: #2a2a2a;
    border-color: #555;
  }

  .select2-container--default .select2-results__option {
    color: #e8e8e8;
    background-color: #2a2a2a;
  }

  .select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
    background-color: #3dae2b;
    color: #fff;
  }

  .select2-search--dropdown .select2-search__field {
    background-color: #333;
    border-color: #555;
    color: #e8e8e8;
  }

  /* ---- Loading overlay ---- */
  .loading {
    background: rgba(0, 0, 0, 0.8);
  }

  /* ---- Bootstrap Cards ---- */
  .card {
    background-color: #2a2a2a;
    border-color: rgba(255, 255, 255, 0.1);
    color: #e8e8e8;
  }

  .card-body,
  .card-header,
  .card-footer {
    background-color: #2a2a2a;
    color: #e8e8e8;
    border-color: rgba(255, 255, 255, 0.1);
  }

  /* ---- Accordion ---- */
  .accordion {
    --bs-accordion-color: #e8e8e8;
    --bs-accordion-bg: #2a2a2a;
    --bs-accordion-border-color: rgba(255, 255, 255, 0.1);
    --bs-accordion-btn-color: #e8e8e8;
    --bs-accordion-btn-bg: #2a2a2a;
    --bs-accordion-active-color: #e8e8e8;
    --bs-accordion-active-bg: #333;
    --bs-accordion-body-padding-x: 1.25rem;
  }

  .accordion-item {
    background-color: #2a2a2a;
    border-color: rgba(255, 255, 255, 0.1);
    color: #e8e8e8;
  }

  .accordion-button {
    background-color: #2a2a2a;
    color: #e8e8e8;
  }

  .accordion-button:not(.collapsed) {
    background-color: #333;
    color: #e8e8e8;
  }

  .accordion-button::after {
    filter: invert(1);
  }

  .accordion-collapse,
  .accordion-body {
    background-color: #2a2a2a;
    color: #e8e8e8;
  }

  /* ---- Tabelle ---- */
  .card-detail-fw > table th {
    background-color: #1e3d29;
    color: #7cd99a;
  }

  .td-grey {
    background-color: #2f2f2f !important;
    color: #a0a0a6 !important;
  }

  .table {
    color: #e8e8e8;
    border-color: rgba(255, 255, 255, 0.1);
  }

  .table > :not(caption) > * > * {
    background-color: #2a2a2a;
    color: #e8e8e8;
    border-color: rgba(255, 255, 255, 0.1);
  }

  .table-striped > tbody > tr:nth-of-type(odd) > * {
    background-color: #252525;
    color: #e8e8e8;
  }

  /* ---- Bottoni area privata ---- */
  .btn-private-area {
    background-color: #2a2a2a;
    border-color: rgba(255, 255, 255, 0.15);
    color: #e8e8e8;
  }

  .btn-private-area:hover,
  .btn-private-area:focus {
    background-color: #333;
    border-color: rgba(255, 255, 255, 0.35);
    color: #fff;
  }

  .btn-private-area img {
    filter: invert(1);
  }

  /* ---- Bottone green fw ---- */
  .btn-green-fw {
    background-color: #2a2a2a;
    color: #e8e8e8;
    border-color: #3dae2b;
  }

  .btn-green-fw:hover {
    background-color: #3dae2b;
    color: #fff;
  }

  /* ---- Validation alert ---- */
  #validationAlert {
    background-color: #2a2a2a;
    border-color: orange;
    color: orange;
  }

  /* ---- Titoli e testi ---- */
  .title-result {
    color: rgba(255, 255, 255, 0.6);
  }

  h1, h2, h3, h4, h5, h6 {
    color: #e8e8e8;
  }

  /* ---- Badge ---- */
  .result-content .bg-primary {
    background-color: #4a4b52 !important;
  }

  /* ---- Pagina autorizzo / partner ---- */
  .bg-white,
  .bg-light {
    background-color: #2a2a2a !important;
  }

  /* ---- Bootstrap modal ---- */
  .modal-content {
    background-color: #2a2a2a;
    border-color: rgba(255, 255, 255, 0.1);
    color: #e8e8e8;
  }

  .modal-header,
  .modal-footer {
    border-color: rgba(255, 255, 255, 0.1);
  }

  /* ---- Bootstrap list-group ---- */
  .list-group-item {
    background-color: #2a2a2a;
    border-color: rgba(255, 255, 255, 0.1);
    color: #e8e8e8;
  }

  /* ---- Bootstrap borders / dividers ---- */
  .border,
  .border-top,
  .border-bottom,
  .border-start,
  .border-end {
    border-color: rgba(255, 255, 255, 0.12) !important;
  }

  hr {
    border-color: rgba(255, 255, 255, 0.15);
  }

  /* ---- Logo footer ---- */
  .logo-light-mode {
    display: none !important;
  }

  .logo-dark-mode {
    display: inline !important;
  }

  /* ---- Link "Indirizzo non trovato? Inserisci manualmente" ---- */
  #toggle-manual-input,
  #toggle-dropdown-input {
    color: rgba(255, 255, 255, 0.65) !important;
  }

  #toggle-manual-input:hover,
  #toggle-dropdown-input:hover {
    color: rgba(255, 255, 255, 1) !important;
  }

  /* ---- Bootstrap text helpers ---- */
  .text-muted {
    color: #888 !important;
  }

  .text-dark {
    color: #e8e8e8 !important;
  }

  .text-black {
    color: #e8e8e8 !important;
  }

  /* ---- Colori semantici — allineati al verde brand ---- */
  .text-success {
    color: #3dae2b !important;
  }

  .text-bg-success {
    background-color: #3dae2b !important;
    color: #fff !important;
  }

  .bg-success {
    background-color: #3dae2b !important;
  }

  /* ---- Scrollbar (webkit) ---- */
  ::-webkit-scrollbar {
    background-color: #1a1a1a;
  }

  ::-webkit-scrollbar-thumb {
    background-color: #444;
    border-radius: 4px;
  }

  ::-webkit-scrollbar-thumb:hover {
    background-color: #555;
  }
}
