:root{
  --bg:#f5f7f6; --surface:#fff; --text:#16211f; --muted:#5a6b67; --line:#dce4e1;
  --accent:#0f766e; --accent-ink:#fff; --rest:#2563eb; --danger:#b42318; --chip:#e7efec;
  --shadow:0 1px 2px rgba(0,0,0,.06),0 4px 14px rgba(0,0,0,.05);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#0e1514; --surface:#17211f; --text:#e8efed; --muted:#9fb0ab; --line:#2a3633;
    --accent:#2dd4bf; --accent-ink:#06201c; --rest:#7db0ff; --danger:#ff8a80; --chip:#22302d;
    --shadow:none;
  }
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);
  font:16px/1.5 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.muted{color:var(--muted)} .small{font-size:13px}
.top{padding:20px 16px 8px;max-width:1280px;margin:0 auto}
.top h1{margin:0;font-size:22px} .top p{margin:4px 0 0;color:var(--muted);font-size:14px}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:20px;max-width:1280px;margin:0 auto;padding:12px 16px 96px;align-items:start}
@media (max-width:900px){.layout{grid-template-columns:1fr}}
button,input,select{font:inherit;color:inherit}
button{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:9px 14px;cursor:pointer;min-height:40px}
button:hover:not(:disabled){border-color:var(--accent)}
button:disabled{opacity:.45;cursor:not-allowed}
button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}
button.ghost{background:transparent}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
input[type=search],input[type=number]{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:9px 12px;width:100%;min-height:40px}
.search{position:sticky;top:0;z-index:5;background:var(--bg);padding:8px 0}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 8px}
.chip{border-radius:999px;padding:5px 14px;min-height:34px;background:var(--chip);border-color:transparent}
.chip[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);font-weight:600}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
.card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:var(--shadow);content-visibility:auto;contain-intrinsic-size:190px 200px}
.card .th{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:#eee;cursor:pointer}
.card .meta{padding:8px 10px 10px;cursor:pointer}
.card .zh{font-weight:600;font-size:15px;line-height:1.35}
.card .en{font-size:12px;color:var(--muted);line-height:1.3;margin-top:2px;word-break:break-word}
.card .tag{position:absolute;top:6px;left:6px;font-size:11px;background:rgba(255,255,255,.9);color:#222;border-radius:6px;padding:1px 7px}
.card .add{position:absolute;top:6px;right:6px;width:38px;height:38px;min-height:0;padding:0;border-radius:50%;font-size:22px;line-height:1;background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
#plan{position:sticky;top:8px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px;box-shadow:var(--shadow);max-height:calc(100vh - 16px);overflow:auto}
@media (max-width:900px){#plan{position:static;max-height:none}}
#plan h2{margin:0 0 8px;font-size:18px}
.empty{color:var(--muted);font-size:14px;padding:10px 0}
.rows{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.row{border:1px solid var(--line);border-radius:12px;padding:10px;background:var(--bg)}
.row .hd{display:flex;gap:8px;align-items:flex-start}
.row .no{flex:none;width:24px;height:24px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-size:13px;display:grid;place-items:center;margin-top:2px}
.row .nm{flex:1;min-width:0} .row .nm b{display:block;font-size:15px;line-height:1.3} .row .nm span{font-size:12px;color:var(--muted)}
.row .ic{display:flex;gap:4px}
.row .ic button{min-height:34px;width:34px;padding:0}
.f{display:grid;grid-template-columns:1.2fr 1fr 1.2fr;gap:8px;margin-top:8px}
.f label{font-size:12px;color:var(--muted);display:block}
.f .u{display:flex;gap:4px}
.f select{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px 6px;min-height:40px;width:100%}
.rest-hint{font-size:12px;color:var(--muted);margin-top:2px}
.qr{display:flex;gap:4px;margin-top:4px;flex-wrap:wrap}
.qr button{min-height:28px;padding:2px 8px;font-size:12px;border-radius:8px}
.settings{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}
.settings summary{cursor:pointer;font-weight:600}
.set-grid{display:grid;gap:8px;margin:10px 0}
.set-grid label{font-size:13px;color:var(--muted)}
.set-grid .chk{display:flex;gap:8px;align-items:center;color:var(--text)}
.set-grid .chk input{width:20px;height:20px}
.summary{margin:12px 0;padding:10px 12px;border-radius:10px;background:var(--chip);font-size:14px}
.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.actions .primary{grid-column:1/-1;min-height:48px;font-size:17px}
.bar{position:fixed;left:0;right:0;bottom:0;background:var(--surface);border-top:1px solid var(--line);padding:10px 14px;display:flex;gap:10px;align-items:center;z-index:20}
.bar span{flex:1;font-size:14px}
@media (min-width:901px){.bar{display:none!important}}
dialog{border:none;border-radius:14px;padding:0;max-width:min(680px,94vw);width:100%;background:var(--surface);color:var(--text)}
dialog::backdrop{background:rgba(0,0,0,.55)}
.pv{padding:14px;display:grid;gap:6px}
.pv video{width:100%;border-radius:10px;background:#eee}
.pv h3{margin:6px 0 0} .pv p{margin:0}
.pv-actions{display:flex;gap:8px;margin-top:8px}
.toast{position:fixed;left:50%;bottom:76px;transform:translateX(-50%) translateY(20px);background:#17211f;color:#fff;padding:10px 16px;border-radius:999px;opacity:0;pointer-events:none;transition:.2s;z-index:60;font-size:14px;max-width:90vw}
.toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
/* 播放器 */
.player{position:fixed;inset:0;background:#0b0f0e;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:8px}
.player[hidden],.bar[hidden],.done[hidden],.rec[hidden],.dl[hidden]{display:none}
#stage{width:min(100%,calc((100vh - 120px) * 16 / 9));height:auto;aspect-ratio:16/9;background:#f2f3f1;border-radius:8px}
.pctl{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.pctl button{background:#1c2624;border-color:#34423f;color:#e8efed}
.pctl button.primary{background:var(--accent);color:var(--accent-ink)}
.rec{margin:0;color:#ffb4ab;font-size:14px;text-align:center}
.done{text-align:center;color:#e8efed}
.done p{margin:0 0 8px}
.dl{display:inline-block;background:var(--accent);color:var(--accent-ink);padding:12px 20px;border-radius:10px;font-weight:700;text-decoration:none}
