.bv-av { --bv-av-groen: #1d7a3e; --bv-av-groen-licht: #e8f4ec; --bv-av-rand: #d9dfdb; --bv-av-tekst: #1f2a24; max-width: 860px; color: var(--bv-av-tekst); font-size: 16px; line-height: 1.5; }
.bv-av *, .bv-av *::before, .bv-av *::after { box-sizing: border-box; }
.bv-av__intro p { margin: 0 0 1.25rem; }
.bv-av__status { padding: .9rem 1.1rem; border-radius: 10px; margin-bottom: 1.25rem; background: var(--bv-av-groen-licht); border: 1px solid #bfdcc9; }
.bv-av__login { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem .9rem; background: var(--bv-av-groen); color: #fff; padding: 1rem 1.2rem; border-radius: 10px; margin-bottom: 1.5rem; }
.bv-av__login-sub { flex-basis: 100%; opacity: .9; font-size: .95em; }
.bv-av__form { margin: 0; }
.bv-av__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.bv-av__blok { border: 1px solid var(--bv-av-rand); border-radius: 12px; padding: 1.1rem 1.25rem 1.25rem; margin: 0 0 1.25rem; background: #fff; }
.bv-av__blok legend { font-weight: 700; font-size: 1.1em; padding: 0 .4rem; }
.bv-av__blok legend em, .bv-av__veld em { color: #c0392b; font-style: normal; }
.bv-av__grid { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem 1.2rem; }
.bv-av__veld { display: flex; flex-direction: column; gap: .3rem; margin: 0; }
.bv-av__veld--breed { grid-column: 1 / -1; }
.bv-av__veld > span { font-weight: 600; font-size: .95em; }
.bv-av__veld small { color: #5f6b64; font-size: .85em; }
.bv-av input[type=text], .bv-av input[type=tel], .bv-av input[type=email], .bv-av input[type=number], .bv-av input[type=time], .bv-av textarea { width: 100%; padding: .55rem .7rem; border: 1px solid #b9c2bd; border-radius: 8px; font: inherit; background: #fff; }
.bv-av input[readonly] { background: #f3f5f4; color: #5f6b64; }
.bv-av input:focus, .bv-av textarea:focus { outline: 2px solid var(--bv-av-groen); outline-offset: 1px; border-color: var(--bv-av-groen); }
.bv-av__keuzes { display: flex; flex-direction: column; gap: .5rem; }
.bv-av__keuze { display: flex; align-items: flex-start; gap: .6rem; padding: .6rem .8rem; border: 1px solid var(--bv-av-rand); border-radius: 8px; cursor: pointer; margin: 0; }
.bv-av__keuze:has(input:checked) { border-color: var(--bv-av-groen); background: var(--bv-av-groen-licht); }
.bv-av__keuze input { margin-top: .3rem; accent-color: var(--bv-av-groen); }
.bv-av__hint { margin: .7rem 0 0; color: #5f6b64; font-size: .9em; }
.bv-av__tijden { width: 100%; border-collapse: collapse; margin-top: .8rem; }
.bv-av__tijden th, .bv-av__tijden td { padding: .35rem .4rem; text-align: left; border-bottom: 1px solid #eef1ef; vertical-align: middle; }
.bv-av__tijden thead th { font-size: .85em; color: #5f6b64; font-weight: 600; }
.bv-av__tijden tbody th { font-weight: 600; white-space: nowrap; }
.bv-av__tijden tr[hidden] { display: none; }
.bv-av__route[hidden] { display: none; }
.bv-av__tijden input[type=time] { max-width: 8.5rem; }
.bv-av__td-check { text-align: center !important; }
.bv-av__td-check input { width: 1.15rem; height: 1.15rem; accent-color: var(--bv-av-groen); }
.bv-av__toelichting { margin-top: .9rem; display: none; }
.bv-av__toelichting.is-zichtbaar { display: flex; }
.bv-av__label-sleutel, .bv-av__label-buiten { display: none; }
.bv-av__toelichting.is-sleutel .bv-av__label-sleutel, .bv-av__toelichting.is-buiten .bv-av__label-buiten { display: inline; }
.bv-av__acties { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.bv-av__knop { display: inline-block; background: var(--bv-av-groen); color: #fff !important; border: 0; border-radius: 999px; padding: .75rem 1.5rem; font: inherit; font-weight: 700; cursor: pointer; text-decoration: none !important; line-height: 1.2; }
.bv-av__knop:hover { filter: brightness(1.1); }
.bv-av__knop--wit { background: #fff; color: var(--bv-av-groen) !important; padding: .5rem 1.1rem; }
.bv-av__knop[disabled] { opacity: .6; cursor: wait; }
.bv-av__melding { font-weight: 600; }
.bv-av__melding.is-fout { color: #c0392b; }
.bv-av__melding.is-ok { color: var(--bv-av-groen); }

/* Promoblokken in het account */
.bv-av-promo { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .8rem 1.2rem; background: #1d7a3e; color: #fff; padding: 1rem 1.25rem; border-radius: 10px; margin: 0 0 1.5rem; }
.bv-av-promo p { margin: 0; flex: 1 1 320px; }
.bv-av-promo strong { display: block; font-size: 1.05em; }
.bv-av-promo--klein { padding: .7rem 1rem; font-size: .95em; }
.bv-av-promo--klaar { background: #e8f4ec; color: #1f2a24; border: 1px solid #bfdcc9; }
.bv-av-promo .bv-av__knop { background: #fff; color: #1d7a3e !important; }
.bv-av-promo--klaar .bv-av__knop { background: #1d7a3e; color: #fff !important; }
.bv-av-stip { display: inline-block; width: .55em; height: .55em; border-radius: 50%; background: #c0392b; margin-left: .35em; vertical-align: super; }

@media (max-width: 640px) {
	.bv-av__grid { grid-template-columns: 1fr; }
	.bv-av__tijden thead { display: none; }
	.bv-av__tijden tr { display: grid; grid-template-columns: 1fr 1fr; gap: .3rem .6rem; padding: .5rem 0; border-bottom: 1px solid #eef1ef; }
	.bv-av__tijden th, .bv-av__tijden td { border: 0; padding: 0; }
	.bv-av__tijden tbody th { grid-column: 1 / -1; }
	.bv-av__tijden .bv-av__td-check { text-align: left !important; }
	.bv-av__tijden .bv-av__td-check::before { font-size: .85em; margin-right: .4rem; }
	.bv-av__tijden td:nth-child(4)::before { content: "Gesloten"; }
}
