/* ============================================================
   赛蔻心理 PC Web · 静谧专业设计系统
   严格对齐《赛蔻心理_静谧专业_UI精修版》最终视觉层叠：
   墨青 #244a58 / 暖金 #8f7548 / 雾蓝 #eaf0f4 / 米灰底 #f5f7f9
   宽屏容器 1080 · 顶栏 80 · 卡片描边 + 静阴影
   ============================================================ */

/* ---------- 设计令牌 ---------- */
:root{
  --ink:#244a58; --deep:#183c49; --hero:#173b47;
  --gold:#ac9471; --gold-deep:#8f7548; --gold-soft:#d4b880;
  --mist:#eaf0f4; --bg:#f5f7f9; --muted:#7b8e99; --line:#e3eaf0; --line-strong:#c9d8e0;
  --text-1:#244a58; --text-2:#55707c; --text-3:#748893;
  --ink-soft:#4d6b78; --white:#fff;
  --danger:#b0554f; --success:#4b8a6b; --warn:#a9854d;
  --serif:"Songti SC","Noto Serif CJK SC","STSong",SimSun,serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  --topbar-h:80px;
  --r-1:4px; --r-2:6px; --r-3:8px; --r-4:10px; --r-5:12px; --r-6:14px;
  --sh-xs:0 1px 2px #244a580d,0 1px 3px #244a580a;
  --sh-sm:0 2px 8px #244a580d,0 1px 2px #244a5808;
  --sh-md:0 10px 28px #244a5817;
  --sh-lg:0 24px 60px #244a5826,0 6px 18px #244a5812;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg);color:var(--ink);
  font:15px/1.65 var(--sans);
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,p{margin:0}
h1,h2,.serif{font-family:var(--sans);font-weight:400;color:var(--text-1);letter-spacing:.3px}
h1{font-size:30px;line-height:1.28}
h2{font-size:23px;line-height:1.35}
h3{font-size:17px;line-height:1.4;font-weight:500}
h4{font-size:14px;font-weight:600}
a{color:inherit;text-decoration:none}
button{border:0;background:none;color:inherit;font-family:inherit;cursor:pointer}
button,a,select{cursor:pointer}
button,input,select,textarea{font:inherit}
input,select,textarea{font-size:14px;color:var(--ink)}
img{display:block;max-width:100%}
:focus-visible{outline:2px solid #91adbd;outline-offset:2px;border-radius:4px}
.serif{font-family:var(--serif)}
.skip-link{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:8px 16px;z-index:99}
.skip-link:focus{left:12px;top:12px}
.mini{font-size:12px}.muted,small{color:var(--text-3)}
.gold-text{color:var(--gold-deep)}
.hidden{display:none!important}
.center{text-align:center}
.nowrap{white-space:nowrap}
.eyebrow{text-transform:uppercase;font-size:10px;letter-spacing:2.5px;color:#9a8155;margin-bottom:12px;font-weight:400}

/* ---------- 布局容器 ---------- */
.wrap,.container{max-width:1080px;margin:0 auto;padding:0 28px;width:100%}
.app-main{min-height:calc(100vh - var(--topbar-h));padding:18px 0 64px}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:10px 0 22px;flex-wrap:wrap}
.page-head h1{font-size:30px;color:var(--text-1)}
.page-head .sub{color:var(--text-3);margin-top:8px;font-size:13px}
.crumb{font-size:13px;color:var(--text-3);margin-bottom:14px;display:flex;gap:6px;align-items:center}
.crumb a:hover{color:var(--gold-deep)}
.grid{display:grid;gap:16px}
.g2,.g3,.g4{display:grid;gap:16px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
.layout-2-1{display:grid;grid-template-columns:1fr 300px;gap:22px;align-items:start}
.layout-1-1{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}
.stack{display:flex;flex-direction:column;gap:16px}
.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.row-end{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}
.spacer{flex:1}
.divider{height:1px;background:var(--line);margin:18px 0;border:0}

/* ---------- 顶栏（对齐设计稿 .header 80px） ---------- */
.topbar{
  position:sticky;top:0;z-index:50;
  background:#fbfcfef2;backdrop-filter:blur(16px);
  border-bottom:1px solid #e0e8ee;
}
.topbar-inner{height:var(--topbar-h);display:flex;align-items:center;gap:30px}
.brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:22px;letter-spacing:2px;color:var(--ink);white-space:nowrap}
.brand small{display:block;font-size:9px;letter-spacing:4px;line-height:1;color:#8ca0aa;font-weight:400;margin-top:2px}
.logo{width:42px;height:42px;flex:none;object-fit:contain;display:block}
.mainnav{display:flex;gap:26px;flex:1;min-width:0}
.mainnav a{
  padding:8px 1px;font-size:14.5px;color:#8296a2;white-space:nowrap;
  border-bottom:2px solid transparent;transition:color .15s;
}
.mainnav a:hover{color:var(--ink)}
.mainnav a.active{color:#294f61;border-bottom-color:#b09b7a}
.topbar-right{display:flex;align-items:center;gap:12px;white-space:nowrap}
.topbar-right .iconbtn{position:relative}
.topbar-right .nav-dot{position:absolute;top:2px;right:2px;width:8px;height:8px;border-radius:50%;background:var(--danger);border:2px solid #fff}
.user-menu{position:relative}
.user-chip{display:flex;align-items:center;gap:8px;padding:4px 12px 4px 4px;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:var(--sh-xs)}
.user-chip:hover{border-color:#d2dee5}
.user-chip .avatar{width:30px;height:30px;font-size:13px}
.user-chip svg{width:16px;height:16px;flex:none}
.user-dropdown a svg,.user-dropdown button svg{width:16px;height:16px;flex:none}
.user-dropdown{position:absolute;right:0;top:calc(100% + 10px);width:230px;background:#fff;border:1px solid var(--line);border-radius:var(--r-5);
  box-shadow:var(--sh-lg);padding:8px;z-index:60}
.user-dropdown .ud-head{padding:10px 12px;border-bottom:1px solid var(--line);margin-bottom:6px}
.user-dropdown a,.user-dropdown button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:9px 12px;border-radius:var(--r-3);font-size:14px;color:var(--text-1)}
.user-dropdown a:hover,.user-dropdown button:hover{background:var(--bg)}
.user-dropdown .ud-role{font-size:11px;color:var(--gold-deep);border:1px solid #ddc9a6;border-radius:var(--r-2);padding:0 6px;margin-left:auto}

/* ---------- 顶栏·咨询师工作态（墨青深色，与来访者态明确区分"工作模式"） ---------- */
.topbar.staff{background:linear-gradient(120deg,#143648,#1d4a5d);border-bottom-color:#0f2c3b}
.topbar.staff .brand{color:#fff}
/* 9px 副名属小字，需 4.5:1：#9fc6d6 on 最深渐变端 5.26:1 */
.topbar.staff .brand small{color:#9fc6d6}
/* 标签文字 #e9d6ac=6.70:1；描边按非文字对比 3:1 提亮到 #b39a6a=3.54:1 */
.staff-tag{font-style:normal;font-size:10px;line-height:1;letter-spacing:2px;color:#e9d6ac;
  border:1px solid #b39a6a;border-radius:3px;padding:3px 6px;margin-left:2px;align-self:center;white-space:nowrap}
.staffnav{display:flex;gap:24px;flex:1;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
.staffnav::-webkit-scrollbar{display:none}
.staffnav a{position:relative;padding:8px 1px;font-size:14.5px;color:#9fbcc9;white-space:nowrap;
  border-bottom:2px solid transparent;transition:color .15s}
.staffnav a:hover{color:#fff}
.staffnav a.active{color:#fff;border-bottom-color:var(--gold-soft)}
/* 数字角标：白字 4.93:1，白描边与深底 9.59:1 形成可辨识轮廓（红底直接对深底仅 1.94:1） */
.staffnav .wb-nav-badge{top:-5px;right:-15px;border:2px solid #fff}
/* 接听台快捷入口（可点击控件，描边需 3:1：白 .55=4.15:1） */
.staff-vent{display:inline-flex;align-items:center;gap:5px;padding:7px 14px;border-radius:20px;
  border:1px solid rgba(255,255,255,.55);color:#dcebf2;font-size:13px;white-space:nowrap}
.staff-vent svg{width:15px;height:15px}
.staff-vent:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.8);color:#fff}
/* active 实底加深为 #7d6740，白字 5.40:1（原 gold-deep 仅 4.37:1） */
.staff-vent.active{background:#7d6740;border-color:#7d6740;color:#fff}
.topbar.staff .iconbtn{color:#cfe0e9}
.topbar.staff .iconbtn:hover{background:rgba(255,255,255,.12);color:#fff}
/* 未读红点为纯图形对象：提亮到 #e07a6f=3.28:1，并保留白圈与深底分离 */
.topbar.staff .nav-dot{background:#e07a6f;border-color:#fff}
/* chip 为可点击控件，描边需 3:1：白 .55=4.15:1（原 .26=2.05:1） */
.topbar.staff .user-chip{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.55);color:#eef6fa}
.topbar.staff .user-chip:hover{border-color:rgba(255,255,255,.8);background:rgba(255,255,255,.16)}
.topbar.staff .user-chip .mini{color:#d3e4ec}

/* ---------- 按钮 ---------- */
.btn{
  display:inline-flex;justify-content:center;align-items:center;gap:9px;
  background:#234e61;color:#fff;border-radius:var(--r-3);
  padding:12px 22px;font-weight:500;font-size:14px;line-height:1.2;
  border:1px solid transparent;white-space:nowrap;transition:.15s;
}
.btn:hover{filter:brightness(1.05)}
.btn.gold{background:var(--gold-deep);color:#fff}
.btn.light{background:#eaf1f5;color:#587e94}
.btn.light:hover{background:#e0e9ef;filter:none}
.btn.outline{background:transparent;border-color:var(--line);color:var(--ink-soft)}
.btn.outline:hover{border-color:var(--gold);color:var(--gold-deep)}
.hero .btn.outline,.actualhero .btn.outline,.meditation .btn.outline,
.profilehero .btn.outline,.profileguest .btn.outline,.vent-card .btn.outline{
  border-color:#ffffff66;color:#e6eef2;background:transparent;
}
.btn.ghost{background:transparent;color:var(--ink-soft);padding:8px 10px}
.btn.ghost:hover{background:var(--mist);filter:none}
.btn.danger{background:var(--danger)}
.btn.danger:hover{background:#96463f;filter:none}
.btn.sm{padding:8px 14px;font-size:12.5px;border-radius:var(--r-2)}
.btn.lg{padding:14px 28px;font-size:15px;border-radius:var(--r-3)}
.btn.block,.btn.full{width:100%}
.btn svg{width:16px;height:16px;flex:none}
.btn:disabled{opacity:.45;cursor:not-allowed}
.linkbtn{color:var(--gold-deep);font-size:13px;background:none;padding:0}
.linkbtn:hover{text-decoration:underline}
.iconbtn{width:38px;height:38px;border-radius:var(--r-3);display:inline-flex;align-items:center;justify-content:center;color:var(--ink-soft);font-size:20px;background:transparent}
.iconbtn:hover{background:var(--mist)}
.iconbtn svg{width:21px;height:21px}
.help{display:inline-flex;align-items:center;gap:6px;background:none;color:#a38c68;font-size:13px;padding:0}
.help:hover{color:var(--gold-deep)}
.textlight{background:none;color:#d5dfe4;font-size:13px;padding:4px 6px}
.textlight:hover{color:#fff}
.actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}

/* ---------- 图标圆底 ---------- */
.icon{
  background:#edf3f7;color:#7798ab;border-radius:12px;
  width:43px;height:43px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;
}
.icon svg{width:23px;height:23px}

/* ---------- 表单 ---------- */
.field{display:block;margin-bottom:15px}
.field>label,.field-label{display:block;font-size:13.5px;font-weight:600;color:var(--text-1);margin-bottom:7px}
.field .hint{font-weight:400;color:var(--text-3);font-size:12px;margin-top:5px}
.input,.field input:not([type]),.field input[type=text],.field input[type=tel],.field input[type=number],
.field input[type=password],.field input[type=date],.field input[type=time],.field input[type=email],
.field select,.field textarea{
  display:block;width:100%;border:1px solid #dce8f1;border-radius:var(--r-3);
  padding:11px 13px;background:#f8fbfd;color:var(--ink);transition:.15s;
}
.input:focus,.field input:focus,.field select:focus,.field textarea:focus{
  border-color:var(--gold);outline:none;box-shadow:0 0 0 3px rgba(172,148,113,.15);background:#fff;
}
textarea{resize:vertical;min-height:96px}
.field-check{display:flex;align-items:flex-start;gap:9px;font-size:13.5px;color:var(--ink-soft);cursor:pointer;margin:10px 0}
.field-check input{margin-top:3px;accent-color:var(--gold-deep)}
.input-group{display:flex;gap:10px}
.input-group .btn{white-space:nowrap}
.form-card{max-width:560px;margin:0 auto}
.form-narrow{max-width:480px;margin:0 auto}
.code-row{display:flex;gap:10px}.code-row .input{flex:1}
.flabel{display:block;font-size:13.5px;font-weight:600;color:var(--text-1);margin:16px 0 8px}
select{
  appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);
  background-position:calc(100% - 18px) 55%,calc(100% - 13px) 55%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;
  padding-right:32px;
}

/* ---------- 面板 / 卡片 ---------- */
.panel{
  background:#fff;border:1px solid #dce5eb;border-radius:var(--r-5);
  box-shadow:0 5px 16px #244a5810;padding:24px;margin:18px 0;
}
.panel-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.panel-title h2,.panel-title h3{font-size:17px;font-weight:600;color:var(--text-1)}
.card{
  background:#fff;border:1px solid #d9e3ea;border-radius:var(--r-4);
  box-shadow:0 6px 18px #244a5814;padding:20px;transition:.2s;
}
a.card:hover,.card.clickable:hover{border-color:var(--line-strong);box-shadow:var(--sh-md)}

/* ---------- 标签 / 徽章 ---------- */
.tags{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.tag{display:inline-block;background:#edf3f7;color:#7c9aac;border-radius:var(--r-2);
  padding:2px 8px;font-size:11px;line-height:1.7;white-space:nowrap}
button.tag,label.tag{
  background:#fff;border:1px solid var(--line);color:var(--ink-soft);
  border-radius:999px;padding:7px 14px;font-size:13px;cursor:pointer;user-select:none;
  display:inline-flex;align-items:center;transition:.12s;margin:0 6px 6px 0;
}
button.tag:hover,label.tag:hover{border-color:var(--gold)}
.tag.selected,.tag.on{background:var(--ink);border-color:var(--ink);color:#fff}
.tag input{accent-color:var(--gold-deep)}

/* ---------- 筛选 chips（智能匹配，与 H5 选中态同义） ---------- */
.mchips{display:flex;flex-wrap:wrap;gap:10px}
.mchip{background:#fff;border:1px solid var(--line);color:var(--ink-soft);
  border-radius:999px;padding:8px 18px;font-size:13.5px;line-height:1.4;cursor:pointer;
  user-select:none;display:inline-flex;align-items:center;transition:.12s;white-space:nowrap}
.mchip:hover{border-color:var(--gold);color:var(--gold-deep)}
.mchip.on{background:#faf3e2;border-color:var(--gold-deep);color:var(--gold-deep);
  font-weight:600;box-shadow:0 0 0 1px var(--gold-deep) inset}
.mchip.on::before{content:'✓';margin-right:6px;font-size:12px;font-weight:700}
.mgroup{margin-bottom:14px}
.mgroup:last-child{margin-bottom:0}
.mgroup-t{font-size:12px;color:var(--text-3);margin:0 0 7px 2px}
.mctx{background:#faf6ec;border:1px solid #e9dcc0;border-left:3px solid var(--gold-deep);
  border-radius:var(--r-2);padding:12px 14px;margin-bottom:18px}
.mctx-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.mctx-t{font-size:13px;color:var(--deep);line-height:1.6}
.mctx small{display:block;margin-top:4px;line-height:1.7}
.badge{display:inline-flex;align-items:center;gap:4px;font-size:12px;padding:2px 9px;border-radius:999px;font-weight:500}
.badge.ok{color:var(--success);background:#e7f3ec}
.badge.warn{color:var(--warn);background:#f5ecd9}
.badge.off{color:var(--text-3);background:var(--mist)}
.badge.danger{color:var(--danger);background:#f7e9e8}
.badge.gold{color:var(--gold-deep);background:#f4ecdd}
.availability{font-size:10px;background:#eaf2f7;color:#7c9bad;border-radius:var(--r-1);padding:3px 7px;white-space:nowrap}
.availability.fullbook{background:#f0f4f6;color:#a1b0b9}
/* 倾听师在线状态徽标 */
.availability.vent-online{background:#e4f2ec;color:#3d7a5f}
.availability.vent-busy{background:#f4ecdd;color:#8f7548}
.availability.vent-paused,.availability.vent-offline{background:#f0f4f6;color:#a1b0b9}
/* 倾听单价/入口：青绿色区别于咨询价 */
.vent-price{color:#3d7a72}
.vent-min{font-size:11px;color:var(--muted)}
.cardfoot .vent-go{background:#e7f0ee;color:#3d7a72}
.annual{font-size:9px;text-align:center;background:#e7eff5;color:#819ead;border-radius:0 0 var(--r-2) var(--r-2);padding:3px}

/* ---------- 头像 / 肖像 ---------- */
.avatar{width:44px;height:44px;border-radius:50%;background:#e5eef4;color:#7a9caf;
  display:inline-flex;align-items:center;justify-content:center;font-weight:500;flex:none;overflow:hidden;font-size:16px}
.avatar img{width:100%;height:100%;object-fit:cover}
.avatar.lg{width:88px;height:88px;font-size:32px}
.avatar.sm{width:32px;height:32px;font-size:12.5px}
/* 订单页快捷入口卡片 */
a.entry-card{display:flex;align-items:center;gap:14px;text-decoration:none;color:inherit;padding:18px 20px;border:1px solid var(--line);border-radius:var(--r-4);transition:border-color .2s,box-shadow .2s}
a.entry-card:hover{border-color:var(--line-strong);box-shadow:0 8px 22px #244a5814}
a.entry-card .entry-ico{width:42px;height:42px;border-radius:12px;background:#faf6ec;display:flex;align-items:center;justify-content:center;font-size:20px}
a.entry-card strong{font-size:15px;color:var(--ink);display:block}
a.entry-card small{font-size:12px;margin-top:2px;display:block}
/* 个人信息行 */
.info-row{display:flex;align-items:center;gap:14px;min-height:56px;padding:10px 0;border-bottom:1px solid #eef2f5}
.info-row:last-child{border-bottom:none}
.info-label{width:72px;flex-shrink:0;font-size:14px;color:#6b8291}
.info-value{flex:1;font-size:14px;color:var(--ink);text-align:right}
.info-row .avatar.lg{margin-left:auto}
.portrait{border-radius:var(--r-2);background:#e7eff4;overflow:hidden;flex:none;position:relative}
.portrait img{width:100%;height:100%;object-fit:cover}
.portrait-fallback{display:flex;width:100%;height:100%;align-items:center;justify-content:center;
  font-size:32px;color:#83a1b4;background:linear-gradient(145deg,#e7eff4,#dbe7ef)}

/* ---------- 价格 ---------- */
.price{color:#9d814f;font-weight:500;font-size:22px;font-family:Georgia,serif}
.price.big{font-size:30px}
.price-unit{color:var(--text-3);font-size:12px;font-weight:400;font-family:var(--sans)}

/* ============================================================
   首页 HOME
   ============================================================ */
.homeheading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0 18px}
.homeheading .eyebrow{font-size:9px;margin:0 0 4px}
.homeheading h2{font-size:30px;font-weight:400;color:#274e61;margin-top:4px}

.searchbar{display:flex;background:#fff;border:1px solid var(--line);border-radius:var(--r-4);
  align-items:center;padding:0 15px;gap:10px;box-shadow:var(--sh-xs);color:#7792a1}
.searchbar svg{width:19px;height:19px}
.searchbar input{flex:1;border:0;outline:0;background:transparent;padding:14px 0;min-width:0;color:#426575}
.searchbar input::placeholder{color:#97a9b4}
.searchbar .btn{margin:6px 0}
.home-search{display:flex;background:#fff;border:1px solid var(--line);border-radius:var(--r-4);
  align-items:center;gap:10px;padding:4px 8px 4px 15px;box-shadow:var(--sh-xs)}
.home-search svg{width:19px;height:19px;color:var(--text-3)}
.home-search input{flex:1;border:0;outline:0;background:transparent;padding:11px 0;min-width:0}

.giftbanner{
  width:100%;display:flex;align-items:center;gap:17px;text-align:left;
  padding:20px 22px;margin:20px 0;border:1px solid #e5dccd;border-radius:var(--r-4);
  background:linear-gradient(100deg,#fbf3e6,#f0e1c6);color:#938064;transition:.2s;
}
.giftbanner:hover{box-shadow:0 6px 18px #907a5812}
.gifticon{padding:12px;border:1px solid #d8c9b0;border-radius:50%;color:#b59d77;display:inline-flex;flex:none}
.gifticon svg{width:24px;height:24px}
.giftbanner small{color:#ac9878;font-size:11px}
.giftbanner h3{font-family:Georgia,serif;font-size:31px;line-height:1.2;color:#8a6d3f;font-weight:500;margin:2px 0}
.giftbanner h3 span{font-family:var(--sans);font-size:15px;margin-left:6px;color:#a69072;font-weight:400}
.giftbanner p{font-size:11px;color:#9d8e78;margin:0}
.giftcta{margin-left:auto;color:#8a6d3f;font-size:12px;white-space:nowrap}

.hero{
  background:var(--hero);color:#fff;border-radius:var(--r-5);position:relative;overflow:hidden;
  min-height:256px;display:flex;align-items:center;margin-top:20px;
  box-shadow:0 14px 34px #173b4726;
}
.hero:before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,#12343cf5 0%,#12343ccd 40%,#12343c00 80%),url("../assets/hero.jpg") center/cover;
}
.hero .copy,.hero .hero-inner{position:relative;z-index:1;padding:30px 40px;width:62%}
.hero .eyebrow{color:#aebfc7;margin-bottom:10px}
.hero h1{color:#fff;font-size:33px;font-weight:400;letter-spacing:.4px;line-height:1.3}
.hero h1 span{color:var(--gold-soft)}
.hero p{color:#c1d1d9;font-size:13px;margin:10px 0 18px;max-width:400px}
.hero .btn.gold{background:#b29a76;border-radius:var(--r-2);box-shadow:0 3px 10px #102e3920}
.hero .btn.gold:hover{background:#a68d67;filter:none}

.assessmententry{
  width:100%;display:flex;text-align:left;align-items:center;gap:16px;
  border:1px solid #dce7ee;background:#edf3f7;padding:20px;margin:20px 0;
  border-radius:var(--r-4);box-shadow:var(--sh-sm);transition:.2s;
}
.assessmententry:hover{box-shadow:0 10px 24px #244a5814}
.assessmententry .icon{background:#e2edf4;color:#789caf}
.assessmententry small{font-size:11px;color:#8ba0ad}
.assessmententry h3{font-size:18px;font-weight:500;color:#365e73;margin:4px 0}
.assessmententry p{font-size:12px;color:#8ca0ad;margin:0}
.assessmententry>span:last-child{margin-left:auto;color:#a28d6b;font-size:25px}

.hotlineentry{
  display:flex;gap:14px;align-items:center;padding:18px 20px;margin:20px 0;
  border:1px solid var(--line);background:#fff;border-radius:var(--r-4);box-shadow:var(--sh-sm);
}
.hotlineentry .icon{background:#edf3f7;color:#80a0b3}
.hotlineentry h3{font-size:16px;font-weight:500;color:#4c7185}
.hotlineentry p{font-size:11px;color:#96a8b4;margin:5px 0 0}
.offlinebadge{font-size:10px;color:#96a8b4;font-weight:400;display:inline-block;margin-left:6px}
.hotlineentry>button{margin-left:auto;font-size:12px;white-space:nowrap}
.hotlineentry>button:hover{color:var(--gold-deep)}

/* 首页三条快捷入口(新人礼包 / 初评 / 热线)合并一行 */
.entrygrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:20px 0}
.entrygrid .giftbanner,.entrygrid .assessmententry,.entrygrid .hotlineentry{margin:0;width:100%;min-width:0}
/* 窄列里礼包大数字与按钮适当收一档,避免挤压折行 */
.entrygrid .giftbanner{padding:18px;gap:14px}
.entrygrid .giftbanner h3{font-size:26px}
.entrygrid .giftbanner h3 span{font-size:13px}
.entrygrid .giftcta{font-size:11px}
.entrygrid .assessmententry>span:last-child{font-size:20px}

.section{margin:38px 0}
.sectiontitle,.section-bar{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:14px;gap:12px}
.sectiontitle h2,.section-bar h2{font-size:28px;font-weight:400;color:#2c5266}
.sectiontitle small{font-size:12px}
.section-bar .help{font-size:13px}

.filters{display:flex;gap:10px;margin:13px 0 18px;flex-wrap:wrap}
.filters select,.actualfilters select,.chip{
  border:1px solid var(--line);background:#ecf2f6;color:#7794a6;
  border-radius:var(--r-3);padding:8px 13px;font-size:13px;
}
.actualfilters{
  display:flex;gap:10px;flex-wrap:wrap;
  position:sticky;top:var(--topbar-h);z-index:12;
  background:var(--bg);padding:10px 0;margin:6px 0 16px;
}
.actualfilters select{flex:1;max-width:170px;min-width:0;padding:9px 13px}
.actualfilters .chip{flex:0 0 auto;max-width:none}
.chip{cursor:pointer}
.chip:hover{border-color:var(--gold);color:var(--gold-deep)}
.chip.active{background:var(--ink);border-color:var(--ink);color:#fff}
.chip-remove{font-size:11px;color:var(--text-3);margin-left:6px}

/* 快捷入口（兼容） */
.quickbar{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}
.quick-entry{background:#fff;border:1px solid var(--line);border-radius:var(--r-4);padding:20px;
  display:flex;gap:13px;align-items:center;transition:.2s;text-align:left}
.quick-entry:hover{box-shadow:var(--sh-md);border-color:var(--line-strong)}
.quick-entry .qe-icon{width:46px;height:46px;border-radius:12px;background:var(--mist);color:var(--ink-soft);
  display:flex;align-items:center;justify-content:center;flex:none}
.quick-entry .qe-icon.gold{background:#f4ecdd;color:var(--gold-deep)}
.quick-entry .qe-icon svg{width:23px;height:23px}
.quick-entry h3{font-size:15px;font-weight:500;margin-bottom:2px;color:var(--text-1)}
.quick-entry p{font-size:12px;color:var(--text-3);margin:0}

/* ---------- 咨询师真实卡片 realcard ---------- */
.cards,.counselor-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;align-items:stretch}
a.card.realcard,.card.realcard,.ccard{
  display:flex;gap:16px;padding:22px;height:100%;
}
.realcard:hover,.ccard:hover{border-color:var(--line-strong);box-shadow:0 16px 38px #244a5822}
.photoblock{flex-shrink:0;width:85px}
.photoblock .portrait{width:85px;height:110px}
.realcard .personinfo,.ccard .cc-body{min-width:0;flex:1;display:flex;flex-direction:column}
.namebar{display:flex;align-items:center;justify-content:space-between;gap:8px}
.namebar h3{font-size:19px;font-weight:500;color:#2c5368;display:inline-flex;align-items:center;gap:7px}
.namebar small{font-size:10px;color:#a0b1bd}
.realcard .cred,.ccard .cred{font-size:11px;color:#819baa;margin:6px 0 0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.experience,.ccard .exp{font-size:11px;color:#8ca2b0;margin-top:6px}
.cardfoot,.ccard .cc-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:10px}
.cardfoot .btn,.ccard .cc-foot .btn{font-size:12px;padding:8px 14px;border-radius:var(--r-2);background:#284f61}
.realcard .price{font-size:22px}
.cardfoot small{font-size:11px}
.personalquote{font-size:12px;line-height:1.7;color:#98a084;border-top:1px solid #edf2f5;padding-top:12px;margin-top:auto}
.realcard .personalquote{margin-top:auto}
.realcard:has(.personalquote) .cardfoot{margin-bottom:0}
.ccard .quote{font-size:12px;line-height:1.7;color:#98a084;border:0;background:none;padding:0;margin:8px 0 0;font-family:var(--sans)}
.ccard .portrait{width:85px;height:110px}
.snapshotnote{font-size:10px;color:#9aaebc;margin-top:12px}

/* 筛选栏（兼容旧 filterbar） */
.filterbar{background:#fff;border:1px solid var(--line);border-radius:var(--r-5);padding:16px 20px;
  display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:18px;box-shadow:var(--sh-xs)}
.filterbar select,.filterbar .input{width:auto;min-width:128px;padding:9px 30px 9px 12px;border-radius:var(--r-3)}
.filterbar .search-mini{flex:1;min-width:200px;border:1px solid var(--line);border-radius:var(--r-3);padding:9px 13px;background:#f8fbfd}

.softfooter{padding:24px 0;display:flex;gap:14px;align-items:center;color:#6d8da1}
.softfooter .icon{background:#edf3f7;color:#83a1b2}
.softfooter h3{font-size:14px;font-weight:500;color:#52788e}
.softfooter p{font-size:11px;color:#9aaebb;margin:2px 0 0}
.softfooter button{margin-left:auto;white-space:nowrap}
.softfooter>span{color:#91a8b8}

.notice{font-size:12px;color:#9aadb9;border-top:1px solid #e0e8ee;padding:22px 0;margin-top:30px;
  display:flex;justify-content:space-between;gap:15px;align-items:center;flex-wrap:wrap}

/* 服务区（设计稿 services） */
.services{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-top:22px}
.service{background:#fff;border:1px solid var(--line);border-radius:var(--r-4);display:flex;align-items:center;
  gap:13px;padding:20px;text-align:left;transition:.2s}
.service:hover{border-color:var(--line-strong);box-shadow:var(--sh-md)}
.service small{display:block;font-size:11px;margin-top:3px}

/* ============================================================
   咨询师详情 DETAIL
   ============================================================ */
.subhead{display:flex;align-items:center;gap:12px;margin:18px 0 20px}
.subhead h2{font-size:22px}
.subhead h3{font-size:17px;font-weight:500;color:#426a81}
.back{border:1px solid #dfe9f0;border-radius:50%;width:36px;height:36px;background:#fff;
  display:inline-flex;align-items:center;justify-content:center;color:#86a4b7;font-size:20px;flex:none}
.back:hover{border-color:var(--gold);color:var(--gold-deep)}

.panel.detailtop{display:grid;grid-template-columns:1fr 280px;gap:30px;padding:26px}
.detailbio{display:flex;gap:24px;align-items:center}
.detailbio .portrait{width:126px;height:158px}
.detailbio .portrait img{object-position:center top}
.detailbio h1{font-size:34px;font-weight:400;color:#244e65;margin:6px 0 4px}
.detailbio small{font-size:12px;color:#98afbd}
.detailbio .cred{font-size:11px;color:#7898ac;margin:8px 0}
.detailstats{display:grid;grid-template-columns:repeat(3,1fr);background:#edf3f7;border-radius:var(--r-4);
  padding:18px;text-align:center;margin:20px 0;gap:8px}
.detailstats strong{display:block;font:400 24px Georgia,serif;color:#406a83}
.detailstats strong small{font-size:13px}
.detailstats small{font-size:10px;color:#95adbd}
.detailstats span{font-size:11px;color:#819ead}
.quote{border-left:3px solid #bca782;padding:12px 20px;background:#f4f7f9;margin:20px 0;
  font-family:var(--sans);font-size:20px;line-height:1.7;color:#6f91a6;font-weight:400;border-radius:0 var(--r-2) var(--r-2) 0}

.detailbook{min-width:0}
.detailbook .price{font-size:26px}
.detailbook>p{margin:10px 0}
.detailbook .menurow{
  padding:12px 14px;margin-bottom:10px;
  border:1.5px solid var(--line);border-radius:var(--r-3);
  background:#fff;cursor:pointer;
  transition:border-color .15s,background .15s,box-shadow .15s;
}
.detailbook .menurow:last-of-type{margin-bottom:0}
.detailbook .menurow:hover{border-color:var(--line-strong);background:#f7fafc}
.detailbook .menurow input[type="radio"]{
  appearance:none;-webkit-appearance:none;
  width:18px;height:18px;flex:none;
  border:2px solid #bcccd6;border-radius:50%;background:#fff;
  position:relative;cursor:pointer;transition:border-color .15s;
}
.detailbook .menurow input[type="radio"]:checked{border-color:var(--ink)}
.detailbook .menurow input[type="radio"]:checked::after{
  content:"";position:absolute;inset:3px;border-radius:50%;background:var(--ink);
}
.detailbook .menurow:has(input:checked){
  border-color:var(--ink);background:var(--mist);
  box-shadow:0 2px 10px rgba(36,74,88,.12);
}
.detailbook .menurow:has(input:checked) strong{color:var(--ink)}
.detailbook .menurow .mr-icon{display:none}

.twocol{display:grid;grid-template-columns:1.65fr 1fr;gap:22px;align-items:start}
.tabs,.tabbar{display:flex;border-bottom:1px solid #e0e9ef;gap:26px;margin-bottom:20px;overflow-x:auto;scrollbar-width:thin}
.tabs button,.tabbar button{padding:10px 0;font-size:14px;color:#91aaba;border-bottom:2px solid transparent;margin-bottom:-1px;flex-shrink:0;background:none}
.tabs button:hover,.tabbar button:hover{color:var(--ink)}
.tabs button.active,.tabbar button.active{border-bottom-color:#b4a07c;color:#345f79;font-weight:500}
.prose{font-size:14.5px;line-height:1.85;color:var(--text-2)}
.prose p{margin:13px 0;color:#819eaf}
.prose h3{margin:20px 0 8px;color:#416b85;font-weight:500;font-size:15px;font-family:var(--sans)}
.prose ul{padding-left:20px;margin:8px 0}
.prose .muted-note{background:var(--bg);border-radius:var(--r-3);padding:14px 16px;font-size:13px;color:var(--text-3);margin-top:14px}

.slots{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}
.slot{border:1px solid #dbe8f1;border-radius:var(--r-3);padding:10px;background:#f8fbfd;color:#8aa9bd;text-align:center;font-size:13px}
/* 可约时段:白底深字+指针,与"已约"置灰态明确区分(此前 .has 无样式,看起来整排不可点) */
.slot.has{background:#fff;color:var(--ink);border-color:#c8d7e3;cursor:pointer;font-weight:600}
.slot:hover:not(:disabled){border-color:var(--gold);color:var(--gold-deep)}
.slot.active,.slot.selected{background:#345e7a;color:#fff;border-color:#345e7a}
.slot:disabled{color:#b7c8d4;background:#f4f8fb;cursor:not-allowed}
.calendarstrip{display:flex;overflow:auto;gap:8px;padding-bottom:7px;margin:15px 0}
.calendarstrip button{flex:0 0 66px;border:1px solid var(--line);border-radius:var(--r-3);padding:9px 4px;background:#fff;font-size:12px;color:var(--ink-soft)}
.calendarstrip button.active{background:var(--ink);color:#fff}
.detailactions{display:flex;gap:9px;margin:18px 0 4px}
.detailactions .btn{flex:1}
.detail-hero{display:flex;gap:24px}
.detail-hero .portrait{width:120px;height:150px}
.detail-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.detail-stats strong{display:block;font-size:24px;font-family:Georgia,serif;color:#406a83;font-weight:400}
.detail-stats span{font-size:11px;color:#819ead}
.detail-stats small{color:var(--text-3);font-size:12px}
.detail-quote{font-family:var(--sans);font-size:18px;color:#6f91a6;margin-top:16px;line-height:1.7}
.book-panel{position:sticky;top:calc(var(--topbar-h) + 20px)}

/* ============================================================
   咨询师详情 · 内容层级优化（名片 / 简历小节 / 引导栏 / 评价）
   ============================================================ */
/* ---- 顶部名片：姓名 / 性别 / 职称 ---- */
.detailbio .ct-meta{min-width:0;flex:1}
.ct-idline{display:flex;align-items:center;gap:12px;margin:4px 0 0;flex-wrap:wrap}
.detailbio h1.ct-name{font-size:30px;font-weight:600;color:var(--deep);margin:0;letter-spacing:1px}
.ct-gender{display:inline-flex;align-items:center;font-size:12px;font-weight:500;
  padding:3px 11px;border-radius:999px;background:var(--mist);color:#4d6b78;letter-spacing:.5px}
.ct-gender.m{background:#e6eef3;color:#3a6078}
.ct-gender.f{background:#f7eceb;color:#965f5e}
.ct-role{display:flex;align-items:flex-start;gap:7px;margin:9px 0 0;
  font-size:13.5px;font-weight:500;color:var(--ink-soft);line-height:1.7}
.ct-role svg{width:15px;height:15px;color:var(--gold-deep);flex:none;margin-top:3px}
.ct-issues{display:flex;align-items:center;gap:7px;margin:9px 0 0;
  font-size:12.5px;font-weight:500;color:var(--gold-deep);line-height:1.6}
.ct-issues svg{width:14px;height:14px;flex:none}
.ct-hl{margin-top:11px}
.tag.hl{background:#f6efe2;color:#87683f;border:1px solid #e6d7ba;
  border-radius:999px;padding:3px 12px;font-size:12px;line-height:1.7}
.ct-actions{margin-top:14px}

/* ---- 简历小节 ---- */
.rs{padding:20px 0;border-top:1px dashed var(--line-strong)}
.rs:first-child{border-top:0;padding-top:2px}
.rs-h{display:flex;align-items:center;gap:10px;margin:0 0 13px;
  font-size:15.5px;font-weight:600;color:var(--deep);letter-spacing:.5px}
.rs-ic{flex:none;display:inline-flex;align-items:center;justify-content:center;
  width:28px;height:28px;border-radius:8px;background:#f3ead9;color:var(--gold-deep)}
.rs-ic svg{width:15px;height:15px}
.rs-b{font-size:14px;color:var(--ink-soft);line-height:1.8}
.rs-b p{color:var(--ink-soft)}
.tagrow{margin:0}

/* ---- 介绍叙事块 ---- */
.ribs{display:flex;flex-direction:column;gap:10px}
.rib{background:#f8fbfc;border:1px solid #e8eff4;border-radius:var(--r-4);padding:13px 16px}
.rib-lead{background:#f2f7fa;border-color:#e0eaf1}
.rib-label{position:relative;padding-left:11px;margin-bottom:7px;
  font-size:12.5px;font-weight:600;color:var(--gold-deep);letter-spacing:1.5px}
.rib-label:before{content:"";position:absolute;left:0;top:3px;bottom:3px;width:3px;border-radius:2px;background:var(--gold-soft)}
.rib-text{font-size:14px;line-height:1.95;color:#3d5c6e;white-space:pre-wrap}

/* ---- 信息行（资质 / 学历 / 受训） ---- */
.infolist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.inforow{display:flex;gap:12px;align-items:flex-start;
  background:#f8fbfc;border:1px solid #e9f0f4;border-radius:var(--r-3);padding:11px 14px}
.info-ic{flex:none;width:30px;height:30px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;
  background:var(--mist);color:#5d7e92}
.info-ic.info-gold{background:#f4ecdd;color:var(--gold-deep)}
.info-ic svg{width:16px;height:16px}
.info-main{min-width:0}
.info-main strong{display:block;font-size:13.5px;font-weight:600;color:var(--deep);line-height:1.5}
.info-main small{display:block;font-size:12px;color:var(--text-3);margin-top:2px;line-height:1.5}

/* ---- 擅长领域 ---- */
.tag.warm{background:#f6efe2;color:#87683f;border:1px solid #e6d7ba;
  border-radius:999px;padding:4px 13px;font-size:12.5px;line-height:1.6;font-weight:500}
.specwrap{display:flex;flex-direction:column;gap:9px}
.specgroup{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.sg-items{font-size:13.5px;color:var(--ink-soft);line-height:1.7}

/* ---- 咨询过程步骤 ---- */
.proclist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;counter-reset:proc}
.proclist li{display:flex;gap:13px;align-items:flex-start;
  background:#f8fbfc;border:1px solid #e9f0f4;border-radius:var(--r-3);padding:13px 15px;counter-increment:proc}
.proc-num{flex:none;width:25px;height:25px;border-radius:50%;background:var(--ink);color:#fff;
  font-size:12.5px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;margin-top:1px}
.proc-num:before{content:counter(proc)}
.proclist p{margin:0;font-size:14px;line-height:1.85;color:#3d5c6e}

/* ---- 不擅长提示 ---- */
.notebox{display:flex;gap:12px;align-items:flex-start;border-radius:var(--r-4);padding:13px 16px}
.notebox.warn{background:#faf4e7;border:1px solid #ecdcb9}
.nb-ic{flex:none;width:30px;height:30px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;
  background:#f0e1c0;color:#8f703a}
.nb-ic svg{width:16px;height:16px}
.notebox strong{font-size:13.5px;font-weight:600;color:#7d6236}
.notebox p{margin:3px 0 0;font-size:13px;line-height:1.8;color:#8a7450}

/* ---- 资质证书 ---- */
.certgrid img.panel{width:100%;height:130px;object-fit:cover;padding:0;cursor:zoom-in;transition:.2s}
.certgrid img.panel:hover{border-color:var(--gold-soft);box-shadow:var(--sh-sm)}

/* ---- 工作照片画廊(个人简历内,竖图友好) ---- */
.work-photos{display:flex;flex-direction:column;gap:12px}
.wp-stage{display:flex;justify-content:center;align-items:center;
  height:440px;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-4);overflow:hidden}
.wp-stage img{max-height:100%;max-width:100%;height:auto;width:auto;
  display:block;cursor:zoom-in;transition:transform .2s;border-radius:2px}
.wp-stage img:hover{transform:scale(1.01)}
.wp-thumbs{display:flex;gap:10px;flex-wrap:wrap}
.wp-thumbs img{width:84px;height:112px;object-fit:cover;object-position:center top;
  border-radius:var(--r-2);border:2px solid var(--line);cursor:pointer;
  background:var(--bg);transition:border-color .15s,opacity .15s;opacity:.75}
.wp-thumbs img:hover{opacity:1;border-color:var(--gold-soft)}
.wp-thumbs img.active{opacity:1;border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}

/* ---- 右侧引导栏 ---- */
.guidepanel{background:linear-gradient(180deg,#fdfbf5 0,#fff 42%);border-color:#e4dccb}
.gp-head{display:flex;align-items:center;gap:11px;margin-bottom:16px}
.gp-head h3{margin:0;font-size:16px;font-weight:600;color:var(--deep)}
.gp-ic{flex:none;width:34px;height:34px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;
  background:#f4ecdd;color:var(--gold-deep)}
.gp-ic svg{width:18px;height:18px}
.gsteps{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:10px}
.gsteps li{display:flex;gap:12px;align-items:flex-start;
  background:#faf8f2;border:1px solid #eee7d7;border-radius:var(--r-3);padding:12px 14px}
.gs-num{flex:none;width:24px;height:24px;border-radius:50%;margin-top:1px;
  background:var(--gold-deep);color:#fff;font-size:12.5px;font-weight:600;display:inline-flex;align-items:center;justify-content:center}
.gsteps p{margin:0;font-size:13.5px;line-height:1.7;color:#5d6a62}
.safetybox{display:flex;gap:12px;align-items:flex-start;margin-top:18px;
  background:#f1f6f8;border:1px solid #dde9ee;border-radius:var(--r-4);padding:14px 16px}
.sb-ic{flex:none;width:30px;height:30px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;
  background:#dde9ef;color:#3f6880}
.sb-ic svg{width:16px;height:16px}
.safetybox strong{font-size:13.5px;font-weight:600;color:var(--deep)}
.safetybox p{margin:4px 0 0;font-size:12.5px;line-height:1.85;color:#62808f}

/* ---- 用户评价卡片 ---- */
.rv-count{margin-bottom:12px}
.rvlist{display:flex;flex-direction:column;gap:12px}
.rvcard{background:#f8fbfc;border:1px solid #e7eef3;border-radius:var(--r-4);padding:15px 17px}
.rv-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.rv-user{display:flex;gap:10px;align-items:center}
.rv-ava{flex:none;width:34px;height:34px;border-radius:50%;background:var(--ink);color:#fff;
  font-size:14px;font-weight:500;display:inline-flex;align-items:center;justify-content:center}
.rv-user strong{font-size:13.5px;color:var(--deep);font-weight:600}
.rv-stars{font-size:12px;color:var(--gold-deep);margin-top:2px;letter-spacing:1px}
.rv-stars .rv-empty{color:#d3dde3}
.rv-stars small{color:var(--text-3);margin-left:9px;letter-spacing:0;font-weight:400}
.rv-tags{margin:10px 0 0}
.rv-text{margin:10px 0 0;font-size:13.5px;line-height:1.85;color:#3d5c6e;white-space:pre-wrap}
.rv-reply{margin-top:11px;background:#fff;border:1px solid var(--line);border-radius:var(--r-3);padding:10px 13px}
.rvr-label{display:inline-block;font-size:11px;color:var(--gold-deep);background:#f4ecdd;
  border-radius:4px;padding:1px 8px;margin-bottom:5px}
.rv-reply p{margin:0;font-size:13px;line-height:1.8;color:var(--ink-soft)}

/* ============================================================
   自助工具 TOOLS
   ============================================================ */
.toolhero{padding:26px 0 18px}
.toolhero h1{font-size:38px;font-weight:400;color:#29566f}
.toolhero p{margin-top:10px;color:#94adbd;font-size:14px}
.toolgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.tool{padding:26px 24px;background:#fff;border-radius:var(--r-4);border:1px solid #dfe9f0;
  box-shadow:0 3px 12px #21495904;text-align:left;display:block;transition:.2s}
.tool:hover{border-color:var(--line-strong);box-shadow:var(--sh-md)}
.tool .icon{margin-bottom:15px}
.tool h3{font-size:17px;font-weight:500;color:#527e98}
.tool p{font-size:13px;color:#96aebe;margin:7px 0}
.tool em{font-style:normal;font-size:12px;color:#ac9878}
.meditation{background:#244d62;color:#fff;border-radius:var(--r-5);display:flex;justify-content:space-between;
  align-items:center;padding:34px;margin-top:20px;gap:30px;overflow:hidden;box-shadow:0 4px 15px #21495905}
.meditation small{color:var(--gold-soft)}
.meditation h2{color:#edf5f9;font-size:23px;font-weight:400;margin:8px 0 10px}
.meditation p{color:#b8cedb;font-size:13px;margin:0 0 18px}
.meditation .btn.gold{background:#af9674}
.breath,.breath-circle{
  width:125px;height:125px;border:1px solid #9bbacb;border-radius:50%;color:#c5d8e4;
  box-shadow:0 0 0 15px #a8c2d012,0 0 0 30px #a8c2d008;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;text-align:center;font-size:13px;
}
button.breath{background:transparent;font:inherit;cursor:pointer;padding:0}
.breath.running,.breath-circle.running{animation:breathe 8s infinite ease-in-out}
@keyframes breathe{0%,100%{transform:scale(.92)}50%{transform:scale(1.15);box-shadow:0 0 0 25px #ffffff0b}}

/* 兼容旧工具页样式 */
.tools-hero{background:linear-gradient(120deg,#1f4554,#2b5a68);color:#fff;border-radius:var(--r-5);
  padding:40px 42px;margin-bottom:20px;position:relative;overflow:hidden}
.tools-hero:after{content:"";position:absolute;right:-80px;top:-80px;width:320px;height:320px;border-radius:50%;
  background:radial-gradient(circle,rgba(180,154,118,.32),transparent 70%)}
.tools-hero>*{position:relative}
.tools-hero h1{color:#fff;font-size:34px;font-weight:400}
.tools-hero p{color:#c1d3dc;margin-top:12px;max-width:600px}
.tool-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.tool-card{background:#fff;border:1px solid #dfe9f0;border-radius:var(--r-4);padding:24px;text-align:left;
  transition:.2s;display:flex;flex-direction:column;box-shadow:0 3px 12px #21495904}
.tool-card:hover{box-shadow:var(--sh-md);border-color:var(--line-strong)}
.tool-card .tc-icon,.tool-card .qe-icon{width:50px;height:50px;border-radius:12px;background:var(--mist);
  display:flex;align-items:center;justify-content:center;margin-bottom:15px;color:#85a8bf}
.tool-card .tc-icon.gold,.tool-card .qe-icon.gold{background:#f4ecdd;color:var(--gold-deep)}
.tool-card .tc-icon svg,.tool-card .qe-icon svg{width:24px;height:24px}
.tool-card h3{font-size:17px;font-weight:500;color:#527e98;margin-bottom:6px}
.tool-card p{font-size:13px;color:#96aebe;min-height:40px}
.tool-card em{font-style:normal;color:var(--gold-deep);font-size:13px;font-weight:500}

/* 测评 */
.assess-card{display:block;position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r-4);
  padding:22px 24px;transition:.2s}
.assess-card:hover{box-shadow:var(--sh-md);border-color:var(--line-strong)}
.assess-card h3{font-size:17px;font-weight:500;margin-bottom:8px;color:var(--text-1)}
.assess-card p{font-size:13px;color:var(--text-3);line-height:1.7;min-height:44px;margin-bottom:12px}
.quiz-option{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:var(--r-3);
  padding:15px 18px;margin-bottom:12px;background:#fff;transition:.12s;font-size:14px}
.quiz-option:hover{border-color:var(--gold);background:#fcf9f3}
.quiz-option.selected{border-color:var(--ink);background:var(--mist);font-weight:600}
/* 复合题（基本信息 / LES 等多部件表单）：部件纵向分组，组内短选项自动分栏 */
.quiz-parts{display:flex;flex-direction:column}
.quiz-part + .quiz-part{margin-top:18px;padding-top:18px;border-top:1px dashed var(--line)}
.quiz-part-label{font-size:14px;font-weight:600;margin-bottom:10px}
.quiz-part-label .req{color:#b0554f;margin-right:4px}
.quiz-opts{display:flex;flex-direction:column;gap:10px}
.quiz-opts .quiz-option{margin-bottom:0}
.quiz-opts.c2,.quiz-opts.c3{flex-direction:row;flex-wrap:wrap}
.quiz-opts.c2 .quiz-option{width:auto;flex:1 1 calc((100% - 10px)/2);min-width:9em;padding:11px 14px}
.quiz-opts.c3 .quiz-option{width:auto;flex:1 1 calc((100% - 20px)/3);min-width:6.5em;padding:11px 12px}
@media (max-width:560px){
  .quiz-opts.c3 .quiz-option{flex-basis:calc((100% - 10px)/2);min-width:7em}
}
.progress{height:6px;background:#eaf2f8;border-radius:999px;overflow:hidden;margin:6px 0}
.progress i,.progress>div{display:block;height:100%;background:var(--gold-deep);border-radius:999px;transition:.3s}

/* 情绪日记 */
.mood-picker{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}
.mood-btn{border:1px solid var(--line);background:#fff;border-radius:var(--r-4);padding:14px 22px;font-size:15px;text-align:center;min-width:96px}
.mood-btn .mood-emoji{display:block;font-size:26px;margin-bottom:4px}
.mood-btn.active{border-color:var(--gold);background:#faf6ec;box-shadow:0 0 0 2px rgba(143,117,72,.18)}
.mood-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}
.mood-day{aspect-ratio:1/1;border-radius:var(--r-3);background:var(--bg);display:flex;flex-direction:column;
  align-items:center;justify-content:center;font-size:12px;color:var(--text-3);position:relative}
.mood-day.has{color:var(--ink);font-weight:600}
.mood-day .mood-dot{width:8px;height:8px;border-radius:50%;margin-top:3px}
.mood-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:7px}
.mood-cell{aspect-ratio:1;border-radius:var(--r-3);background:var(--bg);display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:2px;color:var(--text-3);font-size:11px}
.mood-cell small{font-size:10.5px}
.mood-cell.has{background:#fff;border:1px solid var(--line);cursor:pointer;transition:.12s}
.mood-cell.has:hover{border-color:var(--gold)}
.mood-entry{display:flex;align-items:center;gap:13px;padding:12px 4px;border-bottom:1px dashed var(--line)}
.mood-entry:last-child{border-bottom:0}
.me-face{width:44px;height:44px;border-radius:var(--r-4);display:flex;align-items:center;justify-content:center;font-size:21px;flex:none}
.me-ops{display:flex;gap:2px;opacity:.5;transition:.15s}
.mood-entry:hover .me-ops{opacity:1}
.me-ops .iconbtn{width:30px;height:30px;font-size:16px}
.mood-levels{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.ml-item{display:flex;flex-direction:column;align-items:center;gap:3px;padding:11px 4px;border:1px solid var(--line);
  border-radius:var(--r-4);background:#fff;transition:.12s;cursor:pointer}
.ml-item:hover{border-color:var(--gold)}
.ml-item small{font-size:12px;color:var(--text-3)}

/* 放松音频 */
.track-row{display:flex;align-items:center;gap:16px;padding:16px 6px;border-bottom:1px solid var(--line)}
.track-row:last-child{border-bottom:0}
.track-play{width:46px;height:46px;border-radius:50%;background:var(--ink);color:#fff;display:flex;
  align-items:center;justify-content:center;flex:none}
.track-play.playing{background:var(--gold-deep)}
.track-meta{flex:1}.track-meta h4{font-size:15px}
.track-meta small{color:var(--text-3)}
.track-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-4);overflow:hidden;cursor:pointer;transition:.2s}
.track-card:hover{box-shadow:var(--sh-md)}
.tc-cover{height:150px;background:linear-gradient(135deg,#2c555f,#183f47);background-size:cover;background-position:center;
  position:relative;display:flex;align-items:center;justify-content:center}
.tc-play{width:54px;height:54px;border-radius:50%;background:rgba(255,255,255,.88);color:var(--deep);
  display:flex;align-items:center;justify-content:center;transition:.16s}
.tc-play svg{width:22px;height:22px;margin-left:3px}
.track-card:hover .tc-play{transform:scale(1.08);background:#fff}

/* ============================================================
   个人中心 PROFILE
   ============================================================ */
.profilehero{
  padding:30px;background:linear-gradient(120deg,#214754,#365f74);color:#fff;
  border-radius:var(--r-5);display:flex;justify-content:space-between;align-items:center;gap:16px;
  box-shadow:0 4px 16px #21495908;
}
.profilehero .person{display:flex;align-items:center;gap:17px;min-width:0}
.profilehero .avatar{width:64px;height:64px;font-size:26px;background:rgba(255,255,255,.18);color:#fff}
.profilehero small{color:#b7cdd9}
.profilehero h2{font-size:23px;color:#f1f6fa;font-weight:400;overflow-wrap:anywhere}
.profilehero .person>div:last-child{min-width:0}
.profileguest{background:#254b5c;color:#fff;border-radius:var(--r-5);padding:25px;display:flex;align-items:center;gap:16px;
  box-shadow:0 4px 16px #21495908}
.profileguest small{color:#b7cdd9}
.profileguest h2{color:#f0f5f9;font-weight:400;font-size:23px}
.profileguest .avatar{background:rgba(255,255,255,.18);color:#fff}
.profileguest button{margin-left:auto}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}
.stats button{background:#fff;padding:20px;border:1px solid var(--line);border-radius:var(--r-4);box-shadow:var(--sh-xs);transition:.15s}
.stats button:hover{border-color:var(--line-strong);box-shadow:var(--sh-sm)}
.stats strong{display:block;font-size:24px;font-family:Georgia,serif;color:#426f88;font-weight:400}
.stats small{font-size:12px;color:#96aebe}
.walletrow{display:grid;grid-template-columns:repeat(4,1fr);text-align:center;gap:8px;margin:14px 0}
.walletrow button{padding:12px 4px;border-radius:var(--r-3);background:transparent;transition:.15s}
.walletrow button:hover{background:var(--mist)}
.walletrow svg{display:block;margin:0 auto 8px;color:#b19b78;width:22px;height:22px}
.walletrow strong{display:block;font-size:17px;font-family:Georgia,serif;color:var(--text-1)}
.walletrow small{display:block;font-size:11px;color:#93aabb}
.orderstatus{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:12px 0}
.orderstatus button{padding:10px 0;background:#f0f5f8;border-radius:var(--r-3);font-size:11px;color:#8ba8ba;transition:.15s}
.orderstatus button:hover{background:#e5edf2;color:var(--ink-soft)}
.orderstatus svg{display:block;margin:0 auto 5px;width:20px;height:20px;color:#83a5bb}
.orderstatus strong{display:block;font-size:17px;font-family:Georgia,serif;color:var(--text-1)}
.profilegroup{padding:4px 0}
.profilegroup .groupheading,.profile-menu-group h4{
  font-size:12px;color:#8ca4b5;margin:0 0 6px;letter-spacing:1.5px;font-weight:400;padding:10px 8px 4px;
}
.menurow{
  display:flex;align-items:center;gap:12px;width:100%;text-align:left;
  padding:15px 8px;border-bottom:1px solid #edf3f7;border-radius:var(--r-2);font-size:14px;color:#5d839a;
  background:transparent;transition:.15s;
}
.menurow:last-child{border-bottom:0}
.menurow:hover{background:var(--bg)}
.menurow .mr-icon{width:34px;height:34px;border-radius:var(--r-3);background:var(--mist);display:inline-flex;
  align-items:center;justify-content:center;flex:none;color:#7798ab}
.menurow .mr-icon.gold{background:#f4ecdd;color:var(--gold-deep)}
.menurow .mr-icon svg{width:18px;height:18px}
.menurow .mr-arrow{margin-left:auto;color:#b1c3d1}
.menurow>span:last-child{color:#b1c3d1}

/* 个人中心旧版别名（其他页面可能引用） */
.profile-hero{background:linear-gradient(120deg,#214754,#365f74);color:#fff;border-radius:var(--r-5);
  padding:30px;display:flex;align-items:center;justify-content:space-between;gap:16px;margin:18px 0}
.profile-hero .ph-left{display:flex;align-items:center;gap:18px}
.profile-hero .avatar{width:68px;height:68px;font-size:26px;background:rgba(255,255,255,.18);color:#fff}
.profile-hero h2{color:#fff;font-size:23px;font-weight:400}
.profile-hero small{color:#b7cdd9}
.profile-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.profile-stats button{padding:20px;text-align:center;background:#fff;border:1px solid var(--line);border-radius:var(--r-4);box-shadow:var(--sh-xs)}
.profile-stats strong{display:block;font-size:24px;font-family:Georgia,serif;color:#426f88;font-weight:400}
.profile-stats small{color:#96aebe;font-size:12px}
.order-stat{display:block;transition:.15s}
.order-stat:hover{filter:brightness(.97)}
.wallet-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.wallet-tile{background:#fff;border:1px solid var(--line);border-radius:var(--r-4);padding:20px;text-align:center;box-shadow:var(--sh-xs);transition:.15s}
.wallet-tile:hover{border-color:var(--line-strong)}
.wallet-tile .wt-icon{width:42px;height:42px;border-radius:12px;background:var(--mist);display:flex;
  align-items:center;justify-content:center;margin:0 auto 10px;color:#b19b78}
.wallet-tile strong{display:block;font-size:18px;font-family:Georgia,serif;color:var(--text-1)}
.wallet-tile small{color:var(--text-3)}
.status-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.status-tile{border:1px solid var(--line);border-radius:var(--r-4);padding:16px;text-align:center;background:#fff;transition:.15s}
.status-tile:hover{border-color:var(--gold)}
.status-tile strong{display:block;font-size:22px;font-family:Georgia,serif;color:var(--text-1);font-weight:400}
.status-tile small{color:var(--text-3);font-size:12px}

/* ---------- 订单 / 表格 ---------- */
.order{display:flex;justify-content:space-between;gap:12px;padding:17px 0;border-bottom:1px solid var(--line)}
.order strong{display:block;color:#4c7994;font-weight:500}
.order small,.order .mini{color:#98b0c0}
.order-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-4);padding:20px 22px;margin-bottom:14px;box-shadow:var(--sh-xs)}
.order-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:10px;flex-wrap:wrap}
.order-body{display:flex;gap:16px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.order-body .portrait{width:72px;height:72px;border-radius:var(--r-3)}
.order-foot{display:flex;align-items:center;justify-content:space-between;margin-top:14px;gap:10px;flex-wrap:wrap}
.table-wrap{background:#fff;border:1px solid var(--line);border-radius:var(--r-4);overflow:auto;box-shadow:var(--sh-xs)}
table.data{width:100%;border-collapse:collapse;font-size:13.5px}
table.data th{background:var(--bg);text-align:left;padding:12px 16px;font-weight:600;color:var(--ink-soft);white-space:nowrap;font-size:13px}
table.data td{padding:13px 16px;border-top:1px solid var(--line);vertical-align:middle}
table.data tr:hover td{background:#fbfdfd}
.info-table{width:100%;border-collapse:collapse;font-size:14px}
.info-table td{padding:11px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.info-table td:first-child{color:var(--text-3);width:120px;white-space:nowrap}

/* ---------- 空状态 / 加载 ---------- */
.empty{text-align:center;color:#9eb2c2;padding:48px 20px}
.empty .empty-icon{width:70px;height:70px;border-radius:50%;background:var(--mist);display:flex;
  align-items:center;justify-content:center;margin:0 auto 14px;color:#7798ab}
.empty .empty-icon svg{width:32px;height:32px}
.empty h3{color:var(--text-1);margin-bottom:6px;font-weight:500}
.empty .btn{margin-top:16px}
.skeleton{background:linear-gradient(90deg,#eef3f6 25%,#e2ebef 37%,#eef3f6 63%);background-size:400% 100%;
  animation:sk 1.4s ease infinite;border-radius:var(--r-3)}
@keyframes sk{0%{background-position:100% 50%}100%{background-position:0 50%}}
.sk-line{height:14px;margin:10px 0}
.sk-card{height:200px;border-radius:var(--r-4)}
.spinner{border-radius:50%;animation:spin .9s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- 弹窗 / 抽屉 / Toast ---------- */
.overlay{position:fixed;inset:0;background:#17374655;backdrop-filter:blur(5px);z-index:100;
  display:flex;align-items:flex-start;justify-content:center;padding:60px 20px;overflow:auto}
.overlay[hidden],.drawer-overlay[hidden]{display:none}
.modal{background:#fff;border-radius:var(--r-6);width:100%;max-width:520px;box-shadow:var(--sh-lg);
  animation:pop .18s ease;margin:auto;color:var(--ink)}
.modal.lg{max-width:760px}.modal.xl{max-width:960px}
@keyframes pop{from{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 0}
.modal-head h3{font-size:18px;font-weight:500;color:#416c88}
.modal-body{padding:18px 24px 24px;max-height:72vh;overflow:auto}
.drawer-overlay{position:fixed;inset:0;background:#17374644;backdrop-filter:blur(3px);z-index:100}
.drawer{position:absolute;right:0;top:0;bottom:0;width:440px;max-width:94vw;background:#fff;box-shadow:var(--sh-lg);
  display:flex;flex-direction:column;animation:slidein .2s ease}
@keyframes slidein{from{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--line)}
.drawer-head h3{font-weight:500;color:#416c88}
.drawer-body{padding:20px 24px;overflow:auto;flex:1}
.toast{position:fixed;left:50%;bottom:80px;transform:translateX(-50%);background:#294f68;color:#fff;
  padding:12px 22px;border-radius:var(--r-3);font-size:14px;z-index:200;box-shadow:var(--sh-md);animation:pop .18s;
  max-width:90%;text-align:center}
.toast.error{background:var(--danger)}.toast.success{background:var(--success)}

/* ---------- 页脚 ---------- */
.sitefooter{background:#fff;border-top:1px solid var(--line);margin-top:50px;padding:42px 0 26px}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;gap:28px}
.footer-brand{margin-bottom:10px}
.footer-col h4{font-size:13.5px;margin-bottom:12px;color:var(--text-1)}
.footer-col a{display:block;color:var(--text-3);font-size:13px;padding:4px 0}
.footer-col a:hover{color:var(--gold-deep)}
.footer-notice{margin-top:32px;padding-top:18px;border-top:1px solid var(--line);display:flex;
  justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap;color:#9aadb9;font-size:12px}
.copyright{margin-top:14px;font-size:12px;color:#9aadb9}

/* ---------- 悬浮客服（白底圆形） ---------- */
.floatingcs{position:fixed;bottom:90px;right:20px;z-index:40;width:56px;height:56px;border-radius:50%;
  background:#ffffffed;color:#8aa4b5;box-shadow:var(--sh-md);border:1px solid var(--line);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-size:10px;line-height:1;padding:0}
.floatingcs:hover{color:var(--ink-soft);border-color:#cfdde5}
.floatingcs svg{width:20px;height:20px}

/* ============================================================
   倾诉 / 音视频 深色场景
   ============================================================ */
.vent-card{background:linear-gradient(120deg,#1f4550,#285762);color:#fff;border-radius:var(--r-5);padding:40px;text-align:center}
.vent-card h1{color:#fff;font-size:32px;margin:12px 0;font-weight:400}
.vh-pulse{width:76px;height:76px;border-radius:50%;background:rgba(200,160,90,.14);margin:6px auto 0;position:relative;
  display:flex;align-items:center;justify-content:center}
.vh-pulse:before,.vh-pulse:after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid rgba(200,160,90,.5);animation:vhPulse 2s ease-out infinite}
.vh-pulse:after{animation-delay:1s}
.vh-pulse span{font-size:32px}
.vh-pulse.sm{width:54px;height:54px}
@keyframes vhPulse{0%{transform:scale(.8);opacity:1}100%{transform:scale(1.5);opacity:0}}
.mini-stat{background:#faf7f1;border:1px solid var(--line);border-radius:var(--r-4);padding:16px 10px;text-align:center}
.mini-stat .ms-num{font-size:20px;font-weight:700;color:var(--deep);margin-bottom:4px}
.vent-room{min-height:calc(100vh - 64px);margin:-24px -32px -40px;padding:60px 24px 40px;
  background:radial-gradient(120% 90% at 50% 0%,#2a5d67 0%,#16383f 55%,#102b31 100%);
  display:flex;flex-direction:column;align-items:center;justify-content:space-between}
.vr-peer{text-align:center}
.vr-avatar{width:108px;height:108px;border-radius:50%;overflow:hidden;margin:0 auto;
  background:linear-gradient(135deg,#c8a35a,#8d7140);display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 6px rgba(232,201,143,.18)}
.vr-avatar.lg{width:84px;height:84px}
.vr-avatar img{width:100%;height:100%;object-fit:cover}
.vr-avatar span{font-size:42px;color:#fff}
.vr-sub{color:#9fc0c6;font-size:13px;margin-top:4px}
.vr-timer{font-size:40px;font-weight:300;color:#e8c98f;letter-spacing:2px;margin:20px 0 6px;font-variant-numeric:tabular-nums}
.vr-bill{display:flex;gap:18px;flex-wrap:wrap;justify-content:center;color:#cfe0e4;font-size:13px;
  background:rgba(255,255,255,.06);padding:10px 22px;border-radius:999px}
.vr-bill .warn{color:#f0b27a}
.vr-ctrls{display:flex;gap:34px;align-items:flex-end;margin-top:24px}
.vr-btn{background:rgba(255,255,255,.1);width:72px;height:72px;border-radius:50%;color:#fff;display:flex;
  flex-direction:column;align-items:center;justify-content:center;gap:3px;transition:.2s}
.vr-btn:hover{background:rgba(255,255,255,.2)}
.vr-btn .vri{font-size:22px;line-height:1}
.vr-btn small{font-size:11px;color:#cfe0e4}
.vr-btn.off{background:rgba(255,255,255,.25)}
.vr-btn.hangup{background:#c0504d;width:78px;height:78px}
.vr-btn.hangup .vri{transform:rotate(135deg)}
.ve-stars{font-size:38px;color:#d9d9d9;letter-spacing:6px;cursor:pointer}
.ve-stars span:hover,.ve-stars span.on{color:#e2b96b}

.rtc-room{position:fixed;inset:0;background:#10232a;z-index:90;color:#fff;display:flex;flex-direction:column}
.rtc-stage{flex:1;position:relative;display:grid;gap:12px;padding:18px;grid-template-columns:1fr 260px}
.rtc-video{width:100%;height:100%;background:#0c1b20;border-radius:var(--r-5);overflow:hidden;position:relative;background-size:cover;background-position:center}
.rtc-video video{width:100%;height:100%;object-fit:cover}
.rtc-video .rtc-name{position:absolute;left:14px;bottom:12px;background:rgba(0,0,0,.45);padding:4px 12px;border-radius:999px;font-size:13px}
.rtc-side{display:flex;flex-direction:column;gap:12px}
.rtc-self{border-radius:var(--r-5);overflow:hidden;background:#0c1b20;flex:1;position:relative}
.rtc-self video{width:100%;height:100%;object-fit:cover}
.rtc-controls{display:flex;justify-content:center;gap:14px;padding:18px;background:#0c1b20}
.rtc-controls .rtc-btn{width:56px;height:56px;border-radius:50%;background:#23444d;display:flex;align-items:center;justify-content:center;border:none}
.rtc-controls .rtc-btn:hover{background:#2e5863}
.rtc-controls .rtc-btn.hangup{background:var(--danger)}
.rtc-timer{font-family:Georgia,serif;font-size:15px;align-self:center;margin-right:20px}
.rtc-grid{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:12px;background:#0d1e24}
.rtc-grid.audio{grid-template-columns:1fr;place-items:center}
.rtc-tile{position:relative;background:#16383f;border-radius:var(--r-5);overflow:hidden;min-height:240px;
  display:flex;flex-direction:column;align-items:center;justify-content:center}
.rtc-tile.local{background:#0f2c33}
.rtc-tile.local video{width:100%;height:100%;object-fit:cover}
.rtc-tile video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.rt-avatar{width:110px;height:110px;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,#c8a35a,#8d7140);
  display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.rt-avatar img{width:100%;height:100%;object-fit:cover}
.rt-avatar span{font-size:44px;color:#fff}
.rt-name{color:#fff;font-size:17px}
.rt-state{color:#9fc0c6;font-size:13px;margin-top:6px}
.rtc-bar{background:#0a181d;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.rtc-time{color:#e8c98f;font-size:22px;font-variant-numeric:tabular-nums;min-width:70px}
.rtc-hint{color:#7fa0a7;font-size:12px;min-width:110px;text-align:right}
/* 结束倒计时:前 5 分钟金色弱提示,前 1 分钟红色呼吸强提示 */
/* 房间内录制状态徽标(左上角悬浮):RUNNING 红点 + 撤回同意入口 */
.rtc-recbadge{position:absolute;top:14px;left:16px;z-index:20;display:flex;
  align-items:center;gap:10px;padding:7px 14px;border-radius:999px;
  font-size:13px;font-weight:600;letter-spacing:.5px;
  background:rgba(0,0,0,.5);backdrop-filter:blur(4px);user-select:none}
.rtc-recbadge.live{color:#ff6b5e}
.rtc-recbadge .rb-dot{width:9px;height:9px;border-radius:50%;background:#ff4d3f;
  animation:rtc-rec-pulse 1.2s ease-in-out infinite}
@keyframes rtc-rec-pulse{0%,to{opacity:1;box-shadow:0 0 0 0 rgba(255,77,63,.5)}
  50%{opacity:.55;box-shadow:0 0 0 6px rgba(255,77,63,0)}}
.rtc-recbadge .rb-revoke{margin-left:2px;padding:3px 10px;border-radius:999px;
  border:1px solid rgba(255,255,255,.35);background:transparent;color:#fff;
  font-size:12px;cursor:pointer;font-weight:500}
.rtc-recbadge .rb-revoke:hover{background:rgba(255,255,255,.14)}
.rtc-recbadge.muted{color:rgba(255,255,255,.72);font-weight:500}
.rtc-recbadge.warn{color:#e8c15e}
.rtc-endwarn{padding:10px 24px;text-align:center;font-size:14px;font-weight:600;
  font-variant-numeric:tabular-nums}
.rtc-endwarn.soft{background:rgba(214,158,46,.18);color:#e8c15e;
  border-top:1px solid rgba(214,158,46,.4)}
.rtc-endwarn.strong{background:#d64a3d;color:#fff;animation:rtc-end-pulse 1s ease-in-out infinite}
@keyframes rtc-end-pulse{0%,to{opacity:1}50%{opacity:.6}}
/* 咨询师视频咨询关闭摄像头将扣减 20% 结算:常态金色提醒,关闭后红色强提醒 */
.rtc-camwrap{background:#0a181d;padding:0 24px 12px;text-align:center}
.rtc-camwarn{display:inline-block;max-width:560px;font-size:12.5px;line-height:1.7;
  color:#d69e2e;font-weight:600}
.rtc-camwarn.on{color:#d64a3d}
.rtc-btns{display:flex;gap:18px}
.rtc-btns .rtc-btn{width:52px;height:52px;border-radius:50%;border:none;background:rgba(255,255,255,.12);color:#fff;
  font-size:20px;cursor:pointer;transition:.2s;display:flex;align-items:center;justify-content:center}
.rtc-btns .rtc-btn:hover{background:rgba(255,255,255,.22)}
.rtc-btns .rtc-btn.off{background:rgba(255,255,255,.3)}
.rtc-btns .rtc-btn.hangup{background:#c0504d}
.rtc-gate{position:absolute;inset:0;background:#0d1e24;z-index:5;flex-direction:column;align-items:center;
  justify-content:center;padding:30px;text-align:center;display:none}
.rtc-gate.show{display:flex}
.rtc-gate h2{color:#fff}
.rtc-gate p{color:#9fc0c6;max-width:420px;line-height:1.9}
.call-consent{border:1px solid var(--line);border-radius:var(--r-4);padding:20px 22px;background:#faf8f3}
.call-consent.done{display:flex;align-items:center}
.consent-text{max-height:180px;overflow:auto;border:1px solid var(--line);border-radius:var(--r-3);
  padding:12px 14px;font-size:12.5px;line-height:1.9;color:var(--ink-soft);background:#fff}
.scope-opt{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.7;cursor:pointer}

/* ---------- 时间线 / 消息 ---------- */
.timeline{position:relative;padding-left:24px}
.timeline:before{content:"";position:absolute;left:6px;top:8px;bottom:8px;width:2px;background:var(--line)}
.tl-item{position:relative;padding:0 0 20px}
.tl-item:before{content:"";position:absolute;left:-22px;top:6px;width:10px;height:10px;border-radius:50%;
  background:var(--gold);border:2px solid #fff;box-shadow:0 0 0 2px var(--gold)}
.tl-item.done:before{background:var(--success);box-shadow:0 0 0 2px var(--success)}
.chat-list{max-height:520px;overflow:auto;display:flex;flex-direction:column;gap:12px;padding:6px}
.bubble{max-width:72%;padding:11px 15px;border-radius:14px;font-size:14px;background:var(--mist)}
.bubble.mine{align-self:flex-end;background:var(--ink);color:#fff;border-bottom-right-radius:4px}
.bubble.other{align-self:flex-start;border-bottom-left-radius:4px}
.bubble small{display:block;font-size:11px;opacity:.7;margin-top:4px}

/* ---------- 管理后台 ---------- */
.admin-layout{display:grid;grid-template-columns:210px 1fr;gap:22px;align-items:start}
.admin-side{background:#fff;border:1px solid var(--line);border-radius:var(--r-4);padding:12px;
  position:sticky;top:calc(var(--topbar-h) + 20px)}
.admin-side a{display:block;padding:10px 14px;border-radius:var(--r-3);font-size:14px;color:var(--ink-soft)}
.admin-side a:hover{background:var(--bg)}
.admin-side a.active{background:var(--ink);color:#fff}
.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:var(--r-4);padding:18px 20px;box-shadow:var(--sh-xs)}
.kpi strong{font-size:26px;font-family:Georgia,serif;color:#406a83;display:block;font-weight:400}
.kpi small{color:var(--text-3)}

/* ============================================================
   硬件商城 / 购物车
   ============================================================ */
.hw-banner{background:linear-gradient(120deg,#1d444e,#2d636b);color:#fff;padding:44px;border-radius:var(--r-5);
  position:relative;overflow:hidden}
.hw-banner small{color:#c9d9dc;letter-spacing:3px}
.hw-banner h2{color:#fff;font-size:32px;margin:10px 0 8px;font-weight:400}
.hw-banner p{color:#cfe0e4;margin:0}
.hw-card{display:block;color:inherit;overflow:hidden;padding:0;transition:.2s}
.hw-card:hover{transform:translateY(-3px);box-shadow:var(--sh-md)}
.hw-cover{position:relative;aspect-ratio:4/3;background:#f3f1ec;overflow:hidden}
.hw-cover img{width:100%;height:100%;object-fit:cover}
.hw-noimg{display:flex;align-items:center;justify-content:center;height:100%;min-height:180px;color:#aab8b4;font-size:15px;letter-spacing:4px}
.hw-badge{position:absolute;left:12px;top:12px;background:var(--gold-deep);color:#fff;font-size:12px;
  padding:3px 10px;border-radius:999px}
.hw-mask{position:absolute;inset:0;background:rgba(10,24,29,.45);color:#fff;display:flex;align-items:center;
  justify-content:center;font-size:18px;letter-spacing:4px}
.hw-info{padding:16px 18px 18px}
.hw-info p{margin:6px 0 10px;min-height:20px}
.hw-gallery{aspect-ratio:16/9;background:#f3f1ec;overflow:hidden;border-radius:var(--r-4)}
.hw-gallery img{width:100%;height:100%;object-fit:contain;background:#f7f5f0}
.hw-gallery .hw-noimg{min-height:320px}
.price-old{color:#a9b3b1;text-decoration:line-through;margin-left:8px}
.sku-list{display:flex;flex-wrap:wrap;gap:8px}
.sku-opt{border:1px solid var(--line);background:#fff;border-radius:var(--r-3);padding:9px 14px;font-size:13px;
  cursor:pointer;transition:.15s}
.sku-opt:hover{border-color:var(--gold)}
.sku-opt.selected{border-color:var(--gold-deep);background:#faf3e2;color:var(--gold-deep);font-weight:600}
.qty-row{display:inline-flex;align-items:center;gap:0;border:1px solid var(--line);border-radius:var(--r-3);overflow:hidden}
.qty-row span{min-width:42px;text-align:center;font-size:14px}
.qty-btn{width:36px;height:34px;border:none;background:#f6f5f1;font-size:16px;cursor:pointer}
.qty-btn:hover{background:#ece8df}
.cart-row{display:flex;align-items:center;gap:16px;padding:16px 2px;border-bottom:1px dashed var(--line)}
.cart-check{font-size:18px}
.cart-thumb{width:76px;height:76px;border-radius:var(--r-3);overflow:hidden;background:#f3f1ec;flex:none}
.cart-thumb img{width:100%;height:100%;object-fit:cover}
.cart-main{flex:1;min-width:0}
.cart-side{text-align:right;min-width:120px}
.mini-link{background:none;border:none;font-size:12px;cursor:pointer;margin-top:6px;color:var(--gold-deep)}
.mini-link.danger{color:var(--danger)}
.cart-bar{display:flex;align-items:center;padding:16px 4px 4px;position:sticky;bottom:0;background:#fff}
.pay-opt{display:flex;gap:9px;align-items:center;border:1px solid var(--line);border-radius:var(--r-4);
  padding:12px 14px;margin-bottom:8px;cursor:pointer;font-size:13.5px}
.pay-opt:has(input:checked){border-color:var(--gold-deep);background:#fdf8ec}

/* ============================================================
   设置 / 协议 / FAQ / 动态 / 启动页
   ============================================================ */
.faq-item{border:1px solid var(--line);border-radius:var(--r-4);padding:14px 18px;margin-bottom:10px;background:#fff}
.faq-item summary{cursor:pointer;font-size:14.5px;font-weight:600;list-style:none;position:relative;
  padding-right:24px;color:var(--text-1)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:'+';position:absolute;right:4px;top:0;color:var(--gold-deep);font-size:18px}
.faq-item[open] summary::after{content:'−'}
.faq-a{margin-top:12px;line-height:1.9;font-size:13.5px;white-space:pre-wrap;color:var(--text-2)}
.agree-p{margin:0 0 12px;line-height:2;font-size:14px;color:#37414a;white-space:pre-wrap}
.agree-li{margin:0 0 8px 18px;line-height:1.9;font-size:14px;color:#37414a}
.consent-row{display:flex;align-items:center;gap:12px;padding:14px 4px;border-bottom:1px dashed var(--line);cursor:pointer}
.consent-row:last-child{border-bottom:none}
.consent-switch{width:20px;height:20px;accent-color:var(--gold-deep);cursor:pointer}
.scope-list{display:flex;flex-direction:column;gap:10px}
.scope-list .scope-opt{border:1px solid var(--line);border-radius:var(--r-4);padding:14px 16px;align-items:center}
.scope-list .scope-opt.selected{border-color:var(--gold-deep);background:#fdf8ec}
.feedbacktext{width:100%;min-height:130px;border:1px solid #dce8f1;border-radius:var(--r-3);padding:12px;
  color:var(--ink);background:#f8fbfd;resize:vertical}
.benefits{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}
.benefit{background:#f7f4ed;border:1px solid #e4dccc;border-radius:var(--r-4);padding:14px}
.benefit strong{font-family:Georgia,serif;font-size:25px;color:#a58d68;font-weight:400}
.benefit p{font-size:11px;color:#ac9d84;margin:0}

.moment-card{display:block;color:inherit}
.mc-head{display:flex;gap:11px;align-items:center}
.mc-avatar{width:42px;height:42px;border-radius:50%;overflow:hidden;background:#eee;flex:none}
.mc-avatar img{width:100%;height:100%;object-fit:cover}
.mc-content{margin:10px 0;font-size:14px;line-height:1.8;display:-webkit-box;-webkit-line-clamp:4;
  -webkit-box-orient:vertical;overflow:hidden}
.moment-imgs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.moment-thumb,.moment-img-lg{aspect-ratio:1;border-radius:var(--r-3);overflow:hidden;background:#f3f1ec}
.moment-img-lg{aspect-ratio:4/3}
.moment-thumb img,.moment-img-lg img{width:100%;height:100%;object-fit:cover}
.mc-foot{display:flex;gap:20px;margin-top:12px;color:var(--ink-soft);font-size:13px}
.mc-actions{margin-top:16px;text-align:center}
.comment-row{padding:12px 0;border-bottom:1px dashed var(--line)}
.art-cover{margin-top:14px;border-radius:var(--r-4);overflow:hidden;max-height:380px;background:#f3f1ec}
.art-cover img{width:100%;object-fit:cover;display:block}

.launch-screen{min-height:72vh;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(150deg,#123138 0%,#1d4d56 55%,#2d636b 100%);border-radius:var(--r-6);margin:8px 0}
.launch-card{text-align:center;color:#fff;padding:60px 30px;max-width:560px}
.launch-mark{width:76px;height:76px;margin:0 auto 22px;border-radius:22px;background:linear-gradient(135deg,#c9a86a,#a9864a);
  display:flex;align-items:center;justify-content:center;font-size:36px;font-family:Georgia,serif;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.launch-eyebrow{color:#c9d9dc;letter-spacing:5px;font-size:12px}
.launch-title{color:#fff;font-size:38px;line-height:1.5;margin:18px 0 14px;font-weight:400}
.launch-sub{color:#cfe0e4;letter-spacing:3px;font-size:14px;margin-bottom:34px}
.launch-btn{display:inline-block;min-width:220px}
.launch-links{margin-top:26px;font-size:13px;color:#9fbcc2}
.launch-links a{color:#cfe0e4;margin:0 6px}
.launch-links a:hover{color:#fff}

/* ---------- 全局动效降级 ---------- */
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
}

/* ============================================================
   响应式：宽屏收窄
   ============================================================ */
@media (max-width:1080px){
  .g4{grid-template-columns:repeat(2,1fr)}
  .g3,.tool-grid{grid-template-columns:repeat(2,1fr)}
  .layout-2-1{grid-template-columns:1fr}
  .book-panel{position:static}
  .footer-grid{grid-template-columns:repeat(2,1fr)}
  .admin-layout{grid-template-columns:1fr}
  .admin-side{position:static;display:flex;flex-wrap:wrap;gap:4px}
  .rtc-stage{grid-template-columns:1fr}
  .rtc-side{flex-direction:row;height:140px}
  .kpi-row{grid-template-columns:repeat(2,1fr)}
  .quickbar{grid-template-columns:repeat(2,1fr)}
  /* 三条入口在窄屏恢复纵向堆叠 */
  .entrygrid{grid-template-columns:1fr;gap:14px;margin:14px 0}
}
@media (max-width:980px){
  .panel.detailtop{grid-template-columns:1fr;gap:22px}
  .twocol{grid-template-columns:1fr;gap:0}
}
@media (max-width:860px){
  .mainnav{overflow-x:auto;overflow-y:hidden;flex:1 1 auto;gap:20px;scrollbar-width:none}
  .mainnav::-webkit-scrollbar{display:none}
  .topbar.staff .topbar-inner{gap:16px}
  .staffnav{gap:18px}
  .g2,.g3,.g4,.layout-1-1{grid-template-columns:1fr}
  .cards,.counselor-grid{grid-template-columns:1fr}
  .toolgrid{grid-template-columns:1fr}
  .tool-grid,.services{grid-template-columns:repeat(2,1fr)}
  .topbar-inner{gap:14px}
  .hero{min-height:232px}
  .hero .copy,.hero .hero-inner{width:80%}
  .profile-hero{flex-direction:column;align-items:flex-start}
  .auth-wrap{grid-template-columns:1fr!important;min-height:0!important;gap:26px!important;padding:10px 0}
  .auth-brand{text-align:center}
  .auth-brand .row{justify-content:center}
}
@media (max-width:720px){
  body{font-size:14px;padding-bottom:0}
  .wrap,.container{padding:0 17px}
  .topbar-inner{height:64px;flex-wrap:wrap;gap:0;padding:0 14px}
  .topbar .container{padding:0}
  .brand{font-size:19px;letter-spacing:1px}
  .brand .logo{width:33px;height:33px}
  .brand small{display:none}
  .topbar-right{gap:8px}
  .mainnav{order:3;width:100%;gap:18px;padding:6px 0 8px}
  .mainnav a{font-size:13px;padding-bottom:4px}
  /* 工作态顶栏保持单行：导航横向滚动，不折成两行 */
  .topbar.staff .topbar-inner{height:56px;flex-wrap:nowrap;gap:10px;padding:0 12px}
  .topbar.staff .brand{font-size:17px;letter-spacing:1px;gap:7px}
  .topbar.staff .brand .logo{width:30px;height:30px}
  .staff-tag{display:none}
  .staffnav{order:0;width:auto;flex:1 1 auto;gap:16px;padding:0}
  .staffnav a{font-size:13px}
  .staff-vent{padding:6px 10px}
  .staff-vent span{display:none}
  .app-main{padding-top:8px}
  .homeheading{margin:14px 0 12px}
  .homeheading h2{font-size:22px}
  .giftbanner{padding:16px;gap:13px}
  .giftbanner h3{font-size:27px}
  .gifticon{padding:8px}
  .giftcta{font-size:10px}
  .hero{margin-top:14px;min-height:208px;border-radius:var(--r-4)}
  .hero:before{background:linear-gradient(90deg,#12343ce8,#12343c85 55%,#12343c20),url("../assets/hero.jpg") 65% center/cover}
  .hero .copy,.hero .hero-inner{width:100%;padding:22px 22px}
  .hero h1{font-size:27px}
  .hero p{font-size:12px;max-width:260px}
  .assessmententry,.hotlineentry{padding:16px 14px;gap:12px}
  .assessmententry h3,.hotlineentry h3{font-size:16px}
  .section{margin:28px 0}
  .sectiontitle h2,.section-bar h2{font-size:21px}
  .actualfilters{position:static;padding:4px 0;gap:7px}
  .actualfilters select{max-width:none;font-size:12px;padding:8px}
  .realcard,.ccard{padding:16px 14px;gap:12px}
  .realcard .photoblock,.ccard .portrait{width:75px}
  .realcard .photoblock .portrait{width:75px;height:103px}
  .ccard .portrait{height:103px}
  .realcard .namebar h3{font-size:17px}
  .namebar{align-items:flex-start;flex-wrap:wrap}
  .detailbio{gap:18px}
  .detailbio .portrait{width:99px;height:124px}
  .detailbio h1{font-size:26px}
  .quote{font-size:17px}
  .detailstats strong,.stats strong,.profile-stats strong{font-size:21px}
  .tabs{gap:18px}
  .toolhero h1{font-size:29px}
  .tool{padding:20px 18px}
  .meditation{flex-direction:column-reverse;align-items:flex-start;padding:26px 22px;gap:20px;text-align:left}
  .meditation .breath{width:85px;height:85px}
  .profilehero,.profileguest{padding:22px 18px;flex-wrap:wrap}
  .profilehero h2,.profileguest h2{font-size:21px}
  .stats{gap:8px}
  .stats button{padding:15px 4px}
  .stats strong{font-size:20px}
  .stats small{font-size:10px}
  .walletrow,.orderstatus{gap:4px}
  .walletrow small,.orderstatus button{font-size:10px}
  .panel{padding:20px 18px;margin:14px 0}
  .detailactions{flex-wrap:wrap}
  .floatingcs{right:12px;bottom:76px;width:50px;height:50px}
  .footer-grid{grid-template-columns:1fr 1fr;gap:20px}
  .drawer{width:100%}
  .modal-body{padding:16px 18px 20px}
}
@media (max-width:720px){
  .detailbio h1.ct-name{font-size:23px;letter-spacing:.5px}
  .ct-role{font-size:13px}
  .rs{padding:16px 0}
  .rib{padding:12px 13px}
  .inforow,.proclist li,.gsteps li{padding:11px 12px}
  .certgrid{grid-template-columns:repeat(2,1fr);gap:10px}
}

/* ============================================================
   写给你的信 / 认识赛蔻心理（lp- 前缀，注意避让骨架屏 .sk-* 类）
   ============================================================ */
.lp-article{max-width:860px;margin:0 auto}
.lp-hero{position:relative;overflow:hidden;background:linear-gradient(150deg,#173b47 0%,#244a58 58%,#2d636b 100%);border-radius:var(--r-6);padding:38px 36px;color:#fff}
.lp-hero-blob{position:absolute;width:180px;height:180px;border-radius:50%;background:rgba(255,255,255,.09);right:-58px;top:-72px;pointer-events:none}
.lp-eyebrow{position:relative;font-size:11px;font-weight:600;color:rgba(255,255,255,.78);letter-spacing:2.5px}
.lp-hero-title{position:relative;color:#fff;font-size:26px;font-weight:700;letter-spacing:2px;margin:14px 0 0}
.lp-hero-sub{position:relative;color:rgba(255,255,255,.85);font-size:14px;line-height:1.7;margin:10px 0 0}
.lp-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-5);padding:24px 26px;margin-top:16px;box-shadow:var(--sh-xs)}
.lp-sec-title{display:flex;align-items:center;gap:10px;font-weight:700;font-size:16px;margin-bottom:12px;color:var(--text-1)}
.lp-sec-title::before{content:"";width:4px;height:16px;border-radius:2px;background:var(--gold-deep);flex:none}
.lp-para{font-size:14.5px;color:var(--text-2);line-height:1.95;margin:0 0 10px}
.lp-para:last-child{margin-bottom:0}
.lp-q-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px}
.lp-q-no{width:26px;height:26px;border-radius:50%;flex:none;margin-top:2px;background:var(--deep);color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center}
.lp-q-text{flex:1;font-size:16px;font-weight:700;line-height:1.55;color:var(--text-1);margin:0}
.lp-quote{border-left:4px solid var(--gold-deep);background:#f7f4ed;border-radius:0 8px 8px 0;padding:12px 16px;margin:8px 0 14px;font-size:14.5px;font-weight:600;color:var(--text-1);line-height:1.9}
.lp-tip{display:flex;gap:12px;align-items:flex-start;padding:8px 0}
.lp-tip-no{width:26px;height:26px;border-radius:50%;flex:none;margin-top:2px;background:var(--mist);color:var(--deep);font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center}
.lp-tip-main{flex:1;min-width:0}
.lp-tip-title{font-size:14.5px;font-weight:700;color:var(--text-1)}
.lp-tip-text{font-size:14.5px;color:var(--text-2);line-height:1.9;margin-top:4px}
.lp-sign{margin-top:16px;text-align:right;font-size:14.5px;font-weight:600;color:var(--gold-deep)}
.lp-actions{display:flex;margin-top:20px}
.lp-actions .btn{flex:1}
/* 认识赛蔻 */
.lp-ab-hero{padding:30px 32px}
.lp-brand-row{position:relative;display:flex;align-items:center;gap:15px}
.lp-logo-badge{width:56px;height:56px;border-radius:14px;background:#fff;padding:8px;flex:none}
.lp-brand-name{font-size:22px;font-weight:700;color:#fff;letter-spacing:2px;line-height:1.3}
.lp-brand-sub{font-size:12px;color:rgba(255,255,255,.8);margin-top:2px;letter-spacing:1px}
.lp-badges{position:relative;margin-top:18px}
.lp-badge{display:inline-block;font-size:12.5px;color:#fff;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.32);border-radius:20px;padding:5px 15px}
.lp-tabs{position:sticky;top:calc(var(--topbar-h) + 8px);z-index:20;display:flex;gap:30px;margin-top:10px;padding:13px 4px 10px;background:var(--bg)}
.lp-tab{font-size:14.5px;color:var(--text-3);padding:0 0 9px;border-bottom:3px solid transparent;line-height:1.4}
.lp-tab.active{color:var(--text-1);font-weight:700;border-bottom-color:var(--gold-deep)}
.lp-scroll-sec{scroll-margin-top:130px}
.lp-dotline,.lp-step{display:flex;gap:11px;align-items:flex-start;padding:6px 0}
.lp-dot{width:7px;height:7px;border-radius:50%;background:var(--gold-deep);margin-top:9px;flex:none}
.lp-step-no{width:26px;height:26px;border-radius:50%;flex:none;margin-top:1px;background:var(--mist);color:var(--deep);font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center}
.lp-line-text{flex:1;font-size:14.5px;color:var(--text-2);line-height:1.85}
.lp-note{font-size:12.5px;color:var(--text-3);line-height:1.8;margin-top:8px}
.lp-warn{display:block;background:#faf3e3;color:var(--warn);border:1px solid #ecdcbd;font-size:13.5px;line-height:1.8;padding:13px 18px;border-radius:var(--r-5);margin-top:16px}
.lp-warn:hover{filter:none}
@media (max-width:720px){
  .lp-hero{padding:26px 22px;border-radius:var(--r-4)}
  .lp-hero-title{font-size:22px;letter-spacing:1px}
  .lp-card{padding:20px 18px}
  .lp-ab-hero{padding:22px 20px}
  .lp-tabs{gap:20px;top:calc(var(--topbar-h) - 14px)}
  .lp-q-text{font-size:15px}
}

/* ============================================================
   登录 / 注册聚合页(对齐 H5 结构)
   ============================================================ */
.auth-panel{max-width:460px;margin:0 auto;width:100%}
.auth-panel-title{font-size:18px;font-weight:600;color:var(--text-1);margin-bottom:16px}
.auth-agree{margin-top:14px;line-height:1.7}
.auth-tip{font-size:12.5px;color:var(--text-3);line-height:1.8;margin:0 0 16px}
.auth-forgot{text-align:right;margin:-6px 0 4px}
.auth-back{margin-bottom:10px}

/* 微信扫码按钮:品牌绿,与 H5 一致 */
.btn.wx{background:#07c160;color:#fff;font-weight:600;letter-spacing:1px;border:1px solid #07c160}
.btn.wx:hover{background:#06ad56;filter:none}

/* 主面板底部三项操作 */
.auth-line-actions{display:flex;justify-content:center;gap:26px;margin:20px 0 4px;font-size:13px;flex-wrap:wrap}

/* 分隔线(其他方式 / 或用手机号注册) */
.auth-divider{display:flex;align-items:center;gap:12px;margin:18px 0 14px;color:var(--text-3);font-size:12px}
.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--line)}

/* 注册页 800 礼包卡 */
.auth-gift-card{background:linear-gradient(135deg,#fff7ea 0%,#fdf1dd 100%);border:1px solid #e8c892;border-radius:var(--r-4);padding:16px 18px 13px;margin-bottom:18px}
.auth-gift-card .gift-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px}
.auth-gift-card .gift-head strong{font-size:15px;color:#a66f2b}
.auth-gift-card .gift-head span{font-size:12px;color:#b58448}
.auth-gift-card .gift-list{font-size:12.5px;color:#7c5a2e;line-height:1.9}

/* 注册页推荐码 */
.auth-ref-box{margin:0 0 16px;padding:11px 13px;border-radius:var(--r-4);background:#f2f5f7;border:1px solid transparent;transition:all .2s}
.auth-ref-box.hit{background:#faf3e8;border-color:var(--gold-soft)}
.auth-ref-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.auth-ref-title{font-size:13px;font-weight:600;color:var(--text-1)}
.auth-ref-title em{font-style:normal;margin-left:6px;font-weight:400;font-size:11.5px;color:var(--text-3)}
.auth-ref-status{font-size:12px;color:var(--text-3)}
.auth-ref-box.hit .auth-ref-status{color:var(--gold-deep);font-weight:600}
.auth-ref-input{letter-spacing:1.5px;text-transform:uppercase}
.auth-ref-hint{font-size:12px;color:var(--text-3);line-height:1.7;margin:7px 0 0}
.auth-ref-hint.hit{color:var(--gold-deep);font-weight:600}

.switch-login{text-align:center;font-size:13px;color:var(--text-3);margin-top:18px}
.switch-login .switch-gap{margin:0 10px;color:var(--line-strong)}

/* 微信扫码弹窗 */
.wx-qr-box{text-align:center;color:var(--text-2);font-size:13.5px;padding:4px 0 2px}
.wx-qr-holder{min-height:400px;display:flex;justify-content:center;align-items:flex-start}
.wx-qr-holder iframe{border:0;width:300px;height:400px}
.wx-qr-box .mini{margin-top:2px}

/* 扫码落地页 */
.auth-callback{min-height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--text-2)}
.auth-callback h3{margin:14px 0 6px}
.auth-callback p{margin:0}
.cb-spin{width:34px;height:34px;border:3px solid var(--line);border-top-color:var(--gold-deep);border-radius:50%;animation:spin .9s linear infinite}
.cb-err{width:44px;height:44px;border-radius:50%;background:#fde8e6;color:#b0554f;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:700}

@media (max-width:860px){
  .auth-wrap{grid-template-columns:1fr !important;gap:24px !important}
  .auth-brand{text-align:center}
  .auth-brand .row{justify-content:center}
}

/* ============================================================
   我的成长计划（#/journey）· 功能对齐 H5 Journey.vue
   ============================================================ */
.jny{max-width:880px;margin:0 auto}

/* 危机提示条 */
.jny-crisis{background:#faf0ee;border:1px solid #eccfca;border-radius:var(--r-5);
  padding:16px 22px;margin-bottom:16px}
.jny-crisis b{color:var(--danger);font-size:15px}
.jny-crisis p{color:#a06a66;margin:8px 0 12px;line-height:1.8}
.jny-crisis .help{color:var(--danger);margin-left:12px}

/* 空态（无旅程） */
.jny-intro{background:linear-gradient(140deg,#eef4f1,#faf6ec);border:1px solid #e6d7ba}

/* 主题 / 阶段步骤条 */
.jny-hero .jny-risk{vertical-align:middle}
.jny-steps{display:flex;justify-content:space-between;position:relative;margin:24px 0 8px}
.jny-steps:before{content:"";position:absolute;top:15px;left:9%;right:9%;height:2px;background:var(--line)}
.jny-step{flex:1;display:flex;flex-direction:column;align-items:center;gap:7px;position:relative;z-index:1}
.jny-dot{width:30px;height:30px;border-radius:50%;background:#fff;border:1px solid var(--line-strong);
  color:var(--text-3);font-size:13px;font-weight:600;display:flex;align-items:center;justify-content:center}
.jny-step.past .jny-dot{background:#e7f3ec;border-color:var(--success);color:var(--success)}
.jny-step.on .jny-dot{background:var(--ink);border-color:var(--ink);color:#fff;
  box-shadow:0 5px 14px #244a5855}
.jny-step-l{font-size:12px;color:var(--text-3);white-space:nowrap}
.jny-step.on .jny-step-l{color:var(--ink);font-weight:600}

/* 风险标签 */
.jny-risk{display:inline-flex;align-items:center;font-size:12px;font-weight:500;
  padding:3px 11px;border-radius:999px;white-space:nowrap}
.jny-risk.normal{color:var(--success);background:#e7f3ec}
.jny-risk.mild{color:#3f74a3;background:#e8f1f8}
.jny-risk.moderate{color:var(--warn);background:#f5ecd9}
.jny-risk.severe{color:var(--danger);background:#f7e9e8}
.jny-risk.off{color:var(--text-3);background:var(--mist)}

/* 段落标题 */
.jny-sec{display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin:26px 2px 12px}
.jny-sec h3{font-size:16px;font-weight:600;color:var(--text-1);margin:0}
.jny-sec-act{font-size:13px;color:var(--gold-deep);font-weight:600;background:none;padding:0}
.jny-sec-act:hover:not(:disabled){text-decoration:underline}
.jny-sec-act:disabled{color:var(--text-3);cursor:not-allowed}
.jny-link{color:var(--gold-deep);font-size:13px;font-weight:500;white-space:nowrap}

/* 下一步动作 */
.jny-act{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);
  border-left:3px solid transparent;border-radius:var(--r-4);padding:15px 18px;margin-bottom:10px;
  box-shadow:var(--sh-xs);transition:.15s}
.jny-act[role="button"]:hover{border-color:var(--line-strong);box-shadow:var(--sh-sm)}
.jny-act.primary{border-left-color:var(--gold-deep);background:linear-gradient(100deg,#faf6ec,#fff)}
.jny-act.static{cursor:default}
.jny-act-t{font-size:15px;font-weight:600;color:var(--text-1)}
.jny-act-d{font-size:12.5px;color:var(--text-3);margin-top:3px;line-height:1.6}
.jny-act-go{color:#aebfc9;font-size:20px;flex:none;margin-left:auto}
.jny-act.static .jny-act-go{display:none}

/* 卡片小标题 */
.jny-card-title{font-size:15px;font-weight:600;color:var(--text-1);margin:0 0 6px}

/* 柱状图（柱高用 px 内联，字体放大时不被父高裁切） */
.jny-bars{display:flex;align-items:flex-end;gap:18px;min-height:88px;margin:8px 0 2px;padding-top:6px}
.jny-bar-col{display:flex;flex-direction:column;align-items:center;gap:4px}
.jny-bar{width:26px;border-radius:5px 5px 0 0;display:block;
  background:linear-gradient(180deg,#5d8491,var(--ink))}
.jny-bar.base{background:linear-gradient(180deg,#9fb3bf,#748893)}
.jny-bar-v{font-size:11px;color:var(--text-2)}
.jny-bar-l{font-size:11px;color:var(--text-3);white-space:nowrap}
.jny-bars.mood{gap:5px;min-height:56px}
.jny-bar.mood{width:13px;background:linear-gradient(180deg,#7fa3b0,#55707c)}
.jny-bar.mood.low{background:linear-gradient(180deg,#d8bd86,var(--gold-deep))}
.jny-good{color:var(--success)}
.jny-bad{color:var(--danger)}

/* 指标 KPI */
.jny-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}
.jny-kpis.three{grid-template-columns:repeat(3,1fr)}
.jny-kpis.two{grid-template-columns:repeat(2,1fr)}
.jny-kpi{background:var(--bg);border-radius:var(--r-3);padding:15px 8px;text-align:center;min-width:0}
.jny-kpi strong{display:block;font-size:23px;line-height:1.2;font-weight:400;color:var(--deep);
  font-family:Georgia,serif}
.jny-kpi strong.bad{color:var(--danger)}
.jny-kpi small{display:block;color:var(--text-3);font-size:11.5px;margin-top:3px;line-height:1.4}

/* 即将到来的咨询 */
.jny-up{display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:var(--mist);border-radius:var(--r-3);padding:13px 16px;margin-top:14px;
  cursor:pointer;transition:.15s}
.jny-up:hover{background:#e2ebf1}

/* 阶段报告 */
.jny-rpt-head{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer}
.jny-rpt-body{margin-top:14px}
.jny-advice{background:var(--bg);border-radius:var(--r-3);padding:10px 16px;margin-top:14px}
.jny-adv{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:9px 0;cursor:pointer;color:var(--ink-soft);font-size:14px}
.jny-adv:hover{color:var(--gold-deep)}
.jny-adv .jny-act-go{font-size:18px}

/* 记录轨迹时间线 */
.jny-timeline{margin:0}
.jny-tl{position:relative;padding:0 0 20px 36px}
.jny-tl:before{content:"";position:absolute;left:13px;top:26px;bottom:-2px;width:2px;background:var(--line)}
.jny-tl:last-child{padding-bottom:0}
.jny-tl:last-child:before{display:none}
.jny-tl-ico{position:absolute;left:0;top:0;width:28px;height:28px;border-radius:50%;
  background:var(--mist);display:flex;align-items:center;justify-content:center;font-size:14px}
.jny-tl.hot .jny-tl-ico{background:#f4ecdd}
.jny-tl-t{font-size:14px;line-height:1.55;color:var(--text-1)}

/* 共享开关 */
.jny-switch{position:relative;display:inline-block;width:46px;height:26px;flex:none;margin-top:2px}
.jny-switch input{opacity:0;width:0;height:0}
.jny-slider{position:absolute;inset:0;border-radius:999px;background:#cdd9e1;transition:.2s;cursor:pointer}
.jny-slider:before{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;border-radius:50%;
  background:#fff;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.jny-switch input:checked + .jny-slider{background:var(--ink)}
.jny-switch input:checked + .jny-slider:before{transform:translateX(20px)}
.jny-switch input:disabled + .jny-slider{opacity:.5;cursor:not-allowed}
.jny-scopes{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.jny-scope{border:1px solid var(--line);border-radius:var(--r-4);padding:14px 16px;cursor:pointer;transition:.15s}
.jny-scope:hover{border-color:var(--gold)}
.jny-scope.on{border-color:var(--gold-deep);background:#faf6ec;box-shadow:0 0 0 1px var(--gold-deep) inset}
.jny-scope b{font-size:14px;color:var(--text-1)}
.jny-scope p{margin:5px 0 0}

/* 已结束的历史计划 */
.jny-hist{background:#fff;border:1px solid var(--line);border-radius:var(--r-4);
  padding:13px 16px;margin-bottom:10px}

@media(max-width:760px){
  .jny-steps{margin:18px 0 6px}
  .jny-step-l{font-size:10.5px}
  .jny-dot{width:26px;height:26px;font-size:12px}
  .jny-steps:before{top:13px}
  .jny-bars{gap:10px;overflow-x:auto;padding-bottom:4px}
  .jny-kpis,.jny-kpis.three{grid-template-columns:repeat(2,1fr)}
  .jny-kpis.two{grid-template-columns:1fr 1fr}
  .jny-scopes{grid-template-columns:1fr}
}

/* ============================================================
   情绪日记 v3（对齐 H5：周期统计 / 日历 / 录入 / 分析 / 提醒）
   ============================================================ */
.md-page{margin-top:2px}

/* ---- 记录入口卡 ---- */
.md-pick{padding:22px 24px}
.md-pick-row{display:flex;align-items:center;gap:16px;margin-bottom:14px}
.md-pick-face{width:52px;height:52px;border-radius:50%;background:var(--mist);
  display:flex;align-items:center;justify-content:center;flex:none;font-size:26px}
.md-pick-face svg{width:25px;height:25px;color:var(--ink-soft)}
.md-rec{padding:13px 20px;font-size:15px}
.md-rec span{font-size:16px}
.md-pick-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin-top:12px;flex-wrap:wrap}
.md-foot-ops{display:flex;gap:16px}
.md-side h3{font-size:15px;font-weight:600}

/* ---- 旅程升级提示 ---- */
.md-esc{background:linear-gradient(100deg,#fbf3ee,#fff);border-color:#e9cdc6;
  border-left:3px solid var(--danger)}

/* ---- 周期切换 ---- */
.md-seg{display:inline-flex;background:var(--mist);border-radius:var(--r-3);padding:3px;gap:2px}
.md-seg-i{padding:7px 18px;font-size:13.5px;color:var(--text-2);border-radius:var(--r-2);
  background:transparent;transition:.15s}
.md-seg-i:hover{color:var(--ink)}
.md-seg-i.on{background:#fff;color:var(--ink);font-weight:600;box-shadow:var(--sh-xs)}
.md-custom{display:flex;align-items:center;gap:10px;margin:14px 0 4px;flex-wrap:wrap}
.md-custom input[type=date]{border:1px solid var(--line);border-radius:var(--r-2);
  padding:8px 10px;background:#fff}
.md-stats-head{display:flex;align-items:baseline;gap:10px;margin:16px 0 12px}
.md-stats-head b{font-size:15px;font-weight:600}
.md-mini-empty{padding:18px 8px;text-align:center;color:var(--text-3);font-size:13px}

/* ---- 表情分布 ---- */
.md-dist{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}
.md-d{display:inline-flex;align-items:center;gap:7px;background:var(--bg);
  border:1px solid var(--line);border-radius:999px;padding:6px 13px 6px 7px}
.md-df{font-size:19px;line-height:1}
.md-dn{font-size:13px;font-weight:700;min-width:14px;text-align:center}
.md-one-day{display:block;width:100%;margin-top:4px;padding:12px;border:1px dashed var(--line-strong);
  border-radius:var(--r-3);background:#fbfcfd;color:var(--ink-soft);font-size:14px;transition:.15s}
.md-one-day:hover{border-color:var(--gold);background:#faf6ec;color:var(--gold-deep)}

/* ---- 周 / 月日历 ---- */
.md-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}
.md-wh{text-align:center;font-size:11.5px;color:var(--text-3);padding-bottom:3px}
.md-cell{position:relative;aspect-ratio:1.15/1;border-radius:var(--r-3);background:var(--bg);
  border:1px solid transparent;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:2px;color:var(--text-3);font-size:13px;transition:.12s}
.md-cell.blank{background:transparent}
.md-cell.on{background:#fff;border-color:var(--line);cursor:pointer;font-weight:600;color:var(--ink)}
.md-cell.on:hover{border-color:var(--gold);box-shadow:var(--sh-xs)}
.md-cell:disabled{cursor:default;opacity:.55}
.md-cell.today{box-shadow:0 0 0 1.5px var(--gold-deep) inset}
.md-cn{font-size:12.5px;line-height:1.2}
.md-cf{font-size:18px;line-height:1.1}
.md-months{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.md-mcell{background:#fff;border:1px solid var(--line);border-radius:var(--r-4);
  padding:14px 10px;display:flex;flex-direction:column;align-items:center;gap:3px;transition:.15s}
.md-mcell:hover{border-color:var(--gold);box-shadow:var(--sh-xs)}
.md-mn{font-size:13px;color:var(--text-2);font-weight:600}
.md-mf{font-size:22px;line-height:1.2}
.md-mc{font-size:11.5px;color:var(--text-3)}

/* ---- 情绪分析 ---- */
.md-ana-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;
  padding:2px 2px;background:none}
.md-ana-toggle b{font-size:15px;font-weight:600}
.md-ana-sum{font-size:13.5px;color:var(--text-2);margin:12px 0 4px}
.md-ana-sum b{color:var(--gold-deep);font-size:15px}
.md-ana-h4{font-size:13.5px;font-weight:600;color:var(--ink);margin:18px 0 10px;
  padding-top:14px;border-top:1px dashed var(--line)}
.md-ana-h4:first-of-type{border-top:0;padding-top:4px}
.md-fq{display:grid;grid-template-columns:110px 1fr 52px auto;align-items:center;gap:10px;
  padding:5px 0;font-size:13px}
.md-fq-name{display:flex;align-items:center;gap:7px;color:var(--text-1);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.md-fq-name i{width:9px;height:9px;border-radius:50%;flex:none}
.md-fq-bar{height:7px;background:var(--bg);border-radius:999px;overflow:hidden}
.md-fq-bar span{display:block;height:100%;border-radius:999px;min-width:2px}
.md-fq-n{font-size:12px;color:var(--text-3);text-align:right}
.md-fq-x{display:flex;gap:10px;font-size:11.5px;justify-content:flex-end;color:var(--text-3)}
.md-fq-x em{font-style:normal;font-weight:600}
.md-hm-scroll{overflow-x:auto;padding-bottom:4px}
.md-hm{border-collapse:collapse;font-size:11px}
.md-hm th,.md-hm td{text-align:center}
.md-hm-h{height:20px;width:26px;font-weight:400;color:var(--text-3);font-size:10.5px}
.md-hm-mk{display:inline-block;width:7px;height:7px;border-radius:50%}
.md-hm-r{text-align:right;padding-right:8px;font-size:11.5px;color:var(--text-2);
  font-weight:500;white-space:nowrap}
.md-hm-c{height:24px;width:26px;border:1px solid var(--bg);border-radius:4px}
.md-tr{width:100%;height:auto;display:block;margin-top:6px}
.md-tr-axis{display:flex;justify-content:space-between;font-size:10.5px;margin-top:4px}
.md-tr-axis i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:3px}
.md-pt{margin:0;padding-left:20px;font-size:13px;color:var(--text-2);line-height:1.9}
.md-pt-eff{color:var(--gold-deep)}

/* ---- 一天明细（右侧抽屉内） ---- */
.md-day-head{text-align:right;padding:2px 0 6px}
.md-dp-head{display:flex;justify-content:space-between;align-items:center;
  font-size:12.5px;font-weight:600;margin:12px 0 4px}
.md-entry{display:flex;gap:12px;padding:12px 2px;border-bottom:1px dashed var(--line)}
.md-entry:last-child{border-bottom:0}
.md-e-face{width:42px;height:42px;border-radius:var(--r-3);display:flex;align-items:center;
  justify-content:center;font-size:21px;flex:none}
.md-e-main{flex:1;min-width:0}
.md-e-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px}
.md-e-top b{font-size:13px;font-weight:600}
.md-e-dp{font-size:11px;padding:2px 8px;border-radius:999px;white-space:nowrap}
.md-e-time{font-size:11.5px}
.md-e-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.md-e-emo{font-size:11.5px;color:#fff;padding:2px 9px;border-radius:999px;line-height:1.5}
.md-e-tag{font-size:11.5px;color:var(--ink-soft);background:var(--mist);
  padding:2px 9px;border-radius:999px;line-height:1.5}
.md-e-ext,.md-e-note{margin:5px 0 0;font-size:12.5px;color:var(--text-2);line-height:1.65}
.md-e-note{background:var(--bg);border-radius:var(--r-2);padding:7px 10px}
.md-e-ops{display:flex;flex-direction:column;gap:4px;flex:none;opacity:.45;transition:.15s}
.md-entry:hover .md-e-ops{opacity:1}
.md-e-ops .md-danger{color:var(--danger)}

/* ---- 页面内弹层基础 ---- */
.md-layer{position:fixed;inset:0;z-index:200;background:#1737464d;
  backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:28px}
.md-dialog{background:#fff;border-radius:var(--r-5);box-shadow:var(--sh-lg);
  width:600px;max-width:100%;max-height:92vh;display:flex;flex-direction:column;overflow:hidden}
.md-dlg-pad{padding:24px 26px;overflow:auto}
.md-dlg-head{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:14px 22px;border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,color-mix(in srgb,var(--band-soft,#eaf0f4) 55%,#fff),#fff)}
.md-time-tag{font-size:12.5px;color:var(--ink-soft)}
.md-x{font-size:24px;line-height:1;color:var(--text-3);width:32px;height:32px;border-radius:50%;
  background:transparent;transition:.12s}
.md-x:hover{background:var(--mist);color:var(--ink)}
.md-dlg-body{padding:20px 24px;overflow-y:auto;flex:1}
.md-dlg-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 22px;
  border-top:1px solid var(--line);background:#fcfdfe}
.md-save-btn{min-width:120px}
.md-mini-dialog{width:460px}

/* ---- 录入：心情滑块 ---- */
.md-scale-side{display:flex;flex-direction:column;align-items:center;gap:4px;margin-bottom:14px}
.md-big-face{font-size:52px;line-height:1.15;filter:grayscale(0)}
.md-big-face.blank{filter:grayscale(.7);opacity:.55}
.md-big-label{font-size:14px;color:var(--text-3);font-weight:400}
.md-big-label.chosen{font-size:16px;font-weight:700;color:var(--band,var(--ink))}
.md-big-score{font-size:12px;color:var(--text-3)}
.md-rail-wrap{display:flex;align-items:center;gap:10px;padding:0 2px}
.md-rail-end{font-size:11.5px;color:var(--text-3);flex:none;width:26px;text-align:center}
.md-rail{flex:1;display:grid;grid-template-columns:repeat(10,1fr);gap:4px;height:38px;
  touch-action:none;cursor:pointer;border-radius:var(--r-2);outline:none}
.md-rseg{display:flex;align-items:center;justify-content:center;border-radius:var(--r-2);
  background:var(--mist);font-size:11px;color:var(--text-3);transition:.1s;user-select:none}
.md-rseg.fill{background:color-mix(in srgb,var(--c) 70%,#fff);color:#fff;font-weight:700}
.md-rseg.cur{box-shadow:0 0 0 2px var(--band,var(--ink))}

/* ---- 录入：分区 ---- */
.md-sec{display:flex;align-items:baseline;gap:6px;margin:20px 0 9px}
.md-sec-t{font-size:14.5px;font-weight:600;color:var(--ink)}
.md-req{color:var(--danger);font-size:13px}
.md-sec-n{margin-left:auto;font-size:11.5px;color:var(--text-3)}
.md-step-tip{font-size:11.5px;color:var(--warn);background:#fbf6ea;border-radius:var(--r-2);
  padding:7px 11px;margin-bottom:10px;line-height:1.6}
.md-emo-cats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.md-emo-cat{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);
  background:#fff;border-radius:999px;padding:6px 13px;font-size:12.5px;color:var(--text-2);
  position:relative;transition:.12s}
.md-emo-cat:hover{border-color:var(--line-strong)}
.md-emo-cat.on{border-color:var(--c);background:var(--cs);color:var(--ink);font-weight:600}
.md-emo-dot{width:8px;height:8px;border-radius:50%}
.md-emo-badge{color:#fff;font-size:10px;min-width:16px;height:16px;border-radius:999px;
  display:inline-flex;align-items:center;justify-content:center;padding:0 4px;line-height:1}
.md-emo-sub{border:1px solid var(--line);border-radius:var(--r-4);padding:12px 13px;
  background:#fcfdfe}
.md-emo-sub.highlight{border:1.5px dashed var(--danger)!important;animation:mdShake .4s}
@keyframes mdShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}
.md-step-label{display:block;font-size:12.5px;font-weight:600;margin-bottom:9px}
.md-chips{display:flex;flex-wrap:wrap;gap:7px}
.md-chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 13px;
  font-size:12.5px;color:var(--text-2);transition:.12s}
.md-chip:hover{border-color:var(--line-strong)}
.md-chip.emo.on{border-color:var(--c);background:var(--c);color:#fff;font-weight:600}
.md-chip.on{border-color:var(--gold-deep);background:#faf6ec;color:var(--gold-deep);font-weight:600}
.md-chip.off{opacity:.4;cursor:not-allowed}
.md-add{display:inline-flex;align-items:center;gap:6px}
.md-add-in{border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:12.5px;
  width:150px;background:#fff}
.md-add-btn{font-size:12px;color:var(--gold-deep);padding:4px 8px;white-space:nowrap}
.md-add-btn:hover{text-decoration:underline}
.md-need-emo{margin-top:10px;font-size:12px;color:var(--danger);background:#fbf0ef;
  border-radius:var(--r-2);padding:8px 11px}
.md-picked-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.md-picked-row.in-box{margin:0 0 9px}
.md-picked{display:inline-flex;align-items:center;gap:5px;background:var(--ink);color:#fff;
  font-size:12px;padding:5px 8px 5px 12px;border-radius:999px;line-height:1.4}
.md-picked .x{font-size:14px;opacity:.65;line-height:1}
.md-picked .x:hover{opacity:1}

/* ---- 录入：扩展问题 ---- */
.md-ext{border:1px solid var(--line);border-radius:var(--r-4);padding:13px 14px;
  margin-top:12px;background:#fcfdfe}
.md-ext>b{display:block;font-size:13.5px;margin-bottom:8px}
.md-q{display:block;font-size:12.5px;color:var(--text-2);margin:11px 0 6px;font-weight:500}
.md-ta{width:100%;border:1px solid var(--line);border-radius:var(--r-3);padding:9px 11px;
  font-size:13px;resize:vertical;min-height:56px;background:#fff}
.md-ta:focus{outline:none;border-color:var(--gold)}
.md-effects{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin-top:2px}
.md-eff{border:1px solid var(--line);border-radius:var(--r-3);background:#fff;padding:9px 4px 8px;
  display:flex;flex-direction:column;align-items:center;gap:2px;transition:.12s}
.md-eff span{font-size:15px;font-weight:700;color:var(--text-2)}
.md-eff small{font-size:11px;color:var(--text-3)}
.md-eff.on{border-color:var(--gold-deep);background:#faf6ec}
.md-eff.on span{color:var(--gold-deep)}

/* ---- 录入：事件标签 / 备注 ---- */
.md-tag-cats{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:10px}
.md-tag-cat{border:1px solid var(--line);background:#fff;border-radius:var(--r-2);
  padding:5px 12px;font-size:12.5px;color:var(--text-2);transition:.12s}
.md-tag-cat.on{border-color:var(--ink);background:var(--mist);font-weight:600;color:var(--ink)}
.md-compose{position:relative;margin-top:12px;border:1px solid var(--line);
  border-radius:var(--r-4);padding:12px}
.md-note{width:100%;border:0;resize:vertical;min-height:64px;font-size:13px;
  background:transparent;padding:0}
.md-note:focus{outline:none}
.md-note-n{position:absolute;right:12px;bottom:9px;font-size:11px;color:var(--text-3);
  background:#fff;padding-left:8px}
.md-imp{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:13.5px;
  color:var(--text-2);cursor:pointer}
.md-imp input{width:16px;height:16px;accent-color:var(--ink)}

/* ---- 每日提醒 ---- */
.md-slot{display:flex;align-items:center;gap:12px;border:1px solid var(--line);
  border-radius:var(--r-3);padding:11px 14px;margin-bottom:8px;cursor:pointer;transition:.12s}
.md-slot:hover{border-color:var(--line-strong)}
.md-slot.on{border-color:var(--ink);background:#f7fafc}
.md-slot input[type=checkbox]{width:16px;height:16px;accent-color:var(--ink)}
.md-slot-lb{flex:1;font-size:13.5px}
.md-slot-tm{border:1px solid var(--line);border-radius:var(--r-2);padding:6px 9px;background:#fff}
.md-form-err{color:var(--danger);font-size:12.5px;margin:8px 0 0}

/* ---- 跟踪的活动 ---- */
.md-pref-row{display:flex;align-items:center;gap:12px;width:100%;border:1px solid var(--line);
  border-radius:var(--r-3);padding:11px 14px;margin-bottom:8px;background:#fff;text-align:left;transition:.12s}
.md-pref-row:hover{border-color:var(--line-strong)}
.md-pref-box{width:20px;height:20px;border-radius:var(--r-2);border:1.5px solid var(--line-strong);
  display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff;flex:none}
.md-pref-box.on{background:var(--ink);border-color:var(--ink)}
.md-pref-main{flex:1;min-width:0;display:flex;flex-direction:column}
.md-pref-main b{font-size:13.5px;font-weight:500}
.md-pref-main small{font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.md-pref-icon{font-size:18px}

/* ---- 危机资源 ---- */
.md-crisis-dialog{width:500px}
.md-crisis-p{font-size:13px;color:var(--text-2);line-height:1.75;margin-bottom:8px}
.md-crisis-sec{font-size:13px;font-weight:600;color:var(--ink);margin:14px 0 7px}
.md-crisis-row{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:9px 12px;border:1px solid var(--line);border-radius:var(--r-3);margin-bottom:7px;
  font-size:13px;background:#fff}
.md-crisis-row.call:hover{border-color:var(--danger)}
.md-crisis-row.call b{color:var(--danger);font-size:14px}
.md-crisis-em{display:flex;gap:8px;flex-wrap:wrap}
.md-crisis-em-i{flex:1;min-width:150px;text-align:center;border:1px solid var(--danger);
  color:var(--danger);border-radius:var(--r-3);padding:10px;font-size:13px}
.md-crisis-em-i b{font-size:15px}

/* ---- 授权同意 ---- */
.md-consent-body{max-height:240px;overflow-y:auto;background:var(--bg);
  border-radius:var(--r-3);padding:12px 14px;margin-bottom:12px}
.md-consent-p{font-size:12.5px;color:var(--text-2);line-height:1.75;margin-bottom:8px}
.md-consent-item{display:flex;gap:9px;align-items:flex-start;padding:9px 2px;
  font-size:13px;cursor:pointer;border-bottom:1px dashed var(--line)}
.md-consent-item:last-child{border-bottom:0}
.md-consent-item input{margin-top:3px;width:16px;height:16px;accent-color:var(--ink)}

@media(max-width:900px){
  .md-page{grid-template-columns:1fr}
  .md-months{grid-template-columns:repeat(3,1fr)}
  .md-fq{grid-template-columns:96px 1fr 44px;}
  .md-fq-x{grid-column:2 / 4;justify-content:flex-start}
}
@media(max-width:560px){
  .md-dialog{width:100%}
  .md-layer{padding:0;align-items:flex-end}
  .md-dialog{max-height:94vh;border-radius:var(--r-5) var(--r-5) 0 0}
  .md-months{grid-template-columns:repeat(2,1fr)}
  .md-effects{grid-template-columns:repeat(5,1fr)}
}

/* ============================================================
   咨询师入驻向导（#/consultant/register）
   六步向导外壳 + 录入基件：小标题 / 说明 / 错误态 /
   照片网格 / 证件卡 / 领域分组 / 迷你卡 / 服务身份卡
   ============================================================ */

/* ---- 向导外壳：步骤导航 ---- */
.cr-nav{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.cr-nav-item{display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border-radius:999px;
  border:1px solid var(--line);background:#fff;font-size:13px;color:var(--text-2);transition:.12s}
.cr-nav-item:hover{border-color:var(--line-strong);color:var(--ink)}
.cr-nav-item.on{background:var(--ink);border-color:var(--ink);color:#fff}
.cr-nav-dot{width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.5;flex:none}
.cr-nav-item.on .cr-nav-dot{opacity:.9}
.cr-nav-dot.bad{background:var(--danger);opacity:1}
.cr-panel{margin:0}

/* ---- 提示横幅 ---- */
.cr-banner{background:var(--mist);border-radius:var(--r-3);padding:11px 14px;font-size:13px;
  color:var(--text-2);line-height:1.7;margin:12px 0}
.cr-banner.danger{background:#f7ebea;color:var(--danger)}

/* ---- 录入基件：小标题 / 说明文字 ---- */
.section-sub{font-size:15.5px;font-weight:600;color:var(--text-1);margin:26px 0 10px;line-height:1.5}
.cr-panel>.section-sub:first-child{margin-top:2px}
.hint{font-size:12.5px;font-weight:400;color:var(--text-3);line-height:1.7;margin:6px 0 10px}
.field-err{font-size:12px;color:var(--danger);margin-top:6px;line-height:1.5}

/* ---- 错误态 ---- */
.lbl-bad{color:var(--danger)!important}
.group-bad{padding:6px;border:1px solid var(--danger);border-radius:var(--r-3);background:#faf1f0}
.card-bad{border-color:var(--danger)!important;background:#fbf3f2}

/* ---- 照片网格（第 3 步） ---- */
.photo-grid{display:flex;flex-wrap:wrap;gap:12px;margin-top:2px}
.photo-item{position:relative;width:100px;height:100px;border-radius:var(--r-3);overflow:hidden;
  border:1px solid var(--line);background:var(--mist);flex:none}
.photo-item img{width:100%;height:100%;object-fit:cover}
.photo-del{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;
  background:#173746b3;color:#fff;font-size:14px;line-height:1;display:flex;align-items:center;
  justify-content:center;opacity:0;transition:.12s}
.photo-item:hover .photo-del,.photo-del:focus{opacity:1}
.photo-add{width:100px;height:100px;border:1.5px dashed var(--line-strong);border-radius:var(--r-3);
  background:#fcfdfe;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  color:var(--text-3);flex:none;transition:.12s}
.photo-add:hover{border-color:var(--gold);color:var(--gold-deep);background:#fcfaf6}
.photo-add b{font-size:22px;font-weight:400;line-height:1}
.photo-add span{font-size:12px}

/* ---- 证件 / 证书卡片（第 3 步） ---- */
.cert-card{border:1px solid var(--line);border-radius:var(--r-4);padding:15px 18px;margin:16px 0 0;
  background:#fcfdfe}
.cert-type{font-size:14px;font-weight:600;color:var(--text-1)}
.cert-up-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:10px}
.cert-up{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:var(--r-3);
  border:1.5px dashed var(--line-strong);background:#fff;color:var(--text-2);font-size:13px;transition:.12s}
.cert-up:hover{border-color:var(--gold);color:var(--gold-deep);background:#fcfaf6}
.cert-thumb{max-width:180px;max-height:130px;border:1px solid var(--line);border-radius:var(--r-3);margin-top:10px}

/* ---- 擅长领域分组（第 2 步） ---- */
.spec-box{border:1px solid var(--line);border-radius:var(--r-4);padding:14px 16px;background:#fcfdfe;
  display:flex;flex-direction:column;gap:12px;margin-top:8px}
.spec-gtitle{font-size:13px;font-weight:600;color:var(--text-2);margin-bottom:8px}

/* ---- 迷你录入卡 / 添加按钮（第 1、2 步） ---- */
.mini-card{position:relative;border:1px solid var(--line);border-radius:var(--r-4);padding:14px 16px;
  margin:0 0 12px;background:#fcfdfe}
.mini-card .input{padding-right:30px}
.mini-del{position:absolute;top:8px;right:9px;font-size:15px;color:var(--text-3);
  width:24px;height:24px;border-radius:50%;line-height:1;display:flex;align-items:center;justify-content:center}
.mini-del:hover{background:var(--mist);color:var(--danger)}
.add-cert-btn{width:100%;padding:10px;border:1.5px dashed var(--line-strong);border-radius:var(--r-3);
  color:var(--text-2);font-size:13px;text-align:center;transition:.12s}
.add-cert-btn:hover{border-color:var(--gold);color:var(--gold-deep);background:#fcfaf6}

/* ---- 问卷题块（第 5、6 步） ---- */
.q-block{margin:0 0 16px}
.q-block>.flabel{margin-top:4px}

/* ---- 服务身份卡（第 4 步） ---- */
.rolegrid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.role-opt{text-align:left;border:1px solid var(--line);border-radius:var(--r-4);padding:13px 15px;
  background:#fff;transition:.12s}
.role-opt:hover{border-color:var(--line-strong)}
.role-opt.on{border-color:var(--ink);background:#f6f9fb}
.role-name{font-size:14px;font-weight:600;color:var(--text-1);margin-bottom:3px}
.role-desc{font-size:12.5px;color:var(--text-3);line-height:1.6}

/* ---- 底部操作栏 ---- */
.cr-foot{display:flex;justify-content:flex-end;gap:10px;margin-top:22px;padding-top:18px;
  border-top:1px solid var(--line);flex-wrap:wrap}
.cr-foot>:first-child{margin-right:auto}

@media(max-width:720px){
  .rolegrid{grid-template-columns:1fr}
  .cr-nav-item{padding:6px 12px;font-size:12.5px}
}

/* ============================================================
   平台管理后台（#/staff/admin）
   对齐小程序 packageStaff/admin：概览 / 分析 / 财务 /
   咨询师 / 用户 / 定价 / 全局排期 / 订单 / 倾诉定价 / 邀请
   全部类名 ad- 前缀，避免与通用组件冲突
   ============================================================ */

/* ---- 主 Tab 条上的待审角标 ---- */
.ad-tab-badge{display:inline-block;min-width:18px;padding:0 5px;margin-left:6px;
  font-size:11px;line-height:18px;color:#fff;text-align:center;
  background:var(--danger);border-radius:9px;vertical-align:middle}

/* ---- 概览：KPI ---- */
.ad-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:4px 0 4px}
.ad-kpi{background:#fff;border:1px solid #dce5eb;border-radius:var(--r-5);
  padding:20px;box-shadow:0 5px 16px #244a5810;text-align:center}
.ad-kpi-num{font-size:25px;font-weight:700;color:var(--ink);line-height:1.25}
.ad-kpi-num.warn{color:var(--warn)}
.ad-kpi-label{font-size:12.5px;color:var(--text-3);margin-top:7px}
.ad-dist-row{display:flex;justify-content:space-between;padding:6px 0;
  font-size:14px;color:var(--text-2)}
.ad-dist-row b{color:var(--ink);font-weight:600}

/* ---- 通用状态药丸 ---- */
.ad-pill{display:inline-flex;font-size:12px;padding:2px 10px;border-radius:999px;
  font-weight:500;flex:none}
.ad-pill.ok{color:var(--success);background:#e7f3ec}
.ad-pill.warn{color:var(--warn);background:#f5ecd9}
.ad-pill.danger{color:var(--danger);background:#f7e9e8}
.ad-pill.off{color:var(--text-3);background:var(--mist)}

/* ---- 区间选择条 / 区间说明 ---- */
.ad-range-text{font-size:12.5px;color:var(--text-3);margin:2px 0 14px}
.ad-section-title{font-size:14px;font-weight:600;color:var(--text-1);
  margin:24px 0 12px}
.ad-note{font-size:12px;color:var(--text-3);line-height:1.7;margin:14px 2px 4px}

/* ---- 活跃分析卡片 ---- */
.ad-an-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.ad-an-card{background:#fff;border:1px solid #dce5eb;border-radius:var(--r-5);
  padding:16px 18px;box-shadow:0 5px 16px #244a5810}
.ad-an-icon{width:34px;height:34px;border-radius:8px;display:flex;
  align-items:center;justify-content:center;margin-bottom:10px;font-size:16px}
.ad-an-val{font-size:23px;font-weight:700;color:var(--ink);line-height:1.2}
.ad-an-val.blue{color:#3a74a8}.ad-an-val.green{color:var(--success)}
.ad-an-val.purple{color:#7a5fa8}.ad-an-val.orange{color:#b07d2d}
.ad-an-val.red{color:var(--danger)}
.ad-an-label{font-size:12.5px;color:var(--text-3);margin-top:4px}
.ad-an-sub{font-size:12px;color:var(--text-3);margin-top:2px}

/* ---- 咨询师列表 ---- */

/* ---- 内容收藏按钮(文章/动态/测评) ---- */
.mc-actions{display:flex;align-items:center;justify-content:center;gap:10px}
.fav-btn{width:auto;height:38px;padding:0 16px;border:1px solid var(--line);border-radius:var(--r-3);
  background:#fff;font-size:14px;color:var(--ink-soft)}
.fav-btn:hover{border-color:var(--line-strong);color:var(--ink)}
.fav-btn.is-on{color:var(--gold-deep);border-color:var(--gold);background:#fcf9f3}
.assess-card .fav-mini{position:absolute;top:12px;left:12px;width:30px;height:30px;padding:0;border-radius:50%;
  background:rgba(255,255,255,.92);box-shadow:0 2px 8px rgba(0,0,0,.12);font-size:15px;z-index:2;color:#b6a98f}
.assess-card .fav-mini.is-on{color:#c49b4f}
.ad-list{display:flex;flex-direction:column;gap:14px}
.ad-c-head{display:flex;justify-content:space-between;align-items:center;cursor:pointer;gap:10px}
.ad-c-name{font-size:15.5px;font-weight:600;color:var(--text-1)}
.ad-c-meta{font-size:13px;color:var(--text-3);margin-top:5px}
.ad-c-sorttag{margin-left:8px;font-size:11px;color:var(--success);
  background:#e7f3ec;padding:1px 8px;border-radius:4px;font-weight:400}
.ad-c-arrow{font-size:12.5px;color:var(--text-3);flex:none}
.ad-c-detail{margin-top:14px;padding:16px 18px;background:var(--bg);border-radius:var(--r-4)}
.ad-drow{display:flex;justify-content:space-between;gap:14px;font-size:13.5px;
  color:var(--text-2);padding:4px 0}
.ad-dk{color:var(--text-3);flex:none}
.ad-dblock{margin-top:12px}
.ad-dblock>.ad-dk{font-weight:600;color:var(--text-1);font-size:13px}
.ad-dtext{font-size:13.5px;color:var(--text-2);line-height:1.7;margin-top:4px;
  white-space:pre-wrap}
.ad-warn{font-size:13px;line-height:1.6;padding:8px 12px;border-radius:var(--r-3);
  background:#f5ecd9;color:#8a6528;margin-bottom:10px}
.ad-warn-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ad-photos{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.ad-photo{width:74px;height:74px;border-radius:var(--r-3);object-fit:cover;
  background:var(--mist);cursor:zoom-in;border:1px solid var(--line)}
.ad-cert{padding:10px 0;border-bottom:1px solid var(--line)}
.ad-cert:last-child{border-bottom:0}
.ad-qgroup{margin-top:10px}
.ad-qgroup-name{font-size:12.5px;font-weight:600;color:var(--ink);margin-bottom:4px}
.ad-qa{padding:6px 0;border-bottom:1px dashed var(--line)}
.ad-qa:last-child{border-bottom:0}
.ad-q{font-size:12.5px;color:var(--text-3);line-height:1.6}
.ad-a{font-size:13.5px;color:var(--text-2);margin-top:2px;line-height:1.7;
  white-space:pre-wrap}
.ad-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px;flex-wrap:wrap}

/* ---- 排序编辑器 ---- */
.ad-sort-row{display:flex;align-items:center;gap:14px}
.ad-sort-idx{width:28px;height:28px;line-height:28px;text-align:center;border-radius:50%;
  background:var(--mist);font-size:13px;font-weight:700;color:var(--ink);flex:none}
.ad-sort-avatar{width:42px;height:42px;border-radius:var(--r-3);object-fit:cover;
  background:var(--mist);flex:none}
.ad-sort-info{flex:1;min-width:0}
.ad-sort-name{font-weight:600;font-size:14.5px}
.ad-sort-sub{font-size:12px;color:var(--text-3);margin-top:2px}
.ad-sort-btns{display:flex;gap:8px;flex:none}
.ad-sort-foot{display:flex;gap:10px;justify-content:center;padding:18px 0 6px}

/* ---- 批量导入 ---- */
.ad-imp-title{font-size:14.5px;font-weight:600;color:var(--text-1)}
.ad-imp-sub{font-size:13.5px;font-weight:600;color:var(--text-1)}
.ad-imp-tip{font-size:12.5px;color:var(--text-3);line-height:1.7;margin:6px 0}
.ad-imp-actions{display:flex;gap:10px;margin-top:10px;flex-wrap:wrap}
.ad-imp-result{margin-top:14px;padding-top:14px;border-top:1px dashed var(--line)}
.ad-imp-head{display:flex;justify-content:space-between;align-items:center}
.ad-imp-summary{display:flex;gap:8px;margin:8px 0;flex-wrap:wrap}
.ad-imp-tag{font-size:12px;padding:2px 9px;border-radius:var(--r-3);
  background:var(--mist);color:var(--text-2)}
.ad-imp-tag.ok{background:#e7f3ec;color:var(--success)}
.ad-imp-tag.warn{background:#f5ecd9;color:#8a6528}
.ad-imp-tag.err{background:#f7e9e8;color:var(--danger)}
.ad-imp-rows{margin-top:6px}
.ad-imp-row{padding:8px 0;border-bottom:1px dashed var(--line)}
.ad-imp-row:last-child{border-bottom:0}
.ad-imp-row-head{display:flex;align-items:center;gap:8px}
.ad-imp-row-name{font-size:12.5px;color:var(--text-2)}
.ad-imp-msg{font-size:12px;line-height:1.6;margin-top:3px}
.ad-imp-msg.err{color:var(--danger)}.ad-imp-msg.warn{color:#8a6528}

/* ---- 用户与权益赠送 ---- */
.ad-user-search{display:flex;gap:10px;margin-bottom:8px}
.ad-user-search .input{max-width:340px}
.ad-user-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.ad-user-name{font-size:14.5px;font-weight:600;color:var(--text-1)}
.ad-user-meta{font-size:12.5px;color:var(--text-3);margin-top:5px}
.ad-user-assets{font-size:13px;color:var(--text-2);margin-top:6px}
.ad-user-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}

/* ---- 定价管理 ---- */
.ad-price-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.ad-region-tag{font-size:11px;color:var(--text-3);background:var(--mist);
  padding:1px 7px;border-radius:var(--r-2);margin-left:6px;font-weight:400}
.ad-check{width:18px;height:18px;border-radius:50%;border:1px solid var(--line-strong);
  display:inline-flex;align-items:center;justify-content:center;color:#fff;
  font-size:12px;flex:none;cursor:pointer}
.ad-check.on{background:var(--ink);border-color:var(--ink)}

/* ---- 通用行（定价/订单/时段/倾诉 内部排列） ---- */
.ad-row{display:flex;justify-content:space-between;align-items:center;gap:14px;
  padding:12px 0;border-bottom:1px solid var(--line)}
.ad-row:last-child{border-bottom:0}
.ad-row-main{display:flex;align-items:center;gap:12px;flex:1;min-width:0;cursor:pointer}
.ad-row-side{display:flex;gap:10px;flex:none;align-items:center}

/* ---- 全局排期 ---- */
.ad-slot{display:flex;justify-content:space-between;align-items:center;gap:14px;
  padding:12px 0;border-bottom:1px solid var(--line)}
.ad-slot:last-child{border-bottom:0}
.ad-slot.booked{opacity:.6}
.ad-slot-info{font-size:14px;color:var(--text-1)}
.ad-slot-cname{font-size:13px;font-weight:600;color:var(--ink);margin-bottom:2px}
.ad-slot-status{font-size:12px;color:var(--text-3);margin-top:2px}
.ad-slot-actions{display:flex;gap:20px;flex:none}
.ad-slot-op{font-size:13.5px;color:var(--ink)}
.ad-slot-op.danger{color:var(--danger)}
.ad-time-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.ad-time-row .input{width:120px;flex:none;padding:9px 11px}
.ad-inline-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:6px 0}

/* ---- 管理端订单 ---- */
.ad-order-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.ad-order-no{font-size:12.5px;color:var(--text-3)}
.ad-order-body{display:flex;justify-content:space-between;gap:12px;
  margin-top:8px;font-size:14px;color:var(--text-1)}
.ad-order-amt{font-weight:700;color:var(--ink);flex:none}
.ad-order-meta{font-size:12px;color:var(--text-3);margin-top:6px}

/* ---- 倾诉定价审核 ---- */
.ad-vent-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.ad-vent-price{font-weight:700;font-size:15px;color:var(--ink)}
.ad-vent-meta{font-size:12.5px;color:var(--text-3);margin-top:6px}
.ad-vent-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:12px}

/* ---- 邀请入驻 ---- */
.ad-center{text-align:center}
.ad-invite-qr{display:flex;justify-content:center;padding:10px 0 4px}
.ad-invite-qr img{width:200px;height:200px;border:1px solid var(--line);
  border-radius:var(--r-4);background:#fff}
.ad-linkbox{background:var(--bg);border-radius:var(--r-3);padding:12px 14px;
  font-size:12.5px;color:var(--text-3);word-break:break-all;margin:10px 0}
.ad-invite-steps{font-size:13px;color:var(--text-2);line-height:2.1}

@media(max-width:900px){
  .ad-kpis{grid-template-columns:repeat(2,1fr)}
  .ad-an-grid{grid-template-columns:repeat(2,1fr)}
  .ad-price-fields{grid-template-columns:1fr}
}
@media(max-width:560px){
  .ad-kpis,.ad-an-grid{grid-template-columns:1fr}
  .ad-slot,.ad-row{flex-wrap:wrap}
}

/* ============================================================
 * 咨询师工作台 7 Tab(.wb-*) · 功能对齐小程序 packageStaff/workbench
 * ============================================================ */
.kpi-card{padding:18px 20px}
.kpi-card .ms-num{font-size:24px}

/* Tab 红色角标 */
.wb-tabs button{position:relative;white-space:nowrap}
.wb-nav-badge{position:absolute;top:0;right:-14px;min-width:16px;height:16px;padding:0 4px;
  border-radius:8px;background:var(--danger);color:#fff;font-size:10px;line-height:16px;text-align:center}

/* 今日:倾诉入口卡 / 房间卡 */
.wb-vent{display:flex;align-items:center;gap:12px;padding:16px 20px;margin-bottom:14px;
  text-decoration:none;color:inherit}
.wb-vent:hover{border-color:var(--line-strong);box-shadow:var(--sh-md)}
.wb-room{padding:16px 20px;margin-bottom:12px}
.wb-room.live{border-color:var(--success);box-shadow:0 0 0 1px var(--success) inset}
.wb-amber{color:var(--warn)}

/* 排班:批量管理复选框 / 时段底色 */
.wb-check{width:18px;height:18px;border-radius:5px;border:1.5px solid var(--line-strong);flex:none;
  margin-right:10px;display:inline-flex;align-items:center;justify-content:center;background:#fff}
.wb-check.checked{background:var(--gold-deep);border-color:var(--gold-deep)}
.wb-check.checked::after{content:'';width:9px;height:5px;border-left:2px solid #fff;
  border-bottom:2px solid #fff;transform:rotate(-45deg) translate(1px,-1px)}
.wb-check.disabled{background:var(--mist);opacity:.55}
.wb-slot.held{background:#fbf7ee}
.wb-slot.booked{background:#f6f9f7}
/* 急约待办(批次B):红调底色,与普通远期待确认单一眼区分 */
.wb-slot.urgent-held{background:#fdf3f2;border-left:3px solid #b0554f}
.wb-slot.urgent-held .wb-confirm-cd{color:#b0554f}

/* 图文消息 */
.wb-unread{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--danger);
  color:#fff;font-size:11px;line-height:18px;text-align:center;flex:none}
.wb-conv-avatar{width:38px;height:38px;border-radius:50%;background:var(--mist);color:#5d7e92;
  display:inline-flex;align-items:center;justify-content:center;font-weight:600;margin-right:12px;flex:none}
.wb-chat{padding:18px 20px}
.wb-msgs{height:380px;overflow-y:auto;margin-top:12px;padding:4px 2px;
  display:flex;flex-direction:column;gap:12px}
.wb-msg{max-width:72%;display:flex;flex-direction:column;align-items:flex-start}
.wb-msg.mine{align-self:flex-end;align-items:flex-end}
.wb-bubble{padding:9px 13px;border-radius:12px;background:var(--mist);color:var(--text-1);
  line-height:1.6;font-size:13.5px;word-break:break-word}
.wb-msg.mine .wb-bubble{background:var(--gold-deep);color:#fff}
.wb-sys{align-self:center;font-size:12px;color:var(--text-3);background:var(--bg);
  padding:3px 12px;border-radius:10px}

/* 来访者 / 成长档案 */
.wb-client{padding:16px 20px;margin-bottom:12px}
.wb-jbtn{margin-top:10px;display:flex;justify-content:space-between;align-items:center;gap:10px;
  background:#f4ecdd;border:1px solid #e6d7ba;color:var(--gold-deep);border-radius:var(--r-3);
  padding:10px 14px;cursor:pointer;font-size:13px}
.wb-jpanel{margin-top:10px;border:1px solid var(--line);border-radius:var(--r-3);
  padding:14px 16px;background:#fbfcfd}
.wb-crisis{background:#f7ebea;color:var(--danger);border:1px solid #ecc9c6;border-radius:var(--r-3);
  padding:10px 12px;margin-bottom:12px;font-size:13px;line-height:1.7}
.wb-jgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}
.wb-jkv{background:var(--bg);border-radius:var(--r-3);padding:10px 6px;text-align:center}
.wb-jkv strong{display:block;font-size:18px;color:var(--text-1)}
.wb-jkv span{font-size:12px;color:var(--text-3)}
.wb-jline{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line);line-height:1.8}
.wb-good{color:var(--success)}
.wb-bad{color:var(--danger)}

/* 邀请入驻 */
.wb-invite-code{font-size:24px;font-weight:700;letter-spacing:3px;text-align:center;color:var(--gold-deep);
  background:#f4ecdd;border:1px dashed var(--gold-soft);border-radius:var(--r-3);padding:12px;margin-top:6px}
.wb-invite-url{margin-top:6px;padding:9px 12px;background:var(--bg);border-radius:var(--r-3);
  word-break:break-all;user-select:all}

/* ============================================================
 * 倾诉接听台扩展(vc-*):状态灯 / 振铃卡 / 服务定价
 * ============================================================ */
.vc-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.vc-head .btn{flex:none}
.vc-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px;
  vertical-align:middle;background:#c3ced6}
.d-IDLE{background:var(--success)}
.d-BUSY{background:var(--warn)}
.d-PAUSED{background:var(--text-3)}
.d-OFFLINE{background:#c3ced6}
.vc-active{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  border-color:var(--success);box-shadow:0 0 0 1px var(--success) inset}
.vc-ring{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  border-color:#e4b7b3;box-shadow:0 0 0 1px var(--danger) inset}
.vc-price-sec{padding:16px 0;border-top:1px solid var(--line);margin-top:16px}
.vc-price-sec:first-of-type{border-top:none;padding-top:8px;margin-top:8px}
.vc-sec-title{font-weight:600;color:var(--text-1);font-size:14.5px}
.vc-tag{font-size:11.5px;padding:2px 10px;border-radius:10px;font-weight:500}
.vc-tag.g{color:var(--success);background:#e7f3ec}
.vc-tag.o{color:var(--warn);background:#f5ecd9}
.vc-tag.r{color:var(--danger);background:#f7e9e8}
.vc-switch-row{display:flex;align-items:center;gap:9px;margin-top:10px;font-size:14px;cursor:pointer}
.vc-switch-row input{width:16px;height:16px;accent-color:var(--gold-deep)}
.vc-lbl{display:block;font-size:12.5px;color:var(--text-3);margin:14px 0 7px}
.vc-chips{display:flex;gap:8px;flex-wrap:wrap}
.vc-chip{padding:6px 16px;border-radius:999px;border:1px solid var(--line);background:#fff;
  color:var(--text-2);cursor:pointer;font-size:13px}
.vc-chip:hover{border-color:var(--gold);color:var(--gold-deep)}
.vc-chip.on{border-color:var(--gold-deep);background:#faf3e2;color:var(--gold-deep);font-weight:600;
  box-shadow:0 0 0 1px var(--gold-deep) inset}
.vc-num-row{display:flex;align-items:center;gap:8px;margin-top:12px;flex-wrap:wrap}
.vc-num{width:96px;text-align:center;padding-left:8px;padding-right:8px}

@media(max-width:560px){
  .wb-jgrid{grid-template-columns:repeat(2,1fr)}
  .wb-msg{max-width:86%}
}

/* ============ 咨询师媒体工作台(回放/逐字稿/纪要) ============ */
.cm-wrap{max-width:860px;margin:20px auto;display:flex;flex-direction:column;gap:16px}
.cm-head .ms-num{font-size:15px}
.cm-title{margin:0 0 14px;font-size:16px}
.cm-error{max-width:560px;margin:40px auto;padding:40px;text-align:center}
.cm-list{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
.cm-item{border:1px solid var(--mist,#e5ebe8);border-radius:var(--r-3);
  padding:12px 14px;background:var(--paper,#fbfcfa)}
.cm-item .cm-play{margin-top:8px}
.cm-player{width:100%;margin-top:10px;max-height:360px;border-radius:var(--r-2);
  background:#0c1b20}
audio.cm-player{background:transparent;max-height:none}
.cm-trans{display:flex;flex-direction:column;gap:10px;max-height:520px;
  overflow-y:auto;padding-right:6px}
.cm-msg{border-radius:var(--r-3);padding:10px 14px;background:var(--mist,#eef3f0);
  max-width:88%}
.cm-msg.me{align-self:flex-end;background:rgba(214,158,46,.12)}
.cm-msg-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.cm-msg-state{margin-left:auto;font-weight:400}
.cm-msg-body{font-size:13.5px;line-height:1.85;color:var(--ink,#24302b);white-space:pre-wrap}
.cm-risk{font-size:11.5px;font-weight:700;padding:1px 8px;border-radius:999px}
.cm-risk.l1{background:#d64a3d;color:#fff}
.cm-risk.l2{background:#e8a23d;color:#fff}
.cm-risk.l3{background:#d6c98a;color:#4a4020}
.cm-draft-tip{display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  padding:10px 14px;border:1px dashed var(--gold,#d69e2e);border-radius:var(--r-3);
  margin-bottom:14px;background:rgba(214,158,46,.06)}
.cm-label{display:block;font-size:13px;font-weight:600;margin:12px 0 6px}
.cm-ta{width:100%;border:1px solid var(--mist,#dfe6e2);border-radius:var(--r-3);
  padding:10px 12px;font-size:14px;line-height:1.8;resize:vertical;font-family:inherit;
  background:#fff;color:var(--ink,#24302b)}
.cm-ta:focus{outline:none;border-color:var(--gold,#d69e2e)}
.cm-ta-sm{min-height:96px}
.cm-input{width:200px;max-width:100%;border:1px solid var(--mist,#dfe6e2);
  border-radius:var(--r-3);padding:8px 12px;font-size:14px}

/* ============================================================
 * 顶栏「大字版」切换入口(来访者浅色态 / 咨询师深色工作态)
 * 双 A 标识,aria-pressed 表达开关;状态逻辑见 js/core/elder.js
 * ============================================================ */
.elder-toggle{display:inline-flex;align-items:baseline;gap:2px;padding:6px 13px;border-radius:20px;
  border:1px solid var(--line-strong);background:#fff;color:var(--ink);line-height:1;
  font-weight:600;white-space:nowrap;transition:.15s}
.elder-toggle:hover{border-color:var(--gold);color:var(--gold-deep)}
.elder-toggle .et-small{font-size:11px;color:var(--text-3);font-weight:400}
.elder-toggle .et-big{font-size:17px;color:var(--text-1)}
.elder-toggle[aria-pressed="true"]{background:var(--gold-deep);border-color:var(--gold-deep)}
.elder-toggle[aria-pressed="true"]:hover{filter:brightness(1.06);color:#fff}
.elder-toggle[aria-pressed="true"] .et-small{color:rgba(255,255,255,.78)}
.elder-toggle[aria-pressed="true"] .et-big{color:#fff}
/* 深色工作态顶栏:浅描边胶囊;开启后转白底深字,在墨青栏上最醒目 */
.topbar.staff .elder-toggle{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.55);color:#eef6fa}
.topbar.staff .elder-toggle .et-small{color:#c3d6df}
.topbar.staff .elder-toggle .et-big{color:#fff}
.topbar.staff .elder-toggle:hover{border-color:rgba(255,255,255,.85);background:rgba(255,255,255,.16)}
.topbar.staff .elder-toggle[aria-pressed="true"]{background:#fff;border-color:#fff;color:var(--ink)}
.topbar.staff .elder-toggle[aria-pressed="true"]:hover{filter:none;color:var(--ink)}
.topbar.staff .elder-toggle[aria-pressed="true"] .et-small{color:var(--text-3)}
.topbar.staff .elder-toggle[aria-pressed="true"] .et-big{color:var(--ink)}

/* ============================================================
 * 大字版(适老模式) · html.pc-elder
 * 历史样式字号为硬编码 px(500+ 处,无法用变量整组替换),
 * 采用根级 zoom 等比放大全站文字 / 控件 / 留白 / 弹层(等价浏览器
 * 页面缩放,sticky 顶栏与 fixed 弹层定位均正常,响应式断点不变),
 * 模板结构与业务逻辑零改动;并加深次要文字(对齐 H5 .mj-elder)。
 * 开关由 js/core/elder.js 管理,选择持久化 localStorage(mj_elder_font)。
 * ============================================================ */
.pc-elder{
  zoom:1.15;
  --text-3:#55707c;
}
/* 工作态深底下的浅灰注释同样提亮一档,保证放大后仍清晰 */
.pc-elder .topbar.staff .brand small,
.pc-elder .topbar.staff .user-chip .mini{color:#bcd2dd}

/* ============================================================
 * 首页「用户故事」横向滑动卡片(PC 端)
 * 数据来自 GET /stories;标题 + 一句话摘要,点击弹窗读全文。
 * ============================================================ */
.stories-track{
  display:flex;gap:16px;overflow-x:auto;padding:4px 2px 14px;
  scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;
  overscroll-behavior-x:contain;
  scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;
}
.stories-track::-webkit-scrollbar{height:6px}
.stories-track::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:3px}
.story-card{
  flex:0 0 248px;min-height:138px;display:flex;flex-direction:column;gap:10px;
  background:#fff;border:1px solid var(--line);border-radius:var(--r-3);
  padding:16px 18px;cursor:pointer;scroll-snap-align:start;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.story-card:hover{
  transform:translateY(-3px);border-color:var(--gold-soft);box-shadow:var(--sh-md);
}
.story-card:focus-visible{outline:2px solid var(--gold-deep);outline-offset:2px}
.story-tag{
  align-self:flex-start;font-size:12px;color:var(--gold-deep);
  background:var(--gold-soft);border-radius:999px;padding:3px 10px;
}
.story-card h3{
  font-size:15px;font-weight:600;color:var(--text-1);line-height:1.4;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.story-card p{
  font-size:13px;color:var(--text-3);line-height:1.55;margin-top:auto;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.story-body{
  white-space:pre-wrap;font-size:15px;line-height:1.9;color:var(--text-1);
  word-break:break-word;
}
.story-note{
  margin:18px 0 0;padding-top:14px;border-top:1px dashed var(--line);
  font-size:12px;color:var(--text-3);line-height:1.6;text-align:center;
}

