/**
 * 体积换算器 - 工具页专属样式
 * 前缀 tj-，主题：科技蓝（与主站一致）
 * 布局：主转换区（输入+单位 ⇌ 结果+单位）+ 三列全单位网格
 */

/* ---------- 工具区 ---------- */
.tj-tool {
  padding-top: calc(4 * var(--u)); /* 30px */
  padding-bottom: calc(2 * var(--u));
}

.tj-title {
  font-size: calc(4.4 * var(--u)); /* 33px */
  font-weight: 700;
  color: var(--c-text);
  text-align: center;
}

.tj-sub {
  margin-top: calc(1.2 * var(--u)); /* 9px */
  font-size: calc(2.8 * var(--u)); /* 21px */
  color: #7a8699;
  text-align: center;
}

/* ---------- 主转换区 ---------- */
.tj-conv {
  margin-top: calc(3.2 * var(--u)); /* 24px */
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: calc(1.6 * var(--u)); /* 12px */
  box-shadow: 0 calc(1.2 * var(--u)) calc(3.6 * var(--u)) rgba(37, 99, 235, 0.08);
  padding: calc(3.2 * var(--u)); /* 24px */
  display: flex;
  align-items: center;
  gap: calc(2 * var(--u)); /* 15px */
}

.tj-side {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: calc(1.2 * var(--u)); /* 9px */
}

/* 输入框 + 右侧步进按钮 */
.tj-in-wrap {
  position: relative;
}

.tj-in {
  width: 100%;
  box-sizing: border-box;
  border: 1.5px solid #dbe4ef;
  border-radius: calc(1.2 * var(--u)); /* 9px */
  outline: none;
  background: #fafbfd;
  font-size: calc(3.6 * var(--u)); /* 27px */
  font-weight: 600;
  color: var(--c-text);
  padding: calc(1.8 * var(--u)) calc(7 * var(--u)) calc(1.8 * var(--u)) calc(2 * var(--u)); /* 右侧留步进按钮 */
  font-family: inherit;
  transition: border-color 0.15s, background 0.15s;
}

.tj-in:focus {
  border-color: var(--c-main);
  background: #fff;
}

.tj-in::placeholder {
  color: #c3cedd;
  font-weight: 400;
}

/* 结果显示框（只读） */
.tj-out {
  border: 1.5px solid rgba(37, 99, 235, 0.35);
  border-radius: calc(1.2 * var(--u));
  background: #f5f8ff;
  font-size: calc(3.6 * var(--u)); /* 27px */
  font-weight: 700;
  color: var(--c-main);
  padding: calc(1.8 * var(--u)) calc(2 * var(--u));
  min-height: calc(7.4 * var(--u));
  display: flex;
  align-items: center;
  word-break: break-all;
  line-height: 1.25;
}

.tj-out sup {
  font-size: 0.62em;
}

/* 单位下拉 */
.tj-sel-wrap {
  position: relative;
}

.tj-sel {
  width: 100%;
  box-sizing: border-box;
  appearance: none;
  -webkit-appearance: none;
  border: 1.5px solid #dbe4ef;
  border-radius: calc(1.2 * var(--u));
  outline: none;
  background: #fafbfd;
  font-size: calc(2.9 * var(--u)); /* 21.75px */
  font-weight: 500;
  color: #475569;
  padding: calc(1.3 * var(--u)) calc(6 * var(--u)) calc(1.3 * var(--u)) calc(2 * var(--u));
  font-family: inherit;
  cursor: pointer;
  transition: border-color 0.15s;
}

.tj-sel:focus {
  border-color: var(--c-main);
}

.tj-sel-wrap .bi {
  position: absolute;
  right: calc(1.8 * var(--u));
  top: 50%;
  transform: translateY(-50%);
  font-size: calc(2.2 * var(--u)); /* 16.5px */
  color: #94a3b8;
  pointer-events: none;
}

