/* 2026-11-09 swux (그록 봇): 사회복지 통계 (/사회복지통계) 대시보드 — PC: 왼쪽 기능(고정) · 오른쪽 큰 차트 / 모바일: 기능이 위, 차트가 아래. cd_swstats.py · cd_swstats.js 와 짝. 롤백: *.bak-*-swux */
.sw{max-width:960px;margin:0 auto;padding:14px 14px 40px;color:#111827;font-size:15px;line-height:1.6;word-break:keep-all}
.sw--dash{max-width:1440px}
/* 사이트 공통 section/h2/h3 기본 모양(테마) 풀기 — :where 로 0 특이도라 아래 클래스 규칙이 이김 */
.sw :where(section){padding-top:0;padding-bottom:0}
.sw :where(h1,h2,h3){border-bottom:0;padding-bottom:0;line-height:1.35;color:#111827;letter-spacing:-.01em}
/* 이 페이지에서만: 본문 틀을 넓혀 오른쪽 차트를 크게 */
.blog-area:has(> .sw--dash){max-width:1480px}
.sw .sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sw a{color:#3346c8}
.sw-hero{padding:14px 2px 10px}
.sw-hero__eyebrow{margin:0;color:#4f6bed;font-weight:800;font-size:13px}
.sw-hero h1{margin:2px 0 6px;font-size:26px;font-weight:900;letter-spacing:-.02em}
.sw-hero__lead{margin:0;color:#4b5563;font-size:14.5px;max-width:860px}
/* 두 칸 틀 */
.sw-dash{display:block}
.sw-rail{margin:0 0 14px}
.sw-rail__in{display:flex;flex-direction:column;gap:12px}
.sw-stage{min-width:0}
.sw-only-pc{display:none}
.sw-only-m{display:block}
/* 찾기 — 상세 규칙은 아래 swfind (2026-11-10) */
.sw-sug{position:absolute;left:0;right:0;list-style:none;margin:6px 0 0;padding:6px;border:1px solid #e5e7eb;border-radius:14px;background:#fff;box-shadow:0 12px 30px rgba(17,24,39,.14);max-height:60vh;overflow:auto}
.sw-sug a{display:block;padding:10px 12px;border-radius:10px;text-decoration:none!important;color:#111827!important}
.sw-sug a:hover,.sw-sug a:focus{background:#eef2ff}
.sw-sug b{display:block;font-size:15px}.sw-sug small{color:#6b7280;font-size:12px}
.sw-chips{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;padding:2px 2px 6px;margin:0 -14px;padding-left:14px;padding-right:14px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.sw-chips::-webkit-scrollbar{display:none}
.sw-chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border-radius:999px;border:1px solid #dbe1f5;background:#fff;color:#1f2937!important;font-weight:700;font-size:14.5px;text-decoration:none!important;white-space:nowrap;cursor:pointer;font-family:inherit}
.sw-chip em{font-style:normal;font-size:12px;color:#4f6bed;background:#eef2ff;border-radius:999px;padding:1px 7px}
.sw-chip:hover{border-color:#a5b4fc;background:#f8f9ff}
.sw-chip.is-on{background:#4f6bed;border-color:#4f6bed;color:#fff!important}.sw-chip.is-on em{background:rgba(255,255,255,.22);color:#fff}
.sw-count{margin:0;font-size:13px;color:#4f6bed;font-weight:800;min-height:0}.sw-count:empty{display:none}
.sw-ad{margin:16px 0;min-height:1px;clear:both}
.sw-ad .cd-adu{width:100%;display:block}
.sw-h2{font-size:18px;font-weight:900;margin:18px 0 10px}
.sw-h2 small{font-weight:600;color:#6b7280;font-size:12.5px;margin-left:4px}
/* 허브 목록 */
.sw-groups{display:flex;flex-direction:column;gap:8px}
.sw-grp{border:1px solid #e5e9f6;border-radius:14px;background:#fff;overflow:hidden;scroll-margin-top:84px}
.sw-grp>summary{display:flex;align-items:center;gap:10px;min-height:54px;padding:8px 12px;cursor:pointer;list-style:none}
.sw-grp>summary::-webkit-details-marker{display:none}
.sw-grp__ic{font-size:22px}.sw-grp__t{flex:1;min-width:0;display:flex;align-items:baseline;gap:8px}.sw-grp__t b{font-size:16px}.sw-grp__t small{color:#6b7280;font-size:12.5px}
.sw-grp__arr{transition:transform .2s;color:#6b7280}.sw-grp[open] .sw-grp__arr{transform:rotate(180deg)}
.sw-list{list-style:none;margin:0;padding:0 8px 10px;display:grid;gap:6px}
.sw-it a{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:12px;background:#f8fafc;text-decoration:none!important;color:#111827!important;min-height:48px}
.sw-it a:hover,.sw-it a:focus{background:#eef2ff}
.sw-it__t{font-weight:800;font-size:14.5px;line-height:1.4}.sw-it__m{font-size:12px;color:#6b7280}
.sw-it--ad{list-style:none}.sw-it--ad .sw-ad{margin:4px 0}
.sw-tag{font-style:normal;font-size:11px;font-weight:800;color:#047857;background:#d1fae5;border-radius:6px;padding:0 6px}
.sw-empty{padding:14px;border:1px dashed #d8deea;border-radius:14px;color:#6b7280;text-align:center;margin:0}
/* 허브 대표 카드 */
.sw-feat__grid{display:grid;grid-template-columns:1fr;gap:12px}
.sw-fc{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border-radius:18px;border:1px solid #e5e9f6;background:#fff;text-decoration:none!important;color:#111827!important;min-height:178px;box-shadow:0 1px 2px rgba(17,24,39,.04);transition:border-color .15s,box-shadow .15s}
.sw-fc:hover{border-color:#a5b4fc;box-shadow:0 8px 22px rgba(79,107,237,.12)}
.sw-fc__g{font-size:12px;color:#4f6bed;font-weight:800}.sw-fc__t{font-size:15.5px;line-height:1.35}
.sw-fc__v{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;min-height:30px}
.sw-fc__v b{font-size:24px;font-weight:900;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.sw-fc__v b small{font-size:13px;font-weight:700;color:#4b5563;margin-left:2px}
.sw-fc__v em{font-style:normal;font-size:12.5px;color:#6b7280}
.sw-fc__viz{display:block;min-height:56px;margin-top:auto}
.sw-fc__x{display:flex;justify-content:space-between;font-size:11px;color:#9ca3af}.sw-fc__x i{font-style:normal}
.sw-fc__m{font-size:12px;color:#6b7280}
.sw-mb{list-style:none;margin:0;padding:0;display:grid;gap:3px}
.sw-mb li{display:grid;grid-template-columns:62px 1fr auto;gap:6px;align-items:center;font-size:12px}
.sw-mb span{color:#374151;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sw-mb i{display:block;height:9px;border-radius:4px;background:#818cf8}.sw-mb b{font-weight:700;font-variant-numeric:tabular-nums}
.sw-gtiles{display:grid;grid-template-columns:1fr;gap:12px}
.sw-gtile{padding:14px 16px;border-radius:18px;border:1px solid #e5e9f6;background:#fbfcff;transition:opacity .15s}
.sw-gtile.is-dim{opacity:.38}
.sw-gtile__h{display:flex;align-items:center;gap:8px;width:100%;padding:0;border:0;background:none;cursor:pointer;font-family:inherit;color:#111827;text-align:left;min-height:36px}
.sw-gtile__h span{font-size:22px}.sw-gtile__h b{font-size:16px;flex:1}.sw-gtile__h em{font-style:normal;font-size:12px;color:#4f6bed;background:#eef2ff;border-radius:999px;padding:1px 8px}
.sw-gtile p{margin:2px 0 6px;font-size:13px;color:#6b7280}
.sw-gtile ul{margin:0;padding-left:18px;font-size:14px}.sw-gtile li{margin:2px 0}
.sw-gtile--ad{padding:0;border:0;background:none}
.sw-about{margin-top:20px;padding:14px 16px;border-radius:16px;background:#f8fafc}
.sw-about h2{font-size:16px;margin:0 0 6px}.sw-about ul{margin:0;padding-left:18px;color:#4b5563;font-size:14px}
/* 통계 화면 */
.sw-crumb{font-size:13px;color:#6b7280;display:flex;gap:6px;flex-wrap:wrap}.sw-crumb a{color:#4f6bed!important;font-weight:700;text-decoration:none!important}
.sw-head{margin-bottom:10px}
.sw-head h1{font-size:23px;font-weight:900;margin:6px 0 6px;letter-spacing:-.02em;line-height:1.35}
.sw-head__m{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px}
.sw-head__m span{font-size:12.5px;color:#374151;background:#f1f5f9;border-radius:8px;padding:2px 8px}.sw-head__m span:empty{display:none}
.sw-head__x{margin:0;padding:10px 14px;border-radius:14px;background:#eef2ff;color:#1e1b4b;font-size:14px;max-width:960px}
.sw-ctrl{display:flex;flex-direction:column;gap:12px;padding:12px;border:1px solid #e5e9f6;border-radius:18px;background:#fff;box-shadow:0 1px 2px rgba(17,24,39,.04)}
.sw-rs{display:flex;flex-direction:column;gap:8px}
.sw-rs+.sw-rs{border-top:1px solid #eef1f8;padding-top:12px}
.sw-rs h3{margin:0;font-size:14px;font-weight:900;color:#111827}.sw-rs h3 small{font-weight:600;color:#6b7280;font-size:12px;margin-left:4px}
.sw-rs__p{margin:0;font-size:13.5px;color:#6b7280}
.sw-2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.sw-fgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sw-c{display:flex;flex-direction:column;gap:4px;min-width:0}
.sw-c label{font-size:12.5px;font-weight:800;color:#4b5563}
.sw-c small{font-size:11.5px;color:#9ca3af;line-height:1.35}
.sw-c select{height:46px;border:1px solid #cfd6ea;border-radius:12px;padding:0 10px;font-size:15px;background:#fff;width:100%;color:#111827;font-family:inherit}
.sw-c select:focus{outline:none;border-color:#4f6bed;box-shadow:0 0 0 3px rgba(79,107,237,.15)}
.sw-pchips{display:flex;gap:6px;overflow-x:auto;padding:2px 0 4px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.sw-pc,.sw-qb{flex:0 0 auto;min-height:42px;min-width:56px;padding:0 12px;border-radius:999px;border:1px solid #cfd6ea;background:#fff;font-weight:700;font-size:14px;color:#1f2937;cursor:pointer;font-family:inherit;font-variant-numeric:tabular-nums}
.sw-pc:hover,.sw-qb:hover{border-color:#a5b4fc}
.sw-pc.is-on,.sw-qb.is-on{background:#4f6bed;border-color:#4f6bed;color:#fff}
.sw-pc--s,.sw-qb--s{min-height:34px;font-size:13px;padding:0 10px;min-width:0}
.sw-quick{display:flex;gap:6px;flex-wrap:wrap}
.sw-reset{align-self:flex-start;background:none;border:0;padding:4px 0;color:#6b7280;font-size:13px;text-decoration:underline;cursor:pointer;font-family:inherit}
.sw-rrel{padding:12px 14px;border:1px solid #e5e9f6;border-radius:18px;background:#fbfcff}
.sw-rrel h3{margin:0 0 6px;font-size:14px;font-weight:900}
.sw-rrel ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.sw-rrel li a{display:block;padding:7px 8px;border-radius:10px;font-size:13.5px;color:#1f2937!important;text-decoration:none!important;line-height:1.4}
.sw-rrel li a:hover{background:#eef2ff}
.sw-rrel__all{display:inline-block;margin-top:6px;font-size:13px;font-weight:800;text-decoration:none!important}
/* 핵심 숫자 */
.sw-kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 10px}
.sw-kpi{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:16px;background:#fff;border:1px solid #e5e9f6;min-width:0}
.sw-kpi span{font-size:12.5px;color:#6b7280;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sw-kpi b{font-size:22px;font-weight:900;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.25;overflow-wrap:anywhere}.sw-kpi b small{font-size:13px;font-weight:700;color:#4b5563;margin-left:2px}
.sw-kpi em{font-style:normal;font-size:12px;color:#6b7280}
.sw-kpi.is-up b{color:#b91c1c}.sw-kpi.is-down b{color:#1d4ed8}
.sw-sum{margin:0 0 12px;font-size:15px;font-weight:700;color:#111827;background:#fffbeb;border:1px solid #fde68a;border-radius:14px;padding:12px 14px}
/* 차트 카드 */
.sw-charts{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.sw-cc{min-width:0;padding:12px 12px 10px;border:1px solid #e5e9f6;border-radius:18px;background:#fff;box-shadow:0 1px 2px rgba(17,24,39,.04)}
.sw-cc--load{min-height:300px;background:linear-gradient(90deg,#f8fafc,#eef2ff,#f8fafc);background-size:200% 100%;animation:swld 1.2s infinite linear}
@keyframes swld{to{background-position:-200% 0}}
.sw-cc__h{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin:0 2px 8px}
.sw-cc__h h2{margin:0;font-size:16.5px;font-weight:900;letter-spacing:-.01em}
.sw-cc__h p{margin:2px 0 0;font-size:12.5px;color:#6b7280}
.sw-cc__b svg{display:block;max-width:100%;height:auto}
.sw-cc__b text{font-family:inherit}
.sw-mchips{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 8px}
.sw-sm{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.sw-sm__i h3{margin:0 0 4px;font-size:13.5px;font-weight:800;display:flex;align-items:center;gap:6px}.sw-sm__i h3 i{width:10px;height:10px;border-radius:3px;display:inline-block}.sw-sm__i h3 small{color:#6b7280;font-weight:600}
.sw-tl{font-size:13px;fill:#374151;font-weight:600}.sw-tl--s{font-size:11px}
.sw-tv{font-size:12px;fill:#111827;font-variant-numeric:tabular-nums}.sw-tv--b{font-weight:800;font-size:12.5px}
.sw-ax{font-size:11.5px;fill:#6b7280;font-variant-numeric:tabular-nums}.sw-ax--on{fill:#111827;font-weight:800}
.sw-grid{stroke:#eef0f4}
.sw-mark{stroke:#4f6bed;stroke-width:1.5;stroke-dasharray:4 3;opacity:.7}
.sw-mark2{stroke:#9ca3af;stroke-width:1.2;stroke-dasharray:2 3}
.sw-bar,.sw-pt{cursor:pointer;outline:none}
.sw-bar:hover .sw-hit,.sw-bar:focus .sw-hit,.sw-bar.is-pick .sw-hit,.sw-bar.is-sel .sw-hit,.sw-pt:hover .sw-hit,.sw-pt:focus .sw-hit,.sw-pt.is-pick .sw-hit{fill:rgba(79,107,237,.08)}
.sw-legend{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:13px;margin:0 0 6px}.sw-legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:4px;vertical-align:-1px}.sw-legend i.is-cmp{background:#9ca3af}
.sw-tip{margin:12px 0 0;padding:10px 12px;border-radius:12px;background:#f8fafc;border:1px solid #eef1f8;color:#374151;font-size:14px;min-height:44px}
.sw-tip b{color:#111827}
.sw-nodata{color:#6b7280;padding:20px;text-align:center;margin:0}
.sw-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;max-width:460px;margin:0 auto}
.sw-tile{min-height:62px;border-radius:12px;border:1px solid #c7d2fe;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:12px;cursor:pointer;color:#111827;padding:4px;font-family:inherit}
.sw-tile b{font-size:13px}.sw-tile span{font-size:12px;font-variant-numeric:tabular-nums}
.sw-tile.is-pick,.sw-tile.is-sel{outline:3px solid #111827;outline-offset:1px}
.lv-1{background:#f3f4f6;color:#9ca3af}.lv0{background:#eef2ff}.lv1{background:#c7d2fe}.lv2{background:#a5b4fc}.lv3{background:#818cf8;color:#fff}.lv4{background:#4f46e5;color:#fff}
.sw-scale{display:flex;align-items:center;justify-content:center;gap:4px;font-size:12px;color:#6b7280;margin:8px 0 0}.sw-scale i{display:inline-block;width:22px;height:12px;border-radius:3px}
/* 표 */
.sw-tcard{margin:14px 0;border:1px solid #e5e9f6;border-radius:18px;background:#fff;overflow:hidden}
.sw-ttabs{display:flex;gap:6px;padding:10px 10px 0;overflow-x:auto}.sw-ttabs:empty{display:none}
.sw-tab{flex:0 0 auto;min-height:40px;padding:0 14px;border-radius:12px 12px 0 0;border:1px solid #e5e9f6;border-bottom:0;background:#f8fafc;font-weight:800;font-size:14px;color:#4b5563;cursor:pointer;font-family:inherit}
.sw-tab.is-on{background:#4f6bed;border-color:#4f6bed;color:#fff}
.sw-tablewrap{overflow:auto;max-height:560px;-webkit-overflow-scrolling:touch;border-top:1px solid #eef0f4}
.sw-table{width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums}
.sw-table caption{caption-side:top;text-align:left;padding:10px 12px;font-weight:800;color:#111827;font-size:14px}
.sw-table th,.sw-table td{padding:9px 12px;border-top:1px solid #eef0f4;white-space:nowrap}
.sw-table thead th{background:#f8fafc;font-size:13px;color:#374151;position:sticky;top:0;z-index:1}
.sw-table td{text-align:right}.sw-table tbody th{text-align:left;font-weight:700}
.sw-table tbody tr{cursor:pointer}.sw-table tbody tr:hover,.sw-table tbody tr:focus,.sw-table tr.is-pick{background:#eef2ff;outline:none}
.sw-table tr.sw-total{background:#fffbeb;font-weight:800}
.sw-table td.up{color:#b91c1c}.sw-table td.down{color:#1d4ed8}
/* 받기 */
.sw-acts{margin:18px 0;padding:14px;border-radius:18px;border:1px solid #e5e9f6;background:#fbfcff}
.sw-acts .sw-h2{margin-top:0;margin-bottom:4px}
.sw-expnote{margin:0 0 10px;font-size:13px;color:#6b7280}
.sw-acts__row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sw-act{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:54px;padding:0 12px;border-radius:14px;border:1px solid #cfd6ea;background:#fff;font-size:16px;font-weight:800;color:#1f2937!important;text-decoration:none!important;cursor:pointer;-webkit-tap-highlight-color:transparent;font-family:inherit}
.sw-act:hover{border-color:#818cf8;background:#f5f7ff}
.sw-act--pri{background:#4f6bed;border-color:#4f6bed;color:#fff!important}.sw-act--pri:hover{background:#4058d6}
.sw-act.cd-scrap{border-radius:14px;min-height:54px;font-size:16px}
.sw-act.cd-scrap.is-on{background:#eef2ff;border-color:#818cf8;color:#3730a3!important}
.sw-act.cd-scrap[hidden]{display:inline-flex!important;visibility:hidden}
.sw-ad--act{margin:12px 0}
.sw-acts__more{margin:10px 0 0;font-size:13.5px;color:#6b7280}
.sw-link{background:none;border:0;padding:0;color:#3346c8;font-size:13.5px;cursor:pointer;text-decoration:underline;font-family:inherit}
.sw-sharebox{margin-top:12px}.sw-sharebox label{display:block;font-size:13px;font-weight:800;color:#374151;margin-bottom:4px}
.sw-inline{display:flex;gap:8px}.sw-inline input{flex:1;min-width:0;height:44px;border:1px solid #cfd6ea;border-radius:10px;padding:0 10px;font-size:14px}
.sw-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border-radius:12px;border:1px solid #cfd6ea;background:#fff;font-weight:800;font-size:14.5px;color:#1f2937!important;text-decoration:none!important;cursor:pointer;font-family:inherit}
.sw-btn--pri{background:#111827;border-color:#111827;color:#fff!important}
.sw-apa{margin:18px 0;padding:14px;border-radius:16px;background:#f8fafc;border:1px solid #e5e9f6}
.sw-apa .sw-h2{margin-top:0}
.sw-apa__ref{margin:0 0 10px;padding-left:1.5em;text-indent:-1.5em;font-size:14px;line-height:1.7;word-break:normal;overflow-wrap:anywhere;color:#111827}
.sw-apa__ref a{display:block;text-indent:0;margin:6px 0 0;padding:0;max-width:100%;word-break:break-all;overflow-wrap:anywhere;white-space:normal}
.sw-act.is-wait,#sw-gsave a[data-ext].is-wait,#sw-tsave a[data-ext].is-wait{opacity:.55;pointer-events:none;cursor:wait}
.sw-apa__btns{display:flex;flex-wrap:wrap;gap:8px}
.sw-apa__u{margin:10px 0 0;font-size:12.5px;color:#6b7280;word-break:break-all}.sw-apa__u span{font-weight:800}
.sw-more{margin:12px 0;padding:10px 14px;border-radius:14px;border:1px solid #e5e9f6;background:#fff;font-size:14px;color:#374151}
.sw-more summary{cursor:pointer;font-weight:800;min-height:32px}
.sw-xlink{font-size:14px;color:#4b5563}
.sw-rel{margin-top:16px}
.sw-emptybox{margin:16px 0;padding:22px 18px;border-radius:18px;border:1px dashed #cbd5e1;background:#fff;text-align:center}
.sw-emptybox h1,.sw-emptybox h2{font-size:18px;margin:0 0 8px}.sw-emptybox p{color:#4b5563;margin:0 0 14px}
.sw-toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:#111827;color:#fff;padding:10px 16px;border-radius:12px;font-size:14px;font-weight:700;z-index:99999;max-width:90vw;text-align:center;box-shadow:0 8px 24px rgba(0,0,0,.2)}
.sw.is-busy .sw-charts>:not(.sw-ad),.sw.is-busy .sw-tcard,.sw.is-busy .sw-kpis{opacity:.55;transition:opacity .15s}
/* 태블릿 */
@media (min-width:600px){
  .sw-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
  .sw-feat__grid{grid-template-columns:1fr 1fr}
  .sw-gtiles{grid-template-columns:1fr 1fr}
  .sw-list{grid-template-columns:1fr 1fr}.sw-it--ad{grid-column:1/-1}
  .sw-fgrid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sw-sm{grid-template-columns:1fr 1fr}
}
@media (min-width:768px){
  .sw{padding:20px 20px 60px}.sw-hero h1{font-size:32px}
  .sw-chips{flex-wrap:wrap;overflow:visible;margin:0;padding:2px 0 4px}
}
/* PC: 왼쪽 기능 · 오른쪽 큰 화면 */
@media (min-width:900px){
  .sw-dash{display:grid;grid-template-columns:292px minmax(0,1fr);gap:22px;align-items:start}
  .sw-rail{position:sticky;top:12px;margin:0;max-height:calc(100vh - 24px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:0 4px 8px 0}
  .sw-only-pc{display:block}.sw-only-m{display:none}
  .sw-fgrid{grid-template-columns:1fr}
  .sw-list{grid-template-columns:1fr}
  .sw-chips{display:grid;grid-template-columns:1fr 1fr;gap:6px}.sw-chip{min-height:40px;font-size:13.5px;padding:0 10px;justify-content:space-between;min-width:0}.sw-chip span{margin-right:-2px}
  #sw-hub .sw-groups .sw-grp>summary{min-height:46px}
  .sw-head h1{font-size:28px}
  .sw-kpi b{font-size:24px}
  .sw-acts__row{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:1180px){
  .sw-dash{grid-template-columns:316px minmax(0,1fr);gap:26px}
  .sw-charts{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .sw-cc--wide{grid-column:1/-1}
  .sw-feat__grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sw-gtiles{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:1400px){
  .sw-feat__grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media print{
  .cd-adu,.sw-ad,.sw-acts,.sw-rail,.sw-find,.sw-search,.sw-chips,.sw-rel,header:not(.sw-head):not(.sw-cc__h):not(.sw-hero),nav,.sw-apa__btns,footer,.sw-ttabs{display:none!important}
  .sw{max-width:none;padding:0}.sw-dash{display:block}.sw-charts{grid-template-columns:1fr}.sw-tablewrap{max-height:none}
}

/* 그림 캡션 (그록 봇 swcap 2026-11-09) */
.sw-cap{display:flex;align-items:center;gap:10px;margin-top:10px;padding:9px 10px 9px 12px;border-radius:12px;background:#f8fafc;border:1px dashed #cbd5e1}
.sw-cap__t{margin:0;flex:1;min-width:0;font-size:14px;line-height:1.5;color:#1f2937;font-weight:600;word-break:keep-all;overflow-wrap:anywhere}
.sw-cap__k{display:inline-block;margin-right:2px;padding:1px 7px;border-radius:999px;background:#e0e7ff;color:#3730a3;font-size:11.5px;font-weight:800;vertical-align:1px}
.sw-capbtn{flex:none;min-height:44px;min-width:96px;padding:0 14px;border-radius:10px;border:1px solid #a5b4fc;background:#eef2ff;color:#3730a3;font-weight:800;font-size:14px;cursor:pointer;font-family:inherit;-webkit-tap-highlight-color:transparent}
.sw-capbtn:hover{background:#e0e7ff;border-color:#818cf8}
.sw-capbtn:focus-visible,.sw-act--cap:focus-visible{outline:3px solid #818cf8;outline-offset:2px}
.sw-cap--s{margin-top:6px;padding:7px 8px 7px 10px}.sw-cap--s .sw-cap__t{font-size:13px}.sw-cap--s .sw-capbtn{min-height:40px;min-width:84px;font-size:13px;padding:0 10px}
.sw-tcard #sw-tcap .sw-cap{margin:10px 12px 12px}
.sw-act--cap{grid-column:1/-1;background:#eef2ff;border-color:#a5b4fc;color:#3730a3!important}
.sw-act--cap:hover{background:#e0e7ff}
.sw-acts__hint{margin:-4px 0 0;font-size:13.5px;color:#4b5563;line-height:1.5}
.sw-acts__capt{margin:-6px 0 0;font-size:13px;color:#374151;line-height:1.5;word-break:keep-all;overflow-wrap:anywhere;background:#f8fafc;border-radius:10px;padding:8px 10px}
@media (max-width:599px){.sw-cap{flex-direction:column;align-items:stretch}.sw-capbtn{width:100%;min-height:48px}}
@media print{.sw-capbtn,.sw-act--cap,.sw-acts__hint,.sw-acts__capt{display:none!important}.sw-cap{border:0;background:none;padding:4px 0}.sw-cap__k{display:none}}

/* 2026-11-09 swad (그록 봇): 애드센스 자리 — 버튼과 28px 이상 띄움, 버튼 묶음 사이 광고 없음 */
.sw-ad.is-park{display:none!important}
.sw-charts>.sw-ad{grid-column:1/-1;margin:16px 0}
.sw-ad--tbl{margin:30px 0}
.sw-ad--acts{margin:32px 0}
.sw-ad--end{margin:30px 0 16px}
.sw-feat__grid>.sw-fc{order:2}
.sw-feat__grid>.sw-fc:nth-child(-n+2){order:0}
.sw-feat__grid>.sw-ad--feat{order:1;grid-column:1/-1;margin:16px 0}
@media (min-width:1180px){.sw-feat__grid>.sw-fc:nth-child(-n+3){order:0}}
@media (min-width:1400px){.sw-feat__grid>.sw-fc:nth-child(-n+4){order:0}}
/* 2026-11-09 swsave (그록 봇): 「그래프 저장」·「표 저장」 따로(헷갈리지 않게) + 공유 상자 분리 + 맨 아래 SNS 공유 카드 */
.sw-save-b{margin:18px 0;padding:14px;border-radius:18px;border:1px solid #e5e9f6;background:#fbfcff}
.sw-save-b--g{border-left:5px solid #4f6bed}
.sw-save-b--t{border-left:5px solid #16a34a}
.sw-save-b__h{margin:0 0 4px;display:flex;align-items:center;gap:6px}
.sw-save-b .sw-acts__row{margin-top:6px}
.sw-save-b .sw-acts__capt{margin:10px 0 0}
.sw-save-b .sw-acts__more{margin:10px 0 0}
.sw-ad--graph{margin:28px 0}
.sw-ad--graph+.sw-save-b,.sw-ad--tbl+.sw-save-b{margin-top:28px}
.sw-acts .sw-acts__more{margin-top:8px}
.sw-sharecard{margin-top:8px}
.sw .sw-sharecard a.cd-share__btn{color:#374151}.sw .sw-sharecard a.cd-share__list{color:#374151}
@media (max-width:599px){.sw-save-b .sw-acts__row{grid-template-columns:1fr}.sw-save-b .sw-act{min-height:48px;width:100%}.sw-save-b .sw-acts__more{line-height:2.2}}
@media (min-width:900px){.sw-save-b .sw-acts__row{grid-template-columns:repeat(4,minmax(0,1fr))}.sw-save-b--g .sw-acts__row{grid-template-columns:repeat(3,minmax(0,1fr))}.sw-save-b--g .sw-act--cap{grid-column:auto}}
@media print{.sw-save-b,.sw-ad--graph,.sw-sharecard,.cd-sharewrap{display:none!important}}
/* 2026-11-09 swpal (그록 봇): 「그래프 색」 — 기능 칸 아래. 모바일은 접힌 채(요약에 지금 색 띠) */
.sw-colwrap{padding:0}
.sw-colors>summary{list-style:none;display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;min-height:48px;padding:10px 12px;cursor:pointer;border-radius:18px}
.sw-colors>summary::-webkit-details-marker{display:none}
.sw-colors>summary::after{content:'펼치기 ▾';margin-left:auto;font-size:12px;font-weight:700;color:#4f6bed}
.sw-colors[open]>summary::after{content:'접기 ▴'}
.sw-colors>summary:focus-visible{outline:3px solid #818cf8;outline-offset:2px}
.sw-colors__t{font-size:14px;font-weight:900;color:#111827}
.sw-colors>summary small{flex-basis:100%;font-size:12px;color:#6b7280;font-weight:600}
.sw-colors__strip{display:inline-flex;gap:2px}.sw-colors__strip i{display:inline-block;width:14px;height:14px;border-radius:4px;border:1px solid rgba(17,24,39,.08)}
.sw-colors__b{display:flex;flex-direction:column;gap:10px;padding:0 12px 12px}
.sw-colors__hint{margin:0;font-size:12.5px;color:#4b5563;line-height:1.5}
.sw-colors__p{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.sw-palb{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-height:56px;padding:8px 10px;border-radius:12px;border:1px solid #cfd6ea;background:#fff;font:inherit;font-size:13px;font-weight:700;color:#1f2937;cursor:pointer;text-align:left}
.sw-palb:hover{border-color:#a5b4fc}.sw-palb.is-on{border:2px solid #4f6bed;background:#eef2ff;padding:7px 9px}
.sw-palb:focus-visible,.sw-cpk input:focus-visible,.sw-palreset:focus-visible{outline:3px solid #818cf8;outline-offset:2px}
.sw-colors__g{display:flex;flex-direction:column;gap:6px;border-top:1px solid #eef1f8;padding-top:10px}
.sw-colors__k{margin:0;font-size:13px;font-weight:900;color:#111827}.sw-colors__k small{font-weight:600;color:#6b7280;font-size:11.5px;margin-left:4px}
.sw-cpk{display:flex;align-items:center;gap:10px;min-height:44px;font-size:13.5px;color:#1f2937;cursor:pointer}
.sw-cpk input{flex:0 0 auto;width:52px;height:38px;padding:2px;border:1px solid #cfd6ea;border-radius:10px;background:#fff;cursor:pointer}
.sw-cpk span{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.sw-palreset{align-self:stretch;min-height:44px;border-radius:12px;border:1px solid #cfd6ea;background:#f8fafc;font:inherit;font-size:14px;font-weight:800;color:#374151;cursor:pointer}
.sw-palreset:hover{background:#eef2ff}.sw-palreset:disabled{opacity:.55;cursor:default}
.sw-colors .sw-c small{font-weight:600;color:#6b7280;font-size:11.5px;margin-left:4px}
/* 지도 색(연한→진한, 5단계 그대로) */
.sw-map--green .lv0{background:#ecfdf5}.sw-map--green .lv1{background:#bbf7d0}.sw-map--green .lv2{background:#6ee7b7}.sw-map--green .lv3{background:#059669;color:#fff}.sw-map--green .lv4{background:#065f46;color:#fff}
.sw-map--orange .lv0{background:#fff7ed}.sw-map--orange .lv1{background:#fed7aa}.sw-map--orange .lv2{background:#fdba74}.sw-map--orange .lv3{background:#ea580c;color:#fff}.sw-map--orange .lv4{background:#9a3412;color:#fff}
.sw-map--purple .lv0{background:#f5f3ff}.sw-map--purple .lv1{background:#ddd6fe}.sw-map--purple .lv2{background:#c4b5fd}.sw-map--purple .lv3{background:#7c3aed;color:#fff}.sw-map--purple .lv4{background:#4c1d95;color:#fff}
.sw-map--gray .lv0{background:#f8fafc}.sw-map--gray .lv1{background:#e2e8f0}.sw-map--gray .lv2{background:#cbd5e1}.sw-map--gray .lv3{background:#64748b;color:#fff}.sw-map--gray .lv4{background:#1e293b;color:#fff}
@media print{.sw-colwrap{display:none!important}}

/* 2026-11-10 swfind (그록 봇): 허브 검색을 히어로 아래 가운데로 크게, PC·모바일 */
.sw-find{margin:4px 0 16px;padding:14px 12px 14px;border-radius:20px;background:#f4f6fb;border:1px solid #e2e7f2}
.sw-find__k{margin:0 auto 10px;max-width:760px;text-align:center;font-size:16px;font-weight:800;color:#111827;letter-spacing:-.02em}
.sw-search{position:relative;z-index:30;max-width:760px;margin:0 auto}
.sw-search__box{display:flex;align-items:center;background:#fff;border:1.5px solid #c5cde3;border-radius:18px;box-shadow:0 4px 16px rgba(31,42,80,.07);min-height:56px;padding:4px 4px 4px 14px}
.sw-search__box:focus-within{border-color:#4f6bed;box-shadow:0 0 0 4px rgba(79,107,237,.14),0 6px 18px rgba(31,42,80,.08)}
.sw-search__ico{flex:none;color:#6470a8;display:flex;align-items:center;margin-right:8px}
.sw-search input{flex:1;min-width:0;width:auto;height:48px;border:0;padding:0 8px 0 0;font-size:16px;line-height:1.4;background:transparent;outline:none;box-sizing:border-box;color:#111827;font-family:inherit;-webkit-appearance:none;appearance:none;border-radius:0}
.sw-search input::placeholder{color:#8b93ab}
.sw-search input::-webkit-search-decoration{display:none}
.sw-search__go{flex:none;min-height:48px;min-width:72px;padding:0 16px;border:0;border-radius:14px;background:#4f6bed;color:#fff;font-weight:800;font-size:15px;cursor:pointer;font-family:inherit}
.sw-search__go:hover{background:#3d58d6}
.sw-search__go:focus-visible,.sw-sh:focus-visible{outline:3px solid #818cf8;outline-offset:2px}
.sw-search__hints{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;margin:12px auto 0;max-width:760px}
.sw-search__hl{flex:none;font-size:12.5px;font-weight:700;color:#6b7280}
.sw-sh{flex:none;min-height:36px;padding:0 12px;border-radius:999px;border:1px solid #d5dced;background:#fff;color:#1f2937;font-size:13.5px;font-weight:700;cursor:pointer;font-family:inherit}
.sw-sh:hover{border-color:#a5b4fc;background:#eef2ff;color:#3730a3}
.sw-sh.is-on{border-color:#4f6bed;background:#eef2ff;color:#3730a3}
@media (max-width:599px){
  .sw-find{margin:6px 0 14px;padding:12px 10px 12px;border-radius:16px}
  .sw-find__k{font-size:15px;margin-bottom:8px;text-align:left}
  .sw-search__box{min-height:52px;padding:3px 3px 3px 12px;border-radius:16px}
  .sw-search input{height:46px;font-size:16px}
  .sw-search__go{min-height:46px;min-width:64px;padding:0 14px;font-size:15px;border-radius:13px}
  .sw-search__hints{justify-content:flex-start;flex-wrap:nowrap;gap:6px;margin-top:10px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:0 0 2px}
  .sw-search__hints::-webkit-scrollbar{display:none}
  .sw-sh{min-height:40px;padding:0 13px;font-size:14px}
  .sw-sug{max-height:45vh}
}
@media (min-width:768px){
  .sw-find{padding:18px 24px 16px;margin:8px 0 22px}
  .sw-find__k{font-size:18px;margin-bottom:12px}
  .sw-search__box{min-height:64px;padding:5px 5px 5px 20px;border-radius:20px}
  .sw-search input{height:54px;font-size:18px}
  .sw-search__ico svg{width:24px;height:24px}
  .sw-search__go{min-height:54px;min-width:88px;font-size:16px;padding:0 22px;border-radius:16px}
  .sw-sh{min-height:38px;font-size:14px;padding:0 14px}
}

/* 2026-11-10 swi18n (그록 봇): 언어 전환(한국어·English·日本語·中文) — 허브는 히어로 위 오른쪽, 통계 화면은 위치 줄 오른쪽. 390px 에서도 한 줄 */
.sw-topbar{display:flex;align-items:center;justify-content:space-between;gap:8px 12px;flex-wrap:wrap}
.sw-lang{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:14px;line-height:1}
.sw-hero .sw-lang{justify-content:flex-end;margin:0 0 6px}
.sw-lang__ic{margin-right:4px;font-size:14px}
.sw .sw-lang a{display:inline-flex;align-items:center;min-height:38px;padding:0 13px;border-radius:999px;border:1px solid #d5dced;background:#fff;color:#4b5563!important;font-weight:700;text-decoration:none!important;white-space:nowrap}
.sw .sw-lang a:hover{background:#eef2ff;color:#3730a3!important}
.sw .sw-lang a.is-on{border-color:#4f6bed;background:#eef2ff;color:#3730a3!important}
.sw .sw-lang a:focus-visible{outline:3px solid #818cf8;outline-offset:2px}
.sw-more__n{font-size:12.5px;color:#6b7280;margin-bottom:4px}
@media (max-width:599px){
  .sw-hero .sw-lang,.sw-topbar .sw-lang{justify-content:flex-start;width:100%;max-width:100%;margin:0 0 8px;gap:6px;font-size:14px}
  .sw-topbar{flex-direction:column;align-items:flex-start;gap:6px}
  .sw-lang{flex-wrap:wrap;overflow:visible;box-sizing:border-box}
  .sw-lang__ic{display:none}
  .sw .sw-lang a{min-height:44px;min-width:44px;padding:0 12px;font-size:14px;border-color:#d5dced;background:#fff;justify-content:center;box-sizing:border-box}
  .sw .sw-lang a.is-on{border-color:#4f6bed;background:#eef2ff}
}
@media print{.sw-lang{display:none!important}}

/* 2026-11-10 swcsave (그록 봇): 차트·표마다 캡션 바로 아래 「저장하기」(PPT·이미지·워드·엑셀). 아래쪽 그래프/표 저장 상자 대신 */
.sw-csave{margin:-4px 12px 12px;border:1px solid #e2e7f2;border-radius:12px;background:#fff}
.sw-cap + .sw-csave{margin-top:6px}
.sw-csave__s{display:flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;cursor:pointer;list-style:none;font-size:14px;font-weight:800;color:#3730a3;-webkit-tap-highlight-color:transparent;border-radius:12px}
.sw-csave__s::-webkit-details-marker{display:none}
.sw-csave__s::after{content:"▾";margin-left:auto;font-size:12px;color:#6470a8;transition:transform .15s}
.sw-csave[open] .sw-csave__s::after{transform:rotate(180deg)}
.sw-csave__s:hover{background:#f5f7ff}
.sw-csave__s:focus-visible{outline:3px solid #818cf8;outline-offset:2px}
.sw-csave__m{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:2px 10px 10px}
.sw-csave__b{min-height:44px;padding:0 8px;border-radius:10px;border:1px solid #cfd6ea;background:#fff;color:#1f2937;font-size:14px;font-weight:800;cursor:pointer;font-family:inherit;-webkit-tap-highlight-color:transparent;white-space:nowrap}
.sw-csave__b:hover{border-color:#a5b4fc;background:#eef2ff;color:#3730a3}
.sw-csave__b:focus-visible{outline:3px solid #818cf8;outline-offset:2px}
.sw-csave__b.is-wait{opacity:.55;pointer-events:none;cursor:wait}
.sw-csave__x{margin:0;padding:0 12px 10px;font-size:13px;color:#6b7280}
.sw-csave--s{margin:-2px 0 6px}
.sw-csave--s .sw-csave__s{min-height:40px;font-size:13px;padding:0 12px}
.sw-csave--s .sw-csave__b{min-height:40px;font-size:13px}
@media (max-width:420px){.sw-csave__m{grid-template-columns:repeat(2,minmax(0,1fr))}.sw-csave__b{min-height:46px}}
@media print{.sw-csave{display:none!important}}
