/* ===== 层级二次元 · 鉴番神器 样式（独立作用域 aj-） ===== */
#aj-anime-app { --aj-bg:#f7f4ff; --aj-ink:#2b2540; --aj-muted:#7b6f96; --aj-line:#ece6f7; --aj-accent:#8b5cf6; --aj-soft:#efe9ff; --aj-card:#ffffff; --aj-r:16px; margin:18px 0 8px; color:var(--aj-ink); font-size:15px; line-height:1.6; font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif; }
#aj-anime-app * { box-sizing:border-box; }
#aj-anime-app .aj-head { padding:22px 20px; border-radius:var(--aj-r); color:#fff; background:linear-gradient(135deg,rgba(53,18,98,.92),rgba(139,92,246,.78) 50%,rgba(219,39,119,.85)),url('/uploads/ar-img/jianfan_default.webp') center/cover no-repeat; box-shadow:0 10px 26px rgba(139,92,246,.28); position:relative; overflow:hidden; }
#aj-anime-app .aj-head::after { content:""; position:absolute; right:-46px; top:-60px; width:190px; height:190px; border-radius:50%; background:rgba(255,255,255,.14); }
#aj-anime-app .aj-title { font-size:21px; font-weight:800; letter-spacing:.5px; }
#aj-anime-app .aj-subtitle { font-size:13px; opacity:.92; margin-top:6px; max-width:640px; }
#aj-anime-app .aj-count { display:inline-block; margin-top:14px; padding:4px 12px; border-radius:999px; font-size:12px; font-weight:600; background:rgba(255,255,255,.2); backdrop-filter:blur(4px); }
#aj-anime-app .aj-search { margin-top:14px; }
#aj-anime-app input.aj-search-input { width:100%; padding:12px 16px; border:1px solid var(--aj-line); border-radius:var(--aj-r); font-size:14px; background:#fff; color:var(--aj-ink); outline:none; transition:border-color .18s, box-shadow .18s; }
#aj-anime-app input.aj-search-input:focus { border-color:var(--aj-accent); box-shadow:0 0 0 3px rgba(139,92,246,.14); }
#aj-anime-app .aj-filters { margin-top:14px; background:var(--aj-card); border:1px solid var(--aj-line); border-radius:var(--aj-r); padding:8px 16px 14px; }
#aj-anime-app .aj-ftitle { font-size:12px; font-weight:700; color:var(--aj-muted); letter-spacing:1px; margin:10px 0 0; display:flex; justify-content:space-between; }
#aj-anime-app .aj-reset { cursor:pointer; color:var(--aj-accent); font-weight:600; }
#aj-anime-app .aj-reset:hover { text-decoration:underline; }
#aj-anime-app .aj-row { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
#aj-anime-app .aj-chip { cursor:pointer; padding:6px 13px; border-radius:999px; font-size:13px; border:1px solid var(--aj-line); background:#fff; color:#5b5374; transition:all .18s; user-select:none; }
#aj-anime-app .aj-chip:hover { border-color:var(--aj-accent); color:var(--aj-accent); }
#aj-anime-app .aj-chip.active { background:var(--aj-accent); border-color:var(--aj-accent); color:#fff; font-weight:600; box-shadow:0 4px 10px rgba(139,92,246,.32); }
#aj-anime-app .aj-chip.active::before { content:"✓ "; }
#aj-anime-app .aj-sortrow { display:flex; align-items:center; gap:8px; margin-top:14px; flex-wrap:wrap; }
#aj-anime-app .aj-sortlabel { font-size:13px; color:var(--aj-muted); }
#aj-anime-app select.aj-sort { padding:6px 10px; border-radius:8px; border:1px solid var(--aj-line); font-size:13px; background:#fff; color:var(--aj-ink); }
#aj-anime-app .aj-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(224px,1fr)); gap:14px; margin-top:16px; }

