/**
 * @file index.css
 * @description 首页内联样式（从 index.html 提取）
 *              Homepage inline styles (extracted from index.html)
 *
 * 包含预约弹窗、支付流程、上传组件、证书渲染等页面逻辑相关的样式
 * Contains styles for booking modal, payment flow, upload widget, cert render, etc.
 *
 * 首页同时加载 style.css（全局）和 index.css（页面逻辑）
 * Homepage loads both style.css (global) and index.css (page logic)
 */

/* ===== Project Switcher Bar (Hero top) ===== */
.hero-left {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  min-width:0;
}

.proj-bar {
  display:flex;
  justify-content:flex-start;
  flex-wrap:wrap;
  gap:6px;
  padding:8px 12px;
  background:rgba(255,255,255,.55);
  backdrop-filter:blur(14px);
  border-radius:12px;
  max-width:520px;
  position:relative;
  margin:0 0 16px;
  z-index:3;
  box-shadow:0 2px 12px rgba(0,0,0,.04);
}

.proj-btn {
  padding:9px 22px;
  border-radius:8px;
  font-size:14px;
  font-weight:600;
  color:#6b6156;
  cursor:pointer;
  transition:all .25s ease;
  text-decoration:none;
  white-space:nowrap;
  user-select:none;
}

.proj-btn:hover {
  background:rgba(122,106,85,.08);
  color:#3d3529;
}

