:root {
  --apple-blue: #0071e3;
  --apple-blue-dark: #0077ed;
  --apple-blue-light: #e8f1fd;
  --apple-red: #ff3b30;
  --apple-green: #34c759;
  --apple-orange: #ff9500;
  --apple-gray: #8e8e93;
  --apple-gray2: #aeaeb2;
  --apple-gray5: #e5e5ea;
  --apple-gray6: #f2f2f7;
  --text: #1d1d1f;
  --text-secondary: #6e6e73;
  --muted: #8e8e93;
  --card-bg: rgba(255, 255, 255, 0.82);
  --surface: #ffffff; /* 组件内联背景用，暗色主题下翻深 */
  --bg-gradient: linear-gradient(180deg, #f5f5f7 0%, #e8e8ed 100%);
  --header-gradient: linear-gradient(135deg, #1e3a8a 0%, #2563eb 45%, #3b82f6 100%);
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
  --shadow-md: 0 4px 12px rgba(0,0,0,0.08), 0 2px 4px rgba(0,0,0,0.04);
  --shadow-lg: 0 12px 40px rgba(0,0,0,0.12);
  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 22px;
  --font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Helvetica Neue", "PingFang SC", "Microsoft YaHei", sans-serif;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
  font-family: var(--font);
  background: var(--bg-gradient);
  color: var(--text);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  min-height: 100vh;
}
.wrap { max-width: 1600px; margin: 0 auto; padding: 20px 16px 40px; }

/* ===== 顶栏（毛玻璃） ===== */
header {
  background: var(--header-gradient, linear-gradient(135deg, #1e3a8a 0%, #2563eb 45%, #3b82f6 100%));
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  backdrop-filter: saturate(180%) blur(20px);
  border: 1px solid rgba(255,255,255,0.25);
  border-radius: var(--radius-lg);
  padding: 24px 28px;
  margin-bottom: 18px;
  box-shadow: 0 8px 32px rgba(37,99,235,0.35);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
  animation: fadeSlideDown .5s ease;
  position: relative;
  overflow: hidden;
}
header::before {
  content: "";
  position: absolute;
  top: -60%;
  right: -10%;
  width: 320px;
  height: 320px;
  background: radial-gradient(circle, rgba(255,255,255,0.15) 0%, transparent 60%);
  pointer-events: none;
}
header::after {
  content: "";
  position: absolute;
  bottom: -80%;
  left: 10%;
  width: 260px;
  height: 260px;
  background: radial-gradient(circle, rgba(255,255,255,0.08) 0%, transparent 60%);
  pointer-events: none;
}
header h1 {
  font-size: 25px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #fff;
  text-shadow: 0 1px 2px rgba(0,0,0,0.15);
  position: relative;
  z-index: 1;
}
header .sub {
  font-size: 13px;
  color: rgba(255,255,255,0.85);
  margin-top: 4px;
  position: relative;
  z-index: 1;
}
.hud-card {
  display: flex;
  align-items: center;
  gap: 16px;
  background: rgba(255,255,255,0.18);
  border: 1px solid rgba(255,255,255,0.35);
  padding: 10px 18px;
  border-radius: var(--radius-md);
  position: relative;
  z-index: 1;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
.hud-divider { width: 1px; align-self: stretch; background: rgba(255,255,255,0.22); }
.hud-status-col { display: flex; flex-direction: column; gap: 3px; align-items: flex-start; }
.hud-balance-col { display: flex; flex-direction: column; align-items: center; text-align: center; }
.hud-balance-col .label { font-size: 12px; color: rgba(255,255,255,0.9); }
.hud-balance-col .val { font-size: 26px; font-weight: 700; color: #fff; letter-spacing: -0.02em; text-shadow: 0 1px 3px rgba(0,0,0,0.2); line-height: 1.1; }
.hud-btns { display: flex; gap: 6px; margin-top: 6px; }
.hud-btns .btn-sm {
  background: rgba(255,255,255,0.25) !important;
  color: #fff !important;
}

/* ===== 卡片（Apple 风格） ===== */
.card {
  background: var(--card-bg);
  -webkit-backdrop-filter: saturate(150%) blur(12px);
  backdrop-filter: saturate(150%) blur(12px);
  border: 1px solid rgba(255,255,255,0.7);
  border-radius: var(--radius-lg);
  padding: 22px;
  margin-bottom: 18px;
  box-shadow: 0 1px 2px rgba(16,24,40,.04), 0 8px 24px rgba(16,24,40,.07);
  transition: transform .25s ease, box-shadow .25s ease;
  animation: fadeSlideUp .5s ease;
}
.card:hover { transform: translateY(-3px); box-shadow: 0 2px 6px rgba(16,24,40,.06), 0 18px 48px rgba(16,24,40,.13); }
.card h2 {
  font-size: 17px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  gap: 8px;
  letter-spacing: -0.01em;
}

/* ===== 表单 ===== */
.form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 12px;
}
.form-grid .full { grid-column: 1 / -1; }
.field label { display: block; font-size: 12px; color: var(--text-secondary); margin-bottom: 5px; font-weight: 600; }
.field input, .field select, .field textarea {
  width: 100%;
  padding: 10px 14px;
  border: 1px solid var(--apple-gray5);
  border-radius: var(--radius-sm);
  font-size: 14px;
  background: rgba(255,255,255,0.9);
  color: var(--text);
  font-family: var(--font);
  transition: border-color .2s, box-shadow .2s;
  outline: none;
}
.field input:focus, .field select:focus, .field textarea:focus {
  border-color: var(--apple-blue);
  box-shadow: 0 0 0 4px rgba(0,113,227,0.12);
}
.field textarea { resize: vertical; min-height: 40px; }
.auto-tip { font-size: 12px; color: var(--apple-green); margin-top: 4px; }

/* ===== 目的地多选下拉 ===== */
.dest-multi { position: relative; }
.dest-multi .dest-tags { display: flex; flex-wrap: wrap; gap: 5px; min-height: 34px; padding: 5px 8px; border: 1px solid var(--apple-gray5); border-radius: var(--radius-sm); background: rgba(255,255,255,0.9); align-items: center; }
.dest-multi .dest-tag { display: inline-flex; align-items: center; gap: 3px; background: var(--apple-blue-light); color: var(--apple-blue); padding: 2px 6px 2px 9px; border-radius: 980px; font-size: 12px; font-weight: 600; line-height: 1.5; }
.dest-tag-x { border: none; background: transparent; color: var(--apple-blue); cursor: pointer; font-size: 13px; line-height: 1; padding: 0 1px; margin-left: 1px; }
.dest-tag-x:hover { color: var(--apple-red); }
.dest-tags-empty { color: var(--apple-gray2); font-size: 13px; padding: 2px; }
.dest-add-row { display: flex; gap: 6px; margin-top: 6px; align-items: center; }
.dest-add-row input { flex: 1; min-width: 0; }
.dest-panel {
  position: absolute; top: 100%; left: 0; z-index: 60;
  background: #fff; border: 1px solid var(--apple-gray5); border-radius: var(--radius-sm);
  box-shadow: var(--shadow-md); padding: 5px; margin-top: 4px;
  width: max-content; min-width: 120px; max-width: 100%;
  max-height: 240px; overflow-y: auto;
  display: flex; flex-direction: column; gap: 1px;
}
/* 高优先级选择器：覆盖 .form-section .field label 的通用样式，确保下拉选项紧凑 */
.form-section .dest-panel .dest-opt {
  display: flex; align-items: center; gap: 6px;
  font-size: 13px; font-weight: 500; line-height: 1.2;
  padding: 4px 8px; margin: 0; border-radius: 6px;
  cursor: pointer; text-align: left; white-space: nowrap;
}
.form-section .dest-panel .dest-opt:hover { background: var(--apple-gray6); }
.form-section .dest-panel .dest-opt input[type="checkbox"] {
  width: 14px; height: 14px; margin: 0; padding: 0; flex: none;
  accent-color: var(--apple-blue); cursor: pointer;
}

/* ===== 录入表单：左右分组布局 ===== */
.form-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 860px) { .form-layout { grid-template-columns: 1fr; } }
.form-col { display: flex; flex-direction: column; gap: 14px; }
.form-section {
  background: rgba(255,255,255,0.75);
  border: 1px solid rgba(0,0,0,0.05);
  border-radius: var(--radius-md);
  padding: 16px 18px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.04);
  transition: border-color .2s, box-shadow .2s;
}
.form-section:hover { border-color: rgba(0,113,227,0.25); box-shadow: 0 2px 10px rgba(0,113,227,0.08); }
.form-section .sec-title {
  font-size: 13px; font-weight: 700; color: var(--apple-blue);
  display: flex; align-items: center; gap: 6px;
  margin-bottom: 12px; letter-spacing: 0.01em;
}
.form-section .sec-title::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, rgba(0,113,227,0.25), transparent); }
.form-section .sec-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; }
.form-section .sec-grid .span2 { grid-column: 1 / -1; }
@media (max-width: 560px) { .form-section .sec-grid { grid-template-columns: 1fr; } }
.form-section .field label { font-size: 12px; color: var(--text-secondary); margin-bottom: 5px; font-weight: 600; display: flex; align-items: center; gap: 4px; }
.form-section .field label .req { color: var(--apple-red); font-weight: 700; }
.form-section .field input, .form-section .field select, .form-section .field textarea {
  width: 100%; padding: 9px 12px; border: 1px solid var(--apple-gray5);
  border-radius: var(--radius-sm); font-size: 14px; background: #fff; color: var(--text);
  font-family: var(--font); transition: border-color .2s, box-shadow .2s; outline: none;
}
.form-section .field input:focus, .form-section .field select:focus, .form-section .field textarea:focus {
  border-color: var(--apple-blue); box-shadow: 0 0 0 3px rgba(0,113,227,0.12);
}
.form-section .field input:disabled { background: var(--apple-gray6); color: var(--text-secondary); cursor: not-allowed; }
.form-foot {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px;
  margin-top: 16px; padding-top: 16px; border-top: 1px dashed rgba(0,113,227,0.25);
}
.form-foot .foot-tip { font-size: 12px; color: var(--text-secondary); display: flex; align-items: center; gap: 6px; }
.form-foot .foot-btns { display: flex; gap: 10px; flex-wrap: wrap; }
.form-foot .btn { padding: 11px 26px; font-size: 14px; }
.form-foot .btn-primary { box-shadow: 0 3px 10px rgba(0,113,227,0.35); }

/* ===== 按钮（Apple 胶囊） ===== */
.btn {
  border: none;
  border-radius: 980px;
  padding: 10px 22px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  font-family: var(--font);
  transition: all .2s ease;
  position: relative;
  overflow: hidden;
}
.btn::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,0.25);
  opacity: 0;
  transition: opacity .2s;
}
.btn:active::after { opacity: 1; }
.btn-primary { background: var(--apple-blue); color: #fff; }
.btn-primary:hover { background: var(--apple-blue-dark); box-shadow: 0 2px 8px rgba(0,113,227,0.4); transform: translateY(-1px); }
.btn-ghost { background: rgba(0,113,227,0.08); color: var(--apple-blue); }
.btn-ghost:hover { background: rgba(0,113,227,0.14); }
.btn-danger { background: rgba(255,59,48,0.1); color: var(--apple-red); }
.btn-danger:hover { background: rgba(255,59,48,0.16); }
.btn-sm { padding: 5px 12px; font-size: 12px; border-radius: 980px; }

/* ===== 汇总筛选 ===== */
.sum-filter { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; }
.sum-filter select { flex: 1; min-width: 88px; padding: 6px 8px; border: 1px solid var(--apple-gray5); border-radius: var(--radius-sm); font-size: 13px; background: rgba(255,255,255,0.9); color: var(--text); }

/* ===== 台账明细 筛选 + 分页 ===== */
.ledger-filter { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; margin-bottom: 10px; }
.ledger-filter select { padding: 6px 10px; border: 1px solid var(--apple-gray5); border-radius: var(--radius-sm); font-size: 13px; background: var(--surface); color: var(--text); min-width: 100px; }
.ledger-filter .lf-ctl { padding: 6px 12px; border: 1px solid var(--apple-gray5); border-radius: var(--radius-sm); font-size: 13px; background: var(--surface); color: var(--text); outline: none; font-family: var(--font); }
.ledger-filter .lf-search { flex: 1; min-width: 160px; border-radius: 980px; }
.ledger-filter .lf-ctl:focus { border-color: var(--apple-blue); box-shadow: 0 0 0 3px var(--apple-blue-light); }
.ledger-filter .spacer { flex: 1; }
.ledger-pager { display: flex; gap: 10px; align-items: center; justify-content: center; margin-top: 12px; flex-wrap: wrap; }
.ledger-pager .pager-info { font-size: 13px; color: var(--text-secondary); }

/* ===== 汇总统计卡片 ===== */
.stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 12px;
  margin-bottom: 14px;
}
.stat {
  background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(255,255,255,0.84));
  border: 1px solid rgba(255,255,255,0.8);
  border-radius: var(--radius-md);
  padding: 14px 16px;
  box-shadow: 0 2px 6px rgba(16,24,40,.06), 0 8px 20px rgba(16,24,40,.04);
  transition: transform .2s, box-shadow .2s;
}
.stat:hover { transform: translateY(-3px); box-shadow: 0 4px 10px rgba(16,24,40,.08), 0 14px 32px rgba(16,24,40,.08); }
.stat .n { font-size: 22px; font-weight: 700; color: var(--text); letter-spacing: -0.02em; }
.stat .l { font-size: 12px; color: var(--text-secondary); margin-top: 2px; }
.stat.accent .n { color: var(--apple-blue); }
.stat.green .n { color: var(--apple-green); }
.stat.orange .n { color: var(--apple-orange); }
.stat.warn .n { color: var(--apple-orange); }

/* ===== 车辆统计（新增） ===== */
.vehicle-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 12px;
  margin-bottom: 14px;
}
.vehicle-card {
  background: rgba(255,255,255,0.9);
  border: 1px solid rgba(255,255,255,0.9);
  border-radius: var(--radius-md);
  padding: 16px;
  box-shadow: var(--shadow-sm);
  cursor: pointer;
  transition: transform .25s, box-shadow .25s, border-color .25s;
  position: relative;
  overflow: hidden;
}
.vehicle-card:hover { transform: translateY(-3px) scale(1.01); box-shadow: var(--shadow-lg); border-color: rgba(0,113,227,0.4); }
.vehicle-card .v-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.vehicle-card .v-plate { font-size: 17px; font-weight: 700; letter-spacing: -0.01em; }
.vehicle-card .v-name { font-size: 12px; color: var(--text-secondary); }
.vehicle-card .v-badge { font-size: 11px; background: var(--apple-blue-light); color: var(--apple-blue); padding: 3px 10px; border-radius: 980px; font-weight: 600; }
.vehicle-card .v-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.vehicle-card .v-item { background: var(--apple-gray6); border-radius: 8px; padding: 6px 10px; }
.vehicle-card .v-item .vn { font-size: 14px; font-weight: 700; }
.vehicle-card .v-item .vl { font-size: 11px; color: var(--text-secondary); }
.vehicle-card .v-tip { font-size: 11px; color: var(--apple-blue); text-align: center; margin-top: 8px; opacity: 0.7; }

