/* =========================================================================
   Jev2Api · 页面层：Playground 等视图专属样式 + 双主题微调
   ========================================================================= */

/* ---------- 通用小件 ---------- */
.inline-lab { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; color: var(--text-3); }
.mono { font-family: "SFMono-Regular", Consolas, monospace; }
textarea.mono { font-family: "SFMono-Regular", Consolas, monospace; font-size: 12.5px; }
.seg--sm { padding: 2px; }
.seg--sm button { padding: 4px 10px; font-size: 11.5px; }

/* ---------- 字段块（对齐官方字段语义：名称 / 必填标记 / 说明 / 格式校验） ---------- */
.field { display: flex; flex-direction: column; gap: 8px; }
.field__head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.field__name { font-family: "SFMono-Regular", Consolas, monospace; font-size: 12px;
  color: var(--code); background: var(--surface-softer); padding: 2px 7px; border-radius: 6px;
  border: 1px solid var(--border); }
.field__req { font-size: 10.5px; color: var(--err-text); border: 1px solid var(--err-line);
  background: var(--err-soft); padding: 1px 7px; border-radius: 999px; }
.field__opt { font-size: 10.5px; color: var(--text-3); border: 1px solid var(--border);
  background: var(--surface-soft); padding: 1px 7px; border-radius: 999px; }
.field__desc { font-size: 11.5px; color: var(--text-3); }
.field__grow { flex: 1 1 auto; }
.field__foot { font-size: 11.5px; color: var(--text-4); }
.field__foot--ok { color: var(--ok-text); }
.field__foot--warn { color: var(--warn-text); }
.field__foot--err { color: var(--err-text); }

/* ---------- Playground · 问题卡片 ---------- */
.pg-qs { display: grid; gap: 10px;
  grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); }
/* 回答卡片：上下布局后宽屏多列排列，避免一条超长 */
.ans-grid { display: grid; gap: 10px; align-items: start;
  grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); }