.proj-btn.active {
  background:var(--accent, #9b8d7c);
  color:#fff;
  box-shadow:0 2px 8px rgba(122,106,85,.3);
}

.hero-btns .btn-coming-soon {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0.5rem;
  padding:0.8rem 1.8rem;
  border-radius:var(--radius-sm);
  font-weight:600;
  font-size:0.95rem;
  font-family:inherit;
  background:#a8a29e;
  color:#f5f5f4;
  border:1px solid rgba(120,113,108,0.35);
  cursor:not-allowed;
  pointer-events:none;
  user-select:none;
  box-shadow:none;
  opacity:0.92;
}

@media (max-width:560px) {
  .proj-bar { flex-wrap:wrap; max-width:340px; gap:4px; padding:6px 8px; }
  .proj-btn { padding:7px 14px; font-size:13px; }
}

/* ===== Project Hero Cards (non-GAC projects) ===== */
.proj-card {
  background:#fff;
  border-radius:14px;
  border:1px solid rgba(0,0,0,.06);
  box-shadow:0 8px 32px rgba(0,0,0,.08);
  overflow:hidden;
  width:100%;
  max-width:420px;
}

.proj-card-header {
  padding:14px 20px;
  font-size:13px;
  font-weight:700;
  color:#1a1714;
  border-bottom:1px solid rgba(0,0,0,.06);
  display:flex;
  align-items:center;
  gap:8px;
}

.proj-card-header i {
  color:var(--accent, #9b8d7c);
  font-size:14px;
}

.proj-card-body {
  padding:20px;
}

.proj-card-footer {
  padding:12px 20px;
  border-top:1px solid rgba(0,0,0,.06);
  display:flex;
  gap:16px;
  font-size:11px;
  color:#64748b;
}

.proj-card-footer b {
  color:#1a1714;
  font-weight:700;
}

/* Score ring (optimize) */
.proj-score-ring {
  display:flex;
  justify-content:center;
  margin-bottom:16px;
}

.proj-metrics {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}

.proj-metric {
  display:flex;
  align-items:center;
  gap:8px;
  padding:6px 10px;
  border-radius:8px;
  background:rgba(0,0,0,.02);
  font-size:11px;
}

.proj-metric i {
  font-size:12px;
  width:16px;
  text-align:center;
}

.proj-metric-label {
  flex:1;
  color:#64748b;
}

.proj-metric-val {
  font-weight:700;
  font-size:12px;
}

/* Table (club-order) */
.proj-table {
  width:100%;
  border-collapse:collapse;
  font-size:12px;
}

.proj-table th {
  text-align:left;
  padding:8px 16px;
  font-size:10px;
  font-weight:600;
  color:#94a3b8;
  text-transform:uppercase;
  letter-spacing:.05em;
  background:rgba(0,0,0,.02);
  border-bottom:1px solid rgba(0,0,0,.06);
}

.proj-table td {
  padding:10px 16px;
  border-bottom:1px solid rgba(0,0,0,.04);
  color:#334155;
}

.proj-table tr:last-child td {
  border-bottom:none;
}

.proj-table tr:hover td {
  background:rgba(122,106,85,.04);
}

.proj-status-dot {
  display:inline-block;
  width:6px;
  height:6px;
  border-radius:50%;
  margin-right:5px;
  vertical-align:middle;
}

/* Game grid (club-game) */
.proj-game-grid {
  display:flex;
  flex-direction:column;
  gap:10px;
}

.proj-game-item {
  display:flex;
  align-items:center;
  gap:12px;
  padding:10px 12px;
  border-radius:10px;
  background:rgba(0,0,0,.02);
  transition:background .2s;
}

.proj-game-item:hover {
  background:rgba(122,106,85,.06);
}

.proj-game-icon {
  width:40px;
  height:40px;
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
  flex-shrink:0;
}

.proj-game-info {
  flex:1;
  min-width:0;
}

.proj-game-name {
  font-size:13px;
  font-weight:600;
  color:#1a1714;
}

.proj-game-desc {
  font-size:10px;
  color:#94a3b8;
  margin-top:2px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.proj-game-players {
  font-size:10px;
  color:#7a6a55;
  font-weight:600;
  white-space:nowrap;
}

/*
 */

* {
  margin:0;
  padding:0;
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:72px;
  overflow-x:hidden;
}

/* CSS 变量 / CSS Variables */
:root {
  --bg:#f8f5ef;
  --bg2:#f0ebe3;
  --bg3:#e8e1d6;
  --card:#fff;
  --text:#1a1a1a;
  --body:#666;
  --accent:#7a6a55;
  --accent2:#5d4f3e;
  --hover:#5d4f3e;
  --border:rgba(122,106,85,.1);
  --shadow-sm:0 2px 8px rgba(0,0,0,.04);
  --shadow-md:0 8px 32px rgba(122,106,85,.08);
  --shadow-lg:0 20px 60px rgba(122,106,85,.12);
  --blue:#7a6a55;
  --cyan:#8b7a64;
  --purple:#5d4f3e;
  --indigo:#5d4f3e;
}

body {
  background:var(--bg);
  color:var(--text);
  font-family:'Noto Sans SC',sans-serif;
  -webkit-font-smoothing:antialiased;
  line-height:1.6;
  overflow-x:hidden;
}

a {
  text-decoration:none;
  color:inherit;
  transition:color .3s;
}

::selection {
  background:var(--accent);
  color:#fff;
}

body::before {
  content:'';
  position:fixed;
  inset:0;
  z-index:9999;
  pointer-events:none;
  opacity:.02;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.nav {
  position:fixed;
  top:0;
  left:0;
  width:100%;
  height:72px;
  background:rgba(42,38,34,.88);
  backdrop-filter:blur(24px);
  -webkit-backdrop-filter:blur(24px);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:100;
  border-bottom:1px solid rgba(122,106,85,.12);
  box-shadow:0 2px 20px rgba(0,0,0,.08);
}

.nav-inner {
  width:100%;
  max-width:1100px;
  padding:0 32px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}

.nav-logo {
  display:flex;
  align-items:center;
  gap:0.5rem;
  font-family:'Playfair Display',serif;
  font-size:20px;
  font-weight:700;
  color:#f0ebe3;
}

.nav-logo span {
  color:var(--accent);
}

.nav-links {
  display:flex;
  gap:6px;
  list-style:none;
  font-size:13px;
  font-weight:500;
  letter-spacing:.03em;
}

.nav-links a {
  color:rgba(240,235,227,.55);
  font-size:13px;
  padding:8px 14px;
  border-radius:8px;
  background:rgba(255,255,255,.04);
  transition:all .3s;
  display:inline-flex;
  align-items:center;
  gap:7px;
}

.nav-links a:hover {
  background:rgba(255,255,255,.08);
  color:#f0ebe3;
}

.nav-links a.active {
  background:var(--accent);
  color:#fff;
  font-weight:600;
  box-shadow:0 2px 12px rgba(122,106,85,.35);
}

.nav-links a::after,.nav-links a:hover::after,.nav-links a.active::after { display:none !important; }
.nav-links a i {
  font-size:14px;
}

.nav-mobile {
  display:none;
  background:none;
  border:none;
  font-size:20px;
  color:#f0ebe3;
  cursor:pointer;
}

.mobile-menu {
  display:none;
  position:fixed;
  inset:0;
  top:72px;
  background:rgba(42,38,34,.98);
  backdrop-filter:blur(20px);
  z-index:99;
  flex-direction:column;
  align-items:center;
  padding-top:48px;
  gap:12px;
}

.mobile-menu.active {
  display:flex;
}

.mobile-menu a {
  font-size:15px;
  color:rgba(240,235,227,.55);
  font-weight:500;
  padding:10px 24px;
  border-radius:8px;
  background:rgba(255,255,255,.04);
  display:inline-flex;
  align-items:center;
  gap:8px;
  transition:all .3s;
}

.mobile-menu a:hover {
  color:#f0ebe3;
  background:rgba(255,255,255,.08);
}

.mobile-menu a.active {
  color:#fff;
  background:var(--accent);
  box-shadow:0 2px 12px rgba(122,106,85,.35);
}

.btn {
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:14px 32px;
  border-radius:10px;
  font-size:15px;
  font-weight:500;
  letter-spacing:.03em;
  cursor:pointer;
  transition:all .4s;
  border:none;
  font-family:inherit;
  position:relative;
  overflow:hidden;
}

.btn-primary {
  background:var(--accent);
  color:#fff;
  box-shadow:0 4px 16px rgba(122,106,85,.2),inset 0 1px 0 rgba(255,255,255,.15);
}

.btn-primary:hover {
  background:var(--hover);
  transform:translateY(-3px);
  box-shadow:0 8px 32px rgba(122,106,85,.25);
  color:#fff;
}

.btn-primary::before {
  display:none;
}

.btn-primary::after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(135deg,transparent 30%,rgba(255,255,255,.2) 50%,transparent 70%);
  transform:translateX(-100%);
  transition:transform .6s;
}

.btn-primary:hover::after {
  transform:translateX(100%);
}

.btn-outline {
  background:transparent;
  color:var(--text);
  border:1.5px solid rgba(122,106,85,.2);
}

.btn-outline:hover {
  border-color:var(--accent);
  color:var(--accent);
  box-shadow:0 4px 16px rgba(122,106,85,.08);
}

/* ===== 预约弹窗 / Booking Modal ===== */
.booking-overlay {
  position:fixed;
  inset:0;
  z-index:200;
  background:rgba(0,0,0,.5);
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
  overflow-x:hidden;
  overflow-y:auto;
}

.booking-overlay.active {
  display:flex;
}

.booking-modal {
  position:relative;
  width:100%;
  max-width:860px;
  overflow:hidden;
  background:transparent;
  border-radius:0;
  padding:0;
  animation:bk-modalIn .35s ease-out;
  box-shadow:none;
  box-sizing:border-box;
}

/* ===== 关键帧动画 / Keyframe Animations ===== */
@keyframes bk-modalIn {
  from {
    opacity:0;
    transform:translateY(30px);
  }
  to {
    opacity:1;
    transform:translateY(0);
  }
}

.booking-close {
  position:absolute;
  top:14px;
  right:14px;
  width:32px;
  height:32px;
  border-radius:50%;
  border:none;
  background:rgba(0,0,0,.06);
  color:#666;
  font-size:18px;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:all .2s;
  z-index:10;
  line-height:1;
}

.booking-close:hover {
  background:rgba(0,0,0,.12);
  color:#333;
}

.booking-modal .btn {
  display:block;
  padding:12px 0;
  border-radius:8px;
  font-size:.9rem;
  font-weight:600;
  letter-spacing:0;
  overflow:visible;
  position:static;
  gap:0;
}

.booking-modal .btn::after {
  display:none;
}

.booking-modal .btn-primary {
  box-shadow:none;
}

.booking-modal .btn-primary:hover {
  transform:none;
  box-shadow:none;
}

.booking-modal .container {
  width:100%;
  max-width:460px;
}

.booking-modal h1 {
  font-size:1.15rem;
  font-weight:700;
  text-align:center;
  margin-bottom:16px;
  color:var(--accent);
  letter-spacing:.5px;
}

.booking-modal .progress {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0;
  margin-bottom:0;
  max-width:100%;
  position:relative;
}

.booking-modal .step-dot {
  width:36px;
  height:36px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:.85rem;
  font-weight:600;
  color:var(--body);
  background:var(--card);
  border:2px solid var(--border);
  transition:all .35s cubic-bezier(.34,1.56,.64,1);
  position:relative;
  z-index:1;
  flex-shrink:0;
}

.booking-modal .step-dot.active {
  background:var(--accent);
  color:#fff;
  border-color:var(--accent);
  transform:none !important;
  box-shadow:none;
}

.booking-modal .step-dot.active::before,.booking-modal .step-dot.active::after {
  content:'';
  position:absolute;
  inset:-3px;
  border-radius:50%;
  border:2px solid rgba(122,106,85,.50);
  pointer-events:none;
}

.booking-modal .step-dot.active::before {
  animation:bk-step-ripple 3.2s cubic-bezier(.22,.61,.36,1) infinite;
}

.booking-modal .step-dot.active::after {
  animation:bk-step-ripple 3.2s cubic-bezier(.22,.61,.36,1) 1.6s infinite;
}

@keyframes bk-step-ripple {
  0% {
    transform:scale(1);
    opacity:.50;
  }
  35% {
    opacity:.24;
  }
  100% {
    transform:scale(1.45);
    opacity:0;
  }
}

.booking-modal .step-dot.done {
  background:var(--accent);
  color:#fff;
  border-color:var(--accent);
}

.booking-modal .step-dot.done::after {
  content:none;
}

.booking-modal .step-dot.done i {
  display:inline;
}

.booking-modal .bk-step-line {
  display:block;
  flex:1 1 0;
  max-width:64px;
  height:4px;
  margin:0 6px;
  align-self:center;
  background:#d4c5b2;
  position:relative;
  border-radius:999px;
  overflow:hidden;
}

.booking-modal .bk-step-line::before {
  content:'';
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:0;
  background:linear-gradient(90deg,#9a886f,var(--accent));
  transition:width .62s cubic-bezier(.22,.61,.36,1);
}

.booking-modal .bk-step-line::after {
  content:none;
  display:none;
}

.booking-modal .bk-step-line.done {
  background:#d4c5b2;
}

.booking-modal .bk-step-line.done::before {
  width:100%;
}

.booking-modal .step-labels {
  display:flex;
  justify-content:space-between;
  margin-top:8px;
  position:relative;
}

.booking-modal .step-label {
  font-size:.7rem;
  color:var(--body);
  text-align:center;
  width:36px;
  position:absolute;
  transform:translateX(-50%);
  white-space:nowrap;
}

/* -- 弹窗内各步骤面板 / Modal Step Panels -- */
.booking-modal .panels {
  position:relative;
  overflow:hidden;
}

.booking-modal .panel {
  display:none;
  opacity:0;
  transform:translateX(40px);
  transition:opacity .3s ease,transform .3s ease;
}

.booking-modal .panel.entering-left {
  transform:translateX(-40px);
  opacity:0;
}

.booking-modal .panel.entering-right {
  transform:translateX(40px);
  opacity:0;
}

.booking-modal .panel.active {
  display:block;
  opacity:1;
  transform:translateX(0);
}

.booking-modal .card {
  background:transparent;
  border-radius:0;
  padding:0;
  border:none;
  box-shadow:none;
  transition:none;
}

.booking-modal .card:hover {
  border-color:transparent;
  box-shadow:none;
}

.booking-modal .card-title {
  font-size:.95rem;
  font-weight:600;
  margin-bottom:12px;
  color:var(--text);
}

.booking-modal .field {
  margin-bottom:8px;
}

.booking-modal .field label {
  display:block;
  font-size:.85rem;
  font-weight:500;
  color:var(--text);
  margin-bottom:6px;
}

.booking-modal .field label .req {
  color:var(--danger);
  margin-left:2px;
}

.booking-modal .field input,.booking-modal .field select {
  width:100%;
  padding:10px 14px;
  border:1.5px solid var(--border);
  border-radius:8px;
  font-size:.9rem;
  color:var(--text);
  background:#fff;
  transition:border-color .2s;
  font-family:inherit;
}

.booking-modal .field input:focus,.booking-modal .field select:focus {
  outline:none;
  border-color:var(--accent);
}

.booking-modal .field select {
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%237a6a55' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  padding-right:36px;
}

.booking-modal .btn-row {
  display:flex;
  gap:10px;
  margin-top:14px;
}

.booking-modal .btn {
  flex:1;
  padding:12px 0;
  border:none;
  border-radius:8px;
  font-size:.9rem;
  font-weight:600;
  cursor:pointer;
  transition:background .2s,opacity .2s,transform .1s;
  font-family:inherit;
}

.booking-modal .btn:active {
  transform:scale(.97);
}

.booking-modal .btn-primary {
  background:var(--accent);
  color:#fff;
}

.booking-modal .btn-primary:hover {
  background:var(--hover);
}

.booking-modal .btn-primary:disabled {
  opacity:.4;
  cursor:not-allowed;
  transform:none;
}

.booking-modal .btn-secondary {
  background:transparent;
  color:var(--accent);
  border:1.5px solid var(--border);
}

.booking-modal .btn-secondary:hover {
  border-color:var(--accent);
}

.booking-modal .upload-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

/* -- 图片上传区 / Image Upload Area -- */
.booking-modal .upload-box {
  border:2px dashed var(--border);
  border-radius:var(--radius);
  aspect-ratio:1 / 1;
  min-height:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:border-color .2s,background .2s;
  overflow:hidden;
  position:relative;
  background:#faf8f4;
}

.booking-modal .upload-box:hover {
  border-color:var(--accent);
  background:#f5f1ea;
}

.booking-modal .upload-box.has-image {
  border-style:solid;
  border-color:var(--accent);
  padding:0;
}

.booking-modal .upload-box.has-image img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.booking-modal .upload-box .icon {
  font-size:1.4rem;
  color:var(--accent);
  margin-bottom:4px;
  opacity:.6;
}

.booking-modal .upload-box .label {
  font-size:.65rem;
  color:var(--body);
  text-align:center;
  padding:0 6px;
}

.booking-modal .upload-box.has-image .icon,.booking-modal .upload-box.has-image .label {
  display:none;
}

.booking-modal .upload-box input[type=file] {
  display:none;
}

.booking-modal .upload-box .remove-btn {
  position:absolute;
  top:6px;
  right:6px;
  width:24px;
  height:24px;
  border-radius:50%;
  background:rgba(0,0,0,.55);
  color:#fff;
  border:none;
  font-size:.75rem;
  cursor:pointer;
  display:none;
  align-items:center;
  justify-content:center;
  line-height:1;
}

.booking-modal .upload-box .manage-btn {
  position:absolute;
  bottom:6px;
  right:6px;
  min-width:42px;
  height:22px;
  border-radius:11px;
  background:rgba(0,0,0,.52);
  color:#fff;
  border:none;
  font-size:.62rem;
  cursor:pointer;
  display:none;
  padding:0 8px;
  line-height:1;
}

.booking-modal .upload-box.has-image .remove-btn {
  display:flex;
}

.booking-modal .upload-box.has-image .manage-btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

/* -- 图片管理展开区 / Image Management Gallery -- */
.booking-modal .upload-gallery {
  margin-top:10px;
  display:flex;
  flex-direction:column;
  gap:8px;
}

.booking-modal .upload-gallery-row {
  border:1px solid var(--border);
  border-radius:8px;
  padding:8px;
  background:#faf8f4;
}

.booking-modal .upload-gallery-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:.75rem;
  color:var(--body);
  margin-bottom:6px;
}

.booking-modal .upload-gallery-list {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}

.booking-modal .upload-gallery-item {
  width:58px;
  height:58px;
  border-radius:6px;
  overflow:hidden;
  position:relative;
  border:1px solid var(--border);
  background:#fff;
}

.booking-modal .upload-gallery-item img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.booking-modal .upload-gallery-del {
  position:absolute;
  top:2px;
  right:2px;
  width:16px;
  height:16px;
  border:none;
  border-radius:50%;
  background:rgba(0,0,0,.65);
  color:#fff;
  font-size:10px;
  cursor:pointer;
}

.booking-modal .amount {
  text-align:center;
  font-size:1.4rem;
  font-weight:700;
  color:var(--accent);
  margin-bottom:24px;
}

.booking-modal .pay-methods {
  display:flex;
  flex-direction:column;
  gap:12px;
}

/* -- 支付选择 / Payment Selection -- */
.booking-modal .pay-card {
  padding:16px 18px;
  border:1.5px solid var(--border);
  border-radius:var(--radius);
  cursor:pointer;
  transition:all .25s;
  display:flex;
  align-items:center;
  gap:14px;
  background:var(--card);
}

.booking-modal .pay-card:hover {
  border-color:var(--accent);
}

.booking-modal .pay-card.selected {
  border-color:var(--accent);
  background:#f5f1ea;
  box-shadow:0 0 0 2px rgba(122,106,85,.15);
}

.booking-modal .pay-card .pay-icon {
  font-size:1.5rem;
  flex-shrink:0;
}

.booking-modal .pay-card .pay-name {
  font-weight:600;
  font-size:.9rem;
}

.booking-modal .pay-card .pay-desc {
  font-size:.75rem;
  color:var(--body);
}

.booking-modal .pay-card.coming-soon {
  opacity:.55;
  cursor:not-allowed;
  filter:grayscale(.2);
  pointer-events:none;
}

.booking-modal .pay-card.coming-soon:hover {
  border-color:var(--border);
  transform:none;
}

.booking-modal .pay-card.coming-soon .pay-desc {
  color:#b19f89;
}

.booking-modal .pay-detail {
  margin-top:18px;
  animation:bk-fadeUp .3s ease;
}

@keyframes bk-fadeUp {
  from {
    opacity:0;
    transform:translateY(8px);
  }
  to {
    opacity:1;
    transform:translateY(0);
  }
}

.qr-placeholder {
  width:180px;
  height:180px;
  background:#e8e4dd;
  border-radius:var(--radius);
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--body);
  font-size:.85rem;
  margin:0 auto 16px;
}

.booking-modal .checkbox-row {
  display:flex;
  align-items:center;
  gap:8px;
  justify-content:center;
  margin-top:12px;
}

.booking-modal .checkbox-row input[type=checkbox] {
  width:16px;
  height:16px;
  accent-color:var(--accent);
}

.booking-modal .checkbox-row label {
  font-size:.85rem;
  color:var(--body);
  cursor:pointer;
}

.booking-modal .code-input {
  text-align:center;
  font-size:1.15rem;
  letter-spacing:3px;
  font-family:'SF Mono','Fira Code',monospace;
  max-width:320px;
  margin:0 auto;
  display:block;
}

/* -- 订单汇总 / Order Summary -- */
.booking-modal .summary-section {
  margin-bottom:20px;
}

.booking-modal .summary-section h3 {
  font-size:.85rem;
  font-weight:600;
  color:var(--accent);
  margin-bottom:10px;
  border-bottom:1px solid var(--border);
  padding-bottom:6px;
}

.booking-modal .summary-row {
  display:flex;
  justify-content:space-between;
  padding:5px 0;
  font-size:.85rem;
}

.booking-modal .summary-row .lbl {
  color:var(--body);
}

.booking-modal .summary-row .val {
  font-weight:500;
  text-align:right;
  max-width:60%;
}

.booking-modal .summary-images {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:8px;
}

.booking-modal .summary-images .thumb {
  aspect-ratio:1;
  border-radius:8px;
  overflow:hidden;
  border:1px solid var(--border);
}

.booking-modal .summary-images .thumb img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.booking-modal .summary-images .thumb-label {
  font-size:.7rem;
  color:var(--body);
  text-align:center;
  margin-top:4px;
}

/* -- 提交成功动效 / Submit Success Animation -- */
.booking-modal .success-overlay {
  display:none;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:48px 24px;
  text-align:center;
}

.booking-modal .success-overlay.show {
  display:flex;
}

.booking-modal .checkmark-circle {
  width:80px;
  height:80px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:20px;
  position:relative;
}

.booking-modal .checkmark-circle svg {
  width:80px;
  height:80px;
}

.booking-modal .checkmark-circle .circle {
  stroke:var(--accent);
  stroke-width:2;
  fill:none;
  stroke-dasharray:251;
  stroke-dashoffset:251;
  animation:bk-drawCircle .5s ease forwards;
}

.booking-modal .checkmark-circle .check {
  stroke:var(--accent);
  stroke-width:3;
  fill:none;
  stroke-dasharray:50;
  stroke-dashoffset:50;
  stroke-linecap:round;
  stroke-linejoin:round;
  animation:bk-drawCheck .35s .45s ease forwards;
}

@keyframes bk-drawCircle {
  to {
    stroke-dashoffset:0;
  }
}

@keyframes bk-drawCheck {
  to {
    stroke-dashoffset:0;
  }
}

.bk-hd {
  padding:18px 24px 0;
  position:relative;
}

.bk-hd h2 {
  font-size:1.2rem;
  font-weight:700;
  text-align:center;
  color:#7a6a55;
  margin:0 0 14px;
}

.bk-pw {
  padding:0 24px 14px;
  border-bottom:1px solid rgba(122,106,85,.06);
}

.bk-body {
  display:flex;
  flex-wrap:nowrap;
  gap:20px;
  align-items:flex-start;
}

.bk-left {
  flex:1;
  width:0;
  min-width:0;
  padding:16px 20px 20px;
  overflow-y:auto;
  max-height:80vh;
  background:#fff;
  border-radius:16px;
  box-shadow:0 16px 48px rgba(0,0,0,.15);
  scrollbar-width:thin;
  scrollbar-color:rgba(122,106,85,.12) transparent;
}

.bk-left::-webkit-scrollbar {
  width:3px;
}

.bk-left::-webkit-scrollbar-thumb {
  background:rgba(122,106,85,.12);
  border-radius:2px;
}

.bk-right {
  width:240px;
  flex-shrink:0;
  background:#fff;
  border-radius:16px;
  box-shadow:0 16px 48px rgba(0,0,0,.15);
  border-left:none;
  padding:20px 16px;
  overflow-y:auto;
  display:flex;
  flex-direction:column;
  gap:14px;
  align-self:flex-start;
  max-height:85vh;
  scrollbar-width:thin;
  scrollbar-color:rgba(122,106,85,.12) transparent;
}

.bk-right::-webkit-scrollbar {
  width:3px;
}

.bk-right::-webkit-scrollbar-thumb {
  background:rgba(122,106,85,.12);
  border-radius:2px;
}

.pv-card {
  background:#fff;
  border-radius:10px;
  padding:14px 12px;
  box-shadow:0 1px 4px rgba(0,0,0,.04);
}

.pv-title {
  font-size:.78rem;
  font-weight:700;
  color:var(--accent);
  margin-bottom:8px;
  padding-bottom:6px;
  border-bottom:1px solid var(--border);
  display:flex;
  align-items:center;
  gap:5px;
}

.pv-title i {
  font-size:.7rem;
  opacity:.5;
}

.pv-row {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:5px 6px;
  margin:0 -6px;
  border-radius:4px;
  transition:background .3s;
}

.pv-row.flash {
  background:rgba(122,106,85,.08);
}

.pv-lbl {
  font-size:.75rem;
  color:var(--body);
}

.pv-val {
  font-size:.75rem;
  font-weight:600;
  color:var(--text);
  text-align:right;
  max-width:55%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.pv-val.empty {
  color:#ccc;
  font-weight:400;
  font-style:italic;
}

.pv-imgs {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
  margin-top:6px;
}

.pv-img {
  aspect-ratio:1;
  border-radius:6px;
  border:1.5px dashed rgba(122,106,85,.15);
  background:#f8f6f2;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  transition:all .25s;
}

.pv-img.filled {
  border-style:solid;
  border-color:var(--accent);
  box-shadow:0 1px 4px rgba(122,106,85,.1);
}

.pv-img img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:none;
}

.pv-img.filled img {
  display:block;
}

.pv-img .pv-ph {
  font-size:.6rem;
  color:#ccc;
  text-align:center;
  line-height:1.3;
}

.pv-img.filled .pv-ph {
  display:none;
}

/* ===== 响应式适配 / Responsive Breakpoints ===== */
@media(max-width:768px) {
  .booking-modal {
    max-width:540px;
    padding:0 10px;
  }
  .bk-body {
    flex-direction:column;
    height:auto;
  }
  .bk-right {
    display:none;
  }
  .bk-left {
    width:100%;
    max-height:90vh;
    padding:16px 20px;
  }
  .bk-hd {
    padding:14px 20px 0;
  }
  .bk-pw {
    padding:0 20px 10px;
  }
}

@media(max-width:768px) {
  .booking-modal .bk-step-line {
    max-width:42px;
    margin:0 4px;
    height:3px;
  }
}

@media(max-width:768px) {
  .booking-modal .progress {
    gap:0;
    padding:0 6px;
  }
  .booking-modal .step-dot {
    width:30px;
    height:30px;
    font-size:.7rem;
  }
}

.bk-right-title {
  font-size:.9rem;
  font-weight:700;
  color:var(--accent);
  text-align:center;
  padding-bottom:12px;
  border-bottom:1px solid var(--border);
  margin-bottom:4px;
}

/* -- 时段选择器 / Time Slot Picker -- */
.ts-picker {
  border:1.5px solid var(--border);
  border-radius:10px;
  overflow:hidden;
  background:#faf8f4;
}

.ts-days {
  display:flex;
  border-bottom:1px solid var(--border);
  background:#fff;
  position:relative;
}

.ts-day {
  flex:1;
  padding:10px 0;
  text-align:center;
  font-size:.78rem;
  font-weight:600;
  color:var(--body);
  cursor:pointer;
  transition:color .25s,background .25s;
  border-right:1px solid var(--border);
  position:relative;
}

.ts-day:last-child {
  border-right:none;
}

.ts-day:hover {
  background:#f5f1ea;
}

.ts-day.active {
  color:#fff;
  background:var(--accent);
  font-weight:700;
}

.ts-day .ts-date {
  font-size:.68rem;
  margin-top:2px;
}

.ts-day.active .ts-date {
  color:rgba(255,255,255,.75);
}

.ts-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(90px,1fr));
  gap:6px;
  padding:10px;
  min-height:120px;
}

