/* ===== 后台样式 ===== */
:root{
  --bg:#0a0d13; --panel:#111724; --panel2:#151d2b; --line:#1f2937; --line2:#2a3549;
  --tx:#e8ecf4; --tx2:#a3aec3; --tx3:#6f7b91;
  --gold:#f7c948; --gold2:#ff9f43; --green:#4ade80; --red:#ff5c5c; --blue:#60a5fa;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--tx);font:14px/1.65 -apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
h1,h2,h3,h4{margin:0;font-weight:800}
input,select,textarea,button{font-family:inherit}

.adm{display:flex;min-height:100vh}
.side{width:222px;flex:0 0 auto;background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.side-brand{display:flex;align-items:center;gap:10px;padding:18px 16px;border-bottom:1px solid var(--line)}
.side-brand .mk{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--gold),var(--gold2));color:#14181f;font-weight:900;font-size:13px}
.side-brand b{display:block;font-size:14.5px}
.side-brand em{font-style:normal;font-size:11px;color:var(--tx3)}
.side-nav{padding:12px 10px;display:flex;flex-direction:column;gap:2px;overflow-y:auto;flex:1}
.side-nav a{display:flex;align-items:center;gap:9px;padding:9px 11px;border-radius:9px;color:var(--tx2);font-size:13.5px;transition:.15s}
.side-nav a:hover{background:rgba(255,255,255,.05);color:var(--tx)}
.side-nav a.on{background:rgba(247,201,72,.12);color:var(--gold);font-weight:600}
.side-nav a .ico{width:18px;text-align:center;font-size:13px;opacity:.9}
.side-foot{padding:12px 16px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px;font-size:12.5px;color:var(--tx3)}
.side-foot a:hover{color:var(--gold)}

.content{flex:1;min-width:0;display:flex;flex-direction:column}
.chead{display:flex;align-items:center;gap:14px;padding:16px 24px;border-bottom:1px solid var(--line);background:rgba(17,23,36,.7);backdrop-filter:blur(10px);position:sticky;top:0;z-index:20}
.chead h1{font-size:17px}
.chead-r{margin-left:auto;font-size:13px;color:var(--tx3);display:flex;gap:12px;align-items:center}
.menu-toggle{display:none;background:none;border:1px solid var(--line2);color:var(--tx);border-radius:8px;padding:5px 10px;cursor:pointer}
.cbody{padding:22px 24px 60px;max-width:1400px;width:100%}

/* 通用控件 */
.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:9px;font-size:13.5px;font-weight:600;border:1px solid transparent;cursor:pointer;transition:.15s;background:none;color:var(--tx)}
.btn-gold{background:linear-gradient(90deg,var(--gold),var(--gold2));color:#14181f}
.btn-gold:hover{filter:brightness(1.07)}
.btn-ghost{border-color:var(--line2);color:var(--tx2)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold)}
.btn-red{border-color:rgba(255,92,92,.4);color:#ff9a9a}
.btn-red:hover{background:rgba(255,92,92,.12)}
.btn-sm{padding:6px 11px;font-size:12.5px;border-radius:8px}
.btn[disabled]{opacity:.5;cursor:not-allowed}

.field{margin-bottom:14px}
.field label{display:block;font-size:12.5px;color:var(--tx2);margin-bottom:6px}
.field .tip{font-size:11.5px;color:var(--tx3);margin-top:5px;line-height:1.6}
.inp, .field input[type=text], .field input[type=password], .field input[type=number], .field input[type=email], .field input[type=file], .field select, .field textarea{
  width:100%;padding:9px 12px;border-radius:8px;background:#0c1219;border:1px solid var(--line2);color:var(--tx);font-size:13.5px;outline:none
}
.field input[type=file]{padding:7px;background:#0a1017}
.inp:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(247,201,72,.1)}
.field textarea{resize:vertical;line-height:1.6}
.row{display:flex;gap:14px;flex-wrap:wrap}
.row>div{flex:1 1 200px;min-width:0}
.row-3>div{flex:1 1 140px}

.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:20px}
.panel-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.panel-h h2{font-size:14.5px;display:flex;align-items:center;gap:8px}
.panel-h h2:before{content:"";width:3px;height:14px;border-radius:2px;background:linear-gradient(180deg,var(--gold),var(--gold2))}
.panel-h .hint{font-size:12px;color:var(--tx3);font-weight:400}

