:root{--bg:#f4f6f8;--surface:#fff;--surface-subtle:#f9fafb;--field:#fff;--notice:#eef4f6;--text:#475569;--text-strong:#111827;--muted:#64748b;--border:#e2e8f0;--border-strong:#cbd5e1;--accent:#176b75;--accent-hover:#11535b;--focus:#176b752e;--shadow:0 12px 30px #0f172a0f;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--bg);min-width:320px}body{min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{letter-spacing:0}p{line-height:1.6}#root{min-height:100vh}.app-shell{width:min(1440px,100%);margin:0 auto;padding:28px}.intro{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:24px;padding:18px 0 30px;display:grid}.eyebrow,.section-heading p{color:var(--muted);letter-spacing:0;margin:0 0 8px;font-size:13px;font-weight:700}.intro h1{color:var(--text-strong);margin:0;font-size:42px;line-height:1.1}.intro-copy{max-width:720px;color:var(--text);margin:14px 0 0;font-size:17px}.intro-status{border:1px solid var(--border);background:var(--surface);border-radius:8px;min-width:220px;padding:16px}.intro-status span,.intro-status strong{display:block}.intro-status span{color:var(--muted);font-size:13px}.intro-status strong{color:var(--text-strong);margin-top:4px;font-size:16px}.workspace{grid-template-columns:minmax(340px,420px) minmax(0,1fr);align-items:start;gap:20px;display:grid}.panel{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:8px}.input-panel,.result-panel{padding:22px}.input-panel{position:sticky;top:20px}.section-heading{margin-bottom:20px}.section-heading h2{color:var(--text-strong);margin:0;font-size:24px;line-height:1.25}label{color:var(--text-strong);gap:8px;margin-top:16px;font-size:14px;font-weight:700;display:grid}.address-field{margin-top:16px}.address-field label{margin-top:0}.search-row{grid-template-columns:minmax(0,1fr) 76px;gap:8px;display:grid}input,select{box-sizing:border-box;border:1px solid var(--border-strong);background:var(--field);width:100%;min-height:44px;color:var(--text-strong);font:inherit;border-radius:6px;outline:none;padding:10px 12px;font-size:15px}.secondary-action{border:1px solid var(--border-strong);background:var(--surface-subtle);min-height:44px;color:var(--text-strong);font:inherit;cursor:pointer;border-radius:6px;font-size:14px;font-weight:800}.secondary-action:hover{border-color:var(--accent)}.secondary-action:disabled{color:var(--muted);cursor:wait}input:focus,select:focus,.secondary-action:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus)}.api-key-notice,.search-message{color:#7a4a00;background:#fff8e8;border:1px solid #f0c36d;border-radius:6px;padding:10px 12px;font-size:13px;line-height:1.5}.api-key-notice{margin-bottom:18px}.search-message{margin:8px 0 0}.search-results{gap:8px;margin-top:10px;display:grid}.search-results button{border:1px solid var(--border);background:var(--surface-subtle);width:100%;color:var(--text);text-align:left;cursor:pointer;border-radius:6px;gap:4px;padding:11px 12px;display:grid}.search-results button:hover,.search-results button:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus);outline:none}.search-results strong{color:var(--text-strong);font-size:14px}.search-results span,.search-results em,.location-meta{color:var(--muted);font-size:12px;font-style:normal;line-height:1.4}.location-meta{margin-top:7px;display:block}.field-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.primary-action{background:var(--accent);color:#fff;width:100%;min-height:48px;font:inherit;cursor:pointer;border:0;border-radius:6px;margin-top:22px;font-weight:800}.primary-action:hover{background:var(--accent-hover)}.primary-action:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.risk-band{background:var(--risk-bg);border:1px solid var(--risk-border);border-radius:8px;grid-template-columns:minmax(150px,1fr) minmax(160px,2fr) auto;align-items:center;gap:16px;padding:16px;display:grid}.risk-band span,.metric span{color:var(--muted);font-size:13px;font-weight:700;display:block}.risk-band strong{color:var(--text-strong);margin-top:3px;font-size:22px;display:block}.risk-band em{color:var(--text-strong);font-style:normal;font-weight:800}meter{width:100%;height:12px}.risk-안정{--risk-bg:#eefaf4;--risk-border:#b8e6cb}.risk-낮음{--risk-bg:#f3faec;--risk-border:#cfe8aa}.risk-보통{--risk-bg:#fff8e8;--risk-border:#efd391}.risk-주의{--risk-bg:#fff2e8;--risk-border:#efbd95}.risk-위험{--risk-bg:#fff0f0;--risk-border:#eda2a2}.result-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:18px;display:grid}.metric{border:1px solid var(--border);background:var(--surface-subtle);border-radius:8px;padding:15px}.metric strong{color:var(--text-strong);margin-top:8px;font-size:19px;line-height:1.25;display:block}.info-block,.message-box,.empty-state{border:1px solid var(--border);background:var(--surface-subtle);border-radius:8px;margin-top:16px;padding:16px}.info-block h3,.message-box h3{color:var(--text-strong);margin:0 0 10px;font-size:16px}.info-block p,.message-box p,.empty-state p{margin:6px 0 0}dl{grid-template-columns:1fr 1fr;gap:10px 18px;margin:0;display:grid}dl div{min-width:0}dt{color:var(--muted);font-size:13px;font-weight:700}dd{color:var(--text-strong);overflow-wrap:anywhere;margin:3px 0 0}.two-column{grid-template-columns:1fr 1fr;gap:12px;display:grid}ul{margin:0;padding-left:20px}li+li{margin-top:6px}.message-stack{grid-template-columns:1fr;display:grid}.empty-state{text-align:center;place-content:center;min-height:300px;display:grid}.empty-state strong{color:var(--text-strong);font-size:18px}.notice{border:1px solid var(--border);background:var(--notice);color:var(--muted);border-radius:8px;gap:8px;margin-top:20px;padding:18px 20px;font-size:13px;display:grid}.notice p{margin:0}@media (width<=1100px){.workspace,.intro{grid-template-columns:1fr}.input-panel{position:static}.result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.app-shell{padding:18px}.intro h1{font-size:34px}.field-grid,.two-column,.result-grid,dl,.risk-band{grid-template-columns:1fr}.input-panel,.result-panel{padding:18px}}