.ts-grid-msg {
  grid-column:1/-1;
  text-align:center;
  padding:24px 10px;
  color:#999;
  font-size:.82rem;
  line-height:1.6;
}

.ts-slot {
  padding:8px 4px;
  border-radius:6px;
  text-align:center;
  cursor:pointer;
  border:1.5px solid transparent;
  background:#fff;
  position:relative;
}

.ts-slot:hover:not(.disabled):not(.selected) {
  border-color:var(--accent);
  background:#f5f1ea;
}

.ts-slot.selected {
  border-color:var(--accent);
  background:var(--accent);
  color:#fff;
  box-shadow:0 2px 8px rgba(122,106,85,.18);
}

.ts-slot.selected .ts-remain {
  color:rgba(255,255,255,.8);
}

.ts-slot.selected .ts-time {
  color:#fff;
}

.ts-slot.disabled {
  opacity:1;
  cursor:not-allowed;
  background:#f5f3f0;
  border:1.5px dashed #ddd;
}

.ts-slot.disabled .ts-remain {
  color:#ccc;
  font-size:.6rem;
}

.ts-slot.disabled .ts-time {
  color:#ccc;
}

.ts-slot .ts-time {
  font-size:.78rem;
  font-weight:600;
  line-height:1.3;
  color:#333;
}

.ts-slot .ts-remain {
  font-size:.62rem;
  color:#888;
  margin-top:2px;
}

.ts-slot.hot .ts-remain {
  color:#e67e22;
}

@media(max-width:768px) {
  .ts-grid {
    grid-template-columns:repeat(3,1fr);
    gap:5px;
    padding:8px;
  }
  .ts-slot {
    padding:7px 2px;
  }
  .ts-day {
    padding:8px 0;
    font-size:.72rem;
  }
}

@media(max-width:400px) {
  .ts-grid {
    grid-template-columns:repeat(2,1fr);
  }
}

.success-text {
  font-size:1.2rem;
  font-weight:700;
  color:var(--accent);
  margin-bottom:8px;
}

.booking-modal .success-sub {
  display:none;
}

.booking-modal .success-code-wrap {
  display:none;
  width:min(100%,340px);
  margin:16px auto 12px;
  padding:12px 14px;
  border:1px solid var(--border);
  border-radius:10px;
  background:#faf8f4;
  text-align:center;
}

.booking-modal .success-code-main {
  font-size:.9rem;
  font-weight:600;
  color:var(--accent);
  line-height:1.55;
  word-break:break-all;
}

.booking-modal .success-code-note {
  margin-top:4px;
  font-size:.8rem;
  color:var(--body);
}

.booking-modal .success-code-meta {
  margin-top:8px;
  padding:8px 10px;
  border:1px dashed rgba(122,106,85,.35);
  border-radius:8px;
  background:rgba(255,255,255,.6);
  text-align:left;
}

.booking-modal .success-code-meta-row {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  font-size:.78rem;
  line-height:1.5;
  color:#6d5f50;
}

.booking-modal .success-code-meta-row + .success-code-meta-row {
  margin-top:4px;
}

.booking-modal .success-code-meta-row strong {
  font-weight:700;
  color:#5a4631;
  text-align:right;
  word-break:break-all;
}

.booking-modal .success-actions {
  display:flex;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
  margin-top:10px;
}

.booking-modal .success-action-btn {
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  min-width:132px;
  padding:8px 14px;
  font-size:.8rem;
  border-color:rgba(193,141,58,.5);
  color:#7a5320;
  background:rgba(255,255,255,.9);
}

.booking-modal .success-action-btn:hover {
  border-color:rgba(161,112,34,.7);
  color:#5e3d10;
  background:#fff;
}

@media(max-width:768px) {
  .booking-modal .success-code-wrap {
    width:min(100%,300px);
    padding:10px 12px;
  }
  .booking-modal .success-actions {
    gap:8px;
  }
  .booking-modal .success-action-btn {
    min-width:118px;
    padding:7px 12px;
    font-size:.76rem;
  }
}

.booking-modal .success-card-wrap {
  width:min(100%,360px);
  margin:18px auto 14px;
  display:none;
  flex-direction:column;
  align-items:center;
  gap:12px;
}

.booking-modal .success-card-wrap.show {
  display:flex;
}

.booking-modal .success-card-wrap .card {
  width: 300px;
  height: 200px;
  background: linear-gradient(120deg, #223845 0%, #23343e 52%, #1f2f38 100%);
  position: relative;
  display: grid;
  place-content: center;
  border-radius: 0;
  overflow: hidden;
  transition: all 0.5s ease-in-out;
}

.booking-modal .success-card-wrap #logo-main,.booking-modal .success-card-wrap #logo-second {
  height: 100%;
}

