/* Shared interaction fixes; retain the existing teal design system. */
.search-box { position: relative; }
.place-search-results { position: absolute; top: calc(100% + 8px); left: 0; right: 0; max-height: min(55vh, 430px); overflow-y: auto; background: #fff; color: #19352e; border: 1px solid #cbded7; border-radius: 12px; box-shadow: 0 12px 32px #16362d24; z-index: 1000; }
.place-search-results[hidden] { display: none; }
.place-search-results p { padding: 12px 14px; margin: 0; font-size: 13px; }
.place-search-results button { display: block; width: 100%; text-align: left; background: #fff; border: 0; border-top: 1px solid #eaf0ed; padding: 12px 14px; cursor: pointer; }
.place-search-results strong, .place-search-results span { display: block; }
.place-search-results strong { color: #19352e; font-size: 14px; }
.place-search-results span { color: #576b63; font-size: 12px; margin-top: 4px; line-height: 1.5; }
.place-search-results button:hover, .place-search-results button:focus-visible { background: #ecf8f2; }
.search-caption { background: #f5f9f6; }
.location-notice { padding: 10px 14px; margin: 0 14px 8px; border-radius: 8px; background: #f0f6f3; color: #456359; font-size: 12px; line-height: 1.6; }
.card-select { background: none; border: 0; padding: 0; color: inherit; text-align: left; font: inherit; cursor: pointer; }
.card-select:focus-visible, button:focus-visible, a:focus-visible, summary:focus-visible { outline: 2px solid #087b60; outline-offset: 3px; }
.empty button, .pill-cancel, .pill-detail-loading button { background: #fff; border: 1px solid #a8c8bb; color: #116b53; border-radius: 8px; padding: 9px 13px; min-height: 40px; cursor: pointer; font: inherit; }
.empty p { margin: 0 0 12px; }
.pill-result-note { margin: 0 0 14px; padding: 12px 14px; background: #edf7f1; color: #315e4d; border-radius: 10px; font-size: 13px; line-height: 1.7; }
.pill-results-panel { scroll-margin-top: 84px; }
.pill-answer-details { margin-top: 18px; border-top: 1px solid #dce8e2; padding-top: 12px; }
.pill-answer-details summary { cursor: pointer; color: #386553; font-size: 14px; padding: 8px 0; }
.pill-answer-details .pill-answer { margin-top: 12px; }
.pill-rank { display: block; font-size: 11px; color: #187158; font-style: normal; margin-bottom: 5px; }
.pill-candidate .pill-detail-link { color: #087754; font-weight: 600; margin-top: 9px; }
.pill-image-empty { display: grid; place-items: center; min-height: 80px; background: #f3f6f4; border-radius: 8px; color: #718177; font-size: 11px; }
.pill-progress-fill.is-indeterminate { width: 35%; animation: phar-wait 1.6s ease-in-out infinite alternate; }
.pill-progress-head { align-items: start; gap: 12px; }
.pill-progress-head strong { line-height: 1.6; }
.pill-progress-head span { white-space: nowrap; }
.pill-cancel { margin-top: 12px; }
.pill-detail-loading { font-size: 13px; line-height: 1.7; color: #52665c; padding: 12px 0; }
@keyframes phar-wait { from { transform: translateX(0); } to { transform: translateX(180%); } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; } .pill-progress-fill.is-indeterminate { animation: none; width: 100%; opacity: .5; } }
@media (max-width: 640px) { .place-search-results { max-height: 45vh; } .pill-candidate { gap: 12px; } }
