/* ═══════════════════════════════════════════════
   都市恋情 · 轻漫画风UI · v3完整版
   容器: <ai>  |  夜间模式: <ai class="dk">
   ═══════════════════════════════════════════════ */

/* ── 动画 ── */
@keyframes fadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes shimmer{0%,100%{opacity:.55}50%{opacity:1}}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(255,59,48,.3)}50%{box-shadow:0 0 10px 3px rgba(255,59,48,.15)}}
@keyframes floatL{from{opacity:0;transform:translateX(-14px)}to{opacity:1;transform:translateX(0)}}
@keyframes floatR{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:translateX(0)}}
@keyframes gradFlow{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
@keyframes twinkle{0%,100%{text-shadow:0 0 4px rgba(201,169,110,.35)}50%{text-shadow:0 0 12px rgba(201,169,110,.8),0 0 24px rgba(201,169,110,.25)}}
@keyframes typing{from{max-width:0}to{max-width:100%}}
@keyframes neonPulse{0%,100%{box-shadow:0 0 5px rgba(100,200,255,.2)}50%{box-shadow:0 0 15px rgba(100,200,255,.4),0 0 30px rgba(100,200,255,.1)}}
@keyframes breathe{0%,100%{box-shadow:0 0 8px rgba(255,182,193,.12)}50%{box-shadow:0 0 20px rgba(255,182,193,.28)}}
@keyframes itemGlow{0%,100%{border-color:rgba(255,182,193,.25)}50%{border-color:rgba(255,107,107,.45)}}

/* ── 变量 · 亮色 ── */
ai{
  --pk:#FFB6C1;--pk2:#FF7F7F;--coral:#FF6B6B;
  --gold:#C9A96E;--gold2:#D4A574;--gold3:#e8d5a8;
  --blue:#e8f0fe;--blue2:#a8c8f0;--blue3:#dce8f8;
  --lav:#e8dff0;--lav2:#d5c8e8;
  --bg1:rgba(255,255,255,.55);--bg2:rgba(255,240,245,.6);
  --txt:#3a3a3a;--txt2:#777;--txt3:#aaa;
  --r:14px;--r2:10px;--r3:18px;
  --sh:0 2px 12px rgba(255,127,127,.1);
  --sh2:0 4px 20px rgba(255,127,127,.16);
  --glass:blur(14px) saturate(1.4);
  --border:rgba(255,182,193,.35);
  --bw:2px;
  --wx-green:#07C160;--fs-blue:#3370FF;--wb-orange:#FF6432;
  display:block;
  font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",system-ui,sans-serif;
  font-size:15px;line-height:1.75;color:var(--txt);
  padding:6px 2px;position:relative;
}

ai::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;
  background:
    radial-gradient(ellipse at 15% 8%,rgba(168,200,240,.22) 0%,transparent 50%),
    radial-gradient(ellipse at 85% 85%,rgba(255,182,193,.18) 0%,transparent 50%),
    radial-gradient(ellipse at 50% 45%,rgba(255,240,245,.25) 0%,transparent 60%);
}

/* ══════════════════════════════════════════
   ① 场景信息栏 <hd>
   ══════════════════════════════════════════ */
ai hd{
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-rows:auto auto auto;
  gap:8px;
  padding:16px 14px 14px;margin:0 0 14px;
  background:linear-gradient(145deg,rgba(232,240,254,.65),rgba(255,240,245,.65),rgba(252,228,236,.55));
  backdrop-filter:var(--glass);-webkit-backdrop-filter:var(--glass);
  border-radius:var(--r3);
  border:var(--bw) solid var(--border);
  box-shadow:var(--sh2),inset 0 1px 0 rgba(255,255,255,.6);
  position:relative;overflow:hidden;
  animation:fadeUp .6s ease-out;
}

ai hd::before{
  content:"";position:absolute;top:0;left:0;right:0;height:3.5px;
  background:linear-gradient(90deg,var(--blue2),var(--pk),var(--coral),var(--gold),var(--lav2),var(--blue2));
  background-size:300% 100%;animation:gradFlow 6s ease infinite;
}

ai hd::after{
  content:"";position:absolute;bottom:0;left:8%;right:8%;height:1px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
  animation:shimmer 3s ease-in-out infinite;
}

/* 时间区块 */
ai hd .ti{
  grid-column:1/3;grid-row:1;
  text-align:center;padding:8px 12px 10px;
  background:linear-gradient(135deg,rgba(255,255,255,.5),rgba(255,248,240,.4));
  border-radius:14px;
  border:var(--bw) solid rgba(201,169,110,.2);
  position:relative;
  box-shadow:inset 0 0 20px rgba(201,169,110,.04);
}

ai hd .ti::before,ai hd .ti::after{
  position:absolute;top:50%;font-size:10px;color:var(--gold);
  animation:twinkle 2.5s ease-in-out infinite;
}
ai hd .ti::before{content:"✦";left:12px;transform:translateY(-50%)}
ai hd .ti::after{content:"✦";right:12px;transform:translateY(-50%);animation-delay:1.2s}

ai hd .ti f{
  display:block;font-size:10px;font-weight:600;
  color:var(--gold);letter-spacing:3px;text-transform:uppercase;margin-bottom:2px;
}

ai hd t{
  display:block;font-size:14px;font-weight:600;
  color:var(--txt2);letter-spacing:.8px;line-height:1.4;
}

ai hd t em{
  display:block;font-style:normal;
  font-size:28px;font-weight:800;line-height:1.2;
  background:linear-gradient(135deg,var(--coral),var(--gold2),var(--coral));
  background-size:200% 200%;animation:gradFlow 5s ease infinite;
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  letter-spacing:2px;
  filter:drop-shadow(0 1px 2px rgba(201,169,110,.2));
}

/* 天气区块 */
ai hd .we{
  grid-column:1;grid-row:2;
  padding:10px 12px;
  background:linear-gradient(135deg,rgba(168,200,240,.15),rgba(200,220,248,.1));
  border-radius:12px;border:var(--bw) solid rgba(168,200,240,.25);
  position:relative;overflow:hidden;
  transition:all .3s ease;
}
ai hd .we:hover{
  border-color:rgba(168,200,240,.5);
  box-shadow:0 2px 12px rgba(168,200,240,.15);transform:translateY(-1px);
}
ai hd .we::before{
  content:"";position:absolute;top:-8px;right:-8px;
  width:40px;height:40px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,220,100,.25),transparent 70%);
}
ai hd .we f{display:block;font-size:10px;font-weight:700;color:var(--blue2);letter-spacing:2px;margin-bottom:4px}
ai hd .we f::before{content:"☁ ";font-size:12px}
ai hd .we d{display:block;font-size:14px;font-weight:600;color:var(--txt);line-height:1.4}

