/* --- Reset (tiny) --- */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font: 15px/1.55 -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans KR", "Malgun Gothic", Roboto, sans-serif;
  color:#1f2328;
  background:#f6f7f9;
  -webkit-text-size-adjust:100%;
}
a{color:#0b62d6;text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3{line-height:1.3;margin:0 0 .5rem}
h1{font-size:1.5rem;font-weight:700}
h2{font-size:1.1rem;font-weight:700;margin:1.25rem 0 .75rem}
h3{font-size:.95rem;font-weight:600}
p{margin:.25rem 0}
img{max-width:100%;height:auto}
ul,ol{padding:0;margin:0;list-style:none}

.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.muted{color:#6b7280}
.lead{color:#374151;margin:.5rem 0 1rem}
.up{color:#c0392b}
.down{color:#0e8a4a}
.empty{padding:1.5rem;color:#6b7280;text-align:center}
.more{margin-top:.75rem;font-size:.9rem}

/* --- Layout --- */
.container{max-width:1080px;margin:0 auto;padding:0 16px}

/* --- Header --- */
.site-header{
  background:#fff;border-bottom:1px solid #e5e7eb;
  position:sticky;top:0;z-index:10;
}
.header-inner{
  display:flex;align-items:center;gap:12px;
  padding:12px 16px;flex-wrap:wrap;
}
.brand{font-size:1rem;color:#111}
.site-nav{display:flex;gap:14px;font-size:.9rem;margin-left:auto;order:3}
.site-nav a{color:#374151}
.search{position:relative;flex:1 1 240px;display:flex;gap:6px;order:2}
.search input{
  flex:1;min-width:0;padding:.55rem .7rem;
  border:1px solid #d1d5db;border-radius:6px;background:#fff;font:inherit;
}
.search button{
  padding:.55rem .9rem;background:#111827;color:#fff;
  border:1px solid #111827;border-radius:6px;font:inherit;cursor:pointer;
}
.search.inline{max-width:520px;margin:0 auto}
.ac{
  position:absolute;top:100%;left:0;right:56px;
  background:#fff;border:1px solid #d1d5db;border-top:none;
  border-radius:0 0 6px 6px;max-height:280px;overflow:auto;
  margin:0;list-style:none;z-index:20;
}
.ac li{padding:.55rem .7rem;cursor:pointer;border-top:1px solid #f0f2f5}
.ac li:hover,.ac li[aria-selected="true"]{background:#f5f7fa}
.ac .ac-meta{color:#6b7280;font-size:.85em;margin-left:.4rem}

/* --- Breadcrumbs --- */
.breadcrumb{margin:16px 0 8px;font-size:.85rem;color:#6b7280}
.breadcrumb ol{display:flex;flex-wrap:wrap;gap:6px}
.breadcrumb li + li::before{content:"›";margin-right:6px;color:#9ca3af}

/* --- Hero / page head --- */
.hero{padding:24px 0 8px}
.hero h1{font-size:1.7rem}
.page-head{padding:16px 0 8px}

/* --- Sections + grid --- */
.section{padding:16px 0;border-bottom:1px solid #eef0f3}
.section:last-of-type{border-bottom:none}
.grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.grid.two{grid-template-columns:1fr}
@media (min-width:720px){.grid.two{grid-template-columns:1fr 1fr}}

/* --- Card --- */
.card{
  background:#fff;border:1px solid #e5e7eb;border-radius:6px;
  padding:14px 16px;
}
.card h2{margin-top:0}
.big-number{font-size:1.6rem;font-weight:700;margin:.25rem 0}
.big-statement{font-size:1.1rem;margin:.25rem 0}

/* --- Apartment card --- */
.apt-name{font-size:1rem;margin:0 0 .1rem}
.apt-region{color:#6b7280;font-size:.85rem;margin:0 0 .5rem}
.apt-facts{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;font-size:.9rem}
.apt-facts>div{display:flex;justify-content:space-between;border-top:1px dashed #eef0f3;padding-top:4px}
.apt-facts dt{color:#6b7280;margin:0}
.apt-facts dd{margin:0;font-variant-numeric:tabular-nums}

/* --- Chips --- */
.chip-list{display:flex;flex-wrap:wrap;gap:8px}
.chip{
  display:inline-block;padding:.35rem .7rem;
  background:#fff;border:1px solid #e5e7eb;border-radius:4px;
  color:#111827;font-size:.9rem;
}
.chip:hover{border-color:#111827;text-decoration:none}
.chip-list.large .chip{padding:.6rem 1rem;font-size:1rem}

/* --- Ranking list --- */
.rank-list{display:flex;flex-direction:column;gap:6px}
.rank-list li{
  background:#fff;border:1px solid #e5e7eb;border-radius:4px;
  display:grid;grid-template-columns:44px 1fr auto;align-items:center;
  padding:10px 12px;gap:10px;
}
.rank-num{
  font-variant-numeric:tabular-nums;font-weight:600;color:#111;
  text-align:center;font-size:.95rem;
}
.rank-name{display:block;color:#111;font-weight:600}
.rank-meta{color:#6b7280;font-size:.85rem}
.rank-value{font-variant-numeric:tabular-nums;font-size:.95rem;text-align:right}

/* --- Data table --- */
.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}
.data-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.data-table th,.data-table td{
  padding:8px 10px;border-bottom:1px solid #eef0f3;text-align:right;white-space:nowrap;
}
.data-table th:first-child,.data-table td:first-child{text-align:left}
.data-table th{background:#fafbfc;font-weight:600;color:#374151}

/* --- KV list --- */
.kv{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;margin:0}
.kv>div{display:flex;justify-content:space-between;border-top:1px dashed #eef0f3;padding-top:6px}
.kv dt{color:#6b7280;margin:0}
.kv dd{margin:0;font-variant-numeric:tabular-nums}

/* --- Breakdown bars --- */
.breakdown{display:flex;flex-direction:column;gap:8px}
.bd-row{display:flex;justify-content:space-between;font-size:.9rem}
.bar{background:#eef0f3;height:6px;border-radius:3px;overflow:hidden;margin-top:3px}
.bar-fill{background:#0b62d6;height:100%}

/* --- Result list --- */
.result-list li{
  background:#fff;border:1px solid #e5e7eb;border-radius:4px;
  padding:10px 12px;margin-bottom:6px;
  display:flex;justify-content:space-between;gap:10px;
}
.result-name{color:#111;font-weight:600}
.result-meta{color:#6b7280;font-size:.85rem}

/* --- Forms --- */
.analyze-form{display:grid;gap:12px;max-width:520px}
.field{display:flex;flex-direction:column;gap:4px}
.field label{font-size:.9rem;color:#374151}
.field input{padding:.55rem .7rem;border:1px solid #d1d5db;border-radius:6px;font:inherit}
.btn{
  display:inline-block;padding:.55rem .9rem;
  background:#fff;color:#111827;border:1px solid #111827;
  border-radius:6px;font:inherit;cursor:pointer;text-align:center;
}
.btn.primary{background:#111827;color:#fff}
.filter-bar{
  display:flex;flex-wrap:wrap;gap:12px;align-items:center;
  background:#fff;border:1px solid #e5e7eb;border-radius:6px;
  padding:10px 12px;margin:12px 0;
}
.filter-bar fieldset{border:none;padding:0;margin:0;display:flex;gap:10px}

/* --- Footer --- */
.site-footer{
  border-top:1px solid #e5e7eb;background:#fff;
  padding:24px 0;margin-top:32px;color:#6b7280;font-size:.85rem;
}
.site-footer a{color:#6b7280}

/* --- Error page --- */
.error-section{text-align:center;padding:64px 0}
.error-section h1{font-size:3rem;margin-bottom:.5rem}

/* --- Responsive tweaks --- */
@media (min-width:720px){
  h1{font-size:1.75rem}
  .site-nav{order:0;margin-left:0}
  .search{order:0;flex:1 1 320px;max-width:420px;margin-left:auto}
}
