/* Country > state > city picker */
.geo { display: grid; gap: var(--s-4, 16px); }
.geo-field[hidden], .geo-note[hidden], .geo-list[hidden] { display: none; }
.geo-cb { position: relative; }
.geo-cb .input { padding-right: 38px; text-overflow: ellipsis; }
.geo-caret { position: absolute; right: 14px; top: 50%; width: 8px; height: 8px; margin-top: -6px; border-right: 2px solid var(--muted, #8a8a99); border-bottom: 2px solid var(--muted, #8a8a99); transform: rotate(45deg); pointer-events: none; }
.geo-cb[data-busy] .geo-caret { border: 2px solid var(--line, #ddd); border-top-color: var(--brand, #6C4BFF); border-radius: 50%; transform: none; margin-top: -8px; width: 14px; height: 14px; animation: geo-spin .7s linear infinite; }
@keyframes geo-spin { to { transform: rotate(360deg); } }
.geo-list { position: absolute; z-index: 40; left: 0; right: 0; top: calc(100% + 6px); max-height: 280px; overflow-y: auto; margin: 0; padding: 6px; list-style: none; background: var(--surface, #fff); border: 1px solid var(--line, #e6e6ee); border-radius: var(--r-md, 12px); box-shadow: 0 12px 32px rgba(20, 20, 40, .14); overscroll-behavior: contain; }
.geo-list li { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 8px; cursor: pointer; line-height: 1.25; }
.geo-list li[aria-selected="true"], .geo-list li:hover { background: var(--surface-2, #f3f2fb); }
.geo-list li.is-current { font-weight: 600; }
.geo-list .geo-flag { font-size: 1.15em; width: 1.4em; text-align: center; }
.geo-list .geo-empty { cursor: default; color: var(--muted, #8a8a99); }
.geo-list .geo-empty:hover { background: none; }
@media (max-width: 640px) { .geo-list { max-height: 240px; } .geo-list li { padding: 12px; } }
.geo-loader[hidden] { display: none; }
.geo-spin { display: inline-block; width: 14px; height: 14px; vertical-align: -2px; border: 2px solid var(--line, #ddd); border-top-color: var(--brand, #6C4BFF); border-radius: 50%; animation: geo-spin .7s linear infinite; }
.geo[data-loading] .geo-field { display: none; }