/* 地点区块 */
ai hd .lo{
  grid-column:2;grid-row:2;
  padding:10px 12px;
  background:linear-gradient(135deg,rgba(255,182,193,.12),rgba(255,200,200,.08));
  border-radius:12px;border:var(--bw) solid rgba(255,182,193,.25);
  position:relative;overflow:hidden;
  transition:all .3s ease;
}
ai hd .lo:hover{
  border-color:rgba(255,182,193,.5);
  box-shadow:0 2px 12px rgba(255,182,193,.15);transform:translateY(-1px);
}
ai hd .lo::before{
  content:"";position:absolute;bottom:-6px;left:-6px;
  width:30px;height:30px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,107,107,.12),transparent 70%);
}
ai hd .lo f{display:block;font-size:10px;font-weight:700;color:var(--coral);letter-spacing:2px;margin-bottom:4px}
ai hd .lo f::before{content:"📍 ";font-size:11px}
ai hd .lo d{display:block;font-size:14px;font-weight:600;color:var(--txt);line-height:1.4}

/* 故事简介区块 */
ai hd .sy{
  grid-column:1/3;grid-row:3;
  padding:10px 16px;
  background:linear-gradient(135deg,rgba(232,223,240,.15),rgba(255,240,245,.15));
  border-radius:12px;border:1.5px solid rgba(201,169,110,.12);
  text-align:center;position:relative;
}
ai hd .sy::before{
  content:"";position:absolute;top:0;left:15%;right:15%;height:1px;
  background:linear-gradient(90deg,transparent,rgba(201,169,110,.25),transparent);
}
ai hd .sy f{display:block;font-size:9px;font-weight:700;color:var(--gold);letter-spacing:3px;margin-bottom:4px}
ai hd .sy f::before{content:"✧ "}
ai hd .sy f::after{content:" ✧"}
ai hd .sy d{display:block;font-size:13.5px;font-style:italic;color:var(--txt2);line-height:1.65;letter-spacing:.6px}

/* ══════════════════════════════════════════
   正文 <article>
   ══════════════════════════════════════════ */
ai article{display:block;padding:4px 2px;margin-bottom:10px}
ai article p{
  margin:0 0 12px;text-indent:2em;
  font-size:15px;line-height:1.85;color:var(--txt);letter-spacing:.3px;
}

/* ══════════════════════════════════════════
   对话气泡 <bub> — Grid布局
   ══════════════════════════════════════════ */

/* NPC(左) */
ai bub{
  display:grid;
  grid-template-areas:"nm ." "av q";
  grid-template-columns:48px 1fr;
  grid-template-rows:auto auto;
  gap:2px 6px;
  margin:14px 0;padding-right:36px;
  animation:floatL .45s ease-out both;
  align-items:start;
}

