.tv-location-picker-host { grid-column:1 / -1; min-width:0; }
.tv-location-picker { width:100%; min-width:0; margin-top:18px; font:inherit; color:#19324d; }
.tv-location-picker p { line-height:1.6; margin:10px 0; }
.tv-location-actions,.tv-location-directions { display:flex; flex-wrap:wrap; gap:10px; margin:12px 0; }
.tv-location-picker button { min-height:44px; max-width:100%; padding:10px 14px; border:1px solid #90adbf; border-radius:7px; color:#164c70; background:#fff; font:inherit; font-size:14px; cursor:pointer; }
.tv-location-picker .tv-location-locate,.tv-location-picker .tv-location-confirm { color:#fff; background:#0877ad; border-color:#0877ad; }
.tv-location-picker .tv-location-confirm.is-confirmed { color:#23603e; background:#eef8f1; border-color:#8fb69d; cursor:default; }
.tv-location-confirmation-feedback.is-confirmed,.tv-location-confirmation-feedback.has-error { margin-top:8px; }
.tv-location-confirmation-feedback p { margin:0; }
.tv-location-confirmation-line { display:flex; align-items:center; gap:6px; color:#23603e; font-size:14px; }
.tv-location-confirmation-check { font-weight:700; }
.tv-location-confirmation-help { color:#53627a; font-size:12px; overflow-wrap:anywhere; }
.tv-location-confirmation-feedback.has-error .tv-location-confirmation-line { color:#902b37; }
.tv-location-picker button:disabled { opacity:.6; cursor:default; }
.tv-location-picker button:focus-visible,.tv-location-picker input:focus-visible,.tv-location-picker a:focus-visible { outline:3px solid #075b9c; outline-offset:3px; }
.tv-location-map { width:100%; height:300px; border:1px solid #d3e0ea; border-radius:8px; overflow:hidden; background:#eaf2f8; }
.tv-location-map .maplibregl-ctrl-attrib { max-width:100%; }
.tv-location-map .maplibregl-ctrl-group button { min-width:44px; width:44px; height:44px; padding:0; border:0; border-radius:0; }
.tv-location-coordinates { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:14px 0; }
.tv-location-coordinates label { display:block; margin-bottom:6px; font-size:13px; }
#app .tv-location-coordinates input { width:100%!important; min-width:0; height:44px; border:1px solid #a6bacb; border-radius:5px; padding:9px; font:inherit; }
.tv-location-picker .tv-location-pin { width:36px; height:36px; min-height:36px; padding:0; border:3px solid #fff; border-radius:50%; background:#0877ad; color:#fff; box-shadow:0 2px 8px #17314f66; }
.tv-location-warning { padding:10px 14px; border-radius:6px; background:#fff6d7; color:#694c09; }
.tv-location-error { padding:10px 14px; border-radius:6px; background:#fff0f0; color:#902b37; }
.tv-location-results { padding:0; list-style:none; }
.tv-location-result-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:6px 8px; margin:6px 0; }
.tv-location-picker .tv-location-result-select { display:flex; align-items:center; gap:8px; min-width:0; width:100%; padding:8px 10px; text-align:left; }
.tv-location-result-address { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tv-location-result-badge { flex:none; font-size:11px; line-height:16px; padding:1px 6px; border-radius:4px; background:#eef2f5; color:#43566a; white-space:nowrap; }
.tv-location-picker .tv-location-result-info { padding:6px 8px; font-size:12px; border-color:transparent; background:transparent; }
.tv-location-result-select[aria-pressed="true"] { border-color:#0877ad; background:#f0f7fb; }
.tv-location-result-details { grid-column:1 / -1; padding:10px 12px; border:1px solid #d3e0ea; border-radius:6px; background:#f4f8fb; overflow-wrap:anywhere; }
.tv-location-details-address { font-weight:600; font-size:13px; }
.tv-location-picker .tv-location-precision,.tv-location-picker .tv-location-match-summary { font-size:13px; margin:4px 0; }
.tv-location-issues { margin:8px 0 0; padding-left:20px; font-size:13px; }
.tv-location-review-note,.tv-location-search-context,.tv-location-retry-hint { font-size:13px; overflow-wrap:anywhere; }
.tv-location-picker [hidden] { display:none!important; }
.tv-location-selection { font-weight:600; overflow-wrap:anywhere; }
.tv-location-attribution { font-size:11px; }
.tv-location-attribution a { color:#155a83; text-decoration:underline; }
.tv-location-panel[hidden],.tv-location-warning[hidden] { display:none!important; }
@media(max-width:575.98px) { .tv-location-map { height:260px; } .tv-location-coordinates { grid-template-columns:minmax(0,1fr); } .tv-location-actions>button { flex:1 1 100%; } .tv-location-directions>button { flex:1 1 40%; } }
@media(max-width:575.98px) { .tv-location-picker .tv-location-result-select { flex-direction:column; align-items:flex-start; gap:2px; } .tv-location-result-address { flex:none; width:100%; } }
