/* Pay parking (F35). Base styles are in site.css. Mobile first. */
.parking-page { max-width: 820px; }
.parking-page .parking-picker { display: grid; gap: .6rem; margin: 1rem 0; }
.parking-page .parking-plate { margin: 1rem 0; }
.parking-page .parking-plate h2 { margin-top: 0; font-size: 1.1rem; }
.parking-page #parking-plate { width: 100%; font: inherit; font-size: 1.25rem; letter-spacing: .08em; text-transform: uppercase; padding: .6rem .7rem; border: 1px solid var(--line); border-radius: 8px; background: var(--bg); color: var(--fg); }
.parking-page .plate-error { color: var(--err); }
.parking-page .check { display: flex; gap: .5rem; align-items: center; margin-top: .6rem; }
.parking-page .small { font-size: .85rem; }
.parking-page .car-pick { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 .8rem; }
.parking-page .chip.on { background: var(--accent); color: var(--accent-fg); border-color: var(--accent); }
.parking-page .zones { display: grid; gap: var(--gap); grid-template-columns: 1fr; margin: 1rem 0; }
@media (min-width: 720px) { .parking-page .zones { grid-template-columns: 1fr 1fr; } }
.parking-page .zone h3 { display: flex; align-items: center; gap: .5rem; font-size: 1.1rem; }
.parking-page .facts { display: grid; grid-template-columns: auto 1fr; gap: .2rem .8rem; margin: .4rem 0; }
.parking-page .facts dt { color: var(--muted); }
.parking-page .facts dd { margin: 0; }
.parking-page .sms-text { margin: .6rem 0 .4rem; word-break: break-word; }
.parking-page .sms-btn { display: block; text-align: center; min-height: 48px; line-height: 1.7; font-size: 1.05rem; }
.parking-page .sms-btn[aria-disabled="true"] { opacity: .45; pointer-events: none; }
.parking-page .source { margin-bottom: 0; }
.parking-page .dot { display: inline-block; width: 1rem; height: 1rem; border-radius: 50%; border: 1px solid var(--line); flex: none; }
.dot-red { background: #c92a2a; } .dot-yellow { background: #f59f00; } .dot-green { background: #2b8a3e; }
.dot-blue { background: #1c7ed6; } .dot-white { background: #fff; } .dot-purple { background: #7048e8; } .dot-extra { background: #1a1d21; }

/* Unconfirmed zones: dashed border, muted, a badge and a spoken warning (not colour only). */
.parking-page .zone-unconfirmed { border: 2px dashed var(--warn); background: transparent; color: var(--muted); }
.parking-page .zone-unconfirmed h3 { flex-wrap: wrap; color: var(--fg); }
.parking-page .zone-warning { margin: .2rem 0 .4rem; color: var(--fg); }
.parking-page .copy-row { display: flex; flex-wrap: wrap; gap: .5rem; margin: .5rem 0; }
.parking-page .copy-row .btn { min-height: 44px; }
.parking-page .here-card h2 { margin-top: 0; }

/* City lists: grouped by country, small amber dot for unconfirmed data, legend at the bottom. */
.parking-page .parking-country { margin: 1.1rem 0; }
.parking-page .parking-country h3 { margin: 0 0 .5rem; font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: var(--muted); }
.parking-page .chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.parking-page .chip { display: inline-flex; align-items: center; gap: .1rem; }
.dot-unconfirmed { display: inline-block; width: .55rem; height: .55rem; border-radius: 50%; background: var(--warn); margin-left: .35rem; flex: none; }
.parking-page .parking-legend { display: flex; align-items: baseline; gap: .45rem; margin-top: 1.2rem; font-size: .88rem; }
.parking-page .parking-legend .dot-unconfirmed { margin: 0; position: relative; top: -.05em; }
