/* Small control refinements for the current v218 UI. No runtime dependencies.
   Remove this stylesheet link to roll back without touching application code. */
:is(.icon-btn,.tabbar button,.home-link,.contact-row,.search-role button,.search-more,.shared-tabs button):focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}
.search-field:focus-within {
  border-color: var(--accent);
  box-shadow: 0 0 0 2px rgba(var(--accent-rgb),.14), inset 0 1px 0 var(--glass-highlight);
}
.search-role button,.shared-tabs button {
  transition: color .14s ease, background-color .14s ease, opacity .12s ease;
}
.search-more:disabled {
  cursor: wait;
  opacity: .65;
}
.search-more:disabled:active {
  transform: none;
}
@media (max-width:600px) {
  /* Keep targets in normal layout so neighbouring controls cannot overlap. */
  .header-actions { gap: 6px; flex-shrink: 0; }
  .header-actions .icon-btn { width:44px; height:44px; flex:none; }
  .header-actions .icon-btn svg { width:18px; height:18px; }
  .app[data-route="home"] .header-actions {
    align-self:center;
    flex-direction:column;
    gap:0;
    margin-bottom:-7px;
  }
  .app[data-route="home"] .header-actions .icon-btn {
    border:0;
    background:transparent;
    color:var(--muted);
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
    box-shadow:none;
  }
  .app[data-route="home"] .header-actions .icon-btn svg {
    width:17px;
    height:17px;
    stroke-width:1.45;
  }
  .app[data-route="home"] .header-actions .icon-btn:active {
    opacity:.55;
    transform:scale(.9);
  }
  .search-role button,.shared-tabs button,.search-more { min-height:44px; }
  .tabbar { height:60px; padding:6px; }
  .tabbar button { min-height:44px; }
  .tabbar button.active {
    color:var(--accent);
    box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.32);
  }
}
@media (prefers-reduced-motion:reduce) {
  .search-role button,.shared-tabs button { transition:none; }
}
