/* ============================================
   日间 / 夜间双主题（默认日间；夜间用 body.night）
   自适应 电脑/手机/平板/投影
   ============================================ */
:root {
  --bg: #f2f4f8;
  --fg: #2b3245;
  --strong: #1a2332;
  --muted: #7a8496;
  --muted2: #9aa3b5;
  --top-bg: #ffffff;
  --top-border: #e2e6ee;
  --logo: #1a2332;
  --link: #5b6577;
  --link-hover: #1a2332;
  --accent: #2f6fe0;
  --accent-hover: #2557bd;
  --accent-soft: #4f8cff;
  --card-bg: #ffffff;
  --card-border: #e2e6ee;
  --input-bg: #ffffff;
  --input-border: #cfd6e4;
  --input-fg: #2b3245;
  --row-hover: #f0f4fb;
  --chip-bg: #f0f3f8;
  --chip-border: #d5dbe6;
  --chip-fg: #3d4a63;
  --ann-bg: #fff8e1;
  --ann-fg: #8a6d1a;
  --ann-border: #f0e4bd;
  --err: #d14343;
  --ok: #1a9e5c;
}
/* 夜间主题：body.night 时覆盖变量（右上角切换按钮 / 后台默认可控制） */
body.night {
    --bg: #0f1420;
    --fg: #e8ecf3;
    --strong: #fff;
    --muted: #77809a;
    --muted2: #5a647a;
    --top-bg: #151b2b;
    --top-border: #232c42;
    --logo: #fff;
    --link: #8a94a8;
    --link-hover: #fff;
    --accent: #4f8cff;
    --accent-hover: #3c66e0;
    --accent-soft: #7db4ff;
    --card-bg: #171e30;
    --card-border: #222c45;
    --input-bg: #12172a;
    --input-border: #26314a;
    --input-fg: #e8ecf3;
    --row-hover: #1a2140;
    --chip-bg: #141b2c;
    --chip-border: #2a3550;
    --chip-fg: #b8c2d8;
    --ann-bg: #1c2b4a;
    --ann-fg: #ffd479;
    --ann-border: #2a3a5e;
    --err: #f0898a;
    --ok: #1a9e5c;
  }
}

* { box-sizing: border-box; }

html, body { height: auto; }
body {
  margin: 0;
  font-family: "Microsoft YaHei", system-ui, -apple-system, "PingFang SC", sans-serif;
  background: var(--bg);
  color: var(--fg);
  -webkit-text-size-adjust: 100%;
}

/* ---------- 顶部导航 ---------- */
.top { background: var(--top-bg); padding: 14px 20px; border-bottom: 1px solid var(--top-border); position: sticky; top: 0; z-index: 50; }
.top .in { max-width: 1080px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 12px; }
.logo { font-size: 18px; font-weight: 700; color: var(--logo); text-decoration: none; }
.logo .dot { color: var(--accent); margin: 0 3px; }

/* ---------- 公告横幅 ---------- */
.announce { background: var(--ann-bg); color: var(--ann-fg); padding: 8px 20px; font-size: 13px; text-align: center; border-bottom: 1px solid var(--ann-border); }
.nav { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; }
.l { color: var(--link); font-size: 13px; text-decoration: none; margin-left: 12px; white-space: nowrap; padding: 4px 0; }
.l:hover { color: var(--link-hover); }
.l.active { color: var(--accent); font-weight: 600; }
.l.lbtn { color: var(--accent); }
.l.lbtn:hover { color: var(--accent-soft); }
.l.logout { color: var(--err); }
.theme-btn { margin-left: 12px; padding: 6px 14px; border-radius: 999px; background: var(--chip-bg); border: 1px solid var(--chip-border); color: var(--link); font-size: 13px; cursor: pointer; white-space: nowrap; }
.theme-btn:hover { color: var(--link-hover); border-color: var(--accent); }

/* ---------- 布局容器 ---------- */
.wrap { max-width: 860px; margin: 20px auto; padding: 0 16px; }
.card { background: var(--card-bg); border: 1px solid var(--card-border); border-radius: 12px; padding: 20px; margin-bottom: 18px; }
.card h3 { margin: 0 0 12px; font-size: 15px; color: var(--strong); }