.booking-modal .success-card-wrap #logo-main {
  fill: #bd9f67;
}

.booking-modal .success-card-wrap #logo-second {
  padding-bottom: 10px;
  fill: none;
  stroke: #bd9f67;
  stroke-width: 1px;
}

.booking-modal .success-card-wrap .border {
  position: absolute;
  inset: 0px;
  border: 2px solid #bd9f67;
  opacity: 0;
  transform: rotate(10deg);
  transition: all 0.5s ease-in-out;
}

.booking-modal .success-card-wrap .bottom-text::before,.booking-modal .success-card-wrap .bottom-text::after {
  content:'';
  position:absolute;
  top:50%;
  width:46px;
  height:1px;
  background:rgba(189,159,103,.72);
}

.booking-modal .success-card-wrap .bottom-text::before {
  right:100%;
  margin-right:8px;
}

.booking-modal .success-card-wrap .bottom-text::after {
  left:100%;
  margin-left:8px;
}

.booking-modal .success-card-wrap .bottom-text {
  position: absolute;
  left: 50%;
  bottom: 13px;
  transform: translateX(-50%);
  font-size: 6px;
  text-transform: none;
  padding: 0px 5px 0px 8px;
  color: #bd9f67;
  background: #233743;
  opacity: 0;
  letter-spacing: .44em;
  transition: all 0.5s ease-in-out;
  white-space: nowrap;
  max-width: 88%;
  overflow: hidden;
  text-overflow: ellipsis;
}

.booking-modal .success-card-wrap .content {
  transition: all 0.5s ease-in-out;
}

.booking-modal .success-card-wrap .content .logo {
  height: 35px;
  position: relative;
  width: 108px;
  margin: 0 auto;
  transform: translateX(12px);
  overflow: hidden;
  transition: all 1s ease-in-out;
}

.booking-modal .success-card-wrap .content .logo .logo1 {
  height: 33px;
  width: 100px;
  position: absolute;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.booking-modal .success-card-wrap .content .logo .logo2 {
  height: 33px;
  width: 150px;
  position: absolute;
  left: 98px;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.booking-modal .success-card-wrap .content .logo .logo-char {
  color: #bd9f67;
  font-family: 'Playfair Display', serif;
  font-size: 26px;
  font-weight: 700;
  letter-spacing: .02em;
  line-height: 1;
}

.booking-modal .success-card-wrap .content .logo .logo1::after {
  content:'';
  position:absolute;
  left:0;
  right:26px;
  bottom:-3px;
  height:3px;
  background:#bd9f67;
  border-radius:2px;
  opacity:.92;
}

.booking-modal .success-card-wrap .content .logo .logo2 .logo-char {
  font-size:34px;
  letter-spacing:.08em;
  font-weight:700;
  white-space:nowrap;
  color:transparent;
  -webkit-text-stroke:1.2px #bd9f67;
  text-stroke:1.2px #bd9f67;
}

.booking-modal .success-card-wrap .content .logo .trail {
  position: absolute;
  right: 0;
  height: 100%;
  width: 100%;
  opacity: 0;
}

.booking-modal .success-card-wrap .content .logo-code-text {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  margin-top: 46px;
  color: #bd9f67;
  font-size: 10px;
  opacity: 0;
  letter-spacing: .08em;
  transition: all 0.5s ease-in-out 0.55s;
  white-space: nowrap;
  max-width: 82%;
  overflow: hidden;
  text-overflow: ellipsis;
}

.booking-modal .success-card-wrap .content .logo-bottom-text {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  margin-top: 26px;
  color: #bd9f67;
  padding-left: 8px;
  font-size: 11px;
  opacity: 0;
  letter-spacing: .08em;
  transition: all 0.5s ease-in-out 0.5s;
  white-space: nowrap;
  max-width: 82%;
  overflow: hidden;
  text-overflow: ellipsis;
}

.booking-modal .success-card-wrap .card:hover {
  border-radius: 0;
  transform: none;
}

.booking-modal .success-card-wrap .card:hover .logo {
  width: 200px;
  animation: uiv-opacity 1s ease-in-out;
}

.booking-modal .success-card-wrap .card:hover .border {
  inset: 15px;
  opacity: 1;
  transform: rotate(0);
}

.booking-modal .success-card-wrap .card:hover .bottom-text {
  letter-spacing: .22em;
  opacity: 1;
  transform: translateX(-50%);
}

.booking-modal .success-card-wrap .card:hover .content .logo-bottom-text {
  opacity: 1;
  letter-spacing: .08em;
}

.booking-modal .success-card-wrap .card:hover .content .logo-code-text {
  opacity: 1;
  letter-spacing: .08em;
}

.booking-modal .success-card-wrap .card:hover .trail {
  animation: uiv-trail 1s ease-in-out;
}

@keyframes uiv-opacity {
  0% {
    border-right: 1px solid transparent;
  }
  10% {
    border-right: 1px solid #bd9f67;
  }
  80% {
    border-right: 1px solid #bd9f67;
  }
  100% {
    border-right: 1px solid transparent;
  }
}

@keyframes uiv-trail {
  0% {
    background: linear-gradient(90deg, rgba(189, 159, 103, 0) 90%, rgb(189, 159, 103) 100%);
    opacity: 0;
  }
  30% {
    background: linear-gradient(90deg, rgba(189, 159, 103, 0) 70%, rgb(189, 159, 103) 100%);
    opacity: 1;
  }
  70% {
    background: linear-gradient(90deg, rgba(189, 159, 103, 0) 70%, rgb(189, 159, 103) 100%);
    opacity: 1;
  }
  95% {
    background: linear-gradient(90deg, rgba(189, 159, 103, 0) 90%, rgb(189, 159, 103) 100%);
    opacity: 0;
  }
}

.booking-modal .success-save-btn {
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  min-width:158px;
  padding:9px 18px;
  font-size:.82rem;
  border-color:rgba(193,141,58,.5);
  color:#7a5320;
  background:rgba(255,255,255,.9);
}

.booking-modal .success-save-btn:hover {
  border-color:rgba(161,112,34,.7);
  color:#5e3d10;
  background:#fff;
}

@media(max-width:768px) {
  .booking-modal .success-card-wrap {
    width:min(100%,320px);
  }
  .booking-modal .success-card-wrap .card {
    transform:scale(1);
  }
}

.booking-modal .upload-tabs {
  display:flex;
  gap:0;
  margin-bottom:18px;
  border:1.5px solid var(--border);
  border-radius:8px;
  overflow:hidden;
}

.booking-modal .upload-tab {
  flex:1;
  padding:10px 0;
  text-align:center;
  font-size:.85rem;
  font-weight:600;
  cursor:pointer;
  transition:all .3s;
  background:var(--card);
  color:var(--body);
  border:none;
  font-family:inherit;
}

.booking-modal .upload-tab.active {
  background:var(--accent);
  color:#fff;
}

.booking-modal .upload-tab:not(.active):hover {
  background:#f5f1ea;
}

.booking-modal .upload-content {
  position:relative;
}

.booking-modal .upload-mode {
  transition:opacity .3s ease,transform .3s ease;
}

.booking-modal .upload-mode.hidden {
  display:none;
  opacity:0;
  transform:translateY(10px);
}

.booking-modal .upload-mode.visible {
  display:block;
  opacity:1;
  transform:translateY(0);
}

.booking-modal .qr-scan-area {
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:12px 0;
}

.booking-modal .qr-code-box {
  width:200px;
  height:200px;
  border:2px solid var(--border);
  border-radius:var(--radius);
  display:flex;
  align-items:center;
  justify-content:center;
  background:#faf8f4;
  margin-bottom:14px;
  overflow:hidden;
}

.booking-modal .qr-code-box img {
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}

.booking-modal .qr-scan-hint {
  font-size:.85rem;
  color:var(--body);
  margin-bottom:18px;
  text-align:center;
}

.booking-modal .qr-status {
  text-align:center;
  margin-bottom:12px;
}

.booking-modal .qr-status-text {
  font-size:.85rem;
  color:var(--body);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}

.booking-modal .qr-status-text.done {
  color:#27ae60;
  font-weight:600;
}

.booking-modal .qr-spinner {
  display:inline-block;
  width:16px;
  height:16px;
  border:2px solid var(--border);
  border-top-color:var(--accent);
  border-radius:50%;
  animation:bk-qrSpin 1s linear infinite;
}

@keyframes bk-qrSpin {
  to {
    transform:rotate(360deg);
  }
}

.qr-received-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin:14px 0;
  max-width:280px;
}

.booking-modal .qr-received-thumb {
  aspect-ratio:1;
  border-radius:8px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:.65rem;
  color:#fff;
  font-weight:600;
  opacity:0;
  transform:scale(.8);
  transition:all .35s cubic-bezier(.34,1.56,.64,1);
}

.booking-modal .qr-received-thumb.show {
  opacity:1;
  transform:scale(1);
}

.booking-modal .qr-received-thumb.empty {
  border:2px dashed var(--border);
  opacity:.4;
  transform:scale(1);
}

.booking-modal .btn-simulate {
  padding:10px 24px;
  border:none;
  border-radius:8px;
  font-size:.85rem;
  font-weight:600;
  cursor:pointer;
  background:var(--accent);
  color:#fff;
  font-family:inherit;
  transition:background .2s,opacity .2s;
  margin-top:4px;
}

.booking-modal .btn-simulate:hover {
  background:var(--hover);
}

.booking-modal .btn-simulate:disabled {
  opacity:.4;
  cursor:not-allowed;
}

.booking-modal .summary-images .thumb.phone-thumb {
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:.7rem;
  color:#fff;
  font-weight:600;
}

.booking-modal .phone-upload-badge {
  display:inline-block;
  font-size:.7rem;
  color:var(--accent);
  background:#f5f1ea;
  padding:2px 8px;
  border-radius:4px;
  margin-top:4px;
}

@media(max-width:400px) {
  .booking-modal .upload-grid {
    gap:8px;
  }
  .booking-modal .bk-step-line {
    max-width:28px;
    margin:0 3px;
    height:3px;
  }
  .booking-modal .step-dot {
    width:26px;
    height:26px;
    font-size:.65rem;
  }
  .booking-modal .amount {
    font-size:1.5rem;
  }
}

/* ===== 首屏主视觉区 / Hero Section ===== */
.hero {
  padding:72px 32px 0;
  position:relative;
  overflow:hidden;
  min-height:calc(100vh - 72px);
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.hero-bg1 {
  position:absolute;
  inset:0;
  background:radial-gradient(ellipse 80% 50% at 50% 0%,rgba(122,106,85,.06),transparent 70%);
}

.hero-bg2 {
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 80% 60%,rgba(122,106,85,.04),transparent 50%);
}

.hero-grid {
  position:absolute;
  inset:0;
  background-image:linear-gradient(rgba(122,106,85,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(122,106,85,.025) 1px,transparent 1px);
  background-size:80px 80px;
  mask-image:radial-gradient(ellipse 60% 50% at 50% 30%,#000,transparent);
}

.hero-inner {
  max-width:1100px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:64px;
  align-items:center;
  position:relative;
  z-index:2;
}

.hero-tag {
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:13px;
  letter-spacing:.08em;
  color:var(--accent);
  margin-bottom:20px;
  text-transform:uppercase;
}

.tag-dot {
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--accent);
  animation:pulse 2s infinite;
}

@keyframes pulse {
  0%,100% {
    opacity:1;
  }
  50% {
    opacity:.3;
  }
}

#heroText, #heroVisual {
  transition:opacity .25s ease, transform .25s ease;
}

.hero-text h1 {
  font-family:'Playfair Display',serif;
  font-size:52px;
  font-weight:700;
  line-height:1.15;
  margin-bottom:20px;
}

.hero-text h1 .accent {
  color:var(--accent);
}

.hero-text p {
  font-size:17px;
  color:var(--body);
  line-height:1.9;
  margin-bottom:36px;
  max-width:480px;
}

.hero-btns {
  display:flex;
  gap:16px;
  flex-wrap:wrap;
}

.hero-visual {
  display:flex;
  justify-content:center;
  align-items:center;
  position:relative;
}

.hero-glow {
  position:absolute;
  width:350px;
  height:350px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(122,106,85,.08),transparent 70%);
  filter:blur(40px);
}

