/* =====================================================================
 * 41 · SCI 期刊分区速查 —— 独立设计
 * 视觉原型：学术检索台 + 四色分区色阶尺；左侧窄口径栏 / 右侧宽清单。
 * 专属配色：靛蓝墨色 + 分区色阶；标题字重 800、正文 1.85 行距。
 * 深色由公共导航 <html data-theme="dark"> 驱动，本文件只读令牌。
 * ===================================================================== */
.p41 {
    --g5c-bg: #f3f6fc;
    --g5c-bg2: #e6edfa;
    --g5c-surface: #ffffff;
    --g5c-surface2: #f7f9fe;
    --g5c-ink: #14213a;
    --g5c-ink2: #4a5b77;
    --g5c-muted: #8a99b2;
    --g5c-line: #dce5f3;
    --g5c-line2: #c3d1e8;
    --g5c-accent: #2b5fd9;
    --g5c-accent2: #0d8b88;
    --g5c-on: #ffffff;
    --g5d-bg: #0d1420;
    --g5d-bg2: #151f30;
    --g5d-surface: #172233;
    --g5d-surface2: #1d2b3f;
    --g5d-ink: #edf2fb;
    --g5d-ink2: #b6c4da;
    --g5d-muted: #8293ad;
    --g5d-line: #2b3b52;
    --g5d-line2: #3d5170;
    --g5d-accent: #83a6ff;
    --g5d-accent2: #55cfcb;
    --g5d-on: #0d1420;
    --g5-h: "Inter", "HarmonyOS Sans SC", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
    --g5-body: 14.6px;
    --g5-lh: 1.85;
    --jil-z1: #d9a13b; --jil-z2: #7a68c8; --jil-z3: #3a94b8; --jil-z4: #8b98ab;
}
:root[data-theme="dark"] .p41 {
    --jil-z1: #e8bd62; --jil-z2: #a596ed; --jil-z3: #66bcdc; --jil-z4: #9aa8bd;
}

/* ---------- 首屏 ---------- */
.jil-hero {
    display: grid; grid-template-columns: 1.04fr .96fr; gap: 34px;
    align-items: start; padding: 10px 0 38px;
}
.jil-eyebrow {
    display: flex; align-items: center; gap: 12px; margin-bottom: 20px;
    font-family: var(--g5-m); font-size: 11px; font-weight: 700;
    letter-spacing: .16em; color: var(--g5-accent); text-transform: uppercase;
}
.jil-eyebrow i { display: block; width: 36px; height: 1px; background: var(--g5-line2); }
.jil-eyebrow span:last-child { color: var(--g5-muted); letter-spacing: .08em; }
.jil-hero-copy h1 {
    font-size: clamp(2.3rem, 4.6vw, 3.5rem); line-height: 1.16;
    letter-spacing: -.035em; margin: 0 0 18px;
}
.jil-hero-copy h1 em { font-style: normal; color: var(--g5-accent); }
.jil-lede {
    max-width: 560px; font-size: 16px; line-height: 1.9;
    color: var(--g5-ink2); margin: 0 0 24px;
}
.jil-lede b { color: var(--g5-ink); }
.jil-facts { display: grid; gap: 10px; max-width: 520px; }
.jil-facts > div {
    display: flex; align-items: baseline; gap: 14px;
    padding: 8px 0 8px 14px; border-left: 2px solid var(--g5-line2);
}
.jil-facts b { font-size: 13.5px; letter-spacing: .02em; white-space: nowrap; }
.jil-facts small { color: var(--g5-muted); font-size: 12.3px; line-height: 1.7; }
.jil-art { display: block; width: 100%; max-width: 420px; height: auto; margin-top: 24px; opacity: .9; }

