:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:system-ui,-apple-system,Apple SD Gothic Neo,Malgun Gothic,Segoe UI,Roboto,sans-serif;line-height:1.5}html,body{color:#e8edf6;background:#0f1420;min-height:100vh;margin:0;padding:0}a{color:inherit}button{font-family:inherit}:root{--bg:#0f1420;--panel:#1a2233;--panel-2:#222c41;--line:#2d3a52;--text:#e8edf6;--muted:#9aa7bd;--accent:#4c8bf5;--accent-soft:#2a3b5c;--danger:#ff5d5d;--danger-bg:#3a1c20}*{box-sizing:border-box}.app{max-width:1280px;color:var(--text);margin:0 auto;padding:24px 20px 48px}.app-header h1{letter-spacing:-.02em;margin:0;font-size:1.9rem}.app-tagline{color:var(--muted);margin:6px 0 0}.global-banner{background:var(--danger-bg);border:1px solid var(--danger);color:#ffd5d5;border-radius:10px;margin:16px 0 0;padding:12px 16px;font-size:.9rem}.app-main{grid-template-columns:minmax(440px,1.35fr) minmax(360px,1fr);align-items:start;gap:24px;margin-top:24px;display:grid}@media (width<=880px){.app-main{grid-template-columns:1fr}}.map-section{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:16px}.map-wrap{position:relative}.korea-map{width:100%;height:auto;display:block;overflow:visible}.province{cursor:pointer;transition:transform .18s;transform:scale(1)}.province-path{fill:var(--panel-2);stroke:var(--line);stroke-width:.8px;transition:fill .18s,stroke .18s}.map-labels{pointer-events:none}.map-label .province-label{fill:var(--muted);text-anchor:middle;dominant-baseline:middle;paint-order:stroke;stroke:var(--bg);stroke-width:3.5px;stroke-linejoin:round;font-size:12px;font-weight:700;transition:fill .18s}.map-label .province-count{fill:var(--muted);text-anchor:middle;dominant-baseline:middle;paint-order:stroke;stroke:var(--bg);stroke-width:3px;stroke-linejoin:round;font-size:8.5px;font-weight:600}.map-label.is-callout{pointer-events:auto;cursor:pointer}.map-label.is-callout .province-label{fill:var(--text)}.label-leader{stroke:var(--muted);stroke-width:.8px;opacity:.5;transition:stroke .18s,opacity .18s}.province.is-hovered{transform:scale(1.08)}.province.is-hovered .province-path{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1.4px}.map-label.is-hovered .province-label{fill:#fff}.map-label.is-hovered .label-leader,.map-label.is-selected .label-leader{stroke:var(--accent);opacity:1}.province.is-selected .province-path{fill:var(--accent);stroke:#9cc0ff;stroke-width:1.4px}.map-label.is-selected .province-label,.map-label.is-selected .province-count{fill:#fff}.province:focus{outline:none}.province:focus-visible .province-path{stroke:#fff;stroke-width:1.6px}.map-tooltip{text-align:center;min-height:22px;color:var(--text);margin-top:12px;font-size:.9rem}.map-tooltip-hint{color:var(--muted)}.region-panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;min-height:200px;padding:20px}.region-panel.placeholder{color:var(--muted);text-align:center;justify-content:center;align-items:center;display:flex}.panel-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;margin-bottom:14px;padding-bottom:14px;display:flex}.panel-eyebrow{color:var(--accent);letter-spacing:.04em;margin:0;font-size:.78rem;font-weight:700}.panel-head h2{margin:4px 0 2px;font-size:1.4rem}.panel-code{color:var(--muted);margin:0;font-size:.78rem}.panel-close{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;width:32px;height:32px;font-size:1.2rem;line-height:1}.panel-close:hover{color:var(--text);border-color:var(--muted)}.panel-state{color:var(--muted);padding:16px 0}.panel-error{color:#ffd5d5}.section-list{flex-direction:column;gap:12px;display:flex}.election-section{border:1px solid var(--line);background:#222c4159;border-radius:12px;overflow:hidden}.section-head{width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:12px 14px;display:flex}.section-head:hover{background:#4c8bf514}.section-chevron{color:var(--muted);width:14px;font-size:.8rem}.section-title{flex:1;font-size:1rem;font-weight:700}.section-count{color:var(--muted);background:var(--accent-soft);text-align:center;border-radius:999px;min-width:26px;padding:2px 10px;font-size:.78rem}.section-empty{color:var(--muted);margin:0;padding:10px 16px 14px;font-size:.88rem;font-style:italic}.sigungu-wrap,.party-wrap{padding:0 12px 12px}.sigungu-search{background:var(--bg);border:1px solid var(--line);width:100%;color:var(--text);border-radius:8px;margin:4px 0 10px;padding:8px 12px;font-size:.88rem}.sigungu-search:focus{border-color:var(--accent);outline:none}.sigungu-chips{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.sigungu-chip{background:var(--panel-2);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:4px 10px;font-size:.78rem;text-decoration:none}.sigungu-chip:hover{color:var(--text);border-color:var(--accent)}.sigungu-group,.party-group{margin-bottom:14px;scroll-margin-top:8px}.sigungu-group:last-child,.party-group:last-child{margin-bottom:0}.sigungu-head,.party-head{color:var(--accent);align-items:center;gap:8px;margin:0 0 8px;font-size:.92rem;font-weight:700;display:flex}.sigungu-count,.party-count{color:var(--muted);background:var(--accent-soft);border-radius:999px;padding:1px 8px;font-size:.72rem;font-weight:600}.candidate-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.candidate-card{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;overflow:hidden}.candidate-card.expanded{border-color:var(--accent)}.candidate-summary{width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;grid-template-columns:auto 1fr auto auto 20px;align-items:center;gap:10px;padding:14px 16px;display:grid}.candidate-summary:has(.cand-order){grid-template-columns:auto auto 1fr auto auto 20px}.cand-order{color:#fff;background:var(--accent);border-radius:8px;justify-content:center;align-items:center;min-width:24px;height:24px;padding:0 6px;font-size:.78rem;font-weight:700;display:inline-flex}.candidate-summary:hover{background:#4c8bf514}.cand-name{font-size:1.05rem;font-weight:700}.cand-party{color:var(--muted);font-size:.85rem}.cand-crim{color:#b6e8a8;white-space:nowrap;background:#233521;border-radius:999px;padding:3px 8px;font-size:.78rem}.cand-crim.alert{background:var(--danger-bg);color:#ffb0b0}.cand-chevron{color:var(--muted);font-size:.7rem}.detail{border-top:1px solid var(--line);padding:4px 16px 18px}.detail-loading,.detail-error{color:var(--muted);padding:14px 16px}.detail-error{color:#ffd5d5}.detail-head{justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 0 6px;display:flex}.detail-head-main{align-items:center;gap:14px;display:flex}.detail-head h3{margin:0;font-size:1.2rem}.candidate-avatar{border:1px solid var(--line);background-color:var(--panel-2)}.detail-sub{color:var(--muted);margin:4px 0 0;font-size:.88rem}.detail-meta{color:var(--muted);margin:2px 0 0;font-size:.82rem}.status-badge{white-space:nowrap;border-radius:999px;padding:4px 9px;font-size:.72rem;font-weight:600}.status-verified{color:#9be0b0;background:#1d3326}.status-sample{color:#e9d98a;background:#33301a}.status-none{color:#b9b9c4;background:#2c2c33}.detail-section{margin-top:16px}.detail-section h4{color:var(--text);margin:0 0 8px;font-size:.95rem}.bullet-list,.pledge-list{color:var(--text);margin:0;padding-left:18px;font-size:.9rem}.bullet-list li,.pledge-list li{margin-bottom:6px}.pledge-list p{color:var(--muted);margin:2px 0 0;font-size:.85rem}.detail-sources a{color:var(--accent);word-break:break-all;font-size:.82rem}.criminal-section{border:1px solid var(--line);border-radius:12px;margin-top:16px;padding:14px 16px}.criminal-section h4{margin:0 0 8px;font-size:1rem}.criminal-section.has-records{background:var(--danger-bg);border-color:var(--danger)}.criminal-section.has-records h4{color:var(--danger)}.criminal-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.criminal-list li{border-bottom:1px solid #ff5d5d40;flex-direction:column;gap:2px;padding-bottom:8px;display:flex}.criminal-list li:last-child{border-bottom:none;padding-bottom:0}.offense{color:#ffd0d0;font-weight:700}.disposition{color:#ffb0b0;font-size:.88rem}.cr-meta{color:#cf9a9a;font-size:.78rem}.criminal-clean{color:#9be0b0;margin:0;font-weight:600}.criminal-unknown{color:var(--muted);margin:0;font-weight:600}.app-footer{color:var(--muted);border-top:1px solid var(--line);margin-top:32px;padding-top:16px;font-size:.78rem;line-height:1.5}.adsense-slot{min-height:90px;margin-top:18px;overflow:hidden}.region-panel-ad{border-top:1px solid var(--line);padding-top:16px}.adsense-slot:before{content:"광고";color:var(--muted);letter-spacing:.04em;margin-bottom:6px;font-size:.7rem;display:block}.adfit-slot{margin-top:18px}.adfit-slot:before{content:"광고";color:var(--muted);letter-spacing:.04em;margin-bottom:6px;font-size:.7rem;display:block}.adfit-mobile-sticky{display:none}@media (width<=880px){.adfit-mobile-sticky{z-index:50;border-top:1px solid var(--line);padding:6px 0 max(6px, env(safe-area-inset-bottom));background:#0f1420f2;justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.adfit-mobile-sticky .adfit-slot{margin-top:0}.adfit-mobile-sticky .adfit-slot:before{display:none}.app{padding-bottom:120px}}.app-header{position:relative}.board-open-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:10px 16px;font-size:.95rem;font-weight:600;transition:background .15s;position:absolute;top:0;right:0}.board-open-btn:hover{background:#3f7ce0}.board-open-btn:disabled{opacity:.5;cursor:default}@media (width<=640px){.board-open-btn{width:100%;margin-top:14px;position:static}}.board-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1000;background:#060a12b8;justify-content:center;align-items:flex-start;padding:5vh 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.board-modal{background:var(--panel);border:1px solid var(--line);border-radius:16px;width:100%;max-width:640px;padding:22px 22px 28px;box-shadow:0 20px 60px #00000080}.board-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;padding-bottom:14px;display:flex}.board-head h2{margin:2px 0 0;font-size:1.4rem}.board-toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin:16px 0;display:flex}.board-hint{color:var(--muted);font-size:.82rem;line-height:1.4}.board-write-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:9px;padding:9px 16px;font-weight:600}.board-write-btn:hover{background:#3f7ce0}.board-write-btn:disabled{opacity:.45;cursor:default}.board-form{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:10px;margin-bottom:18px;padding:16px;display:flex}.board-form-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.board-form-bottom{justify-content:space-between}.board-input,.board-textarea{background:var(--bg);border:1px solid var(--line);width:100%;color:var(--text);font:inherit;border-radius:8px;padding:10px 12px}.board-textarea{resize:vertical;min-height:96px;line-height:1.5}.board-input:focus,.board-textarea:focus,.board-field-inline input:focus{border-color:var(--accent);outline:none}.board-check{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;display:inline-flex}.board-field-inline{color:var(--muted);align-items:center;gap:8px;font-size:.9rem;display:inline-flex}.board-field-inline input{background:var(--bg);border:1px solid var(--line);width:84px;color:var(--text);font:inherit;letter-spacing:.3em;text-align:center;border-radius:8px;padding:8px 10px}.board-form-actions{justify-content:flex-end;gap:10px;display:flex}.board-form-actions button,.board-unlock button{border:1px solid var(--line);color:var(--muted);cursor:pointer;font:inherit;background:0 0;border-radius:8px;padding:8px 14px}.board-form-actions button:hover,.board-unlock button:hover{color:var(--text);border-color:var(--muted)}.board-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.board-item{border:1px solid var(--line);background:var(--panel-2);border-radius:10px;overflow:hidden}.board-item.open{border-color:var(--accent-soft)}.board-item-head{width:100%;color:var(--text);cursor:pointer;text-align:left;font:inherit;background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;padding:13px 15px;display:flex}.board-item-title{word-break:break-word;align-items:center;gap:6px;font-weight:600;display:inline-flex}.board-lock{font-size:.85em}.board-item-meta{color:var(--muted);white-space:nowrap;flex-shrink:0;align-items:center;gap:10px;font-size:.8rem;display:inline-flex}.board-author{color:var(--text)}.board-body{border-top:1px solid var(--line);padding:0 15px 15px}.board-content{white-space:pre-wrap;word-break:break-word;color:var(--text);margin:14px 0;line-height:1.6}.board-content.muted{color:var(--muted)}.board-unlock{flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px;display:flex}.board-unlock button[type=submit]{background:var(--accent);color:#fff;border-color:var(--accent)}.board-unlock button[type=submit]:hover{background:#3f7ce0}.board-unlock button:disabled{opacity:.45;cursor:default}.board-delete-btn{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;padding:6px 12px;font-size:.85rem}.board-delete-btn:hover{color:var(--danger);border-color:var(--danger)}.board-delete-confirm{background:var(--danger)!important;border-color:var(--danger)!important;color:#fff!important}.board-error{color:#ffd5d5;background:var(--danger-bg);border:1px solid var(--danger);border-radius:8px;margin:10px 0 0;padding:8px 12px;font-size:.85rem}
