:root{--bg:#0f1318;--card:#171c23;--line:#262d37;--text:#e6e9ee;--muted:#8b95a3;--up:#ff5b5b;--down:#4d9dff;--accent:#f0b429}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 -apple-system,"Segoe UI","Apple SD Gothic Neo","Malgun Gothic",sans-serif}
.top{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;padding:12px 16px calc(8px);background:var(--bg);border-bottom:1px solid var(--line)}
.brand{font-weight:700;letter-spacing:.2px}
.meta{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:12px}
.meta button{background:none;border:1px solid var(--line);color:var(--text);border-radius:8px;width:32px;height:32px;font-size:16px}
.tabs{position:sticky;top:57px;z-index:4;display:flex;background:var(--bg);border-bottom:1px solid var(--line)}
.tabs button{flex:1;padding:12px 0;background:none;border:0;color:var(--muted);font-size:15px;border-bottom:2px solid transparent}
.tabs button.on{color:var(--text);border-color:var(--accent);font-weight:600}
main{padding:8px 16px 24px;max-width:960px;margin:0 auto}
.view{display:none}.view.on{display:block}
h2{font-size:14px;color:var(--muted);margin:18px 0 8px;font-weight:600}
h2 small{font-weight:400}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
@media(min-width:720px){.grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px}
.q .n{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.q .p{font-size:18px;font-weight:600;font-variant-numeric:tabular-nums;margin-top:2px}
.q .c{font-size:13px;font-variant-numeric:tabular-nums}
.up{color:var(--up)}.down{color:var(--down)}.flat{color:var(--muted)}
.q svg{display:block;width:100%;height:28px;margin-top:6px}
.fng{display:flex;align-items:center;gap:12px;margin-top:12px}
.fng .v{font-size:28px;font-weight:700;min-width:48px;text-align:center}
.fng .bar{flex:1;height:8px;border-radius:4px;background:linear-gradient(90deg,#4d9dff,#8b95a3 50%,#ff5b5b);position:relative}
.fng .dot{position:absolute;top:-4px;width:16px;height:16px;border-radius:50%;background:var(--text);border:2px solid var(--bg);transform:translateX(-50%)}
.list{list-style:none;margin:0;padding:0}
.list li{padding:12px 0;border-bottom:1px solid var(--line)}
.list a{color:var(--text);text-decoration:none}
.list .t{font-size:15px}
.list .s{font-size:12px;color:var(--muted);margin-top:4px;display:flex;gap:8px;flex-wrap:wrap}
.badge{display:inline-block;min-width:30px;text-align:center;border-radius:6px;padding:0 6px;font-size:12px;font-weight:600;background:#262d37}
.badge.hi{background:#5a1f1f;color:#ffb3b3}.badge.mid{background:#4a3a12;color:#ffd97a}
.tag{font-size:11px;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:0 5px}
.filters{display:flex;gap:12px;margin:12px 0;color:var(--muted);font-size:13px}
select{background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:6px}
.brief{white-space:pre-wrap;margin-top:12px}
.brief h3{margin:0 0 4px}
.empty{color:var(--muted);padding:24px 0;text-align:center}
footer{padding:16px;color:var(--muted);font-size:12px;border-top:1px solid var(--line);max-width:960px;margin:0 auto}
.hidden{display:none!important}
.fab{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));background:var(--accent);color:#111;border:0;border-radius:24px;padding:12px 18px;font-weight:700;box-shadow:0 4px 16px #0008}
dialog{background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:14px;width:min(92vw,480px)}
dialog::backdrop{background:#0009}
textarea{width:100%;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:8px;font:inherit}
.row{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}
.row button{background:none;border:1px solid var(--line);color:var(--text);border-radius:8px;padding:8px 14px}
.row .primary{background:var(--accent);color:#111;border:0;font-weight:700}
.muted{color:var(--muted);font-size:12px}

.ol{grid-template-columns:repeat(1,minmax(0,1fr))}
@media(min-width:720px){.ol{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ol .olh{display:flex;justify-content:space-between;align-items:baseline}
.ol .sig{font-size:24px;font-weight:700;font-variant-numeric:tabular-nums}
.ol .band{font-size:13px;color:var(--muted);margin-top:2px;font-variant-numeric:tabular-nums}
.lv{font-size:12px;font-weight:700;border-radius:6px;padding:1px 8px}
.lv.낮음{background:#16324f;color:#9cc8ff}.lv.보통{background:#262d37;color:var(--text)}.lv.높음{background:#5a1f1f;color:#ffb3b3}
.meter{position:relative;height:6px;border-radius:3px;background:linear-gradient(90deg,#4d9dff,#8b95a3 50%,#ff5b5b);margin:10px 0 2px}
.meter .dot{position:absolute;top:-5px;width:16px;height:16px;border-radius:50%;background:var(--text);border:2px solid var(--bg);transform:translateX(-50%)}
.meter-l{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}
.val{margin-top:12px;font-size:14px}
.val h3{margin:0 0 6px;font-size:15px}
.val ul{margin:6px 0 0;padding-left:18px}
.val li{margin:4px 0}
.scored{margin-top:10px;font-size:13px;color:var(--muted)}
.scored.in::before{content:"✓ ";color:#3fb950}
.scored.out::before{content:"✗ ";color:var(--accent)}
.val .muted{color:var(--muted)}
.val ul + h3{margin-top:20px}
.spark{display:block;width:100%;height:auto;margin-top:10px}
.spark .band{fill:rgba(77,157,255,.22);stroke:rgba(77,157,255,.7);stroke-width:1}
.spark .din{fill:#3fb950}
.spark .dout{fill:var(--accent)}
.spark .clip{stroke:var(--text);stroke-width:.6}
.spark .lv-line{stroke:var(--muted);stroke-dasharray:3 3;stroke-width:1}
.spark-l{font-size:12px;color:var(--muted);margin-top:4px}