/* 卡片 */
#aj-anime-app .aj-card { background:var(--aj-card); border:1px solid var(--aj-line); border-radius:var(--aj-r); overflow:hidden; transition:transform .18s, box-shadow .18s; display:flex; flex-direction:column; cursor:pointer; }
#aj-anime-app .aj-card:hover { transform:translateY(-3px); box-shadow:0 14px 30px rgba(80,60,140,.14); }
#aj-anime-app .aj-card-img { position:relative; height:132px; overflow:hidden; background:linear-gradient(135deg,#8b5cf6,#d946ef); }
#aj-anime-app .aj-img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .25s; }
#aj-anime-app .aj-card:hover .aj-img { transform:scale(1.05); }
#aj-anime-app .aj-img-fallback { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:64px; font-weight:800; color:rgba(255,255,255,.9); background:linear-gradient(135deg,#8b5cf6 0%,#d946ef 55%,#f472b6 100%); text-shadow:0 4px 18px rgba(0,0,0,.25); }
#aj-anime-app .aj-img-rate { position:absolute; right:8px; top:8px; font-size:11px; font-weight:700; padding:2px 8px; border-radius:999px; box-shadow:0 2px 8px rgba(0,0,0,.18); }
#aj-anime-app .aj-rate { background:#ffe9ec; color:#e11d48; }
#aj-anime-app .aj-rate.r15 { background:#fff1e6; color:#ea580c; }
#aj-anime-app .aj-rate.r18 { background:#fde8e8; color:#dc2626; }
#aj-anime-app .aj-card-body { padding:12px 14px 14px; display:flex; flex-direction:column; flex:1; }
#aj-anime-app .aj-card-head { display:flex; justify-content:space-between; align-items:flex-start; gap:8px; }
#aj-anime-app .aj-card-head .aj-ob { flex-shrink:0; }
#aj-anime-app .aj-name { font-size:15px; font-weight:700; flex:1; min-width:0; line-height:1.35; }
#aj-anime-app .aj-badges { display:flex; gap:5px; flex-shrink:0; }
#aj-anime-app .aj-badge { font-size:11px; font-weight:700; padding:2px 7px; border-radius:6px; white-space:nowrap; }
#aj-anime-app .aj-ob { background:var(--aj-soft); color:var(--aj-accent); }
#aj-anime-app .aj-meta { font-size:12px; color:var(--aj-muted); margin-top:6px; }
#aj-anime-app .aj-themes { display:flex; flex-wrap:wrap; gap:5px; margin-top:8px; }
#aj-anime-app .aj-tchip { font-size:11px; padding:2px 8px; border-radius:6px; background:#f4f1fb; color:#6b6190; }
#aj-anime-app .aj-bars { margin-top:10px; display:flex; flex-direction:column; gap:5px; }
#aj-anime-app .aj-bar { display:flex; align-items:center; gap:6px; }
#aj-anime-app .aj-bar-key { width:56px; font-size:11px; color:var(--aj-muted); flex-shrink:0; }
#aj-anime-app .aj-bar-track { flex:1; height:6px; border-radius:6px; background:#efeaf8; overflow:hidden; }
#aj-anime-app .aj-bar-fill { height:100%; border-radius:6px; }
#aj-anime-app .aj-bar-val { width:26px; font-size:11px; color:var(--aj-muted); text-align:right; flex-shrink:0; }
#aj-anime-app .aj-aud { font-size:12px; color:#6b6190; margin-top:10px; padding-top:9px; border-top:1px dashed var(--aj-line); }
#aj-anime-app .aj-open { margin-top:auto; padding-top:9px; text-align:right; font-size:12px; font-weight:700; color:var(--aj-accent); opacity:.75; transition:opacity .18s; }
#aj-anime-app .aj-card:hover .aj-open { opacity:1; }
#aj-anime-app .aj-read { display:block; margin-top:10px; padding:8px 12px; border-radius:10px; text-align:center; text-decoration:none; font-size:13px; font-weight:700; color:#fff; background:linear-gradient(135deg,#38bdf8,#6366f1); box-shadow:0 6px 14px rgba(99,102,241,.22); transition:transform .16s, box-shadow .16s; }
#aj-anime-app .aj-read:hover { transform:translateY(-1px); box-shadow:0 10px 20px rgba(99,102,241,.32); }
body .aj-dlg-read { display:inline-block; margin-top:16px; padding:10px 18px; border-radius:10px; text-decoration:none; font-size:13px; font-weight:700; color:#fff; background:linear-gradient(135deg,#38bdf8,#6366f1); }
#aj-anime-app .aj-empty { text-align:center; color:var(--aj-muted); padding:40px 10px; font-size:14px; }
#aj-anime-app .aj-empty b { color:var(--aj-ink); }

/* 详情弹层 */
#aj-anime-app.aj-dlg-root, #aj-anime-app .aj-mask { display:none; }
body .aj-mask { --aj-ink:#2b2540; --aj-muted:#7b6f96; --aj-line:#ece6f7; --aj-accent:#8b5cf6; --aj-soft:#efe9ff; --aj-card:#fff; position:fixed; inset:0; z-index:99999; background:rgba(20,16,40,.62); backdrop-filter:blur(4px); display:flex; align-items:center; justify-content:center; padding:20px; }
body .aj-dialog { position:relative; background:#fff; border-radius:20px; max-width:720px; width:100%; max-height:88vh; overflow:auto; display:flex; gap:0; flex-wrap:wrap; padding:20px; box-shadow:0 24px 60px rgba(0,0,0,.3); animation:ajPop .22s ease; }
@keyframes ajPop { from { opacity:0; transform:translateY(14px) scale(.98); } to { opacity:1; transform:none; } }
body .aj-dlg-close { position:absolute; right:14px; top:14px; width:30px; height:30px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:#f1edfa; color:#6b6190; font-size:15px; cursor:pointer; z-index:5; }
body .aj-dlg-close:hover { background:var(--aj-accent); color:#fff; }
body .aj-dlg-col { flex:0 0 240px; max-width:240px; display:flex; flex-direction:column; gap:10px; align-self:flex-start; }
body .aj-dlg-img { position:relative; height:320px; border-radius:14px; overflow:hidden; background:linear-gradient(135deg,#8b5cf6,#f472b6); }
body .aj-dlg-imgx { width:100%; height:100%; object-fit:cover; display:block; }
body .aj-dlg-fb { font-size:96px; }
body .aj-dlg-ph { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:92px; font-weight:800; color:rgba(255,255,255,.95); text-shadow:0 6px 24px rgba(0,0,0,.28); }
body .aj-dlg-body { flex:1; min-width:0; padding-left:20px; }
body .aj-dlg-name { font-size:21px; font-weight:800; padding-right:26px; }
body .aj-dlg-chips { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
body .aj-dlg-chip { font-size:12px; font-weight:700; padding:3px 10px; border-radius:999px; background:var(--aj-soft); color:var(--aj-accent); }
body .aj-dlg-chip.r15 { background:#fff1e6; color:#ea580c; }
body .aj-dlg-chip.r18 { background:#fde8e8; color:#dc2626; }
body .aj-dlg-bars { margin-top:12px; }
body .aj-dlg-label { font-size:12px; font-weight:700; color:var(--aj-muted); letter-spacing:1px; margin:14px 0 7px; }
body .aj-dlg-themes { display:flex; flex-wrap:wrap; gap:6px; }
body .aj-dlg-vibe { display:flex; flex-wrap:wrap; gap:6px; }
body .aj-vchip { font-size:12px; padding:3px 10px; border-radius:999px; background:#fff1e6; color:#c2410c; border:1px solid #fed7aa; }
body .aj-dlg-aud { font-size:14px; color:#5b5374; background:#faf8ff; border:1px dashed var(--aj-line); border-radius:10px; padding:10px 12px; }

/* 极简模式：栏目页嵌入时只显示这张极简引导卡，隐藏筛选与网格 */
#aj-anime-app[data-mini] .aj-head { display:none; }
#aj-anime-app[data-mini] .aj-search { display:none; }
#aj-anime-app[data-mini] .aj-toolbar { display:none; }
#aj-anime-app[data-mini] .aj-resultbanner { display:none; }
#aj-anime-app[data-mini] .aj-filters { display:none; }
#aj-anime-app[data-mini] .aj-grid { display:none; }

@media (max-width:760px) { #aj-anime-app .aj-title { font-size:18px; } #aj-anime-app .aj-grid { grid-template-columns:repeat(2,1fr); } #aj-anime-app .aj-filters { padding:4px 12px 12px; } body .aj-mask { padding:12px; } body .aj-dialog { flex-direction:column; flex-wrap:nowrap; padding:16px; max-height:92vh; } body .aj-dlg-col { flex:0 0 auto; width:100%; max-width:100%; } body .aj-dlg-img { width:100%; height:220px; } body .aj-dlg-ph { font-size:96px; } body .aj-dlg-body { flex:0 0 auto; width:100%; min-width:0; padding-left:0; margin-top:16px; } }
@media (max-width:440px) { #aj-anime-app .aj-grid { grid-template-columns:1fr; } }

/* ===== 追加：无封面渐变文字占位 / 弹层进度条与题材标签 / 结果计数 / 分级筛选 / 反馈 ===== */
/* 无封面时：番名首字 + 渐变背景，代替原来的模糊通用图 */
#aj-anime-app .aj-ph { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:56px; font-weight:800; color:rgba(255,255,255,.95); text-shadow:0 5px 20px rgba(0,0,0,.26); }

/* 弹层挂在 body，上；补上只有在 #aj-anime-app 作用域内才有样式的进度条/题材标签 */
body .aj-dlg-bars .aj-bar { display:flex; align-items:center; gap:6px; }
body .aj-dlg-bars .aj-bar-key { width:56px; font-size:11px; color:var(--aj-muted); flex-shrink:0; }
body .aj-dlg-bars .aj-bar-track { flex:1; height:6px; border-radius:6px; background:#efeaf8; overflow:hidden; }
body .aj-dlg-bars .aj-bar-fill { height:100%; border-radius:6px; }
body .aj-dlg-bars .aj-bar-val { width:36px; font-size:11px; color:var(--aj-muted); text-align:right; flex-shrink:0; }
body .aj-dlg-themes .aj-tchip { font-size:11px; padding:2px 8px; border-radius:6px; background:#f4f1fb; color:#6b6190; }

/* 筛选结果计数：页面中间偏上提示 */
#aj-anime-app .aj-resultbanner { margin-top:14px; padding:12px 16px; border-radius:12px; background:linear-gradient(135deg,rgba(139,92,246,.10),rgba(217,70,239,.10)); border:1px solid var(--aj-line); text-align:center; font-size:14px; color:var(--aj-muted); }
#aj-anime-app .aj-resultbanner b { font-size:24px; font-weight:900; color:var(--aj-accent); margin:0 4px; }

/* 题材二级筛选：大分类一行可多选，小分类默认收起 */
#aj-anime-app .aj-bigrow { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
#aj-anime-app .aj-bigchip { cursor:pointer; padding:7px 15px; border-radius:999px; font-size:13px; font-weight:600; border:1px solid var(--aj-line); background:#fff; color:#5b5374; transition:all .18s; user-select:none; }
#aj-anime-app .aj-bigchip:hover { border-color:var(--aj-accent); color:var(--aj-accent); }
#aj-anime-app .aj-bigchip.active { background:var(--aj-accent); border-color:var(--aj-accent); color:#fff; box-shadow:0 4px 10px rgba(139,92,246,.32); }
#aj-anime-app .aj-bigchip .aj-num { font-size:11px; opacity:.8; margin-left:4px; font-weight:600; }
#aj-anime-app .aj-subs { display:none; margin-top:12px; padding:12px 14px; border-left:2px solid var(--aj-soft); border-radius:0 12px 12px 0; background:#faf8ff; }
#aj-anime-app .aj-subs.open { display:block; }
#aj-anime-app .aj-sublabel { font-size:11px; font-weight:700; color:var(--aj-muted); margin:8px 0 5px; }
#aj-anime-app .aj-subrow { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:8px; }
#aj-anime-app .aj-expand { cursor:pointer; margin-left:4px; font-size:11px; color:var(--aj-accent); font-weight:700; }

/* 「我要鉴番」入口按钮 */
#aj-anime-app .aj-toolbar { display:flex; gap:10px; margin-top:14px; flex-wrap:wrap; }
#aj-anime-app .aj-suggest { cursor:pointer; padding:11px 20px; border-radius:12px; border:none; font-size:14px; font-weight:800; color:#fff; background:linear-gradient(135deg,#8b5cf6,#d946ef); box-shadow:0 8px 20px rgba(139,92,246,.30); transition:transform .18s, box-shadow .18s; }
#aj-anime-app .aj-suggest:hover { transform:translateY(-2px); box-shadow:0 12px 26px rgba(139,92,246,.40); }

/* 详情弹层里「番剧报错」按钮（图片下方） */
body .aj-dlg-report { display:inline-flex; align-items:center; justify-content:center; gap:6px; margin-top:12px; width:100%; padding:11px 0; border-radius:10px; border:1px dashed #c4b5fd; background:#faf8ff; color:#7c3aed; font-size:13px; font-weight:700; cursor:pointer; transition:all .18s; }
body .aj-dlg-report:hover { background:#efebff; border-color:#8b5cf6; }

/* 反馈/报错表单（复用弹层容器） */
body .aj-form { padding:4px 2px 2px; }
body .aj-form h3 { margin:0 0 2px; font-size:19px; font-weight:800; color:var(--aj-ink); }
body .aj-form .aj-fsub { font-size:12px; color:var(--aj-muted); margin:2px 0 4px; }
body .aj-form label { display:block; font-size:12px; font-weight:700; color:#5b5374; margin:13px 0 5px; }
body .aj-form textarea, body .aj-form input[type="text"] { width:100%; padding:11px 12px; border:1px solid var(--aj-line); border-radius:10px; font-size:14px; color:var(--aj-ink); background:#fff; box-sizing:border-box; outline:none; font-family:inherit; }
body .aj-form textarea:focus, body .aj-form input[type="text"]:focus { border-color:#8b5cf6; box-shadow:0 0 0 3px rgba(139,92,246,.12); }
body .aj-form textarea { min-height:96px; resize:vertical; }
body .aj-submit { width:100%; margin-top:16px; padding:12px 0; border:none; border-radius:12px; background:linear-gradient(135deg,#8b5cf6,#d946ef); color:#fff; font-size:15px; font-weight:800; cursor:pointer; }
body .aj-submit:disabled { opacity:.55; cursor:default; }
body .aj-form-done { text-align:center; color:var(--aj-muted); font-size:14px; padding:16px 4px; }
body .aj-form-done b { display:block; font-size:26px; font-weight:900; color:#16a34a; margin-bottom:6px; }
body .aj-list-warn { font-size:12px; color:#b45309; background:#fffbeb; border:1px solid #fde68a; border-radius:8px; padding:9px 11px; margin-top:12px; }
body .aj-form .aj-err { font-size:12px; color:#dc2626; margin-top:8px; }