@import "https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.css";
:root{--bg:#fafafa;--bg-elev:#fff;--glass:#ffffffc7;--glass-strong:#ffffffeb;--ink:#0a0a0f;--ink-2:#45454d;--ink-3:#8e8e93;--ink-4:#c7c7cc;--line:#0000000f;--line-2:#0000001a;--accent:#007aff;--accent-2:#0051d5;--red:#ff3b30;--orange:#ff9500;--green:#34c759;--purple:#af52de;--gray:#8e8e93;--shadow-1:0 1px 2px #0000000a, 0 0 0 .5px #0000000a;--shadow-2:0 4px 14px #0000000f, 0 1px 3px #0000000a, 0 0 0 .5px #0000000a;--shadow-3:0 24px 48px #0000001a, 0 4px 12px #0000000d, 0 0 0 .5px #0000000a;--ease:cubic-bezier(.32, .72, 0, 1);--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:20px}*{box-sizing:border-box;margin:0;padding:0}html,body{font-feature-settings:"tnum" on, "cv09" on, "cv11" on;background:var(--bg);color:var(--ink);letter-spacing:-.01em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Pretendard Variable,Pretendard,-apple-system,BlinkMacSystemFont,system-ui,Apple SD Gothic Neo,Malgun Gothic,sans-serif;line-height:1.4}button{cursor:pointer;font-family:inherit}a{color:inherit;text-decoration:none}input,select,button{letter-spacing:-.01em;font-family:inherit}#app{grid-template:"ctrls ctrls"56px"map panel"1fr/minmax(0,1fr) 440px;display:grid;position:fixed;inset:0;overflow:hidden}#mapStage{background:#eef3f8;grid-area:map;position:relative;overflow:hidden}#mapStage #kakaoMap{width:100%;height:100%}.spotlight{background:var(--bg-elev);border-bottom:1px solid var(--line);scrollbar-width:none;flex-wrap:nowrap;grid-area:ctrls;align-items:center;gap:10px;padding:0 18px;display:flex;position:relative;overflow:auto hidden}.spotlight::-webkit-scrollbar{display:none}.spotlight .brand{color:var(--ink);letter-spacing:-.025em;border-right:1px solid var(--line);-webkit-user-select:none;user-select:none;flex-shrink:0;align-items:center;gap:7px;padding-right:10px;font-size:14px;font-weight:700;display:inline-flex}.spotlight .brand .dot{background:var(--accent);border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px #007aff2e}.spotlight .seg{transition:background .18s var(--ease);background:#0000000a;border-radius:9px;flex-shrink:0;align-items:center;gap:6px;padding:4px 6px;display:inline-flex}.spotlight .seg:hover{background:#00000012}.spotlight .seg label{color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase;font-size:10px;font-weight:600}.spotlight select,.spotlight input{color:var(--ink);letter-spacing:-.01em;background:0 0;border:none;outline:none;min-width:0;padding:3px 4px;font-size:13px;font-weight:500}.spotlight select{cursor:pointer}.spotlight input{flex-shrink:1;min-width:200px}.spotlight input::placeholder{color:var(--ink-3)}.spotlight .reset{color:var(--ink-3);transition:all .18s var(--ease);background:0 0;border:none;border-radius:8px;flex-shrink:0;padding:4px 10px;font-size:12px}.spotlight .reset:hover{color:var(--ink);background:#0000000f}.spotlight .count{background:var(--accent);color:#fff;font-feature-settings:"tnum" on;letter-spacing:-.01em;border-radius:9px;flex-shrink:0;align-items:center;gap:4px;margin-left:auto;padding:5px 12px;font-size:12.5px;font-weight:700;display:inline-flex}.spotlight .count.muted{color:var(--ink-2);background:#0000000d}.spotlight .count .lbl{opacity:.7;font-size:10.5px;font-weight:500}.right-panel{background:var(--bg-elev);border-left:1px solid var(--line);flex-direction:column;grid-area:panel;display:flex;overflow:hidden}.right-panel .rp-head{border-bottom:1px solid var(--line);background:var(--bg-elev);justify-content:space-between;align-items:flex-end;gap:12px;padding:20px 24px 18px;display:flex}.right-panel .rp-head .titles{flex-direction:column;gap:4px;min-width:0;display:flex}.right-panel .rp-head .eyebrow{letter-spacing:.06em;color:var(--ink-3);text-transform:uppercase;font-size:10.5px;font-weight:600}.right-panel .rp-head h2{letter-spacing:-.025em;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:24px;font-weight:700;line-height:1.1;overflow:hidden}.right-panel .rp-head .num-wrap{text-align:right;flex-shrink:0}.right-panel .rp-head .num{letter-spacing:-.04em;color:var(--ink);font-feature-settings:"tnum" on;font-size:48px;font-weight:700;line-height:1}.right-panel .rp-head .delta{margin-top:4px;font-size:11.5px;font-weight:600}.right-panel .rp-head .delta.up{color:var(--red)}.right-panel .rp-head .delta.dn{color:var(--accent)}.right-panel .rp-body{overscroll-behavior:contain;flex-direction:column;flex:1;gap:14px;padding:16px 20px 20px;display:flex;overflow-y:auto}.right-panel .rp-body::-webkit-scrollbar{width:8px}.right-panel .rp-body::-webkit-scrollbar-thumb{background:#0000002e;border-radius:6px}.right-panel .rp-body::-webkit-scrollbar-thumb:hover{background:#00000052}.right-panel{position:relative}.right-panel:after{content:"";pointer-events:none;z-index:5;background:linear-gradient(#0000,#fffffff2);height:24px;position:absolute;bottom:0;left:0;right:8px}.section{flex-direction:column;gap:8px;display:flex}.section .label{color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;font-size:10.5px;font-weight:600}.year-pills{flex-wrap:wrap;gap:5px;display:flex}.year-pill{color:var(--ink-2);cursor:pointer;transition:all .18s var(--ease);font-feature-settings:"tnum" on;background:#0000000a;border:none;border-radius:8px;padding:5px 10px;font-size:11.5px;font-weight:600}.year-pill:hover{background:#00000012}.year-pill.active{background:var(--ink);color:#fff}.kpi-mini-grid{grid-template-columns:1fr 1fr;gap:9px;display:grid}.kpi-mini{border-radius:var(--r-md);transition:background .18s var(--ease);background:#00000006;padding:11px 13px}.kpi-mini:hover{background:#0000000a}.kpi-mini .l{color:var(--ink-3);letter-spacing:.02em;text-transform:uppercase;font-size:10px;font-weight:600}.kpi-mini .v{color:var(--ink);letter-spacing:-.025em;font-feature-settings:"tnum" on;margin-top:3px;font-size:20px;font-weight:700;line-height:1.15}.kpi-mini .s{color:var(--ink-3);margin-top:3px;font-size:10.5px;font-weight:500}.chart-card{border-radius:var(--r-md);background:#00000006;padding:12px 14px}.chart-card .ch-title{color:var(--ink-2);letter-spacing:-.005em;text-transform:none;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:11.5px;font-weight:700;display:flex}.chart-card .ch-title .ch-sub{color:var(--ink-3);letter-spacing:0;font-size:10.5px;font-weight:500}.rtable{border-collapse:collapse;font-feature-settings:"tnum" on;width:100%;font-size:11.5px}.rtable th,.rtable td{text-align:right;border-bottom:1px solid var(--line);white-space:nowrap;padding:5px 6px}.rtable th:first-child,.rtable td:first-child{text-align:left}.rtable th{color:var(--ink-3);letter-spacing:.03em;text-transform:uppercase;background:#00000005;font-size:10px;font-weight:600}.rtable tbody tr{cursor:pointer;transition:background .12s var(--ease)}.rtable tbody tr:hover{background:#00000008}.rtable tbody tr.sel{background:#007aff1a}.rtable tr.total-row td{color:var(--accent);border-bottom:1.5px solid #007aff40;font-weight:700}.delta-inline{opacity:.75;margin-left:3px;font-size:9.5px}.up-mini{color:var(--red)}.dn-mini{color:var(--accent)}.gu-section{margin-bottom:10px}.gu-section h3{color:var(--ink-2);border-radius:var(--r-sm);letter-spacing:-.005em;background:#0000000a;justify-content:space-between;align-items:center;margin-bottom:5px;padding:5px 10px;font-size:11px;font-weight:700;display:flex}.gu-section h3 .cn{color:var(--accent);font-size:10.5px;font-weight:700}.station-card{background:var(--bg-elev);border:.5px solid var(--line);border-radius:var(--r-sm);transition:background .12s var(--ease);grid-template-columns:1fr 1.5fr;gap:8px;margin-bottom:4px;padding:8px 10px;font-size:11.5px;display:grid}.station-card:hover{background:#007aff0a}.station-card .nm{color:var(--ink);letter-spacing:-.01em;font-weight:600}.station-card .br{color:var(--ink-3);margin-left:4px;font-size:10px;font-weight:500}.station-card .addr{color:var(--ink-3)}.legend{z-index:30;background:var(--glass-strong);-webkit-backdrop-filter:saturate(180%)blur(24px);border-radius:var(--r-md);box-shadow:var(--shadow-2);-webkit-user-select:none;user-select:none;max-width:240px;transition:padding .22s var(--ease);padding:10px 14px;font-size:11px;position:absolute;bottom:18px;left:18px}.legend.collapsed{padding:6px 10px}.legend .lg-toggle{cursor:pointer;width:100%;color:var(--ink-2);background:0 0;border:none;justify-content:space-between;align-items:center;gap:10px;margin-bottom:4px;padding:0;font-family:inherit;display:flex}.legend .lg-toggle .ttl-row{color:var(--ink-2);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:8px;font-size:10px;font-weight:700;display:flex}.legend .lg-toggle .cnt{color:var(--ink);font-feature-settings:"tnum" on;letter-spacing:-.01em;text-transform:none;font-size:11.5px;font-weight:700}.legend .lg-toggle .chev{color:var(--ink-3);transition:transform .22s var(--ease);font-size:11px}.legend.collapsed .lg-toggle{margin-bottom:0}.legend .lg-rows{flex-direction:column;gap:1px;margin-top:2px;display:flex}.legend .lg-row{cursor:pointer;color:var(--ink-2);transition:background .12s var(--ease), opacity .18s var(--ease);text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;margin:0 -7px;padding:4px 7px;font-family:inherit;font-size:11px;display:flex}.legend .lg-row:hover{background:#0000000f}.legend .lg-row .dot{width:11px;height:11px;transition:all .18s var(--ease);border-radius:50%;flex-shrink:0;position:relative;box-shadow:0 0 0 1.5px #fffffff2,0 1px 3px #0000002e}.legend .lg-row .txt{flex:1;font-weight:500}.legend .lg-row .switch{text-align:center;width:18px;color:var(--ink-3);letter-spacing:-.05em;font-size:10px;font-weight:700}.legend .lg-row .dot{transform:scale(.78);box-shadow:inset 0 0 0 1px #0000001a}.legend .lg-row .txt{color:var(--ink-3);font-weight:500}.legend .lg-row.on .dot{transform:scale(1);box-shadow:0 0 0 1.5px #fffffff2,0 1px 3px #0000002e}.legend .lg-row.on .txt{color:var(--ink);font-weight:600}.legend .lg-row.on .switch{color:var(--green);font-weight:700}.legend .lg-reset{background:var(--ink);color:#fff;cursor:pointer;letter-spacing:-.01em;width:100%;transition:background .18s var(--ease);border:none;border-radius:6px;margin-top:6px;padding:4px 8px;font-family:inherit;font-size:10.5px;font-weight:600}.legend .lg-reset:hover{background:var(--accent)}.legend .hint{color:var(--ink-3);margin-top:8px;font-size:10px;line-height:1.5}.legend .heat{align-items:center;gap:0;margin-top:6px;display:flex}.legend .heat .c{width:18px;height:8px}.legend .heat .lbl{color:var(--ink-3);margin:0 6px;font-size:9.5px}.info-wrap{letter-spacing:-.01em;min-width:240px;max-width:320px;padding:14px 16px;font-size:13px;line-height:1.55}.info-wrap .name{color:var(--ink);letter-spacing:-.02em;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;font-size:16px;font-weight:700;display:flex}.info-wrap .brand-tag{color:#fff;white-space:nowrap;letter-spacing:.01em;border-radius:99px;padding:2px 8px;font-size:10.5px;font-weight:600}.info-wrap .row{color:var(--ink-2);gap:8px;margin-bottom:2px;font-size:12.5px;display:flex}.info-wrap .row .lbl{color:var(--ink-3);letter-spacing:.02em;flex-shrink:0;min-width:42px;font-size:11px;font-weight:600}.info-wrap .link{color:var(--accent);align-items:center;gap:4px;margin-top:10px;font-size:12px;font-weight:600;display:inline-flex}.info-wrap .link:hover{color:var(--accent-2)}.brand-sk{background:var(--red)}.brand-gs{background:var(--accent)}.brand-soil{background:var(--orange)}.brand-hd{background:var(--green)}.brand-al{background:var(--purple)}.brand-ex{background:var(--gray)}.brand-etc{background:#c7c7cc}.sido-label{background:var(--glass-strong);-webkit-backdrop-filter:blur(12px);border:.5px solid var(--line-2);border-radius:var(--r-sm);color:var(--ink);white-space:nowrap;pointer-events:none;box-shadow:var(--shadow-1);letter-spacing:-.005em;font-feature-settings:"tnum" on;-webkit-user-select:none;user-select:none;padding:3px 9px;font-family:inherit;font-size:11px;font-weight:600}.sido-label b{color:var(--accent);margin-right:5px;font-weight:700}.sido-label.gu-label{padding:2px 6px;font-size:9.5px}.sido-label.gu-label b{font-size:10px}.credits-btn{z-index:30;background:var(--glass-strong);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:.5px solid var(--line-2);width:32px;height:32px;color:var(--ink-2);box-shadow:var(--shadow-1);transition:all .18s var(--ease);border-radius:50%;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:inline-flex;position:absolute;bottom:18px;right:18px}.credits-btn:hover{color:var(--accent);transform:scale(1.06)}.credits-modal-back{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .22s var(--ease);background:#00000052;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.credits-modal{background:var(--bg-elev);border-radius:var(--r-lg);width:92vw;max-width:480px;box-shadow:var(--shadow-3);animation:scaleIn .32s var(--ease);padding:28px 32px}.credits-modal h3{letter-spacing:-.02em;margin-bottom:14px;font-size:18px;font-weight:700}.credits-modal a{border-radius:var(--r-sm);color:var(--accent);transition:background .18s var(--ease);margin:2px 0;padding:8px 12px;font-size:13px;font-weight:500;display:block}.credits-modal a:hover{background:#007aff14}.credits-modal .meta{color:var(--ink-3);border-top:1px solid var(--line);margin-top:14px;padding-top:14px;font-size:11.5px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@media (max-width:1280px){#app{grid-template-columns:minmax(0,1fr) 380px}}@media (max-width:980px){#app{grid-template:"ctrls"56px"map"56vh"panel"1fr/1fr;overflow:auto}.right-panel{border-left:none;border-top:1px solid var(--line)}.right-panel .rp-head .num{font-size:36px}.right-panel .rp-head h2{font-size:20px}.legend{padding:8px 12px;font-size:10px;bottom:12px;left:12px}.legend.collapsed{padding:5px 10px}}@media (max-width:600px){.spotlight{gap:6px;padding:0 10px}.spotlight .brand{display:none}.spotlight input{min-width:120px}.spotlight .seg label{display:none}}
