:root{
  --bg:#f3f6fb;--card:#fff;--text:#152033;--muted:#718096;--line:#e3e9f2;
  --primary:#0f5bd8;--primary2:#0a46a7;--ok:#0f8b5f;--warn:#b56a00;--bad:#b32929;
  --shadow:0 8px 26px rgba(30,55,90,.08);--radius:20px
}
*{box-sizing:border-box}
html{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans KR",sans-serif}
body{margin:0;min-height:100vh}
button,input,select{font:inherit}
button{cursor:pointer}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:14px max(18px,calc((100vw - 980px)/2));background:rgba(255,255,255,.93);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.brand{display:flex;gap:10px;align-items:center}.brand .logo{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:var(--primary);color:white;font-weight:900}
.brand strong{display:block;font-size:17px}.brand strong small{font-size:11px;color:var(--primary)}.brand span{display:block;color:var(--muted);font-size:11px;margin-top:2px}
.icon-btn{border:0;background:#edf3fd;border-radius:12px;width:42px;height:42px}
main{width:min(980px,calc(100% - 28px));margin:24px auto 60px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.hero{padding:28px}.eyebrow{color:var(--primary);font-weight:800;font-size:13px;margin-bottom:10px}h1{font-size:clamp(27px,5vw,40px);line-height:1.18;margin:0 0 12px;letter-spacing:-1.2px}h1 em{font-style:normal;color:var(--primary)}.hero>p{color:var(--muted);margin:0 0 24px}.hero>p b{color:#44546b}
.field-label{display:block;font-weight:750;font-size:13px;margin:0 0 8px}.address-row{display:grid;grid-template-columns:1fr auto;gap:8px}
input,select{width:100%;border:1px solid #cfd8e7;background:white;border-radius:13px;padding:14px 13px;outline:none}input:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(15,91,216,.1)}
.primary,.secondary{border:0;border-radius:13px;padding:13px 18px;font-weight:800}.primary{background:var(--primary);color:#fff}.primary:hover{background:var(--primary2)}.secondary{background:#edf3fd;color:var(--primary)}
.quick-examples{display:flex;gap:7px;margin-top:8px;flex-wrap:wrap}.quick-examples button,.history-list button{border:1px solid var(--line);background:#f8fafd;color:#53647c;border-radius:999px;padding:6px 10px;font-size:11px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.options-row{display:flex;gap:18px;flex-wrap:wrap;margin-top:15px}.check{display:flex;align-items:center;gap:7px;font-size:12px;color:#52647e}.check input{width:17px;height:17px;margin:0}
.helper{margin-top:12px;padding:10px 12px;border-radius:12px;background:#fff5e5;color:var(--warn);font-size:13px}
.status{margin:16px 0;padding:14px 16px;border-radius:15px;background:#eaf2ff;color:#234d8f;font-weight:700}.status.error{background:#fff0f0;color:var(--bad)}
.history{padding:14px 16px;margin:12px 0}.history-head{display:flex;align-items:center;justify-content:space-between}.history-head strong{font-size:12px}.history-head button{border:0;background:transparent;color:var(--muted);font-size:11px}.history-list{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}
.candidates{padding:18px;margin:16px 0}.candidates p{color:var(--muted);font-size:12px;margin:4px 0 12px}.candidate-list{display:grid;gap:8px}.candidate{border:1px solid var(--line);border-radius:14px;background:#fbfcff;padding:12px;text-align:left}.candidate b{display:block}.candidate span{display:block;color:var(--muted);font-size:11px;margin-top:3px}.candidate:hover{border-color:var(--primary);background:#f4f8ff}
.resolved{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;margin:16px 0;gap:12px}.resolved .mini,.area-filter .mini{display:block;color:var(--muted);font-size:11px}.resolved strong{display:block;margin:4px 0}.resolved small{display:block;color:var(--muted);margin-top:2px}.resolved-actions{display:flex;gap:7px;flex-wrap:wrap}
.area-filter{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;margin:12px 0;gap:14px}.area-filter strong{display:block;margin-top:3px}.area-filter select{width:auto;min-width:180px}
.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0}.stat{padding:18px}.stat span{display:block;color:var(--muted);font-size:12px;margin-bottom:7px}.stat strong{font-size:18px}
.section-title{display:flex;align-items:center;justify-content:space-between;margin:24px 4px 10px}.section-title h2{font-size:20px;margin:0}#resultBadge{font-size:12px;background:#eaf2ff;color:var(--primary);border-radius:999px;padding:6px 10px;font-weight:800}
.results{display:grid;gap:10px}.deal-card{padding:18px}.deal-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:13px}.deal-date{color:var(--muted);font-size:12px}.deal-name{font-size:17px;margin:3px 0}.deal-price{font-size:20px;color:var(--primary);white-space:nowrap}.deal-area-chip{font-size:10px;background:#eef4ff;color:var(--primary);border-radius:999px;padding:4px 7px;font-weight:700}
.deal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:13px}.deal-grid span{display:block;color:var(--muted);font-size:11px}.deal-grid b{display:block;font-size:13px;margin-top:3px}.deal-extra{margin-top:10px;color:#52647e;font-size:12px;line-height:1.5}
.cancelled-box{margin-top:14px;padding:14px 18px}.cancelled-box summary{cursor:pointer;color:var(--bad);font-weight:700;font-size:13px}.cancelled-list{display:grid;gap:8px;margin-top:12px}.cancelled-item{font-size:12px;color:#52647e;padding:9px 0;border-top:1px solid var(--line)}
.empty{text-align:center;padding:36px;margin-top:18px}.empty-icon{font-size:38px}.empty h3{margin:8px 0}.empty p{color:var(--muted);margin:0}.notice{padding:18px;margin-top:24px;background:#fbfcfe}.notice strong{font-size:13px}.notice p{color:var(--muted);font-size:12px;line-height:1.55;margin:6px 0 0}
dialog{width:min(520px,calc(100% - 24px));border:0;border-radius:20px;padding:0;box-shadow:0 24px 70px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(20,30,45,.5)}.settings{padding:20px;display:grid;gap:15px}.dialog-head{display:flex;justify-content:space-between;align-items:center}.dialog-head strong{font-size:19px;display:block}.dialog-head small{color:var(--muted)}.settings-note{font-size:12px;color:var(--muted);margin:0;line-height:1.5}.dialog-actions{display:flex;gap:8px;justify-content:flex-end}
@media(max-width:680px){
 main{width:min(100% - 18px,980px);margin-top:12px}.hero{padding:20px 16px}.address-row{grid-template-columns:1fr}.grid2{grid-template-columns:1fr 1fr}.summary-grid{grid-template-columns:1fr 1fr}.deal-grid{grid-template-columns:1fr 1fr}.deal-top{align-items:center}.deal-price{font-size:17px;white-space:normal;text-align:right}.resolved,.area-filter{align-items:flex-start;flex-direction:column}.area-filter select{width:100%}
}

.mode-tabs{display:grid;grid-template-columns:1fr 1fr;padding:6px;margin-bottom:14px;gap:6px}
.mode-tab{border:0;background:transparent;border-radius:14px;padding:13px;font-weight:800;color:#60708a}
.mode-tab.active{background:#0f5bd8;color:#fff}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}
.recommend-main{margin-top:0}.input-help{display:block;color:var(--muted);font-size:10px;margin:5px 2px 0}
.budget-presets{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}.budget-presets button{border:1px solid var(--line);background:#f8fafd;color:#53647c;border-radius:999px;padding:7px 12px;font-size:12px}
.advanced{margin-top:14px;border:1px solid var(--line);border-radius:14px;padding:11px 13px;background:#fbfcfe}.advanced summary{cursor:pointer;font-weight:800;font-size:13px}.advanced summary span{font-weight:500;color:var(--muted);font-size:11px;margin-left:5px}
.advanced-grid{margin-top:12px}.wide{width:100%;margin-top:16px;padding:15px}
.rec-head{display:flex;justify-content:space-between;align-items:center;padding:18px;margin:16px 0;gap:12px}.rec-head .mini{display:block;color:var(--muted);font-size:11px}.rec-head strong{display:block;margin:4px 0}.rec-head small{color:var(--muted)}
.section-title>div h2{margin-bottom:2px}.section-sub{margin:0;color:var(--muted);font-size:11px}
.recommend-results{display:grid;gap:11px}.recommend-card{display:grid;grid-template-columns:74px 1fr;gap:15px;padding:18px}
.score-ring{width:66px;height:66px;border-radius:50%;background:#edf3fd;display:grid;place-content:center;text-align:center;color:var(--primary);align-self:start}
.score-ring strong{font-size:21px;line-height:1}.score-ring span{font-size:9px;margin-top:2px}
.rec-title-row,.rec-price-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.rec-type{font-size:10px;color:var(--primary);font-weight:800}.rec-name{font-size:18px;margin:3px 0 0}.rec-status{border-radius:999px;padding:5px 8px;font-size:10px;font-weight:800;white-space:nowrap;background:#e9f7f1;color:#0f7b56}
.rec-status.over{background:#fff4e4;color:#a55c00}.rec-price-row{margin-top:9px;align-items:center}.rec-price{font-size:21px;color:var(--primary)}.rec-budget-gap{font-size:11px;color:var(--muted)}
.rec-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.rec-metrics span{display:block;color:var(--muted);font-size:10px}.rec-metrics b{display:block;font-size:12px;margin-top:3px}
.rec-reasons{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.rec-reasons span{background:#f2f5f9;border-radius:999px;padding:5px 8px;font-size:10px;color:#506078}.rec-foot{color:var(--muted);font-size:10px;margin-top:9px}
@media(max-width:680px){.grid3{grid-template-columns:1fr 1fr}.grid3 label:last-child{grid-column:1/-1}.recommend-card{grid-template-columns:54px 1fr;padding:15px;gap:10px}.score-ring{width:52px;height:52px}.score-ring strong{font-size:17px}.rec-metrics{grid-template-columns:1fr 1fr}.rec-title-row{align-items:center}.rec-price-row{align-items:flex-start;flex-direction:column;gap:3px}.rec-head{flex-direction:column;align-items:flex-start}}
