:root{--bg:#f6f7f9;--card:#fff;--tx:#1a1d21;--mt:#6b7280;--bd:#e3e6ea;--ac:#2563eb;--live:#dc2626;--done:#6b7280;--sch:#2563eb;--ok:#16a34a;--tot:#dc2626}
@media(prefers-color-scheme:dark){:root{--bg:#111316;--card:#1b1e23;--tx:#e7e9ec;--mt:#9aa1ab;--bd:#2d3239;--ac:#6ea0ff;--live:#f87171;--done:#9aa1ab;--sch:#6ea0ff;--ok:#4ade80;--tot:#f87171}}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--bg);color:var(--tx);font:14px/1.5 -apple-system,"Noto Sans KR","Malgun Gothic",sans-serif}
.wrap{max-width:1040px;margin:0 auto;padding:14px}

/* 상단 메뉴 */
.top{position:sticky;top:0;z-index:10;background:var(--card);border-bottom:1px solid var(--bd)}
.top .wrap{display:flex;align-items:center;gap:18px;padding-top:0;padding-bottom:0}
.brand{font-weight:800;font-size:16px;color:var(--tx);text-decoration:none;padding:12px 0;white-space:nowrap}
.menu{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;flex:1}
.menu::-webkit-scrollbar{display:none}
.menu a,.menu .soon{display:flex;align-items:center;gap:6px;padding:13px 12px;white-space:nowrap;color:var(--mt);text-decoration:none;border-bottom:3px solid transparent;font-weight:600}
.menu a:hover{color:var(--tx)}
.menu a.cur{color:var(--ac);border-bottom-color:var(--ac)}
.menu .soon{opacity:.5;cursor:default}
.menu a:focus-visible{outline:2px solid var(--ac);outline-offset:-2px;border-radius:6px}
.ic{font-size:16px}

h1{font-size:18px;margin:4px 0 10px;display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}
h1 small{font-size:12px;color:var(--mt);font-weight:400}
#rt.ok{color:var(--ok)}#rt.bad{color:var(--live)}
.empty{text-align:center;padding:70px 10px;color:var(--mt)}
.empty .big{font-size:48px}.empty h2{color:var(--tx);font-size:18px;margin:8px 0 4px}.empty p{margin:0}

input[type=search],select{width:100%;padding:8px 10px;border:1px solid var(--bd);border-radius:8px;background:var(--bg);color:var(--tx);font:inherit}
button{padding:9px 16px;border:0;border-radius:8px;background:var(--ac);color:#fff;font:inherit;font-weight:700;cursor:pointer}
.msg{border-radius:8px;padding:9px 12px;margin-bottom:12px}.err{background:#fee2e2;color:#991b1b}.warn{background:#fef3c7;color:#92400e}
.bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.bar input[type=search]{flex:1 1 160px;min-width:0}.bar select{width:auto;flex:0 0 auto}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{padding:6px 12px;border:1px solid var(--bd);border-radius:20px;background:var(--card);color:var(--tx);font-weight:400}
.chip.on{background:var(--ac);border-color:var(--ac);color:#fff;font-weight:700}
.auto{font-size:12px;color:var(--mt);display:flex;align-items:center;gap:4px;white-space:nowrap}
.lg{margin:16px 0 6px;font-weight:700;display:flex;align-items:center;gap:8px}
.lg i{width:10px;height:10px;border-radius:50%}.lg small{color:var(--mt);font-weight:400}

/* 경기 행 공통 */
.m{display:grid;gap:8px;align-items:center;background:var(--card);border:1px solid var(--bd);border-radius:10px;padding:10px 12px;margin-bottom:6px}
.m.live{border-left:4px solid var(--live)}
.m.flash{animation:fl 3s ease-out}
@keyframes fl{0%,60%{background:rgba(250,204,21,.45)}100%{background:var(--card)}}
@media(prefers-reduced-motion:reduce){.m.flash{animation:none}}
.bd{text-align:center;font-size:12px;line-height:1.3}
.bd b{display:block;font-size:13px}.bd span{display:block;color:var(--mt)}.bd .tm:empty{display:none}
.live .bd b{color:var(--live)}.done .bd b{color:var(--done)}.sched .bd b{color:var(--sch)}
.rk{color:var(--mt);font-size:12px;font-weight:400}

/* 축구 */
.m.soccer{grid-template-columns:84px 1fr 96px 1fr 170px}
.t b{display:block}.t span{color:var(--mt);font-size:12px}.t.a{text-align:right}.rc{font-size:11px}
.sc{text-align:center}.sc strong{font-size:20px;letter-spacing:1px}.sc small{display:block;color:var(--mt);font-size:11px}
.x{font-size:12px;color:var(--mt);text-align:right;line-height:1.5}
.x b{color:var(--ac);font-size:13px}
.res{display:inline-block;padding:0 6px;border-radius:10px;background:var(--bg);border:1px solid var(--bd);font-size:11px}

/* 농구 */
.m.basketball{grid-template-columns:84px 1fr;gap:10px}
.bd .tm{color:var(--live);font-weight:700;font-size:13px}
.tr{display:grid;grid-template-columns:minmax(0,1fr) repeat(5,34px) 52px;align-items:center;gap:2px;padding:2px 0}
.tr .q,.tr .tot{text-align:center}
.tr.hd{font-size:11px;color:var(--mt)}
.nm{font-weight:600;overflow:hidden;text-overflow:ellipsis}
.tot{font-weight:700;color:var(--mt)}.tot.lead{color:var(--tot);font-size:16px}

@media(max-width:700px){
 .brand{display:none}
 .m.soccer{grid-template-columns:1fr 84px 1fr;row-gap:6px}
 .m.soccer .bd{grid-column:1/-1;text-align:left;display:flex;gap:8px;align-items:baseline}
 .m.soccer .x{grid-column:1/-1;text-align:left;border-top:1px dashed var(--bd);padding-top:6px}
 .m.soccer .sc strong{font-size:22px}
 .m.basketball{grid-template-columns:1fr;gap:6px}
 .m.basketball .bd{text-align:left;display:flex;gap:8px;align-items:baseline}
 .m .bd b,.m .bd span{display:inline}
 .tr{grid-template-columns:minmax(0,1fr) repeat(5,26px) 44px}
}
