/* Clauwers — eigen stijl bovenop Bootstrap 5 */
:root {
  --app-primary: #3b78e7;
  --bs-primary: #3b78e7;
  --bs-primary-rgb: 59, 120, 231;
  --bs-link-color: #3b78e7;
  --bs-link-color-rgb: 59, 120, 231;
}

.btn-primary { --bs-btn-bg: #3b78e7; --bs-btn-border-color: #3b78e7; --bs-btn-hover-bg: #2f63c4; --bs-btn-hover-border-color: #2f63c4; --bs-btn-active-bg: #2a58ae; }

body { background: #f4f6f9; }

.material-icons {
  font-family: 'Material Icons';
  font-weight: normal; font-style: normal; font-size: 24px; line-height: 1;
  letter-spacing: normal; text-transform: none; display: inline-block; white-space: nowrap;
  word-wrap: normal; direction: ltr; -webkit-font-smoothing: antialiased; font-feature-settings: 'liga';
  vertical-align: middle;
}
.material-icons.sm { font-size: 18px; }

/* Navigatie */
.app-navbar { background: var(--app-primary); }
.app-navbar .nav-link { color: rgba(255,255,255,.85); }
.app-navbar .nav-link:hover, .app-navbar .nav-link.active { color: #fff; }
.app-navbar .btn-link { text-decoration: none; border: 0; }
.nav-toggle { display: none; }
@media (max-width: 767.98px) {
  .nav-menu { display: none; width: 100%; }
  .nav-toggle:checked ~ .nav-menu { display: block; }
  .navbar-toggler { cursor: pointer; }
}
@media (min-width: 768px) { .navbar-toggler { display: none; } .nav-menu { display: flex !important; } }

/* Paginakop met titel, knoppen en tabbladen */
.page-header { background: #fff; border-bottom: 1px solid #e3e6eb; padding-top: .9rem; margin-bottom: 1.25rem; }
.page-header > .container:first-child { padding-bottom: .9rem; }
.page-tabs { border-bottom: 0; }
.page-tabs .nav-link { border: 0; border-bottom: 3px solid transparent; color: #555; }
.page-tabs .nav-link.active { border-bottom-color: var(--app-primary); color: var(--app-primary); background: transparent; }
.min-w-0 { min-width: 0; }

.btn-icon {
  display: inline-flex; align-items: center; gap: .25rem; padding: .35rem .5rem; border-radius: .375rem;
  color: #444; background: transparent; border: 0; text-decoration: none; white-space: nowrap;
}
.btn-icon:hover { background: #eef2f8; color: var(--app-primary); }
.btn-icon.danger:hover { background: #fdecec; color: #c62828; }
.btn-icon-label { font-size: .9rem; }
@media (max-width: 575.98px) { .btn-icon-label { display: none; } }

/* Tabellen */
.card-table .card-header { background: #fff; display: flex; align-items: center; gap: .5rem; }
.card-table .card-header.filtered { background: #fff3cd; }
.card-table table { margin-bottom: 0; }
.card-table th a { color: inherit; text-decoration: none; white-space: nowrap; }
.card-table th a.sorted { color: var(--app-primary); }
tr[data-href] { cursor: pointer; }
td.stock-low { background: #dc3545 !important; color: #fff !important; font-weight: 600; }
.thumb { height: 43px; width: auto; border-radius: 3px; }
.table-button { color: #555; text-decoration: none; }
.table-button:hover { color: var(--app-primary); }

/* Artikelfiche */
.stock-box { font-size: 1.5rem; font-weight: 600; text-align: center; color: #fff; border-radius: 0 var(--bs-card-border-radius) var(--bs-card-border-radius) 0; }
.stock-ok { background: #28a745; }
.stock-under { background: #dc3545; }
.detail-table th { width: 40%; font-weight: 600; }
.log-in { color: #28a745; }
.log-out { color: #dc3545; }

/* Mobiel / scanner */
.bottom-bar {
  position: fixed; bottom: 0; left: 0; right: 0; height: 64px; background: #fff; z-index: 12;
  padding: 6px 10px; box-shadow: 0 -5px 5px -5px rgba(0,0,0,.4);
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px;
}
.bottom-bar .btn { display: flex; align-items: center; justify-content: center; height: 52px; }
.has-bottom-bar main { padding-bottom: 90px !important; }
@media (min-width: 768px) { .bottom-bar { display: none; } .has-bottom-bar main { padding-bottom: 3rem !important; } }

.scan-hint { font-size: 20px; text-align: center; }
.scan-input { text-align: center; font-size: 36px !important; height: 4.5rem; }
.keypad { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.keypad .btn { height: 3.6rem; font-size: 1.5rem; display: flex; align-items: center; justify-content: center; }
.amount-display { height: 4rem; font-size: 36px; text-align: center; border: 0; background: transparent; width: 100%; }
.mode-in { color: #28a745; } .mode-out { color: #dc3545; } .mode-set { color: #17a2b8; }
.big-buttons .btn { padding: .9rem; font-size: 1.15rem; }

.text-pre { white-space: pre-line; }
.log-icon { width: 2.5rem; }