.flash{padding:11px 15px;border-radius:9px;margin-bottom:16px;font-size:13px}
.flash-ok{background:rgba(74,222,128,.1);border:1px solid rgba(74,222,128,.35);color:#8ff0b3}
.flash-err{background:rgba(255,92,92,.1);border:1px solid rgba(255,92,92,.35);color:#ffa3a3}
.flash-info{background:rgba(96,165,250,.1);border:1px solid rgba(96,165,250,.32);color:#a9c9ff}

table.tb{width:100%;border-collapse:collapse;font-size:13px}
table.tb th{text-align:left;font-size:12px;font-weight:500;color:var(--tx3);padding:9px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
table.tb td{padding:10px;border-bottom:1px solid var(--line);color:var(--tx2);vertical-align:middle}
table.tb tr:hover td{background:rgba(255,255,255,.02)}
table.tb td b{color:var(--tx)}
.tag{display:inline-block;font-size:11.5px;padding:2px 8px;border-radius:999px;background:rgba(255,255,255,.06);color:var(--tx2)}
.tag.on{background:rgba(74,222,128,.15);color:#8ff0b3}
.tag.off{background:rgba(255,92,92,.12);color:#ff9a9a}
.tag.vip{background:rgba(247,201,72,.15);color:var(--gold)}
.thumb-sm{width:40px;height:56px;border-radius:6px;object-fit:cover;background:#0d1219;border:1px solid var(--line)}

.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-bottom:22px}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 18px}
.stat .n{font-size:24px;font-weight:800;color:var(--gold);line-height:1.2}
.stat .l{font-size:12.5px;color:var(--tx3);margin-top:3px}

.empty{padding:40px;text-align:center;color:var(--tx3);font-size:13.5px}

/* 海报上传区 */
.poster-box{display:flex;gap:16px;flex-wrap:wrap}
.poster-prev{width:150px;flex:0 0 auto;aspect-ratio:2/3;border-radius:10px;overflow:hidden;border:1px solid var(--line2);background:#0c1219;display:flex;align-items:center;justify-content:center;color:var(--tx3);font-size:12px}
.poster-prev img{width:100%;height:100%;object-fit:cover}
.poster-side{flex:1 1 260px;min-width:0}

/* TMDB 面板 */
.tmdb-box{background:linear-gradient(135deg,rgba(247,201,72,.07),rgba(96,165,250,.05));border:1px solid rgba(247,201,72,.25);border-radius:12px;padding:16px;margin-bottom:20px}
.tmdb-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.tmdb-head h3{font-size:13.5px;color:var(--gold)}
.tmdb-head .hint{font-size:11.5px;color:var(--tx3)}
.tmdb-search{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.tmdb-search input{flex:1 1 180px;min-width:0;padding:9px 12px;border-radius:8px;background:#0c1219;border:1px solid var(--line2);color:var(--tx);font-size:13.5px;outline:none}
.tmdb-search input:focus{border-color:var(--gold)}
.tmdb-res{margin-top:12px;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;max-height:420px;overflow:auto}
.tmdb-item{display:flex;gap:10px;padding:9px;border-radius:10px;background:rgba(0,0,0,.25);border:1px solid var(--line);cursor:pointer;transition:.15s}
.tmdb-item:hover{border-color:var(--gold);background:rgba(247,201,72,.07)}
.tmdb-item img{width:52px;height:78px;border-radius:6px;object-fit:cover;background:#0c1219;flex:0 0 auto}
.tmdb-item .ti-t{font-size:13px;font-weight:600;color:var(--tx);line-height:1.4;margin-bottom:3px}
.tmdb-item .ti-m{font-size:11.5px;color:var(--tx3)}
.tmdb-msg{font-size:12.5px;color:var(--tx3);margin-top:10px}
.tmdb-msg.err{color:#ff9a9a}
.tmdb-msg.ok{color:#8ff0b3}

/* 采集页 */
.coll-tabs{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}
.coll-tab{padding:8px 16px;border-radius:9px;border:1px solid var(--line2);background:var(--panel);color:var(--tx2);font-size:13px;cursor:pointer}
.coll-tab.on{background:rgba(247,201,72,.12);border-color:rgba(247,201,72,.35);color:var(--gold);font-weight:600}
.coll-pane{display:none}
.coll-pane.on{display:block}
.preview-grid{display:grid;grid-template-columns:170px 1fr;gap:18px}
.preview-grid .pv-poster{border-radius:10px;overflow:hidden;border:1px solid var(--line2)}
.kv-list{margin:0;padding:0;list-style:none;font-size:13px}
.kv-list li{display:flex;gap:10px;padding:5px 0;border-bottom:1px dashed rgba(255,255,255,.06);color:var(--tx2)}
.kv-list li span:first-child{flex:0 0 66px;color:var(--tx3);font-size:12.5px}
.kv-list li span:last-child{min-width:0;word-break:break-all}
code.inline{background:#0c1219;border:1px solid var(--line2);border-radius:5px;padding:1px 6px;font-size:12px;color:var(--gold)}
.log-row{font-size:12.5px;padding:8px 0;border-bottom:1px solid var(--line);display:flex;gap:10px;flex-wrap:wrap}
.log-row .st{flex:0 0 52px;font-weight:700}
.log-row .st.ok{color:#8ff0b3}
.log-row .st.fail{color:#ff9a9a}

@media (max-width:900px){
  .side{position:fixed;left:0;top:0;bottom:0;z-index:60;transform:translateX(-100%);transition:.2s;box-shadow:0 0 40px rgba(0,0,0,.6)}
  .adm.nav-open .side{transform:none}
  .menu-toggle{display:inline-flex}
  .cbody{padding:16px 14px 60px}
  .chead{padding:12px 14px}
  .preview-grid{grid-template-columns:1fr}
  .poster-prev{width:110px}
}