/* ---------- 表单 ---------- */
input, input[type=text], input[type=password], input[type=number] {
  width: 100%; padding: 10px 12px; border-radius: 8px; border: 1px solid var(--input-border);
  background: var(--input-bg); color: var(--input-fg); font-size: 14px; outline: none;
}
input:focus, input[type=text]:focus, input[type=password]:focus, input[type=number]:focus { border-color: var(--accent); }
input::placeholder { color: var(--muted2); }
button { padding: 10px 18px; border: none; border-radius: 8px; font-size: 14px; cursor: pointer; }
button:disabled { opacity: .6; cursor: not-allowed; }
.btn { width: 100%; padding: 11px; border: none; border-radius: 8px; font-size: 14px; cursor: pointer; font-weight: 600; }
.btn.primary, .primary { background: var(--accent); color: #fff; }
.btn.primary:hover, .primary:hover { background: var(--accent-hover); }
.dbtn { width: auto; padding: 5px 12px; background: #c0392b; color: #fff; font-size: 12px; }
.upbtn { padding: 10px 18px; border: none; border-radius: 8px; background: #e8930c; color: #fff; cursor: pointer; font-size: 14px; }
.add { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; }
.add input { flex: 1; min-width: 0; }
.add .small { max-width: 130px; }
.add button { padding: 10px 18px; border: none; border-radius: 8px; background: var(--accent); color: #fff; cursor: pointer; font-size: 14px; }
.fld { margin-bottom: 12px; }
.fld label { display: block; font-size: 12px; color: var(--muted); margin-bottom: 5px; }
.tip { color: var(--muted); font-size: 12px; margin-top: 8px; }

/* ---------- 消息提示 ---------- */
.note { font-size: 12px; color: var(--muted); margin-top: 12px; }
.msg { font-size: 13px; margin-top: 10px; min-height: 18px; }
.msg.err { color: var(--err); }
.msg.ok { color: var(--ok); }
.msg2 { font-size: 13px; margin-top: 10px; min-height: 18px; }
.msg2.err { color: var(--err); }
.msg2.ok { color: var(--ok); }
.smsg { font-size: 13px; margin-top: 10px; color: var(--muted); }
.smsg.err { color: var(--err); }
.smsg.ok { color: var(--ok); }
.loading { color: var(--muted); font-size: 13px; margin-top: 14px; }

/* ---------- 表格 ---------- */
.tbl { width: 100%; border-collapse: collapse; font-size: 13px; }
.tbl th, .tbl td { padding: 9px 8px; border-bottom: 1px solid var(--card-border); text-align: left; }
.tbl th { color: var(--muted); font-weight: 600; }
.tbl tr:hover td { background: var(--row-hover); }
.watch { color: var(--accent-soft); text-decoration: none; }
.watch:hover { color: var(--link-hover); }
.empty { color: var(--muted); text-align: center; padding: 20px 0; font-size: 13px; }

/* ---------- 徽章 / 账号信息 ---------- */
.badge { display: inline-block; padding: 4px 12px; border-radius: 16px; font-size: 12px; font-weight: 600; }
.b-free { background: #3a445c; color: #cdd5e6; }
.b-gold { background: #c9a227; color: #221d05; }
.b-platinum { background: #7bc8d6; color: #07222a; }
.b-diamond { background: #9b8cff; color: #14102b; }
.b-black { background: #333; color: #fff; border: 1px solid #666; }
.item { display: flex; justify-content: space-between; padding: 11px 0; border-bottom: 1px solid var(--card-border); font-size: 14px; }
.item:last-child { border-bottom: none; }
.item .k { color: var(--muted); }
.item .v { color: var(--fg); word-break: break-all; text-align: right; }
.quota { font-size: 13px; color: var(--muted); margin: 8px 0 2px; }
.quota b { color: var(--strong); }

/* ---------- 首页快捷播放 ---------- */
.add button#playBtn { background: var(--ok); }

/* ---------- 搜索（首页 + 搜索页） ---------- */
.searchbar { display: flex; gap: 8px; }
.searchbar input { flex: 1; min-width: 0; padding: 13px 14px; border-radius: 9px; border: 1px solid var(--input-border); background: var(--input-bg); color: var(--input-fg); font-size: 15px; outline: none; }
.searchbar input:focus { border-color: var(--accent); }
.searchbar button { padding: 13px 26px; border: none; border-radius: 9px; background: var(--accent); color: #fff; cursor: pointer; font-size: 15px; }
.searchbar button:disabled { background: var(--ann-border); cursor: not-allowed; }
.hint { font-size: 12px; color: var(--muted); margin-top: 10px; }
.res, .sres { margin-top: 16px; }
.scard { margin-top: 16px; }
.sit { border: 1px solid var(--input-border); border-radius: 8px; padding: 10px 12px; margin-top: 8px; background: var(--input-bg); cursor: pointer; }
.sit .t { color: var(--strong); font-weight: 600; font-size: 14px; }
.sit .s { color: var(--muted); font-size: 12px; margin-top: 2px; }
.seps { display: none; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.sit.open .seps { display: flex; }
.sep { padding: 6px 12px; border-radius: 6px; font-size: 13px; cursor: pointer; color: var(--link); background: var(--chip-bg); border: 1px solid var(--chip-border); }
.sep:hover { color: var(--link-hover); border-color: var(--accent); }
.sload { color: var(--muted); font-size: 12px; margin-top: 8px; width: 100%; }
.card .eps { margin-top: 12px; display: none; flex-wrap: wrap; gap: 8px; }
.card.open .eps { display: flex; }
.ep { padding: 7px 14px; border-radius: 8px; font-size: 13px; color: var(--link); background: var(--chip-bg); border: 1px solid var(--chip-border); cursor: pointer; }
.ep:hover { color: var(--link-hover); border-color: var(--accent); }
.ep.playing { color: #fff; background: var(--accent); border-color: var(--accent); }
.load { color: var(--muted); font-size: 13px; padding: 8px 0; width: 100%; }

/* ---------- 播放页 ---------- */
.bar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; }
.back { color: var(--link); text-decoration: none; font-size: 14px; }
.back:hover { color: var(--link-hover); }
.title { font-size: 20px; font-weight: 700; color: var(--strong); }
.player { background: #000; border-radius: 12px; overflow: hidden; aspect-ratio: 16 / 9; display: flex; align-items: center; justify-content: center; margin-top: 10px; }
video { width: 100%; height: 100%; }
.errbox { color: var(--err); font-size: 14px; padding: 16px; line-height: 1.7; text-align: center; }
.errbox a { color: var(--accent-soft); }
.plist { background: var(--card-bg); border: 1px solid var(--card-border); border-radius: 12px; padding: 14px; margin-top: 14px; }
.plist h3 { margin: 0 0 10px; font-size: 14px; color: var(--muted); font-weight: 600; }
.plist .items { display: flex; flex-wrap: wrap; gap: 8px; }
.pitem { padding: 8px 14px; border-radius: 8px; font-size: 13px; text-decoration: none; color: var(--link); background: var(--chip-bg); border: 1px solid var(--chip-border); }
.pitem:hover { color: var(--link-hover); border-color: var(--accent); }
.pitem.active { color: #fff; background: var(--accent); border-color: var(--accent); font-weight: 600; }
.player .tip, .plist + .tip { color: var(--muted); font-size: 12px; margin: 18px 0 6px; text-align: center; }

/* ---------- 片单 ---------- */
.src { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 0; border-bottom: 1px solid var(--card-border); }
.src:last-child { border-bottom: none; }
.src .nm { font-weight: 600; color: var(--strong); }
.src .rl { font-size: 12px; color: var(--accent-soft); word-break: break-all; margin-top: 3px; max-width: 560px; }
.src .ops a, .src .ops button { color: var(--accent); background: none; border: none; cursor: pointer; font-size: 13px; margin-left: 10px; text-decoration: none; }
.src .ops .del { color: var(--err); }

/* ---------- 采集器 ---------- */
.crawler-wrap { max-width: 680px; margin: 20px auto; padding: 0 16px; background: var(--card-bg); border: 1px solid var(--card-border); border-radius: 12px; padding: 28px 32px; }
h1 { font-size: 22px; margin: 0 0 6px; color: var(--strong); }
.sub { color: var(--muted); font-size: 13px; margin-bottom: 18px; }
.sec { border: 1px solid var(--card-border); border-radius: 10px; padding: 16px; margin-top: 16px; background: var(--input-bg); }
.sec h2 { font-size: 15px; margin: 0 0 10px; color: var(--strong); }
.sec label { display: block; font-size: 13px; margin: 8px 0 4px; font-weight: 600; }
.sec .row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.sec input[type=text] { flex: 1; min-width: 200px; }
.sec input[type=number] { width: 64px; }
.box { margin-top: 16px; padding: 14px; border: 1px solid var(--card-border); border-radius: 10px; background: var(--card-bg); display: none; }
.brow { max-height: 260px; overflow: auto; border: 1px solid var(--card-border); border-radius: 8px; margin-top: 10px; width: 100%; border-collapse: collapse; font-size: 13px; }
.brow td, .brow th { padding: 6px 8px; border-bottom: 1px solid var(--card-border); text-align: left; }
.brow a { color: var(--ok); text-decoration: none; }
.st-done { color: var(--ok); }
.st-error { color: var(--err); }
.errdet { color: var(--err); font-size: 11px; margin-top: 2px; word-break: break-all; max-width: 260px; }

/* ---------- 登录 / 注册 ---------- */
.auth-wrap { max-width: 400px; margin: 36px auto; padding: 0 16px; }
.auth-wrap .card { padding: 30px 38px 22px; border-radius: 14px; box-shadow: 0 6px 24px rgba(15, 23, 42, .08); }
.auth-wrap .tabs { margin-bottom: 22px; }
.auth-wrap .tab { padding: 12px 10px; font-size: 15px; }
.auth-wrap .fld { margin-bottom: 16px; }
.auth-wrap .fld label { font-size: 13px; margin-bottom: 6px; }
.auth-wrap .card input { width: 100%; box-sizing: border-box; padding: 12px 14px; border-radius: 10px; font-size: 15px; }
.auth-wrap .card .btn { padding: 13px; border-radius: 10px; font-size: 15px; }
.auth-wrap .back-link { margin-top: 16px; }
.tabs { display: flex; margin-bottom: 20px; border-bottom: 1px solid var(--top-border); }
.tab { flex: 1; text-align: center; padding: 10px; cursor: pointer; color: var(--link); font-size: 14px; }
.tab.on { color: var(--strong); border-bottom: 2px solid var(--accent); }
.back-link { text-align: center; margin-top: 14px; font-size: 13px; }
.back-link a { color: var(--accent); text-decoration: none; }

/* ============ 自适应：手机 / 平板 ============ */
@media (max-width: 700px) {
  .top { padding: 10px 12px; }
  .top .in { gap: 6px 8px; }
  .logo { font-size: 16px; }
  .l { font-size: 12px; margin-left: 8px; }
  .theme-btn { margin-left: 8px; padding: 5px 10px; font-size: 12px; }
  .wrap { margin: 14px auto; padding: 0 12px; }
  .card { padding: 16px; }
  .add input, .add .small { max-width: 100%; }
  .searchbar { flex-direction: column; }
  .searchbar button { width: 100%; }
  .title { font-size: 17px; }
  .tbl th, .tbl td { padding: 7px 6px; font-size: 12px; }
  .src { align-items: flex-start; }
  .src .ops { flex-shrink: 0; }
  .src .rl { max-width: 46vw; }
  .plist h3 { font-size: 13px; }
}

/* ============ 自适应：大屏 / 投影仪 ============ */
@media (min-width: 1280px) {
  .top .in, .wrap { max-width: 980px; }
  body { font-size: 15px; }
}
@media (min-width: 1900px) {
  .top .in, .wrap { max-width: 1180px; }
}

/* ---------- 最新影视（latest.php） ---------- */
.lvcard h3 { margin-bottom: 8px; }
.lvrow { margin-top: 12px; }
.lvtag { display: inline-block; color: #fff; background: var(--accent); padding: 4px 12px; border-radius: 8px; font-weight: 600; font-size: 13px; margin-bottom: 8px; }
.lvnames { display: flex; flex-wrap: wrap; gap: 6px; }
.lvn { color: var(--chip-fg); text-decoration: none; white-space: nowrap; padding: 4px 12px; border-radius: 999px; border: 1px solid var(--chip-border); background: var(--chip-bg); font-size: 13px; }
.lvn:hover { color: var(--link-hover); background: var(--row-hover); border-color: var(--accent); }
.lvnil { color: var(--muted); }
.sload { color: var(--muted); font-size: 12px; padding: 4px 0; }
