/* 暖心理 PHP 版设计系统：低饱和暖色（避开医疗蓝绿），强调"可信赖但不临床"的观感。
   与 Next 版共用同一组色值令牌；Next 走 Tailwind 原子类，这里用手写语义类，视觉口径一致。 */
:root{
  --clay-50:#fdf6f2;--clay-100:#f9e9e1;--clay-200:#f2d3c4;--clay-300:#e7b39c;--clay-400:#d98f70;
  --clay-500:#c7714f;--clay-600:#ab5b3d;--clay-700:#8a4831;--clay-800:#6b3a2a;
  --cream-50:#fbf9f6;--cream-100:#f5f1ea;--cream-200:#ebe3d7;--cream-300:#ded3c2;
  --ink-400:#8d8478;--ink-500:#6c6459;--ink-600:#4d4740;--ink-900:#1b1917;
  --crisis-500:#b3352c;--crisis-600:#932a23;--crisis-50:#fdecea;
  --ok-600:#3f7d5c;--ok-50:#eef5f0;
  --radius-card:16px;--radius-btn:10px;--page:1.25rem;--content:880px;--bar:1120px;
  --shadow-sm:0 1px 2px rgba(27,25,23,.05),0 1px 3px rgba(27,25,23,.04);
  --shadow-md:0 4px 12px rgba(107,58,42,.07),0 2px 4px rgba(27,25,23,.04);
  --shadow-lg:0 14px 34px rgba(107,58,42,.13),0 4px 10px rgba(27,25,23,.05);
  color-scheme:light;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:
    radial-gradient(1200px 420px at 50% -240px,rgba(215,143,112,.14),transparent 70%),
    var(--cream-50);
  color:var(--ink-900);
  font-family:'PingFang SC','Hiragino Sans GB','Microsoft YaHei',system-ui,-apple-system,sans-serif;
  -webkit-font-smoothing:antialiased;line-height:1.68;font-size:15px}
a{color:var(--clay-700);text-decoration:none;transition:color .15s ease}
a:hover{color:var(--clay-500)}
::selection{background:var(--clay-100)}
:focus-visible{outline:2px solid var(--clay-400);outline-offset:2px}

/* ── 顶部导航 ───────────────────────────────────────────── */
.topbar{position:sticky;top:0;z-index:40;background:rgba(251,249,246,.92);backdrop-filter:saturate(1.4) blur(10px);
  border-bottom:1px solid var(--cream-200)}
