/* 颜色不在这里定 —— 全部由 theme.css 的皮肤变量提供。
   这里只管尺寸和布局。 */
:root{
  --radius:14px;
  --safe-b:env(safe-area-inset-bottom,0px);
  --top:56px;
  --tabs:56px;
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%}
body{
  background:var(--bg);color:var(--ink);
  font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  display:flex;flex-direction:column;
  overscroll-behavior:none;
}
.hidden{display:none!important}

/* ── 顶部栏 ── */
.topbar{
  flex:none;height:var(--top);
  display:flex;align-items:center;gap:8px;
  padding:0 10px;
  background:linear-gradient(180deg,var(--bg-raise),rgba(30,26,22,.92));
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:20;
}
.topbar::after{
  /* 发丝高光：一条从标题下方掠过的亮线，让栏子不像一块死板 */
  content:'';position:absolute;left:0;right:0;bottom:-1px;height:1px;
  background:linear-gradient(90deg,transparent,var(--glow1),transparent);
}
.topbar h1{
  flex:1;margin:0;font-size:17px;font-weight:600;
  letter-spacing:.06em;
  font-family:Georgia,"Songti SC","STSong",serif;
  color:var(--gold-soft);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.nav-btn{
  flex:none;width:38px;height:38px;
  display:grid;place-items:center;
  background:none;border:none;color:var(--ink-dim);
  font-size:20px;cursor:pointer;border-radius:10px;
}
.nav-btn:active{background:var(--bg-soft)}
#btnBack{font-size:26px;line-height:1;margin-left:-4px}

/* ── 主区 ── */
main{flex:1;position:relative;min-height:0;display:flex}
.screen{display:none;width:100%;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch}
.screen.active{display:block}
.chat-screen{display:none;flex-direction:column;overflow:hidden}
.chat-screen.active{display:flex}
body.in-chat main{padding-bottom:0}

/* ── 会话 / 联系人列表 ── */
.conv-list{padding:0}
.conv{
  display:flex;align-items:center;gap:12px;
  padding:11px 14px;
  border-bottom:1px solid rgba(51,43,35,.55);
  cursor:pointer;
}
.conv:active{background:var(--bg-raise)}
.conv.current{background:rgba(38,32,25,.55)}

.avatar{
  flex:none;width:46px;height:46px;border-radius:12px;
  display:grid;place-items:center;
  color:#f4ecd8;font-size:19px;font-weight:600;
  background:var(--avatar-tint,#6b5230);
  font-family:Georgia,"Songti SC",serif;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.06), 0 2px 6px rgba(0,0,0,.25);
}

.conv-mid{flex:1;min-width:0}
.conv-top{display:flex;align-items:baseline;gap:8px}
.conv-name{
  flex:1;font-size:15.5px;color:var(--ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.conv-time{flex:none;font-size:11px;color:var(--ink-faint)}
.conv-last{
  font-size:12.5px;color:var(--ink-faint);
  margin-top:2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

.hint{
  padding:44px 26px;text-align:center;
  color:var(--ink-faint);font-size:13.5px;line-height:2;
}

.contact-actions{padding:12px 14px 6px}
.wide-btn{
  width:100%;padding:12px;border-radius:11px;
  background:var(--bg-raise);border:1px dashed #4a3d1c;
  color:var(--gold-soft);font:inherit;font-size:14px;cursor:pointer;
}
.wide-btn:active{background:var(--bg-soft)}

/* ── 聊天 ── */
.chatlog{
  flex:1;overflow-y:auto;
  padding:14px 14px 10px;
  display:flex;flex-direction:column;gap:10px;
  -webkit-overflow-scrolling:touch;
}
.msg{
  max-width:82%;padding:10px 13px;border-radius:14px;
  white-space:pre-wrap;word-break:break-word;font-size:15.5px;line-height:1.5;
  box-shadow:0 1px 3px rgba(0,0,0,.22);
}
.msg.assistant{
  align-self:flex-start;
  background:var(--bg-raise);border:1px solid var(--line);
  border-bottom-left-radius:5px;
}
.msg.user{
  align-self:flex-end;
  background:var(--user);border:1px solid var(--line);
  border-bottom-right-radius:5px;
}
.msg.cont{margin-top:-7px}
.msg.pending{color:var(--ink-faint);font-style:italic}

.recall-tag{
  align-self:center;
  font-size:11px;color:var(--ink-faint);
  padding:2px 10px;border-radius:9px;
  background:rgba(38,32,25,.6);
}

.notice{
  flex:none;margin:0 14px 8px;padding:10px 13px;
  background:#2a2013;border:1px solid #4a3a1a;border-radius:10px;
  font-size:13px;color:#dcc48a;
}

.composer{
  flex:none;display:flex;gap:9px;align-items:flex-end;
  padding:9px 12px calc(9px + var(--safe-b));
  background:var(--bg-raise);border-top:1px solid var(--line);
}
#input{
  flex:1;resize:none;max-height:120px;
  padding:11px 14px;border-radius:20px;
  background:var(--bg);color:var(--ink);
  border:1px solid var(--line);
  font:inherit;font-size:15.5px;line-height:1.4;outline:none;
}
#input:focus{border-color:#4a4030}
.send{
  width:42px;height:42px;flex:none;border-radius:50%;
  background:var(--gold);color:#1a1408;border:none;
  font-size:18px;font-weight:700;cursor:pointer;
  display:grid;place-items:center;
}
.send:disabled{opacity:.35}

/* ── 底部导航 ── */
.tabbar{
  flex:none;display:flex;
  padding:5px 8px calc(5px + var(--safe-b));
  background:var(--bg-raise);
  border-top:1px solid var(--line);
}
.tab{
  flex:1;background:none;border:none;cursor:pointer;
  color:var(--ink-faint);font:inherit;font-size:11px;
  display:flex;flex-direction:column;align-items:center;gap:2px;
  padding:5px 0;
}
.tab span{font-size:18px;line-height:1}
.tab.active{color:var(--gold-soft)}
.tab.active span{text-shadow:0 0 14px var(--gold-soft)}
/* 当前 tab 底下一条发光短线，比换个字色有存在感 */
.tab{position:relative}
.tab.active::after{
  content:'';position:absolute;bottom:1px;left:50%;transform:translateX(-50%);
  width:18px;height:2px;border-radius:2px;
  background:var(--gold);
  box-shadow:0 0 8px var(--gold);
}

/* ── 动态 ── */
.moment-list{padding:12px 14px 30px}
.moment{
  background:var(--bg-raise);border:1px solid var(--line);
  border-radius:13px;padding:13px 14px;margin-bottom:11px;
}
.moment-head{display:flex;align-items:center;gap:10px;margin-bottom:9px}
.moment-head .avatar{width:34px;height:34px;font-size:14px;border-radius:9px}
.moment-who{
  font-size:13.5px;color:var(--gold-soft);
  font-family:Georgia,"Songti SC",serif;
}
.moment-time{margin-left:8px;font-size:11px;color:var(--ink-faint);font-family:inherit}
.moment-body{
  font-size:14.5px;line-height:1.7;color:var(--ink-dim);
  white-space:pre-wrap;word-break:break-word;
}

/* ── 设置：全屏长页 ──
   别用 flex + align-items:flex-end 做底部弹层。内容一超高，
   溢出部分会跑到容器上方，滚动条够不着 —— 手机上就永远看不到顶部。
   这里改成普通长页面，交给浏览器原生滚动。 */
.sheet{
  position:fixed;inset:0;z-index:50;
  background:var(--bg);
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
}

.sheet-bar{
  position:sticky;top:0;z-index:5;
  display:flex;align-items:center;gap:10px;
  height:52px;padding:0 6px;
  background:rgba(20,17,15,.92);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
[data-theme="dawn"] .sheet-bar{background:rgba(246,240,230,.94)}
.sheet-bar > span:first-of-type{
  /* 中间的「设置」 */
  font-size:16px;font-weight:600;letter-spacing:.12em;
  font-family:Georgia,"Songti SC",serif;color:var(--gold-soft);
}
.sheet-bar > span:nth-child(2){flex:1;text-align:center}
.sheet-bar-pad{width:64px}
.sheet-back{
  width:64px;padding:8px 6px;
  background:none;border:none;color:var(--ink-dim);
  font:inherit;font-size:14px;cursor:pointer;border-radius:8px;
}
.sheet-back:active{background:var(--bg-soft)}

.sheet-inner{
  width:100%;max-width:640px;margin:0 auto;
  padding:16px 18px calc(40px + var(--safe-b));
}
.sheet-h2{
  margin:4px 0 12px;font-size:13px;font-weight:500;
  letter-spacing:.14em;color:var(--ink-faint);
  font-family:Georgia,"Songti SC",serif;
}
.sheet-end{
  text-align:center;font-size:11.5px;color:var(--ink-faint);
  padding:18px 0 0;
}
.sheet-inner label{
  display:block;margin-bottom:14px;
  font-size:12px;color:var(--ink-faint);letter-spacing:.05em;
}
.sheet-inner label.inline{margin-bottom:10px}
.sheet-inner input,.sheet-inner select{
  display:block;width:100%;margin-top:7px;
  padding:11px 13px;border-radius:10px;
  background:var(--bg-soft);border:1px solid var(--line);
  color:var(--ink);font:inherit;font-size:14.5px;outline:none;
}
.sheet-inner .primary{
  width:100%;padding:13px;border-radius:11px;
  background:var(--gold);color:#1a1408;border:none;
  font:inherit;font-size:15px;font-weight:600;cursor:pointer;
}

.mode-box{
  background:linear-gradient(135deg,#241d12,#1e1a16);
  border:1px solid #4a3d1c;border-radius:12px;
  padding:13px 14px;margin-bottom:16px;
}
.mode-title{
  font-size:12px;color:var(--gold-soft);letter-spacing:.1em;
  font-family:Georgia,"Songti SC",serif;margin-bottom:8px;
}
.mode-box select{
  display:block;width:100%;margin:0 0 8px;
  padding:11px 13px;border-radius:10px;
  background:#14110f;border:1px solid #4a3d1c;
  color:var(--ink);font:inherit;font-size:14.5px;outline:none;
}
.mode-hint{font-size:11.5px;color:var(--ink-faint);line-height:1.6}

.state-box{
  background:var(--bg-soft);border:1px solid var(--line);
  border-radius:12px;padding:13px 14px;margin-bottom:16px;
}
.state-title{
  font-size:12px;color:var(--gold-soft);letter-spacing:.1em;
  font-family:Georgia,"Songti SC",serif;margin-bottom:8px;
}
.muted{color:var(--ink-dim);font-size:13.5px}

.btn-row{display:flex;gap:8px;margin-top:11px}
.btn-row button{
  flex:1;padding:11px;border-radius:10px;font:inherit;font-size:14px;
  background:var(--bg-soft);border:1px solid var(--line);
  color:var(--ink-dim);cursor:pointer;
}
.btn-row button:active{background:#332b23}
.btn-row .primary-mini{background:var(--gold);color:#1a1408;border:none;font-weight:600}
.btn-row button:disabled{opacity:.45}

.llm-result{
  margin-top:10px;font-size:12.5px;line-height:1.7;
  padding:9px 11px;border-radius:8px;white-space:pre-wrap;display:none;
}
.llm-result.show{display:block}
.llm-result.ok{background:#1c2418;border:1px solid #2f4426;color:#a8d08d}
.llm-result.bad{background:#2a1a15;border:1px solid #4a2a1c;color:#dc9b82}

/* ── 人设编辑器 ── */
.editor{
  position:fixed;inset:0;z-index:80;
  background:var(--bg);display:flex;flex-direction:column;
}
.editor-head{
  flex:none;display:flex;align-items:center;gap:10px;
  padding:12px 14px;border-bottom:1px solid var(--line);
  background:var(--bg-raise);
}
.editor-head .ghost{
  background:none;border:none;color:var(--ink-dim);
  font:inherit;font-size:14px;cursor:pointer;padding:4px 6px;
}
.editor-title{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px}
.editor-title span{
  font-size:14px;color:var(--gold-soft);
  font-family:Georgia,"Songti SC",serif;letter-spacing:.08em;
}
.editor-title small{font-size:10.5px;color:var(--ink-faint)}
.ed-save{
  padding:7px 14px;border-radius:9px;
  background:var(--gold);color:#1a1408;border:none;
  font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;
}
.ed-save:disabled{opacity:.5}
#edBody{
  flex:1;width:100%;resize:none;
  padding:16px 18px calc(16px + var(--safe-b));
  background:var(--bg);color:var(--ink);
  border:none;outline:none;
  font:15px/1.75 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",monospace;
  -webkit-user-select:text;user-select:text;
}

/* ── 桌面端收窄 ── */
@media(min-width:720px){
  body{max-width:640px;margin:0 auto;border-left:1px solid var(--line);border-right:1px solid var(--line)}
}

/* ── 盖掉 Netlify 免费站点右下角的徽章 ──
   它不在 HTML 里，是部署后由网关注入的，所以只能用样式压。
   多个选择器一起上，因为它换过好几版实现。 */
#netlify-badge,
[data-netlify-badge],
.netlify-badge,
div[id^="netlify-badge" i],
a[href^="https://www.netlify.com"][target="_blank"]:not(.keep) {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
  opacity: 0 !important;
  width: 0 !important;
  height: 0 !important;
}