/* 交换按钮：圆形主题蓝 */
.tj-swap {
  flex-shrink: 0;
  width: calc(9.6 * var(--u)); /* 72px */
  height: calc(9.6 * var(--u));
  border: none;
  border-radius: 50%;
  background: linear-gradient(120deg, var(--c-main), #1d4ed8);
  color: #fff;
  font-size: calc(3.8 * var(--u)); /* 28.5px */
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 calc(1 * var(--u)) calc(2.4 * var(--u)) rgba(37, 99, 235, 0.3);
  transition: transform 0.15s, box-shadow 0.15s;
}

.tj-swap:hover {
  transform: translateY(-2px);
  box-shadow: 0 calc(1.4 * var(--u)) calc(3 * var(--u)) rgba(37, 99, 235, 0.35);
}

.tj-swap:active {
  transform: translateY(0);
}

/* 步进按钮：输入框内右侧竖排上下三角 */
.tj-step {
  position: absolute;
  top: 50%;
  right: calc(0.4 * var(--u)); /* 3px */
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  gap: calc(0.2 * var(--u));
}

.tj-step-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(5.4 * var(--u)); /* 40px */
  height: calc(2.8 * var(--u)); /* 21px */
  border: none;
  border-radius: calc(0.5 * var(--u));
  background: transparent;
  color: #a8b6c9;
  cursor: pointer;
  padding: 0;
}

.tj-step-btn .bi {
  font-size: calc(2.3 * var(--u)); /* 17px */
  line-height: 1;
}

.tj-step-btn:hover {
  color: var(--c-main);
  background: rgba(37, 99, 235, 0.08);
}

.tj-step-btn:active {
  color: var(--c-main);
}

.tj-err {
  margin-top: calc(1.6 * var(--u)); /* 12px */
  font-size: calc(2.6 * var(--u)); /* 19.5px */
  color: #e11d48;
}

/* ---------- 全单位结果网格：三列 ---------- */
.tj-grid {
  margin-top: calc(2.4 * var(--u));
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: calc(1.2 * var(--u)); /* 9px */
}

/* 体系分组标题：跨满整行，右侧细线延伸 */
.tj-group {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: calc(1.2 * var(--u));
  font-size: calc(2.6 * var(--u)); /* 19.5px */
  font-weight: 500;
  color: #94a3b8;
  margin-top: calc(1.6 * var(--u));
}

.tj-grid .tj-group:first-child {
  margin-top: 0;
}

.tj-group::after {
  content: '';
  flex: 1;
  height: 1px;
  background: #e2e8f0;
}

.tj-cell {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: calc(1.2 * var(--u));
  padding: calc(1.6 * var(--u)) calc(1.8 * var(--u));
  min-width: 0;
}

.tj-cell-val {
  font-size: calc(3 * var(--u)); /* 22.5px */
  font-weight: 700;
  color: var(--c-text);
  word-break: break-all;
  line-height: 1.3;
  min-height: calc(4 * var(--u));
  display: flex;
  align-items: center;
}

.tj-cell-val sup {
  font-size: 0.65em;
}

.tj-cell-name {
  margin-top: calc(0.5 * var(--u));
  font-size: calc(2.4 * var(--u)); /* 18px */
  color: #7a8699;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ---------- 公式卡片 ---------- */
.tj-card-list {
  margin-top: calc(3.2 * var(--u));
  display: grid;
  gap: calc(1.6 * var(--u));
}

.tj-card {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: calc(1.6 * var(--u));
  padding: calc(2.4 * var(--u)) calc(3.2 * var(--u)); /* 18px 24px */
  box-shadow: 0 calc(1.2 * var(--u)) calc(3.6 * var(--u)) rgba(37, 99, 235, 0.08);
}

.tj-card h3 {
  font-size: calc(3 * var(--u)); /* 22.5px */
  font-weight: 600;
  color: var(--c-text);
}

/* h3 内的公式标注：与标题同行，字号一致 */
.tj-card h3 .gj-mark {
  font-weight: 600;
}

.tj-note {
  margin-top: calc(0.8 * var(--u));
  font-size: calc(2.6 * var(--u)); /* 19.5px */
  color: #7a8699;
}

/* ---------- 单位用途介绍 ---------- */
.tj-intro {
  margin-top: calc(3.2 * var(--u));
  background: #eff6ff;
  border-radius: calc(1.6 * var(--u));
  padding: calc(3.2 * var(--u)) calc(3.2 * var(--u));
}

.tj-intro p {
  font-size: calc(2.8 * var(--u)); /* 21px */
  line-height: 1.8;
  color: #475569;
}

.tj-intro p + p {
  margin-top: calc(1.6 * var(--u));
}

.tj-intro strong {
  color: var(--c-main);
}
