:root {
  --navy: #0b1830;
  --navy-2: #122746;
  --blue: #1769e0;
  --blue-dark: #0d55bd;
  --blue-soft: #eaf2ff;
  --cyan: #43a9c5;
  --orange: #f39237;
  --orange-soft: #fff3e6;
  --green: #1f9d70;
  --green-soft: #e8f7f1;
  --red: #d84b4b;
  --red-soft: #fff0ef;
  --text: #18253a;
  --muted: #6e7c90;
  --line: #dfe6ee;
  --surface: #ffffff;
  --canvas: #f4f7fa;
  --shadow: 0 14px 36px rgba(16, 36, 62, 0.09);
  font-family: "Noto Sans SC", "Microsoft YaHei", sans-serif;
  color: var(--text);
  background: var(--canvas);
}

* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; background: var(--canvas); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
button, input, select, textarea { outline: none; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { box-shadow: 0 0 0 3px rgba(23, 105, 224, .18); }
.hidden { display: none !important; }
.desktop-only { display: inline-flex; }

.topbar { height: 72px; padding: 0 5vw; background: var(--surface); border-bottom: 1px solid var(--line); display: flex; align-items: center; gap: 34px; position: sticky; top: 0; z-index: 50; }
.brand { border: 0; background: none; padding: 0; display: flex; align-items: center; gap: 11px; color: var(--navy); text-align: left; }
.brand-mark { width: 38px; height: 38px; background: var(--navy); color: white; display: grid; place-items: center; border-radius: 10px; }
.brand-mark svg { width: 21px; }
.brand strong, .brand small { display: block; }
.brand strong { font-size: 16px; letter-spacing: .08em; }
.brand small { font-size: 10px; color: var(--muted); margin-top: 1px; }
.topbar-center { display: flex; align-items: center; gap: 12px; flex: 1; max-width: 720px; }
.location-button, .text-button { border: 0; background: none; color: var(--text); display: inline-flex; align-items: center; gap: 6px; padding: 8px; }
.location-button svg { width: 16px; }
.location-button svg:last-child { width: 13px; color: var(--muted); }
.global-search { height: 40px; border: 1px solid var(--line); background: #f8fafc; display: flex; align-items: center; gap: 9px; padding: 0 12px; flex: 1; border-radius: 8px; }
.global-search:focus-within { border-color: var(--blue); background: white; }
.global-search svg { width: 17px; color: var(--muted); }
.global-search input { border: 0; background: transparent; min-width: 0; flex: 1; }
.global-search kbd { color: #9aa5b4; font-size: 10px; border: 1px solid var(--line); padding: 2px 5px; border-radius: 4px; }
.topbar-actions { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.icon-button { width: 38px; height: 38px; border-radius: 8px; border: 1px solid var(--line); background: white; color: var(--text); display: inline-grid; place-items: center; position: relative; }
.icon-button:hover { border-color: #b7c3d1; background: #f8fafc; }
.icon-button svg { width: 18px; }
.notification-dot { width: 7px; height: 7px; background: var(--orange); border-radius: 50%; position: absolute; right: 7px; top: 7px; border: 1px solid white; }
.avatar-button, .admin-avatar { width: 38px; height: 38px; border-radius: 50%; border: 0; color: white; background: var(--blue); display: grid; place-items: center; font-weight: 700; }
.api-status { display: inline-flex; align-items: center; gap: 5px; height: 30px; padding: 0 10px; border-radius: 15px; font-size: 11px; background: #eef1f5; color: #6e7c90; }
.api-status svg { width: 13px; }
.api-status.online { background: var(--green-soft); color: var(--green); }
.api-status.offline { background: #fdf1e6; color: #b86513; }
.api-note { margin: 12px 0 0; padding: 10px 12px; background: #eef6ff; border: 1px solid #d7e7fb; border-radius: 8px; color: #33506f; font-size: 11px; }

/* ---------- 后台参数录入表单 ---------- */
.settings-form { margin-top: 12px; }
.settings-group { border-top: 1px solid var(--line); padding: 16px 0; }
.settings-group:first-child { border-top: 0; padding-top: 4px; }
.settings-group-head { margin-bottom: 12px; }
.settings-group-head strong { display: block; font-size: 13px; }
.settings-group-head small { display: block; color: var(--muted); font-size: 10px; margin-top: 3px; }
.settings-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px 18px; }
.settings-field { display: flex; flex-direction: column; gap: 6px; }
.settings-field > span { font-size: 11px; font-weight: 600; color: #3e4a5c; }
.settings-field input { height: 38px; border: 1px solid var(--line); border-radius: 7px; padding: 0 11px; font-size: 12px; background: white; }
.settings-field input:focus { border-color: var(--blue); outline: none; }
.order-ops { display: flex; gap: 6px; justify-content: flex-end; }
.order-ops .button { height: 30px; padding: 0 10px; font-size: 11px; }

/* ---------- 库位信息展示 ---------- */
.slot-lines { margin: 14px 0 6px; display: flex; flex-direction: column; gap: 8px; }
.slot-line { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; padding: 10px 12px; background: #f6f9fd; border: 1px solid #dde9f7; border-radius: 8px; font-size: 11px; color: #46566e; }
.slot-line strong { color: var(--blue-dark); font-size: 13px; }
.slot-line span { white-space: nowrap; }
.seat-summary { margin: 18px auto 0; max-width: 680px; display: flex; flex-direction: column; gap: 8px; }
.seat-summary .slot-line { background: white; }
.quick-tip { display: flex; gap: 7px; align-items: flex-start; margin: 10px 24px 18px; color: var(--muted); font-size: 11px; line-height: 1.6; }
.quick-tip svg { width: 14px; flex: 0 0 auto; margin-top: 2px; color: var(--blue); }

/* ---------- 未开放功能（二期）标记 ---------- */
.switch-line.feature-locked { opacity: .62; background: #fafbfd; }
.switch-line.feature-locked .switch { background: #dfe5eb; }
.switch-line.feature-locked .switch::after { transform: none; }
.rec-logic { display: flex; gap: 7px; align-items: flex-start; margin: 14px 0 0; padding: 10px 12px; background: #f6f8fb; border-radius: 8px; color: var(--muted); font-size: 11px; line-height: 1.7; }
.rec-logic svg { width: 14px; flex: 0 0 auto; margin-top: 2px; color: var(--blue); }
.rec-slots { margin: 10px 0; }
.rec-slots > small { display: block; color: var(--muted); font-size: 10px; margin-bottom: 6px; }
.switch-panel { width: min(560px, calc(100vw - 32px)); }
.switch-body { padding: 20px 24px 24px; }
.switch-option { border: 1px solid var(--line); border-radius: 10px; padding: 14px; margin-top: 12px; }
.switch-option-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.switch-option-head strong, .switch-option-head small { display: block; }
.switch-option-head strong { font-size: 14px; margin: 6px 0 3px; }
.switch-option-head small { color: var(--muted); font-size: 11px; }
.switch-option-price { text-align: right; white-space: nowrap; }
.switch-option-price strong { color: var(--orange); font-size: 18px; }
.switch-option-price small { color: var(--muted); font-size: 10px; }
.switch-option .button { margin-top: 10px; width: 100%; }
.zone-warning { display: flex; gap: 7px; align-items: flex-start; margin: 10px 0 0; padding: 10px 12px; background: var(--red-soft); border-left: 3px solid var(--red); border-radius: 6px; color: #8c4a4a; font-size: 11px; line-height: 1.6; }
.zone-warning svg { width: 14px; flex: 0 0 auto; margin-top: 2px; color: var(--red); }

/* ---------- 库位码打印 ---------- */
.print-panel { width: min(860px, calc(100vw - 32px)); }
.print-body { padding: 20px 24px 28px; }
.print-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding-bottom: 14px; border-bottom: 2px solid var(--navy); margin-bottom: 18px; }
.print-head strong { display: block; font-size: 17px; }
.print-head span { display: block; color: var(--muted); font-size: 12px; margin-top: 4px; }
.print-tip { display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: 11px; }
.print-tip svg { width: 14px; color: var(--blue); }
.print-section { margin-bottom: 22px; }
.print-section h4 { margin: 0 0 12px; font-size: 13px; color: var(--navy); }
.qr-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(64mm, 1fr)); gap: 4mm; }
/* 标签统一 60 × 40 mm，热敏标签机标准规格；只印货位号，二维码尽量放大 */
.qr-card {
  width: 60mm; height: 40mm; box-sizing: border-box;
  border: 1px solid var(--line); border-radius: 2mm; padding: 2mm 2mm 1.5mm;
  background: white; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 1mm; overflow: hidden;
}
.qr-img { width: 32mm; height: 32mm; flex: 0 0 auto; display: block; }
.qr-code-text { font-size: 13pt; font-weight: 700; line-height: 1; letter-spacing: .04em; font-family: "Microsoft YaHei", sans-serif; white-space: nowrap; }
.qr-card.order-card { border: 0.6mm solid var(--blue); }
.qr-card.order-card .qr-code-text { font-size: 10pt; }
.qr-card.order-card { border: 2px solid var(--blue); }
.print-note { margin-top: 8px; padding: 10px 12px; background: #f6f8fb; border-radius: 8px; color: var(--muted); font-size: 11px; line-height: 1.7; }

/* ---------- 扫码查询 ---------- */
.scan-panel { width: min(620px, calc(100vw - 32px)); }
.scan-body { padding: 20px 24px 24px; }
.scan-actions { margin: 12px 0 16px; }
.scan-card { border: 1px solid var(--line); border-radius: 10px; padding: 16px; }
.scan-card-head { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; flex-wrap: wrap; }
.scan-card-head strong { font-size: 18px; }
.scan-card-head small { color: var(--muted); font-size: 12px; }
.scan-lease { margin-top: 14px; padding: 12px; background: #f7f9fb; border-radius: 8px; }
.scan-lease strong { display: block; font-size: 12px; margin-bottom: 6px; }
.scan-lease span { display: block; font-size: 11px; color: #46566e; line-height: 1.8; }
.scan-lease .scope-items { margin-top: 8px; }
.scan-conclusion { display: flex; gap: 7px; align-items: flex-start; margin: 14px 0 0; padding: 11px 12px; background: #eef6ff; border-radius: 8px; color: #33506f; font-size: 12px; line-height: 1.6; }
.scan-conclusion svg { width: 14px; flex: 0 0 auto; margin-top: 2px; color: var(--blue); }
.scan-logs { margin-top: 18px; border-top: 1px solid var(--line); padding-top: 14px; }
.scan-logs-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 8px; }
.scan-logs-head strong { font-size: 12px; }
.scan-logs-head span { color: var(--muted); font-size: 10px; }
.scan-log-row { display: flex; align-items: center; gap: 10px; padding: 7px 0; border-bottom: 1px dashed var(--line); font-size: 11px; }
.scan-log-row:last-child { border-bottom: 0; }
.scan-log-type { flex: 0 0 auto; padding: 2px 7px; border-radius: 4px; background: var(--green-soft); color: var(--green); font-size: 10px; }
.scan-log-type.bad { background: var(--red-soft); color: var(--red); }
.scan-log-row strong { flex: 1; }
.scan-log-row small { color: var(--muted); font-size: 10px; }

@media print {
  /* 一标一页，页面尺寸即标签尺寸 */
  @page { size: 60mm 40mm; margin: 0; }
  body { margin: 0; }
  body * { visibility: hidden; }
  #printModal, #printModal * { visibility: visible; }
  #printModal { position: absolute; inset: 0; display: block !important; }
  #printModal .modal-backdrop, .no-print, .print-head, .print-section h4, .print-note { display: none !important; }
  #printModal .modal-panel { position: static; box-shadow: none; border-radius: 0; max-height: none; width: auto; overflow: visible; border: 0; }
  #printModal .print-body { padding: 0; }
  .print-section { margin: 0; }
  .qr-grid { display: block; gap: 0; }
  .qr-card {
    width: 60mm; height: 40mm; border: 0; border-radius: 0; padding: 2mm 2mm 1.5mm;
    page-break-after: always; break-after: page; break-inside: avoid;
  }
  .qr-card:last-child { page-break-after: auto; break-after: auto; }
  .qr-card.order-card { border: 0; }
}
@media (max-width: 760px) { .api-status { display: none; } }

.button { height: 42px; padding: 0 17px; border-radius: 8px; border: 1px solid transparent; display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-weight: 600; transition: .18s ease; }
.button svg { width: 17px; }
.button:hover { transform: translateY(-1px); }
.button-primary { background: var(--blue); color: white; box-shadow: 0 6px 14px rgba(23, 105, 224, .16); }
.button-primary:hover { background: var(--blue-dark); }
.button-secondary { background: white; color: var(--text); border-color: var(--line); }
.button-secondary:hover { border-color: var(--blue); color: var(--blue); }
/* 自选库位：与蓝色主按钮区分，用品牌橙表示"另一条路径"，不动主流程的视觉层级 */
.button-choice { background: var(--orange-soft); color: #b86513; border-color: #f2d3ae; }
.button-choice:hover { background: var(--orange); color: white; border-color: var(--orange); box-shadow: 0 6px 14px rgba(243, 146, 55, .22); }
.hero-actions .button-choice { background: rgba(243, 146, 55, .14); color: #ffc38a; border-color: rgba(243, 146, 55, .48); }
.hero-actions .button-choice:hover { background: var(--orange); color: white; border-color: var(--orange); }
.button-light { background: white; color: var(--blue-dark); }
.button.small { height: 36px; padding: 0 14px; font-size: 13px; }
.text-button { color: var(--blue); font-weight: 600; }
.text-button svg { width: 15px; }

.customer-shell { max-width: 1440px; margin: 0 auto; padding: 0 5vw 64px; }
.customer-nav { height: 58px; display: flex; align-items: stretch; gap: 34px; }
.nav-item { background: none; border: 0; border-bottom: 2px solid transparent; color: var(--muted); display: flex; align-items: center; gap: 8px; padding: 0 4px; position: relative; }
.nav-item svg { width: 17px; }
.nav-item.active { color: var(--blue); border-bottom-color: var(--blue); font-weight: 600; }
.nav-item em { background: var(--orange); color: white; font-style: normal; font-size: 10px; min-width: 17px; height: 17px; display: grid; place-items: center; border-radius: 9px; }
.page { display: none; }
.page.active { display: block; }

.hero-panel { background: var(--navy); min-height: 320px; color: white; display: grid; grid-template-columns: 1.15fr .85fr; margin: 26px 0; overflow: hidden; border-radius: 14px; box-shadow: var(--shadow); }
.hero-copy { padding: 46px 52px; position: relative; z-index: 2; }
.eyebrow { color: #b7d5ff; font-size: 13px; display: flex; align-items: center; gap: 7px; font-weight: 500; }
.eyebrow svg { width: 17px; }
.hero-copy h1 { font-size: clamp(30px, 3.2vw, 48px); line-height: 1.17; margin: 17px 0 13px; letter-spacing: -.035em; }
.hero-copy > p { color: #c4cfdd; font-size: 16px; line-height: 1.8; margin: 0; max-width: 560px; }
.hero-actions { display: flex; align-items: center; gap: 16px; margin-top: 27px; }
.hero-actions .text-button { color: #cbd7e7; }
.trust-row { display: flex; gap: 22px; margin-top: 29px; color: #9eb0c7; font-size: 12px; }
.trust-row span { display: flex; align-items: center; gap: 6px; }
.trust-row svg { width: 15px; color: #68d5b1; }
.hero-scene { background: #102440; border-left: 1px solid rgba(255,255,255,.08); padding: 28px 32px; position: relative; display: flex; flex-direction: column; justify-content: center; }
.scene-label { position: absolute; right: 24px; top: 22px; color: #8fa6c1; font-size: 12px; }
.warehouse-perspective { display: grid; grid-template-columns: 1fr .9fr 1fr; height: 180px; perspective: 500px; }
.rack { border: 1px solid #355173; background: #172e4d; padding: 8px; transform: skewY(2deg); }
.rack-right { transform: skewY(-2deg); }
.rack span { display: block; height: 30%; margin-bottom: 7px; border: 1px solid #4b6788; background-color: #213c5c; box-shadow: inset 28px 0 #1a3454, inset -28px 0 #1a3454; }
.cold-aisle { position: relative; border-bottom: 2px solid #48617e; display: flex; gap: 8px; justify-content: center; }
.aisle-light { width: 5px; height: 70%; background: #d7f5ff; opacity: .55; box-shadow: 0 0 13px #9ce8ff; }
.temperature { position: absolute; bottom: 10px; background: rgba(10, 25, 47, .88); border: 1px solid #44617f; padding: 8px 12px; display: grid; grid-template-columns: auto auto; gap: 0 8px; align-items: center; border-radius: 8px; }
.temperature svg { width: 18px; color: #8de1fb; grid-row: 1/3; }
.temperature strong { font-size: 16px; }
.temperature small { color: #78d4a9; font-size: 10px; }
.capacity-line { background: #233c5b; height: 5px; margin-top: 18px; overflow: hidden; border-radius: 3px; }
.capacity-line span { height: 100%; display: block; background: var(--cyan); }
.hero-scene > p { color: #90a5bd; font-size: 12px; margin-bottom: 0; }.hero-scene > p strong { color: white; }

.content-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 24px; }
.primary-column, .secondary-column { display: flex; flex-direction: column; gap: 22px; }
.section-block, .lease-card, .nearby-card, .admin-card { background: var(--surface); border: 1px solid var(--line); border-radius: 12px; padding: 26px; }
.section-heading, .card-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.section-heading h2, .card-heading h2 { margin: 3px 0 0; font-size: 21px; }
.section-heading.compact h2, .card-heading h2 { font-size: 18px; }
.section-kicker { color: var(--blue); font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.step-badge { color: var(--muted); font-size: 12px; border: 1px solid var(--line); padding: 5px 9px; border-radius: 6px; }
.rent-form { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin-top: 25px; }
.field { display: flex; flex-direction: column; gap: 9px; }
.field > label, .drawer-field > span { font-size: 13px; font-weight: 600; color: #3e4a5c; }
.full-width { grid-column: 1 / -1; }
.choice-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(118px, 1fr)); gap: 10px; }
.choice { min-height: 46px; border: 1px solid var(--line); background: white; color: #566376; border-radius: 8px; display: flex; align-items: center; justify-content: center; gap: 7px; }
.choice svg { width: 17px; }
.choice:hover, .choice.active { border-color: var(--blue); color: var(--blue); background: var(--blue-soft); }
.input-wrap, .select-wrap, .stepper { height: 46px; border: 1px solid var(--line); background: white; display: flex; align-items: center; gap: 10px; padding: 0 13px; border-radius: 8px; }
.input-wrap:focus-within, .select-wrap:focus-within { border-color: var(--blue); }
.input-wrap svg, .select-wrap svg { width: 17px; color: var(--muted); }
.input-wrap input, .select-wrap select { border: 0; flex: 1; min-width: 0; background: transparent; color: var(--text); appearance: none; }
.select-wrap svg:last-child { width: 14px; }
.stepper { padding: 0; overflow: hidden; }
.stepper button { width: 42px; align-self: stretch; border: 0; background: #f5f8fb; color: var(--blue); display: grid; place-items: center; }
.stepper button svg { width: 15px; }
.stepper strong { min-width: 24px; text-align: center; }
.stepper span { color: var(--muted); font-size: 12px; margin-left: auto; margin-right: 12px; }
.switch-line { border: 1px solid var(--line); min-height: 58px; padding: 10px 14px; display: flex; align-items: center; justify-content: space-between; border-radius: 8px; cursor: pointer; }
.switch-line > span:first-child { display: flex; align-items: center; gap: 10px; }
.switch-line svg { width: 20px; color: var(--blue); }
.switch-line strong, .switch-line small { display: block; }.switch-line strong { font-size: 13px; }.switch-line small { color: var(--muted); font-size: 11px; margin-top: 2px; }
.switch-line input { display: none; }.switch { width: 42px; height: 23px; border-radius: 12px; background: #cbd4de; position: relative; transition: .2s; }.switch::after { content: ""; width: 17px; height: 17px; background: white; border-radius: 50%; position: absolute; top: 3px; left: 3px; transition: .2s; box-shadow: 0 1px 3px rgba(0,0,0,.2); }.switch-line input:checked + .switch { background: var(--blue); }.switch-line input:checked + .switch::after { transform: translateX(19px); }
.form-footer { border-top: 1px solid var(--line); padding-top: 20px; display: flex; align-items: center; justify-content: space-between; }.form-footer > span { color: var(--muted); font-size: 12px; display: flex; gap: 7px; }.form-footer > span svg { color: var(--orange); width: 17px; }

.recommendations { display: none; }.recommendations.visible { display: block; animation: rise .35s ease; }
@keyframes rise { from { opacity: 0; transform: translateY(8px); } }
.recommendation-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 20px; }
.recommendation-card { border: 1px solid var(--line); padding: 17px; border-radius: 9px; position: relative; }
.recommendation-card.recommended { border: 2px solid var(--blue); padding: 16px; }
.rec-label { position: absolute; right: 10px; top: 10px; background: var(--blue); color: white; font-size: 10px; padding: 4px 7px; border-radius: 4px; }
.recommendation-card h3 { margin: 0 0 5px; font-size: 15px; }.recommendation-card > p { margin: 0; font-size: 12px; color: var(--muted); }
.recommendation-card .rec-feature { display: flex; gap: 10px; margin: 14px 0; font-size: 11px; color: #506074; }.rec-feature span { display: flex; gap: 4px; align-items: center; }.rec-feature svg { width: 14px; color: var(--blue); }
.rec-bottom { display: flex; justify-content: space-between; align-items: end; border-top: 1px solid var(--line); padding-top: 12px; }.rec-price strong { font-size: 21px; }.rec-price small { color: var(--muted); }.rec-bottom .button { height: 34px; padding: 0 10px; font-size: 12px; }

.card-topline { display: flex; align-items: center; justify-content: space-between; color: var(--muted); font-size: 12px; }.status { display: inline-flex; width: fit-content; padding: 4px 8px; border-radius: 5px; background: #eef1f5; color: #657286; font-size: 11px; }.status-good { color: var(--green); background: var(--green-soft); }.status-warn { color: #b86513; background: var(--orange-soft); }
.lease-card h3 { margin: 18px 0 3px; font-size: 18px; }.lease-slot { color: var(--blue); margin: 0; font-size: 13px; }.temperature-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 23px 0; }.temperature-row > div { display: flex; gap: 9px; align-items: center; }.temperature-row svg { width: 22px; color: var(--cyan); }.temperature-row strong, .temperature-row small { display: block; }.temperature-row strong { font-size: 15px; }.temperature-row small { color: var(--muted); font-size: 10px; margin-top: 2px; }.progress { height: 5px; background: #e9eef3; overflow: hidden; border-radius: 3px; }.progress span { display: block; height: 100%; background: var(--blue); }.lease-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-top: 18px; }
.notice-card { background: var(--orange-soft); border: 1px solid #f4d8b9; padding: 20px; display: flex; gap: 14px; border-radius: 12px; }.notice-icon { width: 42px; height: 42px; flex: 0 0 auto; display: grid; place-items: center; background: var(--orange); color: white; border-radius: 9px; }.notice-icon svg { width: 21px; }.notice-card h3 { margin: 4px 0 5px; font-size: 16px; }.notice-card p { margin: 0; color: #7c654c; font-size: 12px; line-height: 1.6; }.notice-card .text-button { padding-left: 0; color: #b25e17; font-size: 12px; }
.nearby-card { padding-bottom: 12px; }.nearby-item { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; padding: 15px 0; border-top: 1px solid var(--line); }.nearby-card .section-heading { margin-bottom: 11px; }.warehouse-icon { width: 38px; height: 38px; background: var(--blue-soft); color: var(--blue); display: grid; place-items: center; border-radius: 8px; }.warehouse-icon.orange { color: var(--orange); background: var(--orange-soft); }.warehouse-icon svg { width: 19px; }.nearby-item strong, .nearby-item small { display: block; }.nearby-item > div strong { font-size: 13px; }.nearby-item small { color: var(--muted); font-size: 10px; margin-top: 3px; }.nearby-item > span:last-child { color: var(--orange); font-weight: 700; font-size: 14px; text-align: right; }

.simple-page { padding: 34px 0; }.page-title { display: flex; justify-content: space-between; align-items: end; margin-bottom: 24px; }.page-title h1 { margin: 4px 0 0; font-size: 28px; }.filter-tabs { display: flex; gap: 4px; background: white; border: 1px solid var(--line); padding: 5px; width: fit-content; border-radius: 9px; margin-bottom: 16px; }.filter-tabs button { border: 0; background: transparent; color: var(--muted); padding: 8px 15px; border-radius: 6px; }.filter-tabs button.active { background: var(--navy); color: white; }
.order-list { display: flex; flex-direction: column; gap: 10px; }.order-row { background: white; border: 1px solid var(--line); border-radius: 10px; padding: 20px; display: grid; grid-template-columns: 70px 1fr auto; gap: 18px; align-items: center; }.order-date { border-right: 1px solid var(--line); }.order-date strong, .order-date span { display: block; }.order-date strong { font-size: 25px; color: var(--navy); }.order-date span { color: var(--muted); font-size: 11px; }.order-row h3 { margin: 6px 0 4px; font-size: 16px; }.order-row p { margin: 0; color: var(--muted); font-size: 12px; }.order-price { text-align: right; }.order-price strong { display: block; margin-bottom: 10px; }.order-row.muted { opacity: .67; }
.message-list { background: white; border: 1px solid var(--line); border-radius: 12px; }.message { padding: 21px 24px; display: flex; gap: 14px; border-bottom: 1px solid var(--line); }.message:last-child { border-bottom: 0; }.message.unread { background: #fbfdff; }.message-icon { width: 40px; height: 40px; background: var(--blue-soft); color: var(--blue); border-radius: 9px; display: grid; place-items: center; flex: 0 0 auto; }.message-icon.warning { color: var(--orange); background: var(--orange-soft); }.message-icon svg { width: 20px; }.message strong { font-size: 14px; }.message p { color: var(--muted); font-size: 12px; margin: 5px 0; }.message small { color: #a1aab7; font-size: 10px; }
.profile-head { background: var(--navy); color: white; padding: 30px; display: flex; align-items: center; gap: 15px; border-radius: 12px 12px 0 0; }.profile-avatar { width: 58px; height: 58px; border: 2px solid #5fa3ff; border-radius: 50%; display: grid; place-items: center; font-size: 20px; font-weight: 700; }.profile-head h1 { font-size: 21px; margin: 0 0 4px; }.profile-head p { display: flex; align-items: center; gap: 5px; margin: 0; font-size: 12px; color: #aebed1; }.profile-head p svg { width: 15px; color: #66d1a8; }.member-label { margin-left: auto; background: var(--orange); color: white; font-size: 11px; padding: 5px 9px; border-radius: 5px; }.profile-stats { background: white; display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--line); border-top: 0; padding: 20px; }.profile-stats div { text-align: center; border-right: 1px solid var(--line); }.profile-stats div:last-child { border: 0; }.profile-stats strong, .profile-stats span { display: block; }.profile-stats strong { font-size: 20px; }.profile-stats strong small { font-size: 10px; }.profile-stats span { color: var(--muted); font-size: 11px; margin-top: 4px; }.settings-list { margin-top: 18px; border: 1px solid var(--line); border-radius: 12px; background: white; }.settings-list button { width: 100%; border: 0; border-bottom: 1px solid var(--line); background: none; display: flex; justify-content: space-between; align-items: center; padding: 17px 20px; }.settings-list button:last-child { border: 0; }.settings-list span { display: flex; align-items: center; gap: 10px; }.settings-list svg { width: 18px; color: var(--blue); }.settings-list > button > svg { color: #9ba6b3; width: 16px; }

.admin-shell { min-height: calc(100vh - 72px); display: grid; grid-template-columns: 238px 1fr; }
.admin-sidebar { background: var(--navy); color: white; padding: 23px 15px; display: flex; flex-direction: column; min-height: calc(100vh - 72px); }
.admin-context { padding: 5px 10px 22px; border-bottom: 1px solid #293b55; }.admin-context small, .admin-context strong, .admin-context span { display: block; }.admin-context small { color: #8295ae; font-size: 10px; }.admin-context strong { margin: 5px 0; font-size: 14px; }.admin-context span { color: #67d1aa; font-size: 10px; }
.admin-sidebar nav { padding-top: 15px; display: flex; flex-direction: column; gap: 3px; }.admin-sidebar nav button, .back-customer { border: 0; background: none; color: #aebbd0; height: 42px; padding: 0 11px; display: flex; align-items: center; gap: 10px; text-align: left; border-radius: 7px; }.admin-sidebar nav button svg, .back-customer svg { width: 17px; }.admin-sidebar nav button span { margin-left: auto; font-size: 10px; background: #2a405f; padding: 2px 6px; border-radius: 8px; }.admin-sidebar nav button .danger-count { background: #b84646; color: white; }.admin-sidebar nav button.active, .admin-sidebar nav button:hover { color: white; background: #1c3555; }.back-customer { margin-top: auto; border-top: 1px solid #293b55; border-radius: 0; padding-top: 15px; height: 58px; }
.admin-main { min-width: 0; }.admin-header { background: white; height: 83px; border-bottom: 1px solid var(--line); padding: 0 30px; display: flex; justify-content: space-between; align-items: center; }.admin-header h1 { font-size: 21px; margin: 2px 0 0; }.admin-header-actions { display: flex; gap: 9px; align-items: center; }.mobile-menu { display: none; }
.admin-page { display: none; padding: 25px 30px 50px; }.admin-page.active { display: block; }.admin-banner { background: var(--blue); color: white; padding: 19px 22px; display: flex; align-items: center; justify-content: space-between; border-radius: 10px; margin-bottom: 18px; }.admin-banner strong, .admin-banner span { display: block; }.admin-banner strong { font-size: 17px; }.admin-banner span { color: #d8e8ff; font-size: 12px; margin-top: 4px; }
.metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 18px; }.metric-grid article { background: white; border: 1px solid var(--line); border-radius: 10px; padding: 18px; display: flex; gap: 12px; align-items: center; }.metric-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 8px; background: var(--blue-soft); color: var(--blue); }.metric-icon.green { background: var(--green-soft); color: var(--green); }.metric-icon.orange { background: var(--orange-soft); color: var(--orange); }.metric-icon.red { background: var(--red-soft); color: var(--red); }.metric-icon svg { width: 20px; }.metric-grid small, .metric-grid strong, .metric-grid em { display: block; }.metric-grid small { color: var(--muted); font-size: 10px; }.metric-grid strong { font-size: 21px; margin: 1px 0; }.metric-grid em { color: var(--green); font-style: normal; font-size: 9px; }
.admin-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(270px, .55fr); gap: 18px; }.admin-card { padding: 21px; }.task-list { margin-top: 14px; }.task-item { border: 0; border-top: 1px solid var(--line); background: white; width: 100%; display: grid; grid-template-columns: 4px 38px 1fr auto 18px; align-items: center; gap: 11px; padding: 13px 3px; text-align: left; }.task-item:hover { background: #f9fbfd; }.task-priority { width: 4px; height: 30px; background: #a9b4c1; border-radius: 2px; }.task-priority.urgent { background: var(--red); }.task-priority.important { background: var(--orange); }.task-icon { width: 36px; height: 36px; display: grid; place-items: center; background: #f2f5f8; border-radius: 8px; color: #53647a; }.task-icon svg { width: 18px; }.task-item strong, .task-item small { display: block; }.task-item strong { font-size: 12px; }.task-item small { font-size: 10px; color: var(--muted); margin-top: 3px; }.task-item em { font-size: 10px; color: var(--muted); font-style: normal; }.task-item > svg { width: 15px; color: #9da8b5; }
.occupancy-donut { width: 146px; height: 146px; margin: 24px auto; border-radius: 50%; background: white; border: 19px solid var(--blue); border-right-color: #e7edf3; display: grid; place-items: center; position: relative; box-shadow: 7px 2px 0 -2px var(--orange); }.occupancy-donut div { z-index: 1; text-align: center; }.occupancy-donut strong, .occupancy-donut span { display: block; }.occupancy-donut strong { font-size: 23px; }.occupancy-donut span { font-size: 10px; color: var(--muted); }.occupancy-legend { display: flex; justify-content: space-between; gap: 8px; font-size: 10px; color: var(--muted); }.occupancy-legend span { display: flex; align-items: center; gap: 4px; }.occupancy-legend strong { color: var(--text); }.dot { width: 7px; height: 7px; border-radius: 50%; display: inline-block; }.dot.used { background: var(--blue); }.dot.available { background: #dce4ec; }.dot.service { background: var(--orange); }.dot.warning { background: var(--orange); }
.warehouse-board { min-height: 310px; }.legend-inline { display: flex; gap: 13px; color: var(--muted); font-size: 10px; }.legend-inline span { display: flex; align-items: center; gap: 4px; }.mini-slot-map { display: grid; grid-template-columns: repeat(12, 1fr); gap: 6px 8px; margin-top: 20px; padding: 12px; background: #f7f9fb; border: 1px solid var(--line); }.mini-slot { height: 31px; background: white; border: 1px solid #cad4df; display: grid; place-items: center; font-size: 8px; color: #758397; }.mini-slot.used { background: var(--blue); color: white; border-color: var(--blue); }.mini-slot.warning { background: var(--orange-soft); color: #a75712; border-color: var(--orange); }.mini-slot.aisle { grid-column: span 12; height: 20px; border: 0; background: transparent; color: #a2adba; letter-spacing: .2em; }
.activity-list { margin-top: 15px; }.activity-list > div { display: flex; gap: 10px; border-top: 1px solid var(--line); padding: 14px 0; }.activity-avatar { width: 30px; height: 30px; border-radius: 50%; background: var(--blue-soft); color: var(--blue); display: grid; place-items: center; flex: 0 0 auto; font-size: 11px; font-weight: 600; }.activity-list p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.5; }.activity-list p strong { color: var(--text); }.activity-list small { display: block; color: #a5afba; margin-top: 3px; }.placeholder-panel { min-height: 450px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }.placeholder-icon { width: 64px; height: 64px; display: grid; place-items: center; background: var(--blue-soft); color: var(--blue); border-radius: 12px; }.placeholder-icon svg { width: 28px; }.placeholder-panel h2 { margin: 18px 0 7px; }.placeholder-panel p { color: var(--muted); margin: 0 0 20px; }

.modal, .drawer { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; }.modal-backdrop, .drawer-backdrop { position: absolute; inset: 0; background: rgba(5, 15, 30, .62); backdrop-filter: blur(3px); }.modal-panel { width: min(920px, calc(100vw - 32px)); max-height: calc(100vh - 40px); overflow: auto; background: white; position: relative; z-index: 1; border-radius: 14px; box-shadow: 0 24px 80px rgba(0,0,0,.24); }.modal-header { padding: 22px 25px; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; }.modal-header h2 { margin: 3px 0 0; font-size: 21px; }.seat-toolbar { padding: 13px 25px; background: #f8fafc; display: flex; justify-content: space-between; align-items: center; }.seat-legend { display: flex; gap: 17px; color: var(--muted); font-size: 11px; }.seat-legend span { display: flex; gap: 5px; align-items: center; }.seat-dot { width: 11px; height: 11px; border: 1px solid #bbc6d1; background: white; }.seat-dot.selected { background: var(--blue); border-color: var(--blue); }.seat-dot.unavailable { background: #dfe5eb; border-color: #dfe5eb; }.recommend-note { color: var(--blue); font-size: 11px; display: flex; align-items: center; gap: 5px; }.recommend-note svg { width: 14px; }
.seat-map-wrap { padding: 25px 35px; background: #f5f7f9; }.cold-door { width: 170px; margin: 0 auto 25px; border-bottom: 3px solid var(--blue); color: var(--blue); text-align: center; padding-bottom: 6px; font-size: 11px; }.cold-door svg { width: 15px; vertical-align: middle; }.seat-map { display: grid; grid-template-columns: repeat(8, 1fr); gap: 9px; max-width: 680px; margin: 0 auto; position: relative; }.seat { height: 48px; border: 1px solid #cbd5df; background: white; color: #536174; border-radius: 5px; font-size: 11px; position: relative; }.seat:hover:not(:disabled) { border-color: var(--blue); color: var(--blue); }.seat.selected { background: var(--blue); color: white; border-color: var(--blue); }.seat:disabled { background: #dfe5eb; color: #a7b1bc; border-color: #dfe5eb; cursor: not-allowed; }.seat.aisle-gap { margin-bottom: 28px; }.seat.recommended::after { content: "推荐"; position: absolute; top: -6px; right: -5px; background: var(--orange); color: white; font-size: 7px; padding: 1px 3px; border-radius: 3px; }.route-hint { color: var(--muted); font-size: 10px; margin: 20px auto 0; max-width: 680px; border-top: 1px dashed #a9bfd8; padding-top: 8px; }.route-hint svg { width: 14px; vertical-align: middle; color: var(--blue); }.seat-footer, .checkout-footer { border-top: 1px solid var(--line); padding: 18px 25px; display: flex; justify-content: space-between; align-items: center; }.seat-footer small, .seat-footer strong, .seat-footer span { display: block; }.seat-footer small { color: var(--muted); font-size: 10px; }.seat-footer strong { font-size: 15px; }.seat-footer span { color: var(--orange); font-size: 11px; margin-top: 2px; }
.checkout-panel { width: min(540px, calc(100vw - 32px)); }.checkout-body { padding: 22px 25px; }.checkout-location { display: grid; grid-template-columns: auto 1fr auto; gap: 11px; align-items: center; padding-bottom: 18px; border-bottom: 1px solid var(--line); }.checkout-location strong, .checkout-location small { display: block; }.checkout-location small { color: var(--muted); margin-top: 3px; }.checkout-location .status b { margin-left: 4px; }.summary-list { margin: 14px 0; }.summary-list div { display: flex; justify-content: space-between; padding: 7px 0; font-size: 12px; }.summary-list dt { color: var(--muted); }.summary-list dd { margin: 0; }.summary-list .discount { color: var(--green); }.summary-list .total { border-top: 1px solid var(--line); margin-top: 8px; padding-top: 14px; font-weight: 700; font-size: 15px; }.summary-list .total dd { color: var(--orange); font-size: 20px; }.agreement-check { display: flex; gap: 8px; font-size: 11px; line-height: 1.6; color: var(--muted); padding: 11px; background: #f8fafc; border-radius: 7px; }.agreement-check input { margin-top: 3px; accent-color: var(--blue); }.agreement-check a { color: var(--blue); text-decoration: none; }.payment-methods { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 17px; }.payment { border: 1px solid var(--line); padding: 11px; display: flex; justify-content: space-between; align-items: center; border-radius: 8px; cursor: pointer; }.payment.active { border-color: var(--blue); background: var(--blue-soft); color: var(--blue); }.payment input { display: none; }.payment span { display: flex; align-items: center; gap: 5px; font-size: 11px; }.payment svg { width: 16px; }.checkout-footer small, .checkout-footer strong { display: block; }.checkout-footer small { color: var(--muted); font-size: 10px; }.checkout-footer strong { color: var(--orange); font-size: 22px; }
.drawer { place-items: stretch end; }.drawer-panel { width: min(440px, 100vw); height: 100%; background: white; position: relative; z-index: 1; padding: 25px; display: flex; flex-direction: column; box-shadow: -15px 0 50px rgba(0,0,0,.18); }.drawer-panel header { display: flex; justify-content: space-between; align-items: center; }.drawer-panel h2 { margin: 3px 0 0; }.alert-summary { margin: 25px 0; padding: 16px; background: var(--red-soft); color: var(--red); display: flex; align-items: center; gap: 12px; border-left: 3px solid var(--red); }.alert-summary > svg { width: 25px; }.alert-summary strong, .alert-summary span { display: block; }.alert-summary span { font-size: 11px; color: #8c6262; margin-top: 3px; }.detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; border-bottom: 1px solid var(--line); padding-bottom: 23px; }.detail-grid small, .detail-grid strong { display: block; }.detail-grid small { color: var(--muted); font-size: 10px; }.detail-grid strong { font-size: 12px; margin-top: 4px; }.drawer-field { margin-top: 22px; display: flex; flex-direction: column; gap: 8px; }.drawer-field textarea { min-height: 130px; border: 1px solid var(--line); border-radius: 8px; padding: 11px; resize: vertical; }.drawer-panel footer { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: auto; }
.toast { position: fixed; left: 50%; bottom: 35px; transform: translateX(-50%); z-index: 200; background: var(--navy); color: white; min-width: 250px; padding: 13px 18px; border-radius: 8px; box-shadow: var(--shadow); display: flex; align-items: center; gap: 9px; }.toast svg { width: 18px; color: #66d1aa; }
/* 前台广告位：无在投素材时整块隐藏（由脚本控制 hidden），有素材时不影响主流程操作 */
.ad-slot { margin: 18px 0; }
/* 用户端页脚：运营主体、客服电话与备案号（备案展示要求） */
.site-footer { margin: 28px 0 8px; padding-top: 14px; border-top: 1px solid var(--line);
  display: flex; gap: 14px; flex-wrap: wrap; color: var(--muted); font-size: 11px; }
.site-footer a { color: var(--muted); text-decoration: none; }
.site-footer a:hover { color: var(--blue); }
/* 结算页免费时长抵扣开关：默认开启，可关闭后把余额留到下次 */
.summary-list .free-row dt small { display: block; color: var(--muted); font-size: 10px; margin-top: 2px; }
.summary-list .free-row dd { display: flex; align-items: center; gap: 8px; }
.mini-switch { width: 38px; height: 20px; border-radius: 10px; border: 1px solid #cbd5df; background: #e6ebf1; position: relative; padding: 0; cursor: pointer; }
.mini-switch span { position: absolute; top: 1px; left: 1px; width: 16px; height: 16px; border-radius: 50%; background: white; box-shadow: 0 1px 3px rgba(0,0,0,.2); transition: left .15s ease; }
.mini-switch.on { background: var(--blue); border-color: var(--blue); }
.mini-switch.on span { left: 19px; }
.mini-switch:disabled { opacity: .5; cursor: not-allowed; }
/* 运营参数里的开关行：标签 + 开关 + 状态文字 */
.settings-field.switch-field { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 4px 10px; }
.settings-field.switch-field .switch-hint { grid-column: 1 / -1; color: var(--muted); font-size: 10px; }
.ad-slot-body { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center;
  background: linear-gradient(90deg, #eef5ff, #f8fbff); border: 1px dashed #bcd3ef; border-radius: 10px; padding: 13px 16px; }
.ad-slot-tag { font-size: 10px; color: #6b7c93; border: 1px solid #c8d7e8; border-radius: 4px; padding: 1px 5px; }
.ad-slot-body strong, .ad-slot-body small { display: block; }
.ad-slot-body strong { font-size: 13px; }
.ad-slot-body small { color: var(--muted); font-size: 11px; margin-top: 3px; }
.ad-slot-by { color: #6b7c93; font-size: 11px; white-space: nowrap; }

@media (max-width: 1050px) {
  .topbar { padding: 0 24px; }.customer-shell { padding-left: 24px; padding-right: 24px; }.hero-copy { padding: 38px; }.content-grid { grid-template-columns: 1fr; }.secondary-column { display: grid; grid-template-columns: 1fr 1fr; }.lease-card { grid-row: span 2; }.recommendation-grid { grid-template-columns: 1fr; }.admin-grid { grid-template-columns: 1fr; }.metric-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 760px) {
  .topbar { height: 62px; padding: 0 14px; gap: 12px; }.brand small, .desktop-only, .global-search, .location-button span, .location-button svg:last-child { display: none; }.brand-mark { width: 34px; height: 34px; }.topbar-center { flex: 0; }.topbar-actions { gap: 7px; }.icon-button, .avatar-button { width: 35px; height: 35px; }
  .customer-shell { padding: 0 14px 82px; }.customer-nav { position: fixed; bottom: 0; left: 0; right: 0; height: 65px; background: white; z-index: 60; border-top: 1px solid var(--line); justify-content: space-around; gap: 0; padding-bottom: env(safe-area-inset-bottom); }.nav-item { flex-direction: column; gap: 2px; border: 0; font-size: 10px; padding: 7px 24px; }.nav-item.active { border-top: 2px solid var(--blue); }.nav-item em { position: absolute; top: 5px; right: 15px; }
  .hero-panel { grid-template-columns: 1fr; margin: 14px 0; }.hero-copy { padding: 28px 22px; }.hero-copy h1 { font-size: 30px; }.hero-copy > p { font-size: 14px; }.hero-actions { align-items: flex-start; flex-direction: column; }.trust-row { gap: 10px; flex-wrap: wrap; }.hero-scene { display: none; }
  .section-block, .lease-card, .nearby-card { padding: 20px 16px; }.rent-form { grid-template-columns: 1fr; }.full-width { grid-column: auto; }.choice-row { grid-template-columns: 1fr 1fr; }.form-footer { align-items: stretch; flex-direction: column; }.form-footer .button { width: 100%; }.secondary-column { display: flex; }.recommendation-grid { grid-template-columns: 1fr; }
  .page-title { align-items: flex-start; }.page-title h1 { font-size: 23px; }.page-title .button { font-size: 0; width: 42px; padding: 0; }.page-title .button svg { margin: 0; }.filter-tabs { width: 100%; overflow-x: auto; }.filter-tabs button { white-space: nowrap; flex: 1; padding: 8px; }.order-row { grid-template-columns: 48px 1fr; padding: 16px; }.order-price { grid-column: 2; text-align: left; display: flex; align-items: center; justify-content: space-between; }.profile-head { padding: 22px 17px; }
  .admin-shell { grid-template-columns: 1fr; }.admin-sidebar { position: fixed; z-index: 80; left: -250px; top: 62px; bottom: 0; width: 238px; min-height: 0; transition: .2s; }.admin-sidebar.open { left: 0; box-shadow: 15px 0 40px rgba(0,0,0,.2); }.admin-header { height: 74px; padding: 0 15px; }.mobile-menu { display: inline-grid; margin-right: 8px; }.admin-header > div:first-child { display: grid; grid-template-columns: auto 1fr; }.admin-header > div:first-child .section-kicker { grid-column: 2; }.admin-header > div:first-child h1 { grid-column: 2; }.admin-header-actions .button { display: none; }.admin-page { padding: 15px; }.admin-banner { align-items: flex-start; gap: 15px; }.admin-banner .button { display: none; }.metric-grid { grid-template-columns: 1fr 1fr; gap: 9px; }.metric-grid article { padding: 13px; }.metric-icon { width: 35px; height: 35px; }.metric-grid strong { font-size: 17px; }.task-item { grid-template-columns: 4px 34px 1fr 15px; }.task-item em { display: none; }.legend-inline { display: none; }.mini-slot-map { grid-template-columns: repeat(6, 1fr); }.mini-slot.aisle { grid-column: span 6; }
  .modal-panel { width: 100%; max-height: 92vh; position: absolute; bottom: 0; border-radius: 14px 14px 0 0; display: flex; flex-direction: column; }
  .modal-panel > .modal-header { flex: 0 0 auto; }
  .seat-map-wrap, .checkout-body, .warehouse-body { overflow-y: auto; flex: 1 1 auto; min-height: 0; }
  .seat-map-wrap { padding: 20px 14px; overflow-x: auto; }.seat-map { min-width: 600px; }
  .seat-toolbar { align-items: flex-start; gap: 10px; flex: 0 0 auto; }.recommend-note { display: none; }
  .seat-footer, .checkout-footer, .quick-footer { position: sticky; bottom: 0; z-index: 3; background: white; flex: 0 0 auto; box-shadow: 0 -8px 18px rgba(16,36,62,.08); }
  .payment-methods { grid-template-columns: 1fr; }.detail-grid { grid-template-columns: 1fr; }
}

@media (max-width: 420px) {
  .brand strong { font-size: 14px; }.hero-copy h1 { font-size: 27px; }.metric-grid { grid-template-columns: 1fr; }.temperature-row { grid-template-columns: 1fr; }.profile-stats { padding-left: 5px; padding-right: 5px; }.seat-footer .button { padding: 0 11px; }.seat-footer span { display: none; }
}

/* ---------- 最短租期提示与实时报价 ---------- */
.field-hint { display: flex; align-items: center; gap: 5px; color: var(--muted); font-size: 11px; }
.field-hint svg { width: 13px; color: var(--orange); }
.price-preview { border: 1px solid #d7e5f8; background: #f5f9ff; border-radius: 10px; padding: 16px 18px; display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.price-preview-main { display: flex; flex-direction: column; gap: 3px; }
.price-preview-main strong { font-size: 24px; color: var(--blue-dark); }
.price-preview-main small { color: var(--muted); font-size: 11px; }
.price-preview-detail { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px 18px; }
.price-preview-detail span { font-size: 11px; color: #4a5a70; display: flex; align-items: center; gap: 6px; }
.price-preview-detail span::before { content: ""; width: 5px; height: 5px; background: var(--cyan); border-radius: 50%; }

/* ---------- 服务保障卡（替换首页广告活动） ---------- */
.assurance-card { background: var(--surface); border: 1px solid var(--line); border-radius: 12px; padding: 22px; }
.assurance-list { list-style: none; margin: 14px 0 0; padding: 0; }
.assurance-list li { display: flex; gap: 11px; align-items: center; padding: 12px 0; border-top: 1px solid var(--line); }
.assurance-list svg { width: 19px; color: var(--blue); }
.assurance-list strong, .assurance-list small { display: block; }
.assurance-list strong { font-size: 13px; }
.assurance-list small { color: var(--muted); font-size: 11px; margin-top: 2px; }
.assurance-note { margin: 14px 0 0; padding: 10px 12px; background: #f6f8fb; border-radius: 8px; color: var(--muted); font-size: 11px; line-height: 1.6; display: flex; gap: 7px; }
.assurance-note svg { width: 14px; flex: 0 0 auto; margin-top: 2px; color: var(--blue); }

/* ---------- 定向推送消息 ---------- */
.message.targeted { background: #fffaf2; }
.message-icon.gift { background: var(--orange-soft); color: var(--orange); }

/* ---------- 我的 · 免费时长入口 ---------- */
.profile-stats button { border: 0; background: none; text-align: center; font: inherit; color: inherit; cursor: pointer; position: relative; }
.profile-stats button::after { content: "去赚时长"; position: absolute; left: 50%; transform: translateX(-50%); bottom: -14px; font-size: 9px; color: var(--orange); white-space: nowrap; }

/* ---------- 后台：角色切换与权限提示 ---------- */
.role-switcher { display: flex; align-items: center; gap: 7px; height: 38px; padding: 0 11px; border: 1px solid var(--line); border-radius: 8px; background: white; }
.role-switcher > svg { width: 16px; color: var(--blue); }
.role-switcher > svg:last-child { width: 13px; color: var(--muted); }
.role-switcher select { border: 0; background: transparent; font-size: 12px; font-weight: 600; max-width: 190px; appearance: none; cursor: pointer; }
.permission-strip { display: flex; align-items: center; gap: 10px; background: #eef6ff; border: 1px solid #d5e6fb; color: #2a4a75; padding: 11px 16px; border-radius: 9px; margin-bottom: 16px; font-size: 12px; }
.permission-strip svg { width: 16px; color: var(--blue); flex: 0 0 auto; }
.permission-strip .text-button { margin-left: auto; font-size: 12px; }
.placeholder-icon.denied { background: var(--red-soft); color: var(--red); }

/* ---------- 后台：通用表格与规则列表 ---------- */
.table-scroll { overflow-x: auto; margin-top: 16px; }
.price-table, .perm-table { width: 100%; border-collapse: collapse; font-size: 12px; min-width: 620px; }
.price-table th, .price-table td, .perm-table th, .perm-table td { border-bottom: 1px solid var(--line); padding: 12px 10px; text-align: left; vertical-align: top; }
.price-table thead th, .perm-table thead th { background: #f7f9fb; color: var(--muted); font-size: 11px; font-weight: 600; white-space: nowrap; }
.price-table tbody th { width: 140px; }
.price-table strong, .price-table small, .perm-table strong, .perm-table small { display: block; }
.price-table td strong { color: var(--blue-dark); font-size: 15px; }
.price-table small, .perm-table small { color: var(--muted); font-size: 10px; margin-top: 3px; }
.perm-table td { text-align: center; }
.perm-table td:first-child, .perm-table th:first-child { text-align: left; }
.mark { display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; font-size: 11px; font-weight: 700; }
.mark.yes { background: var(--green-soft); color: var(--green); }
.mark.partial { background: var(--orange-soft); color: var(--orange); }
.mark.no { background: #f0f2f5; color: #a4aeb9; }
.rule-list { margin-top: 8px; }
.rule-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 13px 0; border-top: 1px solid var(--line); }
.rule-row:first-child { border-top: 0; }
.rule-row strong { font-size: 12px; display: block; }
.rule-row small { display: block; color: var(--muted); font-size: 10px; margin-top: 3px; }
.rule-row > span { color: var(--blue-dark); font-weight: 700; font-size: 12px; white-space: nowrap; }
.rule-form .rule-row { padding: 11px 0; }
.audience-result { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 18px; padding: 14px; background: #f7f9fb; border-radius: 9px; }
.audience-result div { text-align: center; }
.audience-result strong { display: block; font-size: 18px; color: var(--blue-dark); }
.audience-result span { font-size: 10px; color: var(--muted); }
.placement-list { margin-top: 8px; }
.placement-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 0; border-top: 1px solid var(--line); }
.placement-row:first-child { border-top: 0; }
.placement-row strong { display: block; font-size: 12px; }
.placement-row small { display: block; color: var(--muted); font-size: 10px; margin-top: 3px; }
.placement-row .switch { flex: 0 0 auto; }
.placement-row .switch.on { background: var(--green); }
.placement-row .switch.locked { opacity: .75; }
.package-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; margin-top: 16px; }
.package-item { border: 1px solid var(--line); border-radius: 9px; padding: 15px; }
.package-item strong { display: block; margin: 5px 0 3px; font-size: 14px; }
.package-item em { display: block; font-style: normal; color: var(--blue-dark); font-weight: 700; font-size: 14px; }
.package-item small { display: block; color: var(--muted); font-size: 11px; margin-top: 6px; }
.stack-card { margin-top: 18px; }
.admin-tip { display: flex; gap: 8px; align-items: flex-start; margin: 16px 0 0; padding: 12px 15px; background: #fffaf0; border: 1px solid #f3e0bd; border-radius: 9px; color: #7a6540; font-size: 11px; line-height: 1.7; }
.admin-tip svg { width: 15px; flex: 0 0 auto; margin-top: 2px; color: var(--orange); }
.metric-grid.slim { margin-bottom: 0; }
.metric-grid.slim article { box-shadow: none; }
.campaign-banner { background: #1a4f8f; }

/* ---------- 后台：只读权限标记 ---------- */
.admin-sidebar nav button .ro-flag { margin-left: auto; font-size: 9px; font-weight: 500; background: #3a5578; color: #cfe0f5; padding: 1px 5px; border-radius: 6px; }
.admin-sidebar nav button span + .ro-flag { margin-left: 6px; }

/* ---------- 用户可见范围与跨区申请 ---------- */
.scope-note { display: flex; align-items: center; gap: 7px; margin: 12px 0 0; padding: 10px 13px; background: #f4f8fd; border: 1px solid #dde9f7; border-radius: 8px; color: #3d5675; font-size: 11px; line-height: 1.6; }
.scope-note svg { width: 14px; flex: 0 0 auto; color: var(--blue); }
.visibility-note { display: flex; gap: 7px; align-items: flex-start; margin: 10px 0 4px; padding: 10px 12px; background: #f6f8fb; border-radius: 8px; color: var(--muted); font-size: 11px; line-height: 1.6; }
.visibility-note svg { width: 14px; flex: 0 0 auto; margin-top: 2px; color: var(--blue); }
.wide-button { width: 100%; margin-top: 14px; }
.nearby-item .status { white-space: nowrap; }

.region-panel { width: min(560px, calc(100vw - 32px)); }
.region-body { padding: 20px 24px 24px; }
.region-current { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 16px 18px; background: var(--navy); color: white; border-radius: 10px; }
.region-current small, .region-current strong { display: block; }
.region-current small { color: #9fb2c9; font-size: 11px; }
.region-current strong { font-size: 15px; margin-top: 3px; }
.region-section { margin-top: 20px; }
.region-section > strong { display: block; font-size: 13px; margin-bottom: 10px; }
.region-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 0; border-top: 1px solid var(--line); }
.region-row:first-of-type { border-top: 0; }
.region-row strong, .region-row small { display: block; }
.region-row strong { font-size: 13px; }
.region-row small { color: var(--muted); font-size: 10px; margin-top: 3px; }
.region-conditions { list-style: none; margin: 0; padding: 0; }
.region-conditions li { display: flex; gap: 8px; align-items: flex-start; font-size: 12px; color: #46566e; padding: 7px 0; }
.region-conditions svg { width: 14px; flex: 0 0 auto; margin-top: 2px; color: var(--green); }
.region-notice { display: flex; gap: 9px; align-items: flex-start; margin-top: 18px; padding: 13px 14px; background: #eef6ff; border: 1px solid #d7e7fb; border-radius: 9px; color: #33506f; font-size: 11px; line-height: 1.7; }
.region-notice svg { width: 15px; flex: 0 0 auto; margin-top: 2px; color: var(--blue); }
.region-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 20px; }

@media (max-width: 760px) {
  .region-actions { grid-template-columns: 1fr; }
}

/* ---------- 一键租库：极简链路 ---------- */
.button-hero { height: 52px; padding: 0 26px; font-size: 16px; border-radius: 10px; }
.button-hero svg { width: 19px; }
.quick-steps { display: flex; align-items: center; gap: 9px; margin-top: 20px; color: #9fb2c9; font-size: 12px; }
.quick-steps span { display: flex; align-items: center; gap: 6px; }
.quick-steps b { width: 17px; height: 17px; border-radius: 50%; background: #24405f; color: #cfe2ff; font-size: 10px; display: grid; place-items: center; font-weight: 600; }
.quick-steps svg { width: 13px; }

.advanced-toggle { display: flex; align-items: center; gap: 8px; height: 44px; padding: 0 14px; border: 1px dashed #c7d3e1; background: #fafbfd; border-radius: 8px; color: var(--muted); font-size: 12px; }
.advanced-toggle:hover { border-color: var(--blue); color: var(--blue); }
.advanced-toggle svg { width: 16px; }
.advanced-toggle svg:last-child { margin-left: auto; transition: transform .2s; }
.advanced-toggle.open svg:last-child { transform: rotate(180deg); }
.advanced-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; padding: 18px; border: 1px solid var(--line); border-radius: 10px; background: #fafcfe; }
.advanced-fields .switch-line { grid-column: 1 / -1; background: white; }

.consent-line { margin: 14px 0 0; font-size: 11px; line-height: 1.7; color: var(--muted); }
.consent-line a { color: var(--blue); text-decoration: none; }
.button-lg { height: 48px; padding: 0 24px; font-size: 15px; }
.checkout-footer .button-lg { min-width: 190px; }

.quick-panel { width: min(520px, calc(100vw - 32px)); }
.quick-body { padding: 20px 24px 4px; }
.quick-step { display: grid; grid-template-columns: 24px 1fr; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.quick-step:first-child { padding-top: 4px; }
.quick-index { width: 22px; height: 22px; border-radius: 50%; background: var(--blue-soft); color: var(--blue); display: grid; place-items: center; font-size: 11px; font-weight: 700; }
.quick-step > div > strong { display: block; font-size: 13px; margin-bottom: 9px; }
.chip-row { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { border: 1px solid var(--line); background: white; border-radius: 20px; padding: 8px 15px; font-size: 12px; color: #55637a; }
.chip:hover { border-color: var(--blue); color: var(--blue); }
.chip.active { background: var(--blue); border-color: var(--blue); color: white; font-weight: 600; }
.quick-stepper { height: 40px; }
.quick-summary { margin: 16px 0 4px; padding: 14px 16px; background: #f7f9fc; border-radius: 10px; }
.quick-summary-row { display: flex; justify-content: space-between; gap: 14px; padding: 6px 0; font-size: 12px; }
.quick-summary-row span { color: var(--muted); }
.quick-summary-row strong { text-align: right; }
.quick-more { margin-top: 10px; border: 0; background: none; padding: 0; color: var(--blue); font-size: 11px; }
.quick-footer { border-top: 1px solid var(--line); padding: 16px 24px; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.quick-footer small, .quick-footer strong { display: block; }
.quick-footer small { color: var(--muted); font-size: 10px; }
.quick-footer strong { color: var(--orange); font-size: 23px; }

@media (max-width: 760px) {
  .button-hero { width: 100%; }
  .quick-steps { flex-wrap: wrap; gap: 6px; font-size: 11px; }
  .advanced-fields { grid-template-columns: 1fr; gap: 16px; }
  .quick-panel { width: 100%; position: absolute; bottom: 0; border-radius: 14px 14px 0 0; max-height: 92vh; overflow: auto; }
  .quick-footer { position: sticky; bottom: 0; background: white; flex-direction: column; align-items: stretch; }
  .quick-footer .button-lg { width: 100%; }
  .checkout-footer { flex-direction: column; align-items: stretch; }
  .checkout-footer .button-lg { width: 100%; min-width: 0; }
}

/* ---------- 冷库主账号套餐与系统服务协议 ---------- */
.subscription-grid { margin-bottom: 18px; }
.subscription-main { background: var(--navy); color: white; border-radius: 12px; padding: 24px 26px; display: grid; grid-template-columns: 1fr auto; gap: 10px 24px; align-items: center; }
.subscription-main h3 { margin: 4px 0 6px; font-size: 24px; }
.subscription-main p { margin: 0; color: #a9bcd4; font-size: 12px; }
.subscription-main .section-kicker { color: #7fb4ff; }
.subscription-countdown { text-align: right; }
.subscription-countdown small, .subscription-countdown span { color: #a9bcd4; font-size: 11px; }
.subscription-countdown strong { font-size: 40px; margin: 0 4px; }
.subscription-progress { grid-column: 1 / -1; height: 6px; background: #24395a; border-radius: 3px; overflow: hidden; }
.subscription-progress span { display: block; height: 100%; background: var(--cyan); }
.subscription-actions { grid-column: 1 / -1; display: flex; align-items: center; gap: 10px; margin-top: 6px; }
.subscription-actions .status-good { background: rgba(31,157,112,.18); color: #6fe0b4; }

.contract-summary { margin-top: 16px; }
.contract-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.contract-head strong, .contract-head small { display: block; }
.contract-head strong { font-size: 15px; }
.contract-head small { color: var(--muted); font-size: 11px; margin-top: 4px; }
.contract-terms { list-style: none; margin: 14px 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 6px 22px; }
.contract-terms li { display: flex; gap: 8px; align-items: flex-start; font-size: 12px; line-height: 1.7; color: #46566e; padding: 6px 0; }
.contract-terms svg { width: 14px; flex: 0 0 auto; margin-top: 3px; color: var(--green); }

@media (max-width: 760px) {
  .subscription-main { grid-template-columns: 1fr; }
  .subscription-countdown { text-align: left; }
  .subscription-actions { flex-wrap: wrap; }
  .contract-terms { grid-template-columns: 1fr; }
}

/* ---------- 功能开放范围与支付接口接入 ---------- */
.scope-group { padding: 14px 0; border-top: 1px solid var(--line); }
.scope-group:first-child { border-top: 0; padding-top: 4px; }
.scope-tag { display: inline-block; font-size: 11px; font-weight: 600; padding: 3px 9px; border-radius: 5px; margin-bottom: 10px; }
.scope-tag.open { background: var(--green-soft); color: var(--green); }
.scope-tag.paid { background: var(--orange-soft); color: var(--orange); }
.scope-items { display: flex; flex-wrap: wrap; gap: 7px; }
.scope-item { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; padding: 6px 10px; border-radius: 16px; background: #f4f7fa; color: #47566c; }
.scope-item svg { width: 13px; color: var(--green); }
.scope-item.locked { background: #fdf6ec; color: #8a6a3c; }
.scope-item.locked svg { color: var(--orange); }

.onboarding-lead { display: flex; gap: 8px; align-items: flex-start; margin: 14px 0 6px; padding: 11px 13px; background: #f6f8fb; border-radius: 8px; color: var(--muted); font-size: 11px; line-height: 1.7; }
.onboarding-lead svg { width: 14px; flex: 0 0 auto; margin-top: 2px; color: var(--blue); }
.onboarding-steps { margin-top: 8px; }
.onboarding-step { display: grid; grid-template-columns: 26px 1fr auto; gap: 12px; align-items: center; padding: 13px 0; border-top: 1px solid var(--line); }
.onboarding-step:first-child { border-top: 0; }
.onboarding-index { width: 24px; height: 24px; border-radius: 50%; background: #eef1f5; color: #78859a; display: grid; place-items: center; font-size: 11px; font-weight: 700; }
.onboarding-step.done .onboarding-index { background: var(--green-soft); color: var(--green); }
.onboarding-step strong, .onboarding-step small { display: block; }
.onboarding-step strong { font-size: 13px; }
.onboarding-step small { color: var(--muted); font-size: 10px; margin-top: 3px; }

@media (max-width: 760px) {
  .onboarding-step { grid-template-columns: 26px 1fr; }
  .onboarding-step .status { grid-column: 2; width: fit-content; }
}

/* ---------- 协议条款全文 ---------- */
.clause-list { margin-top: 8px; }
.clause-block { padding: 18px 0; border-top: 1px solid var(--line); }
.clause-block:first-child { border-top: 0; padding-top: 4px; }
.clause-block h3 { margin: 0 0 10px; font-size: 15px; color: var(--navy); }
.clause-items { margin: 0; padding-left: 22px; }
.clause-items li { font-size: 12px; line-height: 1.85; color: #46566e; margin-bottom: 6px; }
.clause-items li::marker { color: var(--blue); font-weight: 600; }

/* ---------- 独立入口与实施方案评估 ---------- */
.entry-grid { display: grid; grid-template-columns: 1.35fr 1fr; gap: 24px; margin-top: 10px; align-items: start; }
.entry-grid .metric-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
.entry-grid .metric-grid article { padding: 14px; }

@media (max-width: 1000px) {
  .entry-grid { grid-template-columns: 1fr; }
}

/* ---------- 冷库介绍（用户端）与冷库资料（后台） ---------- */
.nearby-item.clickable { width: 100%; border: 0; border-top: 1px solid var(--line); background: none; text-align: left; cursor: pointer; font: inherit; color: inherit; }
.nearby-item.clickable:hover { background: #f8fafc; }
.nearby-item.clickable:hover strong { color: var(--blue); }

.warehouse-panel { width: min(600px, calc(100vw - 32px)); }
.warehouse-body { padding: 20px 24px 24px; }
.warehouse-hero { display: flex; align-items: center; justify-content: space-between; gap: 16px; background: var(--navy); color: white; border-radius: 12px; padding: 20px 22px; }
.warehouse-hero h3 { margin: 8px 0 6px; font-size: 20px; }
.warehouse-hero p { margin: 0; display: flex; align-items: center; gap: 6px; color: #a9bcd4; font-size: 12px; }
.warehouse-hero p svg { width: 14px; }
.warehouse-shape { width: 52px; height: 52px; border-radius: 12px; background: rgba(255,255,255,.1); display: grid; place-items: center; flex: 0 0 auto; }
.warehouse-shape svg { width: 26px; }
.warehouse-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 16px; }
.warehouse-facts > div { background: #f7f9fb; border-radius: 9px; padding: 12px 14px; }
.warehouse-facts small, .warehouse-facts strong { display: block; }
.warehouse-facts small { color: var(--muted); font-size: 10px; }
.warehouse-facts strong { font-size: 13px; margin-top: 4px; }
.warehouse-section { margin-top: 18px; }
.warehouse-section > strong { display: block; font-size: 13px; margin-bottom: 9px; }
.warehouse-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 22px; }

.media-grid { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.media-item { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; padding: 8px 11px; background: #f4f7fa; border-radius: 8px; color: #47566c; }
.media-item svg { width: 14px; color: var(--blue); }
.text-open { color: var(--green) !important; }
.text-locked { color: #a4aeb9 !important; }
.warehouse-preview { margin-top: 12px; }
.preview-note { margin: 12px 0 0; color: var(--muted); font-size: 11px; }

.interface-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px; margin-top: 14px; }
.interface-item { border: 1px solid var(--line); border-radius: 8px; padding: 11px 13px; background: #fafcfe; }
.interface-item strong { display: block; font-size: 12px; margin-bottom: 5px; }
.interface-item code { font-size: 10px; color: #5b6b82; word-break: break-all; font-family: ui-monospace, Consolas, monospace; }

@media (max-width: 760px) {
  .warehouse-facts { grid-template-columns: 1fr; }
  .warehouse-actions { grid-template-columns: 1fr; }
}

/* ---------- 待办中心：时限规则与动态抽屉 ---------- */
.task-sla { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
.task-sla-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.task-sla-head strong { font-size: 13px; }
.task-sla-head span { font-size: 10px; color: var(--orange); background: var(--orange-soft); padding: 3px 8px; border-radius: 5px; }
.task-sla .rule-row { padding: 9px 0; }
.task-sla .rule-row strong { font-size: 11px; }
.task-sla .rule-row > span { font-size: 10px; font-weight: 500; color: var(--muted); }

#taskBody { flex: 1; overflow-y: auto; padding-right: 2px; }
.drawer-hint { display: flex; gap: 8px; align-items: flex-start; margin-top: 16px; padding: 11px 13px; background: #f6f8fb; border-radius: 8px; color: var(--muted); font-size: 11px; line-height: 1.7; }
.drawer-hint svg { width: 14px; flex: 0 0 auto; margin-top: 2px; color: var(--blue); }
.drawer-transfer { padding-left: 0; margin-top: 10px; font-size: 12px; }
.alert-summary.info { background: #eef6ff; color: #2a4a75; border-left-color: var(--blue); }
.alert-summary.info > svg { color: var(--blue); }
.alert-summary.info span { color: #5b7699; }
.drawer-panel footer .button { width: 100%; }

/* ---------- 支付路径提示 ---------- */
.pay-path-note { display: flex; gap: 8px; align-items: flex-start; margin: 12px 0 0; padding: 11px 13px; background: #f6f8fb; border-radius: 8px; color: #47566e; font-size: 11px; line-height: 1.7; }
.pay-path-note svg { width: 14px; flex: 0 0 auto; margin-top: 2px; color: var(--blue); }

/* ---------- 冷库录入 ---------- */
.entry-buttons { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 16px; }
.entry-buttons .button { flex: 1 1 auto; }
.step-track { display: flex; align-items: center; gap: 6px; margin: 18px 0 20px; }
.step-track span { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font-size: 12px; font-weight: 600; background: #eef1f5; color: #78859a; flex: 0 0 auto; }
.step-track span.active { background: var(--blue); color: white; }
.step-track span.done { background: var(--green-soft); color: var(--green); }
.step-track i { flex: 1; height: 2px; background: #e7ecf2; }
.drawer-form { display: flex; flex-direction: column; gap: 14px; }
.drawer-input { display: flex; flex-direction: column; gap: 7px; }
.drawer-input > span { font-size: 12px; font-weight: 600; color: #3e4a5c; }
.drawer-input input, .drawer-input select { height: 42px; border: 1px solid var(--line); border-radius: 8px; padding: 0 12px; background: white; font-size: 13px; }
.drawer-input input:focus, .drawer-input select:focus { border-color: var(--blue); }
.file-drop { height: 44px; border: 1px dashed #c7d3e1; background: #fafbfd; border-radius: 8px; color: var(--muted); font-size: 12px; display: flex; align-items: center; justify-content: center; gap: 7px; }
.file-drop:hover { border-color: var(--blue); color: var(--blue); }
.file-drop svg { width: 15px; }

/* ---------- 温区类型体系与医药库 ---------- */
.seat-dot.medical { background: var(--green-soft); border-color: var(--green); }
.temp-groups { margin-top: 12px; }
.temp-group { border: 1px solid var(--line); border-radius: 10px; padding: 16px; margin-bottom: 12px; }
.temp-group:last-child { margin-bottom: 0; }
.temp-group.cold { background: #f2f8fd; border-color: #d3e4f5; }
.temp-group.warm { background: #fdf8f1; border-color: #f2e2c9; }
.temp-group-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.temp-group-head strong, .temp-group-head small { display: block; }
.temp-group-head strong { font-size: 15px; }
.temp-group-head small { color: var(--muted); font-size: 11px; margin-top: 3px; }
.temp-badge { font-size: 10px; padding: 3px 8px; border-radius: 5px; background: white; color: #5a6b80; white-space: nowrap; }
.temp-group .rule-list { margin-top: 10px; }
.temp-group .rule-row { padding: 8px 0; }
.temp-group .rule-row strong { font-size: 11px; font-weight: 500; }

/* ---------- 温度设定 ---------- */
.temp-range { width: 100%; margin: 16px 0 6px; accent-color: var(--blue); }
.temp-scale { display: flex; justify-content: space-between; color: var(--muted); font-size: 11px; margin-bottom: 10px; }
.temp-track { height: 6px; background: #e9eef3; border-radius: 3px; overflow: hidden; margin-bottom: 20px; }
.temp-track span { display: block; height: 100%; background: var(--cyan); }
#tempBody .detail-grid { border-bottom: 0; padding-bottom: 6px; }
.heading-actions { display: flex; align-items: center; gap: 9px; }
.manual-notice { display: flex; gap: 9px; align-items: flex-start; margin: 14px 0 18px; padding: 12px 14px; background: #fff8ec; border: 1px solid #f2e0bf; border-radius: 9px; color: #7a6540; font-size: 11px; line-height: 1.7; }
.manual-notice svg { width: 15px; flex: 0 0 auto; margin-top: 2px; color: var(--orange); }
.manual-notice strong { color: #8a5a12; }
.medical-cargo-row { border-top: 1px solid var(--line); margin-top: 4px; padding: 13px 0 4px; }
.medical-cargo-row strong { display: block; font-size: 12px; }
.medical-cargo-row small { display: block; color: var(--muted); font-size: 10px; margin-top: 3px; }

/* ---------- 库位规划示意 ---------- */
.plan-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; margin-top: 14px; }
.plan-card { border: 1px solid var(--line); border-radius: 10px; padding: 16px; background: #fbfcfe; }
.plan-card-head { margin-bottom: 12px; }
.plan-card-head strong { display: block; font-size: 14px; }
.plan-card-head small { display: block; color: var(--muted); font-size: 10px; margin-top: 3px; }
.plan-canvas { background: white; border: 1px solid var(--line); border-radius: 8px; padding: 12px; }
.plan-door { display: flex; align-items: center; justify-content: center; gap: 6px; color: var(--blue); font-size: 10px; padding-bottom: 8px; margin-bottom: 10px; border-bottom: 2px dashed #c9dcf5; }
.plan-door svg { width: 13px; }
.plan-block { display: flex; gap: 6px; }
.plan-shelf { flex: 1; height: 24px; border-radius: 4px; background: #e8f1fd; border: 1px solid #cfe0f7; color: #3f5c82; font-size: 9px; display: grid; place-items: center; }
.plan-aisle { margin: 8px 0; height: 22px; border-radius: 4px; background: #f4f6f9; border: 1px dashed #cfd8e3; color: #8b98a8; font-size: 9px; display: grid; place-items: center; letter-spacing: .05em; }
.plan-route { display: flex; gap: 6px; align-items: flex-start; margin: 12px 0 0; color: var(--muted); font-size: 10px; line-height: 1.6; }
.plan-route svg { width: 13px; flex: 0 0 auto; margin-top: 2px; color: var(--blue); }

/* ---------- 库位详情与规划交互 ---------- */
.plan-row { display: flex; gap: 4px; margin-bottom: 4px; }
.plan-row:last-child { margin-bottom: 0; }
.plan-slot { flex: 1; min-width: 0; height: 24px; border-radius: 4px; background: #e8f1fd; border: 1px solid #cfe0f7; color: #3f5c82; font-size: 9px; padding: 0; cursor: pointer; transition: .15s; }
.plan-slot:hover { background: var(--blue); border-color: var(--blue); color: white; }
.plan-hint { margin: 8px 0 0; color: #9aa6b5; font-size: 10px; }
.slot-panel { width: min(600px, calc(100vw - 32px)); }
.slot-body { padding: 20px 24px 24px; }
.slot-body .summary-list { margin-top: 4px; }

/* ---------- 免费时长（定向活动）弹窗 ---------- */
.reward-panel { width: min(560px, calc(100vw - 32px)); }
.reward-body { padding: 20px 24px 26px; }
.reward-hero { display: flex; align-items: center; justify-content: space-between; gap: 14px; background: var(--navy); color: white; padding: 18px 20px; border-radius: 10px; }
.reward-hero small, .reward-hero strong, .reward-hero span { display: block; }
.reward-hero small { color: #9fb2c9; font-size: 11px; }
.reward-hero strong { font-size: 30px; margin: 3px 0; }
.reward-hero strong em { font-size: 13px; font-style: normal; margin-left: 4px; }
.reward-hero > div > span { color: #9fb2c9; font-size: 11px; }
.reward-task { display: flex; align-items: center; justify-content: space-between; gap: 14px; border: 1px solid var(--line); border-radius: 10px; padding: 16px; margin-top: 14px; }
.reward-task strong, .reward-task small { display: block; }
.reward-task strong { font-size: 14px; }
.reward-task small { color: var(--muted); font-size: 11px; margin-top: 4px; }
.reward-task .button[disabled] { opacity: .55; cursor: not-allowed; }
.reward-records { margin-top: 20px; border-top: 1px solid var(--line); padding-top: 14px; }
.reward-records-head { display: flex; justify-content: space-between; align-items: center; font-size: 12px; color: var(--muted); }
.reward-records-head strong { color: var(--text); font-size: 13px; }
.reward-record { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; border-bottom: 1px dashed var(--line); font-size: 12px; }
.reward-record span small { display: block; color: var(--muted); font-size: 10px; margin-top: 2px; }
.reward-record strong.plus { color: var(--green); }
.reward-record strong.minus { color: var(--orange); }
.reward-rules { list-style: none; margin: 16px 0 0; padding: 0; }
.reward-rules li { display: flex; gap: 8px; align-items: flex-start; color: var(--muted); font-size: 11px; line-height: 1.7; margin-bottom: 8px; }
.reward-rules svg { width: 14px; flex: 0 0 auto; margin-top: 3px; color: var(--blue); }

@media (max-width: 900px) {
  .price-preview { flex-direction: column; align-items: stretch; }
  .price-preview-detail { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .role-switcher { padding: 0 8px; }
  .role-switcher select { max-width: 108px; font-size: 11px; }
  .permission-strip { flex-wrap: wrap; font-size: 11px; }
  .permission-strip .text-button { margin-left: 0; }
  .audience-result { grid-template-columns: 1fr; }
  .reward-task { flex-direction: column; align-items: stretch; }
  .admin-tip { font-size: 10px; }
}

/* ---------- 后台登录闸门 ---------- */
.admin-login { min-height: calc(100vh - 72px); display: grid; place-items: center; padding: 40px 20px; background: linear-gradient(180deg, #f3f7fc, #eef3f9); }
/* 用户端登录/注册闸门 */
.login-gate { min-height: calc(100vh - 72px); display: grid; place-items: center; padding: 40px 20px; background: linear-gradient(180deg, #eef6ff, #f7fbff); }
.login-gate-card { width: min(460px, 100%); background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 28px 30px; box-shadow: 0 18px 40px rgba(11, 24, 48, .08); display: grid; gap: 13px; }
.login-gate-card h2 { margin: 6px 0 0; font-size: 22px; }
.login-gate-card header p { margin: 8px 0 0; color: var(--muted); font-size: 12px; line-height: 1.7; }
.code-row { display: flex; gap: 9px; }
.code-row input { flex: 1; }
.code-row .button { flex: 0 0 auto; height: 42px; }
@media (max-width: 720px) {
  .login-gate { padding: 20px 14px; }
  .login-gate-card { padding: 22px 18px; }
}
.admin-login-card { width: min(520px, 100%); background: white; border: 1px solid var(--line); border-radius: 14px; padding: 30px 32px; box-shadow: 0 18px 40px rgba(11, 24, 48, .08); display: grid; gap: 14px; }
.admin-login-card h2 { margin: 6px 0 0; font-size: 22px; }
.admin-login-card header p { margin: 8px 0 0; color: var(--muted); font-size: 12px; line-height: 1.7; }
.login-field { display: grid; gap: 6px; }
.login-field > span { font-size: 12px; color: #46566e; }
.login-field input { height: 42px; border: 1px solid var(--line); border-radius: 8px; padding: 0 12px; font-size: 13px; }
.login-field input:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 3px rgba(23, 105, 224, .12); }
.login-error { margin: 0; padding: 10px 12px; border-radius: 8px; background: var(--red-soft); color: var(--red); font-size: 12px; }
.login-actions { display: flex; gap: 10px; }
.login-note { margin: 0; display: flex; justify-content: flex-end; }
.login-note .text-button { font-size: 12px; }
.login-actions .button { flex: 1; justify-content: center; }
.login-hint { border-top: 1px dashed var(--line); padding-top: 14px; }
.login-hint > strong { display: block; font-size: 12px; margin-bottom: 9px; }
.login-hint-grid { display: grid; gap: 8px; }
.login-hint-grid > span { display: grid; gap: 2px; font-size: 12px; color: #2b3a4f; }
.login-hint-grid b { font-weight: 600; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; }
.login-hint-grid em { font-style: normal; color: var(--muted); font-size: 11px; }

/* ---------- 后台当前身份 ---------- */
.admin-identity { display: flex; align-items: center; gap: 9px; padding: 5px 12px; border: 1px solid var(--line); border-radius: 9px; background: white; }
.admin-identity > svg { width: 17px; color: var(--blue); flex: 0 0 auto; }
.admin-identity > span { display: grid; }
.admin-identity strong { font-size: 12px; }
.admin-identity small { color: var(--muted); font-size: 10px; }

/* ---------- 扫码详情页 ---------- */
.scan-identity { display: flex; gap: 8px; align-items: center; padding: 9px 11px; border-radius: 8px; background: var(--green-soft); color: #1d6b52; font-size: 11px; margin-bottom: 12px; }
.scan-identity.locked { background: var(--red-soft); color: var(--red); }
.scan-identity svg { width: 14px; flex: 0 0 auto; }
.scan-stat { display: grid; grid-template-columns: repeat(auto-fit, minmax(122px, 1fr)); gap: 10px; margin-top: 12px; }
.scan-stat > span { display: grid; gap: 3px; padding: 9px 10px; background: #f7f9fb; border-radius: 8px; }
.scan-stat small { color: var(--muted); font-size: 10px; }
.scan-stat strong { font-size: 12px; word-break: break-all; }
.scan-tenant { margin-top: 14px; border: 1px solid var(--line); border-left: 3px solid var(--orange); border-radius: 10px; padding: 12px; }
.scan-tenant-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.scan-tenant-title { font-size: 13px; font-weight: 700; }
.scan-lease-empty { margin: 10px 0 0; color: var(--muted); font-size: 11px; }
.scan-alert { display: flex; gap: 8px; align-items: flex-start; margin-top: 12px; padding: 10px 12px; border-radius: 8px; font-size: 11px; line-height: 1.6; }
.scan-alert svg { width: 14px; flex: 0 0 auto; margin-top: 2px; }
.scan-alert.ok { background: var(--green-soft); color: #1d6b52; }
.scan-alert.warn { background: var(--orange-soft); color: #a95f13; }
.scan-alert.danger { background: var(--red-soft); color: var(--red); }
.scan-alert.action { background: var(--blue-soft); color: var(--blue-dark); }
.scan-foot { margin: 14px 0 0; color: var(--muted); font-size: 10px; }
.scan-denied { border-color: #f0c9c9; }
.scan-denied .button { margin-top: 12px; }
.status-bad { color: var(--red); background: var(--red-soft); }
.scan-log-type.warn { background: var(--orange-soft); color: #b86513; }

@media (max-width: 720px) {
  .admin-login { padding: 24px 14px; }
  .admin-login-card { padding: 22px 18px; }
  .scan-stat { grid-template-columns: 1fr 1fr; }
  .admin-identity small { display: none; }
}

/* ---------- 我的租赁：余额条与使用中租赁 ---------- */
.wallet-strip { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; background: linear-gradient(90deg, #eef6ff, #fff); margin-bottom: 16px; }
.wallet-strip-icon { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 10px; background: var(--blue); color: #fff; flex: 0 0 auto; }
.wallet-strip-icon svg { width: 19px; }
.wallet-strip > div { display: grid; }
.wallet-strip > div small { color: var(--muted); font-size: 10px; }
.wallet-strip > div strong { font-size: 18px; color: var(--blue-dark); }
.wallet-strip-note { margin-left: auto; color: var(--muted); font-size: 11px; }
.active-lease-box { display: grid; gap: 12px; margin-bottom: 18px; }
.active-lease-empty { display: flex; align-items: center; gap: 12px; padding: 18px; border: 1px dashed var(--line); border-radius: 12px; background: #fbfcfe; }
.active-lease-empty svg { width: 22px; color: var(--muted); }
.active-lease-empty > div { display: grid; }
.active-lease-empty small { color: var(--muted); font-size: 11px; }
.active-lease-empty .button { margin-left: auto; }
.active-lease-card { border: 1px solid #bfe3d3; border-left: 5px solid var(--green); border-radius: 14px; padding: 18px 20px; background: linear-gradient(180deg, #f2fbf7, #ffffff); box-shadow: 0 6px 18px rgba(31, 157, 112, .08); }
.active-lease-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.active-lease-head .status { display: inline-flex; align-items: center; gap: 6px; }
.active-lease-head .status svg { width: 13px; }
.active-lease-head > strong { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; color: var(--muted); }
.active-lease-card h3 { margin: 12px 0 4px; font-size: 18px; }
.active-lease-slots { margin: 0; color: var(--blue); font-size: 13px; }
.active-lease-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 14px 0; }
.active-lease-facts > div { display: grid; gap: 3px; padding: 9px 10px; background: #fff; border: 1px solid var(--line); border-radius: 9px; }
.active-lease-facts small { color: var(--muted); font-size: 10px; }
.active-lease-facts strong { font-size: 12px; }
.active-lease-facts strong.urgent { color: var(--red); }
.active-lease-ops { display: flex; flex-wrap: wrap; gap: 9px; }
.active-lease-ops .button { height: 38px; }
.button-danger-ghost { background: #fff; border: 1px solid #f0c9c9; color: var(--red); }
.button-danger-ghost:hover { background: var(--red-soft); }

/* ---------- 续租与充值 ---------- */
.renew-panel, .wallet-panel { width: min(560px, calc(100vw - 32px)); }
.renew-body, .wallet-body { padding: 20px 24px; display: grid; gap: 16px; }
.renew-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.renew-facts > div { display: grid; gap: 3px; padding: 9px 10px; background: #f7f9fb; border-radius: 9px; }
.renew-facts small { color: var(--muted); font-size: 10px; }
.renew-facts strong { font-size: 12px; }
.renew-step { display: grid; gap: 9px; }
.renew-step > strong { font-size: 13px; }
.renew-fee { display: grid; gap: 8px; padding: 12px; border: 1px solid var(--line); border-radius: 10px; }
.renew-fee > div { display: flex; justify-content: space-between; font-size: 12px; }
.renew-fee > div strong.warn { color: var(--orange); }
.renew-fee > div.total { border-top: 1px dashed var(--line); padding-top: 8px; font-weight: 700; }
.renew-explain { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.renew-explain li { display: flex; gap: 7px; align-items: flex-start; color: var(--muted); font-size: 11px; line-height: 1.6; }
.renew-explain svg { width: 13px; flex: 0 0 auto; margin-top: 2px; color: var(--blue); }
.renew-paybox { display: grid; gap: 11px; padding: 13px; border: 1px solid var(--line); border-radius: 10px; }
.renew-balance { display: flex; align-items: center; gap: 10px; }
.renew-balance small { color: var(--muted); font-size: 11px; }
.renew-balance strong { font-size: 18px; color: var(--blue-dark); }
.renew-balance .status { margin-left: auto; }
.renew-ops { display: flex; flex-wrap: wrap; gap: 9px; }
.renew-ops .button { flex: 1 1 auto; justify-content: center; }
.wallet-hero { display: grid; gap: 4px; padding: 16px 18px; border-radius: 12px; background: linear-gradient(120deg, var(--navy), #23446f); color: #fff; }
.wallet-hero small { font-size: 11px; opacity: .8; }
.wallet-hero strong { font-size: 26px; }
.wallet-hero span { font-size: 11px; opacity: .8; }
.wallet-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 24px; border-top: 1px solid var(--line); }
.wallet-footer > div { display: grid; }
.wallet-footer small { color: var(--muted); font-size: 10px; }
.wallet-footer strong { font-size: 20px; }
.wallet-tx { border-top: 1px dashed var(--line); padding-top: 12px; }
.wallet-tx-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 8px; }
.wallet-tx-head strong { font-size: 12px; }
.wallet-tx-head span { color: var(--muted); font-size: 10px; }
.wallet-tx-row { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px dashed var(--line); }
.wallet-tx-row:last-child { border-bottom: 0; }
.wallet-tx-type { flex: 0 0 auto; padding: 2px 7px; border-radius: 4px; font-size: 10px; background: #eef1f5; color: #657286; }
.wallet-tx-type.in { background: var(--green-soft); color: var(--green); }
.wallet-tx-type.out { background: var(--orange-soft); color: #b86513; }
.wallet-tx-row > div { display: grid; min-width: 0; }
.wallet-tx-row > div strong { font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wallet-tx-row > div small { color: var(--muted); font-size: 10px; }
.wallet-tx-row > strong.in { color: var(--green); }
.wallet-tx-row > strong.out { color: var(--orange); }
/* ---------- 欠费账单与催缴 ---------- */
.arrears-box { display: grid; gap: 10px; margin-bottom: 16px; }
.arrears-alert { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border: 1px solid #f3c9a3; border-left: 5px solid var(--orange); border-radius: 12px; background: linear-gradient(90deg, var(--orange-soft), #fff); }
.arrears-icon { width: 36px; height: 36px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 9px; background: var(--orange); color: #fff; }
.arrears-icon svg { width: 18px; }
.arrears-alert > div { display: grid; gap: 3px; }
.arrears-alert strong { font-size: 15px; }
.arrears-alert small { color: #8a6234; font-size: 11px; line-height: 1.6; }
.arrears-list { display: grid; gap: 8px; }
.arrears-line { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.arrears-line > div { display: grid; gap: 2px; min-width: 0; }
.arrears-line strong { font-size: 12px; }
.arrears-line small { color: var(--muted); font-size: 10px; }
.arrears-amount { color: var(--red); font-size: 16px; }
.mini-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; margin-bottom: 12px; }
.mini-stats > span { display: grid; gap: 3px; padding: 9px 10px; background: #f7f9fb; border-radius: 9px; }
.mini-stats small { color: var(--muted); font-size: 10px; }
.mini-stats strong { font-size: 14px; }
.mini-input { height: 34px; width: 130px; border: 1px solid var(--line); border-radius: 7px; padding: 0 9px; font-size: 12px; }
.mini-input.input-error { border-color: var(--red); background: var(--red-soft); }
.text-warn { color: #b86513; }
.my-panel { width: min(620px, calc(100vw - 32px)); }
.my-body { padding: 20px 24px; display: grid; gap: 14px; max-height: 70vh; overflow-y: auto; }
.my-section { display: grid; gap: 9px; }
.my-section > strong { font-size: 13px; }
.my-kv { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.my-kv > div { display: grid; gap: 3px; padding: 9px 10px; background: #f7f9fb; border-radius: 9px; }
.my-kv small { color: var(--muted); font-size: 10px; }
.my-kv strong { font-size: 12px; word-break: break-all; }
.my-contract { border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px; display: grid; gap: 8px; }
.my-contract pre { margin: 0; max-height: 240px; overflow-y: auto; white-space: pre-wrap; font: 12px/1.7 inherit; color: #2b3a4f; background: #f7f9fb; padding: 10px; border-radius: 8px; }
.my-timeline { display: grid; gap: 7px; }
.my-timeline > div { display: grid; grid-template-columns: auto 1fr; gap: 9px; font-size: 11px; color: #46566e; }
.my-timeline span { color: var(--muted); font-size: 10px; }
@media (max-width: 720px) {
  .my-panel { width: 100%; }
  .my-kv { grid-template-columns: 1fr; }
}
.mini-input:focus { outline: none; border-color: var(--blue); }
.mini-select { height: 38px; border: 1px solid var(--line); border-radius: 8px; padding: 0 10px; font-size: 12px; background: #fff; max-width: 220px; }
.ops-scan { display: flex; align-items: flex-end; gap: 10px; margin-bottom: 12px; }
.ops-scan .drawer-input { flex: 1; margin: 0; }
@media (max-width: 720px) {
  .ops-scan { flex-direction: column; align-items: stretch; }
  .mini-input { width: 100%; }
  .mini-select { max-width: none; width: 100%; }
}
/* ---------- 库位候补 ---------- */
.waitlist-box { display: grid; gap: 10px; margin-bottom: 16px; }
.waitlist-card { border: 1px solid var(--line); border-left: 4px solid var(--blue); border-radius: 12px; padding: 14px 16px; background: #fff; display: grid; gap: 8px; }
.waitlist-card.hot { border-color: #f3c9a3; border-left-color: var(--orange); background: linear-gradient(90deg, var(--orange-soft), #fff); }
.waitlist-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.waitlist-head strong { font-size: 14px; }
.waitlist-head small { color: var(--muted); font-size: 11px; }
.waitlist-card p { margin: 0; color: #46566e; font-size: 12px; line-height: 1.7; }
.waitlist-reason { color: var(--muted); font-size: 10px; line-height: 1.6; display: block; }

@media (max-width: 720px) {
  .arrears-line { grid-template-columns: 1fr auto; }
  .arrears-line .heading-actions { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; }
  .arrears-line .heading-actions .button { width: 100%; }
  .mini-stats { grid-template-columns: 1fr 1fr; }
}
.terminate-panel { width: min(580px, calc(100vw - 32px)); }
.terminate-body { padding: 20px 24px; display: grid; gap: 16px; }
.seat small { display: block; font-size: 9px; opacity: .75; }
.seat-footer small.ok { color: var(--green); font-weight: 700; }

@media (max-width: 720px) {
  .wallet-strip { flex-wrap: wrap; }
  .wallet-strip-note { display: none; }
  .active-lease-facts { grid-template-columns: 1fr; }
  .renew-facts { grid-template-columns: 1fr; }
  .active-lease-ops .button { flex: 1 1 45%; }
}

/* ---------- 响应式适配修正 ----------
 * 底部操作区改成"按钮成组"后，旧的 `.form-footer .button{width:100%}` 会让两个按钮
 * 并排撑破容器被裁切。这里统一按组布局：窄屏两列等宽，超窄屏再纵向堆叠。
 */
.form-footer .heading-actions, .quick-footer .heading-actions, .seat-footer .heading-actions {
  flex: 0 0 auto;
}

@media (max-width: 1050px) {
  .topbar { gap: 18px; }
  .brand { flex: 0 0 auto; }
  .brand strong { white-space: nowrap; }
  .api-status { display: none; }
  .global-search { max-width: 300px; }
  .topbar-center { min-width: 0; }
}

@media (max-width: 900px) {
  .topbar { gap: 12px; }
  .global-search { display: none; }
  .topbar-center { flex: 0 1 auto; min-width: 0; }
  .brand small { display: none; }
}

@media (max-width: 760px) {
  /* 底部成组按钮：两列等宽，避免溢出裁切 */
  .form-footer, .quick-footer, .seat-footer { align-items: stretch; flex-direction: column; gap: 12px; }
  .form-footer > span { order: 1; }
  .form-footer .heading-actions,
  .quick-footer .heading-actions,
  .seat-footer .heading-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; width: 100%; order: 2; }
  .form-footer .heading-actions .button,
  .quick-footer .heading-actions .button,
  .seat-footer .heading-actions .button { width: 100%; min-width: 0; padding: 0 10px; font-size: 13px; }
  /* 主操作（确认/下单）独占一行，避免和次要按钮挤在一起误点 */
  .form-footer .heading-actions .button-primary,
  .quick-footer .heading-actions .button-primary,
  .seat-footer .heading-actions .button-primary { grid-column: span 2; }
  .quick-footer > div:first-child { order: 1; text-align: center; }
  .seat-footer > div:first-child { order: 1; }
  .hero-actions { align-items: stretch; }
  .hero-actions .button { width: 100%; }
}

@media (max-width: 420px) {
  .form-footer .heading-actions,
  .quick-footer .heading-actions,
  .seat-footer .heading-actions { grid-template-columns: 1fr; }
  .form-footer .heading-actions .button-primary,
  .quick-footer .heading-actions .button-primary,
  .seat-footer .heading-actions .button-primary { grid-column: auto; }
}

/* 续租 / 充值 / 退租弹窗在手机上走底部抽屉 */
@media (max-width: 760px) {
  .renew-panel, .wallet-panel, .terminate-panel { width: 100%; }
  /* 窄屏也保留定位文字（过长省略），只去掉下拉箭头 */
  .location-button span { display: inline-block; max-width: 76px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .location-button svg:last-child { display: none; }
  .renew-body, .wallet-body, .terminate-body { overflow-y: auto; flex: 1 1 auto; min-height: 0; }
  .renew-ops .button, .wallet-footer .button { width: 100%; }
  .wallet-footer { flex-direction: column; align-items: stretch; gap: 10px; }
  .wallet-footer > div { text-align: center; }
}