ai bub nm{
  grid-area:nm;font-size:11.5px;font-weight:600;color:var(--gold);
  letter-spacing:.5px;padding-left:2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

ai bub av{
  grid-area:av;
  width:44px;height:44px;border-radius:50%;
  border:2.5px solid rgba(255,255,255,.9);
  box-shadow:0 2px 10px rgba(255,127,127,.18);
  background-color:var(--lav);background-size:cover;background-position:center 20%;
  display:flex;align-items:center;justify-content:center;
  font-size:15px;font-weight:700;color:var(--coral);
  overflow:hidden;flex-shrink:0;
  transition:transform .3s ease,box-shadow .3s ease;
}
ai bub av:hover{transform:scale(1.08);box-shadow:0 3px 14px rgba(255,127,127,.28)}

ai bub q{
  grid-area:q;display:block;position:relative;
  padding:10px 14px;border-radius:4px 16px 16px 16px;
  font-size:14.5px;line-height:1.7;
  max-width:88%;width:fit-content;word-break:break-word;
  overflow:hidden;animation:typing .8s steps(40,end) both;
  transition:transform .25s ease,box-shadow .25s ease;
}
ai bub q:hover{transform:translateY(-1px);box-shadow:var(--sh2)}

/* 尖角(左) */
ai bub q::before{
  content:"";position:absolute;top:12px;left:-7px;
  width:0;height:0;
  border-top:6px solid transparent;border-bottom:6px solid transparent;
}

/* 玩家(右) */
ai bub[r]{
  grid-template-areas:". nm" "q av";
  grid-template-columns:1fr 48px;
  padding-right:0;padding-left:36px;
  animation-name:floatR;justify-items:end;
}
ai bub[r] nm{text-align:right;padding-left:0;padding-right:2px}
ai bub[r] av{
  background:linear-gradient(135deg,var(--blue2),#b8d0e8);
  color:#fff;font-size:16px;font-weight:800;
}
ai bub[r] q{
  border-radius:16px 4px 16px 16px;
  background:linear-gradient(135deg,#dce8f8,#e8f0fe);
  color:#2a3a5a;box-shadow:0 2px 8px rgba(168,200,240,.22);
  margin-left:auto;
}
ai bub[r] q::before{
  left:auto;right:-7px;border-right:none;
  border-left:8px solid #dce8f8;
  border-top:6px solid transparent;border-bottom:6px solid transparent;
}

/* NPC通用色(浅紫灰) */
ai bub q{
  background:linear-gradient(135deg,#f0eaf5,#ebe4f0);
  color:#3a3050;box-shadow:0 2px 8px rgba(200,180,220,.18);
}
ai bub q::before{border-right:8px solid #f0eaf5}

/* 棠梨(樱花粉) */
ai bub[who="棠梨"] q{
  background:linear-gradient(135deg,#ffe4ec,#ffd6e0);color:#4a3040;
  box-shadow:0 2px 8px rgba(255,182,193,.22);
}
ai bub[who="棠梨"] q::before{border-right-color:#ffe4ec}
ai bub[who="棠梨"] nm{color:#e8758a}

/* 顾可颂(冰蓝) */
ai bub[who="顾可颂"] q{
  background:linear-gradient(135deg,#e0eaf8,#d8e4f4);color:#2a3550;
  box-shadow:0 2px 8px rgba(140,180,230,.2);
}
ai bub[who="顾可颂"] q::before{border-right-color:#e0eaf8}

/* NPC头像 */
ai bub[who="棠梨"] av{background-image:url("https://i.postimg.cc/25rzkJqt/0324eef5948c72347324fdc1cd55f1426.jpg");font-size:0}
ai bub[who="顾可颂"] av{background-image:url("https://i.postimg.cc/fR68Ynj4/820ee512fe4a64b537af0ac24dad4640.jpg");font-size:0}
ai bub[who="姜晚"] av{background-image:url("https://i.postimg.cc/yNDz8H1G/044ceca0099778879f5b755f38db41eb.jpg");font-size:0}
ai bub[who="牛大"] av{background-image:url("https://i.postimg.cc/D0LvyKgr/e952652b0e2825e46bee2cc6ec1886cf.jpg");font-size:0}
ai bub[who="宋茶"] av{background-image:url("https://i.postimg.cc/WzjKgLVL/3b732ff676a1a12d0c8ec18a096dd5e4-(1).jpg");font-size:0}
ai bub[who="裴临川"] av{background-image:url("https://i.postimg.cc/vH47h2mV/aa1db9a58f5ad516725d77b49fdc5f9e.jpg");font-size:0}

/* ══════════════════════════════════════════
   通用 details / summary
   ══════════════════════════════════════════ */
ai > details{
  margin:10px 0;border-radius:var(--r);overflow:hidden;
  border:var(--bw) solid var(--border);box-shadow:var(--sh);
  animation:fadeUp .5s ease-out both;
}

ai > details > summary{
  display:flex;align-items:center;
  padding:11px 16px;font-size:14.5px;font-weight:700;
  letter-spacing:1px;cursor:pointer;position:relative;
  transition:all .3s ease;list-style:none;
  background:linear-gradient(135deg,rgba(255,240,245,.75),rgba(232,240,254,.75));
  backdrop-filter:var(--glass);-webkit-backdrop-filter:var(--glass);
  color:var(--txt);border-bottom:1px solid rgba(255,182,193,.15);
}
ai > details > summary::-webkit-details-marker{display:none}

ai > details > summary::before{
  content:"›";display:inline-block;margin-right:8px;
  font-size:18px;font-weight:300;color:var(--coral);
  transition:transform .3s ease;
}
ai > details[open] > summary::before{transform:rotate(90deg)}

ai > details > summary::after{
  content:"";position:absolute;bottom:0;left:10%;right:10%;height:1.5px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
  opacity:0;transition:opacity .3s ease;
}
ai > details[open] > summary::after{opacity:1}

ai > details > summary:hover{
  background:linear-gradient(135deg,rgba(255,228,236,.85),rgba(218,230,248,.85));
  box-shadow:0 0 15px rgba(255,107,107,.08);
}
ai > details[open]{border-color:rgba(255,182,193,.5);box-shadow:var(--sh2)}

/* ── 各details主题色(nth-of-type新序号) ── */

/* 1: 待做事项 */
ai > details:nth-of-type(1) > summary{
  background:linear-gradient(135deg,rgba(255,248,230,.75),rgba(255,240,218,.75));
}
ai > details:nth-of-type(1) > summary::before{content:"📋 ";font-size:14px;transform:none}
ai > details:nth-of-type(1)[open] > summary::before{transform:none}
ai > details:nth-of-type(1){border-color:rgba(201,169,110,.3)}

/* 2: 手机讯息 */
ai > details:nth-of-type(2) > summary{
  background:linear-gradient(135deg,rgba(235,255,245,.7),rgba(220,248,235,.7));
}
ai > details:nth-of-type(2) > summary::before{content:"📱 ";font-size:15px;transform:none}
ai > details:nth-of-type(2)[open] > summary::before{transform:none}
ai > details:nth-of-type(2){border-color:rgba(7,193,96,.2)}

/* 3: 玩家卡 */
ai > details:nth-of-type(3) > summary{
  background:linear-gradient(135deg,rgba(220,232,248,.7),rgba(232,240,254,.7));
}
ai > details:nth-of-type(3){border-color:rgba(168,200,240,.3)}

/* 4: 棠梨卡 */
ai > details:nth-of-type(4) > summary{
  background:linear-gradient(135deg,rgba(255,228,236,.7),rgba(255,240,245,.7));
}
ai > details:nth-of-type(4){border-color:rgba(255,182,193,.35)}

/* 5: NPC卡 */
ai > details:nth-of-type(5) > summary{
  background:linear-gradient(135deg,rgba(232,223,240,.7),rgba(240,235,248,.7));
}
ai > details:nth-of-type(5){border-color:rgba(200,180,220,.3)}

/* 6: 星记忆 */
ai > details:nth-of-type(6) > summary{
  background:linear-gradient(135deg,rgba(255,248,230,.7),rgba(255,240,218,.7));
}
ai > details:nth-of-type(6) > summary::before{content:"⭐ ";font-size:13px;margin-right:6px;transform:none;animation:twinkle 2.5s ease-in-out infinite}
ai > details:nth-of-type(6)[open] > summary::before{transform:none}
ai > details:nth-of-type(6){border-color:rgba(201,169,110,.25)}

/* ══════════════════════════════════════════
   ③ 待做事项 <section class="td">
   ══════════════════════════════════════════ */
ai section.td{
  padding:10px 14px 12px;
  background:linear-gradient(135deg,rgba(255,252,240,.5),rgba(255,248,230,.4));
  backdrop-filter:var(--glass);-webkit-backdrop-filter:var(--glass);
}

ai .td f{
  display:flex;align-items:center;gap:6px;
  font-size:14px;font-weight:700;
  color:var(--coral);margin:10px 0 5px;
  padding:6px 0 6px 12px;
  border-left:3px solid var(--coral);
  background:linear-gradient(90deg,rgba(255,107,107,.06),transparent);
  border-radius:0 var(--r2) var(--r2) 0;
  position:relative;
}

ai .td f:first-child{margin-top:2px}

/* 日常标签专属色 */
ai .td f:nth-of-type(1){
  color:#5a8a5a;border-left-color:#5a8a5a;
  background:linear-gradient(90deg,rgba(90,138,90,.06),transparent);
}

/* 棠梨标签专属色 */
ai .td f:nth-of-type(2){
  color:#e8758a;border-left-color:#e8758a;
  background:linear-gradient(90deg,rgba(232,117,138,.06),transparent);
}

ai .td f em{
  font-style:normal;font-size:12px;font-weight:400;
  color:var(--txt2);margin-left:auto;padding-right:8px;
}

ai .td d{
  display:block;font-size:13.5px;line-height:1.6;
  color:var(--txt);padding:3px 4px 3px 18px;
  position:relative;margin:2px 0;
}

ai .td d::before{
  content:"";position:absolute;left:8px;top:50%;transform:translateY(-50%);
  width:5px;height:5px;border-radius:50%;
  border:1.5px solid var(--gold);
  background:transparent;
}

/* ══════════════════════════════════════════
   角色状态卡内部
   ══════════════════════════════════════════ */
ai section.pc,ai section.nc{
  padding:10px 14px 12px;
  background:var(--bg1);
  backdrop-filter:var(--glass);-webkit-backdrop-filter:var(--glass);
}

ai .pc f,ai .nc f{
  display:block;font-size:13.5px;font-weight:700;
  color:var(--coral);margin:12px 0 6px;
  padding:5px 0 5px 12px;
  border-left:3px solid var(--coral);
  position:relative;letter-spacing:1px;
  background:linear-gradient(90deg,rgba(255,107,107,.06),transparent);
  border-radius:0 var(--r2) var(--r2) 0;
}
ai .pc f:first-child,ai .nc f:first-child{margin-top:2px}

ai .pc f::after,ai .nc f::after{
  content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);
  width:30%;height:1px;
  background:linear-gradient(90deg,transparent,rgba(201,169,110,.3));
}

/* ①随身物品旁的提示小字 */
ai .pc f em,ai .nc f em{
  font-style:italic;font-size:10.5px;font-weight:400;
  color:var(--txt3);margin-left:8px;letter-spacing:.3px;
  animation:shimmer 2.5s ease-in-out infinite;
}

/* ①物品 <details class="itm"> — 点击整体展开 */
ai details.itm{
  margin:5px 0;border-radius:var(--r2);
  border:var(--bw) solid rgba(255,182,193,.28);
  overflow:hidden;
  transition:all .3s ease;
  animation:itemGlow 4s ease-in-out infinite;
}

ai details.itm:hover{
  border-color:rgba(255,107,107,.5);
  box-shadow:0 2px 12px rgba(255,182,193,.2);
  transform:translateX(3px);
}

ai details.itm summary{
  display:block;padding:9px 14px;
  font-size:15.5px;font-weight:700;font-style:italic;
  color:var(--txt);letter-spacing:.6px;
  cursor:pointer;list-style:none;
  background:linear-gradient(135deg,rgba(255,255,255,.6),rgba(255,240,245,.4));
  transition:all .3s ease;
  position:relative;
}

ai details.itm summary::-webkit-details-marker{display:none}

ai details.itm summary::before{
  content:"🎀 ";font-size:12px;font-style:normal;
}

ai details.itm summary::after{
  content:"▾";position:absolute;right:12px;top:50%;transform:translateY(-50%);
  font-size:13px;color:var(--coral);font-style:normal;
  transition:transform .3s ease;opacity:.6;
}

ai details.itm[open] summary::after{transform:translateY(-50%) rotate(180deg)}

ai details.itm summary:hover{
  background:linear-gradient(135deg,rgba(255,230,238,.7),rgba(255,220,230,.5));
}

ai details.itm tip{
  display:block;padding:8px 14px;
  font-size:12.5px;font-weight:400;font-style:normal;
  color:var(--txt2);line-height:1.65;letter-spacing:.3px;
  background:rgba(255,255,255,.5);
  border-top:1.5px dashed rgba(255,182,193,.3);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}

ai details.itm[open]{
  border-color:rgba(255,107,107,.4);
  box-shadow:0 3px 14px rgba(255,182,193,.2);
}

/* ══════════════════════════════════════════
   ⑥ 手机讯息 <msg>
   ══════════════════════════════════════════ */
ai msg{
  display:block;padding:10px 12px;
  background:var(--bg1);
  backdrop-filter:var(--glass);-webkit-backdrop-filter:var(--glass);
}

ai msg f{
  display:block;font-size:13px;font-weight:700;
  letter-spacing:1.5px;margin:12px 0 8px;
  padding:6px 12px;border-radius:8px;position:relative;
}
ai msg f:first-child{margin-top:2px}

/* 微信标题 + 提示小字 */
ai msg f:nth-of-type(1){
  background:linear-gradient(135deg,rgba(7,193,96,.1),rgba(7,193,96,.03));
  color:var(--wx-green);border-left:3px solid var(--wx-green);
  display:flex;align-items:center;gap:6px;
}
ai msg f:nth-of-type(1)::before{content:"💬 ";font-size:13px}
ai msg f:nth-of-type(1)::after{
  content:"点击可查看完整信息";
  font-size:10px;font-weight:400;font-style:italic;
  color:var(--txt3);letter-spacing:.3px;
  margin-left:auto;opacity:.7;
  animation:shimmer 3s ease-in-out infinite;
}

/* 飞书标题 */
ai msg f:nth-of-type(2){
  background:linear-gradient(135deg,rgba(51,112,255,.1),rgba(51,112,255,.03));
  color:var(--fs-blue);border-left:3px solid var(--fs-blue);
}
ai msg f:nth-of-type(2)::before{content:"📎 "}

/* 微博标题 */
ai msg f:nth-of-type(3){
  background:linear-gradient(135deg,rgba(255,100,50,.1),rgba(255,100,50,.03));
  color:var(--wb-orange);border-left:3px solid var(--wb-orange);
}
ai msg f:nth-of-type(3)::before{content:"🔥 "}

/* 其他讯息标题 */
ai msg f:nth-of-type(4){
  background:linear-gradient(135deg,rgba(150,150,150,.08),rgba(150,150,150,.03));
  color:#888;border-left:3px solid #bbb;
}
ai msg f:nth-of-type(4)::before{content:"📌 "}

/* 微信顶栏(增强) */
ai msg .wxbar{
  display:flex;align-items:center;justify-content:center;
  padding:6px 12px;margin:0 0 6px;
  background:linear-gradient(180deg,#ebebeb,#f7f7f7);
  border-radius:10px 10px 0 0;
  border-bottom:1.5px solid rgba(0,0,0,.06);
}
ai msg .wxbar d.wxs{
  display:block;font-size:11px;color:#999;letter-spacing:1px;
  padding:3px 18px;background:rgba(255,255,255,.6);border-radius:14px;
  border:1px solid rgba(0,0,0,.06);
}
ai msg .wxbar d.wxs::before{content:"🔍 ";font-size:10px}

/* ── 微信消息条 <details class="wx"> 纯 CSS 点击展开 ── */
ai msg details.wx{
  display:flex;align-items:flex-start;gap:10px;
  padding:10px 12px;margin:3px 0;
  background:linear-gradient(135deg,rgba(255,255,255,.72),rgba(240,255,245,.45));
  border-radius:12px;border:1.5px solid rgba(7,193,96,.1);
  transition:all .25s ease;position:relative;overflow:hidden;
  cursor:pointer;
}
ai msg details.wx::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
  background:linear-gradient(180deg,#07C160,#05a050);
  border-radius:3px 0 0 3px;opacity:0;transition:opacity .3s ease;
}
ai msg details.wx:hover{
  border-color:rgba(7,193,96,.28);
  box-shadow:0 2px 12px rgba(7,193,96,.1);transform:translateX(2px);
}
ai msg details.wx:hover::before{opacity:1}

ai msg details.wx > summary{
  display:flex;align-items:flex-start;gap:10px;
  width:100%;
  list-style:none;
  cursor:pointer;
  /* 隐藏默认三角标 */
  &::-webkit-details-marker{display:none}
}
ai msg details.wx > summary::after{
  content:none; /* 移除可能出现的箭头 */
}

ai msg details.wx av{
  flex-shrink:0;width:40px;height:40px;border-radius:8px;
  background-color:#e8e8e8;background-size:cover;background-position:center 20%;
  display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:700;color:var(--coral);
  overflow:hidden;box-shadow:0 1px 4px rgba(0,0,0,.08);
}

/* 微信NPC头像匹配 */
ai msg details.wx[who="棠梨"] av{background-image:url("https://i.postimg.cc/25rzkJqt/0324eef5948c72347324fdc1cd55f1426.jpg");font-size:0}
ai msg details.wx[who="顾可颂"] av{background-image:url("https://i.postimg.cc/fR68Ynj4/820ee512fe4a64b537af0ac24dad4640.jpg");font-size:0}
ai msg details.wx[who="姜晚"] av{background-image:url("https://i.postimg.cc/yNDz8H1G/044ceca0099778879f5b755f38db41eb.jpg");font-size:0}
ai msg details.wx[who="牛大"] av{background-image:url("https://i.postimg.cc/D0LvyKgr/e952652b0e2825e46bee2cc6ec1886cf.jpg");font-size:0}
ai msg details.wx[who="宋茶"] av{background-image:url("https://i.postimg.cc/WzjKgLVL/3b732ff676a1a12d0c8ec18a096dd5e4-(1).jpg");font-size:0}
ai msg details.wx[who="裴临川"] av{background-image:url("https://i.postimg.cc/vH47h2mV/aa1db9a58f5ad516725d77b49fdc5f9e.jpg");font-size:0}

ai msg details.wx d{
  display:flex;flex-direction:column;flex:1;min-width:0;gap:2px;position:relative;
}
ai msg details.wx d nm{
  font-size:13.5px;font-weight:700;color:var(--txt);letter-spacing:.3px;
}
ai msg details.wx d em{
  font-size:12.5px;font-style:normal;color:var(--txt2);
  line-height:1.55;
  /* 默认截断两行 */
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  text-overflow:ellipsis;
  transition:all .35s ease;
}
/* 展开后取消截断 */
ai msg details.wx[open] d em{
  -webkit-line-clamp:unset;
  display:block;
  overflow:visible;
}

ai msg details.wx d span{
  position:absolute;right:0;top:0;
  font-size:11px;color:#aaa;font-variant-numeric:tabular-nums;
}

/* 未读红点（放在 details 上） */
ai msg details.wx::after{
  content:"";position:absolute;right:12px;bottom:12px;
  width:8px;height:8px;border-radius:50%;
  background:#FF3B30;box-shadow:0 0 4px rgba(255,59,48,.35);
  animation:pulse 2s ease-in-out infinite;
}

/* 飞书 */
ai msg d.fs{
  display:block;padding:8px 12px;margin:4px 0;
  background:linear-gradient(135deg,rgba(240,244,255,.65),rgba(230,238,255,.45));
  border-radius:10px;border:1.5px solid rgba(51,112,255,.1);
  font-size:13px;color:var(--txt);transition:all .25s ease;
}
ai msg d.fs:hover{border-color:rgba(51,112,255,.28);box-shadow:0 2px 10px rgba(51,112,255,.07)}
ai msg d.fs nm{display:block;font-size:13px;font-weight:700;color:var(--fs-blue);margin-bottom:2px}
ai msg d.fs nm::before{content:"📋 ";font-size:11px}
ai msg d.fs em{font-style:normal;font-size:12.5px;color:var(--txt2);line-height:1.55}

/* 微博 */
ai msg d.wb{
  display:block;padding:8px 12px;margin:4px 0;
  background:linear-gradient(135deg,rgba(255,245,240,.65),rgba(255,238,230,.45));
  border-radius:10px;border:1.5px solid rgba(255,100,50,.1);
  font-size:13px;color:var(--txt);transition:all .25s ease;
}
ai msg d.wb:hover{border-color:rgba(255,100,50,.28);box-shadow:0 2px 10px rgba(255,100,50,.07)}
ai msg d.wb nm{display:block;font-size:13px;font-weight:700;color:var(--wb-orange);margin-bottom:2px}
ai msg d.wb nm::before{content:"@ ";font-weight:800}
ai msg d.wb em{font-style:normal;font-size:12.5px;color:var(--txt2);line-height:1.55}

/* 其他讯息 */
ai msg d.ot{
  display:block;padding:8px 12px;margin:4px 0;
  background:rgba(245,245,245,.45);border-radius:10px;
  border:1.5px solid rgba(200,200,200,.15);
  font-size:12.5px;color:var(--txt2);transition:all .25s ease;
}
ai msg d.ot:hover{background:rgba(240,240,240,.65)}
ai msg d.ot em{font-style:normal;line-height:1.55}

/* ══════════════════════════════════════════
   星记忆 <section class="mem">
   ══════════════════════════════════════════ */
ai section.mem{
  padding:10px 12px;
  background:linear-gradient(135deg,rgba(255,248,240,.55),rgba(255,240,245,.35));
  backdrop-filter:var(--glass);-webkit-backdrop-filter:var(--glass);
}

ai .mem f{
  display:block;font-size:13.5px;font-weight:700;
  color:var(--gold);margin:10px 0 6px;
  padding:5px 0 5px 12px;
  border-left:3px solid var(--gold);
  background:linear-gradient(90deg,rgba(201,169,110,.08),transparent);
  border-radius:0 8px 8px 0;letter-spacing:1px;
  animation:twinkle 3s ease-in-out infinite;
}

ai .mem details{
  margin:6px 0;border-radius:var(--r2);
  border:1.5px solid rgba(201,169,110,.2);overflow:hidden;
}
ai .mem details summary{
  padding:8px 14px;font-size:13px;font-weight:600;
  cursor:pointer;list-style:none;
  background:rgba(255,248,240,.55);color:var(--gold);
  letter-spacing:.5px;transition:all .3s ease;
}
ai .mem details summary::-webkit-details-marker{display:none}
ai .mem details summary::before{content:"⚜ ";font-size:11px}
ai .mem details summary:hover{background:rgba(255,240,220,.75)}

ai .mem d{
  display:block;font-size:12.5px;color:var(--txt2);
  padding:2px 4px 2px 14px;line-height:1.6;position:relative;
}
ai .mem d::before{content:"·";position:absolute;left:4px;color:var(--gold);font-weight:700}

/* 记忆表格 */
ai .mem table{
  width:100%;border-collapse:separate;border-spacing:0;
  margin:6px 0 10px;font-size:12px;
  border-radius:var(--r2);overflow:hidden;
  border:1.5px solid rgba(201,169,110,.18);
}
ai .mem table th{
  background:linear-gradient(135deg,rgba(201,169,110,.14),rgba(201,169,110,.06));
  color:var(--gold);font-weight:700;font-size:11.5px;
  padding:7px 8px;text-align:left;letter-spacing:.5px;
  border-bottom:1.5px solid rgba(201,169,110,.18);
}
ai .mem table td{
  padding:6px 8px;border-bottom:1px solid rgba(201,169,110,.07);
  color:var(--txt);font-size:12px;line-height:1.55;vertical-align:top;
}
ai .mem table tr:nth-child(even) td{background:rgba(255,248,240,.35)}
ai .mem table tr:last-child td{border-bottom:none}
ai .mem table tr:hover td{background:rgba(201,169,110,.06)}

/* ══════════════════════════════════════════
   选项区 <section class="op">
   ══════════════════════════════════════════ */
ai section.op{display:flex;flex-direction:column;gap:6px;margin:14px 0 6px;padding:0 2px}

ai opt{
  display:block;padding:11px 16px;border-radius:12px;
  font-size:14px;line-height:1.6;cursor:pointer;
  transition:all .3s ease;position:relative;overflow:hidden;
  letter-spacing:.3px;border:var(--bw) solid transparent;
}

ai opt.a{
  background:linear-gradient(135deg,rgba(255,230,238,.65),rgba(255,218,228,.45));
  border-color:rgba(255,182,193,.3);color:#6a3a4a;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}
ai opt.a:hover{
  border-color:var(--pk);
  background:linear-gradient(135deg,rgba(255,218,228,.82),rgba(255,208,218,.65));
  box-shadow:0 3px 14px rgba(255,182,193,.22);transform:translateX(4px);
}

ai opt.b{
  background:linear-gradient(135deg,rgba(232,240,254,.65),rgba(220,232,248,.45));
  border-color:rgba(168,200,240,.3);color:#2a3a5a;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}
ai opt.b:hover{
  border-color:var(--blue2);
  background:linear-gradient(135deg,rgba(220,232,248,.82),rgba(210,224,244,.65));
  box-shadow:0 3px 14px rgba(168,200,240,.22);transform:translateX(4px);
}

ai opt.c{
  background:linear-gradient(135deg,rgba(232,223,240,.65),rgba(225,215,235,.45));
  border-color:rgba(180,160,210,.25);color:#3a3050;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}
ai opt.c:hover{
  border-color:#b8a0d0;
  background:linear-gradient(135deg,rgba(225,215,235,.82),rgba(218,208,230,.65));
  box-shadow:0 3px 14px rgba(180,160,210,.18);transform:translateX(4px);
}

ai opt.d{
  background:linear-gradient(135deg,rgba(255,248,230,.65),rgba(255,240,210,.45));
  border-color:rgba(201,169,110,.25);color:#5a4a2a;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}
ai opt.d::after{
  content:"✨";position:absolute;right:14px;top:50%;transform:translateY(-50%);
  font-size:14px;animation:twinkle 2s ease-in-out infinite;
}
ai opt.d:hover{
  border-color:var(--gold);
  background:linear-gradient(135deg,rgba(255,240,210,.82),rgba(255,232,195,.65));
  box-shadow:0 3px 14px rgba(201,169,110,.22);transform:translateX(4px);
}
ai opt:active{transform:translateX(2px) scale(.99)}

/* ══════════════════════════════════════════
   分隔线 & 间距
   ══════════════════════════════════════════ */
ai > details + details{margin-top:6px}

ai article + details::before{
  content:"";display:block;height:1.5px;margin:0 12%;
  background:linear-gradient(90deg,transparent,var(--pk),var(--gold),var(--pk),transparent);
}

/* ══════════════════════════════════════════
   滚动条
   ══════════════════════════════════════════ */
ai::-webkit-scrollbar,ai details::-webkit-scrollbar{width:4px}
ai::-webkit-scrollbar-track,ai details::-webkit-scrollbar-track{background:transparent}
ai::-webkit-scrollbar-thumb,ai details::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,var(--pk),var(--coral));border-radius:4px;
}

/* ══════════════════════════════════════════
   夜间模式 <ai class="dk">
   ══════════════════════════════════════════ */
ai.dk{
  --pk:#804060;--pk2:#a05070;--coral:#c05858;
  --gold:#b89860;--gold2:#a08548;--gold3:#6a5830;
  --blue:#1a2a3e;--blue2:#3a6090;--blue3:#2a3a50;
  --lav:#2a2040;--lav2:#3a2850;
  --bg1:rgba(20,20,30,.75);--bg2:rgba(30,20,28,.7);
  --txt:#d8d8e0;--txt2:#8a8a9a;--txt3:#5a5a6a;
  --border:rgba(100,80,120,.35);
  --sh:0 2px 12px rgba(0,0,0,.3);
  --sh2:0 4px 20px rgba(0,0,0,.4);
  --wx-green:#05a855;--fs-blue:#5588ff;--wb-orange:#e06030;
  color:var(--txt);
}

ai.dk::before{
  background:
    radial-gradient(ellipse at 15% 8%,rgba(50,80,130,.2) 0%,transparent 50%),
    radial-gradient(ellipse at 85% 85%,rgba(100,50,80,.15) 0%,transparent 50%),
    radial-gradient(ellipse at 50% 45%,rgba(20,20,40,.3) 0%,transparent 60%);
}

ai.dk hd{
  background:linear-gradient(145deg,rgba(25,30,45,.7),rgba(35,25,35,.7),rgba(30,20,30,.6));
  border-color:rgba(100,80,120,.3);
  box-shadow:0 4px 20px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.05);
}
ai.dk hd .ti{
  background:linear-gradient(135deg,rgba(40,35,50,.5),rgba(35,30,40,.4));
  border-color:rgba(180,152,96,.2);
}
ai.dk hd .we{
  background:linear-gradient(135deg,rgba(30,40,55,.4),rgba(35,45,60,.3));
  border-color:rgba(60,100,150,.25);
}
ai.dk hd .lo{
  background:linear-gradient(135deg,rgba(45,30,35,.4),rgba(50,35,40,.3));
  border-color:rgba(150,70,80,.2);
}
ai.dk hd .sy{
  background:linear-gradient(135deg,rgba(35,28,45,.3),rgba(40,30,40,.25));
  border-color:rgba(180,152,96,.1);
}
ai.dk hd t em{
  background:linear-gradient(135deg,#c08050,#e8b870,#c08050);
  background-size:200% 200%;
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}

/* 夜间气泡 */
ai.dk bub q{
  background:linear-gradient(135deg,rgba(40,35,55,.7),rgba(45,38,58,.6));
  color:#d0d0d8;box-shadow:0 2px 8px rgba(0,0,0,.25);
}
ai.dk bub q::before{border-right-color:rgba(40,35,55,.7)}
ai.dk bub[who="棠梨"] q{
  background:linear-gradient(135deg,rgba(60,30,40,.65),rgba(70,35,45,.55));color:#e8c8d0;
}
ai.dk bub[who="棠梨"] q::before{border-right-color:rgba(60,30,40,.65)}
ai.dk bub[r] q{
  background:linear-gradient(135deg,rgba(30,40,60,.65),rgba(35,45,65,.55));color:#c8d8e8;
}
ai.dk bub[r] q::before{border-left-color:rgba(30,40,60,.65);border-right:none}
ai.dk bub av{border-color:rgba(255,255,255,.15);box-shadow:0 2px 10px rgba(0,0,0,.3)}

/* 夜间details */
ai.dk > details > summary{
  background:linear-gradient(135deg,rgba(30,25,40,.75),rgba(25,30,40,.75));
  color:var(--txt);border-bottom-color:rgba(255,255,255,.05);
}
ai.dk > details{border-color:rgba(100,80,120,.25);box-shadow:0 2px 12px rgba(0,0,0,.3)}
ai.dk > details > summary:hover{
  background:linear-gradient(135deg,rgba(40,32,50,.8),rgba(32,38,50,.8));
}

/* 夜间各details色 */
ai.dk > details:nth-of-type(1) > summary{background:linear-gradient(135deg,rgba(45,38,22,.55),rgba(42,36,20,.55))}
ai.dk > details:nth-of-type(2) > summary{background:linear-gradient(135deg,rgba(5,80,45,.25),rgba(15,50,35,.25))}
ai.dk > details:nth-of-type(3) > summary{background:linear-gradient(135deg,rgba(25,35,55,.6),rgba(30,38,55,.6))}
ai.dk > details:nth-of-type(4) > summary{background:linear-gradient(135deg,rgba(55,25,35,.5),rgba(50,28,38,.5))}
ai.dk > details:nth-of-type(5) > summary{background:linear-gradient(135deg,rgba(35,28,48,.55),rgba(38,30,50,.55))}
ai.dk > details:nth-of-type(6) > summary{background:linear-gradient(135deg,rgba(45,38,22,.55),rgba(42,36,20,.55))}

/* 夜间状态卡 */
ai.dk section.pc,ai.dk section.nc{background:var(--bg1)}
ai.dk .pc f,ai.dk .nc f{background:linear-gradient(90deg,rgba(192,88,88,.08),transparent)}

/* 夜间待做事项 */
ai.dk section.td{background:linear-gradient(135deg,rgba(35,30,20,.5),rgba(30,28,18,.4))}
ai.dk .td f:nth-of-type(1){color:#6aaa6a;border-left-color:#6aaa6a;background:linear-gradient(90deg,rgba(90,170,90,.06),transparent)}
ai.dk .td f:nth-of-type(2){color:#d08090;border-left-color:#d08090;background:linear-gradient(90deg,rgba(208,128,144,.06),transparent)}

/* 夜间物品 */
ai.dk details.itm{border-color:rgba(120,80,100,.25)}
ai.dk details.itm summary{
  background:linear-gradient(135deg,rgba(35,30,45,.55),rgba(40,32,48,.4));color:var(--txt);
}
ai.dk details.itm summary:hover{background:linear-gradient(135deg,rgba(50,38,55,.6),rgba(55,42,58,.5))}
ai.dk details.itm tip{background:rgba(25,25,35,.5);color:var(--txt2);border-top-color:rgba(120,80,100,.25)}
ai.dk details.itm[open]{border-color:rgba(150,90,110,.4);box-shadow:0 3px 14px rgba(100,50,70,.2)}

/* 夜间微信 */
ai.dk msg details.wx{
  background:linear-gradient(135deg,rgba(25,30,28,.6),rgba(30,35,30,.45));
  border-color:rgba(7,193,96,.12);
}
ai.dk msg .wxbar{
  background:linear-gradient(180deg,rgba(30,30,30,.8),rgba(38,38,38,.7));
  border-bottom-color:rgba(255,255,255,.05);
}
ai.dk msg .wxbar d.wxs{background:rgba(50,50,50,.5);border-color:rgba(255,255,255,.06);color:#777}

/* 夜间飞书/微博/其他 */
ai.dk msg d.fs{
  background:linear-gradient(135deg,rgba(25,30,45,.5),rgba(30,35,50,.35));
  border-color:rgba(51,112,255,.12);
}
ai.dk msg d.wb{
  background:linear-gradient(135deg,rgba(45,28,25,.5),rgba(50,32,28,.35));
  border-color:rgba(255,100,50,.12);
}
ai.dk msg d.ot{background:rgba(35,35,35,.45);border-color:rgba(255,255,255,.06)}

/* 夜间星记忆 */
ai.dk section.mem{background:linear-gradient(135deg,rgba(30,28,22,.5),rgba(35,30,25,.35))}
ai.dk .mem details{border-color:rgba(180,152,96,.18)}
ai.dk .mem details summary{background:rgba(35,30,22,.5);color:var(--gold)}
ai.dk .mem details summary:hover{background:rgba(45,38,28,.65)}
ai.dk .mem table{border-color:rgba(180,152,96,.15)}
ai.dk .mem table th{
  background:linear-gradient(135deg,rgba(180,152,96,.12),rgba(180,152,96,.05));
  border-bottom-color:rgba(180,152,96,.15);
}
ai.dk .mem table td{border-bottom-color:rgba(180,152,96,.06);color:var(--txt)}
ai.dk .mem table tr:nth-child(even) td{background:rgba(35,30,22,.3)}
ai.dk .mem table tr:hover td{background:rgba(180,152,96,.06)}

/* 夜间选项 */
ai.dk opt.a{
  background:linear-gradient(135deg,rgba(60,30,40,.5),rgba(70,35,45,.35));
  border-color:rgba(150,70,90,.25);color:#e0b8c0;
}
ai.dk opt.a:hover{
  border-color:rgba(180,80,100,.5);
  background:linear-gradient(135deg,rgba(70,35,45,.65),rgba(80,40,50,.5));
  box-shadow:0 3px 14px rgba(150,70,90,.2);
}
ai.dk opt.b{
  background:linear-gradient(135deg,rgba(25,35,55,.5),rgba(30,40,60,.35));
  border-color:rgba(60,100,160,.25);color:#b0c8e0;
}
ai.dk opt.b:hover{
  border-color:rgba(80,120,180,.5);
  background:linear-gradient(135deg,rgba(30,40,60,.65),rgba(35,45,65,.5));
  box-shadow:0 3px 14px rgba(60,100,160,.2);
}
ai.dk opt.c{
  background:linear-gradient(135deg,rgba(35,28,48,.5),rgba(40,32,52,.35));
  border-color:rgba(100,80,140,.25);color:#c0b8d8;
}
ai.dk opt.c:hover{
  border-color:rgba(120,95,160,.5);
  background:linear-gradient(135deg,rgba(40,32,52,.65),rgba(45,36,56,.5));
  box-shadow:0 3px 14px rgba(100,80,140,.18);
}
ai.dk opt.d{
  background:linear-gradient(135deg,rgba(45,38,25,.5),rgba(50,42,28,.35));
  border-color:rgba(180,152,96,.25);color:#d8c898;
}
ai.dk opt.d:hover{
  border-color:rgba(200,170,110,.5);
  background:linear-gradient(135deg,rgba(50,42,28,.65),rgba(55,46,32,.5));
  box-shadow:0 3px 14px rgba(180,152,96,.2);
}

/* 夜间分隔线 */
ai.dk article+details::before{
  background:linear-gradient(90deg,transparent,rgba(120,80,100,.4),rgba(180,152,96,.3),rgba(120,80,100,.4),transparent);
}

/* 夜间滚动条 */
ai.dk::-webkit-scrollbar-thumb,ai.dk details::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,rgba(120,80,100,.6),rgba(180,152,96,.5));
}

/* 夜间霓虹呼吸 */
ai.dk hd{animation:fadeUp .6s ease-out,neonPulse 4s ease-in-out infinite 1s}
ai.dk > details[open]{animation:neonPulse 5s ease-in-out infinite}

/* ══════════════════════════════════════════
   ② 增强线条感 — 全局border加粗覆盖
   ══════════════════════════════════════════ */
ai .pc f,ai .nc f,ai .td f{border-left-width:3.5px}
ai .mem f{border-left-width:3.5px}

ai > details{border-width:var(--bw)}
ai hd section{border-width:var(--bw)}

ai details.itm{border-width:var(--bw)}
ai details.itm tip{border-top-width:2px}

ai msg details.wx{border-width:2px}
ai msg d.fs{border-width:2px}
ai msg d.wb{border-width:2px}
ai msg d.ot{border-width:2px}

ai .mem table{border-width:2px}
ai .mem table th{border-bottom-width:2px}

ai opt{border-width:var(--bw)}

/* ══════════════════════════════════════════
   响应式 · 移动端
   ══════════════════════════════════════════ */
@media(max-width:420px){
  ai hd{
    grid-template-columns:1fr;
    grid-template-rows:auto auto auto auto;
    gap:6px;padding:12px 10px;
  }
  ai hd .ti{grid-column:1;grid-row:1}
  ai hd .we{grid-column:1;grid-row:2}
  ai hd .lo{grid-column:1;grid-row:3}
  ai hd .sy{grid-column:1;grid-row:4}
  ai hd t em{font-size:24px}

  ai bub{grid-template-columns:40px 1fr;gap:2px 6px;padding-right:18px}
  ai bub[r]{grid-template-columns:1fr 40px;padding-left:18px;padding-right:0}
  ai bub av{width:40px;height:40px}
  ai bub q{font-size:14px;max-width:92%}

  ai opt{padding:10px 14px;font-size:13.5px}

  ai msg details.wx av{width:36px;height:36px;border-radius:6px}
  ai msg details.wx{padding:8px 10px;gap:8px}

  ai .pc f,ai .nc f,ai .mem f,ai .td f{font-size:13px;padding:4px 0 4px 10px}
  ai .pc d,ai .nc d,ai .td d{font-size:13px;padding:2px 4px 2px 14px}

  ai details.itm summary{font-size:14.5px;padding:8px 12px}
  ai details.itm tip{font-size:12px;padding:6px 10px}
}

@media(max-width:340px){
  ai hd t em{font-size:20px}
  ai bub{grid-template-columns:36px 1fr;padding-right:10px}
  ai bub[r]{grid-template-columns:1fr 36px;padding-left:10px}
  ai bub av{width:36px;height:36px}
  ai bub q{font-size:13.5px}
}

/* ══════════════════════════════════════════
   排版优化 · <d> 独立气泡卡片化
   ══════════════════════════════════════════ */
ai .pc d,
ai .nc d{
  display:block;
  padding:7px 12px 7px 14px;
  margin:3px 0;
  background:rgba(255,255,255,.45);
  border-radius:8px;
  border:1px solid rgba(255,182,193,.15);
  line-height:1.8;
  position:relative;
  transition:all .2s ease;
}

ai .pc d::before,
ai .nc d::before{
  content:"";
  position:absolute;
  left:6px;
  top:14px;
  width:4px;
  height:4px;
  border-radius:50%;
  background:var(--gold);
  opacity:.5;
}

ai .pc d:hover,
ai .nc d:hover{
  background:rgba(255,240,245,.5);
  border-color:rgba(255,182,193,.28);
  transform:translateX(2px);
}

ai .pc f + d,
ai .nc f + d{
  margin-top:4px;
}