/* ==========================================================================
   前台样式 —— 严格复刻 hualinzs.cn
   原站为移动优先单列布局（max-width:480px 居中），此处保留全部类名与数值。
   仅新增：后端渲染所需的少量辅助规则，不改变原站视觉。
   ========================================================================== */


  :root {
    --bg: #f5f6f8;
    --card: #ffffff;
    --line: #e6e8ec;
    --line-soft: #eef0f3;
    --ink: #1c2430;
    --ink-sub: #5d6570;
    --ink-faint: #9aa1ab;
    --accent: #274b6e;
    --accent-soft: #eaf1f7;
    --gold: #c2a15c;
    --gold-soft: #faf6ee;
    --ok: #3c8a63;
    --ok-soft: #ecf6f1;
  }
  * { margin:0; padding:0; box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
  body {
    background: var(--bg);
    color: var(--ink);
    font-family:"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei",sans-serif;
    line-height:1.5;
    max-width:480px;
    margin:0 auto;
    min-height:100vh;
    padding-bottom:20px;
  }

  /* ===== 顶部标题区 ===== */
  .top {
    background: linear-gradient(160deg, #2d5578 0%, #274b6e 55%, #1e3a55 100%);
    color:#fff;
    padding:22px 20px 26px;
    border-radius:0 0 18px 18px;
    box-shadow:0 4px 20px rgba(30,50,75,.18);
  }
  .top .bld { font-size:23px; font-weight:700; letter-spacing:1px; }
  .top .sub { font-size:12px; color:rgba(255,255,255,.8); letter-spacing:2px; margin-top:4px; }
  .top .stat { display:flex; align-items:center; gap:8px; margin-top:14px; }
  .top .stat .t { font-size:13px; color:rgba(255,255,255,.92); }
  .top .stat .t b { font-size:17px; font-weight:700; color:#fff; margin:0 2px; }
  /* 呼吸灯绿点（顶部两个点共用） */
  .top .dot { width:7px; height:7px; border-radius:50%; background:#4ade80; flex:0 0 7px; animation:dotPulse 1.9s ease-out infinite; }
  .top .updating { display:flex; align-items:center; gap:8px; margin-top:9px; font-size:12.5px; color:rgba(255,255,255,.78); letter-spacing:1px; }
  @keyframes dotPulse {
    0% { box-shadow:0 0 0 0 rgba(74,222,128,.55); }
    70% { box-shadow:0 0 0 9px rgba(74,222,128,0); }
    100% { box-shadow:0 0 0 0 rgba(74,222,128,0); }
  }

  /* ===== 提示条 ===== */
  .hint {
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:3px; font-size:12px; color:var(--ink-faint); padding:12px 14px 2px; text-align:center;
  }
  .hint .hint-sub { font-size:11px; color:#a8afb8; letter-spacing:.2px; line-height:1.5; }

  /* ===== 房源卡片 ===== */
  .list { padding:6px 14px 0; }
  .card {
    display:flex; align-items:stretch; gap:10px;
    background:var(--card);
    border:1px solid var(--line-soft);
    border-radius:12px;
    padding:10px;
    margin-bottom:8px;
    text-decoration:none;
    color:inherit;
    box-shadow:0 1px 8px rgba(30,45,65,.04);
    transition:transform .12s ease, box-shadow .12s ease;
  }
  .card:active { transform:scale(.985); box-shadow:0 1px 6px rgba(30,45,65,.08); }
  .card .thumb { width:88px; height:88px; flex:0 0 88px; border-radius:9px; overflow:hidden; background:var(--line-soft); }
  .card .thumb img { width:100%; height:100%; object-fit:cover; display:block; }
  .card .body { flex:1; min-width:0; display:flex; flex-direction:column; }
  .card .row1 { display:flex; flex-wrap:wrap; align-items:center; gap:5px; }
  .card .room { font-size:16px; font-weight:700; color:var(--accent); letter-spacing:.5px; }
  .card .badge { font-size:9.5px; color:var(--ok); background:var(--ok-soft); border:1px solid rgba(60,138,99,.3); border-radius:9px; padding:0 5px; }
  .card .badge.gold { color:var(--gold); background:var(--gold-soft); border-color:rgba(194,161,92,.35); }
  .card .spec { font-size:11.5px; color:var(--ink-sub); margin-top:3px; }
  .card .priceLine { display:flex; align-items:baseline; gap:3px; margin-top:auto; padding-top:4px; }
  .card .priceLine .cur { font-size:11px; color:var(--gold); font-weight:600; }
  .card .priceLine .num { font-size:20px; font-weight:800; color:var(--accent); line-height:1; letter-spacing:.5px; }
  .card .priceLine .unit { font-size:10.5px; color:var(--ink-faint); }
  .card .totalLine { font-size:10.5px; color:var(--ink-faint); margin-top:2px; }
  .card .totalLine b { color:var(--ink-sub); font-weight:600; }
  .card .arrow { display:flex; align-items:center; color:var(--ink-faint); font-size:15px; flex:0 0 auto; padding-left:1px; }

  /* 卡片内的标签（只显示一行，超出裁掉，保持卡片紧凑） */
  .card .tagRow { display:flex; flex-wrap:nowrap; overflow:hidden; gap:3px; margin-top:4px; }
  .card .tagRow span { font-size:9.5px; color:var(--ink-sub); background:var(--bg); border:1px solid var(--line); border-radius:8px; padding:0 6px; }

  /* 回到顶部 */
  .totop {
    position:fixed; right:14px; bottom:22px; z-index:20;
    width:38px; height:38px; border-radius:50%;
    background:rgba(39,75,110,.92); color:#fff; border:none;
    font-size:17px; line-height:1; cursor:pointer; padding:0;
    box-shadow:0 4px 14px rgba(30,50,75,.28);
    display:none; align-items:center; justify-content:center;
  }
  .totop.show { display:flex; }
  @media (min-width:520px) { .totop { right:calc(50% - 226px); } }

  /* ===== 状态样式（由管理页控制，自动生效） =====
     已预定 / 已租 / 暂不可租：都灰显在列表里，但用颜色明确区分状态 */
  .card { position:relative; }
  .card.reserved, .card.rented, .card.locked { opacity:.74; }
  .card.reserved .thumb img, .card.rented .thumb img, .card.locked .thumb img { filter:grayscale(.5); }

  /* 左侧状态色条（四种状态都有，颜色一眼可辨） */
  .card.available::before, .card.reserved::before, .card.rented::before, .card.locked::before {
    content:''; position:absolute; left:0; top:11px; bottom:11px; width:3px; border-radius:0 3px 3px 0;
  }
  .card.available::before { background:var(--ok); }
  .card.reserved::before { background:var(--gold); }
  .card.rented::before { background:#98a0aa; }
  .card.locked::before { background:#e08a3c; }

  /* 状态角标（颜色鲜明、一眼可辨） */
  .card .badge-ok { color:#2f7a55; background:#eef7f2; border-color:rgba(60,138,99,.5); font-weight:600; }
  .card .badge-reserved { color:#9a7a2e; background:#fdf8ec; border-color:rgba(194,161,92,.6); font-weight:600; }
  .card .badge-rented { color:#5d6570; background:#f0f1f3; border-color:#cfd3d9; font-weight:600; }
  .card .badge-locked { color:#b06a1e; background:#fdf5ec; border-color:rgba(224,138,60,.58); font-weight:600; }

  /* 过渡房源的预计过渡到期日（锁定状态才显示） */
  .card .holdTip {
    display:inline-block; margin-top:4px; font-size:10px; line-height:1.5;
    padding:1px 6px; border-radius:8px; letter-spacing:.2px;
  }
  .card .holdTip.hold-fine { color:#8a6d4a; background:#f7f4ef; border:1px solid rgba(138,109,74,.28); }
  .card .holdTip.hold-soon { color:#a85c14; background:#fdf1e2; border:1px solid rgba(217,122,46,.45); font-weight:700; }
  .card .holdTip.hold-over { color:#b03a3a; background:#fdf3f3; border:1px solid rgba(192,75,75,.5); font-weight:700; }

  /* ===== 楼层页签（等宽不滚动） ===== */
  .floors { display:flex; gap:6px; padding:10px 14px 0; }
  .fbtn.floor { flex:1 1 0; text-align:center; padding:7px 0; border-radius:10px; font-size:12.5px; }
  .fbtn.floor .cnt { font-size:10.5px; opacity:.72; margin-left:2px; }
  .fbtn.floor.on { box-shadow:0 2px 8px rgba(39,75,110,.22); }

  /* ===== 筛选与排序 ===== */
  .filter { padding:8px 14px 0; }
  .filter .frow { display:flex; gap:7px; overflow-x:auto; padding-bottom:7px; scrollbar-width:none; }
  .filter .frow::-webkit-scrollbar { display:none; }
  .fbtn {
    flex:0 0 auto; font-size:12.5px; color:var(--ink-sub); background:#fff;
    border:1px solid var(--line); border-radius:16px; padding:6px 13px; cursor:pointer;
    font-family:inherit; letter-spacing:.5px;
  }
  .fbtn.on { background:var(--accent); border-color:var(--accent); color:#fff; font-weight:600; }
  .fbtn:active { transform:scale(.97); }
  /* 多选：已选中的次级项（浅底 + 勾，保留状态色识别）*/
  .fbtn.pick { background:#e8eff7; border-color:#9db8d4; color:var(--accent); font-weight:700; }
  .fbtn.pick::after { content:" ✓"; font-size:9px; }
  .fbtn[data-v="available"].pick { background:#e7f2ec; border-color:#3c8a63; color:#2d6b4c; }
  .fbtn[data-v="reserved"].pick { background:#fdf8ec; border-color:#c2a15c; color:#8a6d24; }
  .fbtn[data-v="rented"].pick { background:#f0f1f3; border-color:#8a939e; color:#5d6570; }
  .fbtn[data-v="hidden"].pick { background:#fdf3f3; border-color:#c04b4b; color:#a83a3a; }

  /* 状态筛选项：选中色与卡片上的状态标识一致 */
  .fbtn[data-v="available"].on { background:#3c8a63; border-color:#3c8a63; }
  .fbtn[data-v="reserved"].on { background:#c2a15c; border-color:#c2a15c; }
  .fbtn[data-v="rented"].on { background:#8a939e; border-color:#8a939e; }
  .fbtn[data-v="hidden"].on { background:#e08a3c; border-color:#e08a3c; }
  .empty { text-align:center; font-size:12.5px; color:var(--ink-faint); padding:26px 0; display:none; }

  /* ===== 底部联系 ===== */
  .foot {
    margin:16px 14px 0;
    background:var(--card);
    border:1px solid var(--line-soft);
    border-radius:14px;
    padding:14px 16px;
    display:flex; align-items:center; gap:14px;
    box-shadow:0 2px 10px rgba(30,45,65,.04);
  }
  .foot .qr { width:96px; height:96px; flex:0 0 96px; border:1px solid var(--line); border-radius:8px; padding:4px; background:#fff; }
  .foot .qr img { width:100%; height:100%; display:block; }
  .foot .info { flex:1; min-width:0; }
  .foot .info .t1 { font-size:14px; font-weight:700; color:var(--accent); letter-spacing:1px; }
  .foot .info .t2 { font-size:11px; color:var(--ink-faint); margin-top:3px; line-height:1.6; }
  .foot .info .name { font-size:13px; font-weight:700; color:var(--ink); margin-top:7px; }
  .foot .info .name span { color:var(--gold); }
  .foot .info .tel { display:inline-flex; align-items:center; gap:5px; margin-top:6px; font-size:14px; font-weight:700; color:var(--accent); text-decoration:none; }
  .foot .info .tel svg { width:14px; height:14px; flex:0 0 14px; fill:var(--accent); }

  .copyright { text-align:center; font-size:10px; color:#b6bcc4; padding:16px 0 8px; letter-spacing:1px; }


/* ====================== 房源详情页 ====================== */:root {
    --bg: #ffffff;
    --bg-soft: #f5f6f8;
    --card: #ffffff;
    --line: #e6e8ec;
    --line-soft: #eef0f3;
    --ink: #1c2430;
    --ink-sub: #5d6570;
    --ink-faint: #9aa1ab;
    --accent: #274b6e;
    --accent-soft: #eaf1f7;
    --gold: #c2a15c;
    --gold-soft: #faf6ee;
    --ok: #3c8a63;
    --ok-soft: #ecf6f1;
    --warn: #c44a3f;
    --warn-soft: #fdf0ee;
  }* { margin:0; padding:0; box-sizing:border-box; -webkit-tap-highlight-color:transparent; }body { background:var(--bg); color:var(--ink); font-family:"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei",sans-serif; line-height:1.6; max-width:480px; margin:0 auto; overflow-x:hidden; }/* 顶部主图 */
  .hero { position:relative; height:320px; overflow:hidden; }.page-unit .hero img { width:100%; height:100%; object-fit:cover; display:block; }.page-unit .hero::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,28,40,0) 32%, rgba(20,28,40,.55) 78%, rgba(20,28,40,.82) 100%); }.page-unit .hero .tag { position:absolute; top:14px; left:14px; z-index:2; background:rgba(255,255,255,.95); color:var(--accent); font-size:12px; letter-spacing:2px; padding:5px 12px; border-radius:20px; box-shadow:0 2px 10px rgba(0,0,0,.12); }.page-unit .hero .tag.hot { right:14px; left:auto; background:var(--gold-soft); color:var(--gold); }.page-unit .hero .title { position:absolute; left:16px; right:16px; bottom:16px; z-index:2; }.page-unit .hero .title .bld { font-size:24px; font-weight:700; letter-spacing:1px; color:#fff; text-shadow:0 2px 12px rgba(0,0,0,.4); }.page-unit .hero .title .bld small { font-size:14px; font-weight:400; color:rgba(255,255,255,.9); margin-left:6px; }.page-unit .hero .title .sub { font-size:12px; color:rgba(255,255,255,.85); letter-spacing:1px; margin-top:2px; }/* 价格 */
  .price-box { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 8px; padding:16px 16px 4px; }.page-unit .price-box .cur { font-size:16px; color:var(--gold); font-weight:600; }.page-unit .price-box .num { font-size:38px; font-weight:800; color:var(--accent); line-height:1; }.page-unit .price-box .unit { font-size:13px; color:var(--ink-sub); }.page-unit .price-box .meta { font-size:12px; color:var(--ink-faint); margin-left:6px; }.page-unit .price-box .badge { margin-left:auto; font-size:11px; padding:4px 10px; border-radius:20px; border:1px solid var(--gold); color:var(--gold); background:var(--gold-soft); align-self:center; white-space:nowrap; }.page-unit .price-box .badge b { color:var(--accent); font-weight:700; margin-right:2px; font-size:13px; }/* 参数 */
  .page-unit .specs { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; padding:14px 16px 0; }.page-unit .spec { background:var(--bg-soft); border:1px solid var(--line-soft); border-radius:12px; padding:11px 4px; text-align:center; }.page-unit .spec .v { font-size:13px; font-weight:700; color:var(--accent); }.page-unit .spec .v em { font-style:normal; color:var(--ink-sub); font-weight:600; font-size:11px; }.page-unit .spec .k { font-size:11px; color:var(--ink-faint); margin-top:2px; }/* 标签 */
  .page-unit .tags { display:flex; flex-wrap:wrap; gap:8px; padding:14px 16px 4px; }.page-unit .tags span { font-size:12px; color:var(--ink-sub); border:1px solid var(--line); background:var(--card); padding:4px 11px; border-radius:20px; }.page-unit .tags span::before { content:"✓"; color:var(--ok); font-size:10px; margin-right:5px; font-weight:700; }/* 区块 */
  .sec { padding:18px 16px 0; }.page-unit .sec h2 { font-size:16px; font-weight:700; letter-spacing:1px; color:var(--accent); display:flex; align-items:center; gap:8px; }.page-unit .sec h2::before { content:""; width:3px; height:14px; background:var(--accent); border-radius:2px; }.page-unit .sec h2 small { font-size:11px; color:var(--ink-faint); font-weight:400; margin-left:auto; letter-spacing:0; }/* 照片（分组） */
  .gallery { display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:12px 16px 0; }.page-unit .gallery .g1 { grid-column:1 / -1; }.page-unit .gallery img { width:100%; height:135px; object-fit:cover; border-radius:10px; display:block; }.page-unit .gallery .g1 img { height:200px; }.page-unit .gallery img:active { opacity:.85; }.page-unit .gallery .label { grid-column:1 / -1; font-size:11px; color:var(--ink-faint); letter-spacing:2px; margin:4px 0 -2px; }/* 视频 */
  .video-card { position:relative; margin:12px 16px 0; border-radius:12px; overflow:hidden; background:#000; cursor:pointer; }.page-unit .video-card img { width:100%; height:auto; display:block; aspect-ratio:9/16; max-height:420px; object-fit:cover; }.page-unit .video-card .v-mask { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; background:rgba(20,28,40,.28); }.page-unit .video-card .v-mask .play { width:62px; height:62px; border-radius:50%; background:rgba(255,255,255,.95); display:flex; align-items:center; justify-content:center; box-shadow:0 4px 20px rgba(0,0,0,.35); }.page-unit .video-card .v-mask .play::after { content:""; width:0; height:0; margin-left:4px; border-top:9px solid transparent; border-bottom:9px solid transparent; border-left:15px solid var(--accent); }.page-unit .video-card .v-mask .v-tip { font-size:12px; color:#fff; letter-spacing:2px; background:rgba(20,28,40,.55); padding:3px 12px; border-radius:20px; }.page-unit .v-lightbox { position:fixed; inset:0; background:rgba(10,14,20,.96); z-index:999; display:none; align-items:center; justify-content:center; }.page-unit .v-lightbox video { width:100%; max-height:100vh; }.page-unit .v-lightbox .v-close { position:absolute; top:16px; left:50%; transform:translateX(-50%); background:rgba(0,0,0,.55); border:1px solid rgba(255,255,255,.3); color:#fff; font-size:13px; letter-spacing:2px; padding:9px 20px; border-radius:22px; z-index:2; }/* ===== 下载视频按钮 + 平台引导 ===== */
  .v-dl {
    display:inline-flex; align-items:center; gap:5px;
    margin:10px 16px 0; padding:7px 14px;
    background:linear-gradient(135deg,#2bd576,#07c160); color:#fff;
    border:none; border-radius:20px; font-size:13px; font-weight:700;
    font-family:inherit; text-decoration:none; letter-spacing:.5px;
    box-shadow:0 4px 14px rgba(7,193,96,.32); cursor:pointer;
  }.page-unit .v-dl:active { transform:scale(.97); }.page-unit .v-dl .ic { font-size:14px; }/* 平台引导提示条（iPhone / 鸿蒙微信用户）*/
  .dl-tip {
    display:none; margin:8px 16px 0; padding:9px 12px;
    background:#fff8e8; border:1px solid rgba(217,122,46,.4); border-radius:10px;
    font-size:12px; line-height:1.65; color:#8a5a12;
  }.dl-tip.show { display:block; }.page-unit .dl-tip b { color:#a85c14; }.page-unit .dl-tip .steps { margin-top:4px; }/* 详情 */
  .desc { padding:10px 16px 0; color:var(--ink-sub); font-size:13px; }.page-unit .desc b { color:var(--ink); font-weight:600; }/* 报价明细 */
  .cost { margin:12px 16px 0; background:var(--bg-soft); border:1px solid var(--line-soft); border-radius:14px; padding:14px 16px; }.page-unit .cost h3 { font-size:14px; font-weight:700; color:var(--accent); letter-spacing:1px; margin-bottom:10px; }.page-unit .cost .row { display:flex; justify-content:space-between; align-items:baseline; padding:7px 0; font-size:13px; color:var(--ink-sub); border-bottom:1px dashed var(--line); }.page-unit .cost .row:last-of-type { border-bottom:none; }.page-unit .cost .row .k small { color:var(--ink-faint); font-size:11px; margin-left:4px; }.page-unit .cost .row .v { color:var(--ink); font-weight:600; white-space:nowrap; }.page-unit .cost .row .v small { color:var(--ink-faint); font-weight:400; font-size:11px; margin-left:2px; }.page-unit .cost .total { display:flex; justify-content:space-between; align-items:baseline; margin-top:10px; padding-top:10px; border-top:2px solid var(--gold); }.page-unit .cost .total .l { font-size:13px; color:var(--gold); letter-spacing:1px; font-weight:700; }.page-unit .cost .total .r { color:var(--accent); font-size:22px; font-weight:800; }.page-unit .cost .total .r small { font-size:11px; color:var(--ink-faint); font-weight:400; margin-left:2px; }.page-unit .cost .note { font-size:11px; color:var(--ink-faint); margin-top:8px; line-height:1.5; }/* 优惠 */
  .gifts { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:12px 16px 0; }.page-unit .gift { background:var(--gold-soft); border:1px solid rgba(194,161,92,.4); border-radius:10px; padding:10px 12px; }.page-unit .gift .t { font-size:12px; font-weight:700; color:var(--ink); display:flex; align-items:center; gap:6px; }.page-unit .gift .t .ic { width:18px; height:18px; border-radius:50%; background:var(--gold); color:#fff; display:inline-flex; align-items:center; justify-content:center; font-size:10px; flex-shrink:0; }.page-unit .gift .d { font-size:11px; color:var(--ink-sub); margin-top:3px; line-height:1.4; }/* 税金提示 */
  .tax { margin:12px 16px 0; background:var(--warn-soft); border-left:3px solid var(--warn); border-radius:6px; padding:9px 12px; font-size:12px; color:var(--warn); line-height:1.5; }/* 联系 */
  .contact { margin:14px 16px; background:var(--card); border:1px solid var(--line); border-radius:14px; padding:16px; display:flex; align-items:center; gap:14px; box-shadow:0 2px 12px rgba(30,40,60,.05); }.page-unit .contact .avatar { width:52px; height:52px; border-radius:50%; background:var(--accent); display:flex; align-items:center; justify-content:center; font-size:22px; color:#fff; font-weight:700; flex-shrink:0; }.page-unit .contact .info { flex:1; min-width:0; }.page-unit .contact .info .name { font-size:15px; font-weight:700; color:var(--ink); }.page-unit .contact .info .name small { font-size:11px; color:var(--gold); border:1px solid var(--gold); border-radius:10px; padding:1px 6px; margin-left:6px; }.page-unit .contact .info .role { font-size:12px; color:var(--ink-faint); margin-top:2px; }.page-unit .contact .call { flex-shrink:0; width:44px; height:44px; border-radius:50%; background:var(--accent); display:flex; align-items:center; justify-content:center; color:#fff; text-decoration:none; font-size:18px; box-shadow:0 4px 14px rgba(39,75,110,.3); }/* 微信 */
  .wechat { margin:0 16px 14px; background:var(--card); border:1px solid var(--line); border-radius:14px; padding:16px; display:flex; align-items:center; gap:16px; box-shadow:0 2px 12px rgba(30,40,60,.05); }.page-unit .wechat .qr { width:110px; height:110px; border-radius:10px; overflow:hidden; background:#fff; padding:6px; flex-shrink:0; }.page-unit .wechat .qr img { width:100%; height:100%; display:block; }.page-unit .wechat .text { flex:1; min-width:0; }.page-unit .wechat .text .t1 { font-size:15px; font-weight:700; color:var(--accent); letter-spacing:1px; }.page-unit .wechat .text .t2 { font-size:12px; color:var(--ink-faint); margin-top:4px; line-height:1.6; }.page-unit .wechat .text .phone { font-size:15px; font-weight:700; color:var(--ink); margin-top:8px; letter-spacing:1px; }.page-unit .wechat .text .phone span { color:var(--gold); }/* 浏览器打开 */
  .obtn-wrap { margin:4px 16px 14px; }.page-unit .obtn-wrap a.obtn { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; padding:13px 0; border-radius:12px; background:var(--accent-soft); border:1px solid var(--accent); color:var(--accent); font-size:15px; font-weight:700; text-decoration:none; letter-spacing:1px; }.page-unit .obtn-wrap p { text-align:center; font-size:11px; color:var(--ink-faint); margin-top:6px; letter-spacing:1px; }/* 提示弹窗 */
  .tip-mask { position:fixed; inset:0; background:rgba(20,28,40,.72); z-index:1000; display:flex; align-items:center; justify-content:center; padding:30px; }.tip-box { width:100%; max-width:320px; background:#fff; border-radius:16px; padding:22px 20px 18px; box-shadow:0 12px 40px rgba(0,0,0,.2); }.tip-box .tip-title { font-size:16px; font-weight:700; color:var(--accent); text-align:center; letter-spacing:1px; }.tip-box .tip-step { font-size:14px; color:var(--ink); margin-top:12px; padding:10px 12px; background:var(--bg-soft); border:1px solid var(--line-soft); border-radius:10px; }.tip-box .tip-step b { color:var(--accent); }.tip-box .tip-note { font-size:12px; color:var(--ink-faint); margin-top:12px; line-height:1.6; }.tip-box .tip-ok { display:block; width:100%; margin-top:16px; padding:11px 0; border:none; border-radius:10px; background:var(--accent); color:#fff; font-size:15px; font-weight:700; cursor:pointer; }/* CTA */
  .cta { position:sticky; bottom:0; padding:12px 16px calc(12px + env(safe-area-inset-bottom)); background:linear-gradient(180deg, rgba(255,255,255,0), var(--bg) 40%); z-index:9; }.cta-row { display:flex; align-items:stretch; gap:10px; }.page-unit .cta a { flex:1 1 0; min-width:0; height:52px; box-sizing:border-box; display:flex; align-items:center; justify-content:center; gap:6px; margin:0; padding:0; border-radius:12px; background:var(--accent); color:#fff; font-size:15px; font-weight:700; text-decoration:none; letter-spacing:1px; box-shadow:0 6px 20px rgba(39,75,110,.3); }.page-unit .cta a:active { transform:scale(.97); }.page-unit .cta a.wechat { background:linear-gradient(135deg,#2bd576,#07c160); box-shadow:0 6px 20px rgba(7,193,96,.35); }.page-unit .cta a .ico { flex:0 0 18px; width:18px; height:18px; display:inline-flex; align-items:center; justify-content:center; }.page-unit .cta a .ico svg { width:18px; height:18px; display:block; fill:currentColor; animation:icoPulse 1.6s ease-in-out infinite; }@keyframes icoPulse {
    0%, 100% { transform:scale(1); }
    50% { transform:scale(1.12); }
  }@media (max-width: 370px) {
    .cta a { font-size:13px; gap:4px; letter-spacing:0; height:48px; }
    .cta a .ico { flex:0 0 16px; width:16px; height:16px; }
    .cta a .ico svg { width:16px; height:16px; }
  }.page-unit .foot { text-align:center; font-size:11px; color:var(--ink-faint); padding:6px 0 24px; letter-spacing:1px; }/* 分享按钮 */
  .share-wrap { position:absolute; top:14px; left:14px; z-index:3; }.share-row { display:flex; gap:6px; align-items:center; }.pure-btn {
    background:rgba(20,28,40,.62); color:#fff;
    font-size:12px; letter-spacing:.5px; padding:6px 11px;
    border:0; border-radius:20px; cursor:pointer; font-family:inherit;
    box-shadow:0 2px 10px rgba(0,0,0,.14);
  }.pure-btn:active { transform:scale(.96); }.share-mode .share-wrap { display:none !important; }.share-btn {
    background:rgba(255,255,255,.95); color:var(--accent);
    font-size:12px; letter-spacing:1px; padding:6px 13px;
    border:0; border-radius:20px; cursor:pointer;
    box-shadow:0 2px 10px rgba(0,0,0,.14); font-family:inherit;
  }.share-btn:active { transform:scale(.96); }.share-tip {
    display:inline-block; margin-top:5px;
    font-size:10px; color:#fff; letter-spacing:.3px;
    background:rgba(20,28,40,.55); padding:2px 8px; border-radius:10px;
  }/* 分享提示条 */
  #shareToast {
    position:fixed; left:50%; bottom:96px; transform:translateX(-50%);
    z-index:2000; background:rgba(20,28,40,.93); color:#fff;
    font-size:13.5px; padding:12px 20px; border-radius:24px;
    letter-spacing:.5px; box-shadow:0 6px 24px rgba(0,0,0,.32);
    max-width:84%; text-align:center; line-height:1.65; display:none;
    font-family:inherit;
  }/* 纯净分享版：隐藏联系方式 */
  .share-mode .contact, .share-mode .wechat, .share-mode .cta { display:none !important; }.share-mode .obtn-wrap { padding-bottom:4px; }/* ===== 本站补充（不改变原站视觉） ===== */

@media (min-width: 520px) {
  body { box-shadow: 0 0 40px rgba(30,45,65,.07); }
}/* 图片灯箱 */
.lightbox { position:fixed; inset:0; z-index:1000; background:rgba(18,25,35,.96); display:none; align-items:center; justify-content:center; padding:20px; }.lightbox.on { display:flex; }.lightbox img { max-width:100%; max-height:100%; object-fit:contain; border-radius:6px; }.lightbox__close { position:absolute; top:16px; right:16px; width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,.14); color:#fff; font-size:18px; display:flex; align-items:center; justify-content:center; border:0; cursor:pointer; }.lightbox__nav { position:absolute; top:50%; transform:translateY(-50%); width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,.14); color:#fff; font-size:20px; display:flex; align-items:center; justify-content:center; border:0; cursor:pointer; }.lightbox__nav--prev { left:12px; }.lightbox__nav--next { right:12px; }/* 卡片状态色条与角标（模板输出 statusClass = is-available 等） */
.card { position:relative; }.card.is-available::before { content:''; position:absolute; left:0; top:11px; bottom:11px; width:3px; border-radius:0 3px 3px 0; background:var(--ok); }.card.is-reserved::before { content:''; position:absolute; left:0; top:11px; bottom:11px; width:3px; border-radius:0 3px 3px 0; background:var(--gold); }.card.is-rented::before { content:''; position:absolute; left:0; top:11px; bottom:11px; width:3px; border-radius:0 3px 3px 0; background:#98a0aa; }.card.is-locked::before { content:''; position:absolute; left:0; top:11px; bottom:11px; width:3px; border-radius:0 3px 3px 0; background:#e08a3c; }.card.is-reserved, .card.is-rented, .card.is-locked { opacity:.74; }.card.is-reserved .thumb img, .card.is-rented .thumb img, .card.is-locked .thumb img { filter:grayscale(.5); }/* 描述富文本 */
.desc p { margin-top:6px; }.page-unit .desc p:first-child { margin-top:0; }/* 优惠与配套：无图标卡片 */
.gift .d { font-size:11px; color:var(--ink-sub); margin-top:3px; line-height:1.4; }
