[hidden] { display: none !important; }

.header-action { background: transparent; color: inherit; font-family: inherit; }
.header-action:focus-visible { outline: 3px solid var(--saffron); outline-offset: 3px; }
.browse-tools { display: flex; justify-content: space-between; align-items: end; gap: 1rem; margin-top: 1.4rem; }
.category-filter { display: grid; gap: .4rem; min-width: min(100%, 17rem); }
.category-filter label { color: var(--muted); font-size: .76rem; font-weight: 700; }
.category-filter select { min-height: 2.75rem; padding: .55rem .75rem; border: 1px solid var(--line); border-radius: 4px; color: var(--forest); background: var(--cream); }
.view-switch, .auth-tabs { display: inline-flex; gap: 0; border: 1px solid var(--forest); border-radius: 4px; overflow: hidden; }
.view-switch button, .auth-tabs button { min-height: 2.75rem; padding: .5rem 1.1rem; border: 0; background: transparent; color: var(--forest); font: inherit; font-size: .82rem; font-weight: 700; }
.view-switch button + button, .auth-tabs button + button { border-left: 1px solid var(--forest); }
.view-switch button.active, .auth-tabs button[aria-pressed="true"] { background: var(--forest); color: var(--cream); }
.view-switch button:focus-visible, .auth-tabs button:focus-visible { outline: 3px solid var(--saffron); outline-offset: -3px; }
.map-panel { border: 1px solid var(--line); background: var(--cream); }
#offers-map { width: 100%; height: clamp(360px, 50vw, 580px); }
.map-panel > p { margin: 0; padding: .75rem 1rem; color: var(--muted); font-size: .8rem; }
.map-detail { border: 0; background: transparent; padding: .4rem 0; color: #a4492f; text-decoration: underline; font-weight: 700; cursor: pointer; }
.offer-visual .offer-photo { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.offer-visual:has(.offer-photo)::after { display: none; }
.offer-body > p { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; }
.offer-actions small { max-width: 46%; line-height: 1.35; }
.dialog-photo { height: 180px; margin: -30px -30px 24px; overflow: hidden; display: grid; place-items: center; background: var(--sage); font-size: 4rem; }
.dialog-photo .offer-photo { width: 100%; height: 100%; object-fit: cover; }
.dialog-photo > span { display: block; }
.auth-prompt, .legacy-note { padding: .85rem 1rem; margin: 0 0 1.3rem; border-left: 3px solid var(--clay); background: var(--cream); color: var(--forest); font-size: .85rem; line-height: 1.5; }
.legacy-note { margin-bottom: 1.5rem; }
.location-button { display: inline-flex; align-items: center; gap: .5rem; padding: .6rem 0; border: 0; background: none; color: var(--clay); font-weight: 700; text-decoration: underline; text-underline-offset: .25rem; }
.field-help { margin: .3rem 0 0; color: var(--muted); font-size: .75rem; line-height: 1.5; }
.offer-map-panel { margin: .6rem 0; border: 1px solid var(--line); }
#offer-pick-map { width: 100%; height: 280px; }
.offer-map-panel p { margin: 0; padding: .6rem .75rem; color: var(--muted); font-size: .75rem; }
.photo-preview { display: block; width: min(100%, 250px); max-height: 180px; object-fit: cover; margin-top: .7rem; border: 1px solid var(--line); }
.account-dialog { max-width: min(460px, calc(100vw - 28px)); }
.account-dialog .auth-tabs { display: flex; width: 100%; margin: .6rem 0 1.4rem; }
.account-dialog .auth-tabs button { flex: 1; }
.account-dialog .form-field { margin-bottom: 1rem; }
.account-dialog .form-field label { display: block; margin-bottom: .45rem; font-size: .8rem; font-weight: 700; }
.account-dialog .form-field input { width: 100%; min-height: 2.7rem; padding: .7rem; border: 1px solid var(--line); border-radius: 4px; background: var(--cream); }
.account-dialog .button-outline { color: var(--forest); border-color: var(--forest); }
.account-dialog .button-outline:hover { color: var(--cream); background: var(--forest); }
.button:disabled { opacity: .6; cursor: wait; transform: none; }
.offer-dialog .dialog-details { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.offer-dialog .dialog-details div { overflow-wrap: anywhere; }
.offer-dialog .dialog-details div:nth-last-child(3) { grid-column: 1 / -1; }
.leaflet-container { font-family: 'Geologica', sans-serif; }

@media (max-width: 760px) {
  .browse-tools { align-items: stretch; flex-direction: column; }
  .category-filter { min-width: 100%; }
  .view-switch { align-self: flex-start; }
  .offer-dialog .dialog-details { grid-template-columns: 1fr; }
  .offer-dialog .dialog-details div:nth-last-child(3) { grid-column: auto; }
  .dialog-photo { margin: -30px -30px 20px; }
}