.hero-ring {
  position:absolute;
  width:480px;
  height:480px;
  border-radius:50%;
  border:1px solid rgba(122,106,85,.06);
  animation:ring-spin 30s linear infinite;
}

@keyframes ring-spin {
  to {
    transform:rotate(360deg);
  }
}

/* ===== 证书展示区 / Certificate Display ===== */
.cert-card {
  width:440px;
  background:#fff;
  border-radius:2px;
  padding:0;
  position:relative;
  overflow:visible;
  z-index:1;
  transform:rotate(1.5deg);
  filter:drop-shadow(0 2px 3px rgba(0,0,0,.12)) drop-shadow(0 12px 24px rgba(0,0,0,.06));
  opacity:0;
  animation:cert-slide .7s ease-out 0.3s forwards;
}

.cert-card::before {
  content:'';
  position:absolute;
  bottom:-4px;
  left:8px;
  right:8px;
  height:8px;
  background:rgba(0,0,0,.06);
  filter:blur(4px);
  border-radius:50%;
  z-index:-1;
}

@keyframes cert-slide {
  0% {
    opacity:0;
    transform:rotate(3deg) translateY(60px) scale(.95);
  }
  100% {
    opacity:1;
    transform:rotate(1.5deg) translateY(0) scale(1);
  }
}

.cert-shine {
  display:none;
}

.cert-print {
  opacity:0;
  filter:blur(3px);
  transform:translateY(4px);
  transition:opacity .35s ease-out,filter .35s ease-out,transform .35s ease-out;
}

.cert-print.printed {
  opacity:1;
  filter:blur(0);
  transform:translateY(0);
}

.cert-border {
  border:1px solid rgba(122,106,85,.12);
  border-radius:1px;
  padding:28px 30px 22px;
  position:relative;
  background:#fff;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.03'/%3E%3C/svg%3E");
}

.cert-header {
  text-align:center;
  margin-bottom:16px;
}

.cert-badge {
  font-size:28px;
  color:var(--accent);
  margin-bottom:8px;
}

.cert-title {
  font-family:'Playfair Display',serif;
  font-size:18px;
  font-weight:700;
  color:var(--text);
  letter-spacing:.04em;
}

.cert-subtitle {
  font-size:10px;
  color:#bbb;
  letter-spacing:.12em;
  text-transform:uppercase;
  margin-top:4px;
}

.cert-result {
  text-align:center;
  font-size:17px;
  font-weight:700;
  color:#5a8f5a;
  margin-bottom:18px;
  padding:10px 0;
  border-top:1px solid rgba(122,106,85,.1);
  border-bottom:1px solid rgba(122,106,85,.1);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}

.cert-body {
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-bottom:16px;
}

.cert-row {
  display:flex;
  justify-content:space-between;
  align-items:center;
}

.cert-label {
  font-size:12px;
  color:#aaa;
  letter-spacing:.06em;
}

.cert-val {
  font-size:13px;
  color:var(--text);
  font-weight:500;
}

.cert-divider {
  height:1px;
  background:rgba(122,106,85,.1);
  margin:4px 0;
}

.cert-footer {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding-top:14px;
  border-top:1px solid rgba(122,106,85,.1);
}

.cert-id {
  font-size:11px;
  color:#bbb;
  letter-spacing:.08em;
  font-weight:500;
}

.cert-seal {
  opacity:0;
  transform:rotate(-8deg) scale(2.5);
  position:absolute;
  right:22px;
  bottom:-16px;
  z-index:2;
  transition:all .3s cubic-bezier(.2,.8,.3,1.2);
}

.cert-seal.stamped {
  opacity:.85;
  transform:rotate(-8deg) scale(1);
}

.vertical-deco {
  position:absolute;
  writing-mode:vertical-rl;
  font-size:11px;
  letter-spacing:.15em;
  color:rgba(122,106,85,.12);
  font-weight:500;
}

.vertical-deco.left {
  left:32px;
  top:50%;
}

.vertical-deco.right {
  right:32px;
  top:40%;
}

/* ===== 数据统计条 / Stats Bar ===== */
.stats-bar {
  padding:40px 32px;
  background:var(--card);
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
  box-shadow:0 4px 24px rgba(0,0,0,.03);
}

.stats-inner {
  max-width:1100px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0;
}

.stat-item {
  text-align:center;
  flex:1;
}

.stat-num {
  font-family:'Playfair Display',serif;
  font-size:36px;
  font-weight:700;
  color:var(--accent);
  margin-bottom:6px;
}

.stat-label {
  font-size:13px;
  color:var(--body);
  letter-spacing:.05em;
}

.stat-sep {
  width:1px;
  height:48px;
  background:var(--border);
}

.section {
  padding:120px 32px;
  position:relative;
}

.container {
  max-width:1000px;
  margin:0 auto;
}

.section-inset {
  background:var(--bg2);
  border-top:1px solid rgba(122,106,85,.06);
  border-bottom:1px solid rgba(122,106,85,.06);
  box-shadow:inset 0 8px 24px rgba(0,0,0,.02);
}

.section-bg-pattern {
  position:absolute;
  inset:0;
  background-image:radial-gradient(rgba(122,106,85,.04) 1px,transparent 1px);
  background-size:24px 24px;
  pointer-events:none;
}

.section-header {
  margin-bottom:64px;
  text-align:center;
  position:relative;
}

.section-num {
  display:block;
  font-family:'Playfair Display',serif;
  font-size:72px;
  font-weight:700;
  color:rgba(122,106,85,.04);
  line-height:1;
  margin-bottom:-20px;
}

.section-header .tag {
  display:inline-block;
  font-size:12px;
  letter-spacing:.12em;
  color:var(--accent);
  font-weight:500;
  margin-bottom:16px;
  text-transform:uppercase;
  position:relative;
}

.section-header h2 {
  font-family:'Playfair Display',serif;
  font-size:36px;
  font-weight:700;
  margin-bottom:16px;
  position:relative;
}

.section-header h2 .accent {
  color:var(--accent);
}

.section-header p {
  color:var(--body);
  font-size:16px;
  max-width:500px;
  margin:0 auto;
}

.section-divider {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  padding:0 32px;
  max-width:600px;
  margin:0 auto;
}

.divider-line {
  flex:1;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(122,106,85,.15),transparent);
}

.divider-diamond {
  width:8px;
  height:8px;
  background:var(--accent);
  transform:rotate(45deg);
  opacity:.3;
}

/* ===== 服务卡片 / Service Cards ===== */
.service-cards {
  max-width:1060px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px;
}

.service-card {
  border-radius:16px;
  background:var(--card);
  border:1px solid var(--border);
  transition:all .4s;
  overflow:hidden;
  box-shadow:var(--shadow-sm);
}

.service-card:hover {
  transform:translateY(-8px);
  box-shadow:var(--shadow-lg);
  border-color:rgba(122,106,85,.15);
}

.card-inner {
  padding:36px 20px 28px;
  text-align:center;
  position:relative;
}

.card-badge {
  position:absolute;
  top:12px;
  right:12px;
  background:var(--accent);
  color:#fff;
  font-size:11px;
  font-weight:600;
  padding:3px 10px;
  border-radius:20px;
  letter-spacing:.04em;
}

.service-card-icon {
  width:56px;
  height:56px;
  border-radius:14px;
  background:linear-gradient(135deg,rgba(122,106,85,.08),rgba(122,106,85,.03));
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto 18px;
  font-size:22px;
  color:var(--accent);
}

.service-card h4 {
  font-family:'Playfair Display',serif;
  font-size:17px;
  font-weight:700;
  margin-bottom:8px;
}

.price {
  font-family:'Playfair Display',serif;
  font-size:22px;
  font-weight:700;
  color:var(--accent);
  margin-bottom:8px;
}

.service-card p {
  color:var(--body);
  font-size:13px;
  line-height:1.7;
  margin-bottom:14px;
}

.card-features {
  list-style:none;
  text-align:left;
  padding:12px 0 0;
  border-top:1px solid var(--border);
}

.card-features li {
  font-size:13px;
  color:var(--body);
  padding:5px 0;
  display:flex;
  align-items:center;
  gap:8px;
}

.card-features i {
  color:var(--accent);
  font-size:11px;
}

.card-btn {
  display:block;
  text-align:center;
  margin-top:16px;
  padding:10px 0;
  border-radius:8px;
  background:var(--accent);
  color:#fff;
  font-size:13px;
  font-weight:600;
  text-decoration:none;
  transition:all .3s;
  letter-spacing:.05em;
}

.card-btn:hover {
  background:#5a4a35;
  transform:translateY(-2px);
}

.compare-grid {
  max-width:800px;
  margin:0 auto;
  display:flex;
  align-items:stretch;
  gap:24px;
}

.compare-card {
  flex:1;
  padding:32px 28px;
  border-radius:16px;
  border:1px solid var(--border);
}

.compare-them {
  background:rgba(0,0,0,.02);
}

.compare-us {
  background:var(--card);
  box-shadow:var(--shadow-md);
  border-color:rgba(122,106,85,.15);
}

.compare-title {
  font-family:'Playfair Display',serif;
  font-size:22px;
  font-weight:700;
  margin-bottom:20px;
  display:flex;
  align-items:center;
  gap:10px;
}

.compare-them .compare-title {
  color:#999;
}

.compare-them .compare-title i {
  color:#d9534f;
  font-size:20px;
}

.compare-us .compare-title {
  color:var(--accent);
}

.compare-us .compare-title i {
  color:var(--accent);
  font-size:20px;
}

.compare-card ul {
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:12px;
}

.compare-card li {
  font-size:14px;
  color:var(--body);
  line-height:1.6;
  padding-left:8px;
}

.compare-them li {
  text-decoration:line-through;
  opacity:.6;
}

.compare-vs {
  font-family:'Playfair Display',serif;
  font-size:20px;
  font-weight:700;
  color:var(--accent);
  display:flex;
  align-items:center;
  opacity:.4;
}

.tech-cards {
  max-width:1000px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}

.tech-card {
  padding:36px 24px;
  border-radius:16px;
  background:var(--card);
  border:1px solid var(--border);
  transition:all .4s;
  box-shadow:var(--shadow-sm);
  position:relative;
  overflow:hidden;
}

.tech-card::before {
  content:'';
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:3px;
  background:linear-gradient(90deg,transparent,var(--accent),transparent);
  opacity:0;
  transition:opacity .4s;
}

.tech-card:hover {
  transform:translateY(-6px);
  box-shadow:var(--shadow-lg);
}

.tech-card:hover::before {
  opacity:.5;
}

.tech-card-icon {
  font-size:24px;
  color:var(--accent);
  margin-bottom:16px;
}

.tech-card h4 {
  font-family:'Playfair Display',serif;
  font-size:16px;
  font-weight:700;
  margin-bottom:8px;
}

.tech-card p {
  color:var(--body);
  font-size:14px;
  line-height:1.8;
}

.workflow-grid {
  max-width:1000px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  position:relative;
}

.workflow-step {
  text-align:center;
  padding:24px 20px;
  position:relative;
}

.step-num {
  font-family:'Playfair Display',serif;
  font-size:56px;
  font-weight:700;
  color:rgba(122,106,85,.06);
  line-height:1;
}

.step-icon {
  width:64px;
  height:64px;
  border-radius:50%;
  background:var(--accent);
  display:flex;
  align-items:center;
  justify-content:center;
  margin:16px auto;
  font-size:20px;
  color:#fff;
  position:relative;
  z-index:2;
  box-shadow:0 4px 20px rgba(122,106,85,.2);
}