/* ---------- 首屏操作台 ---------- */
.jil-console {
    background: var(--g5-surface); border: 1px solid var(--g5-line);
    border-radius: 18px; box-shadow: var(--g5-shadow); overflow: hidden;
}
.jil-console-hd {
    display: flex; align-items: center; justify-content: space-between;
    padding: 15px 20px; border-bottom: 1px solid var(--g5-line);
    background: linear-gradient(100deg, var(--g5-bg2), var(--g5-surface));
}
.jil-console-hd b { font-family: var(--g5-h); font-size: 15px; letter-spacing: .02em; }
.jil-console-hd span { font-family: var(--g5-m); font-size: 11.5px; color: var(--g5-muted); }
.jil-scale { padding: 16px 20px 6px; display: grid; gap: 7px; }
.jil-scale-row { display: grid; grid-template-columns: 52px repeat(4, 1fr); gap: 5px; align-items: center; }
.jil-scale-row > span { font-size: 11px; color: var(--g5-muted); font-weight: 700; }
.jil-scale-row i {
    display: block; text-align: center; padding: 4px 0; border-radius: 5px;
    font-style: normal; font-family: var(--g5-m); font-size: 11px; font-weight: 700;
    color: #fff; letter-spacing: .03em;
}
.jil-scale-row i.s1 { background: var(--jil-z1); }
.jil-scale-row i.s2 { background: var(--jil-z2); }
.jil-scale-row i.s3 { background: var(--jil-z3); }
.jil-scale-row i.s4 { background: var(--jil-z4); }
.jil-form { display: grid; grid-template-columns: 1fr 1fr; gap: 11px 13px; padding: 14px 20px 18px; }
.jil-form label { display: block; min-width: 0; }
.jil-form label > span { display: block; font-size: 11.8px; font-weight: 700; color: var(--g5-ink2); margin-bottom: 5px; }
.jil-form label > span b { color: var(--g5-bad); }
.jil-form input, .jil-form select { font-size: 13px; padding: 7px 9px; }
.jil-console-ft { display: flex; align-items: center; gap: 9px; padding: 0 20px 18px; flex-wrap: wrap; }
.jil-msg {
    margin: 0 20px 18px; padding: 8px 12px; border-radius: 8px;
    background: var(--g5-okbg); color: var(--g5-ok); font-size: 12.5px; line-height: 1.7;
}
.jil-msg.is-err { background: var(--g5-badbg); color: var(--g5-bad); }

/* ---------- 主体双栏 ---------- */
.jil-body { display: grid; grid-template-columns: 264px minmax(0, 1fr); gap: 24px; align-items: start; }
.jil-rules {
    position: sticky; top: 86px;
    background: var(--g5-surface); border: 1px solid var(--g5-line);
    border-radius: var(--g5-r); padding: 20px 18px; box-shadow: var(--g5-shadow);
}
.jil-sec-hd { display: flex; align-items: center; gap: 11px; margin-bottom: 14px; }
.jil-sec-hd > i {
    font-family: var(--g5-m); font-style: normal; font-size: 11px; font-weight: 700;
    color: var(--g5-accent); background: var(--g5-bg2); border-radius: 6px; padding: 3px 7px;
}
.jil-sec-hd h2 { font-size: 17px; letter-spacing: -.01em; }
.jil-sec-hd > span { margin-left: auto; }
.jil-rules-lead { font-size: 12.7px; line-height: 1.85; color: var(--g5-ink2); margin-bottom: 16px; }
.jil-rules > label { display: block; margin-bottom: 12px; }
.jil-rules > label > span { display: block; font-size: 12px; font-weight: 700; color: var(--g5-ink2); margin-bottom: 5px; }
.jil-rules input, .jil-rules select { font-size: 13px; padding: 7px 9px; }
.jil-rule-note {
    margin: 16px 0 14px; padding: 11px 12px; border-radius: 9px;
    background: var(--g5-infobg); color: var(--g5-info); font-size: 12px; line-height: 1.8;
}
.jil-rule-note b { color: inherit; }
.jil-rules > .g5-btn { width: 100%; }

