*{box-sizing:border-box}
:root{--wine:#5b1737;--wine-soft:#f0e8ec;--ink:#18181b;--muted:#5d5d64;--line:#dedee3;--bg:#f7f7f8;--blue:#1d4ed8}
html,body{margin:0;height:100%;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}
body{display:flex;flex-direction:column;min-height:100dvh}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}
.top{min-height:54px;padding:8px 14px;background:var(--wine);color:#fff;display:flex;justify-content:space-between;align-items:center;gap:10px}.top>div{display:flex;gap:9px;align-items:baseline;min-width:0}.top strong{font-size:20px}.top span{opacity:.82;font-size:13px}.top small{font-size:10px;opacity:.72;white-space:nowrap}
.controls{padding:10px 12px;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 2px 8px rgba(0,0,0,.04);z-index:2}.control-grid{display:grid;gap:10px}.field label{font-weight:750;display:block;margin-bottom:6px;font-size:14px}.field select,.field input,.control-grid button{min-height:44px;border:1px solid #c8c8cf;border-radius:10px;background:#fff;padding:0 11px;font-size:15px}.field select,.field input{width:100%;min-width:0}.place-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.primary-button{background:var(--wine)!important;color:#fff!important;border-color:var(--wine)!important;font-weight:750}.secondary-button{font-weight:700;color:var(--wine)}.ghost-button{background:#fff;color:#444}.location-actions{display:grid;grid-template-columns:1fr auto;gap:7px;align-items:end}
.origin-bar{margin-top:9px;padding:8px 10px;border-radius:10px;background:#eef4ff;color:#173a78;font-size:13px;display:flex;align-items:center;gap:7px}.origin-bar[hidden]{display:none}.origin-dot{width:9px;height:9px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 3px rgba(29,78,216,.12)}.status{min-height:18px;margin:7px 0 0;font-size:13px;color:#4b5563}.privacy-note{margin:.28rem 0 0;color:#64748b;font-size:.76rem;line-height:1.35}
.place-candidates{margin-top:7px;border:1px solid var(--line);border-radius:10px;padding:6px;background:#fff;display:grid;gap:5px;max-height:210px;overflow:auto}.place-candidates[hidden]{display:none}.candidate-title,.candidate-empty{font-size:12px;color:#64748b;padding:5px}.candidate{border:0!important;background:#f7f7f8!important;text-align:left!important;min-height:38px!important;padding:7px 9px!important;border-radius:8px!important;color:#27272a}.candidate:hover{background:#eeeef1!important}.candidate-attribution{padding:4px 7px;color:#71717a}
main{flex:1;min-height:0;display:grid;grid-template-rows:minmax(270px,52vh) minmax(0,1fr)}#map{height:100%;width:100%;min-height:270px}.results-panel{overflow:auto;background:var(--bg)}.results{padding:10px}.secondary-results{padding-top:0}.card{background:#fff;border:1px solid #e0e0e4;border-radius:13px;padding:12px;margin-bottom:9px;box-shadow:0 1px 2px rgba(0,0,0,.02)}.card:not(.empty){cursor:pointer}.card h2{font-size:16px;margin:0 0 3px}.meta{font-size:13px;color:var(--muted);line-height:1.35}.address{margin-top:2px}.distance{font-weight:800;color:var(--wine)}.chips{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0}.chip{font-size:12px;background:var(--wine-soft);border-radius:999px;padding:4px 7px}.actions{display:flex;gap:7px;flex-wrap:wrap}.actions a{padding:8px 10px;border-radius:8px;background:#f1f1f3;color:#242428;text-decoration:none;font-size:13px;font-weight:650}.actions a.primary{background:var(--wine);color:#fff}.warning{margin-top:.45rem;font-size:.76rem;font-weight:700;color:#8a4b08}.secondary-heading{display:flex;flex-direction:column;gap:.25rem;padding:.65rem .2rem;color:#334155;font-size:.86rem}.secondary-heading span{font-size:.76rem;color:#64748b;font-weight:400}.secondary-card{border-style:dashed;cursor:default!important}.maplibregl-popup-content{border-radius:10px!important;padding:10px 12px!important;box-shadow:0 8px 28px rgba(0,0,0,.16)!important}.maplibregl-ctrl-attrib{font-size:10px!important}
@media(min-width:720px){.control-grid{grid-template-columns:minmax(220px,.75fr) minmax(320px,1fr) auto;align-items:end}.location-actions{grid-template-columns:auto auto}.field label{font-size:13px}}
@media(min-width:900px){main{grid-template-columns:minmax(0,1.65fr) minmax(340px,.72fr);grid-template-rows:1fr}.results-panel{border-left:1px solid var(--line)}.controls{padding-left:18px;padding-right:18px}.top{padding-left:18px;padding-right:18px}}
@media(max-width:480px){.place-row{grid-template-columns:1fr}.location-actions{grid-template-columns:1fr 1fr}.top small{display:none}.controls{padding:9px 10px}.card{padding:11px}}
