/* Country-code picker (lib/country_picker.js): booking, passenger registration, dispatch.
   Colours fall back from the site palette to the dispatch palette to neutral defaults. */
.cp, .cp-trigger {
    --cp-bg: var(--bg-white, var(--da-bg-white, #fff));
    --cp-soft: var(--bg-base, var(--da-bg, #f5f6f8));
    --cp-fg: var(--text-primary, var(--da-text, #111));
    --cp-fg2: var(--text-secondary, var(--da-text-secondary, #555));
    --cp-muted: var(--text-muted, var(--da-text-light, #6b6b6b));
    --cp-border: var(--border-light, var(--da-border, #e2e2e2));
    --cp-accent: var(--acc-primary, var(--da-primary, #d32f2f));
    --cp-accent-soft: var(--acc-primary-glow, rgba(211, 47, 47, 0.1));
    --cp-ring: var(--acc-blue, #276ef1);
}
.cp-native {
    position: absolute !important; inset-inline-start: 0; width: 1px !important; height: 1px !important; padding: 0 !important;
    margin: 0 !important; border: 0 !important; opacity: 0; overflow: hidden; clip-path: inset(50%); pointer-events: none;
}
.cp-trigger {
    display: inline-flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; min-height: 50px;
    padding: 0 12px 0 14px; cursor: pointer; text-align: start; color: var(--cp-fg); font-weight: 700;
    font-variant-numeric: tabular-nums;
}
.cp-trigger.ap-select { background-image: none; }
.cp-trigger__flag { font-size: 1.3rem; line-height: 1; }
.cp-trigger__dial { flex: 1; font-size: 1rem; white-space: nowrap; }
.cp-trigger__chev { width: 20px; height: 20px; flex-shrink: 0; fill: var(--cp-fg2); }
.cp-trigger:focus-visible { outline: 3px solid var(--cp-ring); outline-offset: 2px; }
.cp {
    width: min(520px, calc(100vw - 32px)); height: min(680px, calc(100dvh - 48px)); max-height: none; padding: 0;
    margin: auto; inset: 0; border: 0; border-radius: 20px; background: var(--cp-bg); color: var(--cp-fg);
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.22); overflow: hidden; font-family: inherit;
}
.cp[open] { display: flex; flex-direction: column; }
.cp::backdrop { background: rgba(10, 10, 15, 0.55); }
.cp__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 16px 8px 20px; }
.cp__title { margin: 0; font-size: 1.1rem; font-weight: 800; }
.cp__close {
    width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--cp-border); background: var(--cp-bg);
    display: inline-grid; place-items: center; cursor: pointer; color: var(--cp-fg);
}
.cp__close .icon { width: 20px; height: 20px; fill: currentColor; }
.cp__search { position: relative; padding: 4px 16px 12px; border-bottom: 1px solid var(--cp-border); }
.cp__search-icon { position: absolute; inset-inline-start: 30px; top: 50%; transform: translateY(-58%); width: 20px; height: 20px; fill: var(--cp-muted); }
.cp__input {
    width: 100%; min-height: 50px; padding: 12px 14px 12px 44px; border-radius: 999px; border: 2px solid transparent;
    background: var(--cp-soft); color: var(--cp-fg); font: inherit; font-size: max(16px, 1rem); outline: none;
}
.cp__input:focus { background: var(--cp-bg); border-color: var(--cp-accent); box-shadow: 0 0 0 4px var(--cp-accent-soft); }
.cp__body { flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: 6px 8px 16px; }
.cp__list { list-style: none; margin: 0; padding: 0; }
.cp__group { padding: 14px 12px 6px; font-size: 0.75rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--cp-muted); }
.cp__option {
    display: grid; grid-template-columns: 32px 1fr auto; align-items: center; gap: 10px; min-height: 48px; padding: 8px 12px;
    border-radius: 12px; cursor: pointer;
}
.cp__option.is-active { background: var(--cp-soft); }
.cp__option[aria-selected="true"] { background: var(--cp-accent-soft); font-weight: 700; }
.cp__flag { font-size: 1.35rem; line-height: 1; text-align: center; }
.cp__name { font-size: 0.97rem; overflow-wrap: anywhere; }
.cp__dial { font-size: 0.92rem; font-weight: 700; color: var(--cp-fg2); font-variant-numeric: tabular-nums; }
.cp__empty { margin: 24px 12px; text-align: center; color: var(--cp-muted); }
.cp__empty[hidden] { display: none; }
@media (max-width: 600px) {
    /* Full screen on phones: keep the close button and list clear of the status bar, camera and home indicator. */
    .cp {
        width: 100vw; height: 100dvh; max-width: 100vw; border-radius: 0;
        padding: env(safe-area-inset-top, 0px) env(safe-area-inset-right, 0px) env(safe-area-inset-bottom, 0px) env(safe-area-inset-left, 0px);
    }
}
