:root { --brand: #649A28; --brand-2: #8CC53D; --accent: #E1192B; }
body { font-family: Carlito, Calibri, "Segoe UI", system-ui, sans-serif; background: #f5f6f4; font-size: .95rem; }
.topbar { background: var(--brand); border-bottom: 4px solid var(--brand-2); }
.merk { flex: none; }
.btn-brand { background: var(--brand); border-color: var(--brand); color: #fff; }
.btn-brand:hover, .btn-brand:focus { background: #557f22; border-color: #557f22; color: #fff; }
.btn-outline-brand { border-color: var(--brand); color: var(--brand); }
.btn-outline-brand:hover { background: var(--brand); color: #fff; }
.bg-brand { background-color: var(--brand) !important; }
.nav-pills .nav-link.active { background: var(--brand); }
.nav-pills .nav-link { color: #3c5d18; }
a { color: #4f7a1f; }
h1, .h1, .h3 { color: #3c5d18; }
.card { border: 0; }
.kpi .card-body { border-left: 4px solid var(--brand-2); }
.login-wrap { position: relative; min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; overflow: hidden;
  background: radial-gradient(1200px 600px at 15% 0%, #d6ebbd 0%, rgba(214,235,189,0) 60%), linear-gradient(165deg, #e4f2d3 0%, #f3f9ec 40%, #ffffff 75%); }
.login-pijl { position: absolute; left: 0; right: 0; bottom: 6vh; width: 100%; height: 55vh; opacity: .07; pointer-events: none; }
.login-card { position: relative; width: 400px; max-width: calc(100vw - 32px); background: #fff; border-radius: 14px; overflow: hidden;
  box-shadow: 0 18px 50px rgba(60, 93, 24, .18), 0 2px 6px rgba(0,0,0,.06); }
.login-kop { padding: 28px 32px 18px; text-align: center; background: linear-gradient(180deg, #f2f9e9 0%, #ffffff 100%); border-bottom: 1px solid #e6f0da; }
.login-logo-img { width: 190px; max-width: 70%; height: auto; }
.login-titel { margin-top: 6px; font-size: 1.05rem; letter-spacing: .18em; text-transform: uppercase; color: #4f7a1f; font-weight: 600; }
.login-form { padding: 24px 32px 30px; }
.login-form .form-control { border-color: #d5e5c3; }
.login-form .form-control:focus { border-color: #8CC53D; box-shadow: 0 0 0 .2rem rgba(140,197,61,.25); }
.login-voet { position: relative; margin-top: 22px; font-size: .8rem; color: #6f8f4a; letter-spacing: .04em; }
body.kaal main > .alert { position: fixed; top: 16px; left: 50%; transform: translateX(-50%); z-index: 10; min-width: 320px; }
.table-warning-subtle td { background: #fff8e1 !important; }
.table-danger-subtle td { background: #fdecec !important; }
.opslaan-balk { position: sticky; bottom: 0; background: rgba(245,246,244,.95); padding: .75rem 0; text-align: right; border-top: 1px solid #ddd; margin-top: 1rem; z-index: 5; }
.voorbeeld-frame { height: calc(100vh - 230px); min-height: 600px; background: #e9ecef; }
.rek-rij[role=button]:hover td { background: #eef5e6 !important; }
thead.sticky-top th { background: #fff; box-shadow: inset 0 -1px 0 #dee2e6; }
.accordion-button:not(.collapsed) { background: #eef5e6; color: #222; }
.accordion-button:focus { box-shadow: none; }
.tekst-veld { font-family: inherit; }
.uit-exact { background: #eef5e6 !important; border-color: #8CC53D !important; }
.stap-nr { display:inline-flex; width:22px; height:22px; border-radius:50%; background:#649A28; color:#fff; font-size:.8rem; align-items:center; justify-content:center; margin-right:6px; }
.merk-tegel { display: inline-flex; align-items: center; justify-content: center; background: #fff; border-radius: 7px; padding: 4px 6px; box-shadow: 0 1px 3px rgba(0,0,0,.15); }
