:root {
  --bg:#06060b;--surface:#0d0d14;--surface2:#13131e;--surface3:#1a1a28;
  --border:#232336;--border-hover:#3a3a55;--text:#eeeef5;--text-dim:#7a7a95;--text-mid:#a0a0b8;
  --accent:#7c6af6;--accent2:#9d8df7;
  --green:#34d399;--green-dim:rgba(52,211,153,0.12);
  --red:#f87171;--red-dim:rgba(248,113,113,0.12);
  --yellow:#fbbf24;--yellow-dim:rgba(251,191,36,0.12);
  --blue:#60a5fa;--blue-dim:rgba(96,165,250,0.12);
  --mono:'JetBrains Mono',monospace;
  --mode-accent:#2563eb;--mode-accent-light:#eff6ff;--mode-bg:#f0f4ff;--mode-border:#dbe4f0;--mode-header-stripe:#2563eb;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Noto Sans KR',sans-serif;background:var(--bg);color:var(--text);line-height:1.6;overflow-x:hidden}
html{overflow-x:hidden}
.main{max-width:1100px;margin:0 auto;padding:20px 16px}
.top-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:10px;padding-bottom:16px;border-bottom:2px solid var(--mode-header-stripe)}
.top-bar-left{display:flex;align-items:center;gap:12px}
.logo{font-size:20px;font-weight:900;letter-spacing:-0.5px}
.logo-sub{font-size:11px;color:var(--text-dim)}
.top-bar-right{display:flex;align-items:center;gap:8px}
.settings-btn{background:var(--surface2);border:1px solid var(--border);color:var(--text-mid);padding:8px 16px;border-radius:8px;font-size:13px;cursor:pointer;font-family:'Noto Sans KR',sans-serif;transition:all 0.2s;display:flex;align-items:center;gap:6px}
.settings-btn:hover{border-color:var(--accent);color:var(--text)}
.mode-toggle{display:flex;background:var(--surface2);border:1px solid var(--border);border-radius:8px;overflow:hidden}
.mode-btn{background:none;border:none;color:var(--text-dim);padding:8px 16px;font-size:13px;font-weight:600;cursor:pointer;font-family:'Noto Sans KR',sans-serif;transition:all 0.2s;display:flex;align-items:center;gap:5px;white-space:nowrap}
.mode-btn:hover{color:var(--text-mid)}
.mode-btn.active{background:var(--mode-accent);color:#fff;box-shadow:0 0 12px rgba(37,99,235,0.3)}
.settings-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.6);z-index:100;backdrop-filter:blur(4px)}
.settings-overlay.open{display:flex;justify-content:flex-end}
.settings-panel{background:var(--surface);width:340px;max-width:90vw;height:100vh;overflow-y:auto;padding:24px 20px;border-left:1px solid var(--border);animation:slideIn 0.25s ease}
@keyframes slideIn{from{transform:translateX(100%)}to{transform:translateX(0)}}
.settings-close{background:none;border:none;color:var(--text-mid);font-size:20px;cursor:pointer;float:right;padding:4px 8px}
.settings-close:hover{color:var(--text)}
.settings-title{font-size:18px;font-weight:700;margin-bottom:20px}
.section-label{font-size:10px;font-weight:700;color:var(--text-dim);letter-spacing:1.5px;text-transform:uppercase;margin:20px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--border)}
.field{margin-bottom:14px}
.field label{display:block;font-size:12px;color:var(--text-mid);margin-bottom:4px;font-weight:500}
.field-row{display:flex;align-items:center;gap:8px}
.field input[type="range"]{flex:1;-webkit-appearance:none;height:4px;background:var(--border);border-radius:2px;outline:none}
.field input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent);cursor:pointer;box-shadow:0 0 8px rgba(124,106,246,0.4)}
.field-value{font-family:var(--mono);font-size:14px;font-weight:600;width:72px;text-align:right;color:var(--text);background:var(--surface2);border:1px solid var(--border);border-radius:5px;padding:4px 8px;outline:none;-moz-appearance:textfield}
.field-value::-webkit-outer-spin-button,.field-value::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.field-value:focus{border-color:var(--accent);background:var(--surface3)}
.field-unit{font-size:11px;color:var(--text-dim)}
.field select{width:100%;background:var(--surface2);border:1px solid var(--border);color:var(--text);padding:8px 12px;border-radius:6px;font-size:13px;font-family:'Noto Sans KR',sans-serif;cursor:pointer;outline:none}
.field-hint{font-size:10px;color:var(--text-dim);font-weight:400}
.policy-ref{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:10px 12px;margin-bottom:10px;font-size:11px}
.policy-ref-title{font-weight:600;font-size:10px;color:var(--text-mid);margin-bottom:5px;letter-spacing:0.5px}
.policy-ref-row{display:flex;align-items:center;gap:6px;color:var(--text-dim);padding:1px 0}
.ref-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.buy-only{display:block}.rent-only{display:none}
body.mode-rent .buy-only{display:none}body.mode-rent .rent-only{display:block}
.marriage-status-bar{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 16px;margin-bottom:16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.marriage-toggle{display:flex;background:var(--surface2);border:1px solid var(--border);border-radius:6px;overflow:hidden}
.marriage-btn{background:none;border:none;color:var(--text-dim);padding:6px 14px;font-size:12px;font-weight:600;cursor:pointer;font-family:'Noto Sans KR',sans-serif;transition:all 0.2s;white-space:nowrap}
.marriage-btn:hover{color:var(--text-mid)}
.marriage-btn.active{background:var(--mode-accent);color:#fff}
.marriage-info{font-size:11px;color:var(--text-dim);flex:1}
.marriage-info strong{color:var(--yellow)}
.marriage-income-badge{font-family:var(--mono);font-size:11px;padding:3px 10px;border-radius:4px;font-weight:600}
.marriage-income-badge.married{background:var(--yellow-dim);color:var(--yellow)}
.marriage-income-badge.single{background:var(--green-dim);color:var(--green)}
.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px}
.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 16px;transition:border-color 0.2s}
.stat-card:hover{border-color:var(--border-hover)}
.stat-label{font-size:10px;color:var(--text-dim);font-weight:500;letter-spacing:0.5px;margin-bottom:4px}
.stat-value{font-family:var(--mono);font-size:22px;font-weight:700;letter-spacing:-1px}
.stat-sub{font-size:10px;color:var(--text-dim);margin-top:3px}
.stat-bar{height:3px;border-radius:2px;margin-top:8px;background:var(--border);overflow:hidden}
.stat-bar-fill{height:100%;border-radius:2px;transition:width 0.4s ease}
.section{margin-bottom:28px}
.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-wrap:wrap;gap:8px}
.section-title{font-size:15px;font-weight:700;display:flex;align-items:center;gap:8px}
.section-badge{font-size:11px;background:var(--surface3);color:var(--text-dim);padding:2px 10px;border-radius:10px}
.loan-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.loan-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px;position:relative;overflow:hidden}
.loan-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px}
.loan-card.ok::before{background:var(--green)}.loan-card.warn::before{background:var(--yellow)}.loan-card.danger::before{background:var(--red)}
.loan-label{font-size:11px;color:var(--text-dim);margin-bottom:2px}
.loan-big{font-family:var(--mono);font-size:24px;font-weight:700;margin-bottom:2px}
.loan-detail{font-size:11px;color:var(--text-dim);line-height:1.6}.loan-detail span{color:var(--text-mid)}
.rent-loan-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.table-controls{display:flex;gap:8px;margin-bottom:10px;flex-wrap:wrap;align-items:center}
.filter-chip-group{display:flex;gap:4px;flex-wrap:wrap}
.filter-chip{background:var(--surface2);border:1px solid var(--border);color:var(--text-dim);padding:6px 12px;border-radius:20px;font-size:12px;cursor:pointer;font-family:'Noto Sans KR',sans-serif;transition:all 0.15s;white-space:nowrap;user-select:none}
.filter-chip:hover{border-color:var(--mode-accent);color:var(--text-mid)}
.filter-chip.active{background:var(--mode-accent);color:#fff;border-color:var(--mode-accent)}
.filter-row{display:flex;gap:8px;margin-bottom:8px;flex-wrap:wrap;align-items:center}
.filter-label{font-size:11px;color:var(--text-dim);min-width:40px;font-weight:500}
.search-input{flex:1;min-width:180px;background:var(--surface2);border:1px solid var(--border);color:var(--text);padding:8px 12px;border-radius:8px;font-size:13px;font-family:'Noto Sans KR',sans-serif;outline:none}
.search-input::placeholder{color:var(--text-dim)}.search-input:focus{border-color:var(--mode-accent)}
.sort-btn{background:var(--surface2);border:1px solid var(--border);color:var(--text-mid);padding:7px 12px;border-radius:8px;font-size:12px;cursor:pointer;font-family:'Noto Sans KR',sans-serif;white-space:nowrap;transition:all 0.15s}
.sort-btn:hover,.sort-btn.active{border-color:var(--mode-accent);color:var(--mode-accent)}
.filter-select{background:var(--surface2);border:1px solid var(--border);color:var(--text-mid);padding:7px 10px;border-radius:8px;font-size:12px;cursor:pointer;font-family:'Noto Sans KR',sans-serif;outline:none}
.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow-x:auto}
.pagination-bar{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-top:1px solid var(--border);background:var(--surface);font-size:12px;color:var(--text-dim)}
.page-size-select{background:var(--surface2);border:1px solid var(--border);color:var(--text-mid);padding:5px 8px;border-radius:6px;font-size:12px;cursor:pointer;font-family:'Noto Sans KR',sans-serif;outline:none}
.page-btns{display:flex;gap:4px;align-items:center}
.page-btn{background:var(--surface2);border:1px solid var(--border);color:var(--text-mid);padding:5px 10px;border-radius:6px;font-size:12px;cursor:pointer;font-family:'Noto Sans KR',sans-serif;transition:all 0.15s}
.page-btn:hover{border-color:var(--mode-accent);color:var(--mode-accent)}
.page-btn.active{background:var(--mode-accent);color:#fff;border-color:var(--mode-accent)}
.page-btn:disabled{opacity:0.3;cursor:default}
.page-info{font-size:11px;color:var(--text-dim)}
.tab-nav{display:flex;gap:4px;margin-bottom:16px;border-bottom:2px solid var(--mode-border);padding-bottom:0}
.tab-btn{background:none;border:none;color:var(--text-dim);padding:10px 18px;font-size:13px;font-weight:600;cursor:pointer;font-family:'Noto Sans KR',sans-serif;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all 0.2s;white-space:nowrap}
.tab-btn:hover{color:var(--text-mid)}.tab-btn.active{color:var(--mode-accent);border-bottom-color:var(--mode-accent)}
.tab-content{display:none}.tab-content.active{display:block}
table{width:100%;border-collapse:collapse;font-size:13px}thead{background:var(--surface2)}
th{padding:9px 10px;text-align:left;font-weight:500;color:var(--text-dim);font-size:11px;letter-spacing:0.5px;cursor:pointer;white-space:nowrap}th:hover{color:var(--text-mid)}
td{padding:10px;border-top:1px solid var(--border);vertical-align:top}tr:hover td{background:rgba(37,99,235,0.04)}
.col-name{min-width:250px}.col-region{min-width:80px}.col-area{min-width:60px}.col-price{min-width:100px}.col-equity{min-width:100px}.col-loan{min-width:100px}.col-monthly{min-width:70px}.col-verdict{min-width:70px}.col-link{min-width:50px}
.mono{font-family:var(--mono);font-weight:600}
.tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:500}
.tag-ok{background:var(--green-dim);color:var(--green)}.tag-warn{background:var(--yellow-dim);color:var(--yellow)}.tag-danger{background:var(--red-dim);color:var(--red)}.tag-region{background:var(--blue-dim);color:var(--blue);font-size:10px}
.tag-anomaly{background:rgba(255,140,0,0.15);color:#ff8c00;font-size:10px;border:1px solid rgba(255,140,0,0.3)}
.bm-btn{background:none;border:none;cursor:pointer;font-size:16px;padding:0 4px 0 0;color:var(--text-dim);line-height:1;flex-shrink:0}
.bm-btn.on{color:#FFD700}
.bm-btn:hover{transform:scale(1.2)}
.bm-toggle{display:flex;align-items:center;gap:3px;font-size:12px;color:var(--text-dim);cursor:pointer;white-space:nowrap;padding:0 4px}
.bm-toggle input{width:13px;height:13px;cursor:pointer;accent-color:#FFD700}
.bm-count{font-size:10px;color:#FFD700}
.tag-jr{background:rgba(100,149,237,0.15);color:#6495ed;font-size:10px;border:1px solid rgba(100,149,237,0.3)}
.tag-jr-danger{background:rgba(255,60,60,0.15);color:#ff3c3c;border-color:rgba(255,60,60,0.3)}
.tag-jr-safe{background:rgba(0,200,83,0.15);color:#00c853;border-color:rgba(0,200,83,0.3)}
.compare-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.6);z-index:9999;display:flex;align-items:center;justify-content:center;padding:16px}
.compare-popup{background:var(--card);border-radius:12px;padding:20px;max-width:380px;width:100%;box-shadow:0 8px 32px rgba(0,0,0,0.3)}
.compare-title{font-size:16px;font-weight:700;margin-bottom:4px}
.compare-name{font-size:12px;color:var(--text-dim);margin-bottom:12px}
.compare-section{background:var(--bg);border-radius:8px;padding:10px;margin-bottom:8px}
.compare-label{font-size:12px;font-weight:600;margin-bottom:6px}
.compare-row{display:flex;justify-content:space-between;font-size:12px;padding:2px 0}
.compare-row.highlight{font-weight:700;font-size:13px;padding:4px 0;border-top:1px solid var(--border);margin-top:4px}
.compare-diff{background:var(--bg);border-radius:8px;padding:10px;margin-bottom:12px;border:1px solid var(--border)}
.compare-note{font-size:11px;color:var(--text-dim);margin-top:6px;text-align:center}
.compare-empty{font-size:12px;color:var(--text-dim);text-align:center;padding:12px}
.compare-close{width:100%;padding:8px;border:none;border-radius:8px;background:var(--accent2);color:white;cursor:pointer;font-size:13px;font-weight:600}
.anomaly-toggle{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-dim);cursor:pointer;white-space:nowrap;padding:0 4px}
.anomaly-toggle input{accent-color:#ff8c00;width:13px;height:13px;cursor:pointer}
.tag-reg{font-size:9px;padding:1px 6px;border-radius:3px;font-weight:600;letter-spacing:0.3px}
.tag-reg-hot{background:rgba(248,113,113,0.15);color:var(--red)}.tag-reg-free{background:rgba(52,211,153,0.15);color:var(--green)}
.link-icons{display:flex;gap:4px}
.link-icon{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:6px;font-size:12px;text-decoration:none;transition:all 0.15s;background:var(--surface3);color:var(--text-mid);border:1px solid var(--border)}
.link-icon:hover{border-color:var(--mode-accent);color:var(--mode-accent);transform:scale(1.1)}
.condition-row{display:flex;flex-wrap:wrap;gap:6px}
.cond-chip{background:var(--surface2);border:1px solid var(--border);padding:5px 12px;border-radius:20px;font-size:11px;color:var(--text-mid);white-space:nowrap}
.quick-links{display:flex;flex-wrap:wrap;gap:8px}
.area-toggle{cursor:pointer;user-select:none}.area-toggle:hover{color:var(--accent2)}
#areaUnitLabel{font-size:10px;padding:1px 5px;background:var(--mode-accent);color:#fff;border-radius:3px}
.quick-link{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 14px;text-decoration:none;color:var(--text);transition:all 0.2s;flex:1;min-width:140px}
.quick-link:hover{border-color:var(--mode-accent);transform:translateY(-1px)}
.ql-icon{font-size:18px}.ql-name{font-size:13px;font-weight:600}.ql-desc{font-size:10px;color:var(--text-dim)}
.timeline{display:flex;flex-direction:column;gap:8px}
.tl-item{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px 14px;display:flex;gap:12px;align-items:flex-start;transition:border-color 0.2s}
.tl-item:hover{border-color:var(--border-hover)}
.tl-dot{width:8px;height:8px;border-radius:50%;margin-top:6px;flex-shrink:0}
.tl-dot.high{background:var(--red);box-shadow:0 0 6px rgba(248,113,113,0.5)}.tl-dot.mid{background:var(--yellow)}.tl-dot.low{background:var(--green)}
.tl-date{font-family:var(--mono);font-size:11px;color:var(--text-dim);min-width:72px;padding-top:1px}
.tl-body{flex:1}.tl-title{font-size:13px;font-weight:600;margin-bottom:2px}
.tl-impact{font-size:11px;color:var(--text-dim);line-height:1.5}.tl-impact em{color:var(--yellow);font-style:normal}
.tl-my-impact{font-size:10px;margin-top:6px;padding:5px 10px;border-radius:6px;border:1px solid var(--border);background:var(--surface2)}
.tl-my-impact .impact-label{font-weight:600;margin-bottom:2px}
.tl-my-impact.positive{border-color:rgba(52,211,153,0.3);background:rgba(52,211,153,0.05)}
.tl-my-impact.positive .impact-label{color:var(--green)}
.tl-my-impact.negative{border-color:rgba(248,113,113,0.3);background:rgba(248,113,113,0.05)}
.tl-my-impact.negative .impact-label{color:var(--red)}
.tl-my-impact.neutral{border-color:rgba(251,191,36,0.3);background:rgba(251,191,36,0.05)}
.tl-my-impact.neutral .impact-label{color:var(--yellow)}
.tl-my-impact.info{border-color:rgba(96,165,250,0.3);background:rgba(96,165,250,0.05)}
.tl-my-impact.info .impact-label{color:var(--blue)}
.policy-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.policy-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 16px;position:relative;overflow:hidden}
.policy-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px}
.policy-card.eligible::before{background:var(--green)}.policy-card.ineligible::before{background:var(--red)}.policy-card.conditional::before{background:var(--yellow)}.policy-card.checking::before{background:var(--blue)}
.policy-name{font-size:13px;font-weight:700;margin-bottom:2px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.policy-status{font-size:11px;font-weight:600}
.policy-status.yes{color:var(--green)}.policy-status.no{color:var(--red)}.policy-status.maybe{color:var(--yellow)}.policy-status.check{color:var(--blue)}
.policy-detail{font-size:11px;color:var(--text-dim);margin-top:4px;line-height:1.5}
.policy-gap{font-family:var(--mono);font-size:10px;margin-top:5px;padding:3px 8px;border-radius:4px;display:inline-block}
.policy-gap.over{background:var(--red-dim);color:var(--red)}.policy-gap.close{background:var(--yellow-dim);color:var(--yellow)}.policy-gap.under{background:var(--green-dim);color:var(--green)}
.policy-what-if{font-size:10px;color:var(--accent2);margin-top:5px;padding:4px 8px;background:rgba(124,106,246,0.08);border-radius:4px;border:1px solid rgba(124,106,246,0.15)}
.footer{text-align:center;padding:16px;font-size:11px;color:var(--text-dim);border-top:1px solid var(--border);margin-top:20px}
.rent-placeholder{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:40px 20px;text-align:center}
.rent-placeholder-icon{font-size:36px;margin-bottom:12px}.rent-placeholder-title{font-size:15px;font-weight:700;margin-bottom:6px}
.rent-placeholder-desc{font-size:12px;color:var(--text-dim);line-height:1.6;margin-bottom:16px}
.rent-placeholder-links{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.trade-history{grid-column:1/-1;background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:10px 12px;margin-top:4px;display:none;min-width:280px}
.trade-history.open{display:block}
.trade-history-title{font-size:11px;font-weight:600;color:var(--mode-accent);margin-bottom:6px;display:flex;justify-content:space-between;align-items:center}
.trade-row{display:flex;gap:12px;padding:4px 0;font-size:11px;border-bottom:1px solid var(--border);align-items:center;white-space:nowrap}
.trade-row:last-child{border-bottom:none}
.trade-date{color:var(--text-dim);min-width:75px}.trade-price{font-family:var(--mono);font-weight:600;min-width:85px}.trade-floor{color:var(--text-mid);min-width:30px}
.trade-delta{font-family:var(--mono);font-size:10px;min-width:60px}.trade-delta.up{color:var(--red)}.trade-delta.down{color:var(--green)}.trade-delta.same{color:var(--text-dim)}
.expand-btn{cursor:pointer;color:var(--mode-accent);font-size:10px;background:none;border:none;padding:0;font-family:'Noto Sans KR',sans-serif}.expand-btn:hover{opacity:0.8}
/* 구 배지 (카드 단지명 앞) */
.dc-badge{display:inline-block;color:#fff;font-size:10px;font-weight:700;padding:1px 6px;border-radius:9px;margin-right:3px;vertical-align:middle;line-height:1.5;white-space:nowrap;flex-shrink:0}
/* 구 필터 바 */
.district-filter-bar{display:flex;align-items:center;gap:4px;padding:5px 12px 8px;flex-wrap:wrap}
.df-label{font-size:10px;color:var(--text-dim);font-weight:600;margin-right:2px;white-space:nowrap}
.df-sep{color:#d1d5db;font-size:11px;margin:0 1px;user-select:none}
.dc-chip{border:none;border-radius:12px;padding:3px 9px;font-size:11px;font-weight:600;cursor:pointer;background:#e5e7eb;color:#374151;transition:all 0.15s;line-height:1.4}
.dc-chip.active{background:var(--mode-accent);color:#fff;box-shadow:0 1px 4px rgba(0,0,0,0.15)}
.dc-chip.dc-group{background:#dbeafe;color:#1d4ed8}
.dc-chip.dc-group.active{background:#2563eb;color:#fff}
.dc-chip.dc-gu{background:var(--dc,#9CA3AF);color:#fff;opacity:0.55}
.dc-chip.dc-gu.active{opacity:1;box-shadow:0 0 0 2px var(--dc,#9CA3AF),0 1px 4px rgba(0,0,0,0.15)}
.filter-bar{display:flex;align-items:center;gap:6px;margin-bottom:0;flex-wrap:wrap}
.filter-bar .search-input{min-width:100px;flex:0 1 160px;padding:7px 10px;font-size:12px}
.filter-bar-divider{width:1px;height:24px;background:var(--border);flex-shrink:0;margin:0 2px}
.filter-select.active{border-color:var(--mode-accent);background:var(--mode-accent);color:#fff}
.filter-reset-btn{background:none;border:1px solid var(--border);color:var(--text-dim);padding:6px 10px;border-radius:8px;font-size:11px;cursor:pointer;font-family:'Noto Sans KR',sans-serif;white-space:nowrap;transition:all 0.15s}
.filter-reset-btn:hover{border-color:var(--red);color:var(--red)}
.split-layout{display:flex;gap:12px;margin-top:10px}
.split-map{flex:0 0 58%;height:calc(100vh - 300px);min-height:400px;position:relative;border-radius:10px;overflow:hidden}
.split-map #mapContainer{width:100%;height:100%;border-radius:10px;border:1px solid var(--border);background:var(--surface2)}
.map-legend{position:absolute;bottom:8px;left:8px;right:8px;font-size:10px;color:var(--text);display:flex;gap:10px;flex-wrap:wrap;background:rgba(13,13,20,0.85);padding:6px 10px;border-radius:6px;backdrop-filter:blur(4px)}
.split-list{flex:1;height:calc(100vh - 300px);min-height:400px;overflow-y:auto;overflow-x:hidden;min-width:0;padding-right:4px}
.split-list .card-grid{grid-template-columns:1fr;gap:6px}
.split-list .pagination-bar{position:sticky;bottom:0;z-index:2}
.map-info-badge{position:absolute;top:8px;right:8px;background:rgba(13,13,20,0.85);color:var(--text-mid);font-size:11px;padding:4px 10px;border-radius:6px;z-index:1;backdrop-filter:blur(4px)}
.map-fullscreen-btn{position:absolute;top:8px;left:8px;background:rgba(13,13,20,0.85);color:var(--text);font-size:12px;padding:5px 10px;border-radius:6px;z-index:2;backdrop-filter:blur(4px);border:1px solid var(--border);cursor:pointer;transition:all 0.15s}
.map-fullscreen-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
.split-layout.map-full .split-list{display:none}
.split-layout.map-full .split-map{flex:0 0 100%}
.split-map.map-fullscreen{position:fixed!important;top:0;left:0;width:100vw!important;height:100vh!important;z-index:9999;border-radius:0;flex:none!important}
.split-map.map-fullscreen #mapContainer{border-radius:0}
.split-map.map-fullscreen .map-fullscreen-btn{top:60px;left:12px;font-size:13px;padding:7px 14px}
.fs-map-popup{display:none;position:fixed;top:60px;right:12px;width:370px;max-width:calc(100vw - 24px);max-height:calc(100vh - 72px);overflow-y:auto;z-index:10000;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px;box-shadow:0 8px 32px rgba(0,0,0,0.5);backdrop-filter:blur(8px);animation:fsPopupIn 0.2s ease}
.fs-map-popup.show{display:block}
@keyframes fsPopupIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
.fs-map-popup-close{position:absolute;top:8px;right:8px;background:var(--surface2);border:1px solid var(--border);color:var(--text-mid);width:28px;height:28px;border-radius:50%;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.15s;z-index:1;line-height:1}
.fs-map-popup-close:hover{background:var(--red);color:#fff;border-color:var(--red)}
.fs-map-popup .pc-compact{padding:0}
.fs-map-popup .pc-line{flex-wrap:wrap}
.fs-map-popup .pc-cfoot{margin-top:6px}
.fs-map-popup .trade-history{margin-top:6px}
@media(max-width:768px){
  .fs-map-popup{top:auto;right:0;bottom:0;left:0;width:100%;max-width:100%;border-radius:14px 14px 0 0;max-height:45vh}
}
.view-toggle{display:flex;gap:2px;margin-left:auto}
.view-btn{background:var(--surface2);border:1px solid var(--border);color:var(--text-dim);width:32px;height:32px;border-radius:6px;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.15s;font-family:var(--mono)}
.view-btn:hover{border-color:var(--mode-accent);color:var(--text-mid)}
.view-btn.active{background:var(--mode-accent);color:#fff;border-color:var(--mode-accent)}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
.prop-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden;transition:box-shadow 0.2s,border-color 0.2s}
.prop-card:hover{border-color:var(--border-hover);box-shadow:0 4px 16px rgba(0,0,0,0.2)}
.prop-card.highlight{border-color:var(--mode-accent)!important;box-shadow:0 0 16px rgba(37,99,235,0.4);transition:box-shadow 0.3s,border-color 0.3s}
tr.highlight td{background:rgba(37,99,235,0.12)!important}
@keyframes markerBounce{0%,100%{transform:translateY(0)}25%{transform:translateY(-12px)}50%{transform:translateY(0)}75%{transform:translateY(-6px)}}
.map-bounds-toggle{position:absolute;top:8px;left:8px;background:rgba(13,13,20,0.85);color:var(--text-mid);font-size:11px;padding:4px 10px;border-radius:6px;z-index:1;backdrop-filter:blur(4px);cursor:pointer;display:flex;align-items:center;gap:5px;user-select:none}
.map-bounds-toggle input{accent-color:var(--mode-accent);cursor:pointer}
.pc-compact{padding:10px 12px}
.pc-compact .pc-line{display:flex;align-items:center;gap:6px;line-height:1.4}
.pc-compact .pc-line+.pc-line{margin-top:3px}
.pc-compact .pc-badge-sm{padding:2px 7px;border-radius:4px;font-size:10px;font-weight:600;white-space:nowrap;flex-shrink:0}
.pc-compact .pc-badge-sm.ok{background:var(--green-dim);color:var(--green)}
.pc-compact .pc-badge-sm.warn{background:var(--yellow-dim);color:var(--yellow)}
.pc-compact .pc-badge-sm.danger{background:var(--red-dim);color:var(--red)}
.pc-compact .pc-cname{font-size:13px;font-weight:700;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pc-compact .pc-cregion{font-size:11px;color:var(--text-dim);white-space:nowrap;flex-shrink:0}
.pc-compact .pc-cmeta{font-size:11px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pc-compact .pc-cprice{font-family:var(--mono);font-size:14px;font-weight:700;color:var(--mode-accent);white-space:nowrap}
.pc-compact .pc-cdetails{font-size:11px;color:var(--text-mid);flex:1;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pc-compact .pc-cfoot{display:flex;justify-content:space-between;align-items:center;margin-top:4px;padding-top:4px;border-top:1px solid var(--border)}
.pc-commute{font-size:11px;letter-spacing:0.5px;white-space:nowrap}
.pc-compact .pc-links{display:flex;gap:3px}
.pc-compact .link-icon{width:22px;height:22px;font-size:11px}
.pc-compact .expand-btn{font-size:10px;padding:3px 8px}
.pc-compact .pc-history{padding:4px 0 0}
.pc-header{display:flex;justify-content:space-between;align-items:flex-start;padding:14px 14px 0;gap:8px}
.pc-name{font-size:14px;font-weight:700;line-height:1.3}
.pc-badge{padding:3px 10px;border-radius:5px;font-size:11px;font-weight:600;white-space:nowrap;flex-shrink:0}
.pc-badge.ok{background:var(--green-dim);color:var(--green)}
.pc-badge.warn{background:var(--yellow-dim);color:var(--yellow)}
.pc-badge.danger{background:var(--red-dim);color:var(--red)}
.pc-sub{padding:4px 14px 0;font-size:11px;color:var(--text-dim);line-height:1.5}
.pc-tags{display:flex;gap:4px;flex-wrap:wrap;padding:8px 14px 0}
.pc-tag{background:var(--surface2);border:1px solid var(--border);padding:2px 8px;border-radius:4px;font-size:10px;color:var(--text-mid)}
.pc-price{padding:12px 14px;font-family:var(--mono);font-size:20px;font-weight:700;color:var(--mode-accent);border-top:1px solid var(--border);margin-top:10px}
.pc-price-sub{font-size:10px;font-weight:400;color:var(--text-dim);margin-top:2px}
.pc-detail{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);margin:0}
.pc-detail-item{background:var(--surface2);padding:10px 14px}
.pc-detail-label{font-size:10px;color:var(--text-dim);margin-bottom:2px}
.pc-detail-value{font-family:var(--mono);font-size:13px;font-weight:600}
.pc-detail-full{grid-column:1/-1}
.pc-footer{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-top:1px solid var(--border)}
.pc-links{display:flex;gap:4px}
.pc-history{padding:0 14px 14px}
/* PC table: hide 연식/세대, compact */
@media(min-width:1025px){
  .split-list table{font-size:12px}
  .split-list th,.split-list td{padding:7px 8px}
  #buyTableWrap th:nth-child(7),#buyTableWrap td:nth-child(7),#buyTableWrap th:nth-child(8),#buyTableWrap td:nth-child(8),#buyTableWrap th:nth-child(9),#buyTableWrap td:nth-child(9),#buyTableWrap th:nth-child(10),#buyTableWrap td:nth-child(10){display:none}
  #rentTableWrapInner th:nth-child(8),#rentTableWrapInner td:nth-child(8),#rentTableWrapInner th:nth-child(9),#rentTableWrapInner td:nth-child(9),#rentTableWrapInner th:nth-child(10),#rentTableWrapInner td:nth-child(10),#rentTableWrapInner th:nth-child(11),#rentTableWrapInner td:nth-child(11){display:none}
  .col-name{min-width:120px}.col-region{min-width:60px}.col-price{min-width:70px}.col-monthly{min-width:50px}.col-verdict{min-width:50px}
}
/* Tablet */
@media(min-width:769px) and (max-width:1024px){
  .split-map{flex:0 0 50%}
  .split-list table{font-size:12px}
  .split-list th,.split-list td{padding:5px 4px}
  #buyTableWrap th:nth-child(3),#buyTableWrap td:nth-child(3),#buyTableWrap th:nth-child(7),#buyTableWrap td:nth-child(7),#buyTableWrap th:nth-child(8),#buyTableWrap td:nth-child(8),#buyTableWrap th:nth-child(9),#buyTableWrap td:nth-child(9),#buyTableWrap th:nth-child(10),#buyTableWrap td:nth-child(10){display:none}
  #rentTableWrapInner th:nth-child(3),#rentTableWrapInner td:nth-child(3),#rentTableWrapInner th:nth-child(7),#rentTableWrapInner td:nth-child(7),#rentTableWrapInner th:nth-child(8),#rentTableWrapInner td:nth-child(8),#rentTableWrapInner th:nth-child(9),#rentTableWrapInner td:nth-child(9),#rentTableWrapInner th:nth-child(10),#rentTableWrapInner td:nth-child(10),#rentTableWrapInner th:nth-child(11),#rentTableWrapInner td:nth-child(11){display:none}
  .col-name{min-width:100px}.col-region{min-width:50px}.col-price{min-width:60px}.col-monthly{min-width:45px}.col-verdict{min-width:45px}
  .stats-row{grid-template-columns:repeat(2,1fr);gap:8px}.stat-value{font-size:18px}
  .loan-grid,.rent-loan-grid{grid-template-columns:1fr}.policy-grid{grid-template-columns:1fr}
}
/* Mobile */
.mobile-split-tabs{display:none}
@media(max-width:768px){
  .mobile-split-tabs{display:flex;gap:0;margin-bottom:8px;background:var(--surface2);border:1px solid var(--border);border-radius:8px;overflow:hidden}
  .mobile-split-tab{flex:1;background:none;border:none;color:var(--text-dim);padding:10px 0;font-size:13px;font-weight:600;cursor:pointer;font-family:'Noto Sans KR',sans-serif;transition:all 0.2s;text-align:center}
  .mobile-split-tab:hover{color:var(--text-mid)}
  .mobile-split-tab.active{background:var(--mode-accent);color:#fff}
  .split-layout{flex-direction:column;height:auto;gap:0}
  .map-fullscreen-btn{display:none}
  .split-map{flex:none;height:calc(100vh - 180px);min-height:300px}
  .split-layout.mobile-list .split-map{display:none}
  .split-layout.mobile-map .split-list{display:none}
  .split-list{height:auto;min-height:auto;overflow-y:visible}
  .split-list .card-grid{grid-template-columns:1fr}
  .main{padding:12px 10px}.stats-row{grid-template-columns:repeat(2,1fr);gap:8px}.stat-value{font-size:18px}
  .loan-grid,.rent-loan-grid{grid-template-columns:1fr}.loan-big{font-size:20px}.policy-grid{grid-template-columns:1fr}
  .tl-item{flex-direction:column;gap:4px}.tl-date{min-width:auto}
  .quick-links{gap:6px}.quick-link{min-width:calc(50% - 6px);flex:none;padding:8px 10px}.ql-desc{display:none}
  .tab-btn{padding:8px 14px;font-size:12px}.mode-btn{padding:6px 12px;font-size:12px}
  .table-wrap{background:none;border:none;border-radius:0}
  table,thead,tbody,th,td,tr{display:block}thead{display:none}
  tr{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px;margin-bottom:10px;display:grid;grid-template-columns:1fr 1fr;gap:6px 12px}
  tr:hover td{background:transparent}td{padding:2px 0;border:none}
  td:nth-child(1){grid-column:1/-1;font-size:14px;margin-bottom:4px}td:nth-child(9){grid-column:1/-1}
  td::before{content:attr(data-label);display:block;font-size:10px;color:var(--text-dim);margin-bottom:1px}
  .marriage-status-bar{flex-direction:column;align-items:flex-start;gap:8px}
  .card-grid{grid-template-columns:1fr}
  .filter-bar{gap:4px 6px;flex-wrap:wrap;padding-bottom:4px}
  .filter-bar .filter-select{flex:1 1 28%;min-width:70px;font-size:11px;padding:6px 8px}
  .filter-bar .search-input{flex:1 1 100px;min-width:80px}
  .filter-bar-divider{display:none}
  .mobile-map-popup{position:fixed;bottom:0;left:0;right:0;z-index:50;background:var(--surface);border-top:1px solid var(--border);border-radius:14px 14px 0 0;padding:16px 20px;transform:translateY(100%);transition:transform 0.25s ease;box-shadow:0 -4px 20px rgba(0,0,0,0.3);max-height:35vh;overflow-y:auto}
  .mobile-map-popup::before{content:'';display:block;width:40px;height:4px;background:var(--border-hover);border-radius:2px;margin:0 auto 12px}
  .mobile-map-popup.show{transform:translateY(0)}
  .mobile-map-popup .pc-compact{padding:0}
  #wishlistSplitLayout{flex-direction:column;height:auto;gap:0}
  #wishlistSplitLayout .split-map{flex:none;height:calc(100vh - 180px);min-height:300px}
  #wishlistSplitLayout.mobile-list .split-map{display:none}
  #wishlistSplitLayout.mobile-map .split-list{display:none}
  #wishlistSplitLayout .split-list{height:auto;min-height:auto;overflow-y:visible}
}
/* ─── 관심 매물 탭 ─── */
.tab-btn#tabBtnWishlist.active{color:#d97706;border-bottom-color:#d97706}
#wishlistCount{font-size:10px;color:#d97706}
.wishlist-summary{background:var(--surface);border:1px solid #fbbf24;border-radius:10px;padding:10px 16px;margin-bottom:12px;font-size:12px;color:var(--text-mid);display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.wishlist-summary .wl-stat{font-weight:600;color:#f59e0b}
.wishlist-toolbar{display:flex;gap:8px;margin-bottom:10px;align-items:center}
#wishlistSplitLayout{display:flex;gap:12px;margin-top:10px}
#wishlistSplitLayout .split-map{flex:0 0 58%;height:calc(100vh - 360px);min-height:400px;position:relative;border-radius:10px;overflow:hidden}
#wishlistSplitLayout .split-map #wishlistMapContainer{width:100%;height:100%;border-radius:10px;border:1px solid var(--border);background:var(--surface2)}
#wishlistSplitLayout .split-list{flex:1;height:calc(100vh - 360px);min-height:400px;overflow-y:auto;overflow-x:hidden;min-width:0;padding-right:4px}
#wishlistSplitLayout .split-list .card-grid{grid-template-columns:1fr;gap:6px}
.wishlist-card{border:1px solid #fbbf24;border-radius:8px;padding:12px;background:var(--surface);transition:background 0.2s,border-color 0.2s;cursor:pointer}
.wishlist-card:hover{background:#1a1708;border-color:#f59e0b}
.wishlist-card.highlight{border-color:#f59e0b!important;box-shadow:0 0 16px rgba(245,158,11,0.4)}
.wishlist-card-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.wishlist-id{font-weight:bold;color:#d97706;font-family:var(--mono);font-size:12px}
.wishlist-name{font-size:14px;font-weight:700;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wishlist-region{font-size:11px;color:var(--text-dim);white-space:nowrap}
.wishlist-card-body{margin-bottom:6px}
.wishlist-price{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.wishlist-price .trade-type{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600}
.wishlist-price .trade-type.buy{background:rgba(37,99,235,0.15);color:#60a5fa}
.wishlist-price .trade-type.rent{background:rgba(52,211,153,0.15);color:#34d399}
.wishlist-price .price{font-family:var(--mono);font-size:15px;font-weight:700;color:#f59e0b}
.wishlist-details{font-size:11px;color:var(--text-dim);display:flex;gap:8px;flex-wrap:wrap}
.wishlist-card-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:6px;border-top:1px solid var(--border);font-size:11px}
.wishlist-card-footer .added-by{color:var(--text-dim)}
.wishlist-card-footer .added-at{color:var(--text-dim);font-family:var(--mono);font-size:10px}
.wishlist-card-footer .naver-link{color:#f59e0b;text-decoration:none;font-weight:600;white-space:nowrap}
.wishlist-card-footer .naver-link:hover{text-decoration:underline}
.wishlist-card--unparsed{background:var(--surface2);border-color:var(--border)}
.wishlist-card--unparsed:hover{background:var(--surface3);border-color:var(--border-hover)}
.wishlist-memo{margin-top:6px}
.wishlist-memo textarea{width:100%;background:var(--surface2);border:1px solid var(--border);color:var(--text-mid);padding:6px 8px;border-radius:6px;font-size:11px;font-family:'Noto Sans KR',sans-serif;resize:vertical;min-height:28px;outline:none}
.wishlist-memo textarea:focus{border-color:#f59e0b}
.wishlist-empty{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:40px 20px;text-align:center}
#wlMobileSplitTabs{display:none}
@media(max-width:768px){
  #wlMobileSplitTabs{display:flex;gap:0;margin-bottom:8px;background:var(--surface2);border:1px solid var(--border);border-radius:8px;overflow:hidden}
  #wlMobileSplitTabs .mobile-split-tab{flex:1;background:none;border:none;color:var(--text-dim);padding:10px 0;font-size:13px;font-weight:600;cursor:pointer;font-family:'Noto Sans KR',sans-serif;text-align:center}
  #wlMobileSplitTabs .mobile-split-tab.active{background:#d97706;color:#fff}
}
/* ─── 시세 추이 탭 ─── */
.tab-btn#tabBtnFlagship.active{color:#8b5cf6;border-bottom-color:#8b5cf6}
.flagship-gu-bar{display:flex;align-items:center;gap:4px;padding:6px 0 10px;flex-wrap:wrap;overflow-x:auto;-webkit-overflow-scrolling:touch}
.fg-chip{border:none;border-radius:12px;padding:4px 10px;font-size:11px;font-weight:600;cursor:pointer;background:#e5e7eb;color:#374151;transition:all 0.15s;line-height:1.4;white-space:nowrap;font-family:'Noto Sans KR',sans-serif}
.fg-chip.active{background:var(--accent);color:#fff;box-shadow:0 1px 4px rgba(124,106,246,0.3)}
.fg-chip.fg-group{background:#ede9fe;color:#6d28d9}
.fg-chip.fg-group.active{background:#7c3aed;color:#fff}
.fg-chip.fg-gu{background:var(--fg-color,#9CA3AF);color:#fff;opacity:0.55}
.fg-chip.fg-gu.active{opacity:1;box-shadow:0 0 0 2px var(--fg-color,#9CA3AF),0 1px 4px rgba(0,0,0,0.2)}
.fg-divider{color:#d1d5db;font-size:12px;margin:0 2px;user-select:none;flex-shrink:0}
.flagship-chart-wrap{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px 16px;margin-bottom:20px;height:400px;position:relative}
.flagship-chart-wrap canvas{max-height:360px}
.flagship-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px}
.flagship-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 16px;transition:border-color 0.2s}
.flagship-card:hover{border-color:var(--border-hover)}
.fc-header{display:flex;align-items:center;gap:6px;margin-bottom:8px}
.fc-name{font-size:13px;font-weight:700;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fc-area{font-size:10px;color:var(--text-dim);white-space:nowrap;font-family:var(--mono)}
.fc-price{font-family:var(--mono);font-size:20px;font-weight:700;letter-spacing:-0.5px;margin-bottom:3px}
.fc-meta{font-size:11px;color:var(--text-dim);margin-bottom:5px}
.fc-diff{font-size:11px;margin-bottom:8px}
.fc-diff-vs{color:var(--text-dim)}
.price-up{color:#f87171;font-weight:700}
.price-down{color:#60a5fa;font-weight:700}
.price-flat{color:var(--text-mid);font-weight:600}
.fc-links{display:flex;gap:6px;flex-wrap:wrap}
.fc-link{font-size:11px;font-weight:600;color:var(--accent2);text-decoration:none;background:var(--surface2);border:1px solid var(--border);border-radius:5px;padding:2px 8px;transition:all 0.15s}
.fc-link:hover{border-color:var(--accent);color:var(--text)}
.fc-empty{font-size:12px;color:var(--text-dim);padding:6px 0}
.fg-empty{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:40px 20px;text-align:center;font-size:13px;color:var(--text-dim);line-height:1.8;margin-bottom:20px}
.fg-empty strong{color:var(--text-mid)}
.fg-chart-error{color:var(--red)}
@media(max-width:1024px){
  .flagship-cards{grid-template-columns:repeat(2,1fr)}
  .flagship-chart-wrap{height:360px}
  .flagship-chart-wrap canvas{max-height:320px}
}
@media(max-width:768px){
  .flagship-cards{grid-template-columns:1fr;gap:8px}
  .flagship-gu-bar{flex-wrap:nowrap;overflow-x:auto;padding-bottom:8px}
  .flagship-chart-wrap{height:260px;padding:10px 6px}
  .flagship-chart-wrap canvas{max-height:220px}
  .fc-price{font-size:16px}
  .fc-name{font-size:11px}
  .fc-meta{font-size:10px}
  .fc-diff{font-size:10px}
  .fc-area{font-size:9px}
  .fc-link{font-size:10px;padding:2px 6px}
  .fc-links{gap:4px}
  .fg-chip{font-size:10px;padding:3px 7px}
}