/* ===== 表格 ===== */
.table-box { overflow-x: auto; -webkit-overflow-scrolling: touch; }
table { width: 100%; border-collapse: collapse; font-size: 13px; min-width: 900px; }
th, td { border: 1px solid var(--apple-gray5); padding: 7px 9px; text-align: center; white-space: nowrap; }
th { background: rgba(0,113,227,0.06); color: var(--text); font-weight: 700; position: sticky; top: 0; }
tr { transition: background .15s; }
tr:nth-child(even) { background: rgba(0,0,0,0.015); }
tr:hover { background: rgba(0,113,227,0.05); }
td.num { font-variant-numeric: tabular-nums; }
td.money { font-variant-numeric: tabular-nums; }
td.neg { color: var(--apple-red); font-weight: 700; }
td.pos { color: var(--apple-green); font-weight: 700; }
.plate-a { color: var(--apple-blue); font-weight: 700; }
.plate-b { color: #af52de; font-weight: 700; }
.receipt-img { width: 110px; aspect-ratio: 155/313; object-fit: cover; border-radius: 6px; cursor: zoom-in; border: 1px solid var(--apple-gray5); background: #fff; display: block; }
.receipt-box { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 2px 0; }
.receipt-ops { display: flex; gap: 4px; }
.receipt-up { margin-top: 3px; }
.receipt-empty { color: var(--apple-gray); font-size: 12px; }
/* 使用教程：编号步骤 */
.guide-steps { counter-reset: gstep; display: flex; flex-direction: column; gap: 9px; }
.guide-step { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; line-height: 1.75; color: var(--text); }
.guide-step::before { counter-increment: gstep; content: counter(gstep); flex: none; width: 22px; height: 22px; border-radius: 50%; background: var(--apple-blue); color: #fff; font-size: 12px; font-weight: 700; display: flex; align-items: center; justify-content: center; margin-top: 2px; }
.guide-step b { color: var(--apple-blue); }
.guide-tip { font-size: 12px; color: var(--text-secondary); background: var(--apple-gray6); border-radius: 8px; padding: 8px 12px; margin-top: 10px; line-height: 1.7; }
/* 教程各部分标题：一色一段，方便快速定位 */
.guide-c1 .sec-title { color: #1d8a3f; } .guide-c1 .sec-title::after { background: linear-gradient(90deg, rgba(29,138,63,.3), transparent); }
.guide-c2 .sec-title { color: #0062c4; } .guide-c2 .sec-title::after { background: linear-gradient(90deg, rgba(0,98,196,.3), transparent); }
.guide-c3 .sec-title { color: #d97b00; } .guide-c3 .sec-title::after { background: linear-gradient(90deg, rgba(217,123,0,.3), transparent); }
.guide-c4 .sec-title { color: #8a3ab8; } .guide-c4 .sec-title::after { background: linear-gradient(90deg, rgba(138,58,184,.3), transparent); }
.guide-c5 .sec-title { color: #0f7b8f; } .guide-c5 .sec-title::after { background: linear-gradient(90deg, rgba(15,123,143,.3), transparent); }
.guide-c6 .sec-title { color: #d63447; } .guide-c6 .sec-title::after { background: linear-gradient(90deg, rgba(214,52,71,.3), transparent); }
.guide-c7 .sec-title { color: #b8860b; } .guide-c7 .sec-title::after { background: linear-gradient(90deg, rgba(184,134,11,.3), transparent); }
.row-actions { display: flex; gap: 4px; justify-content: center; }
.sum-row td { background: rgba(0,113,227,0.08) !important; font-weight: 800; }
.month-head td { background: rgba(0,113,227,0.04) !important; font-weight: 700; color: var(--apple-blue); }

/* ===== 登记表（复刻原始 Excel） ===== */
.stats-title {
  font-family: "宋体", SimSun, serif;
  font-size: 16pt;
  font-weight: 700;
  text-align: center;
  padding: 6px 0 10px 0;
  color: #000;
}
table.stats-table {
  width: 100%;
  border-collapse: collapse;
  font-family: "宋体", SimSun, serif;
  font-size: 11pt;
  min-width: 860px;
  background: #fff;
}
table.stats-table th, table.stats-table td {
  border: 1px solid #000;
  padding: 4px 6px;
  text-align: center;
  vertical-align: middle;
  height: 28px;
  white-space: nowrap;
  color: #000;
  background: #fff;
}
table.stats-table th { font-weight: 700; }
table.stats-table td.km, table.stats-table td.fuel { font-variant-numeric: tabular-nums; text-align: right; padding-right: 8px; }
table.stats-table td.reason { text-align: left; white-space: normal; min-width: 140px; }
table.stats-table td.dest { text-align: left; white-space: normal; min-width: 180px; }
table.stats-table tr.sum-row td { background: #fff !important; font-weight: 700; border-top: 2px solid #000; }
table.stats-table tr:hover td { background: #f5f5f5; }
table.stats-table td.sign { min-width: 60px; }

/* ===== 弹窗（Apple 风） ===== */
.modal-mask, .cfg-modal, .detail-modal {
  position: fixed; inset: 0; background: rgba(0,0,0,0.4);
  display: none; align-items: center; justify-content: center; z-index: 100;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
.modal-mask.show, .cfg-modal.show, .detail-modal.show { display: flex; animation: fadeIn .2s; }
.modal-mask img { max-width: 92vw; max-height: 88vh; border-radius: var(--radius-md); box-shadow: var(--shadow-lg); }
.cfg-box, .detail-box {
  background: rgba(255,255,255,0.95);
  border-radius: var(--radius-lg);
  padding: 26px;
  width: min(520px, 92vw);
  max-height: 85vh;
  overflow-y: auto;
  box-shadow: var(--shadow-lg);
  animation: scaleIn .25s ease;
}
.cfg-box h3, .detail-box h3 { margin-bottom: 14px; color: var(--text); font-size: 18px; }
.cfg-box .field { margin-bottom: 12px; }

/* ===== 工具条 ===== */
.toolbar { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.toolbar .spacer { flex: 1; }
.dm-group { font-size: 12px; font-weight: 700; color: var(--text-secondary); white-space: nowrap; }

/* ===== 两栏并排（汇总 + 月度里程统计） ===== */
.row-2col { display: flex; gap: 18px; align-items: stretch; }
.row-2col > .card { flex: 1 1 50%; min-width: 0; margin-bottom: 18px; }
@media (max-width: 820px) { .row-2col { flex-direction: column; } }

/* ===== 每日心情弹窗 ===== */
.greet-box {
  background: #fff; border-radius: var(--radius-lg); padding: 32px 28px;
  width: min(380px, 92vw); text-align: center; box-shadow: var(--shadow-lg);
  animation: scaleIn .3s ease;
}
.greet-week { font-size: 13px; color: var(--apple-blue); font-weight: 600; letter-spacing: 2px; }
.greet-date { font-size: 15px; color: var(--text-secondary); margin-top: 2px; }
.greet-emoji { font-size: 56px; margin: 14px 0 6px; animation: pop .5s ease; }
.greet-text { font-size: 19px; font-weight: 700; color: var(--text); line-height: 1.6; }
.greet-sub { font-size: 13px; color: var(--text-secondary); margin: 8px 0 18px; }

/* ===== 搜索框 ===== */
.search-bar { display: flex; gap: 8px; margin-bottom: 14px; flex-wrap: wrap; align-items: center; }
.search-bar input {
  flex: 1;
  min-width: 220px;
  padding: 9px 16px;
  border: 1px solid var(--apple-gray5);
  border-radius: 980px;
  font-size: 14px;
  background: rgba(255,255,255,0.9);
  outline: none;
  font-family: var(--font);
  transition: box-shadow .2s;
}
.search-bar input:focus { box-shadow: 0 0 0 4px rgba(0,113,227,0.12); border-color: var(--apple-blue); }

/* ===== Toast ===== */
.toast {
  position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%) translateY(20px);
  background: rgba(30,30,32,0.92);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  color: #fff; padding: 12px 24px; border-radius: 980px;
  font-size: 14px; z-index: 200; opacity: 0; pointer-events: none;
  transition: all .35s cubic-bezier(0.2, 0.9, 0.3, 1.2);
  box-shadow: var(--shadow-lg);
}
.toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }
.empty-tip { text-align: center; color: var(--text-secondary); padding: 30px 0; font-size: 14px; }

/* ===== 动画 ===== */
@keyframes fadeSlideUp { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
@keyframes fadeSlideDown { from { opacity: 0; transform: translateY(-14px); } to { opacity: 1; transform: translateY(0); } }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes scaleIn { from { opacity: 0; transform: scale(0.92); } to { opacity: 1; transform: scale(1); } }
@keyframes rowIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@keyframes pop { 0% { transform: scale(1); } 50% { transform: scale(1.06); } 100% { transform: scale(1); } }
@keyframes shake { 0%, 100% { transform: translateX(0); } 20%, 60% { transform: translateX(-4px); } 40%, 80% { transform: translateX(4px); } }
.pop { animation: pop .3s ease; }
.shake { animation: shake .4s ease; }
tr.row-in { animation: rowIn .3s ease; }
.stat .n, .vehicle-card .vn { transition: all .3s ease; }

/* ===== 月度图表 ===== */
.chart { display: flex; align-items: flex-end; gap: 10px; height: 120px; padding: 10px 4px 0; }
.chart-bar-wrap { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 6px; height: 100%; justify-content: flex-end; }
.chart-bar {
  width: 60%;
  max-width: 48px;
  background: linear-gradient(180deg, var(--apple-blue), #4d9ff0);
  border-radius: 6px 6px 2px 2px;
  min-height: 3px;
  transition: height .6s cubic-bezier(0.2, 0.8, 0.2, 1);
  box-shadow: 0 2px 6px rgba(0,113,227,0.3);
  position: relative;
}
.chart-bar:hover { background: linear-gradient(180deg, var(--apple-blue-dark), #5aa9f5); }
.chart-label { font-size: 11px; color: var(--text-secondary); }
.chart-value { font-size: 10px; color: var(--apple-blue); font-weight: 600; }

/* ===== 设置开关 ===== */
.switch-row { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; }
.switch { position: relative; width: 48px; height: 29px; display: inline-block; }
.switch input { opacity: 0; width: 0; height: 0; }
.slider {
  position: absolute; inset: 0; background: var(--apple-gray2);
  border-radius: 29px; transition: background .25s; cursor: pointer;
}
.slider::before {
  content: ""; position: absolute; height: 25px; width: 25px; left: 2px; top: 2px;
  background: #fff; border-radius: 50%; transition: transform .25s; box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}
.switch input:checked + .slider { background: var(--apple-green); }
.switch input:checked + .slider::before { transform: translateX(19px); }

/* ===== 打印 ===== */

/* ===== 各卡片区块专属配色（Apple 柔和色系） ===== */
.card-blue {
  background: linear-gradient(135deg, rgba(232,241,253,0.95), rgba(255,255,255,0.85));
  border-color: rgba(0,113,227,0.25);
}
.card-blue h2 { color: #0062c4; }
.card-green {
  background: linear-gradient(135deg, rgba(232,248,238,0.95), rgba(255,255,255,0.85));
  border-color: rgba(52,199,89,0.25);
}
.card-green h2 { color: #1d8a3f; }
.card-cyan {
  background: linear-gradient(135deg, rgba(230,247,249,0.95), rgba(255,255,255,0.85));
  border-color: rgba(90,200,220,0.3);
}
.card-cyan h2 { color: #0f7b8f; }
.card-purple {
  background: linear-gradient(135deg, rgba(243,236,251,0.95), rgba(255,255,255,0.85));
  border-color: rgba(175,82,222,0.25);
}
.card-purple h2 { color: #8a3ab8; }
.card-orange {
  background: linear-gradient(135deg, rgba(255,244,229,0.95), rgba(255,255,255,0.85));
  border-color: rgba(255,149,0,0.3);
}
.card-orange h2 { color: #d97b00; }
.card-yellow {
  background: linear-gradient(135deg, rgba(253,246,227,0.95), rgba(255,255,255,0.85));
  border-color: rgba(255,204,0,0.35);
}
.card-yellow h2 { color: #b8860b; }
.card-pink {
  background: linear-gradient(135deg, rgba(253,238,242,0.95), rgba(255,255,255,0.85));
  border-color: rgba(255,59,48,0.2);
}
.card-pink h2 { color: #d63447; }
/* 颜色卡片内部次要区块跟随背景 */
.card-blue .stat, .card-blue .vehicle-card { background: rgba(255,255,255,0.85); }
.card-green .stat { background: rgba(255,255,255,0.85); }
.card-purple .vehicle-card { background: rgba(255,255,255,0.9); }
.card-yellow .table-box { background: #fff; border-radius: var(--radius-sm); }
.card-pink tr:hover { background: rgba(255,59,48,0.04); }

/* ===== 首页导航与功能模块 ===== */
.app-nav { display:flex; gap:8px; flex-wrap:wrap; margin:0 0 18px; padding:10px; background:rgba(255,255,255,.72); border:1px solid rgba(255,255,255,.85); border-radius:var(--radius-md); box-shadow:var(--shadow-sm); }
.app-nav button { border:0; background:transparent; color:var(--text-secondary); padding:8px 13px; border-radius:980px; cursor:pointer; font:600 13px var(--font); transition:background .25s ease,color .25s ease,transform .15s ease,box-shadow .25s ease; }
.app-nav button:hover { background:rgba(0,113,227,.12); color:var(--apple-blue); }
.app-nav button.active { background:var(--apple-blue); color:#fff; box-shadow:0 2px 10px rgba(0,113,227,.35); }
.app-nav button:active { transform:scale(.95); }

/* ===== 车辆中心（合并模块：筛选 + 标签页 + 排行榜） ===== */
.vc-filter { display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end; padding:12px 14px; margin-bottom:10px; background:rgba(0,0,0,.015); border:1px solid var(--apple-gray5); border-radius:var(--radius-sm); }
.vc-filter .field { margin:0; }
.vc-filter .field label { font-size:11px; color:var(--text-secondary); }
.vc-tabs { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:14px; padding-bottom:10px; border-bottom:1px solid var(--apple-gray5); }
.vc-tab { border:1px solid var(--apple-gray5); background:#fff; color:var(--text-secondary); padding:7px 14px; border-radius:980px; cursor:pointer; font:600 13px var(--font); transition:background .2s,color .2s,transform .15s; }
.vc-tab:hover { color:var(--apple-blue); background:rgba(0,113,227,.06); }
.vc-tab:active { transform:scale(.96); }
.vc-tab.active { background:var(--apple-blue); border-color:var(--apple-blue); color:#fff; box-shadow:0 2px 8px rgba(0,113,227,.28); }
.vc-pane { min-height:120px; }
/* 标签页内的子卡片：做成轻量分块，避免双层大阴影 */
.vc-pane .card { box-shadow:none; border:1px solid var(--apple-gray5); padding:14px 16px; margin-bottom:0; backdrop-filter:none; -webkit-backdrop-filter:none; }
.vc-pane .card h2 { font-size:15px; margin-bottom:10px; }
.vc-pane .row-2col > .card { margin-bottom:0; }
.vc-pane .row-2col { margin-bottom:12px; }
.vc-rankbar { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:10px; }
/* 异常预警 */
.vc-alerts { margin-bottom:12px; border:1px solid var(--apple-gray5); border-radius:var(--radius-sm); padding:12px 14px; background:#fff; }
.vc-alerts h4 { font-size:14px; margin:0 0 8px; }
.vc-alert { display:flex; gap:8px; align-items:flex-start; font-size:12.5px; line-height:1.6; padding:6px 0; border-top:1px dashed rgba(0,0,0,.07); }
.vc-alert:first-of-type { border-top:0; }
.vc-alert .dot { width:8px; height:8px; border-radius:50%; flex:none; margin-top:6px; }
.vc-alert.red .dot { background:var(--apple-red); }
.vc-alert.orange .dot { background:var(--apple-orange); }
.vc-alert.blue .dot { background:var(--apple-blue); }
.vc-alert.red b { color:var(--apple-red); }
.vc-alert.orange b { color:var(--apple-orange); }
/* 月度环比 */
.vc-mom { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:12px; }
.vc-mom-item { flex:1 1 150px; background:#fff; border:1px solid var(--apple-gray5); border-radius:10px; padding:10px 12px; box-shadow:0 1px 2px rgba(0,0,0,.04); }
.vc-mom-item .k { font-size:11px; color:var(--text-secondary); }
.vc-mom-item .v { font-size:17px; font-weight:700; margin-top:2px; }
.vc-mom-item .d { font-size:11.5px; margin-top:2px; font-variant-numeric:tabular-nums; }
.vc-mom-item .d.up { color:var(--apple-red); }
.vc-mom-item .d.down { color:var(--apple-green); }
.vc-mom-item .d.flat { color:var(--text-secondary); }
/* 单车画像小条形 */
.vc-bar { display:flex; align-items:center; gap:8px; font-size:12px; margin-bottom:5px; }
.vc-bar .lb { width:104px; flex:none; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.vc-bar .br { flex:1; height:9px; border-radius:980px; background:rgba(0,0,0,.06); overflow:hidden; }
.vc-bar .fi { height:100%; border-radius:980px; background:var(--apple-blue); }
.vc-bar .vl { flex:none; width:74px; text-align:right; font-variant-numeric:tabular-nums; color:var(--text-secondary); }

/* ===== 屏幕浏览态表格（打印走独立 iframe，不受影响） ===== */
.stats-table, #ledger { border-collapse:separate; border-spacing:0; font-variant-numeric:tabular-nums; }
.stats-table th, #ledger th { background:rgba(0,0,0,.035); color:var(--text-secondary); font-weight:600; letter-spacing:.2px; }
.stats-table td, #ledger td { border-color:rgba(0,0,0,.06); }
.stats-table tbody tr:nth-child(even) td, #ledger tbody tr:nth-child(even) td { background:rgba(0,0,0,.015); }
.stats-table tbody tr:hover td, #ledger tbody tr:hover td { background:var(--apple-blue-light); }
.stats-table td.money, .stats-table td.num, #ledger td.money, #ledger td.num { font-variant-numeric:tabular-nums; }

/* ===== 暗色 / 夜间模式 ===== */
html[data-theme="dark"] {
  --text:#f5f5f7; --text-secondary:#a1a1a6; --muted:#98989d;
  --apple-gray5:#3a3a3c; --apple-gray6:#2c2c2e;
  --card-bg:rgba(28,28,30,.86);
  --surface:#1c1c1e;
  --bg-gradient:linear-gradient(180deg,#000 0%,#161618 100%);
  --shadow-sm:0 1px 3px rgba(0,0,0,.5); --shadow-md:0 4px 14px rgba(0,0,0,.5); --shadow-lg:0 12px 40px rgba(0,0,0,.6);
}
html[data-theme="dark"] body { color:var(--text); }
html[data-theme="dark"] .card { border-color:rgba(255,255,255,.08); }
html[data-theme="dark"] .card-green, html[data-theme="dark"] .card-cyan, html[data-theme="dark"] .card-purple,
html[data-theme="dark"] .card-yellow, html[data-theme="dark"] .card-pink, html[data-theme="dark"] .card-orange, html[data-theme="dark"] .card-blue {
  background:var(--card-bg);
}
html[data-theme="dark"] input, html[data-theme="dark"] select, html[data-theme="dark"] textarea {
  background:#1c1c1e; color:var(--text); border-color:var(--apple-gray5);
}
html[data-theme="dark"] .btn-ghost { background:rgba(255,255,255,.07); color:var(--text); }
html[data-theme="dark"] .app-nav { background:rgba(28,28,30,.72); border-color:rgba(255,255,255,.08); }
html[data-theme="dark"] .stats-table th, html[data-theme="dark"] #ledger th { background:rgba(255,255,255,.06); color:var(--text-secondary); }
html[data-theme="dark"] .stats-table td, html[data-theme="dark"] #ledger td { border-color:rgba(255,255,255,.07); }
html[data-theme="dark"] .stats-table tbody tr:nth-child(even) td, html[data-theme="dark"] #ledger tbody tr:nth-child(even) td { background:rgba(255,255,255,.02); }
html[data-theme="dark"] .stats-table tbody tr:hover td, html[data-theme="dark"] #ledger tbody tr:hover td { background:rgba(10,132,255,.14); }
html[data-theme="dark"] .cfg-box, html[data-theme="dark"] .detail-box { background:rgba(28,28,30,.96); }
html[data-theme="dark"] .auto-tip { background:rgba(255,255,255,.05); color:var(--text-secondary); }
html[data-theme="dark"] .vc-rank-row, html[data-theme="dark"] .vc-mom-item, html[data-theme="dark"] .vc-alerts { background:#1c1c1e; border-color:var(--apple-gray5); }
html[data-theme="dark"] .table-box { background:#1c1c1e; }
/* 暗色补全：把所有写死浅色背景的组件翻成深色，避免"白字白底"看不见 */
html[data-theme="dark"] .form-section,
html[data-theme="dark"] .dest-multi .dest-tags,
html[data-theme="dark"] .dest-tag,
html[data-theme="dark"] .dest-opt,
html[data-theme="dark"] .empty-tip,
html[data-theme="dark"] .foot-tip,
html[data-theme="dark"] .guide-step,
html[data-theme="dark"] .home-link,
html[data-theme="dark"] .stat,
html[data-theme="dark"] .vehicle-card,
html[data-theme="dark"] .chart,
html[data-theme="dark"] .vc-tab,
html[data-theme="dark"] .vc-rankbar button,
html[data-theme="dark"] .pp-key,
html[data-theme="dark"] .receipt-box { background:#1c1c1e; color:var(--text); }
html[data-theme="dark"] table.stats-table td, html[data-theme="dark"] #ledger td { color:var(--text); }
html[data-theme="dark"] table.stats-table tr.sum-row td { background:#232326 !important; border-top-color:rgba(255,255,255,.3); }
html[data-theme="dark"] table.stats-table tr:hover td, html[data-theme="dark"] #ledger tr:hover td { background:rgba(255,255,255,.06); }
html[data-theme="dark"] .month-head td { background:#232326; color:var(--text); }
html[data-theme="dark"] .sec-title { color:var(--text); }
html[data-theme="dark"] label { color:var(--text-secondary); }
html[data-theme="dark"] .switch .slider { background:#3a3a3c; }
html[data-theme="dark"] .chart-value, html[data-theme="dark"] .chart-label { color:var(--text-secondary); }
html[data-theme="dark"] .vc-rank-no { background:rgba(255,255,255,.08); color:var(--text-secondary); }
html[data-theme="dark"] .vc-rank-row.top1 .vc-rank-no { background:#4a3b12; color:#ffd76a; }
html[data-theme="dark"] .vc-rank-row.top2 .vc-rank-no { background:#3a3a3c; color:#d0d0d5; }
html[data-theme="dark"] .vc-rank-row.top3 .vc-rank-no { background:#4a3527; color:#e0b08a; }
html[data-theme="dark"] .home-hero { background:linear-gradient(135deg,rgba(10,132,255,.10),rgba(28,28,30,.92)); }
html[data-theme="dark"] .receipt-img { background:#2c2c2e; }
html[data-theme="dark"] .btn-primary, html[data-theme="dark"] .btn-danger { color:#fff; }
/* 高特异性覆盖：表单控件 / 屏幕表格 / 下拉面板 / 心情弹窗 的写死浅色 */
html[data-theme="dark"] .form-section .field input,
html[data-theme="dark"] .form-section .field select,
html[data-theme="dark"] .form-section .field textarea,
html[data-theme="dark"] .dest-add-row input { background:#1c1c1e !important; color:var(--text) !important; }
html[data-theme="dark"] table.stats-table, html[data-theme="dark"] #ledger { background:var(--surface); color:var(--text); }
html[data-theme="dark"] table.stats-table th, html[data-theme="dark"] #ledger th { color:var(--text-secondary); }
/* 登记表单元格写死了 background:#fff;color:#000，暗色下必须连背景一起翻 */
html[data-theme="dark"] table.stats-table th,
html[data-theme="dark"] table.stats-table td,
html[data-theme="dark"] #ledger th,
html[data-theme="dark"] #ledger td { background:var(--surface); color:var(--text); border-color:rgba(255,255,255,.16); }
html[data-theme="dark"] table.stats-table tr.sum-row td { background:#232326 !important; border-top-color:rgba(255,255,255,.35); }
html[data-theme="dark"] table.stats-table tr:hover td, html[data-theme="dark"] #ledger tr:hover td { background:rgba(255,255,255,.06); }
html[data-theme="dark"] .stats-title { color:var(--text); }
html[data-theme="dark"] .sign-label { color:var(--text); }
html[data-theme="dark"] .dest-panel { background:#1c1c1e; }
html[data-theme="dark"] .dest-opt:hover { background:rgba(255,255,255,.06); }
html[data-theme="dark"] .greet-box { background:#1c1c1e; color:var(--text); }

/* ===== 表单步骤徽章 ===== */
.step-no { display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px; border-radius:50%; background:var(--apple-blue); color:#fff; font-size:12px; font-weight:700; margin-right:6px; vertical-align:1px; }

/* ===== SVG 图表 ===== */
.svg-chart { width:100%; height:auto; display:block; }
.svg-chart .bar { transition:opacity .2s; cursor:pointer; }
.svg-chart .bar:hover { opacity:.82; }
.svg-tip { position:absolute; pointer-events:none; background:rgba(20,20,22,.92); color:#fff; font-size:11.5px; padding:5px 8px; border-radius:8px; transform:translate(-50%,-115%); white-space:nowrap; opacity:0; transition:opacity .15s; }
.vc-rankbar button { border:1px solid var(--apple-gray5); background:#fff; color:var(--text-secondary); padding:6px 12px; border-radius:980px; cursor:pointer; font:600 12px var(--font); transition:background .2s,color .2s; }
.vc-rankbar button:hover { color:var(--apple-blue); }
.vc-rankbar button.active { background:var(--text); border-color:var(--text); color:#fff; }
.vc-rank-row { display:flex; align-items:center; gap:10px; padding:9px 12px; background:#fff; border:1px solid var(--apple-gray5); border-radius:10px; box-shadow:0 1px 2px rgba(0,0,0,.04); }
.vc-rank-no { width:26px; height:26px; flex:none; border-radius:50%; background:rgba(0,0,0,.05); color:var(--text-secondary); font-size:12px; font-weight:700; display:flex; align-items:center; justify-content:center; }
.vc-rank-row.top1 .vc-rank-no { background:#fff3d6; color:#8a6100; }
.vc-rank-row.top2 .vc-rank-no { background:#f0f0f2; color:#5b5b60; }
.vc-rank-row.top3 .vc-rank-no { background:#f7e9df; color:#8a5a2b; }
.vc-rank-name { flex:none; width:150px; min-width:0; }
.vc-rank-name b { display:block; font-size:13px; letter-spacing:.5px; }
.vc-rank-name span { font-size:11px; color:var(--text-secondary); }
.vc-rank-bar { flex:1; min-width:60px; height:10px; border-radius:980px; background:rgba(0,0,0,.06); overflow:hidden; }
.vc-rank-fill { height:100%; border-radius:980px; background:var(--apple-blue); transition:width .45s ease; }
.vc-rank-val { flex:none; width:120px; text-align:right; font-size:13px; font-weight:700; font-variant-numeric:tabular-nums; }
.vc-rank-sub { flex:none; width:118px; text-align:right; font-size:11px; color:var(--text-secondary); font-variant-numeric:tabular-nums; }
@media (max-width: 700px) { .vc-rank-sub { display:none; } .vc-rank-name { width:104px; } .vc-rank-val { width:92px; } }
/* 模块切换平滑过渡 */
@keyframes moduleIn { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
.module-enter { animation: moduleIn .32s cubic-bezier(.2,.8,.2,1); }
[data-app-module][hidden] { display:none !important; }
.home-hero { background:linear-gradient(135deg,rgba(0,113,227,.12),rgba(255,255,255,.85)); }
.home-hero p { color:var(--text-secondary); font-size:14px; margin:-4px 0 16px; }
/* 首页今日油价：与首页其他区块相同的长方形卡片；刷新卡可点击 */
.oil-refresh { cursor:pointer; }
.oil-refresh .n { color:var(--apple-blue); font-size:16px; }
.oil-refresh:hover { border-color:rgba(0,113,227,.35); }
/* 头部背景设置：预设缩略图 */
.hbg-item { text-align:center; }
.hbg-item span { display:block; font-size:11px; color:var(--text-secondary); margin-top:4px; }
.hbg-swatch { width:64px; height:36px; border-radius:10px; border:2px solid rgba(0,0,0,.06); cursor:pointer; box-shadow:var(--shadow-sm); transition:transform .15s ease,border-color .2s ease,box-shadow .2s ease; padding:0; }
.hbg-swatch:hover { transform:scale(1.06); }
.hbg-swatch.active { border-color:var(--apple-blue); box-shadow:0 0 0 3px rgba(0,113,227,.2); }
/* 车牌选择屏幕键盘 */
.pp-row { display:flex; gap:4px; justify-content:center; flex-wrap:wrap; margin-bottom:6px; }
.pp-key { min-width:30px; height:34px; border:1px solid var(--apple-gray5); border-bottom-width:2px; border-radius:6px; background:#fff; font:600 14px var(--font); cursor:pointer; padding:0 4px; transition:background .15s,transform .1s; color:var(--text); }
.pp-key:hover { background:var(--apple-blue-light); }
.pp-key:active { transform:scale(.94); }
.pp-tool { min-width:64px; background:var(--apple-gray6); }
#ppPreview { text-align:center; font-size:22px; font-weight:700; letter-spacing:2px; background:linear-gradient(180deg,#fff,#eef4ff); border:1px solid rgba(0,113,227,.35); border-radius:10px; padding:10px; margin-bottom:6px; min-height:48px; }


@media print {
  body { background: #fff; }
  .no-print { display: none !important; }
  [data-app-module][hidden] { display:block !important; }
  .wrap { max-width: none; padding: 0; }
  .card { box-shadow: none; border: none; padding: 0; backdrop-filter: none; }
  .table-box { overflow: visible; }
  table { min-width: 0; font-size: 11px; }
  th, td { padding: 3px 5px; }
  .receipt-img, .row-actions, .receipt-empty, .receipt-ops, .receipt-up { display: none; }
  @page { size: A4 landscape; margin: 10mm; }
  .stats-title { font-size: 14pt; }
  table.stats-table { font-size: 10pt; min-width: 0; }
  table.stats-table th, table.stats-table td { height: 24px; }
}




  /* ===== 台账明细：紧凑单行（仅屏幕预览；导出 xlsx 与打印走独立逻辑，不受影响） ===== */
  #ledger { min-width: 0; width: 100%; }
  #ledger th { white-space: nowrap; padding: 3px 3px; font-size: 10.5px; }
  #ledger td { padding: 3px 3px; font-size: 11.5px; }
  #ledger .receipt-box { flex-direction: row; align-items: center; gap: 3px; padding: 0; }
  #ledger .receipt-img { width: 36px; height: 34px; aspect-ratio: auto; object-fit: cover; object-position: top; border-radius: 4px; }
  #ledger .receipt-ops { display: flex; flex-direction: column; gap: 2px; }
  #ledger .receipt-ops .btn { padding: 0 4px; font-size: 10px; line-height: 15px; min-height: 16px; }
  #ledger .receipt-empty { font-size: 10px; line-height: 1.3; }
  #ledger .receipt-up { font-size: 10px; padding: 1px 5px; }
  #ledger .row-actions .btn { padding: 1px 6px; font-size: 11px; }
  #ledger .month-head td, #ledger .sum-row td { font-size: 12px; }

  /* ===== 台账明细自定义显示：列隐藏 + 页面宽度自动调节 ===== */
  body.ledger-view-mid #ledger th:nth-child(6), body.ledger-view-mid #ledger td:nth-child(6),
  body.ledger-view-mid #ledger th:nth-child(7), body.ledger-view-mid #ledger td:nth-child(7),
  body.ledger-view-mid #ledger th:nth-child(8), body.ledger-view-mid #ledger td:nth-child(8),
  body.ledger-view-mid #ledger th:nth-child(9), body.ledger-view-mid #ledger td:nth-child(9),
  body.ledger-view-mid #ledger th:nth-child(11), body.ledger-view-mid #ledger td:nth-child(11),
  body.ledger-view-mid #ledger th:nth-child(16), body.ledger-view-mid #ledger td:nth-child(16) { display: none; }
  body.ledger-view-mini #ledger th:nth-child(6), body.ledger-view-mini #ledger td:nth-child(6),
  body.ledger-view-mini #ledger th:nth-child(7), body.ledger-view-mini #ledger td:nth-child(7),
  body.ledger-view-mini #ledger th:nth-child(8), body.ledger-view-mini #ledger td:nth-child(8),
  body.ledger-view-mini #ledger th:nth-child(9), body.ledger-view-mini #ledger td:nth-child(9),
  body.ledger-view-mini #ledger th:nth-child(11), body.ledger-view-mini #ledger td:nth-child(11),
  body.ledger-view-mini #ledger th:nth-child(13), body.ledger-view-mini #ledger td:nth-child(13),
  body.ledger-view-mini #ledger th:nth-child(16), body.ledger-view-mini #ledger td:nth-child(16),
  body.ledger-view-mini #ledger th:nth-child(17), body.ledger-view-mini #ledger td:nth-child(17) { display: none; }
  /* ===== 首页数据大屏 ===== */
  .dash-title { display:flex; align-items:baseline; gap:10px; font-size:23px; font-weight:800; letter-spacing:.5px; background:linear-gradient(90deg,#1e3a8a,#2563eb); -webkit-background-clip:text; background-clip:text; color:transparent; margin:2px 0 0; }
  .dash-title small { font-size:12px; color:var(--text-secondary); font-weight:400; -webkit-text-fill-color:var(--text-secondary); }
  .dash-kpis { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; margin:14px 0 2px; }
  .dash-kpi { position:relative; overflow:hidden; border-radius:14px; padding:14px 16px 13px; background:linear-gradient(160deg,#fff,rgba(255,255,255,.82)); border:1px solid rgba(0,0,0,.06); box-shadow:0 4px 14px rgba(16,24,40,.07); }
  .dash-kpi::after { content:''; position:absolute; right:-24px; top:-24px; width:80px; height:80px; border-radius:50%; background:var(--kpi-glow,rgba(0,113,227,.10)); }
  .dash-kpi-ic { font-size:15px; }
  .dash-kpi-n { font-size:23px; font-weight:800; letter-spacing:-.02em; margin-top:2px; }
  .dash-kpi-l { font-size:11.5px; color:var(--text-secondary); margin-top:2px; }
  .dash-kpi.orange { --kpi-glow:rgba(255,149,0,.16); } .dash-kpi.orange .dash-kpi-n { color:#ff9500; }
  .dash-kpi.green { --kpi-glow:rgba(52,199,89,.16); } .dash-kpi.green .dash-kpi-n { color:#34c759; }
  .dash-kpi.blue { --kpi-glow:rgba(0,113,227,.16); } .dash-kpi.blue .dash-kpi-n { color:#0071e3; }
  .dash-kpi.purple { --kpi-glow:rgba(175,82,222,.16); } .dash-kpi.purple .dash-kpi-n { color:#af52de; }
  .dash-kpi.cyan { --kpi-glow:rgba(50,173,230,.18); } .dash-kpi.cyan .dash-kpi-n { color:#32ade6; }
  .dash-kpi.gold { --kpi-glow:rgba(255,204,0,.18); } .dash-kpi.gold .dash-kpi-n { color:#d9a400; }
  .dash-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:14px; }
  @media (max-width: 900px) { .dash-grid { grid-template-columns:1fr; } }
  .dash-card { border:1px solid rgba(0,0,0,.07); border-radius:14px; padding:14px 16px; background:linear-gradient(180deg,#fff,rgba(255,255,255,.86)); box-shadow:0 3px 12px rgba(16,24,40,.05); }
  .dash-card-t { font-size:14px; font-weight:700; margin-bottom:10px; display:flex; align-items:center; gap:6px; }
  .dash-rank { display:flex; flex-direction:column; gap:9px; }
  .dash-rank-item { display:flex; align-items:center; gap:8px; font-size:12.5px; }
  .dash-rank-no { width:20px; height:20px; border-radius:6px; background:var(--apple-gray5); color:var(--text-secondary); display:flex; align-items:center; justify-content:center; font-size:11.5px; font-weight:700; flex:none; }
  .dash-rank-no.top { background:linear-gradient(135deg,#ff9500,#ff3b30); color:#fff; }
  .dash-rank-name { width:96px; flex:none; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .dash-rank-bar { flex:1; height:9px; background:rgba(0,0,0,.06); border-radius:999px; overflow:hidden; }
  .dash-rank-bar i { display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,#0071e3,#5ac8fa); }
  .dash-rank-val { flex:none; font-size:11.5px; color:var(--text-secondary); }
  .dash-latest { display:flex; flex-direction:column; gap:6px; max-height:212px; overflow:auto; }
  .dash-latest-item { display:flex; align-items:center; gap:8px; font-size:12.5px; padding:6px 8px; border-radius:8px; background:rgba(0,0,0,.025); }
  .dash-latest-date { flex:none; color:var(--text-secondary); font-size:11.5px; }
  .dash-latest-plate { flex:none; font-weight:700; }
  .dash-latest-reason { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .dash-latest-num { flex:none; font-size:11.5px; color:var(--text-secondary); }
  html[data-theme='dark'] .dash-kpi, html[data-theme='dark'] .dash-card { background:linear-gradient(160deg,rgba(255,255,255,.06),rgba(255,255,255,.03)); border-color:rgba(255,255,255,.09); }
  /* ===== 录入表单紧凑 ===== */
  .form-section .sec-grid { gap:8px 10px; }
  .form-section .field { min-width:0; }
  .form-section .field label { font-size:11.5px; margin-bottom:3px; }
  .form-section .field input, .form-section .field select { padding:5px 9px; font-size:13px; }
  .form-layout { gap:14px; }
  .form-col { gap:12px; }
  /* ===== 首页油价大方框 ===== */
  .oil-card { margin-top:14px; }
  .oil-meta { font-size:11.5px; color:var(--text-secondary); font-weight:400; margin-left:6px; }
  .oil-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:10px; }
  .oil-item { display:flex; align-items:center; justify-content:space-between; padding:9px 14px; border-radius:10px; background:rgba(0,0,0,.03); }
  .oil-name { font-size:13px; color:var(--text-secondary); }
  .oil-val { font-size:17px; font-weight:800; }
  html[data-theme='dark'] .oil-item { background:rgba(255,255,255,.05); }
  /* ===== 月度里程统计 SVG 自适应（修复图表溢出卡片） ===== */
  #monthChart { display:block; height:auto; min-height:180px; }
  #monthChart .svg-chart { width:100%; height:auto; max-width:720px; margin:0 auto; display:block; }
  /* ===== 数据管理精简 ===== */
  .dm-hero { display:flex; gap:20px; flex-wrap:wrap; align-items:flex-start; margin-bottom:12px; }
  .dm-hero-btns { display:flex; gap:12px; flex-wrap:wrap; }
  .dm-btn-big { padding:15px 28px; font-size:15px; border-radius:12px; box-shadow:0 4px 14px rgba(0,113,227,.25); }
  .dm-btn-recover { background:linear-gradient(135deg,#34c759,#30b0c7); border:none; color:#fff; box-shadow:0 4px 14px rgba(52,199,89,.25); }
  .dm-btn-recover:hover { filter:brightness(1.05); }
  .dm-hero-tips { flex:1; min-width:340px; font-size:12.5px; color:var(--text-secondary); line-height:1.9; }
  .dm-row { display:flex; gap:12px; flex-wrap:wrap; align-items:center; border-top:1px dashed var(--apple-gray5); padding-top:10px; }
  .dm-adv { margin-top:10px; border-top:1px dashed var(--apple-gray5); padding-top:8px; }
  .dm-adv summary { cursor:pointer; font-size:13px; color:var(--text-secondary); padding:4px 0; user-select:none; }
  .dm-adv summary:hover { color:var(--apple-blue); }
  .dm-adv-btns { display:flex; gap:12px; flex-wrap:wrap; margin-top:10px; }
  /* ===== 数据管理精简 ===== */
  .dm-hero { display:flex; gap:20px; flex-wrap:wrap; align-items:flex-start; margin-bottom:12px; }
  .dm-hero-btns { display:flex; gap:12px; flex-wrap:wrap; }
  .dm-btn-big { padding:15px 28px; font-size:15px; border-radius:12px; box-shadow:0 4px 14px rgba(0,113,227,.25); }
  .dm-btn-recover { background:linear-gradient(135deg,#34c759,#30b0c7); border:none; color:#fff; box-shadow:0 4px 14px rgba(52,199,89,.25); }
  .dm-btn-recover:hover { filter:brightness(1.05); }
  .dm-hero-tips { flex:1; min-width:340px; font-size:12.5px; color:var(--text-secondary); line-height:1.9; }
  .dm-row { display:flex; gap:12px; flex-wrap:wrap; align-items:center; border-top:1px dashed var(--apple-gray5); padding-top:10px; }
  .dm-adv { margin-top:10px; border-top:1px dashed var(--apple-gray5); padding-top:8px; }
  .dm-adv summary { cursor:pointer; font-size:13px; color:var(--text-secondary); padding:4px 0; user-select:none; }
  .dm-adv summary:hover { color:var(--apple-blue); }
  .dm-adv-btns { display:flex; gap:12px; flex-wrap:wrap; margin-top:10px; }
:root{
  --hud-strong:#ffffff; --hud-tip-bg:rgba(4,12,24,.92); --hud-backdrop:rgba(4,11,24,.8); --hud-th-bg:rgba(11,21,38,.96); --hud-btn-fg:#04121f; --hud-shadow:rgba(0,0,0,.55); --hud-kpi-ico-bg:rgba(103,232,249,.1); --hud-kpi-ico-bd:rgba(103,232,249,.2); --hud-ok-fg:#9df3cd; --hud-ok-bd:rgba(52,211,153,.4); --hud-warn-fg:#ffd98a; --hud-warn-bd:rgba(251,191,36,.4); --hud-card1:rgba(255,255,255,.055); --hud-card2:rgba(255,255,255,.02);
  --hud-a1:#67e8f9; --hud-a2:#c084fc; --hud-a2s:rgba(192,132,252,.6); --hud-warn:#fbbf24;
  --hud-a1-05:rgba(103,232,249,.05); --hud-a1-10:rgba(103,232,249,.1); --hud-a1-12:rgba(103,232,249,.12); --hud-a1-16:rgba(103,232,249,.16);
  --hud-a1-20:rgba(103,232,249,.2); --hud-a1-25:rgba(103,232,249,.25); --hud-a1-28:rgba(103,232,249,.28); --hud-a1-35:rgba(103,232,249,.35);
  --hud-a1-40:rgba(103,232,249,.4); --hud-a1-45:rgba(103,232,249,.45); --hud-a1-50:rgba(103,232,249,.5); --hud-a1-70:rgba(103,232,249,.7); --hud-a1-85:rgba(103,232,249,.85);
  --hud-a2-18:rgba(168,85,247,.18); --hud-a2-22:rgba(168,85,247,.22); --hud-a2-90:rgba(168,85,247,.9);
  --hud-n-08:rgba(120,200,255,.08); --hud-n-12:rgba(120,200,255,.13); --hud-n-16:rgba(120,200,255,.17); --hud-n-22:rgba(120,200,255,.22); --hud-n-35:rgba(120,200,255,.34); --hud-n-55:rgba(120,200,255,.52);
  --hud-grid:rgba(120,200,255,.075); --hud-ringbg:rgba(120,200,255,.15);
  --hud-t0:rgba(214,236,255,.92); --hud-t1:rgba(168,208,242,.82); --hud-t2:rgba(150,195,235,.66); --hud-t3:rgba(142,186,226,.55);
  --hud-bg1:#060b16; --hud-bg2:#0a1224; --hud-bg3:#070d1a; --hud-panel1:rgba(10,24,44,.74); --hud-panel2:rgba(7,16,32,.6);
  --hud-bar:rgba(103,232,249,.88); --hud-bar2:rgba(168,85,247,.92); --hud-rankbar:rgba(120,200,255,.14);
  --hud-glow-strong:rgba(103,232,249,.2); --hud-glow-2:rgba(168,85,247,.18); --hud-glow-soft:rgba(103,232,249,.34);
  --hud-border:rgba(103,232,249,.27); --hud-border-2:rgba(103,232,249,.16); --hud-chipbg:rgba(103,232,249,.1); --hud-chipbtn:rgba(103,232,249,.12);
}
/* ============ 首页数据中枢 HUD（科幻风大屏，固定深色，不随主题变化） ============ */
.hud-root{padding:0 !important;background:none !important;border:0 !important;box-shadow:none !important;animation:none !important;overflow:visible !important;}
.hud{position:relative;overflow:hidden;border-radius:var(--radius-lg);padding:18px 18px 14px;color:var(--hud-t0);background:radial-gradient(1200px 420px at 12% -10%,var(--hud-a1-20),transparent 60%),radial-gradient(900px 420px at 92% 0%,var(--hud-a2-18),transparent 62%),linear-gradient(160deg,var(--hud-bg1) 0%,var(--hud-bg2) 45%,var(--hud-bg3) 100%);border:1px solid var(--hud-n-22);box-shadow:0 18px 50px var(--hud-shadow),inset 0 0 60px var(--hud-a1-05);font-variant-numeric:tabular-nums;}
.hud-grid-bg{position:absolute;left:0;right:0;top:-88px;bottom:0;pointer-events:none;opacity:.5;background-image:linear-gradient(var(--hud-grid) 1px,transparent 1px),linear-gradient(90deg,var(--hud-grid) 1px,transparent 1px);background-size:44px 44px;animation:hudPan 18s linear infinite;will-change:transform;}
.hud-scan{position:absolute;left:0;right:0;height:130px;pointer-events:none;background:linear-gradient(180deg,transparent,var(--hud-a1-10) 45%,var(--hud-a1-05) 70%,transparent);animation:hudScan 7.5s cubic-bezier(.4,0,.6,1) infinite;}
.hud-glow{position:absolute;right:-90px;top:-90px;width:320px;height:320px;pointer-events:none;background:radial-gradient(circle,var(--hud-a1-16),transparent 65%);animation:hudFloat 9s ease-in-out infinite;}
.hud-top{position:relative;display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;padding-bottom:12px;border-bottom:1px solid var(--hud-n-16);}
.hud-brand{display:flex;align-items:center;gap:12px;}
.hud-logo{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;font-size:20px;color:var(--hud-a1);background:linear-gradient(145deg,var(--hud-a1-25),var(--hud-a2-22));border:1px solid var(--hud-a1-45);box-shadow:0 0 18px var(--hud-a1-35),inset 0 0 12px var(--hud-a1-25);}
.hud-title{font-size:19px;font-weight:700;letter-spacing:.04em;background:linear-gradient(90deg,#ffffff,var(--hud-a1) 55%,var(--hud-a2));-webkit-background-clip:text;background-clip:text;color:transparent;}
.hud-sub{font-size:11px;letter-spacing:.16em;color:var(--hud-t1);margin-top:3px;text-transform:uppercase;}
.hud-chips{display:flex;gap:8px;flex-wrap:wrap;}
.hud-chip{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;padding:5px 10px;border-radius:980px;color:var(--hud-t1);background:var(--hud-n-08);border:1px solid var(--hud-n-22);}
.hud-chip i{width:7px;height:7px;border-radius:50%;background:#34d399;box-shadow:0 0 8px #34d399;animation:hudPulse 2.2s ease-in-out infinite;}
.hud-chip.ok{border-color:var(--hud-ok-bd);color:var(--hud-ok-fg);}
.hud-chip.warn{border-color:var(--hud-warn-bd);color:var(--hud-warn-fg);}
.hud-kpis{position:relative;display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:10px;margin-top:14px;}
.hud-kpi{position:relative;display:flex;gap:10px;align-items:center;padding:12px 12px 11px;border-radius:14px;background:linear-gradient(150deg,var(--hud-card1),var(--hud-card2));border:1px solid var(--hud-n-16);overflow:hidden;}
.hud-kpi::after{content:"";position:absolute;inset:0;border-radius:14px;pointer-events:none;box-shadow:inset 0 0 22px var(--hud-a1-05);}
.hud-kc{position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--hud-a1),var(--hud-a2));opacity:.9;}
.hud-kpi.c1 .hud-kc{background:linear-gradient(180deg,var(--hud-a1),var(--hud-a2))}
.hud-kpi.c2 .hud-kc{background:linear-gradient(180deg,var(--hud-a1),var(--hud-a1-50))}
.hud-kpi.c3 .hud-kc{background:linear-gradient(180deg,var(--hud-warn),var(--hud-a2))}
.hud-kpi.c4 .hud-kc{background:linear-gradient(180deg,var(--hud-a2),var(--hud-a1))}
.hud-kpi.c5 .hud-kc{background:linear-gradient(180deg,var(--hud-a1-70),var(--hud-a2))}
.hud-kpi.c6 .hud-kc{background:linear-gradient(180deg,var(--hud-a2),var(--hud-a1-70))}
.hud-kpi-ico{font-size:20px;filter:drop-shadow(0 0 6px var(--hud-a1-45));}
.hud-kpi-body{min-width:0;overflow:hidden;}
.hud-kpi-lab{font-size:11.5px;letter-spacing:.1em;color:var(--hud-t1);}
.hud-kpi-val{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 4px;font-size:23px;font-weight:700;line-height:1.15;color:var(--hud-strong);text-shadow:0 0 14px var(--hud-a1-35);}
.hud-kpi-val .hud-unit{font-size:11.5px;font-weight:600;color:var(--hud-t1);}
.hud-kpi-sub{font-size:11px;color:var(--hud-t2);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hud-main{position:relative;display:grid;grid-template-columns:1.02fr 1.5fr 1.12fr;gap:12px;margin-top:12px;}
.hud-panel{position:relative;border-radius:16px;padding:12px 14px 10px;background:linear-gradient(160deg,var(--hud-panel1),var(--hud-panel2));border:1px solid var(--hud-n-16);box-shadow:inset 0 0 30px var(--hud-a1-05);min-width:0;}
.hud-panel>header{display:flex;justify-content:space-between;align-items:baseline;gap:4px 8px;margin-bottom:10px;flex-wrap:wrap;min-width:0;}
.hud-panel>header span{font-size:13.5px;font-weight:600;color:var(--hud-t0);letter-spacing:.03em;}
.hud-panel>header em{font-style:normal;font-size:9.5px;letter-spacing:.1em;color:var(--hud-n-55);white-space:nowrap;}
.hud-gauge-row{display:flex;justify-content:space-around;gap:6px;flex-wrap:wrap;}
.hud-gauge{position:relative;width:112px;height:112px;flex:0 0 auto;}
.hud-gauge svg{width:100%;height:100%;display:block;}
.hud-rbg{fill:none;stroke:var(--hud-ringbg);stroke-width:9;}
.hud-rfg{fill:none;stroke-width:9;stroke-linecap:round;filter:drop-shadow(0 0 6px var(--hud-a1-50));}
.hud-gtxt{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none;}
.hud-gv{font-size:17px;font-weight:700;color:var(--hud-strong);line-height:1.1;}
.hud-gv small{font-size:10px;margin-left:2px;color:var(--hud-t1);}
.hud-gl{font-size:11px;color:var(--hud-t0);margin-top:2px;}
.hud-gs{font-size:9.5px;color:var(--hud-t3);margin-top:1px;}
.hud-delta{margin-top:8px;text-align:center;font-size:11.5px;color:var(--hud-t1);}
.hud-delta .up{color:#ff9b8a;} .hud-delta .down{color:#7ff3c0;}
.hud-chart{width:100%;height:auto;display:block;}
.hud-grid{stroke:var(--hud-n-12);stroke-width:1;stroke-dasharray:3 5;}
.hud-axis{fill:var(--hud-t2);font-size:10px;}
.hud-barc{fill:url(#hudBarG);}
.hud-area{opacity:0;}
.hud-dot{fill:var(--hud-bg2);stroke:var(--hud-a1);stroke-width:1.6;}
.hud-legend{display:flex;gap:14px;justify-content:center;font-size:11px;color:var(--hud-t1);margin-top:2px;}
.hud-legend .l1::before,.hud-legend .l2::before{content:"";display:inline-block;width:10px;height:3px;border-radius:2px;margin-right:5px;vertical-align:middle;}
.hud-legend .l1::before{background:linear-gradient(90deg,var(--hud-a1),var(--hud-a2));}
.hud-legend .l2::before{background:rgba(251,191,36,.75);}
.hud-rank-list{display:flex;flex-direction:column;gap:9px;}
.hud-rank-row{display:grid;grid-template-columns:22px minmax(64px,auto) 1fr auto;grid-template-areas:"no plate bar val" "no sub sub sub";align-items:center;gap:2px 8px;font-size:12px;}
.hud-rank-no{grid-area:no;text-align:center;font-size:12px;color:var(--hud-t1);}
.hud-rank-plate{grid-area:plate;font-weight:600;color:var(--hud-strong);letter-spacing:.02em;}
.hud-rank-bar{grid-area:bar;height:8px;border-radius:6px;background:var(--hud-n-12);overflow:hidden;}
.hud-bar-fill{display:block;height:100%;width:0;border-radius:6px;background:linear-gradient(90deg,var(--hud-bar),var(--hud-bar2));box-shadow:0 0 10px var(--hud-a1-45);}
.hud-rank-val{grid-area:val;font-weight:700;color:var(--hud-strong);font-size:12.5px;}
.hud-rank-val small{font-size:9.5px;color:var(--hud-t1);margin-left:2px;}
.hud-rank-sub{grid-area:sub;font-size:10.5px;color:var(--hud-t3);}
.hud-empty{padding:22px 8px;text-align:center;font-size:12.5px;color:var(--hud-t0);line-height:1.9;}
.hud-empty span{font-size:11px;color:var(--hud-t3);}
.hud-foot{position:relative;display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:12px;padding-top:11px;border-top:1px solid var(--hud-n-16);font-size:12px;}
.hud-foot-item{display:flex;align-items:baseline;gap:8px;min-width:0;}
.hud-foot-item .k{color:var(--hud-t3);font-size:11px;letter-spacing:.06em;white-space:nowrap;}
.hud-foot-item .v{color:var(--hud-t0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:44vw;}
.hud-actions{margin-left:auto;display:flex;gap:8px;}
.hud-btn{cursor:pointer;font-family:var(--font);font-size:12.5px;padding:8px 14px;border-radius:10px;color:var(--hud-btn-fg);font-weight:600;border:1px solid var(--hud-a1-70);background:linear-gradient(135deg,var(--hud-a1),var(--hud-a2));box-shadow:0 6px 18px var(--hud-a1-28);transition:transform .16s ease,box-shadow .16s ease;}
.hud-btn:hover{transform:translateY(-1px);box-shadow:0 10px 22px var(--hud-a1-40);}
.hud-btn.ghost{background:var(--hud-n-12);color:var(--hud-t1);border-color:var(--hud-n-35);box-shadow:none;}
.hud-root .oil-card{margin-top:12px;background:linear-gradient(150deg,var(--hud-panel1),var(--hud-panel2)) !important;border:1px solid var(--hud-n-16) !important;color:var(--hud-t0);box-shadow:0 8px 24px var(--hud-shadow),inset 0 0 30px var(--hud-a1-05);}
.hud-root .oil-card .dash-card-t{color:var(--hud-t0);font-weight:600;}
.hud-root .oil-card .oil-meta{color:var(--hud-t2);}
.hud-root .oil-card .oil-item{background:var(--hud-n-08);border:1px solid var(--hud-n-16);}
.hud-root .oil-card .oil-name{color:var(--hud-t1);}
.hud-root .oil-card .oil-val{color:var(--hud-a1);text-shadow:0 0 12px var(--hud-a1-40);}
.hud-root .oil-card .oil-refresh{color:var(--hud-t1);border-color:var(--hud-n-35);}
@keyframes hudPan{0%{transform:translate3d(0,0,0)}100%{transform:translate3d(0,88px,0)}}
@keyframes hudScan{0%{transform:translateY(-140px);opacity:0}12%{opacity:.9}100%{transform:translateY(560px);opacity:0}}
@keyframes hudPulse{0%,100%{opacity:.45;transform:scale(.9)}50%{opacity:1;transform:scale(1.15)}}
@keyframes hudFloat{0%,100%{transform:translate(0,0)}50%{transform:translate(-18px,14px)}}
@media (max-width:1080px){.hud-main{grid-template-columns:1fr 1fr}.hud-rank{grid-column:1 / -1}}
@media (max-width:760px){.hud{padding:14px 12px 10px}.hud-main{grid-template-columns:1fr}.hud-kpi-val{font-size:20px}.hud-foot-item .v{max-width:70vw}.hud-actions{margin-left:0;width:100%}.hud-actions .hud-btn{flex:1;text-align:center}.hud-title{font-size:16.5px}}

/* ============ 无障碍与体验增强 ============ */
:focus-visible{outline:2px solid var(--apple-blue);outline-offset:2px;border-radius:6px;}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--apple-blue);outline-offset:2px;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}
  .hud-scan,.hud-grid-bg,.hud-glow{display:none;}
}
@media print{.hud-root{display:none !important}}


@media (max-width:560px){
  .hud-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
  .hud-kpi{padding:10px 9px;gap:8px;}
  .hud-kpi-ico{font-size:17px;}
  .hud-kpi-val{font-size:18px;}
  .hud-kpi-lab{font-size:10.5px;letter-spacing:.06em;}
  .hud-kpi-sub{font-size:10px;}
  .hud-gauge{width:96px;height:96px;}
  .hud-gv{font-size:15px;}
  .hud-rank-row{grid-template-columns:20px minmax(58px,auto) 1fr auto;}
  .hud-panel>header span{font-size:12.5px;}
}
@media (max-width:1080px) and (min-width:761px){.hud-gauges{grid-column:1 / -1;}.hud-gauge-row{justify-content:flex-start;gap:18px;}}
/* ============ 大屏细节强化：科技边角线与光效 ============ */
.hud::before,.hud::after{content:"";position:absolute;width:26px;height:26px;pointer-events:none;border:2px solid var(--hud-a1-50);}
.hud::before{left:8px;top:8px;border-right:0;border-bottom:0;border-radius:6px 0 0 0;}
.hud::after{right:8px;bottom:8px;border-left:0;border-top:0;border-radius:0 0 6px 0;}
.hud-panel::before{content:"";position:absolute;left:16px;right:16px;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--hud-a1-70),transparent);pointer-events:none;}
.hud-kpi::before{content:"";position:absolute;right:8px;top:8px;width:12px;height:12px;border-top:1.5px solid var(--hud-a1-50);border-right:1.5px solid var(--hud-a1-50);border-radius:0 4px 0 0;pointer-events:none;}
.hud-kpi{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;}
.hud-kpi:hover{transform:translateY(-2px);border-color:var(--hud-a1-45);box-shadow:0 10px 26px rgba(6,18,38,.55),inset 0 0 22px var(--hud-a1-12);}
.hud-kpi-ico{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:var(--hud-kpi-ico-bg);border:1px solid var(--hud-kpi-ico-bd);}
.hud-title{text-shadow:0 0 18px rgba(103,232,249,.28);}
.hud-logo{animation:hudLogo 4.5s ease-in-out infinite;}
@keyframes hudLogo{0%,100%{box-shadow:0 0 14px var(--hud-a1-35),inset 0 0 12px rgba(127,243,255,.2);}50%{box-shadow:0 0 24px var(--hud-a1-50),inset 0 0 16px rgba(127,243,255,.35);}}
.hud-panel>header{border-bottom:1px solid var(--hud-n-12);padding-bottom:7px;}
@media (prefers-reduced-motion: reduce){.hud-logo{animation:none;}}
/* ============ 数字渐变与光晕（高级感） ============ */
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  .hud-kpi-val .hud-num,.hud-gv .hud-num{background:linear-gradient(180deg,#ffffff 0%,var(--hud-a1) 55%,var(--hud-a2) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;}
}
.hud-kpi-val{filter:drop-shadow(0 0 10px var(--hud-a1-25));}
.hud-gv{filter:drop-shadow(0 0 8px var(--hud-a1-35));}
.hud-rank-val{text-shadow:0 0 10px var(--hud-a1-25);}
.hud-panel{background-image:linear-gradient(160deg,var(--hud-panel1),var(--hud-panel2));}
.hud-panel::after{content:"";position:absolute;inset:0;border-radius:16px;pointer-events:none;background:radial-gradient(120% 70% at 50% -20%,var(--hud-a1-10),transparent 60%);}
/* ============ 大屏动效（纯 CSS，final 状态始终可见，脚本未跑也不会白屏） ============ */
.hud-kpi{animation:hudRise .5s cubic-bezier(.22,.61,.36,1) both;}
.hud-kpis .hud-kpi:nth-child(2){animation-delay:60ms}.hud-kpis .hud-kpi:nth-child(3){animation-delay:120ms}.hud-kpis .hud-kpi:nth-child(4){animation-delay:180ms}.hud-kpis .hud-kpi:nth-child(5){animation-delay:240ms}.hud-kpis .hud-kpi:nth-child(6){animation-delay:300ms}
@keyframes hudRise{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
.hud-panel{animation:hudRise .55s cubic-bezier(.22,.61,.36,1) both;animation-delay:.12s}
.hud-gauges{animation-delay:.18s}.hud-trend{animation-delay:.24s}.hud-rank{animation-delay:.3s}
.hud-rfg{animation:hudRing 1.05s cubic-bezier(.22,.61,.36,1) both .18s}
@keyframes hudRing{from{stroke-dashoffset:var(--ring-c)}to{stroke-dashoffset:var(--ring-off)}}
.hud-bar-fill{width:var(--w,0);animation:hudGrow .85s cubic-bezier(.22,.61,.36,1) both .2s}
@keyframes hudGrow{from{width:0}to{width:var(--w)}}
.hud-rank-row{animation:hudRise .45s ease both}.hud-rank-list .hud-rank-row:nth-child(2){animation-delay:70ms}.hud-rank-list .hud-rank-row:nth-child(3){animation-delay:140ms}.hud-rank-list .hud-rank-row:nth-child(4){animation-delay:210ms}.hud-rank-list .hud-rank-row:nth-child(5){animation-delay:280ms}
.hud-line{stroke-dasharray:1;animation:hudDraw 1.15s ease-out both .25s}
@keyframes hudDraw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
.hud-area{animation:hudAreaIn .55s ease both .45s}
@keyframes hudAreaIn{from{opacity:0}to{opacity:1}}
.hud-dot,.hud-barc{animation:hudAreaIn .5s ease both .6s}
@media (prefers-reduced-motion: reduce){.hud-kpi,.hud-panel,.hud-rfg,.hud-bar-fill,.hud-rank-row,.hud-line,.hud-area,.hud-dot,.hud-barc{animation:none !important}}
/* 数字改为实色（gradient-clip 在部分环境下不绘制，会导致数字不可见） */
.hud-kpi-val .hud-num,.hud-gv .hud-num{color:var(--hud-strong);text-shadow:0 0 12px var(--hud-a1-35);}
.hud-title{background:none !important;-webkit-background-clip:border-box !important;background-clip:border-box !important;color:var(--hud-strong) !important;text-shadow:0 0 16px rgba(103,232,249,.35);}
/* ===== 暗色可读性修复（2.1.1）：标题、提示块、按钮 ===== */
html[data-theme="dark"] .card-blue h2{color:#6cb6ff}
html[data-theme="dark"] .card-green h2{color:#5fd68a}
html[data-theme="dark"] .card-cyan h2{color:#5ad2e0}
html[data-theme="dark"] .card-purple h2{color:#c79cff}
html[data-theme="dark"] .card-orange h2{color:#ffb457}
html[data-theme="dark"] .card-yellow h2{color:#ffd76a}
html[data-theme="dark"] .card-pink h2{color:#ff8fa8}
html[data-theme="dark"] .guide-c1 .sec-title{color:#5fd68a}
html[data-theme="dark"] .guide-c2 .sec-title{color:#6cb6ff}
html[data-theme="dark"] .guide-c3 .sec-title{color:#ffb457}
html[data-theme="dark"] .guide-c4 .sec-title{color:#c79cff}
html[data-theme="dark"] .guide-c5 .sec-title{color:#5ad2e0}
html[data-theme="dark"] .guide-c6 .sec-title{color:#ff8fa8}
html[data-theme="dark"] .form-hint{background:linear-gradient(135deg,rgba(10,132,255,.14),rgba(255,255,255,.04)) !important;}
html[data-theme="dark"] .form-hint .sec-title{color:var(--text);}
html[data-theme="dark"] .form-hint div[style*="color"]{color:var(--text-secondary) !important;}
html[data-theme="dark"] .money.pos,html[data-theme="dark"] td.money.pos{color:#5fd68a;}
html[data-theme="dark"] .auto-tip b,html[data-theme="dark"] .vc-alerts b{color:#ffd76a;}
html[data-theme="dark"] .vc-mom .d.up{color:#ff9b8a;}
html[data-theme="dark"] .vc-mom .d.down{color:#5fd68a;}
/* 浅色主题：小字号彩字加深，保证可读 */
td.money.pos{color:#1f8a4b;}
.auto-tip{color:#2f7a4d;}
.vc-alerts b{color:#9a5b00;}
.vc-mom .d.up{color:#c0392b;}
.vc-mom .d.down{color:#1f8a4b;}
.dm-btn-recover{background:linear-gradient(135deg,#1f8a4c,#1c7c8c) !important;}

/* ============ 大屏 v3：可点击钻取 + 3D 全息 + 明细弹窗 ============ */
.hud-clickable{cursor:pointer;position:relative}
.hud-kpi.hud-clickable:hover{transform:translateY(-3px);border-color:var(--hud-a1);box-shadow:0 12px 30px rgba(6,18,38,.6),inset 0 0 26px var(--hud-a1-12)}
.hud-clickable:focus-visible{outline:2px solid var(--hud-a1);outline-offset:2px;border-radius:14px}
.hud-more{position:absolute;right:9px;bottom:6px;font-size:10px;color:var(--hud-a1);opacity:0;transition:opacity .18s ease;letter-spacing:.06em;pointer-events:none}
.hud-kpi:hover .hud-more,.hud-kpi:focus-visible .hud-more{opacity:.95}
.hud-gauge.hud-clickable{border-radius:50%}
.hud-gauge.hud-clickable:hover .hud-rfg{filter:drop-shadow(0 0 14px var(--hud-a1))}
.hud-gauge.hud-clickable:hover .hud-gtxt{transform:scale(1.04)}
.hud-gtxt{transition:transform .2s ease}
.hud-rank-row.hud-clickable{border-radius:8px;padding:2px 4px;transition:background .16s ease,transform .16s ease}
.hud-rank-row.hud-clickable:hover{background:var(--hud-a1-05);transform:translateX(3px)}
.hud-tip-i{font-style:normal;color:var(--hud-t3);letter-spacing:.02em}
.hud-tools{display:flex;gap:5px;margin-left:auto;align-items:center}
.hud-tool{cursor:pointer;font-family:var(--font);font-size:10.5px;line-height:1.5;padding:3px 8px;border-radius:8px;background:var(--hud-chipbg);border:1px solid var(--hud-border-2);color:var(--hud-t1);transition:all .16s ease}
.hud-tool:hover{color:var(--hud-strong);border-color:var(--hud-a1);box-shadow:0 0 12px var(--hud-a1-25)}
.hud-tool.on{background:linear-gradient(135deg,var(--hud-a1),var(--hud-a2));color:var(--hud-btn-fg);border-color:transparent;font-weight:600}
.hud-3d{width:100%;height:240px;display:block;touch-action:none;cursor:grab;border-radius:12px;background:radial-gradient(62% 84% at 50% 18%,var(--hud-a1-05),transparent 72%)}
.hud-3d.dragging{cursor:grabbing}
.hud-3d:focus-visible{outline:2px solid var(--hud-a1);outline-offset:2px}
.hud-3d-hint{text-align:center;font-size:10.5px;color:var(--hud-t3);margin-top:3px;letter-spacing:.04em}
body.hud-lock{overflow:hidden}
.hud-modal{position:fixed;inset:0;z-index:9000;display:none}
.hud-modal.show{display:block}
.hud-modal-bd{position:absolute;inset:0;background:var(--hud-backdrop);-webkit-backdrop-filter:blur(7px) saturate(1.15);backdrop-filter:blur(7px) saturate(1.15)}
.hud-modal-panel{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(1080px,94vw);max-height:88vh;display:flex;flex-direction:column;border-radius:20px;padding:16px 18px 12px;color:var(--hud-t0);background:linear-gradient(160deg,var(--hud-panel1),var(--hud-panel2));border:1px solid var(--hud-border);box-shadow:0 30px 90px rgba(0,0,0,.62),inset 0 0 60px var(--hud-a1-05);overflow:hidden}
.hud-modal-panel::before,.hud-modal-panel::after{content:"";position:absolute;width:26px;height:26px;border:2px solid var(--hud-a1-50);pointer-events:none}
.hud-modal-panel::before{left:8px;top:8px;border-right:0;border-bottom:0;border-radius:8px 0 0 0}
.hud-modal-panel::after{right:8px;bottom:8px;border-left:0;border-top:0;border-radius:0 0 8px 0}
.hud-modal-panel>header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border-bottom:1px solid var(--hud-border-2);padding-bottom:10px}
.hud-modal-tt h3{margin:0;font-size:19px;color:var(--hud-strong);letter-spacing:.02em;text-shadow:0 0 14px var(--hud-a1-35)}
.hud-modal-tt p{margin:4px 0 0;font-size:12px;color:var(--hud-t2)}
.hud-modal-x{cursor:pointer;font-size:15px;line-height:1;padding:7px 11px;border-radius:10px;background:var(--hud-chipbg);border:1px solid var(--hud-border-2);color:var(--hud-t1)}
.hud-modal-x:hover{color:var(--hud-strong);border-color:var(--hud-a1)}
.hud-modal-kpis{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0 4px}
.hud-mk{display:flex;flex-direction:column;gap:2px;min-width:104px;padding:8px 12px;border-radius:12px;background:var(--hud-chipbg);border:1px solid var(--hud-border-2)}
.hud-mk span{font-size:10.5px;color:var(--hud-t3);letter-spacing:.06em}
.hud-mk b{font-size:18px;color:var(--hud-strong);font-variant-numeric:tabular-nums}
.hud-mk b i{font-size:10.5px;font-style:normal;color:var(--hud-t2);margin-left:3px}
.hud-modal-body{overflow:auto;flex:1;min-height:0;margin-top:8px}
.hud-tbl-wrap{border:1px solid var(--hud-border-2);border-radius:12px;overflow:auto;margin-bottom:12px;max-height:46vh}
table.hud-tbl{width:100%;border-collapse:collapse;font-size:12.5px}
.hud-tbl th{position:sticky;top:0;background:var(--hud-th-bg);color:var(--hud-t2);font-weight:600;text-align:left;padding:8px 10px;border-bottom:1px solid var(--hud-border-2);white-space:nowrap;z-index:1}
.hud-tbl td{padding:7px 10px;border-bottom:1px solid var(--hud-a1-05);color:var(--hud-t0)}
.hud-tbl td.num{text-align:right;font-variant-numeric:tabular-nums}
.hud-tbl tr.hud-row-click{cursor:pointer}
.hud-tbl tr.hud-row-click:hover td{background:var(--hud-a1-05);color:var(--hud-strong)}
.hud-tbl .up{color:#ff9b8a}
.hud-tbl .down{color:#7ff3c0}
.hud-modal-h4{margin:14px 0 8px;font-size:13px;color:var(--hud-a1);letter-spacing:.04em}
.hud-modal-note{display:flex;gap:8px;font-size:11.5px;color:var(--hud-t2);border-top:1px solid var(--hud-border-2);padding-top:9px;margin-top:2px;line-height:1.75}
.hud-modal-note .i{color:var(--hud-a1)}
.hud-modal-foot{display:flex;gap:8px;justify-content:flex-end;margin-top:10px;flex-wrap:wrap}
.hud-bar-line{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--hud-t2);margin-bottom:12px}
.hud-bar-track{flex:1;height:8px;border-radius:6px;background:var(--hud-n-12);overflow:hidden}
.hud-bar-track i{display:block;height:100%;width:var(--w,0);background:linear-gradient(90deg,var(--hud-a1),var(--hud-a2));animation:hudGrow .8s ease both}
.hud-bar-line b{color:var(--hud-strong);font-variant-numeric:tabular-nums}
@media (max-width:640px){.hud-modal-panel{width:96vw;max-height:92vh;padding:12px 12px 8px}.hud-modal-kpis{gap:8px}.hud-mk{min-width:88px;padding:7px 9px}.hud-3d{height:198px}.hud-tool{font-size:10px;padding:3px 6px}}
@media (prefers-reduced-motion: reduce){.hud-bar-track i{animation:none}}

/* 油价卡片：来源标签与手动入口 */
.hud-root .oil-card .oil-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.oil-src{font-weight:600;color:var(--muted)}
.oil-src.ok{color:var(--apple-green)}
.oil-stale{color:var(--apple-orange);font-weight:600}
.oil-hint{font-size:11px;color:var(--muted);line-height:1.6}
.hud-modal .oil-panel{width:min(520px,94vw)}
.oil-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 6px}
.oil-f{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--hud-t2)}
.oil-f input{padding:9px 11px;border-radius:10px;border:1px solid var(--hud-border-2);background:var(--hud-n-08);color:var(--hud-t0);font-family:var(--font);font-size:14px}
.oil-f input:focus{outline:none;border-color:var(--hud-a1);box-shadow:0 0 0 3px var(--hud-a1-20)}
.hud-modal-note a{color:var(--hud-a1)}
@media (max-width:520px){.oil-form{grid-template-columns:1fr}}

/* ============ 大屏 v4：目标 / 预警 / 乡镇 / 演示模式 / 手势 ============ */
.hud-goal-wrap{display:flex;flex-direction:column;gap:9px}
.hud-goal-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:12px;color:var(--hud-t1)}
.hud-goal-top b{color:var(--hud-strong);font-variant-numeric:tabular-nums;white-space:nowrap}
.hud-goal-top b i{font-style:normal;font-weight:400;color:var(--hud-t3);font-size:11px}
.hud-goal-bar{height:8px;border-radius:6px;background:var(--hud-n-12);overflow:hidden}
.hud-goal-bar i{display:block;height:100%;width:var(--w,0);border-radius:6px;background:linear-gradient(90deg,var(--hud-a1),var(--hud-a2));animation:hudGrow .9s cubic-bezier(.22,.61,.36,1) both}
.hud-goal-bar i.ok{background:linear-gradient(90deg,#34d399,var(--hud-a1))}
.hud-goal-bar i.warn{background:linear-gradient(90deg,var(--hud-warn),#f97316)}
.hud-goal-bar i.over{background:linear-gradient(90deg,#ef4444,#f97316)}
.hud-goal-sub{font-size:10.5px;color:var(--hud-t3);margin-top:3px}
.hud-yoy{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;font-size:11.5px;color:var(--hud-t2);border-top:1px dashed var(--hud-border-2);padding-top:8px;margin-top:3px}
.hud-yoy .k{color:var(--hud-t3)}
.hud-yoy b{font-variant-numeric:tabular-nums}
.hud-yoy em{font-style:normal;color:var(--hud-t3);font-size:11px}
.hud-yoy .up{color:#e8664f}.hud-yoy .down{color:#1f8a4b}
[data-hud="dark"] .hud-yoy .up{color:#ff9b8a}[data-hud="dark"] .hud-yoy .down{color:#7ff3c0}
.hud-alert-list{display:flex;flex-direction:column;gap:8px}
.hud-alert{display:flex;gap:9px;align-items:center;text-align:left;width:100%;cursor:pointer;font-family:var(--font);padding:9px 11px;border-radius:11px;background:var(--hud-chipbg);border:1px solid var(--hud-border-2);color:var(--hud-t0);transition:transform .16s ease,border-color .16s ease}
.hud-alert:hover{border-color:var(--hud-a1);transform:translateX(2px)}
.hud-alert.warn{background:linear-gradient(90deg,var(--hud-a1-12),transparent);border-color:var(--hud-a1-35)}
.hud-alert .ico{font-size:16px}
.hud-alert .tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.hud-alert .tx b{font-size:12.5px;font-weight:600;color:var(--hud-strong)}
.hud-alert .tx i{font-style:normal;font-size:11px;color:var(--hud-t3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hud-alert .n{font-size:12px;font-weight:700;color:var(--hud-warn)}
.hud-empty.ok{color:var(--hud-ok-fg)}
.hud-chip-btn{cursor:pointer;font-family:var(--font)}
.hud-chip .dot-warn{width:7px;height:7px;border-radius:50%;background:var(--hud-warn);box-shadow:0 0 8px var(--hud-warn);animation:hudPulse 1.6s ease-in-out infinite}
.hud-towns svg{width:100%;height:auto;display:block}
.hud-hex{cursor:pointer}
.hud-hex:hover polygon{stroke-width:2.6;filter:drop-shadow(0 0 8px var(--hud-a1))}
.hud-hex-n{fill:var(--hud-strong);font-size:12px;font-weight:700;pointer-events:none}
.hud-hex-t{fill:var(--hud-t2);font-size:10px;pointer-events:none}
.hud-town-pct{display:block;text-align:center;font-size:11px;color:var(--hud-t3);margin-top:4px}
.hud-town-pct b{color:var(--hud-a1)}
.hud-bar-fill.good{background:linear-gradient(90deg,#34d399,#22d3ee)}
.hud-bar-fill.mid{background:linear-gradient(90deg,var(--hud-warn),#f97316)}
.hud-bar-fill.bad{background:linear-gradient(90deg,#ef4444,#f97316)}
.hv.good{color:#1f8a4b}.hv.mid{color:#9a5b00}.hv.bad{color:#c0392b}
[data-hud="dark"] .hv.good{color:#7ff3c0}[data-hud="dark"] .hv.mid{color:#ffd76a}[data-hud="dark"] .hv.bad{color:#ff9b8a}
.hud-alert-cards{display:flex;flex-direction:column;gap:9px}
.hud-alert-card{display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:12px;background:var(--hud-chipbg);border:1px solid var(--hud-border-2)}
.hud-alert-card.warn{background:linear-gradient(90deg,var(--hud-a1-12),transparent);border-color:var(--hud-a1-35)}
.hud-alert-card .ico{font-size:17px}
.hud-alert-card .tx{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0}
.hud-alert-card .tx b{font-size:13px;color:var(--hud-strong)}
.hud-alert-card .tx b em{font-style:normal;color:var(--hud-warn);font-size:11.5px}
.hud-alert-card .tx i{font-style:normal;font-size:11.5px;color:var(--hud-t3)}
.hud-goal-form{display:grid;grid-template-columns:1fr 1fr 1fr auto auto;gap:10px;align-items:end;margin:4px 0 2px}
@media (max-width:760px){.hud-goal-form{grid-template-columns:1fr 1fr}}
.hud-demo{position:fixed;inset:0;z-index:9500;display:none;flex-direction:column;background:radial-gradient(1000px 520px at 18% -10%,var(--hud-glow-strong),transparent 62%),linear-gradient(160deg,var(--hud-bg1) 0%,var(--hud-bg2) 52%,var(--hud-bg3) 100%);color:var(--hud-t0)}
.hud-demo.show{display:flex}
.hud-demo-hd{display:flex;align-items:center;gap:16px;padding:13px 22px;border-bottom:1px solid var(--hud-border-2)}
.hud-demo-brand{display:flex;align-items:center;gap:12px}
.hud-demo-brand b{display:block;font-size:16px;color:var(--hud-strong);letter-spacing:.02em}
.hud-demo-brand i{font-style:normal;font-size:11.5px;color:var(--hud-t3)}
.hud-demo-dots{display:flex;gap:7px;margin-left:auto}
.hud-demo-dot{width:9px;height:9px;border-radius:50%;border:0;background:var(--hud-n-22);cursor:pointer;padding:0}
.hud-demo-dot.on{background:var(--hud-a1);box-shadow:0 0 10px var(--hud-a1)}
.hud-demo-btns{display:flex;gap:6px}
.hud-demo-body{flex:1;position:relative;overflow:hidden}
.hud-demo-slide{position:absolute;inset:22px;opacity:0;transform:scale(.985);transition:opacity .5s ease,transform .5s ease;pointer-events:none;overflow:auto}
.hud-demo-slide.on{opacity:1;transform:none;pointer-events:auto}
.hud-demo-slide .hud-kpis{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}
.hud-demo-slide .hud-kpi{padding:18px 16px}
.hud-demo-slide .hud-kpi-val{font-size:34px}
.hud-demo-slide .hud-kpi-lab{font-size:13px}
.hud-demo-slide .hud-panel{max-width:1180px;margin:0 auto}
.hud-demo-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;align-items:start;max-width:1500px;margin:0 auto}
.hud-demo-row .hud-panel{max-width:none}
@media (max-width:940px){.hud-demo-row{grid-template-columns:1fr}}
.hud-demo-bar{height:3px;background:var(--hud-n-12)}
.hud-demo-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--hud-a1),var(--hud-a2))}
@media (prefers-reduced-motion: reduce){.hud-goal-bar i{animation:none}}

.hud-demo-cell{min-width:0}
.hud-demo-row .hud-panel{max-width:none}
.hud-demo-row .hud-demo-cell>.hud-panel{margin:0}

/* ================= Apple 设计语言重构（覆盖科幻皮肤，最后加载） ================= */
.hud .hud-grid-bg,.hud .hud-scan{display:none !important}
.hud .hud-glow{display:none !important}
.hud{background:var(--hud-bg2) !important;border:1px solid var(--hud-border-2) !important;border-radius:24px !important;box-shadow:0 1px 2px var(--hud-shadow),0 12px 32px -12px var(--hud-shadow) !important;padding:22px !important;color:var(--hud-label) !important}
[data-hud="dark"] .hud{background:linear-gradient(180deg,var(--hud-bg2) 0%,var(--hud-bg1) 100%) !important}
.hud ::selection{background:var(--hud-a1-25)}
.hud .hud-top{border-bottom:1px solid var(--hud-border-2) !important;padding-bottom:16px}
.hud .hud-brand{gap:14px}
.hud .hud-logo{width:42px;height:42px;border-radius:13px;font-size:19px;color:#fff;background:linear-gradient(160deg,var(--hud-a1),var(--hud-a2));border:0 !important;box-shadow:0 3px 10px var(--hud-a1-35) !important;animation:none !important;text-shadow:0 1px 2px rgba(0,0,0,.18)}
.hud .hud-title{font-size:21px;font-weight:600;letter-spacing:-.022em;color:var(--hud-label) !important;text-shadow:none !important;background:none !important;-webkit-background-clip:border-box !important;background-clip:border-box !important}
.hud .hud-sub{font-size:12.5px;letter-spacing:0;text-transform:none;color:var(--hud-label3) !important}
.hud .hud-tip-i{color:var(--hud-label3)}
.hud .hud-chips{gap:6px}
.hud .hud-chip{font-size:12px;font-weight:500;padding:6px 11px;border-radius:980px;background:var(--hud-n-12) !important;border:0 !important;color:var(--hud-label2) !important;letter-spacing:0}
.hud .hud-chip.ok{background:var(--hud-ok-bd) !important;color:var(--hud-ok-fg) !important}
.hud .hud-chip.warn{background:var(--hud-warn-bd) !important;color:var(--hud-warn-fg) !important}
.hud .hud-chip i{background:var(--hud-ok-fg) !important;box-shadow:none !important;animation:none !important}
.hud .hud-chip .dot-warn{background:var(--hud-warn-fg) !important;box-shadow:none !important;animation:none !important}
.hud .hud-kpis{gap:12px !important;margin-top:16px !important}
.hud .hud-kpi{background:var(--hud-panel1) !important;border:1px solid var(--hud-border-2) !important;border-radius:18px !important;padding:14px !important;gap:12px !important;box-shadow:0 1px 2px var(--hud-shadow);transition:transform .38s cubic-bezier(.32,.72,0,1),box-shadow .38s cubic-bezier(.32,.72,0,1)}
.hud .hud-kpi::after{display:none !important}
.hud .hud-kpi::before{display:none !important}
.hud .hud-kpi:hover{transform:translateY(-2px);box-shadow:0 8px 24px -8px var(--hud-shadow)}
.hud .hud-kc{display:none !important}
.hud .hud-kpi-ico{width:34px;height:34px;border-radius:11px;background:var(--hud-kpi-ico-bg) !important;border:0 !important;font-size:17px;filter:none !important}
.hud .hud-kpi-lab{font-size:12.5px;font-weight:500;letter-spacing:0;color:var(--hud-label2) !important}
.hud .hud-kpi-val{font-size:26px;font-weight:600;letter-spacing:-.024em;color:var(--hud-label) !important;text-shadow:none !important;filter:none !important;font-variant-numeric:tabular-nums}
.hud .hud-kpi-val .hud-num{color:var(--hud-label) !important;text-shadow:none !important;background:none !important;-webkit-background-clip:border-box !important;background-clip:border-box !important}
.hud .hud-kpi-val .hud-unit{font-size:12.5px;font-weight:500;color:var(--hud-label3) !important}
.hud .hud-kpi-sub{font-size:11.5px;color:var(--hud-label3) !important}
.hud .hud-more{color:var(--hud-a1) !important;font-size:11px}
.hud .hud-main{gap:12px !important;margin-top:12px !important}
.hud .hud-panel{background:var(--hud-panel1) !important;background-image:none !important;border:1px solid var(--hud-border-2) !important;border-radius:18px !important;box-shadow:0 1px 2px var(--hud-shadow) !important;padding:14px 16px 12px !important}
.hud .hud-panel::before,.hud .hud-panel::after{display:none !important}
.hud .hud-panel>header{border-bottom:1px solid var(--hud-border-2) !important;padding-bottom:9px !important;margin-bottom:12px !important;align-items:center}
.hud .hud-panel>header span{font-size:14px !important;font-weight:600 !important;letter-spacing:-.01em;color:var(--hud-label) !important;text-shadow:none !important}
.hud .hud-panel>header em{font-size:10.5px;letter-spacing:.06em;color:var(--hud-label3) !important;text-transform:uppercase}
.hud .hud-tools{gap:4px}
.hud .hud-tool{font-size:11.5px;font-weight:500;padding:5px 10px;border-radius:980px;background:var(--hud-n-12) !important;border:0 !important;color:var(--hud-label2) !important;transition:all .32s cubic-bezier(.32,.72,0,1)}
.hud .hud-tool:hover{background:var(--hud-n-22) !important;color:var(--hud-label) !important;box-shadow:none !important}
.hud .hud-tool.on{background:var(--hud-a1) !important;color:#fff !important;font-weight:600}
.hud .hud-rbg{stroke:var(--hud-n-12) !important;stroke-width:10}
.hud .hud-rfg{stroke-width:10;stroke-linecap:round;filter:none !important}
.hud .hud-gv{font-size:19px;font-weight:600;letter-spacing:-.02em;color:var(--hud-label) !important;text-shadow:none !important;filter:none !important}
.hud .hud-gv .hud-num{color:var(--hud-label) !important}
.hud .hud-gv small{font-size:10.5px;font-weight:500;color:var(--hud-label3) !important}
.hud .hud-gl{font-size:11.5px;font-weight:500;color:var(--hud-label2) !important}
.hud .hud-gs{font-size:10.5px;color:var(--hud-label3) !important}
.hud .hud-gauge.hud-clickable:hover .hud-rfg{filter:none !important}
.hud .hud-delta{font-size:12px;color:var(--hud-label2) !important}
.hud .hud-delta .up{color:var(--hud-bad-fg) !important}.hud .hud-delta .down{color:var(--hud-ok-fg) !important}
.hud .hud-bar-fill{background:var(--hud-a1) !important;box-shadow:none !important;border-radius:980px}
.hud .hud-bar-fill.good{background:#34c759 !important}
.hud .hud-bar-fill.mid{background:#ff9f0a !important}
.hud .hud-bar-fill.bad{background:#ff3b30 !important}
.hud .hud-rank-bar{background:var(--hud-n-12) !important;border-radius:980px;height:9px}
.hud .hud-rank-row{padding:4px 6px !important;border-radius:10px}
.hud .hud-rank-row.hud-clickable:hover{background:var(--hud-n-08) !important;transform:none}
.hud .hud-rank-no{font-size:12px;font-weight:600;color:var(--hud-label3) !important;background:none !important}
.hud .hud-rank-plate{font-size:13px;font-weight:600;letter-spacing:-.01em;color:var(--hud-label) !important}
.hud .hud-rank-val{font-size:13px;font-weight:600;color:var(--hud-label) !important;text-shadow:none !important}
.hud .hud-rank-val small{color:var(--hud-label3) !important}
.hud .hud-rank-sub{font-size:11px;color:var(--hud-label3) !important}
.hud .hud-legend{font-size:11px;color:var(--hud-label3) !important}
.hud .hud-axis{fill:var(--hud-label3) !important;font-size:10px}
.hud .hud-grid{stroke:var(--hud-border-2) !important;stroke-dasharray:none !important}
.hud .hud-dot{fill:var(--hud-bg1);stroke-width:2}
.hud .hud-goal-wrap{gap:12px}
.hud .hud-goal-top{font-size:12.5px;color:var(--hud-label2) !important}
.hud .hud-goal-top b{font-size:13.5px;font-weight:600;color:var(--hud-label) !important}
.hud .hud-goal-top b i{color:var(--hud-label3) !important;font-size:11.5px}
.hud .hud-goal-bar{height:8px;border-radius:980px;background:var(--hud-n-12) !important}
.hud .hud-goal-bar i{border-radius:980px}
.hud .hud-goal-sub{font-size:11px;color:var(--hud-label3) !important}
.hud .hud-yoy{border-top:1px solid var(--hud-border-2) !important;font-size:12px;color:var(--hud-label2) !important}
.hud .hud-yoy .k{color:var(--hud-label3) !important}
.hud .hud-yoy em{color:var(--hud-label3) !important}
.hud .hud-alert{border:0 !important;border-radius:14px;background:var(--hud-n-08) !important;padding:11px 13px;transition:background .32s cubic-bezier(.32,.72,0,1),transform .32s cubic-bezier(.32,.72,0,1)}
.hud .hud-alert.warn{background:var(--hud-warn-bd) !important}
.hud .hud-alert:hover{transform:none;background:var(--hud-n-16) !important}
.hud .hud-alert .tx b{font-size:13px;font-weight:600;color:var(--hud-label) !important}
.hud .hud-alert .tx i{font-size:11.5px;color:var(--hud-label3) !important}
.hud .hud-alert .n{color:var(--hud-warn-fg) !important}
.hud .hud-hex-t{fill:var(--hud-label2) !important}
.hud .hud-town-pct{font-size:11.5px;color:var(--hud-label3) !important}
.hud .hud-town-pct b{color:var(--hud-a1) !important}
.hud .hud-foot{border-top:1px solid var(--hud-border-2) !important;font-size:12.5px;margin-top:14px !important;padding-top:14px !important}
.hud .hud-foot-item .k{color:var(--hud-label3) !important;font-size:11.5px;letter-spacing:0}
.hud .hud-foot-item .v{color:var(--hud-label2) !important}
.hud .hud-foot-item .v b{color:var(--hud-label) !important}
.hud .hud-btn{background:var(--hud-a1) !important;color:#fff !important;border:0 !important;border-radius:980px;padding:9px 18px;font-size:13px;font-weight:500;box-shadow:none !important;transition:transform .3s cubic-bezier(.32,.72,0,1),opacity .3s ease,filter .3s ease}
.hud .hud-btn:hover{transform:none;filter:brightness(1.06)}
.hud .hud-btn:active{transform:scale(.97);filter:brightness(.94)}
.hud .hud-btn.ghost{background:var(--hud-n-12) !important;color:var(--hud-a1) !important;font-weight:500}
.hud .hud-btn.ghost:hover{background:var(--hud-n-22) !important}
.hud .hud-3d{border-radius:14px;background:var(--hud-n-08) !important}
.hud .hud-3d-hint{font-size:11px;color:var(--hud-label3) !important}
.hud .hud-empty{font-size:13px;color:var(--hud-label2) !important}
.hud .hud-empty span{color:var(--hud-label3) !important}
/* 弹窗：居中 + iOS 弹簧动效 */
.hud-modal-bd{background:var(--hud-backdrop) !important;-webkit-backdrop-filter:saturate(180%) blur(20px) !important;backdrop-filter:saturate(180%) blur(20px) !important}
.hud-modal-panel{left:50% !important;top:50% !important;transform:translate(-50%,-50%) !important;border-radius:22px !important;border:1px solid var(--hud-border-2) !important;background:var(--hud-panel1) !important;background-image:none !important;box-shadow:0 30px 70px -20px rgba(0,0,0,.45),0 2px 8px rgba(0,0,0,.08) !important;padding:20px 22px 16px !important}
[data-hud="dark"] .hud-modal-panel{background:#1c1c1e !important}
.hud-modal-panel::before,.hud-modal-panel::after{display:none !important}
.hud-modal-tt h3{font-size:20px !important;font-weight:600;letter-spacing:-.022em;color:var(--hud-label) !important;text-shadow:none !important}
.hud-modal-tt p{font-size:12.5px !important;color:var(--hud-label3) !important}
.hud-modal-x{width:30px;height:30px;padding:0;display:grid;place-items:center;border-radius:980px;background:var(--hud-n-12) !important;border:0 !important;color:var(--hud-label2) !important;font-size:13px}
.hud-modal-x:hover{background:var(--hud-n-22) !important;color:var(--hud-label) !important}
.hud-modal-kpis{gap:10px !important}
.hud-mk{border:0 !important;border-radius:14px;background:var(--hud-n-08) !important;padding:10px 14px}
.hud-mk span{font-size:11px;color:var(--hud-label3) !important;letter-spacing:0}
.hud-mk b{font-size:20px;font-weight:600;letter-spacing:-.02em;color:var(--hud-label) !important}
.hud-mk b i{color:var(--hud-label3) !important}
.hud-tbl-wrap{border:1px solid var(--hud-border-2) !important;border-radius:14px;background:var(--hud-panel1)}
.hud-tbl th{background:var(--hud-th-bg) !important;color:var(--hud-label2) !important;font-size:11.5px;font-weight:500;letter-spacing:0;padding:9px 12px !important;border-bottom:1px solid var(--hud-border-2) !important}
.hud-tbl td{font-size:12.5px;color:var(--hud-label) !important;padding:9px 12px !important;border-bottom:1px solid var(--hud-border-2) !important}
.hud-tbl tr:last-child td{border-bottom:0 !important}
.hud-tbl tr.hud-row-click:hover td{background:var(--hud-n-08) !important;color:var(--hud-label) !important}
.hud-modal-h4{font-size:13px;font-weight:600;color:var(--hud-label2) !important;letter-spacing:0}
.hud-modal-note{border-top:1px solid var(--hud-border-2) !important;font-size:12px;color:var(--hud-label3) !important}
.hud-modal-note .i{color:var(--hud-a1) !important}
.hud-modal-foot{gap:10px !important}
.hud-modal-foot .hud-btn{background:var(--hud-a1) !important;color:#fff !important}
.hud-modal-foot .hud-btn.ghost{background:var(--hud-n-12) !important;color:var(--hud-a1) !important}
.hud-hex-n{font-weight:600}
.oil-f input{border-radius:12px;border:1px solid var(--hud-border-2) !important;background:var(--hud-n-08) !important;color:var(--hud-label) !important}
.hud-alert-card{border:0 !important;border-radius:14px;background:var(--hud-n-08) !important}
.hud-alert-card.warn{background:var(--hud-warn-bd) !important}
.hud-alert-card .tx b{color:var(--hud-label) !important}
.hud-alert-card .tx i{color:var(--hud-label3) !important}
.hud-demo{background:var(--hud-bg2) !important}
[data-hud="dark"] .hud-demo{background:#0b0b0d !important}
.hud-demo-hd{border-bottom:1px solid var(--hud-border-2) !important}
.hud-demo-brand b{font-size:17px;font-weight:600;letter-spacing:-.02em;color:var(--hud-label) !important}
.hud-demo-brand i{color:var(--hud-label3) !important}
.hud-demo-slide{transition:opacity .55s cubic-bezier(.32,.72,0,1),transform .55s cubic-bezier(.32,.72,0,1) !important}
.hud-demo-dot{background:var(--hud-n-22) !important}
.hud-demo-dot.on{background:var(--hud-a1) !important;box-shadow:none !important}
.hud-demo-bar i{background:var(--hud-a1) !important}
/* 大屏下方内容延迟渲染，减轻首屏压力 */
.hud .hud-main>.hud-panel:nth-child(n+4){content-visibility:auto;contain-intrinsic-size:300px}
@media (prefers-reduced-motion: reduce){.hud *,.hud-modal *{transition-duration:.001ms !important;animation:none !important}}

/* 配色等级弹窗 + 设置关闭按钮 */
.col-panel{width:min(560px,94vw)}
.col-body{display:flex;flex-direction:column;gap:14px;margin:6px 0 4px}
.col-row{display:flex;flex-direction:column;gap:8px}
.col-k{font-size:12.5px;font-weight:600;color:var(--hud-label2)}
.col-seg{display:flex;gap:6px;flex-wrap:wrap}
.col-preview{display:flex;height:14px;border-radius:7px;overflow:hidden}
.col-preview i{flex:1;display:block}
.col-nums{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
.col-nums .oil-f{width:118px}
.col-nums em{font-style:normal;font-size:11.5px;color:var(--hud-label3)}
.col-demo{display:flex;gap:8px}
.hv-demo{display:inline-flex;align-items:center;justify-content:center;width:56px;height:34px;border-radius:10px;font-weight:600;font-size:14px}
.hv-demo.good{background:rgba(52,199,89,.16);color:var(--hud-ok-fg)}
.hv-demo.mid{background:rgba(255,159,10,.18);color:var(--hud-warn-fg)}
.hv-demo.bad{background:rgba(255,59,48,.16);color:var(--hud-bad-fg)}
.hud-town-legend{display:flex;align-items:center;gap:4px;justify-content:center;font-size:10.5px;color:var(--hud-label3);margin-top:6px}
.hud-town-legend i{width:16px;height:8px;border-radius:3px;display:inline-block;margin:0 1px}
.cfg-x{position:absolute;right:14px;top:14px;width:30px;height:30px;border-radius:980px;border:0;cursor:pointer;background:rgba(120,120,128,.16);color:var(--text-secondary);font-size:14px;line-height:1;display:grid;place-items:center;font-family:var(--font)}
.cfg-x:hover{background:rgba(120,120,128,.28);color:var(--text)}
.cfg-ask{width:min(440px,92vw);text-align:left}
.cfg-ask h3{margin-bottom:10px}
.cfg-ask-p{font-size:14px;color:var(--text-secondary);line-height:1.7;margin-bottom:18px}
.cfg-ask-btns{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.hud-demo-live{font-size:12px;color:var(--hud-label3);margin-right:6px}
[data-theme="dark"] .cfg-box,[data-theme="dark"] .cfg-ask{background:rgba(28,28,30,.97)}
[data-theme="dark"] .cfg-x{background:rgba(120,120,128,.28);color:#aeaeb2}
/* 大屏配色开关（iOS 分段控件） */
.hud .hud-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.hud .hud-mode{display:inline-flex;padding:2px;border-radius:980px;background:var(--hud-n-12);gap:2px}
.hud .hud-mode-b{border:0;cursor:pointer;font-family:var(--font);font-size:12px;font-weight:500;line-height:1;padding:7px 13px;border-radius:980px;background:transparent;color:var(--hud-label2);transition:all .3s cubic-bezier(.32,.72,0,1);white-space:nowrap}
.hud .hud-mode-b:hover{color:var(--hud-label)}
.hud .hud-mode-b.on{background:var(--hud-a1);color:#fff;font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.18)}
/* 录入行程：字段严格两端对齐 */
.form-layout{align-items:flex-start}
.form-section .sec-grid{align-items:start;row-gap:14px}
.form-section .sec-grid .field{display:flex;flex-direction:column;gap:7px;min-width:0}
.form-section .sec-grid .field>label{min-height:34px;display:flex;align-items:flex-end;line-height:1.32;margin:0;font-size:13px}
.form-section .sec-grid .field>label .req{margin-left:4px}
.form-section .sec-grid .field>input,.form-section .sec-grid .field>select{width:100%}
.form-section .sec-grid .field>.auto-tip{margin-top:0}
.form-section .form-col{display:flex;flex-direction:column;gap:14px}
.form-section .dest-add-row{flex-wrap:wrap}
@media (max-width:980px){.form-section .sec-grid .field>label{min-height:0}}
/* 录入行程：输入框高度与行内对齐统一 */
.form-section .sec-grid .field>input,.form-section .sec-grid .field>select,.form-section .sec-grid .field>.dest-add-row input,.form-section .sec-grid .field>.dest-add-row select{height:42px;box-sizing:border-box}
.form-section .sec-grid .field>.dest-add-row{margin:0;align-items:center;gap:8px;flex-wrap:wrap}
.form-section .sec-grid .field>.dest-add-row .btn{height:42px;display:inline-flex;align-items:center}
.form-section .sec-grid .field>label{min-height:34px}
.form-section .sec-grid .field>.auto-tip{font-size:11.5px}
.form-section .sec-grid .field.span2>label{min-height:0}
/* ===== 彻底隔离：全局元素样式（header/table/th/td）不得渗入大屏与弹窗 ===== */
.hud header,.hud-modal header,.hud-modal-panel>header,.hud-demo header,.hud-demo-hd{
  background:none !important;background-image:none !important;box-shadow:none !important;
  border:0 !important;border-radius:0 !important;position:static !important;overflow:visible !important;
  animation:none !important;color:inherit !important;min-height:0 !important;inset:auto !important;
  padding:0 !important;margin:0 !important;
}
.hud header::before,.hud header::after,.hud-modal header::before,.hud-modal header::after,.hud-demo header::before,.hud-demo header::after{display:none !important;content:none !important}
.hud .hud-panel>header{display:flex !important;justify-content:space-between;align-items:center;gap:4px 8px;flex-wrap:wrap;border-bottom:1px solid var(--hud-border-2) !important;padding:0 0 9px !important;margin:0 0 12px !important}
.hud-demo-hd{display:flex !important;align-items:center;gap:16px;border-bottom:1px solid var(--hud-border-2) !important;padding:13px 22px !important}
.hud-modal-panel>header{display:flex !important;justify-content:space-between;align-items:flex-start;gap:12px;border-bottom:1px solid var(--hud-border-2) !important;padding:0 0 10px !important;margin:0 !important}
.hud .hud-tbl,.hud-modal .hud-tbl,.hud-demo .hud-tbl{min-width:0 !important;border-collapse:collapse;width:100%}
.hud .hud-tbl th,.hud .hud-tbl td,.hud-modal .hud-tbl th,.hud-modal .hud-tbl td,.hud-demo .hud-tbl th,.hud-demo .hud-tbl td{border:0 !important;border-bottom:1px solid var(--hud-border-2) !important;text-align:left !important;background-image:none !important;white-space:normal;border-top-width:0 !important;border-left-width:0 !important;border-right-width:0 !important}
.hud .hud-tbl th,.hud-modal .hud-tbl th,.hud-demo .hud-tbl th{background:var(--hud-th-bg) !important;color:var(--hud-label2) !important;font-weight:500 !important;position:sticky !important;top:0;z-index:1}
.hud .hud-tbl td,.hud-modal .hud-tbl td,.hud-demo .hud-tbl td{color:var(--hud-label) !important;background:transparent !important}
.hud .hud-tbl tbody tr:nth-child(even) td,.hud-modal .hud-tbl tbody tr:nth-child(even) td{background:var(--hud-n-08) !important}
.hud .hud-tbl tbody tr:hover td,.hud-modal .hud-tbl tbody tr:hover td{background:var(--hud-n-12) !important}
.hud .hud-tbl td.num,.hud-modal .hud-tbl td.num,.hud-demo .hud-tbl td.num{text-align:right !important;font-variant-numeric:tabular-nums}
.hud-modal .hud-tbl tr.hud-row-click,.hud .hud-tbl tr.hud-row-click{cursor:pointer}

/* ===== 录入行程：5 个模块左右严格对齐（同一行等高、上下边齐平） ===== */
.form-layout{display:grid !important;grid-template-columns:1fr 1fr;gap:14px !important;align-items:stretch !important}
.form-layout>.form-col{display:contents !important}
.form-layout>.form-col>.form-section{min-width:0}
.form-layout>.form-col:nth-child(1)>.form-section:nth-child(1){grid-area:1/1}
.form-layout>.form-col:nth-child(1)>.form-section:nth-child(2){grid-area:2/1}
.form-layout>.form-col:nth-child(1)>.form-section:nth-child(3){grid-area:3/1}
.form-layout>.form-col:nth-child(2)>.form-section:nth-child(1){grid-area:1/2}
.form-layout>.form-col:nth-child(2)>.form-section:nth-child(2){grid-area:2/2}
.form-layout>.form-col>.form-section>.sec-grid{align-content:start}
@media (max-width:980px){
  .form-layout{grid-template-columns:1fr !important}
  .form-layout>.form-col{display:flex !important;flex-direction:column;gap:14px}
  .form-layout>.form-col>.form-section{grid-area:auto !important}
}

/* ===== 录入行程：模块合并后的附属样式 + 布局自定义 UI ===== */
.form-section .sec-subtitle{margin:16px 0 10px;font-size:13px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:8px;letter-spacing:-.01em}
.form-section .sec-subtitle::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,rgba(120,120,128,.28),transparent)}
.entry-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.entry-head h2{margin:0 !important}
.entry-layout-btn{-webkit-appearance:none;appearance:none;cursor:pointer;font-family:var(--font);font-size:12.5px;font-weight:500;line-height:1;padding:8px 14px;border-radius:980px;border:0;background:rgba(120,120,128,.12);color:var(--apple-blue);transition:background .3s cubic-bezier(.32,.72,0,1),transform .3s cubic-bezier(.32,.72,0,1)}
.entry-layout-btn:hover{background:rgba(120,120,128,.2)}
.entry-layout-btn:active{transform:scale(.97)}
.el-panel{width:min(620px,94vw)}
.el-body{display:flex;flex-direction:column;gap:12px;margin:6px 0 2px;max-height:52vh;overflow:auto}
.el-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.el-k{font-size:12.5px;font-weight:600;color:var(--hud-label2)}
.el-col{border:1px solid var(--hud-border-2);border-radius:14px;padding:10px 12px;background:var(--hud-n-08)}
.el-col-h{font-size:11.5px;font-weight:600;color:var(--hud-label3);margin-bottom:8px;letter-spacing:.04em}
.el-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 10px;border-radius:10px;background:var(--hud-panel1);border:1px solid var(--hud-border-2);font-size:13px;color:var(--hud-label);margin-bottom:6px}
.el-item:last-child{margin-bottom:0}
.el-btns{display:flex;gap:4px}
.el-btns .hud-tool[disabled]{opacity:.35;cursor:not-allowed}
.el-empty{font-size:12px;color:var(--hud-label3);padding:6px 2px}
@media (max-width:520px){.entry-head{align-items:flex-start}}

/* 网页宽度设置 */
.wrap{max-width:var(--wrap-max,1600px)}
.hud .hud-wgroup .hud-mode-b{min-width:46px}
.hud .hud-right{gap:10px}
.hud-demo-slide .hud-panel{max-width:var(--demo-panel-max,1180px)}
.hud-demo-row{max-width:var(--demo-row-max,1500px)}
@media (max-width:900px){.hud .hud-wgroup{display:none}}
/* ===== 大屏动态科幻背景：网格 / 扫描线 / 数据星云（低干扰，内容始终清晰） ===== */
.hud{isolation:isolate}
.hud .hud-grid-bg{display:block !important;z-index:0;opacity:1;top:-92px;bottom:0;
  background-image:linear-gradient(var(--hud-fx-line) 1px,transparent 1px),linear-gradient(90deg,var(--hud-fx-line) 1px,transparent 1px);
  background-size:46px 46px;animation:hudPan 30s linear infinite;will-change:transform}
.hud .hud-fx{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;display:block}
.hud .hud-scan{display:block !important;z-index:0;height:190px;opacity:.85;
  background:linear-gradient(180deg,transparent,var(--hud-fx-sweep) 45%,rgba(0,0,0,0) 78%,transparent);
  animation:hudScan 11s cubic-bezier(.42,0,.58,1) infinite}
.hud .hud-glow{display:block !important;z-index:0;opacity:.85}
.hud .hud-top,.hud .hud-kpis,.hud .hud-main,.hud .hud-foot{position:relative;z-index:1}
.hud .hud-kpi,.hud .hud-panel{backdrop-filter:saturate(140%) blur(2px);-webkit-backdrop-filter:saturate(140%) blur(2px)}
@keyframes hudScan{0%{transform:translateY(-200px);opacity:0}10%{opacity:.85}90%{opacity:.5}100%{transform:translateY(760px);opacity:0}}
@media (prefers-reduced-motion: reduce){
  .hud .hud-grid-bg,.hud .hud-scan{animation:none !important}
  .hud .hud-scan{display:none !important}
}
@media (max-width:760px){.hud .hud-fx{opacity:.7}}

/* ===== 大屏外观自定义：主色板 / 浓度滑杆 ===== */
.col-accent{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.col-sw{width:30px;height:30px;border-radius:980px;border:2px solid transparent;cursor:pointer;padding:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);transition:transform .25s cubic-bezier(.32,.72,0,1),border-color .2s ease}
.col-sw:hover{transform:scale(1.08)}
.col-sw.on{border-color:var(--hud-label);box-shadow:0 0 0 2px var(--hud-panel1),inset 0 0 0 1px rgba(0,0,0,.08)}
.col-custom{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--hud-label2);padding:4px 10px 4px 5px;border-radius:980px;background:var(--hud-n-08);cursor:pointer}
.col-custom input[type=color]{width:24px;height:24px;padding:0;border:0;background:none;border-radius:980px;cursor:pointer}
.col-depth{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.col-depth input[type=range]{flex:1;min-width:180px;accent-color:var(--hud-a1);height:22px}
.col-depth b{font-size:14px;font-weight:600;color:var(--hud-label);min-width:32px;font-variant-numeric:tabular-nums}
.col-depth em{font-style:normal;font-size:11.5px;color:var(--hud-label3)}
.col-preview{height:16px;border-radius:8px;overflow:hidden;display:flex;border:1px solid var(--hud-border-2)}

/* ===== 今日油价卡片：完全并入大屏配色，不随 App 主题变化 ===== */
.hud-root{color:var(--hud-t0) !important}
.hud-root #homeOilPrice{color:var(--hud-t0) !important}
.hud-root .oil-card{color:var(--hud-t0) !important;background:linear-gradient(150deg,var(--hud-panel1),var(--hud-panel2)) !important;border:1px solid var(--hud-border-2) !important;border-radius:18px !important;box-shadow:0 1px 2px var(--hud-shadow) !important;margin-top:12px !important;padding:14px 16px 12px !important}
.hud-root .oil-card .dash-card-t{color:var(--hud-label) !important;font-size:14px !important;font-weight:600 !important;letter-spacing:-.01em !important}
.hud-root .oil-card .oil-meta{color:var(--hud-label3) !important;font-size:11.5px !important;font-weight:400 !important}
.hud-root .oil-card .oil-src{color:var(--hud-label2) !important;font-weight:600 !important}
.hud-root .oil-card .oil-src.ok{color:var(--hud-ok-fg) !important}
.hud-root .oil-card .oil-stale{color:var(--hud-warn-fg) !important;font-weight:600 !important}
.hud-root .oil-card .oil-grid{color:var(--hud-t0) !important;display:grid !important;grid-template-columns:repeat(auto-fit,minmax(120px,1fr)) !important;gap:10px !important;margin-top:10px !important}
.hud-root .oil-card .oil-item{background:var(--hud-n-08) !important;border:1px solid var(--hud-border-2) !important;border-radius:14px !important;color:var(--hud-t0) !important;padding:10px 12px !important;display:flex !important;flex-direction:column !important;gap:4px !important;box-shadow:none !important}
.hud-root .oil-card .oil-name{color:var(--hud-label2) !important;font-size:11.5px !important}
.hud-root .oil-card .oil-val{color:var(--hud-a1) !important;font-size:20px !important;font-weight:600 !important;letter-spacing:-.02em !important;text-shadow:none !important;font-variant-numeric:tabular-nums}
.hud-root .oil-card .oil-hint{color:var(--hud-label3) !important}
.hud-root .oil-card .oil-actions{margin-top:12px !important}
.hud-root .oil-card .btn,.hud-root .oil-card button{-webkit-appearance:none !important;appearance:none !important;font-family:var(--font) !important;font-size:12.5px !important;font-weight:500 !important;line-height:1 !important;padding:9px 15px !important;border-radius:980px !important;border:0 !important;background:var(--hud-n-12) !important;color:var(--hud-a1) !important;box-shadow:none !important;filter:none !important;transition:background .3s cubic-bezier(.32,.72,0,1),transform .3s cubic-bezier(.32,.72,0,1)}
.hud-root .oil-card .btn:hover,.hud-root .oil-card button:hover{background:var(--hud-n-22) !important;color:var(--hud-a1) !important}
.hud-root .oil-card .btn:active{transform:scale(.97)}

/* 油价卡片：作为大屏内部的一个模块，背景与可视化一致 */
.hud #homeOilPrice{margin-top:14px !important;position:relative;z-index:1}
.hud #homeOilPrice .oil-card{margin-top:0 !important}
/* ===== 自动化中心 ===== */
.auto-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:16px;}
.auto-head h2{font-size:19px;margin:0;}
.auto-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px;}
.auto-kpi{background:rgba(255,255,255,.6);border:1px solid var(--apple-gray5);border-radius:var(--radius-md);padding:14px 16px;}
.auto-kpi .k{font-size:12px;color:var(--text-secondary);}
.auto-kpi .v{font-size:24px;font-weight:700;margin-top:4px;letter-spacing:-.02em;}
.auto-kpi.ok .v{color:var(--apple-green);}
.auto-kpi.warn .v{color:var(--apple-orange);}
.auto-kpi.bad .v{color:var(--apple-red);}
.auto-cols{display:flex;gap:16px;flex-wrap:wrap;}
.auto-col{flex:1;min-width:320px;}
.auto-sec-title{font-size:14px;font-weight:700;margin-bottom:10px;display:flex;align-items:center;gap:6px;}
.auto-sec-tip{font-weight:400;font-size:12px;color:var(--text-secondary);}
.auto-pipeline{display:flex;flex-direction:column;gap:10px;}
.auto-pipe{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border:1px solid var(--apple-gray5);border-radius:var(--radius-md);background:rgba(255,255,255,.6);flex-wrap:wrap;}
.auto-pipe .ap-main{flex:1;min-width:200px;}
.auto-pipe .ap-title{font-size:14px;font-weight:700;}
.auto-pipe .ap-desc{font-size:12px;color:var(--text-secondary);margin-top:3px;line-height:1.6;}
.auto-pipe .ap-run{font-size:11px;color:var(--muted);margin-top:4px;}
.auto-task{display:flex;align-items:flex-start;gap:10px;padding:11px 12px;border:1px solid var(--apple-gray5);border-radius:var(--radius-sm);margin-bottom:8px;background:rgba(255,255,255,.6);}
.auto-task .t-ico{font-size:17px;line-height:1.4;}
.auto-task .t-body{flex:1;min-width:0;}
.auto-task .t-title{font-size:13px;font-weight:600;}
.auto-task .t-sub{font-size:11.5px;color:var(--text-secondary);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.auto-task.warn{border-color:rgba(255,149,0,.4);}
.auto-task.bad{border-color:rgba(255,59,48,.35);}
.auto-task .t-act{flex:none;}
.auto-audit-item{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-bottom:1px dashed var(--apple-gray5);font-size:13px;}
.auto-audit-item:last-child{border-bottom:0;}
.auto-audit-item .ico{flex:none;}
.auto-audit-item .txt{flex:1;}
.auto-audit-item.ok .txt b{color:var(--apple-green);}
.auto-audit-item.warn .txt b{color:var(--apple-orange);}
.auto-audit-item.bad .txt b{color:var(--apple-red);}
.auto-audit-item .n{margin-left:auto;font-weight:700;}
.auto-log{max-height:360px;overflow-y:auto;border:1px solid var(--apple-gray5);border-radius:var(--radius-md);background:rgba(255,255,255,.55);padding:6px 12px;}
.auto-log-item{display:flex;gap:10px;padding:8px 4px;border-bottom:1px dashed rgba(0,0,0,.05);font-size:12.5px;line-height:1.5;}
.auto-log-item:last-child{border-bottom:0;}
.auto-log-item .lg-time{flex:none;color:var(--muted);font-variant-numeric:tabular-nums;}
.auto-log-item .lg-ico{flex:none;}
.auto-log-item .lg-txt{flex:1;color:var(--text);}
.auto-log-empty{color:var(--muted);text-align:center;padding:18px 0;font-size:13px;}
.auto-empty{color:var(--muted);text-align:center;padding:16px 12px;font-size:13px;border:1px dashed var(--apple-gray5);border-radius:var(--radius-sm);}
html[data-theme="dark"] .auto-kpi,html[data-theme="dark"] .auto-pipe,html[data-theme="dark"] .auto-task{background:#1c1c1e;border-color:var(--apple-gray5);}
html[data-theme="dark"] .auto-log{background:#1a1a1c;border-color:var(--apple-gray5);}
html[data-theme="dark"] .auto-log-item{border-bottom-color:rgba(255,255,255,.06);}
/* ===== 智能录入 & 导出样式 弹窗 ===== */
.smart-box{position:relative;background:rgba(255,255,255,.97);border-radius:var(--radius-lg);padding:24px 26px;width:min(560px,94vw);max-height:88vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:scaleIn .25s ease;}
.smart-x{position:absolute;right:14px;top:14px;width:30px;height:30px;border-radius:980px;border:0;cursor:pointer;background:rgba(120,120,128,.16);color:var(--text-secondary);font-size:14px;line-height:1;display:grid;place-items:center;font-family:var(--font);}
.smart-box h3{margin:0;padding-right:40px;font-size:17px;font-weight:700;color:var(--text);}
.smart-hint{font-size:12.5px;color:var(--text-secondary);line-height:1.6;margin:10px 0 12px;}
.smart-box textarea{width:100%;box-sizing:border-box;border:1px solid var(--apple-gray5);border-radius:var(--radius-md);padding:10px 12px;font-size:14px;font-family:inherit;color:var(--text);background:rgba(255,255,255,.7);resize:vertical;}
.smart-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;}
.smart-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:16px;padding-top:14px;border-top:1px solid var(--apple-gray5);}
.smart-box .field{margin-bottom:12px;}
.smart-box .field label{display:block;font-size:12.5px;color:var(--text-secondary);margin-bottom:6px;}
.es-row{display:flex;gap:12px;}
.es-row .field{flex:1;}
.es-preview{border:1px solid var(--apple-gray5);border-radius:var(--radius-md);padding:8px;background:rgba(255,255,255,.6);overflow-x:auto;}
html[data-theme="dark"] .smart-box{background:#1c1c1e;border:1px solid var(--apple-gray5);}
html[data-theme="dark"] .smart-x{background:rgba(120,120,128,.28);color:#aeaeb2;}
html[data-theme="dark"] .smart-box textarea{background:#2c2c2e;color:#fff;border-color:var(--apple-gray5);}
html[data-theme="dark"] .es-preview{background:#2c2c2e;}
/* ===== 悬浮 AI 机器人 ===== */
.ai-fab{position:fixed;right:20px;bottom:22px;z-index:1200;width:58px;height:58px;border-radius:999px;border:0;cursor:pointer;display:grid;place-items:center;font-size:26px;color:#fff;background:linear-gradient(135deg,#0a84ff,#5e5ce6);box-shadow:0 10px 30px rgba(10,132,255,.45),inset 0 1px 0 rgba(255,255,255,.3);transition:transform .18s ease;touch-action:none;user-select:none;-webkit-user-select:none;}
.ai-fab:hover{transform:translateY(-3px) scale(1.04);}
.ai-fab.dragging{transform:none !important;cursor:grabbing;transition:none !important;}
.ai-fab::after{content:"";position:absolute;inset:-3px;border-radius:999px;border:2px solid rgba(10,132,255,.6);animation:aiPulse 2.2s infinite;pointer-events:none;}
@keyframes aiPulse{0%{transform:scale(1);opacity:.8}70%{transform:scale(1.5);opacity:0}100%{transform:scale(1.5);opacity:0}}
.ai-badge{position:absolute;top:-2px;right:-2px;width:16px;height:16px;border-radius:999px;background:#30d158;border:2px solid #fff;}
.ai-badge.off{background:#ff9f0a;}
.ai-panel{position:fixed;right:20px;bottom:92px;z-index:1190;width:min(384px,calc(100vw - 32px));height:min(560px,calc(100vh - 124px));display:none;flex-direction:column;background:rgba(20,22,27,.97);border:1px solid rgba(255,255,255,.1);border-radius:20px;box-shadow:0 30px 80px rgba(0,0,0,.55);backdrop-filter:blur(20px);overflow:hidden;transform-origin:bottom right;}
.ai-panel.show{display:flex;animation:aiIn .22s ease;}
@keyframes aiIn{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}
.ai-head{display:flex;align-items:center;gap:10px;padding:13px 15px;border-bottom:1px solid rgba(255,255,255,.08);background:linear-gradient(135deg,rgba(10,132,255,.2),rgba(94,92,230,.12));}
.ai-ava{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-size:19px;background:linear-gradient(135deg,#0a84ff,#5e5ce6);flex:none;}
.ai-head-t{flex:1;min-width:0;}
.ai-head-t b{display:block;font-size:14px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ai-head-t small{color:rgba(255,255,255,.5);font-size:11px;}
.ai-head .ai-dot{width:8px;height:8px;border-radius:999px;background:#30d158;flex:none;}
.ai-head .ai-dot.off{background:#ff9f0a;}
.ai-ico{background:none;border:0;color:rgba(255,255,255,.62);cursor:pointer;font-size:16px;padding:4px;line-height:1;}
.ai-ico:hover{color:#fff;}
.ai-msgs{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;}
.ai-msg{max-width:85%;padding:9px 12px;border-radius:14px;font-size:13px;line-height:1.65;white-space:pre-wrap;word-break:break-word;}
.ai-msg.bot{align-self:flex-start;background:rgba(255,255,255,.08);color:#e9e9ee;border-bottom-left-radius:4px;}
.ai-msg.user{align-self:flex-end;background:linear-gradient(135deg,#0a84ff,#5e5ce6);color:#fff;border-bottom-right-radius:4px;}
.ai-msg small{display:block;margin-top:6px;font-size:11px;opacity:.55;}
.ai-chips{display:flex;gap:8px;flex-wrap:wrap;padding:0 14px 8px;}
.ai-chip{font-size:12px;padding:6px 11px;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.05);color:#d6d9ff;cursor:pointer;}
.ai-chip:hover{border-color:#0a84ff;color:#fff;}
.ai-input{display:flex;gap:8px;align-items:flex-end;padding:10px 14px 14px;border-top:1px solid rgba(255,255,255,.08);}
.ai-input textarea{flex:1;resize:none;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:#fff;border-radius:12px;padding:9px 12px;font-size:13px;font-family:inherit;max-height:92px;line-height:1.5;}
.ai-input textarea::placeholder{color:rgba(255,255,255,.35);}
.ai-send{width:40px;height:40px;border-radius:12px;border:0;background:linear-gradient(135deg,#0a84ff,#5e5ce6);color:#fff;font-size:17px;cursor:pointer;flex:none;}
.ai-send:disabled{opacity:.5;cursor:default;}
.ai-file{position:relative;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:#fff;font-size:17px;cursor:pointer;flex:none;}
.ai-file input{position:absolute;inset:0;opacity:0;cursor:pointer;}
.ai-typing{display:inline-flex;gap:4px;align-items:center;padding:4px 0;}
.ai-typing i{width:6px;height:6px;border-radius:999px;background:#fff;animation:aiBlink 1.2s infinite;}
.ai-typing i:nth-child(2){animation-delay:.2s}.ai-typing i:nth-child(3){animation-delay:.4s}
@keyframes aiBlink{0%,80%,100%{opacity:.25}40%{opacity:1}}
.ai-grid{display:flex;gap:12px;}
.ai-grid .field{flex:1;}
/* ===== 顶栏实时时钟 · 系统状态（替代原 HUD，消除与首页大屏的重复统计） ===== */
.header-side{position:relative;z-index:1;display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:flex-end;}
.head-clock{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:3px;padding:4px 2px;min-width:132px;}
.head-status{display:inline-flex;align-items:center;gap:6px;font-size:11px;letter-spacing:.06em;color:rgba(255,255,255,.92);}
.head-dot{width:7px;height:7px;border-radius:999px;background:#7cfc9b;box-shadow:0 0 8px rgba(124,252,155,.95);flex:none;animation:headBlink 2.4s ease-in-out infinite;}
@keyframes headBlink{0%,100%{opacity:1}50%{opacity:.35}}
.head-time{font-family:"SF Mono",ui-monospace,Menlo,Consolas,monospace;font-size:24px;font-weight:700;letter-spacing:.03em;color:#fff;line-height:1;text-shadow:0 1px 4px rgba(0,0,0,.28);font-variant-numeric:tabular-nums;}
.head-date{font-size:11px;color:rgba(255,255,255,.75);letter-spacing:.04em;white-space:nowrap;}
@media (prefers-reduced-motion: reduce){.head-dot{animation:none}}
@media (max-width:640px){.head-clock{align-items:flex-start;min-width:0}}

@page{size:A4 landscape;margin:0;}html,body{margin:0;padding:0;}body{font-family:"宋体",SimSun,serif;color:#000;padding:10mm;}table{border-collapse:collapse;width:100%;}th,td{border:1px solid #000;padding:4px 6px;text-align:center;vertical-align:middle;font-size:11pt;}td.reason,td.dest{text-align:left;white-space:normal;}td.km,td.fuel{text-align:right;padding-right:8px;font-variant-numeric:tabular-nums;}tr.sum-row td{font-weight:700;border-top:2px solid #000;}.p-title{font-size:16pt;font-weight:700;text-align:center;padding:2px 0 8px;}.p-title-sub{font-size:12pt;font-weight:700;text-align:center;padding:2px 0 6px;}.p-page{page-break-after:always;}.p-page:last-child{page-break-after:auto;}.p-foot{display:flex;justify-content:space-between;font-size:9pt;margin-top:8px;}'+(n||"")+"
