/* ============================================================
   影支宝 V2 · 线路详情页样式
   2026-08-19 从 catalog_views.py 内联 <style> 沉淀(f-string 里维护极差)
   ============================================================ */
/* tour detail V2 — embedded from prototype */
.detail-head{padding:30px 0 0;display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:30px}
.detail-head h1{font-size:clamp(28px,3.6vw,40px);letter-spacing:-1.2px;margin:8px 0 14px;font-weight:800}
.tag-row{display:flex;gap:8px;flex-wrap:wrap}
.tour-detail .chip{font-size:12px;font-weight:700;padding:6px 13px;border-radius:99px;background:var(--surface);color:var(--muted)}
.tour-detail .chip.accent{background:#fdeceb;color:var(--accent-ink)}
.head-stats{display:flex;gap:26px;text-align:right}
.head-stats div{display:flex;flex-direction:column}
.head-stats b{font-size:20px;font-weight:800}
.head-stats span{font-size:12px;color:var(--muted)}
.detail-layout{display:grid;grid-template-columns:1.6fr 1fr;gap:56px;padding:44px 0 80px;align-items:start}
.tour-detail .detail-main section{margin-bottom:56px}
.tour-detail .detail-main h2{font-size:22px;letter-spacing:-.5px;margin:0 0 20px;font-weight:800}
.leader-card{display:flex;gap:20px;background:var(--ink);color:#fff;border-radius:var(--radius);padding:26px;align-items:center}
.leader-card .ph{width:88px;height:88px;border-radius:50%;flex:none}
.leader-card .info b{font-size:18px}
.leader-card .info .role{font-size:12.5px;color:#ffffffa0;margin:4px 0 10px}
.leader-card .info p{font-size:13px;color:#f0f0eecc;margin:0;line-height:1.7;max-width:420px}
.leader-badges{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.leader-badges span{font-size:10.5px;font-weight:700;background:#ffffff1a;padding:4px 10px;border-radius:99px}
.itin-list{display:flex;flex-direction:column;gap:14px}
.itin-item{display:flex;gap:16px;align-items:stretch}
.itin-day{flex:none;width:66px;border-radius:var(--radius-sm);background:var(--ink);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;letter-spacing:.5px}
.itin-body{flex:1;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px 18px}
.itin-body p{margin:0;font-size:14px;color:var(--ink);line-height:1.75}
.itin-body .itin-title{display:block;font-size:15px;font-weight:800;color:var(--ink);margin-bottom:4px}
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.gallery-grid .ph{height:140px;border-radius:var(--radius-sm)}
.cost-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.cost-col h3{font-size:14px;margin:0 0 14px;display:flex;align-items:center;gap:8px}
.cost-col.in h3{color:#1a6a3c}
.cost-col.out h3{color:var(--accent-ink)}
.cost-col ul{display:flex;flex-direction:column;gap:11px;font-size:13.5px;color:var(--muted)}
.cost-col li{display:flex;gap:10px;align-items:flex-start}
.cost-col.in li::before{content:"✓";color:#1a6a3c;font-weight:800;flex:none}
.cost-col.out li::before{content:"✕";color:var(--faint);font-weight:800;flex:none}
.guarantee-strip{display:flex;gap:14px;flex-wrap:wrap}
.guarantee{flex:1;min-width:200px;background:#e9f5ee;border:1px solid #cfe8d9;border-radius:var(--radius-sm);padding:16px 18px}
.guarantee b{display:block;color:#1a6a3c;font-size:14px;margin-bottom:4px}
.guarantee span{font-size:12.5px;color:#3d5c48}
.booking-card{position:sticky;top:92px;border:1px solid var(--line);border-radius:var(--radius);padding:26px;background:#fff;box-shadow:0 20px 50px #1d1a1410}
.booking-price{display:flex;align-items:baseline;gap:6px;margin-bottom:4px}
.booking-price strong{font-size:32px;font-weight:800}
.booking-price span{font-size:13px;color:var(--muted)}
.booking-sub{font-size:12.5px;color:var(--muted);margin-bottom:22px}
.field-label{font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--faint);margin-bottom:10px}
.date-cards{display:flex;flex-direction:column;gap:10px;margin-bottom:22px;max-height:380px;overflow-y:auto;padding-right:4px}
.date-card{display:flex;align-items:center;gap:14px;border:1.5px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px;cursor:pointer;transition:border-color .15s,background .15s}
.date-card:hover{border-color:#bdb6a6}
.date-card.selected{border-color:var(--accent);background:#fff5f5;box-shadow:0 4px 14px #e206120f}
.dc-date{display:flex;flex-direction:column;align-items:center;flex:none;width:54px}
.dc-date .dc-md{font-size:18px;font-weight:800;letter-spacing:-.5px;color:var(--ink)}
.dc-date .dc-wd{font-size:11px;color:var(--muted);margin-top:1px}
.dc-mid{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}
.dc-mid .dc-days{font-size:13px;font-weight:700;color:var(--ink)}
.dc-mid .dc-lead{font-size:11.5px;color:var(--muted)}
.dc-right{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex:none}
.dc-right .dc-price{font-size:19px;font-weight:800;white-space:nowrap;color:var(--ink)}
.dc-right .seats{font-size:11px;font-weight:700;padding:3px 9px;border-radius:99px;background:#e9f5ee;color:#1a6a3c;white-space:nowrap}
.dc-right .seats.low{background:#fdeceb;color:var(--accent-ink)}
.dc-right .seats.full{background:var(--surface);color:var(--faint)}
.book-btn{width:100%;padding:16px;border-radius:99px;background:var(--accent);color:#fff;border:0;font-weight:800;font-size:15px;cursor:pointer;margin-bottom:14px}
.book-btn:hover{background:var(--accent-ink)}
.book-btn:disabled{background:var(--faint);cursor:not-allowed}
.book-guarantee{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);justify-content:center;margin-bottom:18px}
.book-guarantee b{color:#1a6a3c}
.booking-cs{display:flex;align-items:center;justify-content:center;gap:8px;font-size:12.5px;color:var(--muted);border-top:1px solid var(--line);padding-top:16px}
.mobile-cta{display:none}
.crumb{padding:20px 0 0;font-size:13px;color:var(--muted)}
.crumb a{color:var(--muted)}
.crumb span.cur{color:var(--ink);font-weight:700}
.gallery{display:grid;grid-template-columns:1.4fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:8px;height:460px;border-radius:var(--radius);overflow:hidden;margin:18px 0 0}
.gallery .ph:nth-child(1){grid-row:1/3}
.gallery .ph{height:100%}
.cs-strip{display:flex;align-items:center;justify-content:space-between;background:var(--surface);border-radius:var(--radius-sm);padding:18px 22px;flex-wrap:wrap;gap:12px}
.cs-strip b{font-size:14px}
.cs-strip span{font-size:12.5px;color:var(--muted)}
@media(max-width:960px){
  .detail-layout{grid-template-columns:1fr;gap:0}
  .booking-card{position:static}
  .gallery{height:auto;grid-template-columns:1fr 1fr;grid-template-rows:repeat(2,140px)}
  .gallery .ph:nth-child(1){grid-column:1/3;grid-row:auto;height:220px}
  .mobile-cta{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;background:#fffffff5;backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:12px 18px calc(12px + env(safe-area-inset-bottom));align-items:center;justify-content:space-between;gap:14px}
  .mobile-cta .p b{font-size:20px}
  .mobile-cta .p span{font-size:11px;color:var(--muted);display:block}
  .mobile-cta button{background:var(--accent);color:#fff;border:0;padding:14px 30px;border-radius:99px;font-weight:800;font-size:14.5px}
  .cost-grid{grid-template-columns:1fr}
  .gallery-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .detail-head{flex-direction:column}
  .head-stats{text-align:left}
  .leader-card{flex-direction:column;text-align:center}
  .leader-card .ph{width:76px;height:76px}
}

/* 班期空状态引导卡(2026-08-19) */
.no-session-card{border:1px dashed var(--line);border-radius:var(--radius-sm);padding:18px 16px;text-align:center;background:var(--surface)}
.no-session-card b{display:block;font-size:14px;margin-bottom:6px}
.no-session-card p{font-size:12.5px;color:var(--muted);line-height:1.7;margin:0 0 12px}
