:root{--ink:#182d3e;--muted:#75818e;--line:#e6ebef;--green:#138d77;--blue:#4b7ade;--purple:#8c72cf;--soft:#f6f8fa;--radius:14px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}body{margin:0;background:#fff;color:var(--ink);font-family:Inter,"Pretendard","Noto Sans KR",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px;line-height:1.6;letter-spacing:-.035em}button,select,input{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button,select{cursor:pointer}a{color:inherit;text-decoration:none}button:disabled,select:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #3caa9580;outline-offset:4px}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.icon-library{position:absolute;width:0;height:0;overflow:hidden}.site-header{position:sticky;top:0;background:#fffffff5;backdrop-filter:blur(12px);z-index:20;border-bottom:1px solid var(--line)}.header-inner{max-width:1464px;margin:auto;height:84px;padding:0 42px;display:flex;align-items:center;gap:58px}.brand{display:flex;align-items:center;gap:11px;flex-shrink:0}.brand-mark{display:grid;place-items:center;width:42px;height:42px;background:transparent;color:white;border-radius:12px}.brand-mark img{display:block;width:32px;height:32px;object-fit:contain}.brand strong{font-size:22px;letter-spacing:-.06em;line-height:1.2;display:block}.brand-dot{color:var(--green)}.brand small{font-size:10px;letter-spacing:.12em;color:var(--muted);display:block;margin-top:1px}.header-inner nav{display:flex;align-self:stretch;gap:28px;font-size:13px;font-weight:600}.header-inner nav a{display:flex;align-items:center;border-bottom:2px solid transparent;color:var(--muted)}.header-inner nav .nav-active{border-color:var(--green);color:var(--ink)}.header-account{margin-left:auto;display:flex;align-items:center;gap:25px}.data-badge{font-size:11px;color:var(--muted);white-space:nowrap}.data-badge i,.eyebrow span{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);margin-right:6px}main{max-width:1464px;margin:auto;padding:0 42px}.intro{padding:43px 0 30px;display:flex;justify-content:space-between;align-items:center;gap:20px}.eyebrow{font-size:10px;letter-spacing:.16em;color:var(--green);font-weight:750}.intro h1{margin:10px 0 9px;font-size:32px;line-height:1.35;font-weight:750;letter-spacing:-.065em}.intro h1 em{font-style:normal;font-weight:450}.intro p{margin:0;font-size:13px;color:var(--muted)}.mobile-break{display:none}.intro-meta{text-align:right;white-space:nowrap}.source-tag{display:inline-block;background:#f3f6f8;border:1px solid var(--line);border-radius:6px;padding:5px 10px;font-size:11px;font-weight:600;margin-bottom:9px}.intro-meta p{font-size:11px}.filter-panel{border:1px solid var(--line);border-radius:var(--radius);padding:21px 24px 14px;box-shadow:0 3px 10px #1b354403}.filter-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.filter-heading h2{font-size:13px;font-weight:700;display:flex;align-items:center;gap:7px;margin:0}.filter-heading h2 svg{color:var(--green);width:17px;height:17px}.filter-heading>span{font-size:11px;color:#8a959f}.filter-grid{display:grid;grid-template-columns:1.2fr 1.25fr 1fr .85fr .85fr 140px;gap:14px;align-items:end}.field label{display:block;font-size:11px;font-weight:600;color:var(--muted);margin-bottom:6px}.field select{width:100%;height:43px;border:1px solid #dde3e8;border-radius:7px;background:#fff;color:var(--ink);padding:0 31px 0 12px;font-size:13px;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' stroke='%2375818e' stroke-width='1.5'%3E%3Cpath d='m3 5 4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.analyze-button{height:43px;border:0;border-radius:7px;background:var(--ink);color:white;display:flex;align-items:center;justify-content:center;gap:22px;font-size:13px;font-weight:650}.analyze-button:hover{background:#25465d}.analyze-button svg{width:17px}.filter-message{min-height:16px;margin-top:8px;color:#946324;font-size:11px}.trade-bar{margin-top:28px;display:flex;align-items:center;border-bottom:1px solid var(--line);justify-content:space-between}.trade-tabs{display:flex;gap:6px}.trade-tabs button{border:0;border-bottom:3px solid transparent;background:white;color:var(--muted);padding:12px 32px 14px;font-size:15px;font-weight:650}.trade-tabs button.active{border-color:var(--green);color:var(--green)}.tab-note{font-size:11px;color:var(--muted)}.results-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:27px 0 18px}.section-kicker{font-size:9px;letter-spacing:.17em;font-weight:700;color:#8a96a2}.results-heading h2{font-size:21px;margin:3px 0 3px;letter-spacing:-.045em}.results-heading p{font-size:11px;color:var(--muted);margin:0}.text-button{display:flex;align-items:center;gap:6px;border:1px solid var(--line);padding:7px 11px;border-radius:6px;background:#fff;font-size:11px;color:#687888}.text-button svg{width:14px;height:14px}.status-message{color:#806130;background:#fff9ed;border-radius:7px;font-size:12px;padding:10px 14px;margin-bottom:15px}.status-message:empty{display:none}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.metric{border:1px solid var(--line);border-radius:var(--radius);padding:18px 21px;min-height:159px;background:white}.metric-label{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:600;color:#6a7a86}.metric-icon{display:grid;place-items:center;border-radius:9px;width:32px;height:32px}.metric-icon svg{width:17px;height:17px}.mint{background:#eaf6f2;color:var(--green)}.blue{background:#eef3ff;color:var(--blue)}.violet{background:#f3effb;color:var(--purple)}.metric-value{font-size:29px;letter-spacing:-.05em;font-weight:720;line-height:1.35;margin-top:8px;font-variant-numeric:tabular-nums}.metric-value small{font-size:13px;font-weight:500;margin-left:4px;color:var(--muted)}.metric-change{font-size:10px;margin-top:8px;color:var(--muted)}.metric-change strong{font-weight:600;margin-right:5px}.up{color:#d16451}.down{color:#4673c6}.deposit-note{font-size:10px;color:var(--muted);margin:4px 0 0}.feature-metric{background:#edf7f3;border-color:#d8eee4}.feature-metric .metric-label{color:#467b68}.feature-metric .metric-value{color:#21795f}.feature-metric .top-name{font-size:11px;font-weight:600;margin-top:3px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.feature-metric a{display:flex;justify-content:space-between;color:#6f9787;font-size:10px;margin-top:9px}.chart-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:20px}.chart-card{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.chart-heading{display:flex;align-items:center;justify-content:space-between;gap:5px;padding:19px 20px 0}.chart-heading>div{display:flex;align-items:center;gap:8px}.chart-number{font-size:10px;color:#9ba6af;letter-spacing:.02em}.chart-heading h3{font-size:14px;margin:0;font-weight:650}.chart-unit{font-size:9px;color:var(--muted)}.chart-legend{font-size:10px;color:#81909d;padding:13px 20px 0;display:flex;align-items:center;gap:6px}.chart-legend i{display:block;width:7px;height:7px;border-radius:2px}.legend-mint{background:var(--green)}.legend-blue{background:var(--blue)}.legend-violet{background:var(--purple)}.chart-wrap{height:202px;margin:16px 17px 11px;position:relative}.chart-insight{background:#f8fafb;border-top:1px solid #eef1f4;min-height:70px;padding:13px 17px;display:flex;align-items:flex-start;gap:8px}.chart-insight svg{width:14px;height:14px;margin-top:3px;color:#7b8a98}.chart-insight p{margin:0;font-size:11px;line-height:1.8;color:#71808d}.ranking-section{padding-top:13px}.top-chip{font-size:10px;font-weight:750;letter-spacing:.03em;color:var(--green);background:#eaf6f2;padding:4px 7px;border-radius:5px;vertical-align:middle;margin-left:5px}.ranking-badge{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--muted)}.ranking-badge svg{width:15px;height:15px}.table-card{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:12px;white-space:nowrap}th{background:#f8fafb;color:#81909b;font-size:10px;font-weight:550;padding:12px 20px;border-bottom:1px solid var(--line)}td{padding:13px 20px;border-bottom:1px solid #eff2f4;font-variant-numeric:tabular-nums}th:nth-child(n+3),td:nth-child(n+3){text-align:right}th span{font-size:9px}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafcfb}.rank-number{width:26px;height:26px;border-radius:7px;display:inline-grid;place-items:center;color:#84939f;font-size:11px}.rank-number.top{color:var(--green);background:#eaf6f1;font-weight:700}.apartment-name{font-size:12px;font-weight:650;max-width:320px;overflow:hidden;text-overflow:ellipsis}.apartment-location{font-size:10px;color:#909ca5;margin-top:1px}.increase-pill{background:#fff2ef;color:#cf6753;border-radius:5px;padding:4px 7px;font-size:11px;font-weight:650}.table-footnote{padding:12px 20px;display:flex;gap:7px;align-items:flex-start;background:#fcfdfd;border-top:1px solid var(--line)}.table-footnote svg{width:13px;height:13px;color:#9aa5ae;margin-top:2px}.table-footnote p{font-size:10px;line-height:1.7;color:#929da5;margin:0}.ranking-status{text-align:center;padding:35px 20px;font-size:12px;color:var(--muted)}.ranking-status:empty{display:none}.methodology{border:1px solid var(--line);border-radius:10px;margin:23px 0 35px;color:var(--muted);font-size:11px}.methodology summary{cursor:pointer;padding:14px 18px;display:flex;align-items:center;gap:8px;list-style:none}.methodology summary::-webkit-details-marker{display:none}.methodology summary svg{width:15px;height:15px}.methodology summary span{margin-left:auto;font-size:17px}.methodology>div{padding:0 20px 13px;border-top:1px solid var(--line)}.methodology p{line-height:1.9}.methodology strong{color:var(--ink);margin-right:7px}footer{border-top:1px solid var(--line);padding:23px 0 31px;display:flex;align-items:center;gap:17px;font-size:10px;color:#99a3ad}.footer-brand{font-weight:750;font-size:17px;color:var(--ink)}.footer-brand span{color:var(--green)}footer small{margin-left:auto;font-size:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}
/* The existing membership fields and API, adapted to this light interface. */
body.home-tech .member-actions{gap:8px;flex-wrap:nowrap}body.home-tech .member-actions button{background:#fff;color:var(--ink);border:1px solid #dce3e8;border-radius:6px;padding:8px 13px;font-family:inherit;font-size:11px;font-weight:600;white-space:nowrap}body.home-tech .member-actions #member-login-btn{background:var(--ink);color:white;border-color:var(--ink)}body.home-tech .member-actions span{color:var(--ink)!important;font-size:11px!important}body.home-tech #member-dialog{background:white;color:var(--ink);border:1px solid var(--line);box-shadow:0 24px 90px #102b4333;padding:28px;font-family:inherit}body.home-tech #member-dialog input,body.home-tech #member-dialog select{background:white;color:var(--ink);border:1px solid #dbe2e8}body.home-tech #member-dialog label{font-size:12px}body.home-tech #member-dialog .member-hint{color:var(--muted)}body.home-tech #member-dialog #member-message{color:#8c5626;font-size:12px}body.home-tech #member-dialog #member-submit{background:var(--green)}body.home-tech #member-dialog #member-close,body.home-tech #member-dialog #member-switch{background:#f2f5f7;color:var(--ink)}body.home-tech #member-dialog::backdrop{background:#182d3e66;backdrop-filter:blur(3px)}
@media(min-width:1500px){.intro{padding-top:48px}.chart-wrap{height:225px}}@media(max-width:1150px){.header-inner{gap:30px;padding:0 26px}main{padding:0 26px}.header-inner nav{gap:18px}.data-badge{display:none}.filter-grid{gap:10px;grid-template-columns:1.15fr 1.15fr .85fr .75fr .75fr 112px}.metric{padding:16px}.metric-value{font-size:25px}.chart-heading{padding:17px 14px 0}.chart-heading h3{font-size:12px}.chart-wrap{margin-left:9px;margin-right:9px}.chart-insight{padding:11px 13px}.intro h1{font-size:29px}}
@media(max-width:850px){.header-inner{height:72px}.header-inner nav{display:none}.intro-meta{display:none}.intro{padding-top:32px}.filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.chart-grid{grid-template-columns:1fr}.chart-wrap{height:225px;margin:14px 20px}.chart-heading{padding:20px 22px 0}.chart-heading h3{font-size:15px}.chart-legend{padding-left:22px}.chart-insight{min-height:0;padding:14px 22px}.metric-value{font-size:29px}.results-heading h2{font-size:20px}footer{flex-wrap:wrap}footer small{width:100%;margin:0}}
@media(max-width:520px){main{padding:0 18px}.header-inner{padding:0 18px;gap:12px;height:70px}.brand-mark{width:33px;height:33px;border-radius:9px}.brand-mark svg{width:20px;height:20px}.brand{gap:8px}.brand strong{font-size:18px}.brand small{font-size:8px}.header-account{gap:0}body.home-tech .member-actions button{padding:7px 9px;font-size:10px}.intro{padding:29px 0 22px}.mobile-break{display:block}.intro h1{font-size:27px;line-height:1.45}.intro p{font-size:11px;max-width:290px;line-height:1.8}.eyebrow{font-size:8px}.filter-panel{padding:16px 15px 9px}.filter-heading>span{display:none}.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.filter-grid .analyze-button{width:100%}.trade-bar{margin-top:18px}.trade-tabs button{padding:10px 24px 12px;font-size:14px}.tab-note{font-size:9px}.results-heading{align-items:flex-start;margin:22px 0 15px}.results-heading h2{font-size:18px}.results-heading p{font-size:10px;line-height:1.7;max-width:245px}.text-button{font-size:0;border:0;padding:9px 2px}.text-button svg{width:18px;height:18px}.metric{padding:14px 13px;min-height:148px}.metric-label{font-size:10px}.metric-icon{width:25px;height:25px}.metric-value{font-size:23px;letter-spacing:-.05em}.metric-value small{font-size:10px}.metric-change{font-size:9px}.feature-metric .top-name{font-size:10px}.ranking-badge{display:none}td,th{padding-left:15px;padding-right:15px}.chart-wrap{height:205px}.table-footnote{padding:12px 15px}.table-footnote p{font-size:9px}.methodology{font-size:10px}body.home-tech .member-actions span{max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.source-tag{font-size:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Phone and tablet reading and touch controls. */
.mobile-table-hint{display:none}
@media(max-width:850px){
  .field{min-width:0}.field select{min-width:0;min-height:48px;font-size:16px}
  .analyze-button{min-height:48px;font-size:15px}
  .text-button{min-height:44px;font-size:13px}
  body.home-tech .member-actions button{min-height:44px;min-width:44px;font-size:13px}
  .trade-tabs button{min-height:48px;font-size:16px}
  .chart-unit,.chart-legend{font-size:12px}.chart-insight p{font-size:13px}
  .metric-label{font-size:13px}.metric-change,.deposit-note{font-size:12px;overflow-wrap:anywhere}
  .feature-metric .top-name{font-size:13px;white-space:normal;overflow-wrap:anywhere}
  .feature-metric a{font-size:12px;min-height:44px;align-items:center}
  .results-heading p{font-size:12px}.table-footnote p,.methodology{font-size:12px}
  .mobile-table-hint{display:block;margin:0;padding:12px 16px;font-size:12px;color:#536779;background:#f6f8fa}
  .table-scroll{overscroll-behavior-x:contain}.table-scroll:focus-visible{outline:3px solid var(--green);outline-offset:-3px}
  table{min-width:740px;font-size:14px}th{font-size:12px}.apartment-name{font-size:14px}.apartment-location{font-size:12px}
  body.home-tech #member-dialog{max-height:calc(100dvh - 24px);max-width:calc(100vw - 24px);padding:20px;overscroll-behavior:contain}
  body.home-tech #member-dialog input,body.home-tech #member-dialog select{font-size:16px;min-height:48px}
  body.home-tech #member-dialog button{min-height:44px;min-width:44px;font-size:14px}
  body.home-tech #member-dialog label{font-size:14px}
}
@media(max-width:520px){
  html{scroll-padding-top:130px}
  main{padding:0 16px}.header-inner{height:auto;min-height:76px;padding:12px 16px;gap:10px;flex-wrap:wrap}
  .brand strong{font-size:19px}.brand small{font-size:9px}.header-account{min-width:0}
  body.home-tech .member-actions{gap:6px}body.home-tech .member-actions button{padding:8px 10px}
  .header-inner nav{display:flex;order:3;width:100%;justify-content:space-between;gap:12px;font-size:13px}
  .header-inner nav a{min-height:44px;justify-content:center;flex:1}
  .intro h1{font-size:27px}.intro p{font-size:14px;max-width:none}.eyebrow{font-size:10px}
  .filter-panel{padding:16px 12px 10px}.filter-heading h2{font-size:15px}.field label{font-size:13px}
  .filter-grid .analyze-button{grid-column:1/-1}.filter-message{font-size:12px}
  .trade-tabs{width:100%;gap:0}.trade-tabs button{flex:1;padding:12px 18px}.tab-note{display:none}
  .results-heading{flex-wrap:wrap}.results-heading>div{min-width:0}.results-heading p{max-width:none}
  .text-button{font-size:13px;min-height:44px;padding:9px 12px;border:1px solid var(--line)}
  .metric{padding:14px 12px;min-width:0}.metric-label{gap:6px}.metric-value{font-size:25px;overflow-wrap:anywhere}
  .metric-value small{font-size:12px}.metric-icon{flex-shrink:0}.chart-wrap{height:240px;margin:16px 12px}
  .chart-heading{padding:18px 16px 0}.chart-insight{padding:14px 16px}.chart-legend{padding-left:16px}
  .methodology summary{min-height:48px}.section-kicker{font-size:10px}footer,footer small{font-size:12px}
}
@media(max-width:359px){
  .metrics{grid-template-columns:1fr}.header-inner{gap:8px}.brand-mark{display:none}
  .intro h1{font-size:24px}.filter-grid{grid-template-columns:1fr}
}

/* Link to the existing transaction map. */
.trade-analysis-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 16px;border:1px solid var(--ink);border-radius:7px;background:var(--ink);color:#fff;font-size:14px;font-weight:650;white-space:nowrap}
.trade-analysis-link:hover{background:#25465d}
@media(max-width:520px){.trade-analysis-link{padding:9px 12px;font-size:13px}}

/* Keep five monthly prices readable with horizontal scrolling on small screens. */
#ranking-table th,#ranking-table td{padding-left:14px;padding-right:14px}
#ranking-table th:nth-child(2),#ranking-table td:nth-child(2){min-width:200px}

.area-filter{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:16px;padding:14px;background:#f6f8fa;border-radius:8px}.area-filter label{font-size:12px;font-weight:600}.area-filter select{max-width:100%;min-height:44px;padding:8px;border:1px solid #dde3e8;border-radius:7px;background:white;color:var(--ink)}.area-filter p{flex-basis:100%;margin:0;font-size:12px;color:var(--muted)}

.area-ranking-table tbody .rank-group-cell{background:#f8fafb;vertical-align:top;padding-top:15px;text-align:center}.area-ranking-table .rank-area,.area-ranking-table .rank-location{text-align:left}.area-ranking-table .rank-area{font-size:11px;color:var(--muted)}.area-ranking-table .rank-group-start>*{border-top:2px solid #dde6eb}.area-ranking-table .ranking-placeholder td{color:#9aa5ae;background:#fcfdfd}.area-ranking-table .rank-location .apartment-name{max-width:240px}
.area-ranking-table thead th:nth-child(3){text-align:left}

/* Latest loaded period is informational and updates automatically. */
#year:disabled,#month:disabled{opacity:1;cursor:default}
