/* sports.css — 스포츠북(피나클 라이브센터 그리드). theme.css 토큰 재사용. 하드코딩 문자열 없음. */
.sp-wrap{--up:#2ad98f;--dn:#ff5470}
.sp-top{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.sp-title{display:flex;align-items:center;gap:14px;font-size:20px;font-weight:800;letter-spacing:-.3px}
.sp-conn{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:600;color:var(--mut);letter-spacing:.3px;text-transform:uppercase}
.sp-conn i{width:8px;height:8px;border-radius:50%;background:var(--mut);transition:.3s}
.sp-conn.on{color:var(--acc)}.sp-conn.on i{background:var(--acc);box-shadow:0 0 0 0 rgba(18,194,122,.6);animation:sp-pulse 1.6s infinite}
@keyframes sp-pulse{0%{box-shadow:0 0 0 0 rgba(18,194,122,.5)}70%{box-shadow:0 0 0 8px rgba(18,194,122,0)}100%{box-shadow:0 0 0 0 rgba(18,194,122,0)}}
.sp-src{font-size:12px;color:var(--mut);font-variant-numeric:tabular-nums}

/* 종목 탭 */
.sp-tabs{display:flex;gap:7px;overflow-x:auto;padding-bottom:8px;margin-bottom:12px;scrollbar-width:none}
.sp-tabs::-webkit-scrollbar{display:none}
.sp-tab{flex:none;display:inline-flex;align-items:center;gap:7px;background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:8px 13px;font-size:13px;font-weight:600;color:var(--mut);white-space:nowrap;transition:.14s}
.sp-tab:hover{color:var(--txt);border-color:var(--line2,#2c3a4a)}
.sp-tab.on{color:#04130c;background:var(--acc);border-color:var(--acc)}
.sp-tab span{font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;opacity:.75}
.sp-tab.on span{opacity:.9}
.sp-tab .ld{width:7px;height:7px;border-radius:50%;background:var(--dn);animation:sp-blink 1.4s infinite}
.sp-tab.on .ld{background:#04130c}
@keyframes sp-blink{50%{opacity:.35}}

.sp-cols{display:grid;grid-template-columns:1fr 300px;gap:14px;align-items:start}
.sp-main{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.sp-slip{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;position:sticky;top:calc(var(--hdr-h) + 14px)}

/* 컬럼 헤더 + 경기행 공통 그리드 */
.sp-colh,.sp-row{display:grid;grid-template-columns:minmax(190px,1fr) 165px 112px 112px 38px;gap:8px;align-items:center;padding:0 14px}
.sp-colh{height:34px;background:var(--bg2);border-bottom:1px solid var(--line);font-size:11px;color:var(--mut);font-weight:600;text-transform:uppercase;letter-spacing:.3px}
.sp-colh .og{display:flex;justify-content:space-around;text-align:center}
.sp-colh .og span{flex:1}
.sp-colh .tc{display:flex;align-items:center}

.sp-lg{padding:8px 14px;font-size:11px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:var(--gold);background:rgba(230,196,107,.05);border-bottom:1px solid var(--line)}
.sp-row{min-height:56px;border-bottom:1px solid var(--line);transition:background .12s}
.sp-row:hover{background:var(--panel2)}
.tc{min-width:0;display:flex;flex-direction:column;gap:4px;padding:9px 0}
.tt{display:flex;flex-direction:column;gap:2px;min-width:0}
.tt span{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;line-height:1.4;min-width:0}
.tt .nm{font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.tt .sc{margin-left:auto;color:var(--acc);font-weight:800;font-variant-numeric:tabular-nums;flex:none;transition:transform .2s,color .2s}
.tt .sc:empty{display:none}
.tt .srv{flex:none;width:5px;height:5px;border-radius:50%;background:var(--gold);margin-left:auto}
.tt .srv + .sc{margin-left:6px}
.tc .live{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;color:var(--dn)}
.tc .live i{width:6px;height:6px;border-radius:50%;background:var(--dn);animation:sp-blink 1.4s infinite}
.tc .tm{font-size:11px;color:var(--mut);font-variant-numeric:tabular-nums}

.og{display:flex;gap:5px}
.oc{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;background:var(--bg2);border:1px solid var(--line);border-radius:8px;padding:7px 2px;min-height:42px;transition:.12s;color:var(--txt)}
.oc:hover:not(.lock):not(.empty){border-color:var(--acc);background:rgba(18,194,122,.07)}
.oc b{font-size:13.5px;font-weight:800;font-variant-numeric:tabular-nums;transition:color .2s,transform .2s}
.oc i{font-size:10px;font-style:normal;color:var(--mut);font-variant-numeric:tabular-nums}
.oc.pick{border-color:var(--acc);background:rgba(18,194,122,.16);box-shadow:0 0 0 1px var(--acc) inset}
.oc b.up{color:var(--up);transform:translateY(-1px)}.oc b.dn{color:var(--dn);transform:translateY(1px)}
.oc.empty{color:var(--mut);font-weight:700;cursor:default;background:transparent;border-color:transparent}
.oc.lock{cursor:not-allowed;background:transparent;border-color:transparent;color:var(--mut)}
.oc.lock svg{width:13px;height:13px;stroke:var(--mut);fill:none;stroke-width:1.7}
.more{background:transparent;border:1px solid var(--line);border-radius:7px;color:var(--mut);font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;padding:6px 2px;transition:.12s}
.more:hover,.more.on{color:var(--acc);border-color:var(--acc)}

/* 펼침(모든 마켓) */
.sp-exp{background:var(--bg2);border-bottom:1px solid var(--line);padding:10px 14px;display:flex;flex-direction:column;gap:12px}

/* 라이브 스코어보드 스트립(세트별/쿼터별/이닝별) */
.sb{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--panel)}
.sb-r{display:flex;align-items:center;padding:0 12px;min-height:34px}
.sb-r:first-child{border-bottom:1px solid var(--line)}
.sb-r .sb-n{flex:1;min-width:0;font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:8px}
.sb-r b{flex:none;width:30px;text-align:center;font-size:12.5px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--mut)}
.sb-r b.sb-p{width:34px;color:var(--acc);font-weight:800;font-size:14px}
.ep .epn{font-size:11.5px;font-weight:700;color:var(--gold);margin-bottom:7px;letter-spacing:.2px}
.emk{display:flex;align-items:flex-start;gap:12px;margin-bottom:8px}
.emt{flex:none;width:120px;font-size:12px;color:var(--mut);font-weight:600;padding-top:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.emt em{font-style:normal;font-size:10px;color:var(--dim,#6f8698);opacity:.7;margin-left:3px}
.ecells{flex:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:6px}
.oc.wide{flex-direction:row;justify-content:space-between;padding:9px 12px}
.oc.wide span{font-size:12px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* 벳슬립 */
.sp-sh{display:flex;align-items:center;justify-content:space-between;padding:13px 15px;font-size:13px;font-weight:800;border-bottom:1px solid var(--line);background:var(--bg2)}
.sp-scnt{background:var(--acc);color:#04130c;font-size:11px;font-weight:800;border-radius:20px;padding:1px 8px;min-width:20px;text-align:center}
.sp-sempty,.sp-empty{padding:34px 18px;text-align:center;color:var(--mut);font-size:13px}
.sp-srows{padding:6px 0;max-height:40vh;overflow-y:auto}
.sp-srow{display:flex;align-items:flex-start;gap:8px;padding:9px 15px;border-bottom:1px solid var(--line)}
.sp-si{flex:1;min-width:0}.sp-sm{font-size:11.5px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp-sp{font-size:13px;font-weight:600;margin-top:2px}.sp-sp b{color:var(--acc);font-variant-numeric:tabular-nums}
.sp-sx{color:var(--mut);font-size:18px;line-height:1;padding:0 2px}.sp-sx:hover{color:var(--dn)}
.sp-scalc{padding:13px 15px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:9px}
.sp-scalc label{font-size:11.5px;color:var(--mut);font-weight:600}
.sp-stake{display:flex;align-items:center;gap:8px}.sp-stake input{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}
.sp-stake span{font-size:12px;color:var(--mut);font-weight:600}
.sp-payline{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;color:var(--mut)}
.sp-payline b{color:var(--txt);font-variant-numeric:tabular-nums;font-weight:700}
.sp-payline.big b{color:var(--gold);font-size:17px;font-weight:800}
.sp-place{width:calc(100% - 30px);margin:2px 15px 8px;padding:13px;font-size:14px;opacity:.55;cursor:not-allowed}
.sp-pending{margin:0 15px 12px;font-size:11px;color:var(--gold);text-align:center;line-height:1.5;border:1px dashed rgba(230,196,107,.4);border-radius:8px;padding:8px}
.sp-clear{width:100%;padding:10px;font-size:12px;color:var(--mut);border-top:1px solid var(--line)}.sp-clear:hover{color:var(--dn)}

@media(max-width:1080px){
  .sp-cols{grid-template-columns:1fr}.sp-slip{position:static}
}
@media(max-width:680px){
  .sp-colh,.sp-row{grid-template-columns:minmax(120px,1fr) 165px 34px}
  .sp-colh .og.ah,.sp-colh .og.ou,.sp-row .og.ah,.sp-row .og.ou{display:none}
}
@media(prefers-reduced-motion:reduce){.sp-conn.on i,.tc .live i,.sp-tab .ld{animation:none}.oc b{transition:none}}
