:root{--ink:#17313f;--muted:#697b84;--line:#d7e0e4;--pale:#f5f7f8;--blue:#267bc2;--blue-dark:#135b92;--red:#c86655}*{box-sizing:border-box}html,body{min-width:320px;color:var(--ink);background:#f5f7f8;margin:0;font-family:Arial,Noto Sans KR,Malgun Gothic,sans-serif}button,select{font:inherit}button{cursor:pointer}a{color:#1267a2}.gis-app{width:min(1540px,100% - 36px);margin:0 auto;padding:0 0 28px}.gov-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:74px;display:flex}.gov-header h1{letter-spacing:-.04em;margin:0;font-size:22px;font-weight:700}.gov-header p{color:var(--muted);margin:7px 0 0;font-size:12px}.header-meta{text-align:right;color:#71828a;font-size:11px;line-height:1.65}.year-strip{border-bottom:1px solid var(--line);align-items:center;gap:20px;padding:14px 0 12px;display:flex}.view-tabs{border-bottom:1px solid var(--line);gap:24px;display:flex}.view-tabs button{color:var(--muted);background:0 0;border:0;border-bottom:3px solid #0000;padding:12px 2px 10px;font-size:13px}.view-tabs button[aria-current=page]{color:var(--blue-dark);border-bottom-color:var(--blue);font-weight:700}.timelapse-view .year-strip{border-bottom:0;padding:10px 0 0}.timelapse-view .map-heading{min-height:54px;padding:10px 16px}.timelapse-view .map-wrap{height:clamp(360px,100dvh - 325px,760px)}.timelapse-view .hospital-note{display:none}.timelapse-stamp{z-index:25;pointer-events:none;border:1px solid var(--line);font-variant-numeric:tabular-nums;background:#fffffff0;padding:12px 16px;position:absolute;top:16px;left:16px}.timelapse-stamp strong{letter-spacing:-.04em;font-size:38px;line-height:1.1;display:block}.timelapse-stamp small{margin-left:4px;font-size:16px;font-weight:400}.timelapse-stamp span{margin-top:7px;font-size:15px;display:block}.timelapse-stamp span.up,.timelapse-stamp span.down{font-size:12px}.timelapse-stamp .up{color:#156fae}.timelapse-stamp .down{color:var(--red)}.timeline-player{border-top:1px solid var(--line);align-items:center;gap:24px;padding:14px 18px;display:flex}.timeline-play{border:1px solid var(--blue);background:var(--blue);color:#fff;border-radius:2px;flex:0 0 110px;padding:9px 10px;font-size:12px}.timeline-track{flex:1;min-width:0}.timeline-track input{width:100%;accent-color:var(--blue);cursor:pointer;margin:0;display:block}.timeline-ticks{height:14px;color:var(--muted);font-variant-numeric:tabular-nums;margin-top:6px;font-size:11px;position:relative}.timeline-ticks span{position:absolute;transform:translate(-50%)}.timeline-ticks span:first-child{transform:none}.timeline-ticks span:last-child{transform:translate(-100%)}.playback-kind{flex-wrap:wrap;gap:4px;display:flex}.playback-kind button{border:1px solid var(--line);color:var(--muted);background:#fff;padding:7px 10px;font-size:12px}.playback-kind button.active{background:var(--blue);border-color:var(--blue);color:#fff}.timelapse-stamp .projection-caption{color:var(--muted);margin:5px 0 8px;font-size:11px;display:block}.projection-row{grid-template-columns:auto auto;gap:3px 12px;padding:5px 0;font-size:12px;display:grid}.timelapse-stamp .projection-row span{text-align:right;margin:0;font-size:12px}.timelapse-stamp .projection-row small{text-align:right;grid-column:1/-1;margin:0;font-size:11px}.district-forecast-label{color:#294758;text-align:center;pointer-events:none;background:#ffffffe0;padding:4px 6px;font-size:12px}.district-forecast-label span{margin-top:3px;font-size:11px;display:block}@media (max-width:560px){.timeline-player{gap:12px;padding:12px}.timeline-play{flex-basis:88px}.timeline-ticks{font-size:9px}.timelapse-stamp{padding:10px;top:10px;left:10px}.timelapse-stamp strong{font-size:30px}}.year-buttons{flex-wrap:wrap;gap:5px;display:flex}.year-buttons button,.map-mode button,.segmented button,.scope-buttons button{color:#52656d;background:#fff;border:1px solid #c8d4d9;border-radius:2px;padding:7px 13px;font-size:12px}.year-buttons button.active,.map-mode button.active,.segmented button.active,.scope-buttons button.active{background:var(--blue);border-color:var(--blue);color:#fff}.year-buttons button{transition:background-color .3s,border-color .3s,color .3s}.current-statement,.detail-number,.detail-table{font-variant-numeric:tabular-nums}@media (prefers-reduced-motion:reduce){.year-buttons button{transition:none}}.year-buttons button.forecast{border-left:1px solid #b2c1c8;margin-left:3px}.year-buttons button.forecast.active{background:#526b78;border-color:#526b78}.current-statement{letter-spacing:-.02em;font-size:14px;font-weight:700}.analysis-layout{grid-template-columns:minmax(0,1fr) 260px;align-items:start;gap:14px;padding-top:14px;display:grid}.map-section,.control-panel,.detail-section{border:1px solid var(--line);background:#fff;border-radius:2px}.map-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;min-height:68px;padding:14px 16px;display:flex}.map-heading h2{letter-spacing:-.035em;margin:0;font-size:17px}.map-heading span{color:var(--muted);margin-top:5px;font-size:11px;display:block}.map-mode{flex-shrink:0;gap:4px;display:flex}.map-mode button{padding:6px 10px;font-size:11px}.map-wrap{background:#e9eef0;height:630px;position:relative}.map-canvas{width:100%;height:100%}.kakao-map{background:#e9eef0;font-family:Arial,Noto Sans KR,Malgun Gothic,sans-serif}.dong-label{color:#56616b;text-shadow:.75px 0 #fff,-.75px 0 #fff,0 .75px #fff,0 -.75px #fff;white-space:nowrap;pointer-events:none;padding:2px 4px;font-size:12px;font-weight:500;line-height:1.3}.dong-label-selected{color:#17313f;font-weight:700}.map-hover-tooltip{color:#17313f;white-space:nowrap;background:#fff;border:1px solid #aebdc4;border-radius:3px;padding:6px 8px;font-size:11px;line-height:1.5;box-shadow:0 2px 5px #17313f1f}.hospital-marker-wrap{white-space:nowrap;align-items:center;gap:6px;display:flex;transform:translateY(-50%)}.hospital-star-marker{color:#b32d27;background:#fff;border:2px solid #b32d27;border-radius:50%;place-items:center;width:28px;height:28px;font-size:21px;line-height:1;display:grid;box-shadow:0 1px 4px #0003}.hospital-location-label{color:#922720;box-shadow:none;background:#fff;border:1px solid #b32d27;border-radius:3px;padding:5px 8px;font-size:12px;font-weight:700}.current-hospital-marker-wrap{white-space:nowrap;align-items:center;gap:6px;display:flex;transform:translateY(-50%)}.current-hospital-marker{color:#267bc2;background:#fff;border:2px solid #267bc2;border-radius:50%;place-items:center;width:24px;height:24px;font-size:16px;line-height:1;display:grid;box-shadow:0 1px 4px #0003}.current-hospital-label{color:#135b92;background:#fff;border:1px solid #267bc2;border-radius:3px;padding:4px 7px;font-size:11px;font-weight:700}.current-hospital-note{border-left-color:#267bc2}.map-legend{border-top:1px solid var(--line);color:#53666f;flex-wrap:wrap;align-items:center;gap:8px 16px;min-height:44px;padding:9px 14px;font-size:11px;display:flex}.map-legend span{white-space:nowrap;align-items:center;display:inline-flex}.map-legend i{border:1px solid #17313f1a;width:13px;height:13px;margin-right:5px;display:inline-block}.legend-source{color:#78878e;margin-left:auto}.legend-source a{margin-left:4px}.control-panel{padding:15px 14px}.control-block{border-bottom:1px solid #e1e7e9;margin-bottom:15px;padding:0 0 15px}.control-block:last-of-type{margin-bottom:13px}.control-block h3{margin:0 0 8px;font-size:12px}.scope-buttons{grid-template-columns:1fr 1fr;gap:5px;display:grid}.scope-buttons button{padding:7px 5px;font-size:11px}.scope-buttons button:first-child{grid-column:span 2}.segmented{flex-wrap:wrap;gap:4px;display:flex}.segmented button{flex:auto;padding:7px;font-size:11px}.control-block select{width:100%;height:34px;color:var(--ink);background:#fff;border:1px solid #c8d4d9;border-radius:2px;padding:0 9px}.age-note{color:#7b8b91;margin-top:7px;font-size:10px;line-height:1.5;display:block}.hospital-note{border-left:3px solid var(--blue);background:#f3f7f8;padding:11px 10px;font-size:11px;line-height:1.55}.hospital-note b,.hospital-note span,.hospital-note small{display:block}.hospital-note span{color:#52656d;margin-top:3px}.hospital-note small{color:#7b8b91;margin-top:8px}.map-empty{text-align:center;color:#657881;background:#fafcfc;place-content:center;gap:10px;height:100%;padding:25px;display:grid}.map-empty strong{color:var(--ink);font-size:18px}.map-empty span{font-size:12px}.detail-section{margin-top:14px;padding:18px 20px 16px}.detail-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:15px;padding-bottom:14px;display:flex}.section-label{color:var(--blue);letter-spacing:.12em;font-size:10px;font-weight:700}.detail-header h2{letter-spacing:-.04em;margin:5px 0 3px;font-size:20px}.detail-header p{color:var(--muted);margin:0;font-size:11px}.detail-number{text-align:right}.detail-number strong{color:var(--blue-dark);letter-spacing:-.05em;font-size:25px;display:block}.detail-number span{color:var(--muted);margin-top:4px;font-size:11px;display:block}.detail-table{border-bottom:1px solid var(--line);grid-template-columns:repeat(4,1fr);display:grid}.detail-table>div{border-right:1px solid var(--line);min-height:73px;padding:14px 16px}.detail-table>div:last-child{border-right:0}.detail-table span,.detail-table b{display:block}.detail-table span{color:var(--muted);margin-bottom:9px;font-size:11px}.detail-table b{letter-spacing:-.04em;font-size:18px}.detail-table .up b{color:#156fae}.detail-table .down b{color:var(--red)}.detail-chart{padding-top:15px}.chart-heading{color:#52656d;justify-content:space-between;font-size:12px;display:flex}.chart-heading span{color:#7c8a90;font-size:10px}.line-chart{width:100%;height:175px;margin-top:4px;display:block}.actual-point{cursor:pointer}.chart-grid{stroke:#e4eaec;stroke-width:1px;stroke-dasharray:2 4}.chart-label{fill:#78878d;font-size:10px}.chart-missing{fill:#aeb9bd;font-size:13px}.forecast-notice{background:#f8fafb;border:1px solid #dbe3e6;margin-top:16px;padding:18px}.forecast-notice strong,.forecast-notice span{display:block}.forecast-notice strong{font-size:15px}.forecast-notice span{color:var(--muted);margin-top:7px;font-size:12px;line-height:1.7}.forecast-panel{border-top:1px solid var(--line);background:#fbfcfd;padding:18px 16px 14px}.forecast-panel-heading{display:block}.forecast-panel-heading h3{letter-spacing:-.04em;margin:0 0 4px;font-size:18px}.forecast-panel-heading p{color:var(--muted);margin:0;font-size:11px;line-height:1.6}.forecast-scope-note{color:#53666f;background:#f1f5f6;border-left:3px solid #8298a2;margin:13px 0;padding:10px 11px;font-size:11px;line-height:1.6}.forecast-table-wrap{margin-top:14px;overflow-x:auto}.forecast-table{border-collapse:collapse;width:100%;min-width:740px;color:var(--ink);background:#fff;font-size:11px}.forecast-table th,.forecast-table td{text-align:right;white-space:nowrap;border:1px solid #dfe6e9;padding:9px 10px}.forecast-table thead th{color:#50646d;background:#f1f5f6;font-weight:700}.forecast-table th:first-child,.forecast-table tbody th{text-align:left}.forecast-table tbody th{font-weight:700}.forecast-table .up{color:#156fae;font-weight:700}.forecast-table .down{color:var(--red);font-weight:700}.forecast-table .forecast-unavailable th,.forecast-table .forecast-unavailable td{color:#87949a;background:#fafbfb}.forecast-chart-heading{color:#52656d;justify-content:space-between;gap:12px;margin-top:18px;font-size:12px;display:flex}.forecast-chart-heading span{color:#7a898f;font-size:10px}.forecast-chart-heading .forecast-legend{flex-wrap:wrap;gap:8px 20px;display:flex}.forecast-chart-heading .forecast-legend span{color:#344a58;align-items:center;gap:7px;margin:0;font-size:14px;font-weight:600;display:inline-flex}.forecast-legend i{border-top:3px dashed;width:30px;height:0;display:inline-block}.forecast-chart{background:#fff;border:1px solid #e1e7e9;width:100%;height:190px;margin-top:3px;display:block}.forecast-point{cursor:pointer}.forecast-reference{border-top:1px solid var(--line);margin:14px 0;padding:12px 0;font-size:12px}.forecast-reference>span,.forecast-sources{color:var(--muted);font-size:11px}.forecast-sources{margin-top:12px}.patient-view{font-variant-numeric:tabular-nums}.patient-loading{padding:35px 0}.patient-view .analysis-layout{margin-top:14px}.patient-view .map-wrap{height:clamp(370px,100dvh - 310px,630px)}.patient-controls select{width:100%;color:var(--ink);background:#fff;border:1px solid #c8d4d9;border-radius:2px;padding:8px}.patient-controls h3:not(:first-child){margin-top:22px}.patient-caption{color:var(--muted);margin:10px 0;font-size:11px;line-height:1.65}.patient-reference{border-top:1px solid var(--line);margin-top:20px;padding-top:14px;font-size:12px}.patient-reference p{color:var(--muted);font-size:11px;line-height:1.8}.patient-comparisons{grid-template-columns:1.3fr 1fr;gap:16px;margin-top:16px;display:grid}.patient-section{border:1px solid var(--line);background:#fff;margin-top:16px;padding:16px}.patient-comparisons .patient-section{margin-top:0}.patient-section h3{margin:0;font-size:15px}.patient-section .forecast-table{min-width:520px}.patient-link{color:#135b92;font-size:inherit;text-align:left;background:0 0;border:0;padding:0;font-weight:600}.patient-row-selected{background:#eef5fb}.patient-age-legend{color:var(--muted);gap:15px;margin:14px 0;font-size:11px;display:flex}.patient-age-legend span{align-items:center;gap:5px;display:flex}.patient-age-legend i{width:12px;height:8px;display:inline-block}.patient-age-row{grid-template-columns:70px 1fr 120px;align-items:center;gap:10px;margin-top:9px;font-size:11px;display:grid}.patient-age-row>span:last-child{text-align:right}.patient-age-bars{gap:3px;display:grid}.patient-age-bars i{min-width:0;height:5px;display:block}.patient-method{border-top:1px solid var(--line);color:var(--muted);margin-top:16px;padding:13px 0;font-size:11px;line-height:1.8}.patient-method summary{cursor:pointer;color:var(--blue-dark)}@media (max-width:900px){.patient-comparisons{grid-template-columns:1fr}.patient-controls{display:block}}.loading-screen{color:#60737c;background:#f5f7f8;place-items:center;min-height:100vh;font-size:13px;display:grid}.control-panel button:disabled,.control-panel select:disabled,.map-mode button:disabled{cursor:not-allowed;opacity:.55}.data-quality-note{color:#415963;background:#f3f7fa;border-left:3px solid #267bc2;margin:12px 0;padding:10px 12px;font-size:13px;line-height:1.65}.data-quality-note a{color:#1765a3;text-decoration:underline}@media (max-width:900px){.gis-app{width:min(100% - 22px,700px)}.gov-header{align-items:flex-start;padding:16px 0}.header-meta{font-size:10px}.year-strip{display:block}.current-statement{margin-top:12px}.analysis-layout{grid-template-columns:1fr}.map-wrap{height:520px}.control-panel{grid-template-columns:1fr 1fr;gap:0 16px;display:grid}.hospital-note{grid-column:span 2}.detail-table{grid-template-columns:1fr 1fr}.detail-table>div:nth-child(2){border-right:0}.detail-table>div:nth-child(-n+2){border-bottom:1px solid var(--line)}}@media (max-width:560px){.gis-app{width:calc(100% - 18px)}.gov-header h1{font-size:18px}.header-meta{display:none}.map-heading{display:block}.map-mode{margin-top:12px}.map-wrap{height:430px}.legend-source{width:100%;margin-left:0}.control-panel{display:block}.hospital-note{margin-top:2px}.detail-header{display:block}.detail-number{text-align:left;margin-top:14px}.detail-number strong{font-size:23px}.forecast-chart-heading{display:block}.forecast-chart-heading span{text-align:left;max-width:none;margin-top:4px;display:block}}
