:root {
  --biblio-brown: #5b3a29;
  --biblio-brown-dark: #3e2717;
  --biblio-cream: #f6efe2;
  --biblio-gold: #b8863b;
  --biblio-paper: #fffaf0;
}

body {
  background-color: var(--biblio-cream);
  color: #3a2f28;
  min-height: 100vh;
}

.text-brown { color: var(--biblio-brown); }

/* Barra superiore */
.app-topbar {
  background-color: var(--biblio-brown);
  color: #fff;
  position: sticky;
  top: 0;
  z-index: 1030;
  box-shadow: 0 2px 6px rgba(0, 0, 0, .15);
}
.app-brand { font-size: 1.1rem; font-weight: 600; letter-spacing: .01em; }
.btn-topbar { color: #fff; background: transparent; border: none; }
.btn-topbar:hover, .btn-topbar:focus { color: var(--biblio-gold); }

.app-main.with-bottom-nav { padding-bottom: 4.75rem; }

/* Barra di navigazione inferiore, pensata per l'uso a tablet/mobile */
.bottom-nav {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  display: flex;
  background-color: #fff;
  border-top: 1px solid rgba(0, 0, 0, .08);
  box-shadow: 0 -2px 10px rgba(0, 0, 0, .08);
  z-index: 1030;
  padding-bottom: env(safe-area-inset-bottom);
}
.bottom-nav-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .15rem;
  padding: .6rem 0 .45rem;
  color: #8a7663;
  text-decoration: none;
  font-size: .72rem;
  transition: color .15s;
}
.bottom-nav-item i { font-size: 1.35rem; }
.bottom-nav-item.active { color: var(--biblio-brown); font-weight: 600; }
.bottom-nav-item:hover { color: var(--biblio-brown); }

/* Bottoni tema */
.btn-brown {
  background-color: var(--biblio-brown);
  border-color: var(--biblio-brown);
  color: #fff;
}
.btn-brown:hover, .btn-brown:focus {
  background-color: var(--biblio-brown-dark);
  border-color: var(--biblio-brown-dark);
  color: #fff;
}

/* Card libri */
.book-card {
  border-radius: .8rem;
  border: 1px solid rgba(0, 0, 0, .07);
  box-shadow: 0 1px 3px rgba(0, 0, 0, .05);
  transition: transform .15s, box-shadow .15s;
  color: #3a2f28;
}
.book-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 14px rgba(0, 0, 0, .1);
}

.badge-genere {
  background-color: var(--biblio-gold);
  color: #fff;
}

/* Login */
.login-wrap { min-height: 85vh; padding: 1rem; }
.login-card { max-width: 380px; width: 100%; border-radius: 1rem; border: none; }

/* Card e tabelle generiche */
.card { border-radius: .8rem; }
.table-responsive { border-radius: .8rem; overflow: hidden; }
