:root {
  --colore-primario: #0077cc;
  --colore-argento: #c0c0c0;
  --colore-bianco: #ffffff;
  --colore-nero: #000000;
  --font-sans-serif: 'Sans-Serif', sans-serif;
  --font-cinzel: 'Cinzel', serif;
  --font-playfair: 'Playfair Display', serif;
  --spaziatura: 1rem;
}

body {
  margin: 0;
  padding: 0;
  font-family: var(--font-sans-serif);
}

body.chiaro:not(.immagine) {
  background-color: white;
}

body.scuro {
  background-color: var(--colore-nero);
  color: var(--colore-bianco);
}
body.chiaro.immagine {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

body.chiaro.immagine .contenitore,
body.chiaro.immagine .scheda {
  background-color: transparent !important;
}

.titolo-login,
.titolo-scheda {
  color: white;
  font-weight: 700;
  margin: 0;
  text-align: center;
}

.titolo-login { font-size: 2.5rem; }
.titolo-scheda { font-size: 2rem; }

.contenitore,
.scheda {
  background-color: #ffffff;
  color: #222;
}

body.scuro .contenitore,
body.scuro .scheda {
  background-color: #1a1a1a !important;
  color: #f0f0f0 !important;
}

body.scuro .bg-white {
  background-color: #444 !important;
  color: #f0f0f0 !important;
}

body.scuro input,
body.scuro select,
body.scuro textarea {
  background-color: #444 !important;
  color: #ffffff !important;
  border: 1px solid rgba(255,255,255,0.3) !important;
}

body.scuro input::placeholder,
body.scuro textarea::placeholder {
  color: #bbbbbb !important;
}
body.scuro th,
body.scuro td {
  background-color: #444 !important;
  color: #ffffff !important;
  border: 1px solid rgba(255,255,255,0.3) !important;
}

button,
.btn-dashboard {
  background-color: var(--colore-argento);
  color: #000;
  border: none;
  padding: 0.5rem 1rem;
  border-radius: 4px;
  cursor: pointer;
}

.btn-dashboard:hover {
  background-color: #a0a0a0;
}

.btn-dashboard:disabled {
  opacity: 1;
  background-color: var(--colore-argento);
  color: #000;
  cursor: not-allowed;
}

body.scuro .btn-dashboard {
  background-color: #333 !important;
  color: #fff !important;
}

body.scuro .btn-dashboard:hover {
  background-color: #444 !important;
}

.btn-personalizza {
  background-color: var(--colore-primario) !important;
  color: var(--colore-bianco) !important;
  font-weight: bold;
}

.sidebar-argento,
.sidebar-argento * {
  background-color: var(--colore-argento) !important;
  color: var(--colore-nero) !important;
  border: none;
}

body.scuro .sidebar-argento,
body.scuro .sidebar-argento * {
  background-color: #444 !important;
  color: #eee !important;
  border-color: #444 !important;
}

.toast-fishpot {
  position: fixed;
  top: 1rem;
  right: 1rem;
  background-color: #222;
  color: #fff;
  padding: 0.75rem 1.25rem;
  margin-top: 55px;
  border-left: 5px solid #0077cc;
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  opacity: 0;
  transform: translateY(-20px);
  transition: opacity 0.3s ease, transform 0.3s ease;
  z-index: 9999;
}

.toast-fishpot.attivo {
  opacity: 1;
  transform: translateY(0);
}

.layout-footer {
  position: fixed;
  bottom: 0;
  right: 0;
  font-size: 0.8rem;
  padding: 0.5rem 1rem;
  color: #6c757d;
}

body.base { font-family: var(--font-sans-serif); }
body.cinzel { font-family: var(--font-cinzel); }
body.playfair { font-family: var(--font-playfair); }

body.scuro .modal-content {
  background-color: #1a1a1a !important;
  color: #ffffff !important;
  border: 1px solid rgba(255,255,255,0.2) !important;
}

body.scuro .modal-header,
body.scuro .modal-body,
body.scuro .modal-footer {
  background-color: #1a1a1a !important;
  color: #ffffff !important;
  border-color: rgba(255,255,255,0.2) !important;
}

body.scuro .modal-title {
  color: #ffffff !important;
}

body.scuro .btn-close {
  filter: invert(1) brightness(200%);
}
