:root{font-family:Inter,"Noto Sans JP",system-ui,sans-serif;color:#14213d;background:#fffaf1}
*{box-sizing:border-box}body{margin:0}.shell{width:min(680px,100%);margin:auto;padding:42px 18px 70px}
.eyebrow{font-size:12px;letter-spacing:.16em;font-weight:800;color:#e75d4d}.lead{line-height:1.8;color:#596275}
h1{font-size:clamp(32px,8vw,48px);margin:.2em 0}.card,.result-card,.modal{background:#fff;border:1px solid #eee6da;border-radius:24px;padding:24px;box-shadow:0 12px 36px #493f3212}
h2{font-size:18px;margin:26px 0 12px}h2 span{font-size:12px;color:#89909e;font-weight:500}
.chips{display:flex;flex-wrap:wrap;gap:9px}.chips button{border:1px solid #dfe1e5;background:#fff;border-radius:999px;padding:10px 14px;font:inherit;cursor:pointer}
.chips button.selected{background:#14213d;color:#fff;border-color:#14213d}.primary,.secondary,.ghost{width:100%;border:0;border-radius:14px;padding:15px;font-size:16px;font-weight:800;cursor:pointer}
.primary{background:#ef6655;color:#fff;margin-top:28px}.secondary{background:#fff0ed;color:#c74739}.ghost{background:#f4f2ed;color:#14213d}
.privacy-note,.status{font-size:12px;color:#747b88;line-height:1.6}.status{color:#b3483b}.result-top{display:flex;justify-content:space-between;gap:12px}.result-top h2{font-size:28px;margin:4px 0}
.category{color:#e75d4d;font-weight:700}.rating{font-weight:800}.reason{background:#fff6e9;border-radius:14px;padding:14px;line-height:1.6}.map-link{display:block;margin:20px 0;color:#14213d;font-weight:700}
.actions{display:grid;gap:10px}.actions .primary{margin-top:0}.text-btn{border:0;background:transparent;padding:14px;color:#596275;cursor:pointer}
footer{text-align:center;padding-bottom:30px}dialog{border:0;background:transparent;width:min(600px,94vw)}dialog::backdrop{background:#14213d80}.modal{max-height:85vh;overflow:auto}
.place-visual{position:relative;margin:-1px -1px 22px;overflow:hidden;border-radius:24px 24px 16px 16px;background:#f3eee7;min-height:220px}.place-visual img{display:block;width:100%;height:260px;object-fit:cover}.photo-fallback{display:flex;align-items:center;justify-content:center;height:220px;font-size:76px;background:linear-gradient(135deg,#fff3e5,#f5eee6)}.photo-credit{position:absolute;right:10px;bottom:8px;background:rgba(255,255,255,.88);padding:4px 7px;border-radius:8px;font-size:10px;color:#52606d}.mini-map-wrap{margin:16px 0}.mini-map-label{font-size:13px;font-weight:700;color:#596579;margin:0 0 7px}.mini-map{display:block;width:100%;height:150px;object-fit:cover;border-radius:14px;border:1px solid #e7e0d8}.map-fallback{padding:14px;border-radius:12px;background:#f6f4f0;color:#6a7280;font-size:13px}.result-card{overflow:hidden}

.feedback-row{display:flex;align-items:center;gap:8px;margin:10px 0 18px;font-size:13px;color:#697180}
.feedback-btn{border:1px solid #e3ded6;background:#fff;border-radius:999px;padding:7px 10px;font-size:18px;line-height:1;cursor:pointer}
.feedback-btn.selected{background:#fff0ed;border-color:#ef6655}
.feedback-btn:disabled{opacity:.65;cursor:default}.feedback-row small{color:#697180}
@media(max-width:480px){.photo-grid{height:190px}.result-card{padding:18px}.result-top h2{font-size:24px}}

/* v0.5.1 result visual fixes */
.place-visual{width:100%;margin:-1px -1px 18px;overflow:hidden;border-radius:24px 24px 14px 14px;background:#f3eee7}
.photo-grid{display:grid !important;grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;grid-template-rows:170px !important;gap:4px !important;width:100%;height:170px !important}
.photo-tile{position:relative !important;margin:0 !important;width:auto !important;min-width:0 !important;height:170px !important;overflow:hidden !important;background:#f3eee7}
.photo-tile img{display:block;width:100% !important;height:170px !important;max-width:none !important;object-fit:cover !important}
.photo-fallback.compact{display:flex;align-items:center;justify-content:center;width:100%;height:170px !important;padding:8px !important;text-align:center;font-size:11px !important;line-height:1.35;font-weight:600;color:#8a837b;background:linear-gradient(135deg,#fff7ed,#f4eee7)}
.feedback-row{padding:2px 0 4px;gap:9px;font-size:12px}
.feedback-btn{min-width:36px;min-height:32px;padding:5px 9px;font-size:17px;box-shadow:0 1px 3px rgba(0,0,0,.05)}
@media(max-width:480px){
  .photo-grid{grid-template-rows:150px !important;height:150px !important}
  .photo-tile,.photo-tile img,.photo-fallback.compact{height:150px !important}
}

/* v0.5.2: eliminate the residual cream strip below the two photos */
.place-visual{height:170px !important;min-height:0 !important;margin:-1px -1px 18px !important;padding:0 !important;background:transparent !important;line-height:0}
.photo-grid{height:170px !important;min-height:170px !important;margin:0 !important;padding:0 !important;background:transparent !important;align-items:stretch}
.photo-tile{height:170px !important;min-height:170px !important;margin:0 !important;padding:0 !important;line-height:0}
.photo-tile img{height:170px !important;min-height:170px !important;vertical-align:top}
.photo-fallback.compact{height:170px !important;min-height:170px !important;box-sizing:border-box;line-height:1.35}
@media(max-width:480px){
 .place-visual,.photo-grid,.photo-tile,.photo-tile img,.photo-fallback.compact{height:150px !important;min-height:150px !important}
}

/* v0.5.8: public-release legal copy and Google Maps attribution */
.maps-attribution{font:500 12px/1.2 Arial,sans-serif;color:#5f6368;margin:0 0 8px;text-align:right}
.photo-credit a{color:inherit;text-decoration:underline}
.legal-modal h3{margin:24px 0 8px;color:#10264b}
.legal-modal p{line-height:1.75;color:#46536a}
.legal-modal a{color:#244d85}
.legal-updated,.legal-note{font-size:12px;color:#748095!important}
