.postcode-form { align-items: flex-start; }
.postcode-form .postcode-field { flex: 1 1 130px; min-width: 0; text-align: left; }
.postcode-field label { display: block; color: #103951; font-weight: 700; margin-bottom: 8px; font-size: .9rem; }
.postcode-form .postcode-field input { width: 100%; min-width: 0; box-sizing: border-box; }
.postcode-form > button { margin-top: 30px; }
.postcode-form input[aria-invalid="true"] { border: 2px solid #ab251a; }
.postcode-field-error { display: block; color: #942217; font-size: .875rem; margin-top: 4px; }
.postcode-feedback { text-align: left; color: #11384e; }
.postcode-feedback:empty { display: none; }
.postcode-feedback:focus { outline: 2px solid #0781cd; outline-offset: 4px; }
.postcode-feedback h2 { font-size: 1.35rem; margin-bottom: 12px; }
.postcode-feedback > h2, .postcode-feedback > p { background: #fff; color: #11384e; padding: 16px; border-radius: 8px; }
.postcode-feedback .card-prijs { font-size: 1.1rem; }
.postcode-feedback .card p { color: #11384e; }
.postcode-loading { padding: 24px; background: #0c3553; color: white; border: 1px solid #5484a2; border-radius: 12px; }
.postcode-loading h2, .postcode-loading p { color: white; }
.postcode-loading p { font-size: 1rem; margin: 12px 0; }
.postcode-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); list-style-position: inside; gap: 16px; margin: 16px 0; padding: 0; }
.postcode-steps li { border-top: 3px solid #ff8800; padding-top: 12px; }
.postcode-skeletons { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.postcode-skeleton { height: 96px; border-radius: 8px; background: linear-gradient(90deg, #e9f0f5 25%, #fff 50%, #e9f0f5 75%); background-size: 200% 100%; animation: check-shimmer 2s ease-in-out infinite; }
.postcode-feedback .postcode-notice { border-left: 4px solid #f58a00; }
.postcode-feedback .postcode-error { border-left: 4px solid #ab251a; }
.postcode-choices { display: flex; flex-wrap: wrap; gap: 12px; }
.postcode-choices button, .postcode-retry, .postcode-feedback form button { background: #fff; color: #103951; padding: 12px 20px; border: 2px solid #ff8800; border-radius: 8px; font: inherit; font-weight: 700; cursor: pointer; margin-bottom: 16px; }
.postcode-form button:disabled { opacity: .8; cursor: wait; }
.postcode-form :focus-visible, .postcode-choices button:focus-visible, .postcode-retry:focus-visible { outline: 3px solid #0c699e; outline-offset: 3px; }
@keyframes check-shimmer { to { background-position: -200% 0; } }
@media (prefers-reduced-motion: reduce) { .postcode-skeleton { animation: none; } }
@media (max-width: 640px) {
    .postcode-form .postcode-field { flex: 0 1 auto; width: 100%; }
    .postcode-form > button { margin-top: 8px; }
    .postcode-steps, .postcode-skeletons { grid-template-columns: 1fr; }
    .postcode-skeleton { height: 48px; }
    .postcode-loading { padding: 16px; }
}

.postcode-confirmed::before { content: "✓ "; color: #12834c; }