.workflow-step h4 {
  font-family:'Playfair Display',serif;
  font-size:16px;
  font-weight:700;
  margin-bottom:8px;
}

.workflow-step p {
  color:var(--body);
  font-size:14px;
}

.step-line {
  position:absolute;
  top:55%;
  right:-50%;
  width:100%;
  height:1px;
  background:linear-gradient(90deg,var(--accent),transparent);
  opacity:.15;
  z-index:1;
}

.workflow-step:last-child .step-line {
  display:none;
}

/* ===== FAQ 常见问题 / FAQ Section ===== */
.faq-list {
  max-width:700px;
  margin:0 auto;
}

.faq-item {
  border-bottom:1px solid var(--border);
  overflow:hidden;
}

.faq-q {
  padding:20px 0;
  display:flex;
  justify-content:space-between;
  align-items:center;
  cursor:pointer;
  font-size:16px;
  font-weight:500;
  transition:color .3s;
}

.faq-q:hover {
  color:var(--accent);
}

.faq-q i {
  font-size:12px;
  color:var(--accent);
  transition:transform .3s;
}

.faq-item.open .faq-q i {
  transform:rotate(180deg);
}

.faq-a {
  max-height:0;
  overflow:hidden;
  transition:max-height .4s ease,padding .4s ease;
}

.faq-item.open .faq-a {
  max-height:200px;
  padding-bottom:20px;
}

.faq-a p {
  font-size:15px;
  color:var(--body);
  line-height:1.8;
}

.about-text {
  max-width:700px;
  margin:0 auto;
  text-align:center;
}

.about-text p {
  font-size:16px;
  line-height:2.2;
  color:var(--body);
}

.about-block {
  max-width:800px;
  margin:0 auto;
}

.about-quote {
  text-align:center;
  margin-bottom:32px;
  padding:28px 32px;
  background:var(--card);
  border-radius:16px;
  border:1px solid var(--border);
  box-shadow:var(--shadow-sm);
  position:relative;
}

.about-quote i {
  font-size:24px;
  color:var(--accent);
  opacity:.4;
  margin-bottom:8px;
  display:block;
}

.about-quote p {
  font-family:'Playfair Display',serif;
  font-size:18px;
  font-weight:600;
  color:var(--heading);
  line-height:1.8;
  margin:0;
}

.about-desc {
  text-align:center;
  margin-bottom:36px;
}

.about-desc p {
  font-size:15px;
  line-height:2;
  color:var(--body);
  margin-bottom:12px;
}

.about-desc p:last-child {
  margin-bottom:0;
}

.about-values {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}

.about-val-item {
  display:flex;
  align-items:flex-start;
  gap:14px;
  padding:20px;
  background:var(--card);
  border-radius:12px;
  border:1px solid var(--border);
  box-shadow:var(--shadow-sm);
  transition:all .3s;
}

.about-val-item:hover {
  transform:translateY(-4px);
  box-shadow:var(--shadow-md);
}

.about-val-icon {
  width:40px;
  height:40px;
  border-radius:10px;
  background:linear-gradient(135deg,rgba(122,106,85,.1),rgba(122,106,85,.03));
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
  color:var(--accent);
  flex-shrink:0;
}

.about-val-item h4 {
  font-size:14px;
  font-weight:700;
  color:var(--heading);
  margin-bottom:4px;
}

.about-val-item p {
  font-size:12px;
  color:var(--body);
  line-height:1.6;
  margin:0;
}

@media(max-width:1024px) {
  .hero-inner {
    grid-template-columns:1fr;
    text-align:center;
  }
  .hero-left {
    align-items:center;
    width:100%;
  }
  .proj-bar {
    justify-content:center;
  }
  .hero-text p {
    margin:0 auto 32px;
    max-width:520px;
  }
  .hero-btns {
    justify-content:center;
  }
  .hero-visual {
    margin-top:32px;
  }
  .vertical-deco {
    display:none;
  }
  .stats-inner {
    flex-wrap:wrap;
    gap:24px;
  }
  .stat-sep {
    display:none;
  }
  .stat-item {
    min-width:40%;
  }
  .service-cards {
    grid-template-columns:repeat(2,1fr);
  }
  .tech-cards {
    grid-template-columns:repeat(2,1fr);
  }
  .workflow-grid {
    grid-template-columns:repeat(2,1fr);
    gap:24px;
  }
  .step-line {
    display:none;
  }
  .compare-grid {
    flex-direction:column;
  }
  .compare-vs {
    justify-content:center;
  }
  .cert-card {
    max-width:90%;
    padding:36px 28px;
  }
}

@media(max-width:768px) {
  .nav-links {
    display:none;
  }
  .nav-mobile {
    display:block;
  }
  .hero {
    padding:72px 20px 0;
  }
  .hero-text h1 {
    font-size:28px;
  }
  .hero-text p {
    font-size:14px;
  }
  .section {
    padding:60px 20px;
  }
  .section-header h2 {
    font-size:24px;
  }
  .section-num {
    font-size:40px;
  }
  .service-cards,.tech-cards,.workflow-grid {
    grid-template-columns:1fr;
  }
  .stat-num {
    font-size:28px;
  }
  .stat-label {
    font-size:11px;
  }
  .stats-bar {
    padding:28px 20px;
  }
  .cert-card {
    max-width:100%;
    padding:28px 20px;
    margin:0 auto;
  }
  .cert-title {
    font-size:18px;
  }
  .cert-row {
    flex-direction:column;
    align-items:flex-start;
    gap:2px;
  }
  .cert-val {
    text-align:left;
  }
  .compare-card {
    padding:24px 20px;
  }
  .compare-title {
    font-size:18px;
  }
  .about-text {
    font-size:14px;
  }
  .about-values {
    grid-template-columns:1fr;
  }
  .about-quote p {
    font-size:16px;
  }
}

@media(max-width:480px) {
  .hero {
    padding:72px 16px 0;
  }
  .hero-text h1 {
    font-size:24px;
  }
  .section {
    padding:48px 16px;
  }
  .section-header h2 {
    font-size:20px;
  }
  .stat-item {
    min-width:45%;
  }
  .stat-num {
    font-size:24px;
  }
  .cert-card {
    padding:24px 16px;
  }
  .cert-seal svg {
    width:56px;
    height:56px;
  }
}

::-webkit-scrollbar {
  width:8px;
}

::-webkit-scrollbar-track {
  background:var(--bg);
}

::-webkit-scrollbar-thumb {
  background:rgba(122,106,85,.3);
  border-radius:4px;
}

::-webkit-scrollbar-thumb:hover {
  background:rgba(122,106,85,.5);
}

html {
  scrollbar-color:rgba(122,106,85,.3) var(--bg);
  scrollbar-width:thin;
}