.pq {
  border: 1px solid var(--border); border-radius: 14px; padding: 12px;
  background: var(--surface-softer); display: flex; flex-direction: column; gap: 9px;
  transition: border-color .15s, background .15s;
}
.pq:hover { border-color: var(--border-strong); }
.pq__top { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.pq__idx { width: 20px; height: 20px; border-radius: 6px; display: grid; place-items: center;
  background: var(--accent-soft); color: var(--accent-text); font-size: 11px; font-weight: 600; flex: none; }
.pq__name { width: 178px; font-family: "SFMono-Regular", Consolas, monospace; font-size: 12.5px; }
.pq__path { font-size: 11px; color: var(--text-4); font-family: "SFMono-Regular", Consolas, monospace; }
.pq__path b { color: var(--accent-text); font-weight: 500; }
.pq__line { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.pq__ins { flex: 1; min-width: 220px; }
.pq__hint { font-size: 11px; color: var(--text-4); line-height: 1.5; }

/* ---------- criteria 编辑器 ---------- */
.crit { display: flex; flex-direction: column; gap: 7px; border-top: 1px dashed var(--border);
  padding-top: 9px; }
.crit__head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.crit-row { display: flex; align-items: center; gap: 8px; }
.crit-row__k { width: 172px; font-family: "SFMono-Regular", Consolas, monospace; font-size: 12.5px; }
.crit-row__eq { color: var(--text-4); font-size: 12px; }
.crit-row__v { flex: 1; min-width: 160px; }
.crit-row__x { width: 26px; height: 26px; border-radius: 8px; color: var(--text-4); flex: none;
  font-size: 15px; line-height: 1; transition: background .15s, color .15s; }
.crit-row__x:hover { background: var(--err-soft); color: var(--err-text); }
.crit-row__lv { width: 22px; height: 22px; border-radius: 6px; flex: none; display: grid;
  place-items: center; font-size: 11px; font-family: "SFMono-Regular", Consolas, monospace;
  background: var(--surface-soft); border: 1px solid var(--border); color: var(--text-2); }
.crit-row__tag { width: 46px; flex: none; text-align: center; font-size: 11px;
  font-family: "SFMono-Regular", Consolas, monospace; padding: 3px 0; border-radius: 6px; }
.crit-row__tag--t { color: var(--ok-text); background: var(--ok-soft); border: 1px solid var(--ok-line); }
.crit-row__tag--f { color: var(--err-text); background: var(--err-soft); border: 1px solid var(--err-line); }

/* ---------- Playground · 答案可视化 ---------- */
.ans {
  border: 1px solid var(--border); border-radius: 14px; padding: 13px 15px;
  background: var(--surface-soft);
}
.ans + .ans { margin-top: 10px; }
.ans__head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.ans__name { font-size: 12.5px; color: var(--text-1);
  font-family: "SFMono-Regular", Consolas, monospace; }
.ans__type { font-size: 11px; color: var(--text-3); }
.ans__main { font-size: 23px; font-weight: 500; margin: 6px 0 2px; letter-spacing: -.01em; }
.ans__of { font-size: 13px; color: var(--text-3); font-weight: 400; }
.ans__sub { font-size: 12px; color: var(--text-3); margin-bottom: 8px;
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

/* 置信度三档建议（官方推荐用法：高置信自动执行 / 中置信复核 / 低置信转人工） */
.trust { font-size: 11px; padding: 2px 8px; border-radius: 999px; border: 1px solid transparent; }
.trust--high { color: var(--ok-text); background: var(--ok-soft); border-color: var(--ok-line); }
.trust--mid { color: var(--warn-text); background: var(--warn-soft); border-color: var(--warn-line); }
.trust--low { color: var(--err-text); background: var(--err-soft); border-color: var(--err-line); }

.legend { display: flex; flex-direction: column; gap: 3px; margin: 4px 0 8px; }
.legend__row { display: flex; align-items: baseline; gap: 9px; font-size: 12px; color: var(--text-2);
  padding: 3px 8px; border-radius: 7px; }
.legend__row.is-near { background: var(--accent-soft); color: var(--text-1); }
.legend__i { width: 18px; text-align: center; font-family: "SFMono-Regular", Consolas, monospace;
  font-size: 11px; color: var(--text-3); flex: none; }
.legend__t { flex: 1; }

.pbar { display: flex; align-items: center; gap: 8px; margin-top: 5px; font-size: 12px; color: var(--text-2); }
.pbar__k { width: 148px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pbar__t { flex: 1; height: 7px; border-radius: 999px; background: var(--track); overflow: hidden; }
.pbar__f { display: block; height: 100%; border-radius: 999px; background: var(--grad);
  transition: width .35s ease; }
.pbar__v { width: 52px; text-align: right; font-family: "SFMono-Regular", Consolas, monospace;
  font-size: 11.5px; color: var(--text-3); }
.pbar__hit { font-size: 10.5px; color: var(--accent-text); border: 1px solid var(--accent-glow);
  background: var(--accent-soft); padding: 0 6px; border-radius: 999px; }

.stat-line { display: flex; gap: 14px; flex-wrap: wrap; font-size: 12px; color: var(--text-3); }
.stat-line b { color: var(--text-1); font-weight: 500; }

/* ---------- 主题切换按钮（顶栏） ---------- */
.themebtn { position: relative; }
.themebtn .ic { transition: transform .35s ease, opacity .2s; }
[data-theme="light"] .themebtn .ic { transform: rotate(180deg); }

/* ---------- 明亮主题（磨砂毛玻璃）微调 ---------- */
[data-theme="light"] .table th { box-shadow: 0 1px 0 var(--border); }
[data-theme="light"] .topbar { box-shadow: 0 8px 24px -20px rgba(24,38,76,.28); }
[data-theme="light"] .bento,
[data-theme="light"] .card,
[data-theme="light"] .side__panel,
[data-theme="light"] .toolbar { border: 1px solid rgba(255,255,255,.62); }
[data-theme="light"] .input::placeholder { color: var(--text-4); }
[data-theme="light"] .side__nav a.active { box-shadow: inset 0 0 0 1px rgba(47,111,228,.16); }
[data-theme="light"] .log { border: 1px solid var(--border); }
[data-theme="light"] .feed__row { background: rgba(255,255,255,.5); }
[data-theme="light"] .notice,
[data-theme="light"] .modal__box { box-shadow: 0 24px 48px -22px rgba(24,38,76,.34); }
[data-theme="light"] .field__name { background: rgba(255,255,255,.7); }
[data-theme="light"] .pq { background: rgba(255,255,255,.42); }
[data-theme="light"] .crit-row__lv { background: rgba(255,255,255,.7); }

/* 明亮主题下，套色胶囊/徽章里的白字要压深，避免在浅底上看不清 */
[data-theme="light"] .badge,
[data-theme="light"] .avatar,
[data-theme="light"] .seg button.active,
[data-theme="light"] .pbtn.is-active,
[data-theme="light"] .btn--primary { color: #fff; }

/* ---------- 深色主题微调 ---------- */
[data-theme="dark"] .toolbar { border-color: var(--border); }

/* ---------- 响应式：窄屏表格横向滚动提示 ---------- */
@media (max-width: 900px) {
  .table-wrap { max-height: 460px; }
  .acts { flex-wrap: wrap; }
  .crit-row { flex-wrap: wrap; }
  .crit-row__k { width: 100%; }
}

/* ---------- 代理池：两种池的说明（手动池 / CliProxy 池） ---------- */
.px-eff { font-size: 12.5px; color: var(--text-2); line-height: 1.7; }
.px-eff__row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.px-pools { display: grid; grid-template-columns: repeat(auto-fit, minmax(330px, 1fr));
  gap: 14px; margin-top: 14px; }
.px-pool { border: 1px solid var(--border); border-radius: 14px; padding: 13px 13px 11px;
  background: var(--surface-soft); }
.px-pool__head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
.px-pool__head .muted { font-size: 11px; font-family: "SFMono-Regular", Consolas, monospace;
  word-break: break-all; }
.px-pool__desc { font-size: 12px; color: var(--text-3); line-height: 1.7; margin: 0 0 10px; }
.px-pool .kv { margin-bottom: 10px; }
.px-pool .mono, .px-pool .kv span { word-break: break-all; }

/* ---------- 通用小件（API 接口页等） ---------- */
.note { font-size: 11.5px; color: var(--text-3); line-height: 1.75; margin-top: 10px; }
.note code { font-family: "SFMono-Regular", Consolas, monospace; color: var(--code); }
.fields { display: flex; flex-direction: column; gap: 12px; }
.fields .field { padding-bottom: 12px; border-bottom: 1px dashed var(--border); }
.fields .field:last-child { border-bottom: 0; padding-bottom: 0; }
.fields .field__name { font-size: 13px; }
.table--tight td, .table--tight th { padding: 7px 9px; font-size: 12px; }
.log--tall { max-height: 440px; }

/* ---------- 复选列（调用方等列表） ---------- */
.table th.pick, .table td.pick { width: 36px; padding-left: 10px; padding-right: 0; text-align: center; }
.table input[type="checkbox"] { width: 14px; height: 14px; accent-color: var(--accent-text); cursor: pointer; }

/* ---------- 总览：实时调用流（脉冲带 + 最新调用） ---------- */
.grid--flow { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr);
  gap: var(--gap-page); align-items: stretch; }
@media (max-width: 1180px) { .grid--flow { grid-template-columns: minmax(0, 1fr); } }

/* 两栏等高：卡片内部 flex 撑满、内容区超出滚动 ——
   修「左边调用流很长、右边冷却卡很空」导致的底部边框不齐 */
.grid--flow > .card { display: flex; flex-direction: column; max-height: 560px; }
.grid--flow .flow-body { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
.grid--flow .flow-body > .pulse,
.grid--flow .flow-body > .pulse__legend { flex: none; }
.grid--flow .rt { flex: 1 1 auto; min-height: 0; overflow: auto; }
.grid--flow .coolgrid { flex: 1 1 auto; min-height: 150px; overflow: auto; }
.grid--flow #coolPager { flex: none; }
.grid--flow .coolgrid__empty { margin-top: 2px; }

.pulse { display: flex; align-items: flex-end; gap: 3px; height: 76px;
  padding: 10px 12px 0; border-radius: 13px; background: var(--surface-soft);
  border: 1px solid var(--border-soft); overflow: hidden; }
.pulse__b { flex: 1 1 0; min-width: 3px; border-radius: 3px 3px 1px 1px;
  background: var(--ok); opacity: .82; transition: opacity .15s, transform .15s; }
.pulse__b--err { background: var(--err); }
.pulse__b:hover { opacity: 1; transform: scaleY(1.04); }
.pulse__legend { display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  font-size: 11px; color: var(--text-3); margin-top: 8px; }

.rt { margin-top: 12px; display: flex; flex-direction: column; }
.rt__row { display: grid; grid-template-columns: 62px 42px minmax(90px, 1fr) 76px 62px 74px minmax(0, 1.1fr);
  gap: 8px; align-items: center; padding: 6px 2px; font-size: 12px;
  border-top: 1px solid var(--border-soft); }
.rt__row:first-child { border-top: 0; }
.rt__t { color: var(--text-4); font-variant-numeric: tabular-nums; }
.rt__s { font-size: 10.5px; font-weight: 700; letter-spacing: .04em; }
.rt__s.is-ok { color: var(--ok-text); }
.rt__s.is-err { color: var(--err-text); }
.rt__id, .rt__k { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text-2); }
.rt__ms, .rt__tok { color: var(--text-2); }
.rt__x { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 1180px) {
  .rt__row { grid-template-columns: 58px 40px minmax(70px, 1fr) 70px 58px 66px; }
  .rt__x { display: none; }
}

/* ---------- 总览：冷却看板 ---------- */
.coolgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(196px, 1fr)); gap: 10px; }
.coolgrid__empty { grid-column: 1 / -1; display: flex; align-items: center; gap: 12px;
  padding: 18px 16px; border-radius: 13px; background: var(--ok-soft);
  border: 1px solid var(--ok-line); font-size: 12.5px; color: var(--text-2); }
.coolgrid__empty .ic { color: var(--ok-text); flex: none; }
.coolcard { border: 1px solid var(--border); border-radius: 13px; padding: 11px 12px;
  background: var(--surface-soft); display: flex; flex-direction: column; gap: 6px; }
.coolcard__top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.coolcard__k { font-size: 12.5px; color: var(--text-1); }
.coolcard__mail { font-size: 11px; color: var(--text-4); overflow: hidden;
  text-overflow: ellipsis; white-space: nowrap; }
.coolcard__left { font-size: 21px; font-weight: 500; letter-spacing: -.01em;
  color: var(--warn-text); font-variant-numeric: tabular-nums; }
.coolcard__left.is-near { color: var(--ok-text); }
.coolcard__bar { height: 5px; border-radius: 999px; background: var(--track); overflow: hidden; }
.coolcard__bar span { display: block; height: 100%; background: var(--warn); transition: width .4s; }
.coolcard__why { font-size: 11px; color: var(--text-4); min-height: 15px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.coolcard .btn { align-self: flex-start; }

/* ---------- 总览：出口事件时间轴 ---------- */
.tl { display: flex; flex-direction: column; max-height: 300px; overflow: auto; }
.tl__row { display: grid; grid-template-columns: 66px 14px 84px minmax(0, 1fr);
  gap: 8px; align-items: center; padding: 6px 2px; font-size: 12px;
  border-top: 1px solid var(--border-soft); }
.tl__row:first-child { border-top: 0; }
.tl__t { color: var(--text-4); font-variant-numeric: tabular-nums; }
.tl__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--text-4);
  justify-self: center; }
.tl__dot.c-ok { background: var(--ok); }
.tl__dot.c-warn { background: var(--warn); }
.tl__dot.c-err { background: var(--err); }
.tl__dot.c-dim { background: var(--border-strong); }
.tl__kind { color: var(--text-2); }
.tl__detail { color: var(--text-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ---------- 全局配置：字段说明 ---------- */
.hintline { font-size: 11px; color: var(--text-4); line-height: 1.65; margin-top: 4px; }
.hintline code { font-family: "SFMono-Regular", Consolas, monospace; color: var(--code); }
.grp { border-top: 1px dashed var(--border); margin-top: 12px; padding-top: 12px; }
.grp:first-of-type { border-top: 0; margin-top: 0; padding-top: 0; }
.grp__t { font-size: 11.5px; font-weight: 700; letter-spacing: .1em; color: var(--text-4);
  text-transform: uppercase; margin-bottom: 9px; }
.dl { display: flex; flex-direction: column; gap: 5px; font-size: 11.5px;
  color: var(--text-3); line-height: 1.7; margin-top: 9px; }
.dl b { color: var(--text-2); font-weight: 500; }

/* ---------- 代理池：上传区（单列：文本域 → 操作条 → 折叠说明） ---------- */
.px-upload { display: flex; flex-direction: column; gap: 10px; }
.px-upload__ta { width: 100%; min-height: 96px; max-height: 220px; }
.px-upload__bar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
a.chip { text-decoration: none; }

/* ---------- Playground：操作条 / 两栏 / 响应侧栏 ---------- */
.pg-bar { display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  position: sticky; top: 0; z-index: 5; }
/* Key / model 两组对齐：标签定宽右对齐 + 控件定宽（视觉上一列一条线） */
.pg-bar .inline-lab { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; }
.pg-bar .inline-lab > span { width: 44px; text-align: right; color: var(--text-3); flex: none; }
.pg-bar select { width: 260px; }
.btn--lg { padding: 9px 20px; font-size: 13.5px; border-radius: 12px; }

.grid--pg { display: grid; grid-template-columns: minmax(0, 1fr);
  gap: var(--gap-page); align-items: start; }
.grid--pg > section { display: flex; flex-direction: column; gap: var(--gap-page); }
.pg-side { display: flex; flex-direction: column; gap: var(--gap-page); }
@media (max-width: 1180px) {
  .grid--pg { grid-template-columns: minmax(0, 1fr); }
  .pg-side { position: static; }
  .pg-bar { position: static; }
}

.pg-idle { padding: 22px 16px; text-align: center; border-radius: 13px;
  background: var(--surface-soft); border: 1px dashed var(--border); }
.pg-idle__t { font-size: 13px; color: var(--text-2); margin-bottom: 6px; }

.pgsum { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.pgsum__i { display: inline-flex; align-items: baseline; gap: 7px; padding: 6px 11px;
  border-radius: 11px; background: var(--surface-soft); border: 1px solid var(--border-soft);
  font-size: 13.5px; color: var(--text-1); }
.pgsum__i b { font-size: 11px; font-weight: 500; color: var(--text-4);
  font-family: "SFMono-Regular", Consolas, monospace; }

/* 冷却看板空态：居中，让左右两栏等高时视觉更自然 */
.grid--flow .coolgrid--empty { display: flex; align-items: center; justify-content: center; }
.grid--flow .coolgrid--empty .coolgrid__empty { margin: 0; }

/* ---------- 总览：运行质量卡（紧凑两行，替代两个高瘦空卡） ---------- */
.card--kpi { display: flex; flex-direction: column; gap: 10px; padding: 16px 18px; }
.kpi-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; }
.kpi-row + .kpi-row { margin-top: 10px; padding-top: 12px; border-top: 1px solid var(--border-soft); }
.kpi-row__l { min-width: 0; }
.kpi-row__k { display: flex; align-items: center; gap: 8px;
  font-size: 12px; color: var(--text-3); letter-spacing: .02em; }
.kpi-row__s { font-size: 11.5px; color: var(--text-4); margin-top: 4px; line-height: 1.5;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kpi-row__v { font-size: 27px; font-weight: 500; letter-spacing: -.02em; line-height: 1;
  font-variant-numeric: tabular-nums; flex: none; }
.card--kpi .meter { margin-top: 2px; }
.speedtag { display: inline-flex; align-items: center; height: 18px; padding: 0 7px;
  border-radius: 999px; font-size: 10.5px; font-weight: 600; letter-spacing: .02em;
  background: var(--surface-hover); color: var(--text-3); }
.speedtag--ok { background: var(--ok-soft); color: var(--ok-text); }
.speedtag--warn { background: var(--warn-soft); color: var(--warn-text); }
.speedtag--err { background: var(--err-soft); color: var(--err-text); }

/* 运行质量卡底部的运行概览：4 格均分，占满卡片剩余空间 */
.kpi-chips { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px;
  padding-top: 12px; margin-top: auto; border-top: 1px solid var(--border-soft); }
.kpi-chip { display: flex; flex-direction: column; gap: 3px; padding: 9px 11px;
  border-radius: 11px; background: var(--surface-soft);
  border: 1px solid var(--border-soft); min-width: 0; }
.kpi-chip__k { font-size: 11px; color: var(--text-4); white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis; }
.kpi-chip__v { font-size: 13px; color: var(--text-1); font-weight: 500;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kpi-chip--ok { border-color: var(--ok-line); }
.kpi-chip--warn { border-color: var(--warn-line); }
.kpi-chip--err { border-color: var(--err-line); }
@media (max-width: 900px) { .kpi-chips { grid-template-columns: repeat(2, minmax(0, 1fr)); } }


/* ---------- 卡片级折叠（整卡可展开/收缩，默认收缩） ---------- */
.card--fold { padding: 0; overflow: hidden; }
.card--fold > summary {
  display: flex; align-items: center; gap: 10px; cursor: pointer; user-select: none;
  padding: 13px 18px; list-style: none; transition: background .15s;
}
.card--fold > summary:hover { background: var(--surface-soft); }
.card--fold > summary::-webkit-details-marker { display: none; }
.card--fold > summary:focus-visible { outline: 2px solid var(--accent-glow); outline-offset: -2px; }
.card--fold > summary::after {
  content: ''; margin-left: auto; flex: none; width: 6px; height: 6px;
  border-right: 1.5px solid var(--text-4); border-bottom: 1.5px solid var(--text-4);
  transform: rotate(45deg); transition: transform .2s;
}
.card--fold[open] > summary::after { transform: rotate(-135deg); }
.card--fold .fold__body {
  margin-top: 0; padding: 12px 18px 15px; border-top: 1px solid var(--border-soft);
}

/* 格式清单（折叠面板内） */
.fmt { display: flex; flex-direction: column; gap: 7px; margin-bottom: 10px; }
.fmt__i { display: grid; grid-template-columns: 108px minmax(0, 1fr); gap: 12px; align-items: baseline; }
.fmt__k { font-size: 11.5px; color: var(--text-4); }
.fmt__i code { color: var(--text-2); word-break: break-all; }

/* ---------- 苹果风设置列表（配置页：核心开关 / 出口与分配 / 绑定·熔断·并发） ---------- */
.stack { display: flex; flex-direction: column; gap: 9px; min-width: 0; }
.card > .stack + .stack { margin-top: 16px; }
.stack__t { padding: 0 3px; font-size: 12.5px; font-weight: 500; color: var(--text-3); }
.stack__note { padding: 0 3px; font-size: 11.5px; line-height: 1.7; color: var(--text-4); }
.stack__note code { color: var(--code); }
.stack .details { margin: 0; }

.group { border-radius: 14px; background: var(--group-bg); overflow: hidden;
  box-shadow: inset 0 0 0 1px var(--group-ring); }

.grow { position: relative; display: flex; align-items: center; justify-content: space-between;
  gap: 16px; min-height: 47px; padding: 9px 16px; }
.grow + .grow::before { content: ''; position: absolute; left: 16px; right: 0; top: 0;
  height: 1px; background: var(--group-line); }
.grow__k { min-width: 0; font-size: 13px; color: var(--text-1); }
.grow__k small { display: block; margin-top: 2px; font-size: 11.5px; line-height: 1.45;
  color: var(--text-4); }
.grow__v { display: inline-flex; align-items: center; gap: 7px; flex: none; }
.grow__u { font-size: 11.5px; font-style: normal; color: var(--text-4); white-space: nowrap; }

/* 数字输入：平时隐形，hover 显形、聚焦亮环（苹果设置页的编辑手感） */
.input--quiet { width: 92px; min-width: 0; padding: 5px 9px; text-align: right;
  font-size: 13px; border-color: transparent; background: transparent;
  font-variant-numeric: tabular-nums; }
.input--quiet:hover { background: var(--quiet-bg); border-color: transparent; }
.input--quiet:focus { background: var(--input-bg-focus); border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-soft); }
.input--quiet::-webkit-outer-spin-button,
.input--quiet::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* 下拉：浅填充 + 自绘箭头（原生箭头在暗色下很丑） */
.sel { position: relative; display: inline-flex; flex: none; min-width: 0; }
.sel > select { appearance: none; -webkit-appearance: none; -moz-appearance: none;
  border-color: transparent; background: var(--quiet-bg);
  padding: 6px 28px 6px 12px; font-size: 12.5px; border-radius: 9px; min-width: 0; }
.sel > select:hover { background: var(--quiet-bg-hi); border-color: transparent; }
.sel > select:focus { border-color: var(--accent); background: var(--input-bg-focus);
  box-shadow: 0 0 0 3px var(--accent-soft); }
.sel::after { content: ''; position: absolute; right: 11px; top: 50%; width: 5px; height: 5px;
  border-right: 1.5px solid var(--text-4); border-bottom: 1.5px solid var(--text-4);
  transform: translateY(-72%) rotate(45deg); pointer-events: none; }

/* 开关：苹果式纯色（渐变留给主按钮） */
.toggle.on { background: var(--accent); }

/* 三栏面板（绑定 / 熔断 / 并发） */
.panels { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px; align-items: start; }
@media (max-width: 1360px) {
  .panels { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .panels > .stack:nth-child(3) { grid-column: 1 / -1; }
}
@media (max-width: 880px) {
  .panels { grid-template-columns: minmax(0, 1fr); }
  .panels > .stack:nth-child(3) { grid-column: auto; }
}

/* ---------- 分区折叠：卡片头右侧图标按钮（默认收缩） ---------- */
/* 为什么不用 <details>：这里要折叠的是卡片正文（分组卡 / 三栏面板），而 details 会把
   卡片头（标题）一起收走 —— 标题必须常驻。所以改为「.card__head + .fold-i 按钮 + .fold-body」，
   三个区域（核心开关 / 出口与分配 / 绑定·熔断·并发）结构一致。 */
.fold-i {
  flex: none; display: inline-flex; align-items: center; justify-content: center;
  width: 22px; height: 22px; padding: 0; border: 0; border-radius: 7px;
  background: transparent; color: var(--text-4); cursor: pointer;
  transition: background .15s, color .15s;
}
.fold-i:hover { background: var(--surface-soft); color: var(--text-2); }
.fold-i:focus-visible { outline: 2px solid var(--accent-glow); outline-offset: 1px; }
.fold-i svg { width: 12px; height: 12px; display: block; transition: transform .2s ease; }
/* 展开后才转向上，收起时朝下（提示「可展开」） */
.fold-i[aria-expanded="true"] svg { transform: rotate(180deg); }

/* 折叠体：纵向间距与 .stack 一致，收缩时整块隐藏（卡片头不受影响） */
.fold-body { display: flex; flex-direction: column; gap: 9px; min-width: 0; }
.panels.is-folded, .fold-body.is-folded { display: none; }

/* 全局出口输入框：比 .input--quiet 宽，等宽字体便于核对地址 */
.input--url { width: 306px; min-width: 0; text-align: left; font-size: 12px;
  font-family: "SFMono-Regular", Consolas, monospace; }

/* 旧的设置面板样式（已在 2026-09-22 深夜被苹果风列表取代，此处保留空位） */

/* 上传区进一步瘦身 */
.px-upload__ta { min-height: 72px; max-height: 180px; }