.bar{max-width:var(--bar);margin:0 auto;padding:.6rem var(--page);display:flex;align-items:center;gap:1.1rem}
.brand{display:flex;align-items:center;gap:.55rem;color:var(--ink-900)}
.brand:hover{color:var(--ink-900)}
.brand-mark{width:34px;height:34px;border-radius:11px;display:block;flex:none;box-shadow:var(--shadow-sm)}
.brand-mark.sm{width:25px;height:25px;border-radius:8px;box-shadow:none}
.foot-about b{display:flex;align-items:center;gap:.45rem;font-size:1rem}
.brand-text{display:flex;flex-direction:column;line-height:1.15}
.brand-text b{font-size:1rem;font-weight:600;letter-spacing:.01em}
.brand-text i{font-style:normal;font-size:.68rem;color:var(--ink-400)}
.bar-nav{display:flex;gap:.15rem;flex-wrap:wrap;margin-left:.4rem}
.bar-nav a{padding:.4rem .6rem;border-radius:999px;font-size:.82rem;color:var(--ink-600);white-space:nowrap}
.bar-nav a:hover{background:var(--clay-50);color:var(--clay-700)}
.bar-side{margin-left:auto;display:flex;align-items:center;gap:.6rem}
.menu{position:relative}
.menu>summary{list-style:none;cursor:pointer;padding:.42rem .85rem;border-radius:999px;border:1px solid var(--clay-200);
  background:#fff;font-size:.82rem;color:var(--clay-700)}
.menu>summary::-webkit-details-marker{display:none}
.menu>summary:after{content:'▾';margin-left:.35rem;font-size:.7rem;color:var(--ink-400)}
.menu[open]>summary{background:var(--clay-500);border-color:var(--clay-500);color:#fff}
.menu-pop{position:absolute;right:0;top:calc(100% + .4rem);min-width:180px;background:#fff;border:1px solid var(--cream-200);
  border-radius:var(--radius-card);box-shadow:var(--shadow-lg);padding:.4rem;display:flex;flex-direction:column;z-index:50}
.menu-pop a{padding:.45rem .6rem;border-radius:8px;font-size:.82rem;color:var(--ink-600)}
.menu-pop a:hover{background:var(--cream-100);color:var(--clay-700)}
.menu-pop form{margin:0;padding:.15rem .6rem 0;border-top:1px solid var(--cream-200)}
@media (max-width:860px){
  .bar{flex-wrap:wrap;gap:.6rem}
  .bar-nav{order:3;width:100%;margin-left:0;overflow-x:auto;flex-wrap:nowrap;padding-bottom:.15rem}
  .brand-text i{display:none}
}

/* ── 版心与标题 ─────────────────────────────────────────── */
.wrap{max-width:var(--content);margin:0 auto;padding:2rem var(--page) 4.5rem}
.page-head{margin-bottom:1.4rem}
.page-head h1{font-size:1.85rem;font-weight:600;letter-spacing:-.015em;margin:0 0 .3rem;line-height:1.25}
.page-head .sub{margin:0;color:var(--ink-500);font-size:.92rem;max-width:62ch}
.page-head.hero{text-align:left;padding:1.6rem 0 .4rem;border-bottom:1px solid var(--cream-200);margin-bottom:1.6rem}
.page-head.hero h1{font-size:2.3rem}
.page-head.hero .sub{font-size:1rem}
/* 人物型页头：标题与头像并排，避免"一个人的主页长得像一张表单" */
.head-row{display:flex;align-items:flex-start;gap:1.1rem}
.head-main{min-width:0;flex:1}
.avatar{width:72px;height:72px;border-radius:20px;flex:none;object-fit:cover;box-shadow:var(--shadow-md)}
.avatar.initials{display:grid;place-items:center;color:#fff;font-size:1.7rem;font-weight:600;letter-spacing:0;
  background:linear-gradient(150deg,var(--clay-400),var(--clay-700))}
.card h3 .avatar.xs{width:26px;height:26px;border-radius:9px;font-size:.85rem;display:inline-grid;
  place-items:center;vertical-align:-6px;margin-right:.45rem}
@media (max-width:640px){.avatar{width:56px;height:56px;font-size:1.35rem;border-radius:16px}}
h2{font-size:1.12rem;font-weight:600;margin:2.2rem 0 .7rem;letter-spacing:-.005em;
  display:flex;align-items:center;gap:.55rem}
h2::before{content:'';width:3px;height:.95em;border-radius:2px;background:var(--clay-300);flex:none}
h3{font-size:.95rem;font-weight:600;margin:0}
h4{font-size:.78rem;font-weight:600;color:var(--ink-500);margin:0 0 .5rem;letter-spacing:.02em}
p{margin:.35rem 0}
.muted{color:var(--ink-400);font-size:.78rem;line-height:1.6}
.sub{color:var(--ink-500);font-size:.85rem}

/* ── 卡片与栅格 ─────────────────────────────────────────── */
.card{background:#fff;border:1px solid var(--cream-200);border-radius:var(--radius-card);
  padding:1.05rem 1.15rem;margin:.65rem 0;box-shadow:var(--shadow-sm);transition:box-shadow .18s ease,border-color .18s ease}
.card:hover{box-shadow:var(--shadow-md)}
.card.accent{border-color:var(--clay-200);background:linear-gradient(180deg,var(--clay-50),#fff)}
.card h3{margin-bottom:.25rem}
.card .sub{line-height:1.65}
a.card{display:block;color:var(--ink-900)}
a.card:hover{border-color:var(--clay-300);color:var(--ink-900);transform:translateY(-1px)}
a.card h3::after{content:'→';margin-left:.4rem;color:var(--clay-400);font-weight:400;transition:transform .18s ease}
a.card:hover h3::after{transform:translateX(3px)}
.grid{display:grid;gap:.7rem}
/* 用 auto-fit 而不是断点硬切：入口卡与筛选块在任何窗口宽度下都能自己排成合理的列数 */
.grid.two{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.grid.three{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.row{display:flex;align-items:flex-start;justify-content:space-between;gap:.9rem}
/* 一行内的并列控件：价格档位、审核结论这类"几个短字段挨着放"的地方 */
.row-set{display:flex;flex-wrap:wrap;gap:.7rem;align-items:flex-end}
/* 手机上一条班四个字段各占一行，八行班表要滚半屏；窄屏改成两列，一条班只占两行 */
@media (max-width:640px){
  .row-set{display:grid;grid-template-columns:1fr 1fr;gap:.45rem}
}
.row-set label{flex:1 1 12rem}
.row-set label .block{display:block;font-weight:500;font-size:.8rem;margin-top:.15rem;line-height:1.4}
.row-set button{flex:0 0 auto}
details.quote{margin:.55rem 0 0;font-size:.82rem;color:var(--ink-600)}
details.quote>summary{cursor:pointer;color:var(--clay-700);text-decoration:underline;text-underline-offset:2px}
details.quote p{margin:.5rem 0 0;line-height:1.7}

/* ── 标签、徽章、按钮 ───────────────────────────────────── */
.tag{display:inline-block;background:var(--cream-100);border:1px solid transparent;border-radius:999px;
  padding:.13rem .6rem;font-size:.74rem;color:var(--ink-600);margin:0 .25rem .25rem 0}
a.tag:hover{background:var(--clay-100);color:var(--clay-800)}
.tag.on{background:var(--clay-500);border-color:var(--clay-500);color:#fff}
.tag.on:hover{background:var(--clay-600);color:#fff}
.badge{font-size:.72rem;font-weight:500;padding:.18rem .6rem;border-radius:999px;white-space:nowrap;
  border:1px solid transparent}
.badge.ok{background:var(--clay-50);color:var(--clay-700);border-color:var(--clay-200)}
.badge.done{background:var(--ok-50);color:var(--ok-600);border-color:#cfe3d7}
.badge.pending{background:var(--cream-100);color:var(--ink-500);border-color:var(--cream-200)}
.badge.bad{background:var(--crisis-50);color:var(--crisis-600);border-color:#f0cdc7}
.btn{display:inline-block;background:linear-gradient(180deg,var(--clay-500),var(--clay-600));color:#fff;border:1px solid transparent;
  border-radius:var(--radius-btn);padding:.55rem 1.05rem;font-size:.85rem;font-weight:500;cursor:pointer;
  font-family:inherit;text-decoration:none;box-shadow:var(--shadow-sm);transition:transform .12s ease,box-shadow .18s ease,filter .18s ease}
.btn:hover{color:#fff;filter:saturate(1.05);box-shadow:var(--shadow-md)}
.btn:active{transform:translateY(1px)}
.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
.btn.sm{padding:.35rem .75rem;font-size:.78rem}
.btn.ghost{background:#fff;color:var(--clay-700);border-color:var(--clay-200);box-shadow:none}
.btn.ghost:hover{background:var(--clay-50);border-color:var(--clay-300);color:var(--clay-700)}
.link{background:none;border:0;padding:0;color:var(--clay-700);font-size:inherit;font-family:inherit;
  text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.link:hover{color:var(--clay-500)}

/* ── 表单 ───────────────────────────────────────────────── */
label{display:block;font-size:.8rem;color:var(--ink-600);margin-bottom:.2rem}
label.check{display:flex;gap:.5rem;align-items:flex-start;font-size:.8rem;color:var(--ink-600);line-height:1.55;
  padding:.2rem 0;cursor:pointer}
label.check input{margin-top:.28rem;accent-color:var(--clay-500);width:auto;flex:none}
input:not([type=checkbox]):not([type=radio]),select,textarea{font-family:inherit;font-size:.86rem;padding:.5rem .7rem;
  border:1px solid var(--cream-300);border-radius:var(--radius-btn);background:#fff;color:var(--ink-900);max-width:100%;
  width:100%;transition:border-color .15s ease,box-shadow .15s ease}
input:not([type=checkbox]):not([type=radio]):focus,textarea:focus,select:focus{outline:none;border-color:var(--clay-400);
  box-shadow:0 0 0 3px rgba(199,113,79,.13)}
textarea{resize:vertical;line-height:1.65}
fieldset{border:1px solid var(--cream-200);border-radius:var(--radius-card);padding:.7rem .9rem .8rem;margin:0 0 .7rem;background:#fff}
fieldset legend{font-size:.84rem;font-weight:600;color:var(--ink-900);padding:0 .45rem}
form.card{background:#fff}
/* 筛选条：字段数固定但宽度不固定，用 auto-fit 让它在手机到桌面都排得开 */
.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.7rem .9rem;align-items:end}
.filters .span-all{grid-column:1/-1}
.filters .checks{display:flex;gap:1.1rem;flex-wrap:wrap;align-items:center}

/* ── 数据块与表格 ───────────────────────────────────────── */
dl{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem;margin:.9rem 0 0}
@media (max-width:700px){dl{grid-template-columns:repeat(2,1fr)}}
dl>div{background:#fff;border:1px solid var(--cream-200);border-radius:var(--radius-card);padding:.6rem .8rem;box-shadow:var(--shadow-sm)}
dt{font-size:.72rem;color:var(--ink-400)}
dd{margin:.1rem 0 0;font-size:1.15rem;font-weight:600;color:var(--clay-700);letter-spacing:-.01em}
table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--cream-200);
  border-radius:var(--radius-card);overflow:hidden;font-size:.82rem;box-shadow:var(--shadow-sm)}
table.plain{list-style:none}
th,td{text-align:left;padding:.5rem .75rem;border-bottom:1px solid var(--cream-200)}
th{background:var(--cream-100);font-size:.72rem;font-weight:600;color:var(--ink-500);white-space:nowrap}
td{white-space:nowrap}
/* 窄屏下让宽表横向滚动，而不是把表头压成一列竖排字 */
.card:has(table){overflow-x:auto}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover td{background:var(--clay-50)}
ul.plain{list-style:none;padding:0;margin:.4rem 0 0;font-size:.82rem;color:var(--ink-600)}
ul.plain li{padding:.4rem 0;border-bottom:1px dashed var(--cream-200)}
ul.plain li:last-child{border-bottom:0}
ul.plain.rows li{display:flex;justify-content:space-between;gap:1rem;align-items:baseline}
ul.plain.rows li a{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
ul.plain.rows li .muted{flex:none}
ol{padding-left:1.2rem;font-size:.84rem;color:var(--ink-600)}
ol li{padding:.15rem 0}

/* ── 选单：套餐与时段 ───────────────────────────────────── */
.slot{border:1px solid var(--cream-200);border-radius:var(--radius-btn);padding:.42rem .6rem;font-size:.76rem;
  background:#fff;cursor:pointer;transition:border-color .15s ease,background .15s ease}
.slot:hover{border-color:var(--clay-300)}
.slot.on{border-color:var(--clay-500);background:var(--clay-50);color:var(--clay-800);font-weight:500}
.sku{border:1px solid var(--cream-200);border-radius:var(--radius-card);padding:.65rem .85rem;font-size:.8rem;
  cursor:pointer;background:#fff;text-align:left;width:100%;transition:border-color .15s ease,box-shadow .18s ease}
.sku:hover{border-color:var(--clay-300);box-shadow:var(--shadow-sm)}
.sku.on{border-color:var(--clay-500);background:var(--clay-50)}

/* ── 会话气泡与流水 ─────────────────────────────────────── */
.bubbles{max-height:460px;overflow:auto;background:var(--cream-100);border:1px solid var(--cream-200);
  border-radius:var(--radius-card);padding:.85rem;display:flex;flex-direction:column;gap:.55rem}
.msg{max-width:82%;padding:.55rem .85rem;border-radius:14px;font-size:.83rem;background:#fff;
  border:1px solid var(--cream-200);box-shadow:var(--shadow-sm);word-break:break-word}
.msg p{margin:.1rem 0}
.msg.mine{align-self:flex-end;background:linear-gradient(180deg,#fff,var(--clay-50));border-color:var(--clay-200)}
.msg.system{align-self:center;background:#fff;border-style:dashed;color:var(--clay-800);max-width:94%;font-size:.78rem}
.flow{border-left:2px solid var(--clay-200);padding-left:.9rem;margin:.7rem 0}
.flow .step{margin-bottom:.85rem;position:relative}
.flow .step::before{content:'';position:absolute;left:-1.32rem;top:.5rem;width:.5rem;height:.5rem;border-radius:50%;
  background:#fff;border:2px solid var(--clay-400)}

/* ── 提示条 ─────────────────────────────────────────────── */
.err{color:var(--crisis-600);font-size:.82rem}
.ok-msg{display:block;background:var(--ok-50);border:1px solid #cfe3d7;color:var(--ok-600);
  padding:.5rem .75rem;border-radius:var(--radius-btn);font-size:.82rem;margin:.5rem 0}
.disclaimer{border-left:3px solid var(--clay-400);background:var(--clay-50);padding:.6rem .85rem;
  font-size:.78rem;color:var(--clay-800);margin:.9rem 0;border-radius:0 var(--radius-btn) var(--radius-btn) 0}
.stars{color:var(--clay-500);letter-spacing:1px}

/* ── 页脚 ───────────────────────────────────────────────── */
.site-foot{border-top:1px solid var(--cream-200);background:linear-gradient(180deg,var(--cream-100),var(--cream-200));
  padding:2.2rem var(--page) 2.4rem;font-size:.78rem;color:var(--ink-500);margin-top:2rem}
.foot{max-width:var(--bar);margin:0 auto}
.foot-cols{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:1.4rem}
/* 移动端页脚：说明与紧急求助各占整行，两组链接两列并排——
   一路堆成单列会让"紧急求助"掉到屏幕外，也白白拉长半屏 */
@media (max-width:860px){
  .foot-cols{grid-template-columns:1fr 1fr;gap:1.1rem 1.2rem}
  .foot-about{grid-column:1 / -1}
  .foot nav a{padding:.3rem 0}
}
@media (max-width:360px){
  .foot-cols{grid-template-columns:1fr}
}
.foot-about b{font-size:.95rem;color:var(--ink-900)}
.foot-about p{margin:.4rem 0 0;line-height:1.7}
.foot nav{display:flex;flex-direction:column;gap:.2rem}
.foot nav a{color:var(--ink-500);padding:.12rem 0}
.foot nav a:hover{color:var(--clay-700)}
.foot-legal{border-top:1px solid rgba(141,132,120,.25);margin-top:1.5rem;padding-top:1rem;
  display:flex;flex-wrap:wrap;gap:.2rem 1.5rem;font-size:.74rem;color:var(--ink-400)}
.foot-legal p{margin:.15rem 0}
