:root{
  --app:#fff; --page:#eaedf2; --top:#16243d; --line:#e6e9ee; --line2:#eff2f6;
  --txt:#1b2333; --sub:#7c8698; --dim:#aeb6c0;
  --red:#e2231a; --blue:#24568f; --blueDark:#1c3f6b;
  --navy:#16243d; --navy2:#233c63;
  --up:#159a45; --down:#e2231a; --pick:#e23b2f; --answer:#3f8f56;
  --gold:#d9a72b; --goldL:#e8c24a; --goldLine:#ead9a8;
  --maxw:1240px;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{background:var(--page);color:var(--txt);font-family:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic","Segoe UI",sans-serif;font-size:14px;line-height:1.4}
a{color:inherit;text-decoration:none}
.hidden{display:none!important}
.loading{padding:40px 16px;text-align:center;color:var(--sub);font-size:13px}

/* ===== SHELL / RESPONSIVE GRID ===== */
.shell{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:1fr;min-height:100vh}
.side-l,.side-r{display:none}
.center{background:var(--app);min-height:100vh;position:relative;padding-bottom:60px}

/* ===== TOP BAR (mobile) ===== */
.topbar{position:sticky;top:0;z-index:40;background:linear-gradient(180deg,#1e3252,#16243d);display:flex;height:50px;border-top:3px solid var(--gold)}
.tt{flex:1;display:flex;align-items:center;justify-content:center;color:#aab8cf;font-weight:800;font-size:15px;cursor:pointer;transition:background .15s}
.tt.on{background:#fff;color:var(--navy)}
.tt:not(.on):active{background:rgba(255,255,255,.08)}
.tt.icon{flex:0 0 46px;font-size:18px}

/* ===== SPORT ROW ===== */
.sportrow{position:sticky;top:48px;z-index:38;background:#fff;border-bottom:1px solid var(--line);display:flex;gap:2px;padding:0 8px;height:44px;overflow-x:auto;scrollbar-width:none}
.sportrow::-webkit-scrollbar{display:none}
.sportrow .sp{flex:0 0 auto;display:grid;place-items:center;min-width:40px;padding:0 8px;height:44px;color:#9aa2ad;font-size:18px;cursor:pointer;position:relative;font-weight:700}
.sportrow .sp.on{color:var(--blue)}
.sportrow .sp.on::after{content:"";position:absolute;bottom:0;left:15%;right:15%;height:3px;background:var(--blue);border-radius:2px}

/* ===== DATE NAV ===== */
.datenav{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--line)}
.datenav .arw{color:var(--sub);font-weight:800;font-size:18px;padding:2px 8px;cursor:pointer}
.datepick{border:1px solid var(--line);border-radius:6px;padding:5px 8px;font-size:13px;font-family:inherit;color:var(--txt)}
.datenav .today{font-weight:800;color:var(--blue);cursor:pointer}
.datenav .refresh{margin-left:auto;background:var(--blueDark);color:#fff;font-weight:800;font-size:12px;padding:6px 12px;border-radius:16px;cursor:pointer}

/* ===== TICKER / CHATBAN ===== */
.ticker{display:flex;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid var(--line);background:#fafbfc}
.ticker .spk{color:var(--blue)}
.ticker .txt{flex:1;font-size:13px;color:var(--blueDark);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ticker .pick{background:var(--pick);color:#fff;font-size:11px;font-weight:800;padding:3px 8px;border-radius:4px}
.chatban{display:flex;align-items:center;gap:9px;padding:10px 12px;border-bottom:6px solid var(--page);cursor:pointer}
.chatban .all{background:var(--red);color:#fff;font-size:11px;font-weight:800;padding:3px 7px;border-radius:4px}
.chatban .nm{font-weight:800}
.chatban .cnt{color:var(--sub);font-size:12px}.chatban .cnt b{color:var(--red)}
.chatban .prize{margin-left:auto;background:linear-gradient(135deg,#233c63,#16243d);color:var(--goldL);font-weight:800;font-size:11px;padding:6px 11px;border-radius:8px;text-align:center;line-height:1.25;border:1px solid #2e4a75}

/* ===== FEED / LEAGUE GROUP ===== */
.lg{border-bottom:6px solid var(--page)}
.lghd{display:flex;align-items:center;gap:8px;padding:10px 12px;background:linear-gradient(90deg,#f6f3ea,#f5f7fa);border-bottom:1px solid var(--line);border-left:3px solid var(--gold);cursor:pointer}
.lghd .nm{color:var(--navy)}
.lghd img{width:18px;height:18px;object-fit:contain}
.lghd .flag{font-size:15px}
.lghd .nm{font-weight:800}
.lghd .cnt{color:var(--sub);font-size:12px;font-weight:700}
.lghd .up{margin-left:auto;color:var(--sub);font-size:15px}

/* AI 답 배너 */
.ansban{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--line2);cursor:pointer}
.ansban .badge{background:var(--answer);color:#fff;font-size:11px;font-weight:800;width:20px;height:20px;border-radius:5px;display:grid;place-items:center;flex:0 0 auto}
.ansban .t{font-size:13px;font-weight:700}
.ansban .t b{color:var(--red)}
.ansban .t .g{color:var(--sub);font-weight:600}
.ansban .go{margin-left:auto;color:var(--dim)}

/* 경기 카드 */
.match{display:grid;grid-template-columns:26px 1fr 30px;gap:6px;padding:11px 10px 13px;border-bottom:1px solid var(--line);align-items:center;cursor:pointer}
.match:hover{background:#fafbfc}
.match .bell{color:var(--dim);font-size:16px;align-self:start;padding-top:6px}
.match .pick{background:var(--pick);color:#fff;font-size:11px;font-weight:800;padding:4px 6px;border-radius:5px;align-self:start;justify-self:end}
.mrow{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}
.side{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}
.side .ph{width:36px;height:36px;border-radius:50%;background:#eef1f4;display:grid;place-items:center;font-size:15px;overflow:hidden;border:1px solid #e4e8ec}
.side .ph img{width:100%;height:100%;object-fit:contain}
.side .team{font-size:13px;font-weight:800;text-align:center;line-height:1.25;max-width:120px}
.mid{display:flex;flex-direction:column;align-items:center;gap:4px}
.mid .badge-state{font-size:11px;font-weight:800;padding:3px 8px;border-radius:4px;white-space:nowrap}
.mid .badge-state.live{background:#8a2b24;color:#fff}
.mid .badge-state.sched{background:var(--blueDark);color:#fff}
.mid .badge-state.ft{background:#eef1f4;color:var(--sub)}
.mid .score{font-size:22px;font-weight:900}
.mid .score.live{color:var(--red)}
.mid .vs{font-size:14px;color:var(--dim);font-weight:800}
.mid .scores{display:flex;align-items:center;gap:10px}

.ad{display:flex;align-items:center;gap:10px;padding:10px 12px;border-top:1px solid var(--line);border-bottom:6px solid var(--page)}
.ad .cp{color:#f43142;font-weight:800;font-size:12px}
.ad .th{width:34px;height:34px;border-radius:6px;background:#eef1f4;display:grid;place-items:center;font-size:16px}
.ad .txt{flex:1;font-size:12px;color:#555}
.foot{text-align:center;font-size:11px;color:var(--dim);padding:16px;line-height:1.7}
.foot a{color:var(--blue)}

/* ===== 순위표 ===== */
.tblhead{display:flex;gap:6px;padding:10px 12px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.tblhead select,.tblhead input{border:1px solid var(--line);border-radius:6px;padding:7px 9px;font-size:13px;font-family:inherit;flex:1;min-width:100px}
.tblhead button{background:var(--blue);color:#fff;border:none;border-radius:6px;padding:0 16px;font-weight:800;cursor:pointer}
.tablewrap{padding:6px 0}
table.rank{width:100%;border-collapse:collapse;font-size:13px}
table.rank th,table.rank td{padding:9px 8px;border-bottom:1px solid var(--line2);text-align:center}
table.rank th{background:#f3f6f9;color:var(--sub);font-size:11px}
table.rank td.tm{text-align:left;font-weight:700;display:flex;align-items:center;gap:8px}
table.rank td.tm img{width:20px;height:20px;object-fit:contain}
table.rank td.pt{font-weight:900;color:var(--blue)}

/* ===== 채팅 ===== */
.chatpane{display:flex;flex-direction:column;height:100%}
.chat-msgs{flex:1;overflow-y:auto;padding:10px 12px;display:flex;flex-direction:column;gap:8px;min-height:200px}
.cmsg{font-size:13px;line-height:1.4}
.cmsg .u{font-weight:800;color:var(--blueDark);margin-right:6px}
.cmsg.me .u{color:var(--red)}
.cmsg .sys{color:var(--dim);font-style:italic;font-size:12px}
.chat-input{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--line);background:#fff}
.chat-input .ci{flex:1;border:1px solid var(--line);border-radius:20px;padding:9px 14px;font-size:13px;outline:none;font-family:inherit}
.chat-input .cs{background:var(--blue);color:#fff;border:none;border-radius:20px;padding:0 16px;font-weight:800;cursor:pointer}
#view-comm .chatpane{height:calc(100vh - 260px)}

/* ===== 로그인 버튼/모달 ===== */
.loginbtn{margin:0 16px 6px;padding:11px;border:none;border-radius:12px;background:linear-gradient(135deg,#2b3a4d,#1c2634);color:#fff;font-weight:800;font-size:14px;cursor:pointer;width:calc(100% - 32px);box-shadow:0 4px 12px rgba(28,38,52,.25);transition:transform .12s}
.loginbtn:hover{transform:translateY(-1px)}
.topnav{border-bottom:1px solid var(--line);padding-bottom:6px}
.topnav a{border-bottom:none!important;font-weight:800}
.loginmodal{position:fixed;left:50%;top:50%;transform:translate(-50%,-46%) scale(.96);width:90%;max-width:360px;background:#fff;border-radius:20px;z-index:90;opacity:0;pointer-events:none;transition:.22s;box-shadow:0 24px 70px rgba(0,0,0,.45);padding:26px 22px 20px;text-align:center}
.loginmodal.on{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
.loginmodal .lm-x{position:absolute;top:14px;right:16px;color:var(--sub);cursor:pointer;font-size:15px}
.lm-logo{margin:0 auto 12px;filter:drop-shadow(0 0 6px rgba(224,169,46,.4))}
.lm-title{font-size:20px;font-weight:900}
.lm-sub{font-size:12px;color:var(--sub);margin:6px 0 18px;line-height:1.5}
.lgn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:13px;border-radius:12px;font-size:14px;font-weight:800;cursor:pointer;margin-bottom:9px;border:1px solid transparent;transition:transform .1s,box-shadow .1s}
.lgn:hover{transform:translateY(-1px);box-shadow:0 5px 14px rgba(0,0,0,.12)}
.lgn .gi{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-weight:900;font-size:13px}
.lgn.google{background:#fff;color:#3c4043;border-color:#dadce0}
.lgn.google .gi{background:#fff;border:1px solid #eee;color:#4285F4}
.lgn.naver{background:#03C75A;color:#fff}
.lgn.naver .gi{background:#fff;color:#03C75A}
.lgn.kakao{background:#FEE500;color:#191600}
.lgn.kakao .gi{background:#191600;color:#FEE500}
.lm-note{font-size:10px;color:var(--dim);margin-top:10px}

/* ===== 커뮤니티 게시판 ===== */
.boardtabs{display:flex;border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0;z-index:5}
.boardtabs .bt{flex:1;text-align:center;padding:13px 6px;font-size:13px;font-weight:800;color:var(--sub);cursor:pointer;position:relative}
.boardtabs .bt.on{color:var(--txt)}
.boardtabs .bt.on::after{content:"";position:absolute;bottom:0;left:16%;right:16%;height:3px;background:var(--gold);border-radius:2px}
.writebar{display:flex;align-items:center;gap:10px;padding:11px 14px;border-bottom:6px solid var(--page);background:#fff}
.writebar #boardDesc{font-size:12px;color:var(--sub)}
.writebar #btnWrite{margin-left:auto;background:linear-gradient(135deg,#f0c14e,#d89a1e);color:#3a2a05;border:none;border-radius:10px;padding:9px 15px;font-weight:800;font-size:13px;cursor:pointer;box-shadow:0 3px 10px rgba(216,154,30,.3)}
.postlist{padding:10px 12px 24px}
.post{background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px 15px;margin-bottom:10px;box-shadow:0 1px 6px rgba(0,0,0,.04);transition:transform .12s,box-shadow .12s}
.post:hover{transform:translateY(-1px);box-shadow:0 5px 16px rgba(0,0,0,.08)}
.post-hd{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--dim);margin-bottom:5px}
.post-hd .pu{font-weight:800;color:var(--txt)}
.post-title{font-size:14px;font-weight:800;line-height:1.4;margin-bottom:5px}
.post-text{font-size:13px;color:#555;line-height:1.6;white-space:pre-wrap}
.post-ft{display:flex;gap:14px;margin-top:9px;font-size:12px;color:var(--sub)}
.post-ft .like{cursor:pointer;font-weight:700;user-select:none}
.post-ft .like:active{transform:scale(.92)}
.winput{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px 13px;font-size:14px;font-family:inherit;margin-bottom:10px;outline:none}
.winput:focus{border-color:var(--gold)}
.wtext{min-height:150px;resize:vertical;line-height:1.6}
.wsubmit{width:100%;background:linear-gradient(135deg,#f0c14e,#d89a1e);color:#3a2a05;border:none;border-radius:11px;padding:13px;font-weight:900;font-size:15px;cursor:pointer}

/* ===== 배당 보드 ===== */
.oddshd{padding:12px 14px 8px;font-weight:900;font-size:15px;color:var(--navy);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.oddshd .obk{font-size:10px;color:var(--sub);font-weight:600;background:#f3f6f9;padding:3px 8px;border-radius:6px}
.oddschips{display:flex;gap:7px;overflow-x:auto;padding:0 14px 12px;scrollbar-width:none;border-bottom:6px solid var(--page)}
.oddschips::-webkit-scrollbar{display:none}
.ochip{flex:0 0 auto;padding:8px 13px;border-radius:20px;border:1px solid var(--line);background:#fff;font-size:12px;font-weight:700;color:var(--sub);cursor:pointer}
.ochip.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.oddsboard{padding:0 0 24px}
.ocols{display:grid;grid-template-columns:1fr 168px;gap:0;padding:8px 14px;font-size:11px;color:var(--sub);font-weight:700;background:#f3f6f9;border-bottom:1px solid var(--line)}
.ocols span:first-child{grid-column:1}
.ocols span:not(:first-child){text-align:center}
.ocols{grid-template-columns:1fr repeat(3,56px)}
.orow2{display:grid;grid-template-columns:26px 1fr auto;gap:8px;align-items:center;padding:11px 14px;border-bottom:1px solid var(--line)}
.orow2:hover{background:#fafbfc}
.onum{font-size:12px;font-weight:800;color:var(--gold)}
.og{min-width:0}
.ogl{font-size:10px;color:var(--dim);margin-bottom:3px}
.ogl .obks{color:var(--sub)}
.ogt{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ogt b{font-weight:800}
.ogt .ovs{color:var(--dim);font-weight:600;font-size:11px;margin:0 3px}
.oodds{display:grid;gap:5px}
.oodds.s{grid-template-columns:repeat(3,52px)}
.oodds.b{grid-template-columns:repeat(2,52px)}
.ov{background:#f3f6f9;border:1px solid var(--line);border-radius:6px;padding:7px 0;text-align:center;font-size:13px;font-weight:800;color:var(--navy)}
.ov.hot{background:#eaf1fb;border-color:#b9d0f0;color:var(--blue)}
.ov.dash{color:var(--dim);font-weight:600}
.oddskey{text-align:center;padding:40px 24px}
.oddskey .ok-ic{font-size:40px;margin-bottom:12px}
.oddskey .ok-t{font-size:17px;font-weight:900;margin-bottom:8px}
.oddskey .ok-s{font-size:13px;color:var(--sub);line-height:1.7;margin-bottom:18px}
.oddskey .ok-b{display:inline-block;background:linear-gradient(135deg,var(--goldL),var(--gold));color:#3a2a05;font-weight:800;padding:12px 20px;border-radius:12px;font-size:14px}
.oddskey .ok-n{font-size:11px;color:var(--dim);margin-top:14px;line-height:1.6}

/* ===== 배당 상세 모달 ===== */
.odet{font-size:10px;color:var(--gold);font-weight:800;margin-left:4px}
.odh{text-align:center;font-size:16px;font-weight:900;margin-bottom:2px}
.odh span{color:var(--dim);font-weight:600;font-size:12px;margin:0 6px}
.odsub{text-align:center;font-size:11px;color:var(--sub);margin-bottom:14px}
.calc{background:linear-gradient(135deg,#f7f3e8,#f4f7fb);border:1px solid var(--goldLine);border-radius:14px;padding:14px;margin-bottom:14px}
.calc-hd{font-weight:900;font-size:14px;margin-bottom:10px;color:var(--navy)}
.calc-in{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-size:12px;color:var(--sub)}
.calc-in input{flex:0 0 130px;border:1px solid var(--line);border-radius:9px;padding:9px 11px;font-size:15px;font-weight:800;font-family:inherit;text-align:right;outline:none}
.calc-in input:focus{border-color:var(--gold)}
.calc-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:9px 4px;border-top:1px dashed var(--line)}
.calc-row .ck{font-size:13px;font-weight:700}
.calc-row .cod{font-size:12px;color:var(--sub);font-weight:700}
.calc-row .cpay{font-size:15px;font-weight:900;color:var(--blue);min-width:80px;text-align:right}
.calc-note{font-size:10px;color:var(--dim);margin-top:8px;line-height:1.5}
.odsec{font-weight:800;font-size:13px;margin:16px 0 8px;color:var(--navy)}
.odline{display:flex;gap:8px;font-size:12px;color:var(--sub);padding:7px 10px;background:#f7f9fb;border-radius:8px;margin-bottom:6px;flex-wrap:wrap}
.odline span:first-child{font-weight:800;color:var(--txt);flex:0 0 60px}
.odline b{color:var(--navy)}
.bookcmp{border:1px solid var(--line);border-radius:10px;overflow:hidden;font-size:12px}
.bc-hd,.bc-row{display:grid;grid-template-columns:1fr 52px 52px 52px;align-items:center}
.bookcmp.s3 .bc-hd,.bookcmp.s3 .bc-row{grid-template-columns:1fr 46px 46px 46px}
.bc-hd{background:#f3f6f9;color:var(--sub);font-weight:700;font-size:11px;padding:7px 10px}
.bc-hd span:not(:first-child),.bc-row span:not(:first-child){text-align:center;font-weight:800}
.bc-row{padding:8px 10px;border-top:1px solid var(--line2)}
.bc-row .bkn{font-weight:700;color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.recent2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.recol{border:1px solid var(--line);border-radius:10px;overflow:hidden}
.rec-hd{background:#f3f6f9;padding:8px 10px;font-size:12px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rec-empty{padding:14px 10px;font-size:11px;color:var(--dim);text-align:center}
.rec-row{display:flex;align-items:center;gap:6px;padding:7px 8px;border-top:1px solid var(--line2);font-size:11px}
.rec-row .rb{width:18px;height:18px;border-radius:4px;display:grid;place-items:center;font-size:10px;font-weight:800;color:#fff;flex:0 0 auto}
.rec-row .rb.W{background:var(--up)}.rec-row .rb.L{background:var(--red)}.rec-row .rb.D{background:var(--dim)}
.rec-row .ro{flex:1;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rec-row .rs{font-weight:800;color:var(--txt)}

/* ===== 새 로고 브랜드 + 다운로드 ===== */
.brand-logo{display:block;padding:14px 14px 12px;background:linear-gradient(180deg,#0b0f14,#151c28);border-bottom:1px solid var(--goldLine);text-align:center}
.brand-logo .brandimg{width:100%;max-width:170px;height:auto;margin:0 auto;filter:drop-shadow(0 2px 12px rgba(0,0,0,.45))}
.brand-logo .wm{font-style:italic;font-weight:900;font-size:22px;color:#f0c14e;background:linear-gradient(135deg,#f6d67a,#d9a327);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.dlbtn{margin:12px 16px 0;padding:12px;border:none;border-radius:12px;background:linear-gradient(135deg,#f6d67a,#e0a92e);color:#2a1e05;font-weight:900;font-size:14px;cursor:pointer;width:calc(100% - 32px);box-shadow:0 4px 14px rgba(224,169,46,.35);transition:transform .12s}
.dlbtn:hover{transform:translateY(-1px)}
.dlbtn.sm{margin:0;width:auto;padding:8px 14px;font-size:12.5px;border-radius:10px;box-shadow:0 3px 10px rgba(224,169,46,.4)}
/* 모바일 브랜드 바 */
.mbrand{display:flex;align-items:center;gap:10px;padding:8px 12px;background:linear-gradient(180deg,#0b0f14,#151c28);border-bottom:2px solid var(--gold)}
.mbrand-logo{display:flex}.mbrand-logo img{height:36px;width:auto;display:block}
.mbrand-txt{font-style:italic;font-weight:900;font-size:19px;color:#f0c14e}
.mbrand .dlbtn.sm{margin-left:auto}
@media(min-width:960px){ .mbrand{display:none} }

/* ===== 다운로드 로딩 오버레이 ===== */
.dloverlay{position:fixed;inset:0;z-index:200;background:radial-gradient(120% 100% at 50% 0%,#16243d,#07090d);display:none;align-items:center;justify-content:center;padding:24px}
.dloverlay.on{display:flex;animation:fade .3s}
.dlbox{width:100%;max-width:340px;text-align:center;position:relative}
.dl-glow{position:absolute;top:-14px;left:50%;transform:translateX(-50%);width:210px;height:210px;background:radial-gradient(circle,#e0a92e40,transparent 70%);pointer-events:none;animation:glowp 2.2s ease-in-out infinite}
@keyframes glowp{0%,100%{opacity:.5}50%{opacity:1}}
.dllogo{width:135px;height:auto;margin:0 auto 20px;filter:drop-shadow(0 0 22px rgba(224,169,46,.45));animation:floaty 2.4s ease-in-out infinite;position:relative}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.dltitle{color:#fff;font-size:18px;font-weight:900;margin-bottom:16px}
.dlbar{height:10px;background:rgba(255,255,255,.12);border-radius:6px;overflow:hidden;margin-bottom:9px}
.dlfill{height:100%;width:0;background:linear-gradient(90deg,#f6d67a,#e0a92e,#4d8cff);background-size:200% 100%;border-radius:6px;transition:width .2s ease;animation:shine 1.4s linear infinite}
@keyframes shine{0%{background-position:0 0}100%{background-position:200% 0}}
.dlrow{display:flex;justify-content:space-between;font-size:12px;color:#b7c2d4;font-weight:700}
.dlpct{color:#f0c14e}
.dlguide{margin-top:18px;color:#dbe3ef;font-size:13px;line-height:1.7;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:14px;display:none}
.dlguide b{color:#f0c14e}
.dlx{margin-top:16px;background:transparent;border:1px solid rgba(255,255,255,.25);color:#cdd6e4;font-weight:700;padding:9px 24px;border-radius:10px;cursor:pointer;display:none}

/* ===== 경기 정보방 ===== */
.sample-badge{font-size:10px;font-weight:800;color:#8a6d1a;background:#fdf3d0;border:1px solid var(--goldLine);padding:2px 7px;border-radius:6px;vertical-align:middle}
.infohd{padding:12px 14px 6px;font-weight:900;font-size:15px;color:var(--navy)}
.infonote{padding:0 14px 12px;font-size:11px;color:var(--sub);line-height:1.5;border-bottom:6px solid var(--page)}
.infolist{padding:10px 12px 24px}
.infocard{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;background:#fff;border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:12px;padding:11px 13px;margin-bottom:10px;cursor:pointer;box-shadow:0 1px 6px rgba(0,0,0,.04)}
.infocard:hover{transform:translateY(-1px);box-shadow:0 5px 16px rgba(0,0,0,.08)}
.ic-no{font-size:13px;font-weight:900;color:var(--gold)}
.ic-lg{font-size:10px;color:var(--dim);margin-bottom:4px}
.ic-tm{font-size:14px;font-weight:800;display:flex;align-items:center;gap:6px}
.ic-b{width:22px;height:22px;border-radius:50%;color:#fff;font-size:9px;font-weight:800;display:grid;place-items:center;flex:0 0 auto}
.ic-vs{color:var(--dim);font-size:11px;font-weight:600}
.ic-go{font-size:11px;color:var(--gold);font-weight:800}

/* 상세: 헤더/배당 */
.ii-hd{text-align:center;font-size:15px;font-weight:900;display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap}
.ii-hd .ii-no{background:#222;color:#fff;font-size:11px;padding:2px 6px;border-radius:4px}
.ii-hd .ii-vs{color:var(--dim);font-size:12px}
.ii-sub{text-align:center;font-size:11px;color:var(--sub);margin:4px 0 14px}
.ii-odds{border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:6px}
.ii-otab{display:flex}
.ii-otab .oth{flex:1;text-align:center;padding:9px;font-size:12px;font-weight:800;color:var(--sub);background:#f3f6f9;cursor:pointer}
.ii-otab .oth.on{background:var(--navy);color:#fff}
.ii-obody{padding:6px 12px}
.ii-orow{display:flex;justify-content:space-between;padding:8px 2px;border-bottom:1px solid var(--line2);font-size:13px}
.ii-orow:last-child{border-bottom:none}
.ii-orow span{color:var(--sub);font-weight:700}
.ii-orow b{color:var(--navy);font-weight:800}

/* 라인업 */
.lineup2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.lu{border:1px solid var(--line);border-radius:10px;overflow:hidden}
.lu-hd{font-size:12px;font-weight:800;padding:7px 10px;background:#f3f6f9;border-bottom:2px solid var(--gold)}
.lu-row{display:flex;gap:7px;padding:6px 10px;border-top:1px solid var(--line2);font-size:12px}
.lu-row:first-of-type{border-top:none}
.lu-n{color:var(--dim);font-weight:800;width:14px}

/* 선수 통계 테이블 */
.teamtog{float:right;font-size:11px}
.teamtog .tg{padding:3px 9px;border:1px solid var(--line);border-radius:6px;color:var(--sub);font-weight:700;cursor:pointer;margin-left:4px}
.teamtog .tg.on{background:var(--red);color:#fff;border-color:var(--red)}
table.stt{width:100%;border-collapse:collapse;font-size:11.5px}
table.stt th,table.stt td{padding:6px 3px;text-align:center;border-bottom:1px solid var(--line2)}
table.stt th{background:#f3f6f9;color:var(--sub);font-size:10px;font-weight:700}
table.stt td.nm{text-align:left;font-weight:700;padding-left:8px;white-space:nowrap}
table.stt td.lr{font-weight:800;font-size:10px}
table.stt td.lr.l{color:#2f6fed}table.stt td.lr.r{color:var(--red)}

/* 이닝 박스스코어 */
table.boxsc{width:100%;border-collapse:collapse;font-size:12px;text-align:center}
table.boxsc th,table.boxsc td{padding:7px 2px;border:1px solid var(--line2)}
table.boxsc th{background:#f3f6f9;color:var(--sub);font-size:10px}
table.boxsc .tn{text-align:left;padding-left:8px;font-weight:700;white-space:nowrap}
table.boxsc .r{font-weight:900;color:var(--red);background:#fbfaf4}

/* ===== 디자인 폼나게: 라이브 펄스 · 카드 리프트 ===== */
.mid .badge-state.live{animation:livePulse 1.5s ease-in-out infinite}
@keyframes livePulse{0%,100%{opacity:1}50%{opacity:.6}}
.match{transition:background .15s,box-shadow .15s}
.pick{box-shadow:0 2px 6px rgba(226,59,47,.28)}
.datenav .refresh{transition:transform .1s}.datenav .refresh:active{transform:scale(.94)}
/* 라이브 외 화면에선 날짜/뉴스/대화방 바 숨김 */
.center.notlive .datenav,.center.notlive .ticker,.center.notlive .chatban,.center.notlive .sportrow{display:none}

/* ===== 모달 ===== */
.scrim{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:80;opacity:0;pointer-events:none;transition:.2s}
.scrim.on{opacity:1;pointer-events:auto}
.modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-46%) scale(.96);width:92%;max-width:460px;max-height:84vh;overflow-y:auto;background:#fff;border-radius:16px;z-index:90;opacity:0;pointer-events:none;transition:.22s;box-shadow:0 20px 60px rgba(0,0,0,.4)}
.modal.on{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
.mhd{position:sticky;top:0;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line);font-weight:800}
.mhd .x{cursor:pointer;color:var(--sub);font-size:16px}
.mbody{padding:16px}

/* modal content */
.mteams{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.mteams .mt{display:flex;flex-direction:column;align-items:center;gap:6px;width:36%}
.mteams .mt .ph{width:54px;height:54px;border-radius:50%;background:#eef1f4;display:grid;place-items:center;border:1px solid var(--line);overflow:hidden}
.mteams .mt .ph img{width:100%;height:100%;object-fit:contain}
.mteams .mt .nm{font-size:13px;font-weight:800;text-align:center}
.mteams .msc{text-align:center}
.mteams .msc .n{font-size:32px;font-weight:900}
.mteams .msc .st{font-size:12px;font-weight:800;margin-top:2px}
.probwrap{margin:14px 0}
.probttl{font-size:11px;color:var(--sub);display:flex;justify-content:space-between;margin-bottom:6px;font-weight:700}
.probbar{display:flex;height:30px;border-radius:9px;overflow:hidden;font-size:12px;font-weight:800}
.probbar .pw{background:linear-gradient(135deg,#4a9d5b,#3c8a4c);color:#fff;display:grid;place-items:center}
.probbar .pd{background:#eef1f4;color:var(--sub);display:grid;place-items:center}
.probbar .pl{background:linear-gradient(135deg,#e2231a,#c21b13);color:#fff;display:grid;place-items:center}
.problbl{display:flex;justify-content:space-between;font-size:10px;color:var(--dim);margin-top:4px}
.minfo{font-size:13px;line-height:1.9}
.minfo .k{color:var(--sub);display:inline-block;width:70px}
.box{background:#f7f9fb;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:12px;color:#444;line-height:1.6;margin-top:10px;white-space:pre-wrap}
.mchat-open{margin-top:14px;text-align:center;background:var(--blue);color:#fff;padding:11px;border-radius:10px;font-weight:800;cursor:pointer}

/* ===== 드로어 (mobile) ===== */
.drawer{position:fixed;top:0;left:0;bottom:0;width:82%;max-width:360px;background:#fff;z-index:90;transform:translateX(-100%);transition:.26s cubic-bezier(.2,.8,.2,1);overflow-y:auto}
.drawer.on{transform:none}
.dprof{background:linear-gradient(135deg,#2b3a4d,#1c2634);color:#fff;padding:16px;display:flex;gap:12px;align-items:center}
.dprof .av{width:48px;height:48px;border-radius:50%;background:#fff;display:grid;place-items:center;font-size:22px;color:#9aa2ad}
.dprof .who{font-weight:800}.dprof .blog{font-size:12px;color:#bcd0e6}.dprof .blog b{color:#ffd34d}

/* ===== 사이드 네비 공통 ===== */
.side-hd{font-size:11px;font-weight:800;color:var(--dim);letter-spacing:.4px;padding:14px 16px 8px}
.sidenav{display:flex;flex-direction:column}
.sidenav a{display:flex;align-items:center;gap:10px;padding:12px 16px;font-size:14px;font-weight:600;color:var(--txt);cursor:pointer;border-left:3px solid transparent;border-bottom:1px solid var(--goldLine)}
.sidenav a:last-child{border-bottom:none}
.sidenav a:hover{background:#f3f6f9}
.sidenav a.on{border-left-color:var(--blue);background:#eef4ff;color:var(--blue);font-weight:800}
.sidenav a .em{font-size:16px;width:20px;text-align:center}
.sidenav a .live-dot{margin-left:auto;font-size:10px;color:var(--red);font-weight:800}
.brand{display:flex;align-items:center;gap:11px;padding:16px;font-style:italic;font-weight:900;font-size:20px;border-bottom:1px solid var(--goldLine)}
.brand .blogo{flex:0 0 auto;filter:drop-shadow(0 0 5px rgba(224,169,46,.45))}
.brand .wm{background:linear-gradient(135deg,#e8be3f,#b8860b);-webkit-background-clip:text;background-clip:text;color:transparent;letter-spacing:.3px}
.brand .wm b{-webkit-text-fill-color:transparent}
.side-note{font-size:10px;color:var(--dim);padding:16px;line-height:1.6}
.online-pill{float:right;font-size:11px;color:var(--up);font-weight:800}

/* ================= DESKTOP (>=960px) ================= */
@media(min-width:960px){
  body{padding:18px 0}
  .shell{grid-template-columns:230px minmax(0,1fr) 320px;gap:16px;padding:0 16px;align-items:start}
  .side-l,.side-r{display:block;background:#fff;border-radius:14px;overflow:hidden auto;position:sticky;top:18px;box-shadow:0 2px 14px rgba(0,0,0,.06);max-height:calc(100vh - 36px);border-top:3px solid var(--gold)}
  .side-l::-webkit-scrollbar,.side-r::-webkit-scrollbar{width:6px}
  .side-l::-webkit-scrollbar-thumb,.side-r::-webkit-scrollbar-thumb{background:#d8dde4;border-radius:3px}
  .side-r{display:flex;flex-direction:column;height:calc(100vh - 36px)}
  .side-r .chatpane{flex:1;min-height:0}
  .center{border-radius:14px;overflow:hidden;box-shadow:0 2px 14px rgba(0,0,0,.06);min-height:auto;padding-bottom:0;border-top:3px solid var(--gold)}
  .topbar,.sportrow{display:none}          /* PC는 좌측 네비 사용 */
  #view-comm{display:none!important}         /* PC는 우측 채팅 사용 */
  .datenav{border-radius:14px 14px 0 0}
  .chatban .prize{display:none}
}
@media(max-width:959px){
  .side-l,.side-r{display:none}
  #chatDesk{display:none}
}
