/* ================================
   CHEEBO DESIGN SYSTEM — Dark-first
   Contrasto sempre OK (Bootstrap 5)
   ================================ */

/* ---------- Palette ---------- */
:root{
  --cb-bg:#0e0f12;
  --cb-surface:#171a20;
  --cb-surface-2:#1f232b;
  --cb-border:#2b3038;

  --cb-text:white;        /* testo su scuro */
  --cb-text-inv:#101317;    /* testo su chiaro */
  --cb-muted:#a5b0be;

  --cb-accent:#f5c84c; --cb-accent-2:#ffc83d; --cb-accent-3:#e5a900;

  --cb-success:#39d98a; --cb-danger:#ff6b6b; --cb-warning:#ffd166;

  --cb-shadow-1:0 10px 30px rgba(0,0,0,.35);
  --cb-shadow-2:0 6px 18px rgba(0,0,0,.28);

  --cb-radius:14px; --cb-radius-sm:10px;
  --cb-focus:0 0 0 .2rem rgba(245,200,76,.35);
}

/* ---------- Base ---------- */
html,body{ background:#111!important; color:var(--cb-text); -webkit-font-smoothing:antialiased; font-feature-settings:"liga","kern"; }
a{ color:var(--cb-accent); } a:hover{ color:var(--cb-accent-2); }

hr{ border-color:var(--cb-border); opacity:.6; }
:focus-visible{ outline:none; box-shadow:var(--cb-focus)!important; }

/* ---------- Navbar ---------- */
.navbar{ background:linear-gradient(180deg,rgba(23,26,32,.85),rgba(23,26,32,.75))!important; backdrop-filter:blur(6px); border-bottom:1px solid var(--cb-border); }
.navbar .navbar-brand{ font-weight:800; letter-spacing:.3px; background:linear-gradient(90deg,var(--cb-accent-2),var(--cb-accent-3)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.navbar .nav-link{ color:var(--cb-muted)!important; } .navbar .navbar .nav-link.active{ color:var(--cb-text)!important; }
.nav-link { color:#ffc107 }
.nav-link:hover { color:#ffc107!important}
/* ---------- Surfaces ---------- */
.card{ background:var(--cb-surface)!important; color:var(--cb-text)!important; border:1px solid var(--cb-border); border-radius:var(--cb-radius); box-shadow:var(--cb-shadow-1); }
.card.bg-body-secondary{ background:var(--cb-surface-2)!important; color:var(--cb-text)!important; }
.card *{ color:white!important; }             /* niente forzature globali */
.card .card-header{ background:transparent; border-bottom:1px solid var(--cb-border); }

/* ---------- Buttons ---------- */
.btn{ border-radius:12px; border:1px solid transparent; transition:transform .04s, box-shadow .2s, background .2s, border-color .2s; }
.btn:active{ transform:translateY(1px); }

/* Solid */
.btn-primary,.btn-success{
  background:linear-gradient(180deg,var(--cb-accent-2),var(--cb-accent-3))!important;
  border-color:#d19a00!important; color:#1a1a1a!important; text-shadow:0 1px 0 rgba(255,255,255,.18);
}
.btn-primary:hover,.btn-success:hover{ filter:brightness(1.06); }
.btn-danger{ background:var(--cb-danger); border-color:#ff5a5a; color:#fff; }
.btn-danger:hover{ filter:brightness(1.06); }

/* Outline (visibili su scuro) */
.btn-outline-light{ background:rgba(255,255,255,.06); border-color:#5b6470; }
.btn-outline-light:hover{ background:rgba(255,255,255,.12); border-color:#7b8595; }
.btn-outline-danger{ background:transparent; border-color:#ff7b7b; color:#ff7b7b!important; }
.btn-outline-danger:hover{ background:rgba(255,123,123,.12); border-color:#ff6b6b; color:#ff6b6b!important; }

/* Disabilitati leggibili (anche <a> .disabled) */
.btn:disabled,.btn.disabled,fieldset:disabled .btn{ opacity:1; cursor:not-allowed; }
.btn-outline-light:disabled,.btn-outline-light.disabled{ background:rgba(255,255,255,.10); border-color:#6b7482; pointer-events:none; }
.btn-outline-danger:disabled,.btn-outline-danger.disabled{ background:rgba(255,123,123,.10); border-color:#ff9a9a;  pointer-events:none; }
.btn-primary:disabled,.btn-success:disabled{ background:linear-gradient(180deg,#e9b52f,#c89800)!important; border-color:#b08000!important;  filter:saturate(.85) brightness(.95); }

/* Micro “ghost” (opzionale per bottoncini come "Vedi") */
.btn-ghost{ background:rgba(255,255,255,.06); border:1px solid #3a414c; color:var(--cb-text); border-radius:10px; }
.btn-ghost:hover{ background:rgba(255,255,255,.12); border-color:#4a5260; }
.btn-ghost:disabled{ background:rgba(255,255,255,.08); border-color:#495262; color:#aab2bf; }

/* ---------- Forms ---------- */
.form-control,.form-select{
  background:#fff; color:var(--cb-text-inv);
  border:1px solid var(--cb-border); border-radius:var(--cb-radius-sm);
}
.form-control:focus,.form-select:focus{ background:#fff; color:var(--cb-text-inv); border-color:#596274; box-shadow:var(--cb-focus); }
.form-control::placeholder{ color:#7a8597; }
.input-group-text{ background:#fff; border:1px solid var(--cb-border); color:var(--cb-muted); }

/* Evita ereditarietà scura nei controlli */
.form-control,.form-select,.form-control *,.form-select *{ color:var(--cb-text-inv)!important; }

/* Check/Radio */
.form-check-input{ background:#fff; border:1px solid var(--cb-border); }
.form-check-input:checked{ background:linear-gradient(180deg,var(--cb-accent-2),var(--cb-accent-3)); border-color:#d19a00; box-shadow:var(--cb-focus); }

/* Select options (limitazioni per OS, ma niente bianco su bianco) */
select option,.form-select option{ color:var(--cb-text-inv); background:#fff; }

/* ---------- Tables ---------- */
.table{ 
--bs-table-bg:transparent; color:var(--cb-text); 
    --bs-table-color: white;
}
.table-dark{ --bs-table-bg:transparent; --bs-table-striped-bg:rgba(255,255,255,.03); --bs-table-hover-bg:rgba(255,255,255,.04); }
.table td,.table th{ border-color:#2f3540!important; }
.table thead th{ color:#cfd6df; font-weight:700; border-bottom-width:2px; }

.table .btn.btn-sm:hover{ background:#1f232b; border-color:#4a5260; color: white; }

/* ---------- List / Sidebar (scuro) ---------- */
.bg-dark .list-group,
.bg-body-secondary .list-group,
.card.bg-body-secondary .list-group{
  --bs-list-group-bg:transparent;
  --bs-list-group-color:var(--cb-text);
  --bs-list-group-border-color:var(--cb-border);
  --bs-list-group-action-hover-color:var(--cb-text);
  --bs-list-group-action-hover-bg:rgba(255,255,255,.06);
  --bs-list-group-active-color:var(--cb-text);
  --bs-list-group-active-bg:rgba(245,200,76,.18);
  --bs-list-group-active-border-color:var(--cb-accent);
}
.list-group-item{ background:transparent; border-color:var(--cb-border); }
.list-group-item:hover{ background:rgba(255,255,255,.03); }
.list-group-item.active{
  background:linear-gradient(90deg,rgba(245,200,76,.18),rgba(0,0,0,0))!important; border-left:3px solid var(--cb-accent);
}
.list-group-item.disabled,.list-group-item:disabled{ color:#8f98aa!important; }

/* ---------- Alerts ---------- */
.alert{ border-radius:var(--cb-radius-sm); border:1px solid var(--cb-border); color:var(--cb-text); }
.alert-success{ border-color:rgba(57,217,138,.35); }
.alert-danger{ background:rgba(255,107,107,.10); border-color:rgba(255,107,107,.35); }
.alert-info{ background:rgba(255,200,61,.10); border-color:rgba(255,200,61,.35); color:#ffe699; }


/* ---------- Light Mode (auto, opzionale) ---------- */
@media (prefers-color-scheme: light){
  :root{ --cb-bg:#f7f7f9; --cb-text:#101317; --cb-text-inv:#101317; }
  body{ background:#111!important; color:var(--cb-text); }
  .navbar{ background:#111!important; }

  .form-control,.form-select{ background:#fff; color:#101317; }
  .input-group-text{ background:#fff; color:#5b6577!important; }
  .table-dark{ --bs-table-striped-bg:rgba(0,0,0,.035); --bs-table-hover-bg:rgba(0,0,0,.05); }
  .bg-light,.card.bg-light,.list-group-item.bg-light{ color:var(--cb-text-inv)!important; }
  .bg-light .text-light{ color:var(--cb-text-inv)!important; }
}
/* ===== Fix definitivo Bootstrap Card (dark + light) ===== */
.text-soft {
  color: #adb5bd !important; /* grigio chiaro, leggibile su bg dark */
}
.link-muted {
  color: #adb5bd;
  text-decoration: none;
}
.link-muted:hover {
  color: #fff;
  text-decoration: underline;
}

/* Card base (dark-first) */