@media(max-width:768px) {
  .booking-modal .upload-tabs {
    display:none;
  }
  .booking-modal .upload-content[data-mode="phone"] {
    display:none!important;
  }
  .booking-modal .upload-content[data-mode="pc"] {
    display:block!important;
  }
  .hero {
    min-height:auto;
    padding:110px 16px 32px;
  }
  .hero-visual {
    display:none;
  }
  .hero-inner {
    gap:16px;
  }
  .hero-text h1 {
    font-size:24px;
    line-height:1.3;
  }
  .hero-text p {
    font-size:13px;
    margin:0 auto 20px;
    max-width:none;
  }
  .hero-tag {
    font-size:12px;
  }
  .hero-btns {
    gap:10px;
  }
  .hero-btns .btn-primary,.hero-btns .btn-outline {
    font-size:13px;
    padding:10px 20px;
  }
  .section {
    padding:32px 16px;
  }
  .section-header {
    margin-bottom:20px;
  }
  .section-header h2 {
    font-size:1.15rem;
  }
  .section-header p {
    font-size:.8rem;
  }
  .section-num {
    font-size:32px;
  }
  .container {
    padding:0 16px;
  }
  .service-cards {
    grid-template-columns:repeat(2,1fr);
    gap:10px;
  }
  .service-card .card-inner {
    padding:14px 12px;
  }
  .service-card-icon {
    width:32px;
    height:32px;
    font-size:1rem;
    margin:0 auto 6px;
    border-radius:10px;
  }
  .service-card h4 {
    font-size:.85rem;
    margin-bottom:4px;
  }
  .service-card .price {
    font-size:.95rem;
    margin-bottom:4px;
  }
  .service-card p {
    font-size:.72rem;
    margin-bottom:6px;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .card-features {
    display:none;
  }
  .card-btn {
    font-size:.75rem;
    padding:6px 12px;
  }
  .card-badge {
    font-size:.65rem;
    padding:2px 8px;
  }
  .about-text {
    font-size:13px;
    line-height:1.7;
    padding:0 4px;
  }
  .about-text p {
    font-size:13px;
    line-height:1.7;
  }
  .compare-grid {
    gap:12px;
  }
  .compare-card {
    padding:16px 14px;
  }
  .compare-title {
    font-size:15px;
    margin-bottom:10px;
  }
  .compare-card ul {
    gap:4px;
  }
  .compare-card li {
    font-size:.8rem;
    padding:4px 0;
  }
  .compare-vs {
    font-size:1rem;
    margin:8px 0;
    padding:6px 0;
  }
  .stats-bar {
    padding:20px 16px;
  }
  .stats-inner {
    gap:16px;
  }
  .stat-item {
    min-width:40%;
  }
  .stat-num {
    font-size:1.5rem;
  }
  .stat-label {
    font-size:.68rem;
    white-space:nowrap;
  }
  .hero-col.right,.hero .hero-col.right {
    display:none;
  }
  .plans-grid {
    grid-template-columns:repeat(2,1fr);
    gap:10px;
  }
  .plan-card {
    padding:14px 12px;
  }
  .plan-card .card-icon {
    font-size:1rem;
    width:32px;
    height:32px;
    margin-bottom:6px;
  }
  .plan-card h3 {
    font-size:.85rem;
    margin-bottom:4px;
  }
  .plan-card .price {
    font-size:.95rem;
    margin-bottom:4px;
  }
  .plan-card .price-period {
    font-size:.65rem;
  }
  .plan-card p {
    font-size:.72rem;
    margin-bottom:6px;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }

  /* ===== 特性/优势展示 / Features Section ===== */
.plan-card .features {
    display:none;
  }
  .plan-card .btn,.plan-card a {
    font-size:.75rem;
    padding:6px 12px;
  }
  .footer {
    padding:24px 0 16px;
  }
  .footer-grid {
    grid-template-columns:1fr 1fr;
    gap:12px 20px;
    text-align:left;
  }
  .footer-col {
    font-size:.8rem;
  }
  .footer-col h3 {
    font-size:.9rem;
    margin-bottom:8px;
  }
  .footer-col li,.footer-col p {
    font-size:.78rem;
    margin-bottom:4px;
  }
  .footer-col a {
    font-size:.78rem;
  }
  .footer-bottom {
    font-size:.72rem;
    padding-top:12px;
    margin-top:12px;
  }
}

@media(max-width:480px) {
  .hero {
    padding:100px 12px 20px;
  }
  .hero-text h1 {
    font-size:20px;
  }
  .section {
    padding:24px 12px;
  }
  .section-header h2 {
    font-size:1.05rem;
  }
  .section-num {
    font-size:28px;
  }
  .stats-bar {
    padding:16px 12px;
  }
  .stats-inner {
    gap:12px;
  }
  .stat-num {
    font-size:1.25rem;
  }
  .stat-label {
    font-size:.62rem;
  }
  .compare-card {
    padding:12px 10px;
  }
  .compare-title {
    font-size:13px;
  }
  .compare-card li {
    font-size:.75rem;
  }
  .about-text,.about-text p {
    font-size:12px;
  }
  .plans-grid {
    gap:8px;
  }
  .plan-card {
    padding:12px 10px;
  }
  .plan-card .card-icon {
    width:28px;
    height:28px;
    font-size:.9rem;
  }
  .plan-card h3 {
    font-size:.8rem;
  }
  .plan-card .price {
    font-size:.88rem;
  }
}
/* Club search dropdown */
.club-search-wrap{position:relative}
.club-search-wrap input{width:100%;box-sizing:border-box}
.club-dropdown{display:none;position:absolute;top:100%;left:0;right:0;z-index:50;margin-top:4px;max-height:200px;overflow-y:auto;background:#fff;border:1px solid #e0d5c8;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.12)}
.club-dropdown.show{display:block}
.club-dropdown .club-opt{padding:10px 14px;cursor:pointer;font-size:.85rem;color:#4a3f35;transition:background .15s}
.club-dropdown .club-opt:hover,.club-dropdown .club-opt.active{background:#f5f0ea}
.club-dropdown .club-opt:first-child{border-radius:8px 8px 0 0}
.club-dropdown .club-opt:last-child{border-radius:0 0 8px 8px}
.club-dropdown .club-hint{padding:12px 14px;font-size:.8rem;color:#9a8f82;text-align:center}
.club-search-wrap .club-selected{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f5f0ea;border:1px solid #d4c9bc;border-radius:8px;font-size:.85rem;color:#4a3f35;cursor:pointer}
.club-search-wrap .club-selected .club-clear{margin-left:auto;cursor:pointer;color:#9a8f82;font-size:1rem;line-height:1}
.club-search-wrap .club-selected .club-clear:hover{color:#e74c3c}

/* Service type custom selector */
.svc-search-wrap{position:relative}
.svc-trigger{width:100%;padding:10px 14px;border:1.5px solid var(--border);border-radius:8px;font-size:.9rem;color:#9a8f82;background:#fff;cursor:pointer;box-sizing:border-box;transition:border-color .2s;display:flex;align-items:center;justify-content:space-between}
.svc-trigger:hover{border-color:var(--accent)}
.svc-trigger .svc-arrow{width:12px;height:7px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%237a6a55' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;flex-shrink:0}
.svc-dropdown{display:none;position:absolute;top:100%;left:0;right:0;z-index:50;margin-top:4px;max-height:240px;overflow-y:auto;background:#fff;border:1px solid #e0d5c8;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.12)}
.svc-dropdown.show{display:block}
.svc-dropdown .svc-opt{padding:10px 14px;cursor:pointer;font-size:.85rem;color:#4a3f35;transition:background .15s;display:flex;align-items:center;gap:10px}
.svc-dropdown .svc-opt:hover{background:#f5f0ea}
.svc-dropdown .svc-opt:first-child{border-radius:8px 8px 0 0}
.svc-dropdown .svc-opt:last-child{border-radius:0 0 8px 8px}
.svc-dropdown .svc-opt i{width:20px;text-align:center;color:var(--accent);font-size:1rem}
.svc-search-wrap .svc-selected{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f5f0ea;border:1px solid #d4c9bc;border-radius:8px;font-size:.85rem;color:#4a3f35;cursor:pointer}
.svc-search-wrap .svc-selected i{color:var(--accent);font-size:1rem}
.svc-search-wrap .svc-selected .svc-clear{margin-left:auto;cursor:pointer;color:#9a8f82;font-size:1rem;line-height:1}
.svc-search-wrap .svc-selected .svc-clear:hover{color:#e74c3c}

/* AOS: project tabs */
.proj-bar .proj-btn[data-aos] {
  will-change: transform, opacity;
}

/* ===== Monitor Display (optimize hero) ===== */
.monitor{width:100%;max-width:520px}
.monitor-bezel{background:#1a1a1e;border-radius:12px;padding:10px;box-shadow:0 2px 8px rgba(0,0,0,.25),0 20px 60px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.05);position:relative}
.monitor-bezel::before{content:'';position:absolute;top:4px;left:50%;transform:translateX(-50%);width:6px;height:6px;border-radius:50%;background:#2a2a30;box-shadow:inset 0 0 2px rgba(0,0,0,.5)}
.monitor-screen{background:#0f1219;border-radius:6px;overflow:hidden;aspect-ratio:16/10;position:relative}
.monitor-screen::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.03) 0%,transparent 50%);pointer-events:none;z-index:10}
.monitor-neck{width:40px;height:28px;background:linear-gradient(180deg,#222228,#2c2c32);margin:0 auto;position:relative}
.monitor-neck::after{content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:52px;height:6px;background:#2c2c32;border-radius:2px}
.monitor-base{width:120px;height:6px;background:linear-gradient(180deg,#303036,#26262c);margin:-1px auto 0;border-radius:2px 2px 3px 3px;box-shadow:0 3px 10px rgba(0,0,0,.12);position:relative}
.monitor-base::after{content:'';position:absolute;bottom:-2px;left:50%;transform:translateX(-50%);width:140px;height:3px;background:rgba(0,0,0,.06);border-radius:50%;filter:blur(2px)}

.opt-ui{display:flex;height:100%;font-size:12px;color:#c8ccd4}
.opt-sidebar{width:52px;background:#161a24;display:flex;flex-direction:column;align-items:center;padding:14px 0 10px;gap:2px;border-right:1px solid rgba(255,255,255,.04);flex-shrink:0}
.opt-sb-item{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#5a5f6a;font-size:14px;cursor:pointer;transition:all .2s}
.opt-sb-item.active{background:rgba(34,197,94,.12);color:#22c55e}
.opt-sb-item:hover{color:#fff}
.opt-main{flex:1;display:flex;flex-direction:column;overflow:hidden}
.opt-topbar{height:36px;background:#161a24;border-bottom:1px solid rgba(255,255,255,.04);display:flex;align-items:center;padding:0 14px;gap:8px;flex-shrink:0}
.opt-topbar-title{font-size:11px;color:#8b8f9a;font-weight:500}
.opt-page{display:none;flex:1;padding:14px;gap:12px;overflow:hidden}
.opt-page.active{display:flex}
.opt-page.fade-in{animation:opt-page-fade .35s cubic-bezier(.22,1,.36,1)}
@keyframes opt-page-fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.page-col{flex:1;display:flex;flex-direction:column;gap:8px;min-width:0}
.opt-tasks{flex:1;display:flex;flex-direction:column;gap:8px;min-width:0}
.opt-tasks-hd{font-size:11px;font-weight:700;color:#e2e4e8;margin-bottom:2px;display:flex;align-items:center;gap:6px}
.opt-tasks-hd .badge{background:rgba(34,197,94,.15);color:#22c55e;font-size:9px;padding:1px 6px;border-radius:9px;font-weight:600}
.task-item{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.05);border-radius:8px;padding:8px 10px;display:flex;align-items:center;gap:8px;transition:all .3s}
.task-item:hover{background:rgba(255,255,255,.06)}
.task-icon{width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0}
.task-icon.green{background:rgba(34,197,94,.12);color:#22c55e}
.task-icon.blue{background:rgba(59,130,246,.12);color:#3b82f6}
.task-icon.orange{background:rgba(245,158,11,.12);color:#f59e0b}
.task-icon.purple{background:rgba(168,85,247,.12);color:#a855f7}
.task-info{flex:1;min-width:0}
.task-name{font-size:10.5px;color:#e2e4e8;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.task-desc{font-size:9px;color:#5a5f6a;margin-top:1px}
.task-status{font-size:9px;font-weight:600;padding:2px 7px;border-radius:9px;white-space:nowrap;flex-shrink:0}
.task-status.done{background:rgba(34,197,94,.12);color:#22c55e}
.task-status.running{background:rgba(59,130,246,.12);color:#3b82f6}
.task-status.pending{background:rgba(255,255,255,.06);color:#5a5f6a}

.opt-dash{width:155px;display:flex;flex-direction:column;gap:8px;flex-shrink:0}
.score-card{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.05);border-radius:10px;padding:12px;text-align:center}
.score-ring{position:relative;width:72px;height:72px;margin:0 auto 6px}
.score-ring svg{width:100%;height:100%}
.score-ring .ring-bg{fill:none;stroke:rgba(255,255,255,.06);stroke-width:6}
.score-ring .ring-fg{fill:none;stroke:#22c55e;stroke-width:6;stroke-linecap:round;stroke-dasharray:201;stroke-dashoffset:30;transform:rotate(-90deg);transform-origin:center}
.score-num{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.score-num strong{font-size:22px;font-weight:800;color:#22c55e;line-height:1}
.score-num small{font-size:8px;color:#5a5f6a;margin-top:1px}
.score-label{font-size:9px;color:#22c55e;font-weight:600;background:rgba(34,197,94,.1);display:inline-block;padding:1px 8px;border-radius:8px}
.mini-cards{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.mini-card{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.05);border-radius:8px;padding:8px 7px;text-align:center}
.mini-card-icon{font-size:13px;margin-bottom:3px}
.mini-card-val{font-size:12px;font-weight:700;color:#e2e4e8;line-height:1.1}
.mini-card-label{font-size:8px;color:#5a5f6a;margin-top:2px}
.opt-progress-card{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.05);border-radius:8px;padding:8px 10px}
.opt-progress-hd{font-size:9px;color:#8b8f9a;margin-bottom:6px;display:flex;justify-content:space-between}
.opt-progress-hd strong{color:#e2e4e8}
.progress-bar{height:5px;background:rgba(255,255,255,.06);border-radius:3px;overflow:hidden;margin-bottom:4px}
.progress-fill{height:100%;border-radius:3px;transition:width 2s cubic-bezier(.22,1,.36,1)}
.progress-fill.green{background:linear-gradient(90deg,#16a34a,#22c55e)}
.progress-fill.blue{background:linear-gradient(90deg,#2563eb,#3b82f6)}
.opt-bottombar{height:26px;background:#161a24;border-top:1px solid rgba(255,255,255,.06);display:flex;align-items:center;padding:0 14px;gap:12px;font-size:10px;color:#8b8f9a;flex-shrink:0}
.opt-bottombar .live-dot{width:5px;height:5px;border-radius:50%;background:#22c55e;box-shadow:0 0 6px rgba(34,197,94,.4);animation:mon-pulse 2s infinite}
@keyframes mon-pulse{0%,100%{opacity:1}50%{opacity:.4}}
.game-item{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.05);border-radius:8px;padding:8px 10px;display:flex;align-items:center;gap:8px}
.game-icon{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}
.game-info{flex:1;min-width:0}
.game-name{font-size:10.5px;color:#e2e4e8;font-weight:600}
.game-desc{font-size:9px;color:#5a5f6a;margin-top:1px}
.game-btn{font-size:9px;padding:3px 8px;border-radius:6px;border:none;font-weight:600;cursor:pointer;flex-shrink:0}
.game-btn.go{background:rgba(59,130,246,.15);color:#3b82f6}
.game-btn.done{background:rgba(34,197,94,.12);color:#22c55e}
.chk-item{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.05);border-radius:8px;padding:7px 10px;display:flex;align-items:center;gap:8px;font-size:10.5px;color:#c8ccd4;cursor:pointer;transition:background .2s}
.chk-item:hover{background:rgba(255,255,255,.06)}
.chk-box{width:14px;height:14px;border-radius:4px;border:1.5px solid #3a3f4a;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:9px;color:transparent;transition:all .2s}
.chk-item.checked .chk-box{background:#22c55e;border-color:#22c55e;color:#fff}
.chk-tag{margin-left:auto;font-size:8px;padding:1px 5px;border-radius:6px;font-weight:600;flex-shrink:0}
.chk-tag.safe{background:rgba(34,197,94,.12);color:#22c55e}
.chk-tag.warn{background:rgba(245,158,11,.12);color:#f59e0b}
.sys-card{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.05);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:6px}
.sys-card-hd{display:flex;align-items:center;gap:8px}
.sys-card-icon{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}
.sys-card-title{font-size:11px;font-weight:700;color:#e2e4e8}
.sys-card-desc{font-size:9px;color:#5a5f6a}
.sys-card-btn{margin-top:2px;align-self:flex-start;font-size:9px;padding:3px 10px;border-radius:6px;border:none;cursor:pointer;font-weight:600;transition:opacity .2s}
.sys-card-btn:hover{opacity:.85}
.sys-card-btn.primary{background:#22c55e;color:#fff}
.sys-card-btn.ghost{background:rgba(255,255,255,.06);color:#8b8f9a}
.task-status.running{animation:mon-breathe 2.5s ease-in-out infinite}
@keyframes mon-breathe{0%,100%{opacity:1}50%{opacity:.55}}

/* ===== Monitor scrollbar theme ===== */
.opt-ui ::-webkit-scrollbar{width:4px;height:4px}
.opt-ui ::-webkit-scrollbar-track{background:transparent}
.opt-ui ::-webkit-scrollbar-thumb{background:rgba(255,255,255,.1);border-radius:4px}
.opt-ui ::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.2)}
.opt-ui{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.1) transparent}

/* ===== Monitor page height fix ===== */
.opt-page{min-height:0}
.opt-page.active{display:flex;flex:1}
.page-col{overflow-y:auto}

/* ===== Enhanced interactions ===== */
.game-btn{transition:all .2s;cursor:pointer}
.game-btn:hover{opacity:.85;transform:scale(1.04)}
.game-btn:active{transform:scale(.97)}
.sys-card-btn{transition:all .2s}
.sys-card-btn:hover{transform:scale(1.03)}
.sys-card-btn:active{transform:scale(.97)}

/* ===== Fixed hover effects (no jitter) ===== */
.task-item{cursor:pointer;transition:all .25s}
.task-item:hover{background:rgba(255,255,255,.07)}
.game-item{cursor:pointer;transition:all .25s}
.game-item:hover{background:rgba(255,255,255,.07)}
.chk-item{transition:all .2s}
.sys-card{transition:all .3s;cursor:pointer}
.sys-card:hover{background:rgba(255,255,255,.06);box-shadow:0 4px 12px rgba(0,0,0,.15)}
.opt-sb-item{transition:all .2s}
.mini-card{transition:all .2s;cursor:default}
.mini-card:hover{background:rgba(255,255,255,.06)}

/* ===== Staggered entry animations ===== */
.task-item{opacity:0;animation:mon-slideIn .4s ease forwards}
.task-item:nth-child(2){animation-delay:.05s}
.task-item:nth-child(3){animation-delay:.1s}
.task-item:nth-child(4){animation-delay:.15s}
.task-item:nth-child(5){animation-delay:.2s}
.task-item:nth-child(6){animation-delay:.25s}
.task-item:nth-child(7){animation-delay:.3s}
@keyframes mon-slideIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}

/* Score ring draw animation */
.score-ring .ring-fg{stroke-dashoffset:201;animation:mon-ringDraw 1.6s .3s cubic-bezier(.22,1,.36,1) forwards}
@keyframes mon-ringDraw{to{stroke-dashoffset:30}}

/* Score card pop */
.score-card{opacity:0;transform:scale(.92);animation:mon-cardPop .5s .2s cubic-bezier(.22,1,.36,1) forwards}
@keyframes mon-cardPop{to{opacity:1;transform:scale(1)}}

/* Mini cards stagger */
.mini-card{opacity:0;animation:mon-fadeUp .35s ease forwards}
.mini-cards .mini-card:nth-child(1){animation-delay:.35s}
.mini-cards .mini-card:nth-child(2){animation-delay:.45s}
.mini-cards .mini-card:nth-child(3){animation-delay:.55s}
.mini-cards .mini-card:nth-child(4){animation-delay:.65s}
@keyframes mon-fadeUp{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}

/* Progress bar fill animation */
.progress-fill{transition:width 1.8s .4s cubic-bezier(.22,1,.36,1)}

/* Progress card entry */
.opt-progress-card{opacity:0;animation:mon-fadeIn .4s .7s ease forwards}
@keyframes mon-fadeIn{to{opacity:1}}

/* Task status badges entry */
.task-status{opacity:0;animation:mon-badgePop .3s ease forwards}
.task-item:nth-child(1) .task-status{animation-delay:.15s}
.task-item:nth-child(2) .task-status{animation-delay:.2s}
.task-item:nth-child(3) .task-status{animation-delay:.25s}
.task-item:nth-child(4) .task-status{animation-delay:.3s}
.task-item:nth-child(5) .task-status{animation-delay:.35s}
.task-item:nth-child(6) .task-status{animation-delay:.4s}
@keyframes mon-badgePop{from{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}

/* Running status pulse */
.task-status.running{animation:mon-badgePop .3s .3s ease forwards,mon-breathe 2.5s 1s ease-in-out infinite}

/* Bottom bar data subtle tick */
.opt-bottombar span{transition:opacity .3s}
.mon-tick{animation:mon-dataTick .3s ease}
@keyframes mon-dataTick{0%{opacity:1}40%{opacity:.5}100%{opacity:1}}

/* Game/sys card entry animations */
.game-item{opacity:0;animation:mon-slideIn .4s ease forwards}
.game-item:nth-child(2){animation-delay:.05s}
.game-item:nth-child(3){animation-delay:.1s}
.game-item:nth-child(4){animation-delay:.15s}
.game-item:nth-child(5){animation-delay:.2s}
.game-item:nth-child(6){animation-delay:.25s}
.sys-card{opacity:0;animation:mon-slideIn .4s ease forwards}
.sys-card:nth-child(2){animation-delay:.08s}
.sys-card:nth-child(3){animation-delay:.16s}
.sys-card:nth-child(4){animation-delay:.24s}
.chk-item{opacity:0;animation:mon-slideIn .35s ease forwards}
.chk-item:nth-child(2){animation-delay:.04s}
.chk-item:nth-child(3){animation-delay:.08s}
.chk-item:nth-child(4){animation-delay:.12s}
.chk-item:nth-child(5){animation-delay:.16s}
.chk-item:nth-child(6){animation-delay:.2s}
.chk-item:nth-child(7){animation-delay:.24s}
.chk-item:nth-child(8){animation-delay:.28s}
.chk-item:nth-child(9){animation-delay:.32s}

/* Overflow fix */
.opt-page{overflow:hidden!important}
.page-col{overflow-y:auto;overflow-x:hidden}
.opt-tasks{overflow-y:auto;overflow-x:hidden}

/* ===== Order Report Card ===== */
.order-card{width:440px;background:#fff;border-radius:2px;padding:0;position:relative;overflow:visible;z-index:1;filter:drop-shadow(0 2px 3px rgba(0,0,0,.12)) drop-shadow(0 12px 24px rgba(0,0,0,.06));opacity:0;animation:order-slide .7s ease-out .3s forwards}
.order-card::before{content:'';position:absolute;bottom:-4px;left:8px;right:8px;height:8px;background:rgba(0,0,0,.06);filter:blur(4px);border-radius:50%;z-index:-1}
@keyframes order-slide{0%{opacity:0;transform:translateY(60px) scale(.95)}100%{opacity:1;transform:translateY(0) scale(1)}}
.order-inner{border:1px solid rgba(122,106,85,.12);border-radius:1px;padding:26px 28px 20px;position:relative;background:#fff;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.03'/%3E%3C/svg%3E")}
.order-hd{text-align:center;margin-bottom:14px}
.order-title{font-family:'Playfair Display',serif;font-size:17px;font-weight:700;color:#3d3428;letter-spacing:.04em}
.order-subtitle{font-size:9px;color:#bbb;letter-spacing:.12em;text-transform:uppercase;margin-top:3px}
.order-status-bar{text-align:center;font-size:14px;font-weight:700;padding:8px 0;margin-bottom:14px;border-top:1px solid rgba(122,106,85,.1);border-bottom:1px solid rgba(122,106,85,.1);display:flex;align-items:center;justify-content:center;gap:8px}
.order-status-bar.completed{color:#5a8f5a}
.order-status-bar.progress{color:#3b82f6}
.order-section{margin-bottom:12px}
.order-section-title{font-size:9px;color:#b0a898;letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px;font-weight:600}
.order-row{display:flex;justify-content:space-between;align-items:center;padding:3px 0}
.order-label{font-size:11.5px;color:#aaa;letter-spacing:.04em}
.order-val{font-size:12.5px;color:#3d3428;font-weight:500}
.order-divider{height:1px;background:rgba(122,106,85,.1);margin:6px 0}
.order-players{display:flex;gap:10px;margin:8px 0}
.order-player-card{flex:1;background:rgba(122,106,85,.04);border:1px solid rgba(122,106,85,.08);border-radius:6px;padding:8px 10px}
.order-player-role{font-size:8px;color:#b0a898;letter-spacing:.08em;text-transform:uppercase;font-weight:600;margin-bottom:4px}
.order-player-name{font-size:13px;font-weight:700;color:#3d3428}
.order-player-game{font-size:10px;color:#8a7e6e;margin-top:2px}
.order-screenshot{margin:10px 0 6px;border-radius:6px;overflow:hidden;border:1px solid rgba(122,106,85,.08);position:relative;height:80px;background:linear-gradient(135deg,#1a1f2e 0%,#0f1923 50%,#1a2636 100%)}
.order-ss-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:12px}
.order-ss-tag{background:rgba(34,197,94,.15);color:#22c55e;font-size:8px;padding:2px 8px;border-radius:10px;font-weight:600;letter-spacing:.05em}
.order-ss-hud{position:absolute;top:6px;left:8px;display:flex;gap:10px;font-size:7px;color:rgba(255,255,255,.4);font-family:monospace}
.order-ss-game{position:absolute;bottom:6px;right:8px;font-size:8px;color:rgba(255,255,255,.25);font-weight:600;letter-spacing:.06em}
.order-ss-crosshair{width:20px;height:20px;position:relative}
.order-ss-crosshair::before,.order-ss-crosshair::after{content:'';position:absolute;background:rgba(255,255,255,.3)}
.order-ss-crosshair::before{width:1px;height:100%;left:50%;top:0}
.order-ss-crosshair::after{height:1px;width:100%;top:50%;left:0}
.order-ss-minimap{position:absolute;top:6px;right:8px;width:40px;height:40px;border-radius:4px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08)}
.order-ss-minimap::after{content:'';position:absolute;width:4px;height:4px;background:#22c55e;border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 4px #22c55e}
.order-ss-bar{position:absolute;bottom:6px;left:8px;display:flex;gap:6px;align-items:flex-end}
.order-ss-bar-item{width:3px;border-radius:1px 1px 0 0;background:rgba(59,130,246,.5)}
.order-footer{display:flex;justify-content:space-between;align-items:center;padding-top:12px;border-top:1px solid rgba(122,106,85,.1)}
.order-id{font-size:10px;color:#bbb;letter-spacing:.08em;font-weight:500}
.order-stamp{position:absolute;right:18px;bottom:40px;opacity:0;transform:rotate(12deg) scale(2.5);transition:all .3s cubic-bezier(.2,.8,.3,1.2);z-index:2}
.order-stamp.stamped{opacity:.8;transform:rotate(12deg) scale(1)}
.order-print{opacity:0;filter:blur(3px);transform:translateY(4px);transition:opacity .35s ease-out,filter .35s ease-out,transform .35s ease-out}
.order-print.printed{opacity:1;filter:blur(0);transform:translateY(0)}

/* ===== Order Thumbnails ===== */
.order-thumbs{display:flex;gap:8px;margin:8px 0 6px}
.order-thumb{flex:1;display:flex;flex-direction:column;gap:4px}
.order-thumb-img{height:56px;border-radius:5px;border:1px solid rgba(122,106,85,.08);display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}
.order-thumb-img::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(0,0,0,.15));pointer-events:none}
.order-thumb-label{font-size:8px;color:#aaa;text-align:center;letter-spacing:.02em}
