/* 상품권레이더 V31 — market intelligence + infrastructure surfaces */
.v31-hero{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(230px,.6fr);gap:28px;align-items:end;padding:44px 0 26px}.v31-hero h1{font-size:clamp(36px,5vw,64px);line-height:1.05;letter-spacing:-.045em;margin:8px 0 16px}.v31-hero h1 em{font-style:normal;color:var(--blue,#2878ff)}.v31-hero p{max-width:760px;color:#606b7b;font-size:16px;line-height:1.75}.v31-health{background:#0e1726;color:#fff;border-radius:24px;padding:22px;box-shadow:0 12px 38px rgba(11,27,55,.12)}.v31-health b{display:block;font-size:28px;letter-spacing:-.04em}.v31-health span,.v31-health small{display:block}.v31-health span{margin-top:6px;font-weight:700}.v31-health small{margin-top:8px;color:#aeb9c9;line-height:1.45}.v31-kpis{margin:0 0 24px}.v31-alert{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:16px 18px;border:1px solid #dce7fa;background:#f7faff;border-radius:16px;margin:0 0 26px}.v31-alert b{color:#195ed6}.v31-alert span{flex:1;color:#4c5a6c}.v31-alert a{font-weight:800;color:#195ed6}.v31-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:26px 0}.v31-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:26px 0}.v31-panel{border:1px solid #e8edf4;border-radius:22px;padding:20px;background:#fff;box-shadow:0 8px 30px rgba(25,43,72,.04)}.v31-rank{list-style:none;margin:0;padding:0}.v31-rank li{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:8px 10px;align-items:center;padding:11px 2px;border-top:1px solid #f0f3f7}.v31-rank li:first-child{border-top:0}.v31-rank li>span{width:24px;height:24px;border-radius:8px;background:#f2f6fb;text-align:center;line-height:24px;font-size:12px;font-weight:800}.v31-rank li>a{font-weight:800;color:#202735;min-width:0}.v31-rank li>b{font-size:16px}.v31-rank li>small{grid-column:2/4;color:#8690a0}.v31-change-list{display:grid;gap:4px}.v31-change-list a{display:flex;justify-content:space-between;gap:12px;padding:13px 4px;border-top:1px solid #f0f3f7}.v31-change-list a:first-child{border-top:0}.v31-history-table{margin-top:18px}.v31-data-roadmap{margin:30px 0}.v31-data-roadmap>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.v31-data-roadmap article{border:1px solid #e7edf5;border-radius:18px;padding:18px}.v31-data-roadmap article b{font-size:17px}.v31-data-roadmap article p{color:#6d7786;line-height:1.65;margin:8px 0 0}.v31-mapbox{height:560px;border-radius:18px;overflow:hidden;background:#eef3f8}.v31-mapbox[hidden]{display:none}.v31-map-legend{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 0}.v31-map-legend span{font-size:12px;padding:5px 9px;border-radius:999px;background:#f2f6fb;color:#526071}.v31-infra-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0}.v31-infra-strip a,.v31-infra-strip>div{border:1px solid #e5ebf3;border-radius:16px;padding:15px;background:#fff}.v31-infra-strip b{display:block;margin-bottom:4px}.v31-infra-strip span{font-size:13px;color:#798595;line-height:1.45}.nts-state{display:inline-flex;padding:3px 8px;border-radius:999px;font-size:12px;font-weight:800;background:#eef3f8}.nts-state.ok{background:#e9f8ef;color:#168447}.nts-state.bad{background:#fff0f0;color:#cb3a3a}.pipeline-pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;border-radius:999px;padding:5px 9px;background:#f1f5f9;color:#586577}.pipeline-pill:before{content:"";width:7px;height:7px;border-radius:50%;background:#9aa6b5}.pipeline-pill.ok:before{background:#19a15f}.pipeline-pill.warn:before{background:#e6a11c}.pipeline-pill.stale:before{background:#db4d4d}
@media(max-width:900px){.v31-hero{grid-template-columns:1fr}.v31-three{grid-template-columns:1fr}.v31-two{grid-template-columns:1fr}.v31-data-roadmap>div{grid-template-columns:1fr}.v31-infra-strip{grid-template-columns:1fr 1fr}.v31-mapbox{height:430px}}
@media(max-width:560px){.v31-hero{padding-top:24px}.v31-hero h1{font-size:38px}.v31-health{border-radius:18px}.v31-panel{padding:16px}.v31-infra-strip{grid-template-columns:1fr}.v31-mapbox{height:360px}.v31-alert{align-items:flex-start}.v31-alert span{flex-basis:100%}}
