/* v1.1.128 — Location discovery owner + Phase 71 interaction states. Loaded only on location detail pages. */
.ttv-location-discovery{background:var(--ttv-surface-muted);border-color:#dbe7ef;box-shadow:none}
.ttv-location-page.ttv-location-page--province :where(#dia-diem),.ttv-location-page.ttv-location-page--commune :where(#gan-day){scroll-margin-top:138px}
.ttv-location-discovery__head{align-items:flex-start}
.ttv-location-discovery__head>div{min-width:0}
.ttv-location-discovery__head>div>p{max-width:760px}
.ttv-location-discovery__count{flex:0 0 auto;min-height:28px;padding:3px var(--ttv-space-2);border:1px solid var(--ttv-line);border-radius:var(--ttv-radius-pill);background:var(--ttv-surface-soft);display:inline-flex;align-items:center;gap:var(--ttv-space);color:var(--ttv-muted);font-size:var(--ttv-text-xs);white-space:nowrap}
.ttv-location-discovery__count b{color:var(--ttv-ink);font-size:var(--ttv-text-compact)}
.ttv-location-discovery__parent{flex:0 0 auto;min-height:44px;padding:0 var(--ttv-space-2);border:1px solid var(--ttv-line);border-radius:var(--ttv-radius-xs);display:inline-flex;align-items:center;gap:2px;color:var(--ttv-blue-700);font-size:var(--ttv-text-xs);font-weight:700;white-space:nowrap}
.ttv-location-discovery__parent:hover,.ttv-location-discovery__parent:focus-visible{background:var(--ttv-location-hover);border-color:var(--ttv-line-focus)}
.ttv-location-discovery__parent:active{background:var(--ttv-blue-soft)}
.ttv-location-discovery__parent .ttv-icon{width:13px;height:13px}

.ttv-location-discovery__search{position:relative;min-height:48px;margin:10px 0 0;border:1px solid #bdd9ec;border-radius:var(--ttv-radius-sm);background:#f9fcff;display:grid;grid-template-columns:20px minmax(0,1fr) 44px;align-items:center;gap:var(--ttv-space-2);padding:0 7px 0 var(--ttv-space-3);color:var(--ttv-muted)}
.ttv-location-discovery__search:focus-within{border-color:var(--ttv-blue);box-shadow:0 0 0 3px rgba(30,155,254,.10)}
.ttv-location-discovery__search>.ttv-icon{width:17px;height:17px;color:var(--ttv-blue)}
.ttv-location-discovery__search input{width:100%;height:46px;min-width:0;border:0;outline:0;background:transparent;color:var(--ttv-ink);font-size:var(--ttv-text-sm)}
.ttv-location-discovery__search input::placeholder{color:var(--ttv-muted)}
.ttv-location-discovery__search button{width:44px;height:44px;border:0;border-radius:var(--ttv-radius-xs);background:var(--ttv-blue-50);color:var(--ttv-blue-700);cursor:pointer;display:grid;place-items:center}
.ttv-location-discovery__search button:hover,.ttv-location-discovery__search button:focus-visible{background:var(--ttv-blue-soft);color:var(--ttv-blue-800)}
.ttv-location-discovery__search button:active{background:#cfeaff}
.ttv-location-discovery__search button .ttv-icon{width:16px;height:16px}
.ttv-location-discovery__search>.ttv-location-suggestions{left:0;right:0;top:calc(100% + 6px);grid-column:1/-1;color:var(--ttv-ink)}
.ttv-location-discovery__search-note{margin:7px 0 13px;display:flex;align-items:flex-start;flex-wrap:wrap;gap:5px 10px;color:var(--ttv-muted);font-size:var(--ttv-text-xs);line-height:1.45}
.ttv-location-discovery__search-note>.ttv-icon{width:13px;height:13px;margin-top:2px;flex:0 0 auto;color:var(--ttv-icon-muted)}
.ttv-location-discovery__search-note strong{color:var(--ttv-ink-2)}
.ttv-location-discovery__search-note a{margin-left:auto;color:var(--ttv-link);font-weight:700;text-decoration:none}
.ttv-location-discovery__search-note a:hover{text-decoration:underline}

.ttv-location-discovery__subhead{margin:13px 0 5px;display:flex;align-items:center;justify-content:space-between;gap:var(--ttv-space-3)}
.ttv-location-discovery__subhead h3{margin:0;font-size:var(--ttv-text-sm);line-height:1.35}
.ttv-location-discovery__subhead>span{color:var(--ttv-muted);font-size:var(--ttv-text-xs)}
.ttv-location-discovery__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--ttv-space-2)}
.ttv-location-discovery__grid>a{min-width:0;min-height:66px;padding:10px;border:1px solid var(--ttv-line-section);border-radius:var(--ttv-radius-sm);background:var(--ttv-surface);display:grid;grid-template-columns:minmax(0,1fr) 13px;align-items:center;gap:5px;color:var(--ttv-ink)}
.ttv-location-discovery__grid>a:hover,.ttv-location-discovery__grid>a:focus-visible{background:var(--ttv-location-hover);border-color:var(--ttv-line-focus)}
.ttv-location-discovery__grid>a:active{background:var(--ttv-blue-soft)}
.ttv-location-discovery__grid>a>span{min-width:0;display:grid;grid-template-columns:18px minmax(0,1fr);column-gap:5px;align-items:center}
.ttv-location-discovery__grid>a>span>.ttv-icon{grid-row:1/3;width:14px;height:14px;color:var(--ttv-blue)}
.ttv-location-discovery__grid strong,.ttv-location-discovery__grid small{display:block;grid-column:2;min-width:0;overflow-wrap:anywhere}
.ttv-location-discovery__grid strong{grid-row:1;font-size:var(--ttv-text-sm);line-height:1.3}
.ttv-location-discovery__grid small{grid-row:2;margin-top:1px;color:var(--ttv-muted);font-size:var(--ttv-text-xs);line-height:1.3}
.ttv-location-discovery__grid>a>.ttv-icon{width:12px;height:12px;color:#90a5b8}
.ttv-location-discovery__grid--nearby{grid-template-columns:repeat(3,minmax(0,1fr))}

.ttv-location-discovery__more{margin-top:6px;border-top:1px solid var(--ttv-line-soft)}
.ttv-location-discovery__more>summary{min-height:44px;padding:6px 2px;display:flex;align-items:center;justify-content:flex-start;gap:3px;list-style:none;cursor:pointer;color:var(--ttv-blue-700);font-size:var(--ttv-text-xs);font-weight:700}
.ttv-location-discovery__more>summary::-webkit-details-marker{display:none}
.ttv-location-discovery__more>summary .ttv-icon{width:14px;height:14px;transition:transform .16s ease}
.ttv-location-discovery__more[open]>summary .ttv-icon{transform:rotate(90deg)}
.ttv-location-discovery__more>.ttv-location-discovery__grid{padding:2px 0 var(--ttv-space)}
.ttv-location-discovery__more--bridges{margin-top:var(--ttv-space-2)}

.ttv-location-discovery__region{margin-top:var(--ttv-space-3);padding:0 var(--ttv-space-3);border:1px solid #dde7ee;border-radius:var(--ttv-radius-sm);background:#fbfdff}
.ttv-location-discovery__region>summary{min-height:48px;padding:7px 2px;display:grid;grid-template-columns:minmax(0,1fr) 15px;align-items:center;gap:var(--ttv-space-2);list-style:none;cursor:pointer;color:var(--ttv-ink)}
.ttv-location-discovery__region>summary::-webkit-details-marker{display:none}
.ttv-location-discovery__region>summary>span{min-width:0;display:grid;grid-template-columns:18px minmax(0,1fr);grid-template-rows:auto auto;column-gap:6px;align-items:center}
.ttv-location-discovery__region>summary>span>.ttv-icon{grid-row:1/3;width:16px;height:16px;color:var(--ttv-blue)}
.ttv-location-discovery__region>summary strong{grid-column:2;grid-row:1;min-width:0;font-size:var(--ttv-text-sm);overflow-wrap:anywhere}
.ttv-location-discovery__region>summary small{grid-column:2;grid-row:2;min-width:0;color:var(--ttv-muted);font-size:var(--ttv-text-xs);overflow-wrap:anywhere}
.ttv-location-discovery__region>summary>.ttv-icon{width:14px;height:14px;color:#8fa6b9;transition:transform .16s ease}
.ttv-location-discovery__region[open]>summary>.ttv-icon{transform:rotate(90deg)}
.ttv-location-discovery__region-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ttv-space);padding:1px 0 5px}
.ttv-location-discovery__region-grid>a{min-height:58px;padding:9px;border-radius:var(--ttv-radius-xs);background:var(--ttv-surface);display:grid;grid-template-columns:17px minmax(0,1fr) 12px;align-items:center;gap:5px}
.ttv-location-discovery__region-grid>a:hover,.ttv-location-discovery__region-grid>a:focus-visible{background:var(--ttv-location-hover)}
.ttv-location-discovery__region-grid>a:active{background:var(--ttv-blue-soft)}
.ttv-location-discovery__region-grid>a>.ttv-icon:first-child{grid-column:1;grid-row:1;width:14px;height:14px;color:var(--ttv-blue)}
.ttv-location-discovery__region-grid>a>.ttv-icon:last-child{grid-column:3;grid-row:1;width:12px;height:12px;color:#90a5b8}
.ttv-location-discovery__region-grid>a>span{grid-column:2;grid-row:1;min-width:0;overflow-wrap:anywhere}
.ttv-location-discovery__region-grid strong,.ttv-location-discovery__region-grid small{display:block}
.ttv-location-discovery__region-grid strong{font-size:var(--ttv-text-sm);line-height:1.3}
.ttv-location-discovery__region-grid small{margin-top:1px;color:var(--ttv-muted);font-size:var(--ttv-text-xs);line-height:1.3}
.ttv-location-discovery__all{min-height:44px;padding:3px 2px;display:inline-flex;align-items:center;gap:2px;color:var(--ttv-blue-700);font-size:var(--ttv-text-xs);font-weight:700}
.ttv-location-discovery__all:hover,.ttv-location-discovery__all:focus-visible{color:var(--ttv-blue-800);text-decoration:underline;text-underline-offset:3px}
.ttv-location-discovery__all:active{color:var(--ttv-blue-700)}
.ttv-location-discovery__all .ttv-icon{width:13px;height:13px}
.ttv-location-discovery__empty{margin-top:var(--ttv-space-3)}
.ttv-location-discovery__empty>a{margin-left:auto;white-space:normal;text-align:left}

@media (max-width:980px){
  .ttv-location-discovery__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ttv-location-discovery__grid--nearby{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ttv-location-discovery__region-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .ttv-location-discovery__head{display:grid;gap:7px}
  .ttv-location-discovery__count,.ttv-location-discovery__parent{justify-self:start}
  .ttv-location-discovery__search{margin-top:var(--ttv-space-2)}
  .ttv-location-discovery__search input{font-size:var(--ttv-text-sm)}
  
  .ttv-location-discovery__search-note{margin-bottom:11px}
  .ttv-location-discovery__subhead{margin-top:11px}
  .ttv-location-discovery__grid,.ttv-location-discovery__grid--nearby,.ttv-location-discovery__region-grid{grid-template-columns:1fr}
  .ttv-location-discovery__grid>a{min-height:58px;padding:9px 10px}
  .ttv-location-discovery__region-grid>a{min-height:56px;padding:var(--ttv-space-2) 10px}
  .ttv-location-discovery__empty{align-items:flex-start}
  .ttv-location-discovery__empty>a{margin-left:0;margin-top:var(--ttv-space-2)}
}

@media (max-width:360px){
  .ttv-location-discovery__search{grid-template-columns:18px minmax(0,1fr) 42px;padding-left:10px;gap:6px}
  .ttv-location-discovery__subhead{align-items:flex-start;flex-direction:column;gap:2px}
  .ttv-location-discovery__region{padding-inline:9px}
}

/* Phase 76 — mobile suggestion list stays inside the visual viewport/IME space. */
@media (max-width:640px){
  
  .ttv-location-discovery__region>summary{touch-action:manipulation}
}

/* v1.1.171 — Phase 114 IME-safe autocomplete height. */
@media(max-width:640px){
  .ttv-location-discovery__search>.ttv-location-suggestions{top:calc(100% + 5px);
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;max-block-size:max(140px,min(320px,calc(var(--ttv-visual-height,100dvh) - 230px)));}
}

/* Phase 3S: real commune/ward directory and time-intent navigation. */
/* Phase 3Y: one consistent section pattern; no status/debug counters in the public hero. */
.ttv-commune-overview{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr);gap:var(--ttv-space-6);align-items:center;margin-bottom:var(--ttv-space-4);padding:var(--ttv-space-6);border-radius:var(--ttv-radius)}
.ttv-commune-overview h2{margin:var(--ttv-space-2) 0;font-size:var(--ttv-title-section);line-height:1.3}
.ttv-commune-overview p{margin:var(--ttv-space-2) 0 0;color:var(--ttv-text-subtle);font-size:var(--ttv-text-sm);line-height:1.65}
.ttv-commune-overview__notice{font-size:var(--ttv-text-sm)}
.ttv-commune-overview__steps{list-style:none;margin:0;padding:var(--ttv-space-4);display:grid;gap:var(--ttv-space-3);border:1px solid var(--ttv-line-soft);border-radius:var(--ttv-radius-sm);background:var(--ttv-surface-soft)}
.ttv-commune-overview__steps li{display:flex;gap:var(--ttv-space-3);align-items:center;color:var(--ttv-ink);font-size:var(--ttv-text-sm)}
.ttv-commune-overview__steps strong{color:var(--ttv-blue-700);font-size:var(--ttv-text-compact);font-variant-numeric:tabular-nums}
.ttv-location-weather-card__localities{font-size:var(--ttv-text-xs);color:var(--ttv-text-subtle)}
.ttv-commune-catalog__count{font-size:var(--ttv-text-sm);font-weight:700;color:var(--ttv-ink-2)}
.ttv-commune-catalog__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ttv-space-3);max-height:680px;overflow:auto;scrollbar-gutter:stable}
.ttv-commune-catalog__item{display:flex;flex-direction:column;min-width:0;gap:var(--ttv-space-2);padding:var(--ttv-space-3);border:1px solid var(--ttv-line);border-radius:var(--ttv-radius-sm);background:var(--ttv-surface)}
.ttv-commune-catalog__item a{font-size:var(--ttv-text-sm);color:var(--ttv-blue-700);text-decoration:none}
.ttv-commune-catalog__item a:hover,.ttv-commune-catalog__item a:focus-visible{text-decoration:underline}
.ttv-commune-catalog__item span,.ttv-commune-catalog__source,.ttv-commune-catalog__empty{font-size:var(--ttv-text-xs);color:var(--ttv-text-subtle);line-height:1.5}
.ttv-commune-catalog__source{margin:var(--ttv-space-3) 0 0}
@media(max-width:768px){.ttv-commune-overview{grid-template-columns:1fr;padding:var(--ttv-space-4)}.ttv-commune-catalog__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:430px){.ttv-commune-catalog__grid{grid-template-columns:1fr}}
