:root{--bg:#0f1115;--card:#181b22;--card2:#20242d;--tx:#eef0f4;--mu:#9aa3b2;--acc:#ffb703;--ok:#3ddc97;--bad:#ff6b6b;--bd:#2a2f3a}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--bg);color:var(--tx);font:16px/1.4 -apple-system,system-ui,Segoe UI,Roboto,sans-serif}
body{padding:0 16px 96px;max-width:720px;margin:0 auto}
header{display:flex;align-items:center;justify-content:space-between;padding:14px 0;position:sticky;top:0;background:var(--bg);z-index:5}
header h1{font-size:18px;margin:0}header small{color:var(--mu)}
h2{font-size:20px;margin:18px 0 6px}p{margin:6px 0}.mu{color:var(--mu)}
.card{background:var(--card);border:1px solid var(--bd);border-radius:14px;padding:14px;margin:10px 0}
button,.btn{font:inherit;border:0;border-radius:12px;padding:12px 16px;background:var(--acc);color:#1a1300;font-weight:700;cursor:pointer}
button.sec{background:var(--card2);color:var(--tx);border:1px solid var(--bd)}
button.danger{background:var(--bad);color:#2a0000}
button:disabled{opacity:.45}
input{font:inherit;width:100%;padding:12px;border-radius:12px;border:1px solid var(--bd);background:var(--card2);color:var(--tx)}
.tabs{display:flex;gap:8px;margin:6px 0 10px}.tabs button{flex:1;padding:10px}
.tabs button:not(.on){background:var(--card2);color:var(--mu);border:1px solid var(--bd)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.g{background:var(--card);border:1px solid var(--bd);border-radius:14px;padding:12px;cursor:pointer;text-align:left;color:var(--tx);font-weight:600}
.g.done{border-color:var(--ok)}.g small{display:block;color:var(--mu);font-weight:400;margin-top:4px}
.bar{height:8px;background:var(--card2);border-radius:99px;overflow:hidden;margin:8px 0}.bar i{display:block;height:100%;background:var(--acc)}
.v{background:var(--card);border:2px solid var(--bd);border-radius:14px;overflow:hidden;margin:12px 0}
.v.m3{border-color:#ffd700}.v.m2{border-color:#c0c8d4}.v.m1{border-color:#cd7f32}.v.pick{border-color:var(--ok)}
.vw{position:relative;background:#000;aspect-ratio:16/10;display:flex;align-items:center;justify-content:center}
.vw img,.vw video{width:100%;height:100%;object-fit:contain;display:block}
.play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:54px;color:#fff;text-shadow:0 2px 12px #000;cursor:pointer;background:none;border:0}
.dur{position:absolute;right:8px;bottom:8px;background:#000a;color:#fff;font-size:12px;padding:2px 6px;border-radius:6px}
.vb{display:flex;gap:8px;padding:10px;align-items:center}
.vb .n{color:var(--mu);font-size:13px;flex:1}
.med{flex:0 0 auto;padding:10px 14px;font-size:20px;background:var(--card2);border:1px solid var(--bd);color:var(--tx)}
.med.on{background:var(--acc);color:#1a1300}
.sticky{position:fixed;left:0;right:0;bottom:0;background:linear-gradient(transparent,var(--bg) 30%);padding:20px 16px 16px;display:flex;gap:10px;max-width:720px;margin:0 auto}
.sticky button{flex:1}
.err{color:var(--bad);margin:8px 0}.ok{color:var(--ok)}
table{width:100%;border-collapse:collapse}td,th{padding:6px 4px;text-align:left;border-bottom:1px solid var(--bd);font-size:14px}
.trophy{text-align:center;font-size:64px}
