.bnm [hidden] { display: none !important; }
.bnm { position: relative; max-width: 800px; margin: 0 auto; font-family: inherit; }
.bnm__title { font-size: 1.4em; margin: 0 0 16px; }
.bnm__section { margin-bottom: 20px; }
.bnm__section h3 { font-size: 1.1em; margin: 0 0 10px; }
.bnm__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 10px; }
.bnm__grid--notif { align-items: end; }
.bnm__row { display: flex; flex-direction: column; gap: 4px; margin-bottom: 10px; }
.bnm__row label { font-weight: 500; font-size: 0.9em; margin: 0 0 .5em 0 !important; }
.bnm__row input, .bnm__row select { padding: 8px 10px; border: 1px solid #d1d5db; border-radius: 0px; font-size: 0.95em; }
.bnm__row input:focus, .bnm__row select:focus { outline: none; border-color: #2563eb; box-shadow: 0 0 0 2px rgba(37,99,235,0.15); }
.bnm__radio-group { display: flex; gap: 18px; margin-top: 4px; }
.bnm__radio { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.bnm__radio input[type="radio"] { position: relative; opacity: 1; pointer-events: auto; width: 18px; height: 18px; margin: 0; }
.bnm__radio span { font-weight: 400; }

/* intl-tel-input full width */
.bnm__row .iti { width: 100%; }
.bnm__row .iti input { width: 100%; }

.bnm__map-container { border: 1px solid #e5e7eb; border-radius: 6px; overflow: hidden; aspect-ratio: 1 / 1; }
.bnm__map-container #bnm-map { width: 100%; height: 100%; }

.bnm__spritztermin-layout { margin-top: 12px; margin-bottom: 24px; }
.bnm__map-col { margin-bottom: 16px; }

.bnm__infobox { display: flex; align-items: center; gap: 12px; padding: 12px 14px; margin-bottom: 14px; background: #f9fafb; border: 1px solid #e5e7eb; border-radius: 6px; }
.bnm__infobox img { flex-shrink: 0; width: 40px; height: auto; }
.bnm__infobox p { margin: 0; font-size: 13px; line-height: 1.4; color: #374151; }

.bnm__elevation { margin-top: 12px; }
.bnm__elevation-value { background: #f9fafb; border: 1px solid #e5e7eb; padding: 6px 8px; font-size: 1.05em; }

.bnm__verify-box { align-items: center; padding: 12px 14px; margin-bottom: 14px; background: #f9fafb; border: 1px solid #e5e7eb; border-radius: 6px; margin-top: 14px; }
.bnm__verify-box input { background-color: #fff; }

.bnm__error { color: #dc2626; font-size: 0.9em; min-height: 1.4em; margin-bottom: 8px; }
.bnm__error:empty { display: none; }

.bnm__actions { display: flex; gap: 10px; margin-top: 16px; }
.bnm__btn { padding: 10px 24px; border: none; border-radius: 0px; cursor: pointer; font-size: 0.95em; font-weight: 500; background: rgb(0, 139, 108); color: #fff; }
.bnm__btn:hover { background: rgb(15, 93, 73); }
.bnm__btn:disabled { opacity: 0.6; cursor: not-allowed; }
.bnm__btn--secondary { background: #e5e7eb; color: #374151; }
.bnm__btn--secondary:hover { background: #d1d5db; }
.bnm__btn--danger { background: #dc2626; color: #fff; }
.bnm__btn--danger:hover { background: #b91c1c; }

.bnm__success { text-align: center; padding: 40px 20px; }
.bnm__success h2 { color: rgb(0, 139, 108); margin-bottom: 12px; }

.bnm__section--locked { opacity: 0.7; }
.bnm__section--locked input, .bnm__section--locked select { background-color: #f3f4f6; cursor: not-allowed; }
.bnm__section--locked label, .bnm__section--locked .bnm__radio { cursor: not-allowed; }

.bnm__inline-banner { padding: 12px 16px; margin-bottom: 16px; background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 6px; color: #1e40af; }
.bnm__inline-banner p { margin: 0; font-size: 0.95em; }
.bnm__inline-banner--warn { background: #fff7ed; border-color: #fb923c; color: #9a3412; }

/* Mode chooser (step 0) */
.bnm__mode-cards { display: grid; gap: 14px; margin-top: 12px; }
@media (min-width: 600px) { .bnm__mode-cards { grid-template-columns: 1fr 1fr; } }
.bnm__mode-card { display: block; width: 100%; text-align: left; padding: 20px; border: 2px solid #e5e7eb; border-radius: 0px; background: #fff; cursor: pointer; transition: all 0.15s; font: inherit; }
.bnm__mode-card:hover { border-color: rgb(0, 139, 108); background: rgb(225, 243, 238); }
.bnm__mode-card-title { font-size: 1.05em; font-weight: 700; margin-bottom: 6px; color: rgb(0, 139, 108); }
.bnm__mode-card-desc { font-size: 0.9em; color: #4b5563; line-height: 1.4; }

/* Spritztermin result box (shown below map) */
.bnm__spritztermin-result { margin-top: 14px; padding: 14px 16px; border-radius: 6px; border: 1px solid transparent; }
.bnm__spritztermin-result--final { background: #ecfdf5; border-color: #10b981; color: #065f46; }
.bnm__spritztermin-result--prov  { background: #fffbeb; border-color: #f59e0b; color: #92400e; }
.bnm__spritztermin-result--none  { background: #fef2f2; border-color: #ef4444; color: #991b1b; }
.bnm__spritztermin-result h4 { margin: 0 0 6px; font-size: 1em; }
.bnm__spritztermin-result p { margin: 0; font-size: 0.95em; }
.bnm__spritztermin-result strong { font-size: 1.1em; }

/* Already-registered view uses theme palette classes (has-palette-color-11-background-color).
   Only local tweaks here. */

.bnm__already-registered { padding: 20px; background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 6px; }
.bnm__already-registered h2 { margin: 0 0 8px; color: #1e40af; }
.bnm__already-registered > p { margin: 0 0 16px; }
.bnm__profile-data { margin-top: 12px; padding-top: 12px; border-top: 1px solid #bfdbfe; }
.bnm__profile-data h3 { font-size: 1em; margin: 0 0 10px; color: #1e40af; }
.bnm__profile-dl { display: grid; grid-template-columns: max-content 1fr; gap: 4px 14px; margin: 0; font-size: 0.95em; }
.bnm__profile-dl dt { font-weight: 600; color: #374151; margin: 0; }
.bnm__profile-dl dd { margin: 0; color: #111827; word-break: break-word; }
.bnm__profile-dl dd:empty::before { content: "—"; color: #9ca3af; }

.bnm__loading { position: absolute; inset: 0; background: rgba(255,255,255,0.8); display: flex; align-items: center; justify-content: center; z-index: 10; }
.bnm__loading[hidden] { display: none; }
.bnm__spinner { width: 36px; height: 36px; border: 3px solid #e5e7eb; border-top-color: rgb(0, 139, 108); border-radius: 50%; animation: bnm-spin 0.8s linear infinite; }
@keyframes bnm-spin { to { transform: rotate(360deg); } }

@media (min-width: 768px) {
    .bnm__spritztermin-layout { display: flex; gap: 20px; align-items: flex-start; }
    .bnm__map-col { flex: 0 0 calc(50% - 10px); margin-bottom: 0; }
    .bnm__fields-col { flex: 1 1 calc(50% - 10px); min-width: 0; }
}
