:root{--navy:#102d62;--blue:#2463a9;--ink:#172234;--muted:#66758b;--line:#dbe4ef;--bg:#f4f7fb;--card:#fff;--warn:#fff7df}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Pretendard,"Noto Sans KR",system-ui,sans-serif}.hero{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;padding:42px max(24px,5vw) 30px;background:linear-gradient(135deg,#0e2b60,#1f5fa7);color:white}.hero h1{font-size:clamp(30px,4vw,54px);margin:5px 0 9px}.subtitle{max-width:850px;margin:0;color:#dce9fa}.eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:800;margin:0;color:#7fa5d2}.hero .eyebrow{color:#c7ddf6}.status{padding:10px 14px;border-radius:999px;background:#ffffff1f;border:1px solid #ffffff55;font-weight:700;white-space:nowrap}main{width:min(1500px,94vw);margin:24px auto 50px}.control-card,.chart-card,.detail-card,.method-card{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:0 9px 24px #16365b0d}.control-card{padding:18px}.tabs,.segmented{display:flex;gap:7px;flex-wrap:wrap}.tab,.segmented button{border:1px solid var(--line);background:#f8fafc;border-radius:11px;padding:10px 17px;font-weight:800;color:#40516a;cursor:pointer}.tab.active,.segmented button.active{background:var(--navy);color:#fff;border-color:var(--navy)}.tab[data-available="false"]::after{content:" 자료 필요";font-size:10px;color:#a06b00}.tab.active[data-available="false"]::after{color:#ffe29e}.toolbar{display:flex;align-items:flex-end;gap:14px;justify-content:space-between;margin-top:16px;flex-wrap:wrap}.field{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:12px;font-weight:700}.field select{min-width:190px;padding:9px;border:1px solid var(--line);border-radius:9px;background:white}.notice{margin-top:14px;padding:11px 14px;background:#eef5ff;border-radius:10px;color:#31557f;font-size:14px}.notice.warning{background:var(--warn);color:#765310}.hidden{display:none!important}.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}.summary{background:white;border:1px solid var(--line);border-radius:14px;padding:15px}.summary .label{font-size:12px;color:var(--muted);font-weight:700}.summary .value{font-size:25px;font-weight:900;color:var(--navy);margin-top:5px}.chart-card{padding:20px}.chart-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-end}.chart-head h2{margin:4px 0;font-size:24px}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:5px}.dot.size{background:#4e89c7}.dot.quality{background:linear-gradient(90deg,#2563eb 0 25%,#dc2626 25% 50%,#059669 50% 75%,#7c3aed 75%)}.chart{height:min(78vh,820px);min-height:620px;margin-top:12px;position:relative}.chart svg{width:100%;height:100%;display:block}.node{cursor:pointer}.node circle{stroke:white;stroke-width:2;filter:drop-shadow(0 2px 3px #142d4e25)}.node:hover circle,.node.selected circle{stroke:#071f4b;stroke-width:4}.node text{pointer-events:none;text-anchor:middle;fill:#0c254d;font-weight:900}.tooltip{position:fixed;z-index:100;background:#0c2347;color:white;padding:11px 13px;border-radius:10px;box-shadow:0 8px 25px #0004;font-size:13px;pointer-events:none;max-width:310px}.empty{min-height:420px;display:grid;place-items:center;text-align:center;background:#faf7eb;border:1px dashed #d3ad4f;border-radius:14px;margin-top:15px;padding:30px;color:#775a18}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}.detail-card{padding:18px}.detail-card h3{margin:0 0 12px;color:var(--navy)}.detail-body{line-height:1.75;color:#3d4d63}.kv{display:grid;grid-template-columns:150px 1fr;gap:7px 14px}.kv b{color:#6a778a}.method-card{padding:22px;margin-top:16px}.method-card h2{margin-top:0;color:var(--navy)}.method-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.method-columns h3{color:var(--blue)}code{background:#eef3f9;padding:2px 5px;border-radius:5px}footer{padding:25px;text-align:center;color:#758297;font-size:13px}@media(max-width:850px){.hero{align-items:flex-start;flex-direction:column}.summary-grid{grid-template-columns:repeat(2,1fr)}.detail-grid,.method-columns{grid-template-columns:1fr}.chart{height:600px}.chart-head{align-items:flex-start;flex-direction:column}}@media(max-width:520px){.summary-grid{grid-template-columns:1fr 1fr}.toolbar{align-items:stretch}.field select{width:100%}.segmented{display:grid;grid-template-columns:1fr}.chart{min-height:520px}.kv{grid-template-columns:1fr}.hero{padding:30px 20px}}

.slice{cursor:pointer;transition:opacity .15s ease}.slice:hover{opacity:.95}.selected-outline{pointer-events:none}.center-label{font-size:22px;font-weight:900;fill:var(--navy)}.center-sub{font-size:12px;font-weight:700;fill:var(--muted)}.callout text{fill:#183252;font-weight:800}.callout .label-pct{fill:#395b87;font-weight:700}.legend-title{font-size:15px;font-weight:900;fill:var(--navy)}.legend-item{font-size:12px;fill:#23344d}.legend-pct{font-size:12px;font-weight:800;fill:#183252}.legend-note{font-size:11px;fill:var(--muted)}
@media(max-width:850px){.chart{height:920px}}

.slice{transition:filter .16s ease,opacity .16s ease}.slice:hover{filter:brightness(1.08) saturate(1.12)}
