/* ── Reset & Variables ─────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --p:       #7c3aed;   /* 主色 紫 */
  --ph:      #6d28d9;
  --pl:      #ede9fe;
  --gold:    #f59e0b;
  --gl:      #fef3c7;
  --success: #10b981;
  --danger:  #ef4444;
  --warn:    #f59e0b;
  --bg:      #f5f4f8;
  --card:    #ffffff;
  --border:  #e5e7eb;
  --text:    #111827;
  --sub:     #6b7280;
  --r:       12px;
  --shadow:  0 2px 20px rgba(0,0,0,.07);
}
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif; background: var(--bg); color: var(--text); min-height: 100vh; line-height: 1.65; }

/* ── NAV ───────────────────────────────────────────────── */
.nav { background: #fff; border-bottom: 1px solid var(--border); height: 62px; display: flex; align-items: center; justify-content: space-between; padding: 0 2rem; position: sticky; top: 0; z-index: 200; box-shadow: 0 1px 8px rgba(0,0,0,.05); }
.nav-logo { display: flex; align-items: center; gap: .5rem; text-decoration: none; font-weight: 800; font-size: 1.1rem; color: var(--p); }
.nav-logo img { width: 32px; height: 32px; border-radius: 8px; }
.nav-menu { display: flex; align-items: center; gap: .2rem; }
.nav-menu a { padding: .4rem .85rem; border-radius: 8px; text-decoration: none; color: var(--sub); font-size: .9rem; font-weight: 500; transition: all .18s; }
.nav-menu a:hover, .nav-menu a.active { color: var(--p); background: var(--pl); }
.nav-right { display: flex; align-items: center; gap: .8rem; }
.nav-gongde { background: var(--gl); color: #92400e; padding: .3rem .85rem; border-radius: 20px; font-size: .82rem; font-weight: 700; }
.vip-badge { background: linear-gradient(135deg,#f59e0b,#d97706); color: #fff; padding: .2rem .6rem; border-radius: 12px; font-size: .72rem; font-weight: 700; }

/* ── LAYOUT ────────────────────────────────────────────── */
.wrap   { max-width: 1100px; margin: 0 auto; padding: 2rem 1.5rem; }
.wrap-sm{ max-width: 560px;  margin: 0 auto; padding: 2rem 1.5rem; }
.wrap-md{ max-width: 780px;  margin: 0 auto; padding: 2rem 1.5rem; }
.page-head { margin-bottom: 1.8rem; }
.page-head h1 { font-size: 1.7rem; font-weight: 800; }
.page-head p  { color: var(--sub); margin-top: .3rem; }

/* ── CARD ──────────────────────────────────────────────── */
.card { background: var(--card); border: 1px solid var(--border); border-radius: var(--r); box-shadow: var(--shadow); padding: 1.8rem; }
.card-title { font-size: 1.05rem; font-weight: 700; margin-bottom: 1.3rem; display: flex; align-items: center; gap: .5rem; }
.card + .card { margin-top: 1.2rem; }

/* ── FORM ──────────────────────────────────────────────── */
.form-row { display: grid; gap: 1rem; }
.form-row-2 { grid-template-columns: 1fr 1fr; }
.form-row-3 { grid-template-columns: 1fr 1fr 1fr; }
.form-group { display: flex; flex-direction: column; gap: .35rem; }
label.fl { font-size: .83rem; font-weight: 600; color: var(--sub); }
.fc { width: 100%; padding: .6rem .95rem; border: 1.5px solid var(--border); border-radius: 8px; font-size: .93rem; outline: none; transition: border .18s; background: #fff; color: var(--text); }
.fc:focus { border-color: var(--p); box-shadow: 0 0 0 3px rgba(124,58,237,.1); }
select.fc { cursor: pointer; }
.hint { font-size: .78rem; color: var(--sub); }

/* ── DATE SELECT PICKER ─────────────────────────────────── */
.date-sel-row{display:flex;align-items:center;gap:.25rem;flex-wrap:nowrap;margin-top:.2rem}
.dp-sel{padding:.55rem .3rem;border:1.5px solid var(--border);border-radius:8px;font-size:.9rem;background:#fff;color:var(--text);cursor:pointer;outline:none;transition:border .18s;flex-shrink:0;-webkit-appearance:auto;appearance:auto}
.dp-sel:focus{border-color:var(--p);box-shadow:0 0 0 3px rgba(124,58,237,.1)}
.dp-sel-y{width:84px}.dp-sel-m{width:54px}.dp-sel-d{width:54px}
.date-sep{font-size:.82rem;color:var(--sub);flex-shrink:0;padding:0 .05rem}
@media(max-width:480px){.dp-sel-y{width:76px}.dp-sel-m{width:48px}.dp-sel-d{width:48px}}

/* ── BUTTONS ───────────────────────────────────────────── */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; padding: .6rem 1.4rem; border-radius: 9px; font-size: .92rem; font-weight: 600; cursor: pointer; border: none; transition: all .18s; text-decoration: none; white-space: nowrap; }
.btn-p  { background: var(--p);    color: #fff; }
.btn-p:hover  { background: var(--ph); transform: translateY(-1px); }
.btn-gold { background: var(--gold); color: #fff; }
.btn-gold:hover { background: #d97706; }
.btn-o  { background: #fff; border: 1.5px solid var(--border); color: var(--text); }
.btn-o:hover  { border-color: var(--p); color: var(--p); }
.btn-danger { background: var(--danger); color: #fff; }
.btn-sm { padding: .35rem .85rem; font-size: .82rem; }
.btn-block { width: 100%; }

/* ── ALERT ─────────────────────────────────────────────── */
.alert { padding: .75rem 1rem; border-radius: 9px; font-size: .88rem; margin-bottom: 1rem; }
.alert-ok  { background: #ecfdf5; color: #065f46; border: 1px solid #a7f3d0; }
.alert-err { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }
.alert-info{ background: #eff6ff; color: #1e40af; border: 1px solid #bfdbfe; }
.alert-warn{ background: var(--gl); color: #92400e; border: 1px solid #fde68a; }

/* ── TABLE ─────────────────────────────────────────────── */
.tbl-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: .87rem; }
th,td { padding: .7rem 1rem; text-align: left; border-bottom: 1px solid var(--border); }
th { font-weight: 600; color: var(--sub); background: var(--bg); white-space: nowrap; }
tr:hover td { background: #faf9ff; }

/* ── GRID ──────────────────────────────────────────────── */
.grid-2 { display: grid; grid-template-columns: repeat(2,1fr); gap: 1.2rem; }
.grid-3 { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.2rem; }
.grid-4 { display: grid; grid-template-columns: repeat(4,1fr); gap: 1rem; }
@media(max-width:768px){ .grid-2,.grid-3,.grid-4,.form-row-2,.form-row-3{ grid-template-columns:1fr; } }

/* ── STAT CARD ─────────────────────────────────────────── */
.stat-card { background: var(--card); border: 1px solid var(--border); border-radius: var(--r); padding: 1.3rem 1.5rem; }
.stat-label { font-size: .78rem; color: var(--sub); margin-bottom: .3rem; }
.stat-value { font-size: 1.9rem; font-weight: 800; color: var(--p); }

/* ── TOOL CARDS ────────────────────────────────────────── */
.tool-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(200px,1fr)); gap: 1.2rem; }
.tool-card { background: var(--card); border: 1.5px solid var(--border); border-radius: var(--r); padding: 1.6rem 1.3rem; text-align: center; text-decoration: none; color: var(--text); transition: all .2s; cursor: pointer; }
.tool-card:hover { border-color: var(--p); box-shadow: 0 4px 20px rgba(124,58,237,.12); transform: translateY(-3px); }
.tool-card .ti { font-size: 2.5rem; margin-bottom: .6rem; }
.tool-card h3 { font-size: 1rem; font-weight: 700; }
.tool-card p  { font-size: .78rem; color: var(--sub); margin-top: .3rem; }
.tool-card .cost { font-size: .75rem; color: var(--p); font-weight: 600; margin-top: .5rem; background: var(--pl); padding: .2rem .6rem; border-radius: 10px; display: inline-block; }

/* ── RESULT AREA ───────────────────────────────────────── */
.result-box { background: #faf9ff; border: 1.5px solid var(--pl); border-radius: var(--r); padding: 1.5rem; margin-top: 1.2rem; display: none; }
.result-box.show { display: block; }
.result-box h3 { font-size: 1rem; font-weight: 700; color: var(--p); margin-bottom: 1rem; }
.result-content { line-height: 1.8; font-size: .93rem; }

/* ── MARKDOWN RENDER ───────────────────────────────────── */
.result-content .md-h2,
.msg-body .md-h2 { font-size: 1.1rem; font-weight: 800; color: var(--p); margin: 1.1rem 0 .4rem; padding-bottom: .25rem; border-bottom: 1px solid var(--border); }
.result-content .md-h3,
.msg-body .md-h3 { font-size: 1rem; font-weight: 700; color: var(--p); margin: .9rem 0 .3rem; }
.result-content .md-h4,
.msg-body .md-h4 { font-size: .95rem; font-weight: 700; color: var(--text); margin: .7rem 0 .25rem; }
.result-content .md-p,
.msg-body .md-p { margin: .35rem 0; line-height: 1.85; }
.result-content .md-ul,
.result-content .md-ol,
.msg-body .md-ul,
.msg-body .md-ol { padding-left: 1.4rem; margin: .4rem 0; }
.result-content .md-ul li,
.result-content .md-ol li,
.msg-body .md-ul li,
.msg-body .md-ol li { margin: .2rem 0; line-height: 1.75; }
.result-content .md-pre,
.msg-body .md-pre { background: #1e1e2e; border-radius: 8px; padding: .9rem 1.1rem; margin: .7rem 0; overflow-x: auto; }
.result-content .md-pre code,
.msg-body .md-pre code { font-family: 'Consolas','Monaco',monospace; font-size: .82rem; color: #cdd6f4; line-height: 1.6; white-space: pre-wrap; word-break: break-all; }
.result-content .md-ic,
.msg-body .md-ic { background: var(--pl); color: var(--p); padding: .1rem .38rem; border-radius: 4px; font-family: monospace; font-size: .85em; }
.result-content .md-hr,
.msg-body .md-hr { border: none; border-top: 1px solid var(--border); margin: .9rem 0; }
.result-content .md-gap,
.msg-body .md-gap { height: .45rem; }
/* 去掉首尾多余间距 */
.result-content > *:first-child,
.msg-body > *:first-child { margin-top: 0 !important; }
.result-content > *:last-child,
.msg-body > *:last-child { margin-bottom: 0 !important; }

/* ── KLINE CHART ───────────────────────────────────────── */
#kline-chart { width: 100%; height: 420px; }

/* ── AUTH ──────────────────────────────────────────────── */
.auth-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 2rem; }
.auth-card { background: var(--card); border: 1px solid var(--border); border-radius: var(--r); box-shadow: var(--shadow); padding: 2.5rem 2.2rem; width: 100%; max-width: 430px; }
.auth-logo { text-align: center; margin-bottom: 2rem; }
.auth-logo .al { font-size: 2.8rem; }
.auth-logo h2 { font-size: 1.4rem; font-weight: 800; color: var(--p); margin-top: .4rem; }
.auth-switch { text-align: center; margin-top: 1.2rem; font-size: .86rem; color: var(--sub); }
.auth-switch a { color: var(--p); font-weight: 600; }

/* ── ADMIN LAYOUT ──────────────────────────────────────── */
.admin-wrap { display: flex; min-height: calc(100vh - 62px); }
.aside { width: 220px; background: var(--card); border-right: 1px solid var(--border); padding: 1.5rem 1rem; flex-shrink: 0; }
.aside-group { margin-bottom: 1.5rem; }
.aside-label { font-size: .72rem; font-weight: 700; color: var(--sub); letter-spacing: .07em; text-transform: uppercase; padding: 0 .8rem; margin-bottom: .4rem; }
.aside a { display: flex; align-items: center; gap: .5rem; padding: .5rem .8rem; border-radius: 8px; text-decoration: none; color: var(--sub); font-size: .88rem; margin-bottom: .1rem; transition: all .15s; }
.aside a:hover, .aside a.on { background: var(--pl); color: var(--p); font-weight: 600; }
.admin-main { flex: 1; padding: 2rem; overflow-x: auto; }

/* ── SPINNER ───────────────────────────────────────────── */
.spin { display: inline-block; width: 16px; height: 16px; border: 2px solid rgba(255,255,255,.4); border-top-color: #fff; border-radius: 50%; animation: sp .65s linear infinite; vertical-align: middle; }
@keyframes sp { to { transform: rotate(360deg); } }

/* ── TABS ──────────────────────────────────────────────── */
.tabs { display: flex; gap: .3rem; border-bottom: 2px solid var(--border); margin-bottom: 1.5rem; }
.tab { padding: .55rem 1.1rem; font-size: .9rem; font-weight: 600; cursor: pointer; border: none; background: none; color: var(--sub); border-bottom: 2px solid transparent; margin-bottom: -2px; border-radius: 8px 8px 0 0; transition: all .18s; }
.tab.on { color: var(--p); border-bottom-color: var(--p); background: var(--pl); }

/* ── MISC ──────────────────────────────────────────────── */
footer { text-align: center; padding: 2rem; color: var(--sub); font-size: .8rem; border-top: 1px solid var(--border); margin-top: 4rem; }
.mono { font-family: monospace; font-size: .82rem; background: var(--bg); padding: 2px 6px; border-radius: 4px; }
.badge { display: inline-block; padding: .15rem .55rem; border-radius: 10px; font-size: .75rem; font-weight: 700; }
.badge-green { background: #d1fae5; color: #065f46; }
.badge-red   { background: #fee2e2; color: #991b1b; }
.badge-blue  { background: #dbeafe; color: #1e40af; }
.badge-gold  { background: var(--gl); color: #92400e; }
.badge-purple{ background: var(--pl); color: #5b21b6; }
.mt1{margin-top:.5rem}.mt2{margin-top:1rem}.mt3{margin-top:1.5rem}.mt4{margin-top:2rem}
.flex{display:flex}.items-center{align-items:center}.gap1{gap:.5rem}.gap2{gap:1rem}.justify-between{justify-content:space-between}

/* ═══════════════════════════════════════════════
   全站 H5 移动端适配
   ═══════════════════════════════════════════════ */
@media (max-width: 768px) {

  /* ── 布局容器 ── */
  .wrap, .wrap-md, .wrap-sm { padding: 1rem; }

  /* ── 页头 ── */
  .page-head { margin-bottom: 1.2rem; }
  .page-head h1 { font-size: 1.35rem; }

  /* ── 卡片 ── */
  .card { padding: 1.1rem; border-radius: 10px; }
  .card-title { font-size: .97rem; margin-bottom: 1rem; }

  /* ── 网格 ── */
  .grid-2, .grid-3, .grid-4,
  .form-row-2, .form-row-3 { grid-template-columns: 1fr; }

  /* ── 工具卡片 2列 ── */
  .tool-grid { grid-template-columns: repeat(2, 1fr); gap: .8rem; }
  .tool-card { padding: 1.1rem .8rem; border-radius: 10px; }
  .tool-card .ti { font-size: 2rem; margin-bottom: .4rem; }
  .tool-card h3 { font-size: .88rem; word-break: break-word; }
  .tool-card p { font-size: .72rem; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
  .tool-card .cost { display: block; font-size: .7rem; white-space: normal; line-height: 1.3; }

  /* ── 统计卡片 ── */
  .stat-card { padding: 1rem 1.1rem; }
  .stat-value { font-size: 1.6rem; }

  /* ── 首页 Hero ── */
  .hero { padding: 2rem 1rem 1.5rem; }
  .hero h1 { font-size: 2rem !important; }
  .hero p { font-size: .95rem; }
  .hero-btns { gap: .6rem; }
  .hero-btns .btn { padding: .55rem 1.1rem; font-size: .85rem; }

  /* ── 按钮 ── */
  .btn { font-size: .88rem; padding: .55rem 1.1rem; }
  .btn-sm { font-size: .78rem; padding: .3rem .7rem; }

  /* ── 表单 ── */
  .fc { font-size: .9rem; padding: .55rem .85rem; }
  label.fl { font-size: .8rem; }

  /* ── 表格 ── */
  th, td { padding: .55rem .7rem; font-size: .82rem; }

  /* ── 提示条 ── */
  .alert { font-size: .83rem; padding: .65rem .9rem; }

  /* ── 结果框 ── */
  .result-box { padding: 1.1rem; }
  .result-content { font-size: .88rem; }

  /* ── K线图高度 ── */
  #kline-chart { height: 380px; }

  /* ── 四柱 ── */
  .pillars-wrap { gap: .7rem; }
  .pillar-tg { font-size: 2.2rem !important; }
  .pillar-dz { font-size: 1.5rem !important; }

  /* ── Footer ── */
  footer { padding: 1.2rem 1rem; margin-top: 2rem; font-size: .75rem; }

  /* ── 管理后台：侧边栏收折 ── */
  .admin-wrap { flex-direction: column; }
  .aside { width: 100%; border-right: none; border-bottom: 1px solid var(--border); padding: .8rem; display: flex; flex-wrap: wrap; gap: .3rem; }
  .aside-group { margin-bottom: 0; }
  .aside-group .aside-label { display: none; }
  .aside a { font-size: .8rem; padding: .3rem .7rem; margin-bottom: 0; }
  .admin-main { padding: 1rem; }

  /* ── Chat 高度 ── */
  .chat-wrap { height: calc(100vh - 120px); }

  /* ── 隐藏 flex 辅助在移动端不换行 ── */
  .flex.items-center.justify-between { flex-wrap: wrap; gap: .5rem; }
}

@media (max-width: 480px) {
  .tool-grid { grid-template-columns: repeat(2, 1fr); gap: .6rem; }
  .tool-card { padding: .9rem .65rem; }
  .tool-card .ti { font-size: 1.7rem; }
  .tool-card h3 { font-size: .82rem; }
  .tool-card .cost { font-size: .65rem; }
  .hero h1 { font-size: 1.7rem !important; }
  .hero-btns .btn { font-size: .82rem; padding: .5rem .9rem; }
  .pillars-wrap { grid-template-columns: repeat(2, 1fr) !important; }
  /* 统计卡片 2列 on very small screens */
  .grid-4 { grid-template-columns: repeat(2, 1fr); }
  .stat-label { font-size: .72rem; overflow-wrap: break-word; }
}

/* ── 道长推荐（现代简洁版） ── */
.masters-wrap{max-width:1160px;margin:0 auto;padding:2rem 1.5rem}
.masters-hero{display:flex;flex-wrap:wrap;gap:1.2rem;align-items:flex-end;justify-content:space-between;margin:0 0 1.8rem;padding:1.6rem 2rem;border-radius:16px;background:linear-gradient(135deg,var(--pl) 0%,#f3f0ff 100%);border:1px solid #ddd6fe}
.masters-hero-text h1{margin:.25rem 0 .4rem;font-size:1.85rem;font-weight:800;letter-spacing:.01em}
.masters-hero-text p{margin:0;color:var(--sub);font-size:.93rem}
.masters-kicker{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--p);font-weight:700}
.masters-filter{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}
.masters-filter a{padding:.32rem .85rem;border-radius:999px;border:1.5px solid var(--border);text-decoration:none;color:var(--sub);font-size:.8rem;background:#fff;transition:all .15s}
.masters-filter a:hover{border-color:var(--p);color:var(--p)}
.masters-filter a.on{background:var(--p);color:#fff;border-color:var(--p)}

.masters-grid-modern{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}
.master-card-modern{display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-radius:16px;overflow:hidden;text-decoration:none;color:inherit;box-shadow:var(--shadow);transition:transform .18s ease,box-shadow .18s ease,border-color .18s}
.master-card-modern:hover{transform:translateY(-4px);box-shadow:0 14px 36px rgba(124,58,237,.13);border-color:#c4b5fd}
.master-media{background:#f5f3ff}
.master-media img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block}
.master-cover-placeholder{width:100%;aspect-ratio:4/5;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--p),#6d28d9);color:#fff;font-weight:800;font-size:1.15rem;letter-spacing:.06em}
.master-info{padding:1.1rem;flex:1;display:flex;flex-direction:column}
.master-name{font-size:1.05rem;font-weight:800;margin:0 0 .3rem}
.master-subtitle{color:var(--sub);font-size:.82rem;margin-bottom:.5rem}
.master-summary{font-size:.87rem;line-height:1.65;color:#374151;flex:1}
.master-meta{display:flex;align-items:center;justify-content:space-between;margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border);color:#6b7280;font-size:.75rem}
.master-badge{background:var(--p);color:#fff;border-radius:999px;padding:.2rem .7rem;font-weight:700;font-size:.72rem}

/* ── 道长详情页 ── */
.master-detail-wrap{max-width:980px;margin:0 auto;padding:1.8rem 1.5rem 3.5rem}

/* 返回导航 */
.master-detail-back{margin-bottom:1.3rem}
.master-back-link{display:inline-flex;align-items:center;gap:.38rem;color:var(--sub);text-decoration:none;font-size:.865rem;font-weight:500;padding:.32rem .6rem .32rem .25rem;border-radius:8px;transition:color .16s,background .16s;line-height:1}
.master-back-link:hover{color:var(--p);background:var(--pl)}
.master-back-link svg{flex-shrink:0;transition:transform .18s}
.master-back-link:hover svg{transform:translateX(-3px)}
/* ── 返回顶部 ── */
.back-to-top{position:fixed;right:1.4rem;bottom:1.8rem;z-index:999;width:42px;height:42px;border-radius:50%;background:var(--p);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(124,58,237,.35);opacity:0;transform:translateY(10px);transition:opacity .22s,transform .22s,background .15s;pointer-events:none}
.back-to-top.visible{opacity:1;transform:translateY(0);pointer-events:auto}
.back-to-top:hover{background:var(--ph);box-shadow:0 6px 20px rgba(124,58,237,.45)}
@media(max-width:600px){.back-to-top{right:1rem;bottom:1.2rem;width:38px;height:38px}}

.master-detail-footer{margin-top:1.6rem;display:flex;justify-content:center}
.master-back-link-footer{font-size:.9rem;padding:.6rem 1.25rem;border:1.5px solid var(--border);border-radius:999px;background:#fff;gap:.5rem}
.master-back-link-footer:hover{color:var(--p);border-color:var(--p);background:var(--pl)}

.master-detail-banner{width:100%;max-height:380px;object-fit:cover;border-radius:20px;border:1px solid var(--border);box-shadow:var(--shadow);display:block;margin-bottom:1.3rem}

/* Hero card: portrait col + info col */
.master-detail-hero{display:grid;grid-template-columns:260px 1fr;align-items:stretch;background:#fff;border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow);overflow:hidden;margin-bottom:1.3rem}
.master-detail-portrait-col{background:linear-gradient(160deg,var(--p) 0%,#5b21b6 100%);padding:2.5rem 1.6rem 2.5rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;position:relative}
.master-detail-portrait-col::after{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");pointer-events:none}
.master-detail-portrait{width:160px;height:210px;object-fit:cover;border-radius:16px;border:3px solid rgba(255,255,255,.3);box-shadow:0 24px 56px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.25),0 0 0 1px rgba(255,255,255,.08);position:relative;z-index:1;display:block}
.master-detail-portrait-placeholder{width:160px;height:210px;border-radius:16px;background:rgba(255,255,255,.15);border:3px solid rgba(255,255,255,.25);display:flex;align-items:center;justify-content:center;color:#fff;font-size:2.6rem;font-weight:800;letter-spacing:.04em;position:relative;z-index:1;box-shadow:0 24px 56px rgba(0,0,0,.3)}

/* Info column */
.master-detail-info{padding:2rem 2.2rem;display:flex;flex-direction:column;justify-content:center}
.master-detail-cat{display:inline-block;padding:.25rem .8rem;border-radius:999px;background:var(--pl);color:var(--p);font-size:.73rem;font-weight:700;margin-bottom:.9rem;letter-spacing:.03em}
.master-detail-title{font-size:1.9rem;font-weight:800;margin:0 0 .4rem;letter-spacing:.01em;line-height:1.25}
.master-detail-subtitle{color:var(--sub);font-size:.95rem;margin-bottom:1.2rem;line-height:1.55}
.master-detail-summary{font-size:.96rem;line-height:1.8;color:#374151;padding-top:1.1rem;border-top:1px solid var(--border);flex:1}
.master-detail-views{display:inline-flex;align-items:center;gap:.35rem;margin-top:1.3rem;color:var(--sub);font-size:.78rem}
.master-detail-views svg{flex-shrink:0}

/* Content card */
.master-detail-content{background:#fff;border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow);padding:2rem 2.4rem}
.master-detail-content h2{font-size:1.2rem;font-weight:800;color:var(--p);margin:1.6rem 0 .6rem;padding-bottom:.35rem;border-bottom:1px solid var(--border)}
.master-detail-content h3{font-size:1.05rem;font-weight:700;color:var(--text);margin:1.3rem 0 .5rem}
.master-detail-content p{margin:.7rem 0;line-height:1.85;font-size:.96rem;color:#1f2937}
.master-detail-content img{max-width:100%;border-radius:12px;box-shadow:var(--shadow)}
.master-detail-content ul,.master-detail-content ol{padding-left:1.4rem;margin:.6rem 0}
.master-detail-content li{margin:.25rem 0;line-height:1.75;font-size:.95rem}
.master-detail-content blockquote{border-left:3px solid var(--p);background:var(--pl);margin:1rem 0;padding:.8rem 1rem;border-radius:0 8px 8px 0;color:#374151;font-style:italic}

/* ── 道长列表 + 详情 响应式 ── */

/* iPad 横屏 / 小桌面：3列→2列 */
@media(max-width:980px){
  .masters-grid-modern{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* 平板竖屏 / 大手机横屏 ≤720px：详情肖像列收窄，不折叠 */
@media(max-width:720px){
  .master-detail-hero{grid-template-columns:160px 1fr}
  .master-detail-portrait-col{padding:2rem 1rem}
  .master-detail-portrait{width:108px;height:144px}
  .master-detail-portrait-placeholder{width:108px;height:144px;font-size:2rem}
  .master-detail-info{padding:1.6rem 1.4rem}
  .master-detail-title{font-size:1.5rem}
  .master-detail-content{padding:1.5rem 1.6rem}
}

/* 手机 ≤600px */
@media(max-width:600px){
  /* ─ 列表页 ─ */
  .masters-wrap{padding:1rem .9rem}
  .masters-hero{
    padding:1rem 1.1rem;
    margin-bottom:1rem;
    flex-direction:column;
    align-items:flex-start;
    gap:.7rem
  }
  .masters-hero-text h1{font-size:1.4rem}
  .masters-hero-text p{font-size:.85rem}
  /* filter 横向滚动，不换行 */
  .masters-filter{
    flex-wrap:nowrap;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    width:100%;
    padding-bottom:2px
  }
  .masters-filter::-webkit-scrollbar{display:none}
  .masters-filter a{flex-shrink:0;font-size:.78rem;padding:.3rem .75rem}
  /* 卡片改横排 */
  .masters-grid-modern{grid-template-columns:1fr;gap:.75rem}
  .master-card-modern{flex-direction:row;border-radius:14px;min-height:0}
  .master-media{width:96px;flex-shrink:0;align-self:stretch}
  .master-media img{width:100%;height:100%;object-fit:cover;aspect-ratio:auto}
  .master-cover-placeholder{aspect-ratio:auto;width:100%;height:100%;min-height:120px;font-size:1rem}
  .master-info{padding:.85rem .9rem}
  .master-name{font-size:.97rem;margin-bottom:.2rem}
  .master-subtitle{font-size:.78rem;margin-bottom:.35rem}
  .master-summary{
    font-size:.82rem;
    line-height:1.55;
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden
  }
  .master-meta{margin-top:.7rem;padding-top:.6rem;font-size:.72rem}

  /* ─ 详情页 ─ */
  .master-detail-wrap{padding:1rem .9rem 2.5rem}
  .master-back-link{font-size:.82rem}
  .master-detail-back{margin-bottom:1rem}
  .master-detail-hero{grid-template-columns:110px 1fr;border-radius:16px;margin-bottom:1rem}
  .master-detail-portrait-col{padding:1.5rem .75rem}
  .master-detail-portrait{width:76px;height:102px}
  .master-detail-portrait-placeholder{width:76px;height:102px;font-size:1.4rem}
  .master-detail-info{padding:1.1rem 1rem}
  .master-detail-cat{font-size:.68rem;padding:.2rem .65rem;margin-bottom:.65rem}
  .master-detail-title{font-size:1.2rem;line-height:1.3}
  .master-detail-subtitle{font-size:.85rem;margin-bottom:.75rem}
  .master-detail-summary{font-size:.87rem;line-height:1.7;padding-top:.8rem}
  .master-detail-views{font-size:.75rem;margin-top:.8rem}
  .master-detail-content{padding:1.1rem 1.1rem;border-radius:14px}
  .master-detail-content h2{font-size:1rem;margin:1.2rem 0 .45rem}
  .master-detail-content h3{font-size:.95rem;margin:1rem 0 .4rem}
  .master-detail-content p{font-size:.91rem;line-height:1.75}
  .master-detail-content li{font-size:.91rem}
  .master-detail-banner{border-radius:14px;max-height:180px;margin-bottom:.9rem}
}

/* 极小屏 ≤380px */
@media(max-width:380px){
  .master-detail-hero{grid-template-columns:96px 1fr}
  .master-detail-portrait-col{padding:1.2rem .6rem}
  .master-detail-portrait{width:66px;height:88px}
  .master-detail-portrait-placeholder{width:66px;height:88px;font-size:1.1rem}
  .master-detail-info{padding:.9rem .85rem}
  .master-detail-title{font-size:1.05rem}
  .master-media{width:82px}
}
