/* 入口页新版面（负责人 2026-09-30 晚定）· 归 Claude Code：首页 + 口令页 = B「聊天开场」，注册页 = D「三张门牌」。
   只在 <html data-ui2="1">（服务器开了新外观）且 entry2.js 把 body 标成 .e2 之后生效；旧外观（ui2 关着）一条都不碰。
   四套主题的变量自己带一份：手机 / iPad 由 ui2.js 挂 html[data-theme]，电脑挂 html[data-desk-theme]，两种都认。
   样稿：交接区\设计\登录页版面_2026-09-30\B_聊天开场.html、D_注册页_三张门牌.html。 */

body.e2{--e-bg:#F3F4F6;--e-surface:#fff;--e-ink:#1F1F24;--e-mute:#6B6B76;--e-line:#E3E4E8;--e-accent:#FF7F66;--e-on:#1F1F24;--e-accent-ink:#B8452F;--e-soft:#FFEDE8;--e-field:#F3F4F6;
  --e-tbub:#fff;--e-sbub:#FF7F66;--e-sink:#1F1F24;--e-r:18px;--e-rs:12px;--e-bw:0px;--e-bc:transparent;--e-sh:0 1px 2px rgba(16,24,40,.05),0 6px 16px rgba(16,24,40,.06);
  --e-panel:#FF7F66;--e-panel-ink:#1F1F24;--e-head:"Nunito","PingFang SC","Microsoft YaHei",sans-serif;}
html[data-theme="a"] body.e2,html[data-desk-theme="a"] body.e2{--e-bg:#FFFBF2;--e-line:#1F1F24;--e-bw:2px;--e-bc:#1F1F24;--e-r:14px;--e-rs:10px;--e-sh:3px 3px 0 #1F1F24;--e-soft:#FFE3DA;--e-sbub:#FFE3DA;--e-field:#fff;--e-panel:#FFD15C;}
html[data-theme="c"] body.e2,html[data-desk-theme="c"] body.e2{--e-bg:#fff;--e-line:#E9E9EC;--e-bw:1px;--e-bc:#E9E9EC;--e-r:12px;--e-rs:10px;--e-sh:none;--e-accent:#1F1F24;--e-on:#fff;--e-accent-ink:#1F1F24;--e-soft:#F4F4F6;--e-field:#F4F4F6;--e-tbub:#F2F2F5;--e-sbub:#1F1F24;--e-sink:#fff;--e-panel:#F4F4F6;--e-panel-ink:#1F1F24;}
html[data-theme="d"] body.e2,html[data-desk-theme="d"] body.e2{--e-bg:#EDF1F6;--e-ink:#1B2A44;--e-mute:#5E6A80;--e-line:#D5DCE6;--e-accent:#1B2A44;--e-on:#fff;--e-accent-ink:#1B2A44;--e-soft:#E3E9F2;--e-field:#EDF1F6;--e-sbub:#1B2A44;--e-sink:#fff;--e-r:16px;--e-panel:#1B2A44;--e-panel-ink:#fff;}

body.e2{margin:0;background:var(--e-bg)!important;background-image:none!important;color:var(--e-ink);font:16px/1.5 var(--e-head);}
body.e2 .e2-hide{display:none!important;}

/* ================= B · 聊天开场（首页 #app 由 entry2.js 重画；口令页 .portal 被改成聊天壳） ================= */
body.e2 .e2-chat{min-height:100dvh;display:flex;flex-direction:column;}
body.e2 .e2-top{height:60px;display:flex;align-items:center;justify-content:center;gap:10px;background:var(--e-surface);border-bottom:var(--e-bw) solid var(--e-bc);box-shadow:var(--e-sh);font:900 22px var(--e-head);color:var(--e-ink);}
body.e2 .e2-top img{width:32px;height:32px;}body.e2 .e2-top .ah{color:var(--e-accent-ink);}
body.e2 .e2-log{flex:1;display:flex;flex-direction:column;gap:12px;padding:20px 16px;width:100%;max-width:560px;margin:0 auto;}
body.e2 .e2-sys{align-self:center;font-size:13px;font-weight:700;color:var(--e-mute);background:var(--e-soft);padding:3px 12px;border-radius:999px;}
body.e2 .e2-row{display:flex;align-items:flex-end;gap:8px;max-width:88%;}body.e2 .e2-row.me{align-self:flex-end;flex-direction:row-reverse;}
body.e2 .e2-tav{width:36px;height:36px;border-radius:50%;background:var(--e-soft);border:var(--e-bw) solid var(--e-bc);display:grid;place-items:center;overflow:hidden;flex:none;}body.e2 .e2-tav img{width:34px;height:34px;margin-top:6px;}
body.e2 .e2-b{padding:11px 14px;border-radius:18px 18px 18px 6px;background:var(--e-tbub);color:var(--e-ink);border:var(--e-bw) solid var(--e-bc);box-shadow:var(--e-sh);font-weight:700;line-height:1.5;overflow-wrap:anywhere;}
body.e2 .e2-row.me .e2-b{background:var(--e-sbub);color:var(--e-sink);border-radius:18px 18px 6px 18px;}
body.e2 .e2-b small{display:block;color:var(--e-mute);font-size:13px;font-weight:700;margin-top:2px;}
body.e2 .e2-chips{display:flex;flex-wrap:wrap;gap:8px;margin-left:44px;}body.e2 .e2-chips[hidden]{display:none;}   /* display:flex 会压过 hidden 属性：对上号以后三个药丸要收起 */
body.e2 .e2-chips a,body.e2 .e2-chips button{display:inline-flex;align-items:center;border:max(var(--e-bw),1px) solid var(--e-line);background:var(--e-surface);color:var(--e-accent-ink);font:800 14px var(--e-head);padding:8px 14px;border-radius:999px;min-height:40px;text-decoration:none;cursor:pointer;}
body.e2 .e2-pad{margin-left:44px;background:var(--e-surface);border:var(--e-bw) solid var(--e-bc);border-radius:var(--e-r);box-shadow:var(--e-sh);padding:14px;width:min(300px,100%);}
body.e2 .e2-compose{position:sticky;bottom:0;background:var(--e-surface);border-top:var(--e-bw) solid var(--e-bc);box-shadow:0 -6px 20px rgba(16,24,40,.06);padding:10px 12px calc(10px + env(safe-area-inset-bottom));}
body.e2 .e2-compose form{display:flex;gap:8px;max-width:560px;margin:0 auto;}
body.e2 .e2-compose input{flex:1;min-width:0;min-height:50px;font:800 18px var(--e-head);color:var(--e-ink);background:var(--e-field);border:2px solid var(--e-line);border-radius:var(--e-rs);padding:10px 14px;outline:none;text-align:center;letter-spacing:.06em;box-shadow:none;}
body.e2 .e2-compose input:focus-visible{border-color:var(--e-accent);background:var(--e-surface);}
body.e2 .e2-compose button{min-width:76px;min-height:50px;border:var(--e-bw) solid var(--e-bc);border-radius:var(--e-rs);background:var(--e-accent);color:var(--e-on);font:900 17px var(--e-head);box-shadow:var(--e-sh);cursor:pointer;}
body.e2 .e2-msg{min-height:1.3em;text-align:center;font-size:14px;font-weight:800;color:var(--e-accent-ink);max-width:560px;margin:6px auto 0;}
body.e2 .e2-foot{text-align:center;font-size:12px;color:var(--e-mute);font-weight:700;padding:6px 0 0;}body.e2 .e2-foot a{color:var(--e-accent-ink);text-decoration:none;}
@media (min-width:900px){
  body.e2.e2-index,body.e2.e2-pin{background-image:radial-gradient(circle at 12% 20%,var(--e-soft),transparent 38%),radial-gradient(circle at 88% 80%,var(--e-soft),transparent 34%)!important;}
  body.e2 .e2-log{max-width:600px;padding-top:36px;}
  body.e2 .e2-compose{position:static;background:none;box-shadow:none;border:0;padding-bottom:40px;}body.e2 .e2-compose form{max-width:600px;}
  body.e2 .e2-top{background:none;box-shadow:none;border:0;height:80px;font-size:26px;}body.e2 .e2-top img{width:40px;height:40px;}
  body.e2 .e2-log{flex:0 0 auto;padding-bottom:6px;}   /* 电脑上发送栏紧跟在对话下面，别沉到页底 */
  body.e2 .e2-compose input{background:var(--e-surface);border-color:var(--e-line);}   /* 电脑背景和 --e-field 同色，输入框要有边才看得见 */
}

/* 口令页：pin.js 认的 id 都还在，只是搬进气泡里 */
body.e2 .portal{display:block;min-height:0;padding:0;gap:0;}
body.e2 .portal .pinpad{width:auto;max-width:none;padding:0;border:0;background:none;box-shadow:none;text-align:left;display:contents;}
body.e2 .portal .pinpad .me{display:none;}
body.e2 #e2Hello h2{display:inline;margin:0;font:inherit;}   /* 名字那行搬进了气泡（不在 .pinpad 里了）；id 选择器压过 html[data-ui] h2 的字号 */
body.e2 #e2Hello #pinSub{display:block;color:var(--e-mute);font-size:13px;font-weight:700;margin-top:2px;}
body.e2 .dots{display:flex;justify-content:center;gap:14px;margin:4px 0 12px;}body.e2 .dots i{width:16px;height:16px;border-radius:50%;border:2px solid var(--e-line);background:var(--e-surface);}body.e2 .dots i.on{background:var(--e-accent);border-color:var(--e-accent);}
body.e2 .e2-pad .msg{min-height:1.4em;font-size:14px;font-weight:800;color:var(--e-accent-ink);text-align:center;margin:0 0 6px;}
body.e2 .keys{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0;}body.e2 .keys button{height:54px;font:800 22px var(--e-head);border:0;border-radius:var(--e-rs);background:var(--e-field);color:var(--e-ink);box-shadow:none;min-width:0;}
body.e2 .keys button[data-k="del"]{color:var(--e-mute);font-size:20px;}
body.e2 .portal .brand{display:none;}
body.e2 .portal .lost{display:inline-flex;align-items:center;min-height:40px;margin:0;padding:8px 14px;border:max(var(--e-bw),1px) solid var(--e-line);border-radius:999px;background:var(--e-surface);color:var(--e-accent-ink);font:800 14px var(--e-head);text-decoration:none;}

/* 漫画主题：键盘、发送键、药丸都要黑描边 + 硬阴影，不然白底上只剩数字悬着（负责人 2026-09-30 真机：Sheeny 手机记的是漫画） */
html[data-theme="a"] body.e2 .keys button,html[data-desk-theme="a"] body.e2 .keys button{border:2px solid var(--e-ink);background:#fff;box-shadow:2px 2px 0 var(--e-ink);}
html[data-theme="a"] body.e2 .keys button:active,html[data-desk-theme="a"] body.e2 .keys button:active{translate:2px 2px;box-shadow:none;}
html[data-theme="a"] body.e2 .e2-chips a,html[data-theme="a"] body.e2 .e2-chips button,html[data-desk-theme="a"] body.e2 .e2-chips a,html[data-desk-theme="a"] body.e2 .e2-chips button{box-shadow:2px 2px 0 var(--e-ink);}
html[data-theme="a"] body.e2 .e2-compose input,html[data-desk-theme="a"] body.e2 .e2-compose input{border-color:var(--e-ink);}
html[data-theme="a"] body.e2 .e2-tav,html[data-desk-theme="a"] body.e2 .e2-tav{background:#fff;}
html[data-theme="a"] body.e2 .dots i,html[data-desk-theme="a"] body.e2 .dots i{border-color:var(--e-ink);}

/* ================= D · 三张门牌（注册页：左品牌面 + 右表单，三步门牌） ================= */
body.e2.e2-reg{min-height:100dvh;display:grid;grid-template-rows:auto 1fr;}
body.e2 .e2-panel{background:var(--e-panel);color:var(--e-panel-ink);padding:16px 16px 14px;display:flex;flex-direction:column;gap:8px;}
body.e2 .e2-panel .e2-back{color:inherit;text-decoration:none;font-weight:800;font-size:13px;opacity:.85;}
body.e2 .e2-wm{font:900 24px/1 var(--e-head);display:flex;align-items:center;gap:8px;}body.e2 .e2-wm img{width:32px;height:32px;}
body.e2 .e2-panel p{margin:0;font-weight:700;font-size:14px;opacity:.85;}
body.e2 .e2-crew{display:flex;align-items:center;margin-top:2px;}body.e2 .e2-crew img{width:38px;height:38px;border-radius:50%;background:#fff;object-fit:cover;object-position:top;border:2px solid var(--e-panel);margin-right:-8px;}body.e2 .e2-crew span{margin-left:16px;font-weight:800;font-size:13px;}
body.e2 .e2-main{display:flex;flex-direction:column;align-items:center;padding:18px 16px 40px;}
body.e2 .e2-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:100%;max-width:520px;margin-bottom:14px;}
body.e2 .e2-steps span{min-height:52px;border:max(var(--e-bw),1px) solid var(--e-line);border-radius:var(--e-rs) var(--e-rs) 4px 4px;background:var(--e-surface);color:var(--e-mute);font:800 14px var(--e-head);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;position:relative;}
body.e2 .e2-steps span small{font-size:11px;font-weight:700;}body.e2 .e2-steps span b{font-size:12px;font-weight:900;color:var(--e-accent-ink);}
body.e2 .e2-steps span.on{color:var(--e-ink);border-color:var(--e-accent);background:var(--e-soft);box-shadow:inset 0 -3px 0 var(--e-accent);}
body.e2 .e2-steps span.on::after{content:"";position:absolute;left:50%;bottom:-9px;width:14px;height:14px;background:var(--e-soft);border-right:1px solid var(--e-accent);border-bottom:1px solid var(--e-accent);transform:translateX(-50%) rotate(45deg);}
body.e2 .e2-steps span.done b{color:var(--e-mute);}
/* register.js 画出来的内容：.reg 变成右边那一栏，.box 变成卡 */
body.e2 .reg{max-width:520px;width:100%;margin:0;padding:0;}
body.e2 .reg .box{background:var(--e-surface);border:var(--e-bw) solid var(--e-bc);border-radius:var(--e-r);box-shadow:var(--e-sh);padding:22px 20px 20px;}
body.e2 .reg h1{margin:0 0 2px;font-size:22px;font-weight:900;}body.e2 .reg .lv-lead{margin:0 0 14px;color:var(--e-mute);font-size:14px;font-weight:700;}
body.e2 .reg .field{margin:12px 0;}body.e2 .reg .field label,body.e2 .reg .field legend{font-weight:800;font-size:14px;}
body.e2 .reg .field small,body.e2 .reg .consent small{color:var(--e-mute);font-size:12.5px;font-weight:700;line-height:1.45;}
body.e2 .reg input[type=text],body.e2 .reg input[type=email],body.e2 .reg select,body.e2 .reg .pin{min-height:50px;font:700 17px var(--e-head);color:var(--e-ink);background:var(--e-field);border:2px solid transparent;border-radius:var(--e-rs);padding:10px 14px;box-shadow:none;}
body.e2 .reg input:focus-visible,body.e2 .reg select:focus-visible{outline:none;border-color:var(--e-accent);background:var(--e-surface);}
body.e2 .reg .warn-kid{background:var(--e-soft);color:var(--e-accent-ink);font-weight:800;font-size:14px;padding:10px 12px;border-radius:var(--e-rs);border:0;}
body.e2 .reg .consent{font-size:14px;font-weight:700;line-height:1.5;}body.e2 .reg .consent input{accent-color:var(--e-accent);}body.e2 .reg .consent a{color:var(--e-accent-ink);}
body.e2 .reg .lv-btn{min-height:52px;border:var(--e-bw) solid var(--e-bc);border-radius:var(--e-rs);background:var(--e-surface);color:var(--e-ink);font:900 17px var(--e-head);box-shadow:none;}
body.e2 .reg .lv-btn.go{background:var(--e-accent);color:var(--e-on);box-shadow:var(--e-sh);width:100%;margin-top:14px;}
body.e2 .reg .lost{color:var(--e-accent-ink);font-weight:800;text-decoration:none;}
body.e2 .reg > a.lost[href="/"]{display:none;}   /* 「← 回首页」：左边品牌面已有「← 回入口」，不重复；申请邀请码里的「← 回注册」照旧 */
body.e2 .reg .idnum{font:900 46px/1.1 var(--e-head);letter-spacing:4px;text-align:center;background:var(--e-field);border:0;border-radius:var(--e-rs);padding:18px 10px;margin:14px 0;box-shadow:none;}
body.e2 .reg .idcard .badge{background:var(--e-soft);color:var(--e-accent-ink);border:0;box-shadow:none;}
body.e2 .reg .pin{letter-spacing:.5em;text-align:center;font-size:24px;}
body.e2 .reg .err{color:var(--e-accent-ink);font-weight:800;}
@media (min-width:900px){
  body.e2.e2-reg{grid-template-rows:none;grid-template-columns:5fr 7fr;}
  body.e2 .e2-panel{padding:56px 48px;justify-content:center;gap:16px;min-height:100dvh;position:sticky;top:0;}
  body.e2 .e2-wm{font-size:40px;}body.e2 .e2-wm img{width:52px;height:52px;}body.e2 .e2-panel p{font-size:17px;max-width:360px;}
  body.e2 .e2-crew img{width:56px;height:56px;margin-right:-10px;}body.e2 .e2-crew span{font-size:15px;}
  body.e2 .e2-main{justify-content:flex-start;padding:40px;}body.e2 .e2-steps,body.e2 .reg{max-width:560px;}
}
@media (prefers-reduced-motion:reduce){body.e2 *{animation:none!important;transition:none!important;}}
