/* 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:14px}
.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-cols{display:grid;grid-template-columns:290px 1fr 300px;gap:14px;align-items:start}
.sp-side,.sp-main,.sp-slip{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.sp-side{max-height:76vh;overflow-y:auto}
.sp-slip{position:sticky;top:calc(var(--hdr-h) + 14px)}

/* 좌: 경기목록 */
.sp-lg{padding:9px 14px;font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--gold);background:var(--bg2);border-bottom:1px solid var(--line);position:sticky;top:0}
.sp-match{padding:11px 14px;border-bottom:1px solid var(--line);cursor:pointer;transition:.14s}
.sp-match:hover{background:var(--panel2)}
.sp-match.on{background:linear-gradient(90deg,rgba(18,194,122,.12),transparent);box-shadow:inset 3px 0 0 var(--acc)}
.sp-mrow{display:flex;align-items:center;justify-content:space-between;gap:10px}
.sp-teams{min-width:0}
.sp-tm{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.5}
.sp-live{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;color:var(--dn);flex:none}
.sp-live i{width:6px;height:6px;border-radius:50%;background:var(--dn);animation:sp-pulse2 1.4s infinite}
@keyframes sp-pulse2{50%{opacity:.35}}
.sp-time{font-size:11px;color:var(--mut);flex:none}
.sp-miniods{display:flex;gap:5px;margin-top:7px}
.sp-mini{flex:1;text-align:center;font-size:11.5px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--txt);background:var(--bg2);border:1px solid var(--line);border-radius:6px;padding:2px 0}

/* 중앙: 마켓 그리드 */
.sp-chead{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--panel2),transparent)}
.sp-lgname{font-size:11.5px;color:var(--gold);font-weight:700;letter-spacing:.4px;text-transform:uppercase;margin-bottom:6px}
.sp-vs{display:flex;align-items:center;gap:12px;font-size:18px;font-weight:800;letter-spacing:-.3px;flex-wrap:wrap}
.sp-vs span{color:var(--mut);font-size:12px;font-weight:600}
.sp-cstat{font-size:13px;color:var(--mut);font-variant-numeric:tabular-nums;flex:none}
.sp-cstat.live{display:inline-flex;align-items:center;gap:7px;color:var(--dn);font-weight:700}
.sp-cstat.live i{width:8px;height:8px;border-radius:50%;background:var(--dn);animation:sp-pulse2 1.4s infinite}
.sp-mks{padding:14px 16px;display:flex;flex-direction:column;gap:16px}
.sp-mkt{font-size:12.5px;font-weight:700;color:var(--mut);margin-bottom:8px;letter-spacing:.2px}
.sp-grid{display:grid;gap:8px}
.sp-grid.c1{grid-template-columns:1fr}
.sp-grid.c2{grid-template-columns:1fr 1fr}
.sp-grid.c3{grid-template-columns:1fr 1fr 1fr}
.sp-od{display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:11px 14px;transition:.14s;text-align:left}
.sp-od:hover{border-color:var(--acc);background:rgba(18,194,122,.06)}
.sp-od.pick{border-color:var(--acc);background:rgba(18,194,122,.14);box-shadow:0 0 0 1px var(--acc) inset}
.sp-ol{font-size:12.5px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp-ov{font-size:15px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--txt);flex:none;transition:color .2s,transform .2s}
.sp-ov.up{color:var(--up);transform:translateY(-1px)}
.sp-ov.dn{color:var(--dn);transform:translateY(1px)}

/* 우: 벳슬립 */
.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,.sp-nomk{padding:34px 18px;text-align:center;color:var(--mut);font-size:13px}
.sp-srows{padding:8px 0;max-height:38vh;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{font-size:14px}
.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 1fr}
  .sp-slip{grid-column:1/-1;position:static}
}
@media(max-width:720px){
  .sp-cols{grid-template-columns:1fr}
  .sp-side{max-height:none}
}
@media(prefers-reduced-motion:reduce){.sp-conn.on i,.sp-live i,.sp-cstat.live i{animation:none}.sp-ov{transition:none}}