/* ---------- 面板与表格 ---------- */
.jil-main { display: grid; gap: 22px; min-width: 0; }
.jil-panel {
    background: var(--g5-surface); border: 1px solid var(--g5-line);
    border-radius: var(--g5-r); padding: 20px 22px 22px; box-shadow: var(--g5-shadow);
}
.jil-panel .jil-sec-hd { padding-bottom: 13px; border-bottom: 1px solid var(--g5-line); }
.jil-table { width: 100%; min-width: 720px; font-size: 12.8px; }
.jil-table th {
    text-align: left; padding: 10px 10px; font-size: 11.5px; font-weight: 750;
    color: var(--g5-muted); letter-spacing: .04em;
    border-bottom: 1px solid var(--g5-line2); white-space: nowrap;
}
.jil-table td { padding: 11px 10px; border-bottom: 1px solid var(--g5-line); vertical-align: middle; line-height: 1.7; }
.jil-table tr:last-child td { border-bottom: 0; }
.jil-table tbody tr:hover { background: var(--g5-surface2); }
.jil-table .jil-name { font-weight: 700; color: var(--g5-ink); }
.jil-table .jil-sub { display: block; font-family: var(--g5-m); font-size: 11px; color: var(--g5-muted); }
.jil-table .g5-num { font-family: var(--g5-m); font-weight: 700; }
.jil-empty { text-align: center; color: var(--g5-muted); padding: 30px 10px !important; }
.jil-zone { display: inline-block; width: 9px; height: 9px; border-radius: 3px; margin-right: 5px; }
.jil-zone.z1 { background: var(--jil-z1); } .jil-zone.z2 { background: var(--jil-z2); }
.jil-zone.z3 { background: var(--jil-z3); } .jil-zone.z4 { background: var(--jil-z4); }
.jil-verdict { font-weight: 800; font-size: 12px; white-space: nowrap; }
.jil-verdict.v-ok { color: var(--g5-ok); }
.jil-verdict.v-no { color: var(--g5-bad); }
.jil-verdict.v-todo { color: var(--g5-warn); }
.jil-del {
    border: 0; background: transparent; color: var(--g5-muted);
    font-size: 16px; line-height: 1; padding: 3px 6px; border-radius: 6px;
}
.jil-del:hover { color: var(--g5-bad); background: var(--g5-badbg); }
.jil-err { margin-top: 12px; }
.jil-err.jil-err-on { display: block; padding: 9px 13px; border-radius: 8px; background: var(--g5-badbg); color: var(--g5-bad); font-size: 12.8px; }

/* ---------- 批量 / 清洗 ---------- */
.jil-hint { font-size: 12.5px; line-height: 1.85; color: var(--g5-ink2); margin: 14px 0 10px; }
.jil-batch textarea { font-family: var(--g5-m); font-size: 12.4px; line-height: 1.75; }
.jil-clean {
    display: flex; align-items: center; flex-wrap: wrap; gap: 9px;
    margin-top: 13px; padding: 12px; border-radius: 10px; background: var(--g5-surface2);
    border: 1px dashed var(--g5-line2);
}
.jil-clean > b { font-size: 12px; color: var(--g5-ink2); margin-right: 2px; }
.g5-check {
    display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px;
    border: 1px solid var(--g5-line); border-radius: 999px;
    background: var(--g5-surface); color: var(--g5-ink2);
    font-size: 11.8px; font-weight: 650; line-height: 1.5; cursor: pointer; user-select: none;
}
.g5-check input { width: 14px; height: 14px; margin: 0; }
.g5-check.is-on { border-color: var(--g5-accent); color: var(--g5-accent); background: var(--g5-bg2); }
#jilPreview { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.jil-table-sm { min-width: 560px; margin-top: 16px; }
.jil-table-sm td { font-size: 12.3px; }

/* ---------- AI 区 ---------- */
.jil-ai { border-left: 3px solid var(--g5-accent2); }
.jil-ai-lead { font-size: 13.2px; line-height: 1.9; color: var(--g5-ink2); margin: 14px 0 16px; }

/* ---------- 阅读区：短段落、宽行距、关键词加粗 ---------- */
.jil-read {
    margin-top: 42px; padding: 28px 30px 8px;
    border-top: 2px solid var(--g5-ink); background: var(--g5-surface);
    border-radius: 0 0 var(--g5-r) var(--g5-r);
}
.jil-read h2 { font-size: 21px; margin-bottom: 16px; }
.jil-read p { font-size: 14.2px; line-height: 2.05; color: var(--g5-ink2); margin-bottom: 15px; }
.jil-read b { color: var(--g5-accent); }

@media (max-width: 1020px) {
    .jil-hero { grid-template-columns: 1fr; gap: 26px; }
    .jil-body { grid-template-columns: 1fr; }
    .jil-rules { position: static; }
}
@media (max-width: 620px) {
    .jil-form { grid-template-columns: 1fr; }
    .jil-panel { padding: 16px 14px 18px; }
    .jil-read { padding: 22px 16px 6px; }
    .jil-hero-copy h1 { font-size: 2.15rem; }
}
