:root{
  --yellow:#FCD404;
  --coral:#FB6F74;
  --blue:#8BCAFC;
  --green:#04B07B;
  --text:#111827;
  --muted:#6b7280;
  --card:#ffffff;
  --border:#e5e7eb;
  --bg:#f8fafc;
}

*{box-sizing:border-box}
body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background:var(--bg);
  color:var(--text);
}
.container{max-width:960px;margin:0 auto;padding:16px}
.topbar{
  position:sticky;top:0;z-index:50;
  background:linear-gradient(90deg,var(--yellow),var(--coral));
  padding:14px 16px;
  box-shadow:0 2px 10px rgba(0,0,0,.08);
}
.brand{font-weight:900;letter-spacing:.2px}
.badge{
  display:inline-block;
  background:var(--green);
  color:white;
  font-weight:700;
  padding:4px 8px;
  border-radius:999px;
  font-size:12px;
}
.card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:18px;
  padding:14px;
  box-shadow:0 1px 8px rgba(0,0,0,.04);
  margin:12px 0;
}
.row{display:flex;gap:10px;align-items:center;justify-content:space-between}
.small{color:var(--muted);font-size:13px}
.btn{
  appearance:none;border:0;
  border-radius:14px;
  padding:12px 14px;
  font-weight:800;
  cursor:pointer;
}
.btn-primary{background:var(--green);color:white}
.btn-secondary{background:var(--blue);color:#003}
.input{
  width:100%;
  padding:12px 12px;
  border:1px solid var(--border);
  border-radius:14px;
  background:white;
  font-size:16px;
}
.grid2{display:grid;grid-template-columns:1fr;gap:12px}
@media (min-width:760px){ .grid2{grid-template-columns:1fr 1fr} }
a{color:inherit;text-decoration:none}
a.link{color:#0b5; font-weight:800}

/* Shared usability improvements */
.public-nav{display:flex;gap:16px;flex-wrap:wrap;margin-top:12px;font-size:14px;font-weight:750}
.public-nav a:hover,.breadcrumbs a:hover{text-decoration:underline}
.breadcrumbs{font-size:14px;color:#475569;margin:16px 0;overflow-wrap:anywhere}
.answer-section h3{font-size:18px;margin:22px 0 8px}
.answer-section p,.guide-copy p{max-width:75ch}
.community-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:18px;margin-bottom:24px}
.community-link{padding:24px;display:block}
.community-link h2{font-size:22px;margin-bottom:8px}
.community-link:hover{border-color:var(--green)}
.guide-card{overflow:hidden;padding:0;margin:0}
.guide-card h3{margin:0;font-size:22px}
.guide-copy{padding:0 16px 20px}
.public-footer{border-top:1px solid var(--border);margin-top:36px;padding-top:24px;padding-bottom:32px}
.public-footer .small{margin-top:16px}
.auth-page{max-width:520px;padding-top:36px}
.auth-page .card{padding:24px}
.auth-title{font-size:30px;line-height:1.2;margin:20px 0 10px}
.auth-gap{height:16px}
.remember-label{display:flex;align-items:center;gap:10px;margin:18px 0 6px;font-size:14px}
.remember-label input{width:18px;height:18px;accent-color:var(--green)}
.magic-section{border-top:1px solid var(--border);padding-top:22px;margin-top:26px}
.magic-section h2{font-size:20px;margin-bottom:8px}
.auth-full{width:100%;margin-top:16px}
.auth-error,.auth-notice{padding:12px 14px;border-radius:12px;font-size:14px}
.auth-error{background:#fff1f2;color:#9f1239}
.auth-notice{background:#ecfdf5;color:#065f46}
.photo-button{border:0;background:transparent;padding:0;cursor:pointer;display:block;border-radius:10px}
.hero .photo-button{width:100%}
[hidden]{display:none!important}
:root{--green:#08734f}
body{line-height:1.5}
h1,h2,h3,p{margin-top:0}
label{display:block;font-size:14px;font-weight:700;margin-bottom:6px}
.btn{font:inherit;font-weight:750;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.btn:disabled{opacity:.65;cursor:wait}
:focus-visible{outline:3px solid #175ea8;outline-offset:4px}
.search-card{padding:clamp(20px,5vw,44px);background:linear-gradient(140deg,#fff8e3,#fff)}
.eyebrow{color:#805817;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.search-card h1{font-size:clamp(30px,5vw,46px);line-height:1.12;margin:12px 0 16px;letter-spacing:-.035em}
.search-intro{color:#53606d;max-width:520px}
.search-fields{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) auto;gap:12px;align-items:end;margin-top:24px}
.location-button{margin:16px 8px 0 0}
.search-status{margin:14px 0 0;color:#374151;min-height:24px}
.results-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr))!important}
.place-card{display:block;overflow:hidden;padding:0;margin:0;height:100%;transition:transform .15s}
.place-card:hover{transform:translateY(-3px)}
.place-photo{width:100%;height:180px;object-fit:cover;display:block;background:#fff3ce}
.place-content{padding:16px}
.place-name{font-size:18px;margin:0 0 4px}
.place-location,.distance{font-size:14px;color:#53606d;margin:0}
.place-meta{display:flex;gap:8px;justify-content:space-between;flex-wrap:wrap;margin:14px 0 10px}
.rating{font-size:13px;font-weight:700}
.badge-neutral{background:#475569}
.section-title{margin-bottom:12px}
.results-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:24px 0 12px}
.results-toolbar h2{font-size:20px;margin:0}
.empty-state{padding:24px}
.place-title{font-size:28px;line-height:1.2;margin-bottom:10px}
.place-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.lightbox-close{position:absolute;top:20px;right:20px;background:white;color:#111827}
.hero img{max-height:550px;object-fit:cover}
@media(max-width:600px){.search-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.search-fields>.btn{grid-column:1/-1}.topbar .row{flex-wrap:wrap}.row{min-width:0}.location-button{margin-bottom:8px}.rating-copy{min-width:0!important}.fun-score-label{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
