/* ============================================================
   学术期刊 · 频道页「搜期刊」检索横幅   命名空间：jsb-
   ------------------------------------------------------------
   位置：/journals/ 频道页右侧区域顶部（首字母检索卡片之上）。
   构成：蓝色渐变横幅（斜向流线 + 几何装饰）+「搜期刊」标题
        + 白色检索框（字段下拉 · 分隔线 · 输入框 · 检索按钮）。
   主色继承根元素注入的 --jr-accent / --chan-accent-dark，随后台配色自动跟随。
   ============================================================ */

.jsb {
  position: relative;
  display: flex;
  align-items: center;
  gap: 26px;
  min-height: 96px;
  padding: 0 28px;
  border-radius: 12px;
  overflow: hidden;
  background: linear-gradient(100deg,
              var(--chan-accent-dark, #1747a8) 0%,
              var(--jr-accent, #1b5bd5) 42%,
              color-mix(in srgb, var(--jr-accent, #1b5bd5) 78%, #ffffff) 100%);
  box-shadow: 0 6px 18px rgba(27, 91, 213, .18);
}
/* 不支持 color-mix 的浏览器退回两段渐变（观感一致） */
@supports not (background: color-mix(in srgb, red 50%, blue)) {
  .jsb { background: linear-gradient(100deg, var(--chan-accent-dark, #1747a8) 0%, var(--jr-accent, #1b5bd5) 55%, #3f7ef0 100%); }
}

/* ---------- 背景装饰：斜向流线 + 三角线框 + 右上柔光 ---------- */
.jsb-deco { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.jsb-deco .jsb-streaks path { fill: #fff; opacity: .07; }
.jsb-deco .jsb-streaks path:nth-child(2n) { opacity: .045; }
.jsb-deco .jsb-tri path { fill: none; stroke: #fff; stroke-width: 1.4; opacity: .16; }
.jsb-deco .jsb-glow { fill: #fff; opacity: .05; }

/* ---------- 标题 ---------- */
.jsb-title {
  position: relative;
  flex: 0 0 auto;
  font-size: 26px;
  font-weight: 700;
  letter-spacing: 3px;
  color: #fff;
  text-shadow: 0 2px 8px rgba(0, 0, 0, .12);
  white-space: nowrap;
}

/* ---------- 检索框 ---------- */
.jsb-box {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: stretch;
  height: 48px;
  background: #fff;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 4px 14px rgba(9, 34, 92, .16);
}

/* 字段下拉（原生 select + 自绘箭头，与站内 .jrc-sort 同一手法） */
.jsb-field {
  flex: 0 0 auto;
  width: 112px;
  height: 100%;
  padding: 0 26px 0 16px;
  font-size: 14px;
  color: #333a44;
  background: transparent url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238a929d' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 10px center;
  border: 0;
  outline: none;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}
.jsb-field:focus-visible { box-shadow: inset 0 0 0 2px rgba(27, 91, 213, .35); border-radius: 6px 0 0 6px; }

.jsb-div { flex: 0 0 auto; align-self: center; width: 1px; height: 20px; background: #e4e8ef; }

/* 输入框 */
.jsb-input {
  flex: 1 1 auto;
  min-width: 0;
  height: 100%;
  padding: 0 14px 0 16px;
  font-size: 14px;
  color: #1e2532;
  background: transparent;
  border: 0;
  outline: none;
}
.jsb-input::placeholder { color: #b0b7c2; }
.jsb-input::-webkit-search-cancel-button { cursor: pointer; }

/* 检索按钮（浅底 + 主色放大镜，与图示一致） */
.jsb-btn {
  flex: 0 0 auto;
  width: 68px;
  height: 100%;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--jr-accent, #1b5bd5);
  background: #f4f7fd;
  border: 0;
  border-left: 1px solid #eaeef5;
  cursor: pointer;
  transition: color .15s, background .15s;
}
.jsb-btn svg { width: 20px; height: 20px; }
.jsb-btn:hover { color: #fff; background: var(--jr-accent, #1b5bd5); }
.jsb-btn:active { background: var(--chan-accent-dark, #1747a8); }

/* ---------- 响应式 ---------- */
@media (max-width: 960px) {
  .jsb { gap: 18px; padding: 0 20px; }
  .jsb-title { font-size: 22px; letter-spacing: 2px; }
}
@media (max-width: 700px) {
  .jsb {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    min-height: 0;
    padding: 18px 16px;
  }
  .jsb-title { font-size: 20px; text-align: center; letter-spacing: 4px; }
  .jsb-box { height: 44px; }
  .jsb-field { width: 96px; padding: 0 24px 0 12px; font-size: 13px; }
  .jsb-input { font-size: 13px; padding: 0 10px 0 12px; }
  .jsb-btn { width: 54px; }
  .jsb-btn svg { width: 18px; height: 18px; }
}
