
/* 프로토 승부식 — 시안 4(정돈). 셸 iframe 830 · 분석기 바깥 규격(탭 58 · 날짜 50 · 분류 58 · 구역 머리 58 · 상자 사이 10)
   상자 안 좌우 20 · 줄 56~60 · 한 요소 한 신호. 색은 스코어 디자인 시스템(시안 3.1).
   전역 CSS(default.css)와 겹치지 않게 모든 이름을 pt- 로 시작한다. 이 <style> 몸통은 pt_asset()(_asset_v)이 내용 해시 파일로 내보낸다 — 고치면 이름이 바뀌어 퍼지 · $_time_set 이 필요 없다 */
.pt { width: 830px; font-family: 'Pretendard', 'Apple SD Gothic Neo', 'Malgun Gothic', 'Nanum Gothic', sans-serif; font-size: 13px; line-height: 1.35; color: #3f454c; letter-spacing: -0.01em; padding-bottom: 20px; }
.pt *, .pt *::before, .pt *::after { box-sizing: border-box; }
.pt button { font: inherit; }
.pt a { text-decoration: none; color: inherit; }
.pt .pt-num { font-family: 'Roboto', 'Pretendard', sans-serif; font-variant-numeric: tabular-nums; letter-spacing: 0; }
.pt-ic { width: 1em; height: 1em; flex: none; vertical-align: -0.125em; }

/* 상자 · 구역 머리 58 */
.pt-box { background: #fff; border: 1px solid #d1d1d1; margin-top: 10px; }
.pt-sh { display: flex; align-items: center; gap: 10px; height: 58px; padding: 0 20px; background: #f5f5f5; border-bottom: 1px solid #d1d1d1; }
.pt-sh h3 { margin: 0; display: flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 700; color: #111418; letter-spacing: -0.02em; }
.pt-sh h3 .pt-ic { font-size: 18px; color: #1ba9de; }
.pt-sh .n { font: 700 12px 'Roboto', sans-serif; padding: 2px 8px; border-radius: 10px; background: #e9ebed; color: #3f454c; }
.pt-sh .sub { margin-left: auto; font-size: 12px; color: #737a82; }
.pt-empty { padding: 48px 20px; text-align: center; color: #737a82; font-size: 13px; }
.pt-empty b { display: block; color: #2b3036; font-size: 14px; margin-bottom: 6px; }

/* 결과 볼 — 베픽 opt_bg (파랑 #1ba9de · 빨강 #e62626 · 초록 #91c653) */
.pt-ball { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; font-size: 11px; font-weight: 700; color: #fff; flex: none; border: 1px solid transparent; letter-spacing: -0.04em; box-shadow: inset 0 -3px 0 rgba(0, 0, 0, .12); }
.pt-ball.xs { width: 18px; height: 18px; font-size: 10px; }
.pt-ball.r { background: #e62626; border-color: #c01e1e; }
.pt-ball.b { background: #1ba9de; border-color: #1787b0; }
.pt-ball.g { background: #91c653; border-color: #7fac49; }
.pt-ball.k { background: #aaa; border-color: #999; }
.pt-ball.o { background: #fff; border-color: #d1d1d1; color: #868d95; box-shadow: none; }
.pt-ball.out { opacity: .3; }
.pt-crest { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; font-size: 10px; font-weight: 800; color: #fff; flex: none; background: #5b6274; }
.pt-lg { display: inline-block; height: 22px; line-height: 22px; padding: 0 8px; color: #fff; font-size: 11px; font-weight: 700; white-space: nowrap; background: #5b6274; max-width: 120px; overflow: hidden; text-overflow: ellipsis; vertical-align: middle; }
.pt-base { display: inline-block; font: 700 11px 'Roboto', sans-serif; padding: 0 5px; height: 17px; line-height: 17px; white-space: nowrap; }
.pt-base.h { background: #fdeeee; color: #c01e1e; }
.pt-base.u { background: #eef6e4; color: #4f7f22; }
.pt-lvb { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 3px; border-radius: 10px; background: #ffd34d; border: 1px solid #e0a800; font: 800 10px 'Roboto', sans-serif; color: #6b4528; flex: none; }
.pt-medal { position: relative; z-index: 0; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font: 800 12px 'Roboto', sans-serif; color: #fff; flex: none; }
.pt-medal::before { content: ""; position: absolute; left: 7px; top: 19px; width: 12px; height: 10px; background: linear-gradient(90deg, #e62626 50%, #1ba9de 50%); clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 70%, 0 100%); z-index: -1; }
.pt-medal.m1 { background: radial-gradient(circle at 35% 30%, #ffe28a, #f0a020 70%); border: 2px solid #c98200; }
.pt-medal.m2 { background: radial-gradient(circle at 35% 30%, #f2f4f6, #9aa3ad 70%); border: 2px solid #7d8691; }
.pt-medal.m3 { background: radial-gradient(circle at 35% 30%, #f6c79a, #c07a43 70%); border: 2px solid #9a5a28; }

.pt-alert { display: flex; align-items: center; gap: 8px; padding: 12px 20px; background: #fff3e8; border: 1px solid #f0cfa6; color: #b25a12; font-size: 13px; margin-top: 10px; }
.pt-alert.err { background: #fdeeee; border-color: #f1b9b9; color: #c01e1e; }

/* 날짜 50 · 분류 58 */
.pt-dates { display: flex; height: 50px; margin-top: 10px; background: #f5f5f5; border: 1px solid #d1d1d1; }
.pt-dates button { flex: 1 1 0; min-width: 0; height: 48px; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1.2; background: #fff; border: 0; border-left: 1px solid #e5e5e5; color: #555; cursor: pointer; padding: 0; }
.pt-dates button:first-child { border-left: 0; }
.pt-dates small { font-size: 11px; color: #737a82; }
.pt-dates b { font: 500 14px 'Roboto', sans-serif; }
.pt-dates em { font-style: normal; font: 400 11px 'Roboto', sans-serif; color: #737a82; }
.pt-dates button.on { background: #f1e2f6; color: #9025b0; box-shadow: inset 0 0 0 1px #9025b0; }
.pt-dates button.on small, .pt-dates button.on em { color: #9025b0; }
.pt-dates button.on b { font-weight: 700; }
.pt-dates button.all { flex: 0 0 90px; flex-direction: row; gap: 6px; font-weight: 700; font-size: 13px; }
.pt-dates button:disabled { color: #c3c8cd; cursor: default; }
.pt-cat { display: flex; height: 58px; margin-top: 10px; background: #f5f5f5; border: 1px solid #d1d1d1; }
.pt-cat button { position: relative; flex: 0 0 104px; height: 56px; display: flex; align-items: center; justify-content: center; gap: 6px; background: transparent; border: 0; border-left: 1px solid #e5e5e5; color: #3f454c; font-size: 14px; font-weight: 500; cursor: pointer; padding: 0; }
.pt-cat button:first-child { border-left: 0; }
.pt-cat button em { font-style: normal; font: 700 12px 'Roboto', sans-serif; padding: 1px 7px; border-radius: 10px; background: #e5e5e5; color: #59616a; }
.pt-cat button.on { background: #fff; color: #e62626; font-weight: 700; }
.pt-cat button.on::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: #e62626; }
.pt-cat button.on em { background: #fdecec; color: #e62626; }
.pt-cat .sp { flex: 1; border-left: 1px solid #e5e5e5; }
.pt-seg { align-self: center; display: flex; margin: 0 20px; border: 1px solid #d1d1d1; background: #fff; }
.pt-seg button, .pt-seg a { flex: none; display: inline-flex; align-items: center; height: 36px; padding: 0 12px; border: 0; border-left: 1px solid #e5e5e5; background: #fff; font-size: 13px; color: #59616a; cursor: pointer; }
.pt-seg button:first-child, .pt-seg a:first-child { border-left: 0; }
.pt-seg button.on, .pt-seg a.on { color: #e62626; font-weight: 700; }
.pt-seg button::after { display: none; }

.pt-end { height: 12px; }
.pt-cat button[disabled] { color: #c3c8cd; cursor: default; }
.pt-cat button[disabled] em { background: #efefef; color: #c3c8cd; }

/* 적중결과 — 적중특례 경기 목록 */
.pt-rx { padding: 6px 20px 14px; border-top: 1px solid #d1d1d1; }
.pt-rx h4 { margin: 10px 0 6px; font-size: 13px; font-weight: 700; color: #3f454c; }
.pt-rx h4 small { margin-left: 6px; font-size: 12px; font-weight: 400; color: #a8aeb4; }
.pt-rx .it { display: flex; align-items: center; gap: 10px; height: 36px; font-size: 13px; color: #59616a; }
.pt-rx .it + .it { border-top: 1px solid #f3f4f5; }
.pt-rx .it .tm { font: 500 12px 'Roboto', sans-serif; color: #a8aeb4; }
.pt-rx .it .r { margin-left: auto; font-size: 12px; color: #a8aeb4; }

/* 랭킹 — 기준 설명 · 지난 1위 */
.pt-rk-rule { display: flex; gap: 20px; flex-wrap: wrap; padding: 14px 20px; background: #fafafa; border-top: 1px solid #d1d1d1; font-size: 12px; color: #59616a; }
.pt-rk-rule b { color: #2b3036; }
.pt-rk-hall { display: flex; align-items: center; gap: 14px; height: 48px; padding: 0 20px; border-top: 1px solid #efefef; font-size: 12px; color: #59616a; overflow: hidden; white-space: nowrap; }
.pt-rk-hall .lb { font-weight: 700; color: #2b3036; display: inline-flex; align-items: center; gap: 4px; }
.pt-rk-hall .lb .pt-ic { color: #f0a020; font-size: 15px; }
.pt-rk-hall em { font-style: normal; font-family: 'Roboto', sans-serif; color: #868d95; }

/* ══ 디자인 v1.1 — 위쪽(메뉴 · 안내 줄 · 카드 · 날짜 · 분류) ══
   뼈대 = 분석기 실측(res/game/css/main.css .pt_menu · .pt_title · .pk_tab · .pt_category): 첫 칸 120 + 118 × 6, 칸 구분 #e5e5e5,
   글자 13 · 간격 -1px, 마우스 올림 = 흰 바탕 + #888 1px 상자, 선택 = 칸 바깥까지 1px. 숫자 Tahoma(사이트 숫자 글꼴) */
.pt { font-family: 'Apple SD Gothic Neo', 'Nanum Gothic', 'Malgun Gothic', sans-serif; --num: Roboto, Tahoma, 'Apple SD Gothic Neo', sans-serif; }
.pt .pt-num { font-family: var(--num); font-variant-numeric: tabular-nums; }
.pt-tabs { display: grid; grid-template-columns: 120px repeat(6, 118px); background: #f5f5f5; border: 1px solid #d1d1d1; }
.pt-tabs > * { position: relative; display: flex; align-items: center; justify-content: center; gap: 5px; min-width: 0; padding: 0; border: 0; border-left: 1px solid #e5e5e5; background: transparent; color: #555; font-size: 13px; font-weight: 400; letter-spacing: -1px; white-space: nowrap; cursor: pointer; }
.pt-tabs > :first-child { border-left: 0; }
.pt-tabs > :hover:not(.null):not(.on):not(:disabled) { background: #fff; box-shadow: 0 0 0 1px #888; z-index: 1; }
.pt-tabs > .null { color: #ccc; cursor: default; }
.pt-tabs em { font-style: normal; font-family: Tahoma, sans-serif; font-size: 11px; font-weight: 700; letter-spacing: 0; min-width: 18px; height: 16px; line-height: 16px; padding: 0 5px; border-radius: 8px; background: #e5e5e5; color: #666; text-align: center; }
.pt-tabs small { font-size: 11px; color: #888; letter-spacing: 0; }
.pt-mtab { height: 58px; } .pt-mtab > * { height: 56px; }
.pt-mtab > .on { background: #1ba9de; color: #fff; font-weight: 700; box-shadow: 0 0 0 1px #1787b0; z-index: 2; }
.pt-stab { height: 50px; margin-top: 10px; } .pt-stab > * { height: 48px; background: #fff; }
.pt-stab > .null { background: #f5f5f5; }
/* v1.3 — 화면 안 선택은 다크 #1d232a + 노랑 하나로(배당 선택 · 투표지와 같은 색). 메뉴(.pt-mtab)만 사이트 길잡이라 파랑 */
.pt-stab > .on { background: #1d232a; color: #fff; font-weight: 700; box-shadow: 0 0 0 1px #1d232a; z-index: 2; }
.pt-stab > .on em { background: #ffc61a; color: #1d232a; } .pt-stab > .on small { color: rgba(255, 255, 255, .7); }
.pt-stab > :disabled { color: #aaa; cursor: default; } .pt-stab > :disabled em { background: #efefef; color: #ccc; }
/* 선택 칸 안쪽 왼쪽 칸 구분선(#e5e5e5)이 파랑 · 보라 면 안에서 흰 줄로 보이던 것 — 면 색으로(바깥 1px 테두리만 남긴다, 라이브스코어 .v3-menu a.on 과 같은 처리 2026-10-18) */
.pt-mtab > .on { border-left-color: #1ba9de; }
.pt-stab > .on { border-left-color: #1d232a; }
.pt-ctab { height: 58px; margin-top: 10px; } .pt-ctab > * { height: 56px; }
.pt-ctab > .on { background: #fff; color: #1d232a; font-weight: 700; }
.pt-ctab > .on::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: #1d232a; }
.pt-ctab > .on em { background: #1d232a; color: #fff; }
.pt-ctab > :disabled { color: #aaa; cursor: default; } .pt-ctab > :disabled em { background: #efefef; color: #ccc; }

/* 안내 줄 54 — 분석기 .pt_title 처럼 문장 한 줄, 메뉴 다섯 화면 공통 */
.pt-tbar { display: flex; align-items: center; gap: 8px; height: 54px; padding: 0 10px 0 12px; background: #fff; border: 1px solid #d1d1d1; border-top: 0; color: #555; white-space: nowrap; }
.pt-tbar .red { color: #e62626; font-weight: 700; }
.pt-tbar b { color: #333; }
.pt-tbar .sp { flex: 1; }
/* v1.3 회차 드롭다운 — 단추에 상태 알약, 열면 레이어(최근 회차 · 발매 기간 · 경기 수 · 상태) */
.pt-rwrap { position: relative; display: inline-flex; }
.pt-rsel { display: inline-flex; align-items: center; gap: 8px; height: 34px; padding: 0 10px 0 12px; border: 1px solid #d1d1d1; background: #fff; color: #333; cursor: pointer; }
.pt-rsel b { font-size: 14px; font-weight: 700; color: #111; }
.pt-rsel .pt-ic { font-size: 11px; color: #888; }
.pt-rsel:hover, .pt-rsel[aria-expanded="true"] { border-color: #1d232a; box-shadow: 0 0 0 1px #1d232a; }
.pt-rst { display: inline-flex; align-items: center; gap: 4px; height: 20px; padding: 0 7px; border-radius: 10px; font-size: 11px; font-weight: 700; white-space: nowrap; letter-spacing: -0.3px; }
.pt-rst::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.pt-rst.on { background: #edf7e6; color: #4f8a1f; }
.pt-rst.pre { background: #f2f2f2; color: #777; }
.pt-rst.res { background: #fff4e5; color: #c46a10; }
.pt-rst.done { background: #f2f2f2; color: #999; } .pt-rst.done::before { display: none; }
@media (prefers-reduced-motion: no-preference) { .pt-rst.on::before { animation: ptLive 1.4s ease-in-out infinite; } @keyframes ptLive { 50% { opacity: .3; } } }
.pt-rpop { position: absolute; top: calc(100% + 6px); left: 0; z-index: 20; width: 470px; background: #fff; border: 1px solid #d1d1d1; box-shadow: 0 12px 32px rgba(15, 25, 35, .2); }
.pt-rpop[hidden] { display: none; }
.pt-rpop .hd { display: flex; align-items: center; height: 40px; padding: 0 14px; background: #f5f5f5; border-bottom: 1px solid #e5e5e5; font-size: 13px; font-weight: 700; color: #333; }
.pt-rpop .hd small { margin-left: auto; font-weight: 400; font-size: 11px; color: #888; }
.pt-rpop .ls { max-height: 300px; overflow-y: auto; scrollbar-gutter: stable; scrollbar-width: thin; }
/* 회차 · 기간 · 상태 · 체크 — 상태 칸을 가장 긴 "결과 발표 중"에 맞춰 고정(기간 글자와 겹치던 것, 사용자 지적) */
.pt-ropt { display: grid; grid-template-columns: 72px minmax(0, 1fr) 92px 16px; align-items: center; gap: 12px; height: 50px; padding: 0 10px 0 14px; border-top: 1px solid #f0f0f0; color: #333; }
.pt-ropt .pt-rst { justify-self: start; }
.pt-ropt .dt { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.pt-ropt:first-child { border-top: 0; }
.pt-ropt:hover { background: #fafafa; }
.pt-ropt.on { background: #fffcf2; box-shadow: inset 3px 0 0 #1d232a; }
.pt-ropt .no { font-size: 14px; font-weight: 700; color: #222; white-space: nowrap; }
.pt-ropt .dt { display: flex; flex-direction: column; line-height: 1.35; font-family: var(--num); font-size: 12px; color: #555; white-space: nowrap; }
.pt-ropt .dt small { font-family: inherit; font-size: 11px; color: #999; }
.pt-ropt .ck { display: inline-flex; color: #1d232a; font-size: 14px; }
.pt-rpop .ft { display: flex; align-items: center; justify-content: center; gap: 4px; height: 38px; border-top: 1px solid #e5e5e5; background: #fafafa; font-size: 12px; color: #666; }
.pt-rpop .ft:hover { color: #111; background: #f5f5f5; }
/* 회차 마감까지 — 플립 카드(한 자리 한 장 · 바뀐 자리만 위 반쪽이 접힘) · 콜론 점 · 1시간 안이면 빨강 */
.pt-cdw { display: inline-flex; align-items: center; gap: 8px; padding-left: 10px; margin-left: 2px; border-left: 1px solid #e5e5e5; font-size: 12px; color: #888; }
.pt-cdw > b { font-family: var(--num); color: #333; }
.pt-cd { display: inline-flex; align-items: center; cursor: help; }
.pt-cd:focus-visible { outline: 2px solid #1ba9de; outline-offset: 3px; }
.pt-flg { display: inline-flex; gap: 2px; }
.pt-fl { --h: 30px; position: relative; display: inline-block; width: 21px; height: var(--h); perspective: 120px; font-family: var(--num); font-size: 18px; font-weight: 700; color: #fff; font-variant-numeric: tabular-nums; }
.pt-fl > span { position: absolute; left: 0; right: 0; height: 50%; overflow: hidden; background: #1d232a; backface-visibility: hidden; }
.pt-fl i { position: absolute; left: 0; right: 0; height: var(--h); line-height: var(--h); font-style: normal; text-align: center; }
.pt-fl .u, .pt-fl .fu { top: 0; border-radius: 3px 3px 0 0; transform-origin: 50% 100%; }
.pt-fl .l, .pt-fl .fd { bottom: 0; border-radius: 0 0 3px 3px; transform-origin: 50% 0; background: #252c34; }
.pt-fl .u i, .pt-fl .fu i { top: 0; }
.pt-fl .l i, .pt-fl .fd i { bottom: 0; }
.pt-fl::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1px; margin-top: -0.5px; background: rgba(0, 0, 0, .55); z-index: 3; }
.pt-fl .fu, .pt-fl .fd { visibility: hidden; z-index: 2; }
.pt-fl.go .fu { visibility: visible; animation: ptFlU .3s ease-in forwards; }
.pt-fl.go .fd { visibility: visible; transform: rotateX(90deg); animation: ptFlD .3s .3s ease-out forwards; }
@keyframes ptFlU { to { transform: rotateX(-90deg); } }
@keyframes ptFlD { to { transform: rotateX(0); } }
@media (prefers-reduced-motion: reduce) { .pt-fl.go .fu, .pt-fl.go .fd { animation: none; visibility: hidden; } }
.pt-col { position: relative; display: inline-block; width: 12px; height: 30px; }
.pt-col::before, .pt-col::after { content: ""; position: absolute; left: 50%; width: 4px; height: 4px; margin-left: -2px; border-radius: 1px; background: #1d232a; }
.pt-col::before { top: 9px; } .pt-col::after { bottom: 9px; }
.pt-cd.hot .pt-fl > span { background: #d42020; } .pt-cd.hot .pt-fl .l, .pt-cd.hot .pt-fl .fd { background: #e62626; }
.pt-cd.hot .pt-col::before, .pt-cd.hot .pt-col::after { background: #e62626; }
/* 내 꽁머니 — 흰 상자 + 다크 "신청"(노랑 글자) · 비로그인은 "로그인" */
.pt-wal { display: inline-flex; align-items: center; gap: 8px; height: 34px; padding: 0 3px 0 12px; border: 1px solid #d1d1d1; background: #fff; color: #666; font-size: 12px; }
.pt-wal b { font-family: var(--num); font-size: 16px; color: #111; }
.pt-wal a { height: 26px; line-height: 26px; padding: 0 10px; background: #1d232a; color: #ffc61a; font-size: 12px; font-weight: 700; }
.pt-wal a:hover { background: #2b3238; }
.pt-mtab .pt-lk { display: inline-flex; font-size: 11px; color: #b0b0b0; }

/* 카드 3장(v1.3) — 상자 안 상자를 걷어 바깥 테두리 하나 + 세로선, 목록 3줄이 카드 높이를 나눠 갖는다(아래 빈자리 없음) */
.pt-cards { display: grid; grid-template-columns: 1.25fr 1fr 1fr; margin-top: 10px; background: #fff; border: 1px solid #d1d1d1; }
.pt-card { display: flex; flex-direction: column; min-width: 0; border-left: 1px solid #ececec; }
.pt-card:first-child { border-left: 0; }
.pt-card-h { display: flex; align-items: center; gap: 6px; height: 42px; padding: 0 14px; margin-bottom: 2px; font-size: 13px; font-weight: 700; color: #333; letter-spacing: -0.5px; }
.pt-card-h .pt-ic { font-size: 15px; color: #1d232a; }
.pt-card-h small { margin-left: auto; font-size: 11px; font-weight: 400; color: #999; letter-spacing: 0; }
.pt-card-h small[data-tip] { cursor: help; border-bottom: 1px dotted #bbb; }
.pt-card-h { white-space: nowrap; } .pt-card-h small { overflow: hidden; text-overflow: ellipsis; }
.pt-cbm .few .px-bar { opacity: .45; } .pt-cbm .few .hist .px-few { margin-left: 4px; }
.pt-card-e { flex: 1; display: flex; align-items: center; justify-content: center; min-height: 88px; padding: 12px; text-align: center; font-size: 12px; color: #888; line-height: 1.5; }
.pt-cbm { padding: 2px 14px 14px; display: flex; flex-direction: column; gap: 6px; }
.pt-cbm .vs { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 6px; margin-bottom: 2px; }
.pt-cbm .tm { display: flex; flex-direction: column; align-items: center; gap: 1px; min-width: 0; font-size: 14px; font-weight: 700; color: #222; letter-spacing: -0.5px; }
.pt-cbm .tm span:last-child { max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pt-cbm .tm small { font-size: 11px; font-weight: 400; color: #999; }
.pt-cbm .x { font-family: var(--num); font-size: 11px; font-weight: 700; color: #bbb; }
.pt-cbm .px-cols span { font-size: 11px; color: #999; }
.pt-cbm .hist { margin: 0; font-size: 11px; color: #999; text-align: center; } .pt-cbm .hist b { font-family: var(--num); color: #555; }
.pt-cli { display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; align-items: center; gap: 10px; flex: 1 1 0; min-height: 46px; margin: 0 14px; border-top: 1px solid #f3f3f3; }
.pt-card-h + .pt-cli { border-top: 0; }
.pt-card > .pt-cli:last-child { margin-bottom: 6px; }
.pt-cli .md { display: inline-flex; color: #7fac49; font-size: 20px; }
.pt-cli .w { min-width: 0; display: flex; flex-direction: column; line-height: 1.3; }
.pt-cli .w b { font-size: 13px; color: #333; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; letter-spacing: -0.5px; }
.pt-cli .w small { font-size: 11px; color: #888; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pt-cli .v { font-family: var(--num); font-size: 13px; font-weight: 700; color: #e62626; }
.pt-cli button { height: 26px; padding: 0 10px; border: 0; background: #f1f2f3; color: #1d232a; font-size: 12px; font-weight: 700; cursor: pointer; }
.pt-cli button:hover { background: #1d232a; color: #ffc61a; }
/* 구역 머리 오른쪽 보기 전환 — 선택은 다크(v1.3) */
.pt-sh .pt-seg { margin: 0 0 0 10px; border-color: #d1d1d1; background: #f5f5f5; }
.pt-sh .pt-seg button { height: 32px; padding: 0 12px; background: #fff; color: #555; font-weight: 400; }
.pt-sh .pt-seg button:hover { background: #f5f5f5; color: #333; }
.pt-sh .pt-seg button.on { background: #1d232a; color: #fff; font-weight: 700; }
/* 검정 툴팁 — 스코어 디자인 시스템(#111418 · 흰 12 · 아래 꼬리) */
.pt-tip { position: fixed; z-index: 1000; max-width: 240px; padding: 7px 10px; background: #111418; color: #fff; font-family: 'Apple SD Gothic Neo', 'Nanum Gothic', 'Malgun Gothic', sans-serif; font-size: 12px; line-height: 1.5; letter-spacing: -0.3px; pointer-events: none; box-shadow: 0 6px 18px rgba(0, 0, 0, .25); word-break: keep-all; }
.pt-tip::after { content: ""; position: absolute; left: var(--ax, 16px); bottom: -5px; border: 5px solid transparent; border-bottom: 0; border-top-color: #111418; }
.pt-tip.below::after { bottom: auto; top: -5px; border: 5px solid transparent; border-top: 0; border-bottom-color: #111418; }
.pt-tip[hidden] { display: none; }
.pt [data-tip] { cursor: help; }
.pt a[data-tip], .pt button[data-tip] { cursor: pointer; }

/* ══ 디자인 v1.2 — 승부식 목록 · 투표지 · 빈 상태(아티팩트 베픽-프로토 #dv12) ══
   경기 한 줄 55(리그 · 시간 · 홈 · 승무패 3칸 · 원정 · 유형 펼침), 펼친 곳만 #fafafa(데이터 줄은 흰 바탕),
   열 이름 줄 = 분석기 .dt_list th(#f5f5f5 · 아래 #d1d1d1), 빈 목록 = .dt_null(null.png 98 · 영역 최소 800) */
.pt-cols, .pt-row, .pt-subr { display: grid; grid-template-columns: 96px 52px minmax(0, 1fr) 206px minmax(0, 1fr) 72px; align-items: center; column-gap: 10px; padding: 0 10px; }
.pt-cols { height: 40px; background: #f5f5f5; border-bottom: 1px solid #d1d1d1; font-size: 12px; color: #666; }
.pt-cols span { text-align: center; } .pt-cols .h { text-align: right; } .pt-cols .a { text-align: left; } .pt-cols .r { text-align: right; padding-right: 4px; }
.pt-day { display: flex; align-items: center; gap: 6px; height: 32px; padding: 0 12px; border-bottom: 1px solid #efefef; font-size: 12px; font-weight: 700; color: #666; }
.pt-day .c { margin-left: auto; font-weight: 400; color: #888; } .pt-day .c b { color: #555; }
.pt-row { height: 55px; border-bottom: 1px solid #efefef; background: #fff; }
.pt-row:hover { background: #fafafa; }
.pt-row .pt-lg { display: block; max-width: none; height: 22px; line-height: 22px; padding: 0 6px; font-size: 12px; text-align: center; overflow: hidden; text-overflow: ellipsis; letter-spacing: -1px; }
.pt-row .pt-lg.dark { color: #333; }
.pt-tm { display: flex; flex-direction: column; align-items: center; line-height: 1.25; }
.pt-tm b { font-family: Tahoma, sans-serif; font-size: 13px; font-weight: 400; color: #555; }
.pt-tm small { font-family: Tahoma, sans-serif; font-size: 11px; color: #e62626; white-space: nowrap; }
.pt-tm small.off { color: #888; font-family: inherit; }
.pt-tm small.soon { margin-top: 2px; height: 18px; line-height: 18px; padding: 0 6px; border-radius: 9px; background: #fdecec; font-family: inherit; font-weight: 700; letter-spacing: -0.5px; }
.pt-team { display: flex; align-items: center; gap: 6px; min-width: 0; }
.pt-team.h { justify-content: flex-end; }
.pt-team .nm { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; color: #333; letter-spacing: -0.5px; }
.pt-row.closed .pt-team .nm { color: #888; }
.pt-tag { flex: none; height: 18px; line-height: 18px; padding: 0 4px; font-size: 11px; font-weight: 700; color: #9025b0; background: #f1e2f6; letter-spacing: -0.5px; }
.pt-tag.nt { color: #d9701a; background: #fff8f1; cursor: help; }
/* 배당 칸 — 올림 #888 · 선택 #1ba9de + 바깥 1px #1787b0(탭과 같은 신호) · 가장 낮은 배당(유력)만 굵게 · ▲▼ 는 숫자 뒤 */
.pt-obs { display: flex; gap: 4px; }
.pt-ob { position: relative; flex: none; width: 66px; height: 36px; display: flex; align-items: center; justify-content: space-between; gap: 2px; padding: 0 5px 0 7px; white-space: nowrap; border: 1px solid #d1d1d1; background: #fff; cursor: pointer; font-family: inherit; }
.pt-ob span { flex: none; font-size: 12px; color: #888; letter-spacing: -0.5px; }
.pt-ob b { display: inline-flex; align-items: center; font-family: Tahoma, sans-serif; font-size: 14px; font-weight: 400; color: #555; }
.pt-ob.fav b { font-weight: 700; color: #333; }
.pt-ob i { font-style: normal; font-size: 8px; margin-left: 1px; } .pt-ob i.up { color: #e62626; } .pt-ob i.dn { color: #1787b0; }
.pt-ob:hover:not(:disabled) { border-color: #888; box-shadow: 0 0 0 1px #888; z-index: 1; }
.pt-ob.on { background: #1ba9de; border-color: #1787b0; box-shadow: 0 0 0 1px #1787b0; z-index: 2; }
.pt-ob.on span, .pt-ob.on b, .pt-ob.on i { color: #fff; font-weight: 700; }
.pt-ob:disabled { background: #fafafa; border-color: #efefef; cursor: default; }
.pt-ob:disabled span, .pt-ob:disabled b, .pt-ob:disabled i { color: #ccc; font-weight: 400; }
.pt-ob.hit, .pt-ob.hit:disabled { background: #fdecec; border-color: #e62626; box-shadow: 0 0 0 1px #e62626; z-index: 1; }
.pt-ob.hit span, .pt-ob.hit b { color: #e62626; font-weight: 700; }
.pt-ob.blank { visibility: hidden; }
@media (prefers-reduced-motion: no-preference) {
	.pt-ob.flash { animation: ptFlash 1.2s ease-out 2; }
	@keyframes ptFlash { 0% { background: #fff3c4; border-color: #f0c040; } 100% { background: #fff; border-color: #d1d1d1; } }
}
.pt-more { position: relative; justify-self: end; width: 68px; height: 30px; display: inline-flex; align-items: center; justify-content: center; gap: 3px; border: 1px solid #d1d1d1; background: #fff; font-size: 12px; color: #555; cursor: pointer; white-space: nowrap; letter-spacing: -0.5px; padding: 0; }
.pt-more b { font-family: Tahoma, sans-serif; letter-spacing: 0; }
.pt-more:hover { box-shadow: 0 0 0 1px #888; }
.pt-more.on { background: #eef8fd; border-color: #c9eaf7; color: #1787b0; }
.pt-more .dot { position: absolute; top: -4px; right: -4px; width: 8px; height: 8px; border-radius: 50%; background: #1ba9de; box-shadow: 0 0 0 2px #fff; }
/* 펼친 유형 — 펼친 곳만 연한 회색(사용자 결정) */
.pt-subs { background: #fafafa; border-bottom: 1px solid #efefef; padding: 4px 0; }
.pt-subr { height: 44px; }
.pt-subr .ty { grid-column: 1 / 4; justify-self: end; display: flex; align-items: center; gap: 6px; font-size: 13px; color: #555; letter-spacing: -0.5px; }
.pt-subr .ty .no { font-family: Tahoma, sans-serif; font-size: 11px; color: #aaa; letter-spacing: 0; }
.pt-subr .pt-obs { grid-column: 4 / 5; }
.pt-subr .pt-ob { height: 32px; }
.pt-subr.dist { height: 40px; }
.pt-subr.dist .ty { color: #888; } .pt-subr.dist .ty b { font-family: Tahoma, sans-serif; color: #555; }
.pt-dist { grid-column: 4 / 5; display: flex; flex-direction: column; gap: 4px; }
.pt-dist .bar { display: flex; height: 6px; gap: 2px; background: #efefef; }
.pt-dist .bar i { display: block; height: 100%; }
.pt-dist .lab { display: flex; justify-content: space-between; font-family: Tahoma, sans-serif; font-size: 11px; color: #888; }
.pt-dist .lab b { color: #555; }
.pt-hint { display: flex; align-items: center; justify-content: flex-end; gap: 5px; height: 26px; padding-right: 92px; font-size: 12px; color: #1787b0; }
/* 빈 목록 — 높이 규격 480(경기 줄 60 × 8, 현재 시안 v2.2) · 가운데 · 그림 · 제목 · 설명 · 다음 행동 */
.pt-null { min-height: 480px; box-sizing: border-box; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 40px 20px; text-align: center; background: #fff; color: #666; }
.pt-null img { width: 98px; height: 98px; margin-bottom: 22px; }
.pt-null h4 { margin: 0 0 8px; font-size: 15px; color: #333; letter-spacing: -0.5px; }
.pt-null p { margin: 0; max-width: 44ch; font-size: 13px; line-height: 1.8; }
.pt-null .acts { display: flex; gap: 6px; margin-top: 18px; }
.pt-btn { display: inline-flex; align-items: center; justify-content: center; gap: 5px; height: 32px; padding: 0 12px; border: 1px solid #d1d1d1; background: #fff; color: #555; font-size: 13px; white-space: nowrap; cursor: pointer; }
.pt-btn:hover { background: #f5f5f5; color: #333; }
.pt-btn.pri { background: #1ba9de; border-color: #1787b0; color: #fff; font-weight: 700; }
.pt-btn.pri:hover { background: #1798c8; }
.pt-medal-img { width: 24px; height: 24px; display: block; }
/* 투표지(v1.3) — 다크 + 노랑(목록의 선택 칸과 같은 색). 줄마다 "홈 승 / 무 / 원정 승" + 고른 팀만 노랑, 아래 네 칸.
   띠 색(--tk)은 상태 신호 — 기본 노랑 · 배당 바뀜 노랑 · 오류 빨강 · 완료 초록 */
.pt-dk { --tk: #ffc61a; --y: #ffc61a; position: sticky; bottom: 0; z-index: 5; margin-top: 10px; background: #15191e; color: #fff; box-shadow: inset 4px 0 0 var(--tk), 0 -8px 24px rgba(15, 25, 35, .22); }
.pt-dk.err { --tk: #ff3b3b; } .pt-dk.done { --tk: #3fd47e; }
.pt-dk-h { display: flex; align-items: center; gap: 10px; height: 50px; padding: 0 10px 0 20px; border-bottom: 1px solid rgba(255, 255, 255, .08); }
.pt-dk.min .pt-dk-h { border-bottom: 0; }
.pt-dk-h .k { display: inline-flex; align-items: center; gap: 7px; flex: none; font-size: 14px; font-weight: 700; color: #fff; }
.pt-dk-h .k .pt-ic { font-size: 17px; color: var(--tk); }
.pt-dk-h .chip { flex: none; height: 22px; line-height: 22px; padding: 0 8px; background: rgba(255, 198, 26, .14); color: var(--y); font-size: 12px; font-weight: 700; }
.pt-dk-h .hint { flex: 1; min-width: 0; font-size: 12px; color: rgba(255, 255, 255, .55); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pt-dk-h .mini { flex: 1; min-width: 0; text-align: right; font-size: 12px; color: rgba(255, 255, 255, .6); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pt-dk-h .mini b { font-family: var(--num); font-size: 15px; color: var(--y); margin: 0 2px; } .pt-dk-h .mini b.w { color: #fff; }
.pt-dk-h .sp { flex: 1; }
.pt-dk-wal { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 10px; border: 1px solid rgba(255, 255, 255, .12); font-size: 12px; color: rgba(255, 255, 255, .6); white-space: nowrap; }
.pt-dk-wal b { font-family: var(--num); font-size: 14px; color: #fff; }
a.pt-dk-wal { gap: 5px; border-color: rgba(255, 198, 26, .5); color: var(--y); font-weight: 700; } a.pt-dk-wal:hover { background: rgba(255, 198, 26, .1); }
.pt-dib { flex: none; height: 30px; padding: 0 10px; display: inline-flex; align-items: center; gap: 4px; border: 1px solid rgba(255, 255, 255, .16); background: transparent; color: rgba(255, 255, 255, .85); font-size: 12px; cursor: pointer; white-space: nowrap; }
.pt-dib:hover { background: rgba(255, 255, 255, .08); }
.pt-dib .pt-ic { font-size: 11px; }
.pt-dk.min .pt-dk-b { display: none; }
.pt-dk-cols, .pt-dk-it { display: grid; grid-template-columns: 72px minmax(0, 1fr) 128px 84px 52px 28px; align-items: center; column-gap: 12px; }
.pt-dk-cols { height: 28px; padding: 0 16px 0 20px; border-bottom: 1px solid rgba(255, 255, 255, .08); font-size: 11px; color: rgba(255, 255, 255, .4); }
.pt-dk-cols .r { text-align: right; }
.pt-dk-list { max-height: 168px; overflow-y: scroll; scrollbar-gutter: stable; scrollbar-width: thin; scrollbar-color: rgba(255, 255, 255, .25) transparent; padding: 4px 10px 4px 20px; overscroll-behavior: contain; }
.pt-dk-list::-webkit-scrollbar { width: 6px; } .pt-dk-list::-webkit-scrollbar-track { background: transparent; }
.pt-dk-list::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, .22); border-radius: 3px; } .pt-dk-list::-webkit-scrollbar-thumb:hover { background: rgba(255, 255, 255, .4); }
.pt-dk-it { height: 40px; border-bottom: 1px solid rgba(255, 255, 255, .06); }
.pt-dk-it:last-child { border-bottom: 0; }
.pt-dk-it .pk { justify-self: start; display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border: 1px solid rgba(255, 198, 26, .45); color: var(--y); font-size: 12px; font-weight: 700; white-space: nowrap; letter-spacing: -0.5px; }
.pt-dk-it .pk.d { border-color: rgba(255, 255, 255, .3); color: #fff; }
.pt-dk-it .mt { min-width: 0; font-size: 13px; color: rgba(255, 255, 255, .6); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; letter-spacing: -0.3px; }
.pt-dk-it .mt b { color: var(--y); font-weight: 700; }
.pt-dk-it .mt i { font-style: normal; font-family: var(--num); font-size: 11px; color: rgba(255, 255, 255, .35); margin: 0 5px; }
.pt-dk-it .ty { min-width: 0; display: flex; align-items: center; gap: 5px; font-size: 12px; color: rgba(255, 255, 255, .62); white-space: nowrap; overflow: hidden; }
.pt-dk-it .ty .bs { font-family: var(--num); font-size: 11px; padding: 0 4px; height: 17px; line-height: 17px; background: rgba(255, 255, 255, .08); color: rgba(255, 255, 255, .8); }
.pt-dk-it .at { font-family: var(--num); font-size: 12px; color: rgba(255, 255, 255, .5); white-space: nowrap; }
.pt-dk-it .od { text-align: right; font-family: var(--num); font-size: 15px; font-weight: 700; color: #fff; white-space: nowrap; }
.pt-dk-it .od.chg { color: var(--y); } .pt-dk-it .od s { font-size: 11px; font-weight: 400; color: rgba(255, 255, 255, .45); margin-right: 3px; }
.pt-dk-it button { display: grid; place-items: center; width: 28px; height: 28px; padding: 0; border: 0; background: none; color: rgba(255, 255, 255, .4); font-size: 13px; cursor: pointer; }
.pt-dk-it button:hover { color: #fff; background: rgba(255, 255, 255, .08); }
.pt-dk-msg { margin: 0; padding: 9px 20px; font-size: 12px; color: var(--tk); border-top: 1px solid rgba(255, 255, 255, .06); }
.pt-dk-msg[hidden] { display: none; }
/* 투표지 안내 · 규칙(2026-10-21) — 설정의 투표지 안내 문구는 노랑 바탕 상자(가장 먼저 보이게), 최소 · 최대 폴더 · 단위 · 1회 최대는 그 아래 한 줄 */
.pt-dk-note { display: flex; align-items: flex-start; gap: 8px; margin: 12px 16px 0 20px; padding: 10px 12px; background: var(--y); color: #15191e; font-size: 13px; font-weight: 700; line-height: 1.5; word-break: keep-all; }
.pt-dk-note .pt-ic { flex: none; font-size: 16px; margin-top: 1px; }
.pt-dk-note.top { margin: 0 16px 12px 20px; }
.pt-dk-rule { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 16px; padding: 10px 16px 10px 20px; border-bottom: 1px solid rgba(255, 255, 255, .08); font-size: 12px; color: rgba(255, 255, 255, .7); }
.pt-dk-rule .t { font-weight: 700; color: #fff; }
.pt-dk-rule b { font-family: var(--num); font-size: 13px; color: var(--y); margin: 0 1px; }
.pt-dk-f { display: grid; grid-template-columns: minmax(0, 1fr) 130px 150px 180px; align-items: stretch; border-top: 1px solid rgba(255, 255, 255, .08); }
.pt-dk-f > div { display: flex; flex-direction: column; justify-content: center; gap: 6px; padding: 12px 16px; border-left: 1px solid rgba(255, 255, 255, .08); }
.pt-dk-f > div:first-child { border-left: 0; padding-left: 20px; }
.pt-dk-f small { font-size: 11px; color: rgba(255, 255, 255, .5); }
.pt-dk-f .in { display: flex; gap: 4px; }
.pt-dk-f input { width: 110px; height: 32px; padding: 0 8px; border: 1px solid rgba(255, 255, 255, .18); background: #0e1115; color: #fff; font-family: var(--num); font-size: 15px; font-weight: 700; text-align: right; }
.pt-dk-f input:focus { outline: 2px solid var(--y); outline-offset: -1px; }
.pt-dk-f .in .pt-dib { height: 32px; padding: 0 9px; }
.pt-dk-f .after { font-size: 11px; color: rgba(255, 255, 255, .45); } .pt-dk-f .after b { font-family: var(--num); color: rgba(255, 255, 255, .75); font-weight: 400; }
.pt-dk-f .v { font-family: var(--num); font-size: 20px; font-weight: 700; line-height: 1.1; color: #fff; white-space: nowrap; }
.pt-dk-f .v.y { color: var(--y); }
.pt-dk-f .v small { font-family: 'Apple SD Gothic Neo', 'Nanum Gothic', sans-serif; font-size: 12px; font-weight: 400; color: rgba(255, 255, 255, .55); margin-left: 2px; }
.pt-dk-f .cap { font-size: 11px; color: #ff9f43; white-space: nowrap; }
.pt-dk-f .go { padding: 10px; border-left: 0; }
.pt-dk-go { height: 100%; min-height: 48px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; padding: 0; border: 0; background: var(--y); color: #15191e; font-size: 15px; font-weight: 700; cursor: pointer; }
.pt-dk-go small { font-size: 11px; font-weight: 400; color: #15191e; opacity: .75; }
.pt-dk-go:hover { background: #ffd34d; }
.pt-dk-go:disabled { background: #2b3036; color: rgba(255, 255, 255, .4); cursor: default; }
.pt-dk-go:disabled small { color: rgba(255, 255, 255, .4); opacity: 1; }
.pt-dk-go.out { flex-direction: row; flex-wrap: wrap; align-content: center; column-gap: 6px; row-gap: 2px; }
.pt-dk-go.out .pt-ic { font-size: 16px; } .pt-dk-go.out small { flex-basis: 100%; text-align: center; }

/* ══ 디자인 v1.2 — 적중결과(최종 점수 칸 · 진행 띠 · 맞은 보기 빨강 테 · 더보기) ══ */
.pt-hide { display: none !important; }
.pt-sh .pt-seg a { height: 32px; padding: 0 12px; background: #fff; color: #555; font-weight: 400; }
.pt-sh .pt-seg a:hover { background: #fafafa; color: #333; }
.pt-sh .pt-seg a.on { background: #1d232a; color: #fff; font-weight: 700; }   /* v1.3 — 화면 안 선택은 다크 */
.pt-team.win .nm { font-weight: 700; }
.pt-sc { justify-self: center; display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 120px; height: 34px; background: #f5f5f5; font-family: Tahoma, sans-serif; font-size: 19px; font-weight: 700; color: #333; }
.pt-sc .w { color: #e62626; } .pt-sc .l { color: #888; }
.pt-sc i { font-style: normal; font-size: 14px; font-weight: 400; color: #aaa; }
.pt-sc.none { font-family: inherit; font-size: 12px; font-weight: 400; color: #888; }
.pt-prog { display: flex; align-items: center; gap: 10px; height: 44px; padding: 0 15px; border-bottom: 1px solid #efefef; font-size: 12px; color: #666; }
.pt-prog .lb { font-weight: 700; color: #333; }
.pt-prog .bar { width: 180px; height: 6px; background: #efefef; } .pt-prog .bar i { display: block; height: 100%; background: #1ba9de; }
.pt-prog b { color: #333; } .pt-prog .pc { color: #1787b0; font-weight: 700; }
.pt-prog .sp { flex: 1; } .pt-prog b.red { color: #e62626; }
span.pt-ob { cursor: default; }
.pt-ob.miss { background: #fff; border-color: #efefef; } .pt-ob.miss span, .pt-ob.miss b { color: #aaa; }
.pt-ob.void { background: #fafafa; border-color: #efefef; } .pt-ob.void span, .pt-ob.void b { color: #888; }
.pt-ob.mine { box-shadow: inset 0 -3px 0 #1ba9de; }
.pt-ob.hit.mine { box-shadow: 0 0 0 1px #e62626, inset 0 -3px 0 #1ba9de; }
.pt-subr .ty .sc { font-family: Tahoma, sans-serif; font-size: 12px; color: #888; letter-spacing: 0; }
.pt-subr-r { grid-column: 5 / 7; display: flex; justify-content: flex-start; }
.pt-pill { display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: 11px; font-size: 11px; font-weight: 700; white-space: nowrap; }
.pt-pill.win { background: #fdecec; color: #e62626; }
.pt-pill.lose { background: #efefef; color: #888; font-weight: 400; }
.pt-pill.void { background: #fff8f1; color: #d9701a; box-shadow: inset 0 0 0 1px #f3d3b4; }
.pt-pill.wait { background: #eef8fd; color: #1787b0; box-shadow: inset 0 0 0 1px #c9eaf7; }
.pt-moreb { width: 100%; height: 55px; display: flex; align-items: center; justify-content: center; gap: 6px; background: #f5f5f5; border: 0; border-top: 1px solid #d1d1d1; color: #555; font-size: 13px; letter-spacing: -1px; cursor: pointer; }
.pt-moreb b { font-family: Tahoma, sans-serif; font-weight: 400; color: #888; letter-spacing: 0; }
.pt-moreb:hover { background: #fff; box-shadow: inset 0 0 0 1px #888; color: #333; }
.pt-rx { border-top: 1px solid #d1d1d1; }

/* ══ 디자인 v1.2 — 구매내역(기간 탭 7칸 · 요약 4칸 · 표 칸 사이 세로선 · 펼친 곳만 #fafafa) ══ */
.pt-stab > a { text-decoration: none; }
.pt-kpi2 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 10px; background: #fff; border: 1px solid #d1d1d1; }
.pt-kpi2 > div { padding: 12px 15px; border-left: 1px solid #efefef; display: flex; flex-direction: column; gap: 4px; }
.pt-kpi2 > div:first-child { border-left: 0; }
.pt-kpi2 small { font-size: 12px; color: #888; }
.pt-kpi2 b { font-family: Tahoma, sans-serif; font-size: 19px; color: #333; }
.pt-kpi2 b.red { color: #e62626; }
.pt-kpi2 b small { font-family: inherit; font-size: 12px; font-weight: 400; margin-left: 2px; }
.pt-kpi2 .tg { height: 4px; background: #efefef; } .pt-kpi2 .tg i { display: block; height: 100%; background: #1ba9de; }
.pt-hcols, .pt-hrow { display: grid; grid-template-columns: 86px 92px minmax(0, 1fr) 48px 56px 78px 92px 28px; }
.pt-hcols { height: 40px; background: #f5f5f5; border-bottom: 1px solid #d1d1d1; font-size: 12px; color: #666; }
.pt-hcols > *, .pt-hrow > * { display: flex; align-items: center; justify-content: center; min-width: 0; padding: 0 8px; border-left: 1px solid #efefef; }
.pt-hcols > * { border-left-color: #e5e5e5; }
.pt-hcols > :first-child, .pt-hrow > :first-child { border-left: 0; }
.pt-hcols > .l, .pt-hrow > .l { justify-content: flex-start; }
.pt-hcols > .r, .pt-hrow > .r { justify-content: flex-end; }
.pt-hrow { height: 55px; background: #fff; border-bottom: 1px solid #efefef; cursor: pointer; }
.pt-hrow:hover { background: #fafafa; }
.pt-hrow:focus-visible { outline: 2px solid #1ba9de; outline-offset: -2px; }
.pt-hrow > span { font-size: 13px; color: #555; }
.pt-hrow .dt { flex-direction: column; line-height: 1.3; font-size: 12px; }
.pt-hrow .dt small { color: #aaa; font-size: 11px; }
.pt-hrow .ch { gap: 4px; overflow: hidden; }
.pt-hrow > .r { font-family: Tahoma, sans-serif; font-weight: 700; color: #333; }
.pt-hrow > .r.red { color: #e62626; } .pt-hrow > .r.dim { color: #aaa; font-weight: 400; }
.pt-hrow > .r small { margin-left: 3px; font-family: inherit; font-size: 10px; font-weight: 400; color: #d9701a; }
.pt-hrow .cr { color: #aaa; font-size: 11px; }
.pt-hrow.open .cr { color: #1787b0; }
.pt-pk { flex: none; display: inline-flex; align-items: center; height: 24px; padding: 0 6px; border: 1px solid #e5e5e5; font-size: 12px; color: #555; white-space: nowrap; letter-spacing: -0.5px; }
.pt-pk.hit { border-color: #e62626; color: #e62626; background: #fdecec; }
.pt-pk.miss { color: #aaa; text-decoration: line-through; }
.pt-hdet { background: #fafafa; border-bottom: 1px solid #efefef; padding: 6px 12px 10px 178px; }
.pt-hdet .r { display: grid; grid-template-columns: 44px minmax(0, 1fr) 96px 80px 64px 64px; align-items: center; gap: 8px; height: 40px; border-bottom: 1px dashed #e5e5e5; font-size: 12px; color: #555; }
.pt-hdet .r .no { color: #aaa; } .pt-hdet .r .mt { color: #333; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pt-hdet .r .pk b { color: #333; } .pt-hdet .r .sc { text-align: center; color: #333; font-weight: 700; }
.pt-hdet .f { margin: 0; padding-top: 8px; font-size: 12px; color: #666; } .pt-hdet .f b { color: #333; } .pt-hdet .f b.red { color: #e62626; }
.pt-pager2 { display: flex; border-top: 1px solid #d1d1d1; }
.pt-pager2 a { flex: 1; height: 55px; display: flex; align-items: center; justify-content: center; background: #f5f5f5; color: #555; font-size: 13px; letter-spacing: -1px; }
.pt-pager2 a + a { border-left: 1px solid #d1d1d1; }
.pt-pager2 a:hover { background: #fff; box-shadow: inset 0 0 0 1px #888; color: #333; }

/* ══ 디자인 v1.2 — 랭킹(내 순위 띠 · TOP 3 메달 카드 · 표 칸 사이 세로선 · 더보기) ══ */
.pt-btn.sm { height: 26px; padding: 0 8px; font-size: 12px; }
.pt-btn.off { color: #ccc; pointer-events: none; }
.pt-rkme { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 16px; margin-top: 10px; padding: 12px 15px; background: #eef8fd; border: 1px solid #c9eaf7; }
.pt-rkme.none { background: #fff; border-color: #d1d1d1; }
.pt-rkme .no { font-family: Tahoma, sans-serif; font-size: 26px; font-weight: 700; line-height: 1; color: #1787b0; }
.pt-rkme.none .no { color: #ccc; }
.pt-rkme .no small { font-family: inherit; font-size: 13px; font-weight: 400; color: #666; margin-left: 2px; }
.pt-rkme .m { color: #555; } .pt-rkme .m b { color: #333; }
.pt-rkme .wk { display: flex; align-items: center; gap: 2px; }
.pt-rkme .wk b { font-size: 14px; color: #333; padding: 0 6px; }
.pt-top3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; padding: 5px; }
.pt-tc { border: 1px solid #d1d1d1; border-top-width: 3px; min-width: 0; }
.pt-tc.c1 { border-top-color: #f0a020; } .pt-tc.c2 { border-top-color: #9aa3ad; } .pt-tc.c3 { border-top-color: #c07a43; }
.pt-tc.none { border-style: dashed; border-top-width: 1px; }
.pt-tc.me { box-shadow: inset 0 0 0 1px #1ba9de; }
.pt-tc .hd { display: flex; align-items: center; gap: 7px; height: 44px; padding: 0 12px; border-bottom: 1px solid #efefef; }
.pt-tc .hd .pt-medal-img { width: 28px; height: 28px; }
.pt-tc .nm { min-width: 0; font-size: 14px; font-weight: 700; color: #333; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; letter-spacing: -0.5px; }
.pt-tc.none .nm { color: #aaa; font-weight: 400; }
.pt-tc .ttl { margin-left: auto; flex: none; height: 20px; line-height: 20px; padding: 0 6px; font-size: 11px; font-weight: 700; color: #b35a10; background: #fff8f1; border: 1px solid #f3d3b4; }
.pt-tc .amt { padding: 12px 12px 8px; font-size: 26px; font-weight: 700; color: #e62626; }
.pt-tc.none .amt { color: #ccc; }
.pt-tc .amt small { font-family: 'Apple SD Gothic Neo', 'Nanum Gothic', sans-serif; font-size: 12px; font-weight: 400; color: #888; margin-left: 3px; }
.pt-tc .ss { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #efefef; }
.pt-tc .ss div { padding: 8px 10px; border-left: 1px solid #efefef; font-size: 11px; color: #888; }
.pt-tc .ss div:first-child { border-left: 0; }
.pt-tc .ss b { display: block; font-size: 13px; color: #333; }
.pt-rcols, .pt-rrow { display: grid; grid-template-columns: 56px minmax(0, 1fr) 160px 64px 76px 104px; }
.pt-rcols { height: 40px; background: #f5f5f5; border-top: 1px solid #d1d1d1; border-bottom: 1px solid #d1d1d1; font-size: 12px; color: #666; }
.pt-rcols > *, .pt-rrow > * { display: flex; align-items: center; justify-content: center; min-width: 0; padding: 0 8px; border-left: 1px solid #efefef; }
.pt-rcols > * { border-left-color: #e5e5e5; }
.pt-rcols > :first-child, .pt-rrow > :first-child { border-left: 0; }
.pt-rcols > .l, .pt-rrow > .who { justify-content: flex-start; }
.pt-rcols > .r, .pt-rrow > .r { justify-content: flex-end; }
.pt-rrow { height: 55px; background: #fff; border-bottom: 1px solid #efefef; font-size: 13px; color: #555; }
.pt-rrow .no { font-weight: 700; color: #333; }
.pt-rrow .who { gap: 6px; font-weight: 700; color: #333; }
.pt-rrow .who .nm { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pt-rrow .rate { gap: 8px; }
.pt-rrow .rate i { flex: 1; height: 4px; background: #efefef; position: relative; }
.pt-rrow .rate i em { position: absolute; top: 0; bottom: 0; left: 0; background: #f0a020; }
.pt-rrow .rate b { flex: none; width: 44px; font-size: 12px; text-align: right; }
.pt-rrow > .r { font-weight: 700; color: #e62626; }
.pt-rrow.me { box-shadow: inset 3px 0 0 #1ba9de; }
.pt-rrow.me .who { color: #1787b0; }
.pt-rgap { height: 28px; display: flex; align-items: center; justify-content: center; border-bottom: 1px solid #efefef; color: #aaa; font-size: 12px; }

/* ══ 디자인 v1.2 — 이용안내(세 단계 카드 · 두 칸 표 줄 55 · 계산 예시 띠) ══ */
.pt-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; padding: 5px; border-bottom: 1px solid #efefef; }
.pt-step { border: 1px solid #d1d1d1; padding: 14px 14px 12px; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.pt-step .no { width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: #1ba9de; color: #fff; font-size: 12px; font-weight: 700; }
.pt-step b { font-size: 14px; color: #333; letter-spacing: -0.5px; }
.pt-step p { margin: 0; font-size: 12px; line-height: 1.6; color: #666; }
.pt-gt .r { display: grid; grid-template-columns: 140px minmax(0, 1fr); min-height: 55px; border-bottom: 1px solid #efefef; }
.pt-gt .r:last-child { border-bottom: 0; }
.pt-gt .k { display: flex; align-items: center; padding: 0 15px; border-right: 1px solid #efefef; font-weight: 700; color: #333; letter-spacing: -0.5px; }
.pt-gt .v { display: flex; align-items: center; padding: 10px 15px; line-height: 1.6; color: #555; }
.pt-gt .v b { color: #333; margin: 0 2px; }
.pt-calc { display: flex; align-items: center; gap: 8px; min-height: 55px; padding: 0 15px; background: #eef8fd; border-bottom: 1px solid #c9eaf7; color: #1787b0; white-space: nowrap; }
.pt-calc .lb { font-size: 12px; font-weight: 700; padding: 2px 6px; background: #fff; border: 1px solid #c9eaf7; }
.pt-calc .eq { font-size: 14px; color: #333; } .pt-calc .eq.y { font-weight: 700; color: #e62626; } .pt-calc .eq b { color: #e62626; }
.pt-calc small { font-size: 11px; color: #888; } .pt-calc .ar { font-size: 11px; color: #1ba9de; } .pt-calc .sp { flex: 1; }
.pt-gnote { display: flex; align-items: center; gap: 6px; margin: 0; min-height: 44px; padding: 0 15px; border-top: 1px solid #efefef; background: #fafafa; font-size: 12px; color: #888; }
.pt-gnote .pt-ic { font-size: 14px; flex: none; }

/* 방금 담은 보기 — 노랑으로 잠깐 */
@media (prefers-reduced-motion: no-preference) {
	.pt-dk-it.new { animation: ptNew 1.6s ease-out; }
	@keyframes ptNew { 0% { background: rgba(255, 198, 26, .22); } 100% { background: transparent; } }
}

/* ══ 디자인 v1.3 — 승부식 경기 목록(아티팩트 베픽-프로토 #dv13): 국제 스포츠북 쿠폰 짜임 × 분석기 표 ══
   날짜 머리 → 리그 머리(열 이름 승 · 무 · 패를 한 번) → 경기 줄(시간 · 홈/원정 두 줄 · 숫자만 든 배당 칸 · +N).
   배당 영역 236 고정(셋 76 × 3 · 둘 116 × 2)이라 모든 줄의 끝선이 맞는다. 선택 = 다크 #1d232a + 노랑 숫자(투표지와 같은 색).
   적중결과(result_v)는 v1.2 줄(.pt-row)을 그대로 쓴다 — 이 목록은 px- 이름만 쓴다 */
.pt { --oddw: 236px; }
.px-q { width: 170px; height: 32px; margin-left: auto; padding: 0 10px 0 30px; border: 1px solid #d1d1d1; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='%23999'%3E%3Cpath d='M229.66,218.34l-50.07-50.06a88.11,88.11,0,1,0-11.31,11.31l50.06,50.07a8,8,0,0,0,11.32-11.32ZM40,112a72,72,0,1,1,72,72A72.08,72.08,0,0,1,40,112Z'/%3E%3C/svg%3E") no-repeat 9px center / 14px; font-size: 13px; color: #333; }
.px-q:focus { outline: 0; border-color: #1ba9de; box-shadow: 0 0 0 1px #1ba9de; }
.px-q::placeholder { color: #aaa; }
.pt-sh .sub2 { font-size: 12px; color: #888; white-space: nowrap; }
.px-day { display: flex; align-items: center; gap: 6px; height: 36px; padding: 0 14px; background: #fff; border-top: 1px solid #d1d1d1; font-size: 13px; font-weight: 700; color: #333; }
.px-day:first-child { border-top: 0; }
.px-day small { font-weight: 400; color: #888; }
.px-day .c { margin-left: auto; font-size: 12px; font-weight: 400; color: #888; } .px-day .c b { color: #555; font-family: var(--num); }
.px-lgh, .px-row, .px-mk { display: grid; grid-template-columns: 60px minmax(0, 1fr) var(--oddw) 52px; column-gap: 12px; align-items: center; padding: 0 12px 0 14px; }
.px-lgh { height: 36px; background: #f5f5f5; border-top: 1px solid #e5e5e5; border-bottom: 1px solid #d1d1d1; }
.px-lgh.shut { border-bottom-color: #e5e5e5; }
.px-lgn { grid-column: 1 / 3; display: flex; align-items: center; gap: 8px; min-width: 0; height: 100%; padding: 0; border: 0; background: none; font-size: 13px; font-weight: 700; color: #333; letter-spacing: -0.5px; cursor: pointer; text-align: left; }
.px-lgn i { width: 4px; height: 16px; flex: none; }
.px-lgn small { font-weight: 400; color: #888; letter-spacing: 0; }
.px-lgn .pt-ic { font-size: 11px; color: #aaa; }
.px-lgn:hover .pt-ic { color: #555; }
.px-cols { display: grid; gap: 4px; }
.px-cols span { text-align: center; font-size: 12px; color: #666; }
.px-lgh .ty { text-align: center; font-size: 12px; color: #666; }
.px-row { position: relative; height: 60px; background: #fff; border-bottom: 1px solid #efefef; }   /* 팀 두 줄이 빡빡해 보여 50 → 60(사용자 지적) */
.px-row:hover { background: #fcfcfc; }
.px-row.picked, .px-row.picked:hover { background: #fffcf2; box-shadow: inset 3px 0 0 #1d232a; }   /* 고른 줄 — 거의 흰 연한 노랑 + 왼쪽 띠(사용자 7차) */
.px-row.picked + .px-mks { box-shadow: inset 3px 0 0 #1d232a; }
.px-row.closed .px-nm span { color: #aaa; }
.px-tm { display: flex; flex-direction: column; line-height: 1.3; }
.px-tm b { font-family: var(--num); font-size: 13px; font-weight: 400; color: #333; }
.px-tm small { font-family: var(--num); font-size: 11px; color: #888; white-space: nowrap; }
.px-tm small.soon { align-self: flex-start; margin-top: 2px; height: 18px; line-height: 18px; padding: 0 6px; border-radius: 9px; background: #fdecec; color: #e62626; font-family: inherit; font-weight: 700; letter-spacing: -0.5px; }
.px-tm small.end { font-family: inherit; color: #aaa; }
.px-teams { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 8px; min-width: 0; }
.px-nm { display: flex; flex-direction: column; gap: 3px; min-width: 0; line-height: 21px; }
.px-nm span { font-size: 14px; color: #333; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; letter-spacing: -0.5px; }
/* 홈 H(다크 채움) · 원정 A(테두리) — 두 줄 중 어느 쪽이 홈인지(사용자 요청) */
.px-nm .ha { display: inline-block; width: 15px; height: 15px; line-height: 13px; margin-right: 6px; vertical-align: 1px; border: 1px solid #c9c9c9; color: #888; background: #fff; font-family: var(--num); font-size: 9px; font-weight: 700; font-style: normal; text-align: center; letter-spacing: 0; }
.px-nm .ha.h { border-color: #1d232a; background: #1d232a; color: #fff; }
.px-tags { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; }
.px-tag { height: 18px; line-height: 16px; padding: 0 5px; border: 1px solid #e6c9ef; color: #9025b0; background: #fff; font-size: 11px; font-weight: 700; letter-spacing: -0.5px; white-space: nowrap; }
.px-tag.nt { border-color: #f3d3b4; color: #d9701a; }
.px-tag.ty { border-color: #d1d1d1; color: #555; font-weight: 400; font-family: inherit; }   /* 기본 유형이 승무패 · 승패가 아닌 경기(배구 세트핸디캡 등) */
.px-pkc { display: inline-flex; align-items: center; gap: 5px; height: 20px; padding: 0 7px; border: 0; background: #1d232a; color: rgba(255, 255, 255, .85); font-size: 11px; white-space: nowrap; cursor: pointer; letter-spacing: -0.3px; }
.px-pkc b { font-family: var(--num); font-weight: 700; color: #ffc61a; letter-spacing: 0; }
.px-pkc .bs { font-family: var(--num); color: rgba(255, 255, 255, .6); }
.px-pkc:hover { background: #2b3238; }
/* 배당 칸 30 — 숫자만 가운데(열 이름은 리그 머리에) · 한 굵기 · 유력(최저)은 색만 진하게 */
.px-odds { display: grid; gap: 4px; }
.px-odds.c3, .px-cols.c3 { grid-template-columns: repeat(3, 1fr); }
.px-odds.c2, .px-cols.c2 { grid-template-columns: repeat(2, 1fr); }
.px-odd { position: relative; height: 30px; display: flex; align-items: center; justify-content: center; gap: 5px; padding: 0; border: 1px solid #d9d9d9; background: #fff; cursor: pointer; font-family: var(--num); font-variant-numeric: tabular-nums; transition: background-color .12s, border-color .12s; }
.px-odd b { font-size: 13px; font-weight: 400; color: #666; letter-spacing: 0; }
.px-odd .l { font-family: 'Apple SD Gothic Neo', 'Nanum Gothic', sans-serif; font-size: 11px; color: #aaa; letter-spacing: -0.5px; }
.px-odd.fav b { color: #111; }
.px-odd:hover:not(:disabled) { border-color: #888; box-shadow: 0 0 0 1px #888; z-index: 1; }
.px-odd:focus-visible { outline: 2px solid #1ba9de; outline-offset: 1px; z-index: 3; }
.px-odd.on { background: #1d232a; border-color: #1d232a; box-shadow: 0 0 0 1px #1d232a; z-index: 2; }
.px-odd.on b { color: #ffc61a; font-weight: 700; } .px-odd.on .l { color: rgba(255, 255, 255, .7); }
.px-odd:disabled { background: #fafafa; border-color: #efefef; cursor: default; }
.px-odd:disabled b, .px-odd:disabled .l { color: #c2c2c2; }
.px-odd.lock { background: #fafafa; border-color: #efefef; color: #b0b0b0; font-size: 12px; cursor: help; }
.px-odd.hit, .px-odd.hit:disabled { background: #fdecec; border-color: #e62626; box-shadow: 0 0 0 1px #e62626; z-index: 1; }   /* 마감 · 결과 — 맞은 보기 */
.px-odd.hit b, .px-odd.hit .l { color: #e62626; font-weight: 700; }
.px-odd .ar { position: absolute; top: 3px; right: 4px; width: 0; height: 0; border: 4px solid transparent; }
.px-odd .ar.up { border-bottom-color: #e62626; border-top-width: 0; } .px-odd .ar.dn { border-top-color: #1787b0; border-bottom-width: 0; }
.px-odd.on .ar.up { border-bottom-color: #ffc61a; } .px-odd.on .ar.dn { border-top-color: #ffc61a; }
@media (prefers-reduced-motion: no-preference) {
	.px-odd.pop { animation: pxPop .22s ease-out; } @keyframes pxPop { 0% { transform: scale(.94); } 100% { transform: none; } }
	.px-odd.flash { animation: pxFlash 1.2s ease-out 2; } @keyframes pxFlash { 0% { background: #fff3c4; border-color: #f0c040; } 100% { background: #fff; border-color: #d9d9d9; } }
}
/* +N — 다른 유형 수, 펼치면 하늘, 담은 게 있으면 점, 마감이면 흐리게 */
.px-more { position: relative; justify-self: end; width: 52px; height: 30px; display: flex; align-items: center; justify-content: center; gap: 2px; padding: 0; border: 1px solid #e5e5e5; background: #fff; font-family: var(--num); font-size: 12px; font-weight: 500; color: #1787b0; cursor: pointer; }
.px-more .pt-ic { font-size: 10px; color: #888; }
.px-more:hover { border-color: #888; box-shadow: 0 0 0 1px #888; }
.px-more:focus-visible { outline: 2px solid #1ba9de; outline-offset: 1px; }
.px-more.on { background: #eef8fd; border-color: #c9eaf7; } .px-more.on .pt-ic { color: #1787b0; }
.px-more.off { color: #c2c2c2; background: #fafafa; border-color: #efefef; cursor: help; } .px-more.off:hover { border-color: #efefef; box-shadow: none; }
.px-more .dot { position: absolute; top: -4px; right: -4px; width: 8px; height: 8px; border-radius: 50%; background: #1d232a; box-shadow: 0 0 0 2px #fff; }
/* 펼친 시장 — 같은 열, 펼친 곳만 #fafafa */
.px-mks { background: #fafafa; border-bottom: 1px solid #efefef; padding: 4px 0 6px; }
.px-mk { height: 36px; }
.px-mk .nm { grid-column: 2 / 3; display: flex; align-items: center; gap: 6px; min-width: 0; font-size: 13px; color: #555; letter-spacing: -0.5px; }
.px-mk .nm .no { font-family: var(--num); font-size: 11px; color: #aaa; letter-spacing: 0; }
.px-mk .nm .px-tag { height: 17px; line-height: 15px; }
.px-mk .px-odds { grid-column: 3 / 4; }
.px-mk .px-odd { height: 26px; } .px-mk .px-odd b { font-size: 12px; }
.px-mk.bar { height: 40px; } .px-mk.bar .nm { color: #888; } .px-mk.bar .nm b { font-family: var(--num); color: #555; }
.px-bar { grid-column: 3 / 4; display: flex; flex-direction: column; gap: 4px; }
.px-bar .bb { display: grid; gap: 4px; }
.px-bar .bb i { display: block; height: 6px; background: #efefef; position: relative; overflow: hidden; }
.px-bar .bb i em { position: absolute; top: 0; bottom: 0; left: 0; }
.px-bar .lb { display: grid; gap: 4px; font-family: var(--num); font-size: 11px; color: #888; text-align: center; } .px-bar .lb b { color: #555; }
.px-hint { display: flex; align-items: center; gap: 5px; height: 26px; padding: 0 12px 0 86px; font-size: 12px; color: #1787b0; }
/* 카드 — 참여가 적을 때 대신 채우기(역대 적중률 높은 정배 · 지난 회차 이변) */
.pt-cli.pt-cli3 { grid-template-columns: 58px minmax(0, 1fr) auto; }
.pt-cli.pt-cli3.up { grid-template-columns: 40px minmax(0, 1fr) 0; }
.pt-cli3 .rate { font-family: var(--num); font-size: 16px; font-weight: 700; color: #111; white-space: nowrap; } .pt-cli3 .rate small { font-size: 11px; color: #888; margin-left: 1px; }
.pt-cli3 .o { font-family: var(--num); font-size: 14px; font-weight: 700; color: #e62626; }
.pt-cli3 .w b { display: flex; align-items: center; gap: 4px; }
.pt-cli3 .w b .nm { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.pt-cli3 .w b .pk { flex: none; font-size: 11px; font-weight: 700; color: #1d232a; background: #f1f2f3; padding: 0 4px; }
/* 경기 펼침 — 같은 배당 역대 결과(지난 기록) · 리그 머리 작은 표시 */
.px-mk.bar.few .px-bar { opacity: .45; }
.px-few { margin-left: 6px; font-size: 11px; color: #d9701a; }
.px-lgs { margin-left: 6px; padding: 0 5px; border: 1px solid #e0e0e0; background: #fff; font-size: 11px; font-weight: 400; color: #888; letter-spacing: 0; }
/* 적중결과 위 회차 요약 한 줄 */
.pt-sum { display: flex; align-items: center; gap: 18px; height: 40px; padding: 0 15px; border-bottom: 1px solid #efefef; font-size: 12px; color: #666; }
.pt-sum b { color: #111; } .pt-sum b.red { color: #e62626; } .pt-sum small { color: #999; margin-left: 2px; }

/* ══ 프로토 분석(/proto/stat · 아티팩트 #dv14) — 분석기 표 + 3갈래 막대 + 노랑 눈금(배당이 말한 확률) ══ */
.pt-ctab > a { text-decoration: none; } .pt-ctab small { margin-left: 4px; font-size: 11px; color: #999; font-weight: 400; }
.ps-soon { gap: 4px; } .ps-soon em { background: #f2f2f2; color: #aaa; font-weight: 400; }
.ps-sh2 { border-top: 1px solid #d1d1d1; margin-top: 16px; }
.ps-tb .th, .ps-tb .tr { display: grid; align-items: center; column-gap: 12px; padding: 0 15px; }
.ps-tb .th { height: 40px; background: #f5f5f5; border-bottom: 1px solid #d1d1d1; font-size: 12px; color: #666; }
.ps-tb .tr { min-height: 50px; background: #fff; border-bottom: 1px solid #efefef; font-size: 13px; color: #333; }
.ps-tb .tr:hover { background: #fcfcfc; }
.ps-tb .r { text-align: right; } .ps-tb .b { font-weight: 700; color: #111; }
.ps-tb small { font-size: 11px; color: #999; margin-left: 1px; }
.ps-tb .tr.few { color: #aaa; } .ps-tb .tr.few .b { color: #999; } .ps-tb .tr.few .ps-sb { opacity: .45; }
.ps-few { display: block; color: #d9701a !important; }
.ps-band .th, .ps-band .tr { grid-template-columns: 110px 76px minmax(0, 1fr) 74px 98px 56px; }
.ps-band .up { color: #e62626; font-weight: 700; } .ps-band .dn { color: #1787b0; font-weight: 700; }
.ps-mkey { display: inline-block; width: 2px; height: 10px; margin: 0 3px 0 8px; background: #ffc61a; box-shadow: 0 0 0 1px #1d232a; vertical-align: -1px; }
.ps-sb { position: relative; display: flex; height: 12px; background: #efefef; }
.ps-sb i { display: block; height: 100%; } .ps-sb i + i { box-shadow: inset 1px 0 0 #fff; }
.ps-sb .mk { position: absolute; top: -3px; bottom: -3px; width: 2px; margin-left: -1px; background: #ffc61a; box-shadow: 0 0 0 1px #1d232a; }
.ps-note { margin: 0; padding: 12px 15px; font-size: 12px; line-height: 1.6; color: #888; } .ps-note b { color: #555; }
.ps-chart { padding: 12px 15px 4px; }
.ps-chart svg { display: block; width: 100%; height: auto; }
.ps-chart .g { stroke: #f0f0f0; } .ps-chart .yl, .ps-chart .xl { font-family: var(--num); font-size: 10px; fill: #999; } .ps-chart .yl { text-anchor: end; } .ps-chart .xl { text-anchor: middle; }
.ps-chart .ln { fill: none; stroke: #1d232a; stroke-width: 2; }
.ps-chart .pt { fill: #fff; stroke: #1d232a; stroke-width: 2; } .ps-chart .pt:hover { fill: #ffc61a; }
.ps-cap { margin: 6px 0 8px; font-size: 12px; color: #888; } .ps-cap b { color: #333; }
.ps-lg .th, .ps-lg .tr { grid-template-columns: 150px 70px minmax(0, 1fr) 56px 76px 104px; }
.ps-ln { display: flex; flex-direction: column; line-height: 1.3; min-width: 0; }
.ps-ln b { font-weight: 700; color: #222; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ps-old { font-style: normal; font-size: 10px; font-weight: 700; margin-left: 4px; padding: 0 3px; background: #f1f2f3; color: #666; }
.ps-sort { color: #666; } .ps-sort:hover { color: #111; } .ps-sort.on { color: #111; font-weight: 700; }
.ps-na { font-style: normal; color: #ccc; }
.ps-up .th, .ps-up .tr { grid-template-columns: 62px minmax(0, 1fr) 170px 56px; }
.ps-up .o { font-size: 15px; font-weight: 700; color: #e62626; }
.ps-up .mt { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: #888; }
.ps-up .mt b { color: #222; } .ps-up .mt i { font-style: normal; font-size: 11px; color: #bbb; margin: 0 6px; }
.ps-up .pk { margin-left: 8px; font-size: 11px; font-weight: 700; color: #1d232a; background: #f1f2f3; padding: 1px 5px; }
.ps-up .sm { font-size: 12px; color: #888; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ps-bars { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; align-items: end; gap: 4px; height: 130px; padding: 12px 15px 0; }
.ps-bars > span { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; }
.ps-bars i { display: block; width: 100%; max-width: 22px; background: #e62626; opacity: .85; } .ps-bars > span:hover i { opacity: 1; }
.ps-bars small { font-size: 10px; color: #999; padding: 4px 0 6px; }
.ps-rd .th, .ps-rd .tr { grid-template-columns: 96px 56px 200px 40px 44px minmax(0, 1fr); }
.ps-rd a.b { display: flex; flex-direction: column; line-height: 1.3; } .ps-rd a.b:hover { color: #1787b0; } .ps-rd a.b small { font-weight: 400; }
.ps-rd .fv { display: flex; align-items: center; gap: 8px; font-size: 12px; color: #666; } .ps-rd .fv b { color: #111; }
.ps-mini { flex: none; width: 64px; height: 6px; background: #efefef; } .ps-mini i { display: block; height: 100%; background: #1d232a; }
.ps-rd .sp { color: #d9701a; }
.ps-rd .bx { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 12px; color: #555; }
.ps-rd .bx b { color: #e62626; margin-right: 6px; font-size: 13px; } .ps-rd .bx small { margin-left: 6px; }
.ps-dl { display: grid; grid-template-columns: 100px minmax(0, 1fr); margin: 0; font-size: 13px; }
.ps-dl dt, .ps-dl dd { margin: 0; padding: 12px 15px; border-bottom: 1px solid #efefef; line-height: 1.6; }
.ps-dl dt { background: #f5f5f5; font-weight: 700; color: #555; } .ps-dl dd { color: #333; }
.px-none { padding: 60px 20px; text-align: center; color: #888; font-size: 13px; }
.px-none b { display: block; margin-bottom: 4px; font-size: 14px; color: #333; }
/* ══ 선 하나 규칙(현재 시안 v2.7) — 한 경계선은 한 요소만 그린다. 두 요소가 같은 자리에 선을 그어 2px 로 보이던 곳 ══ */
.px-row:has(+ .px-lgh), .px-row:has(+ .px-day), .px-mks:has(+ .px-lgh), .px-mks:has(+ .px-day) { border-bottom: 0; }
.px-lgh + .px-lgh { border-top: 0; }
.px-lgh.shut:has(+ .px-day) { border-bottom: 0; }
.px-row:last-child, .px-mks:last-child, .px-lgh.shut:last-child { border-bottom: 0; }
/* 회차 고르기 — 상태 알약 폭 하나(84) · 가운데 · 모두 점(확정은 회색 점). 고를 수 없는 회차는 흐리게, 다른 메뉴로 가는 회차는 오른쪽에 "경기결과 →" */
.pt-ropt .pt-rst { justify-self: center; box-sizing: border-box; width: 84px; justify-content: center; }
.pt-ropt .pt-rst.done::before { display: block; background: #c2c2c2; }
.pt-rpop { width: 510px; } .pt-rpop .pt-ropt { grid-template-columns: 72px minmax(0, 1fr) 92px 64px; }   /* 넷째 칸("경기결과 →")이 생겨 발매 기간이 잘리지 않게 470 → 510 */
.pt-ropt .ck { justify-content: flex-end; }
.pt-ropt.off { opacity: .45; cursor: not-allowed; } .pt-ropt.off:hover { background: transparent; }
.pt-golink { font-style: normal; display: inline-flex; align-items: center; gap: 2px; font-size: 11px; color: #1787b0; white-space: nowrap; }

