/* ===== Claude 官网风格 · 配色与设计变量 ===== */
:root{
  --bg:#faf9f5;           /* 主背景 · 暖米白 */
  --side:#f0eee6;         /* 侧栏背景 · 稍深的米色 */
  --panel:#ffffff;
  --ink:#1f1e1d;          /* 正文 · 暖炭黑 */
  --muted:#87867f;
  --line:#e8e6dc;         /* 极淡的暖灰描边 */
  --line-strong:#d8d5c9;
  --accent:#d97757;       /* Claude 珊瑚橙 */
  --accent-hover:#c9623f;
  --accent-soft:#f6e9e2;
  --human:#f0eee6;        /* 用户气泡 · 米色 */
  --item-active:#e6e4da;  /* 列表选中态 */
  --code-bg:#1f1e1d;
  --chip:#f5f4ee;
  --shadow-card:0 2px 16px rgba(60,50,35,.08),0 0 0 1px rgba(60,50,35,.04);
  --shadow-pop:0 12px 40px rgba(40,32,20,.16);
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  --serif:Georgia,"Times New Roman","Songti SC","STSong","SimSun",serif;
  --mono:"SF Mono",Consolas,"Microsoft YaHei","PingFang SC",monospace;
}
body.dark{
  --bg:#262624;
  --side:#1f1e1d;
  --panel:#30302e;
  --ink:#f0eee6;
  --muted:#a3a096;
  --line:#3d3d3a;
  --line-strong:#4c4c48;
  --accent:#d97757;
  --accent-hover:#e08a6b;
  --accent-soft:#3e2e26;
  --human:#333331;
  --item-active:#3a3a36;
  --code-bg:#141413;
  --chip:#3a3a38;
  --shadow-card:0 2px 16px rgba(0,0,0,.3),0 0 0 1px rgba(255,255,255,.04);
  --shadow-pop:0 12px 40px rgba(0,0,0,.5);
}

*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{font-family:var(--sans);color:var(--ink);background:var(--bg);font-size:15px;line-height:1.65}
#app{display:flex;height:100vh;overflow:hidden}
.hidden{display:none !important}
.muted{color:var(--muted)}
::selection{background:var(--accent-soft)}

/* 细滚动条 */
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:8px}
::-webkit-scrollbar-thumb:hover{background:var(--muted)}
::-webkit-scrollbar-track{background:transparent}

/* ================= 侧栏 ================= */
#sidebar{width:300px;flex:0 0 300px;background:var(--side);border-right:1px solid var(--line);display:flex;flex-direction:column}
.side-head{padding:20px 16px 4px}
.brand{font-family:var(--serif);font-weight:700;font-size:19px;letter-spacing:.2px;display:flex;align-items:center;gap:8px}
.brand-mark{color:var(--accent);font-size:22px;line-height:1}
.user{font-size:12px;color:var(--muted);margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.new-btn{margin:14px 14px 10px;padding:10px;border:1px solid var(--line-strong);background:var(--panel);color:var(--ink);
  border-radius:12px;cursor:pointer;font-size:14px;font-weight:500;transition:all .15s}
.new-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}

.tabs{display:flex;gap:4px;padding:2px 14px}
.tab{flex:1;border:none;background:transparent;padding:7px;border-radius:9px;cursor:pointer;color:var(--muted);font-size:13.5px;transition:all .15s}
.tab:hover{color:var(--ink)}
.tab.active{background:var(--item-active);color:var(--ink);font-weight:600}

.search-wrap{padding:8px 14px}
#search{width:100%;padding:9px 14px;border:1px solid transparent;border-radius:99px;outline:none;font-size:13.5px;background:var(--panel);color:var(--ink);transition:all .15s}
#search::placeholder{color:var(--muted)}
#search:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}

.list{flex:1;overflow-y:auto;padding:4px 10px 10px}
.item{padding:9px 12px;border-radius:10px;cursor:pointer;margin-bottom:1px;transition:background .12s}
.item:hover{background:var(--item-active)}
.item.active{background:var(--item-active)}
.item .it-name{font-size:13.5px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.item.active .it-name{font-weight:600}
.item .it-sub{font-size:11px;color:var(--muted);margin-top:1px;display:flex;justify-content:space-between;gap:8px}
.item .badge{color:var(--accent);font-weight:600}

.side-foot{padding:10px 14px;border-top:1px solid var(--line);display:flex;gap:8px}
.ghost{background:transparent;border:1px solid var(--line-strong);padding:8px 12px;border-radius:10px;cursor:pointer;color:var(--ink);font-size:13px;flex:1;transition:all .15s}
.ghost:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}

/* ================= 主区 ================= */
#main{flex:1;display:flex;flex-direction:column;min-width:0}

/* 空状态 —— 仿官网首屏 */
.empty{flex:1;display:flex;align-items:center;justify-content:center;padding:40px;text-align:center}
.empty-inner{max-width:520px}
.empty-mark{font-size:44px;color:var(--accent);line-height:1;margin-bottom:14px}
.empty h1{font-family:var(--serif);font-size:32px;font-weight:600;margin:0 0 14px;letter-spacing:.2px}
.empty p{margin:6px 0}

/* 对话头部 —— 极简 */
.thread{flex:1;display:flex;flex-direction:column;min-height:0}
.thread-head{padding:14px 28px 12px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;max-width:820px;width:100%;margin:0 auto}
.thread-titlewrap{flex:1;min-width:0}
.thread-title{font-family:var(--serif);font-size:18px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.thread-meta{font-size:12px;color:var(--muted);margin-top:1px}
.thread-tools{display:flex;gap:6px;flex:0 0 auto}
.tbtn{border:1px solid transparent;background:transparent;color:var(--muted);border-radius:8px;padding:6px 9px;font-size:12.5px;cursor:pointer;transition:all .15s}
.tbtn:hover{background:var(--side);color:var(--ink)}
.tbtn.danger:hover{background:#f9e2dc;color:#b3402a}

/* ================= 消息流 ================= */
.messages{flex:1;overflow-y:auto;padding:28px 28px 12px;display:flex;flex-direction:column;gap:22px}
.msg{max-width:768px;width:100%;margin:0 auto;display:flex;gap:14px}

/* Claude 头像 —— 官网式 ✳ 符号，无底色方块 */
.msg .avatar{flex:0 0 24px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:700;color:var(--accent);margin-top:2px}
.msg.h .avatar{display:none}

/* 助手消息：无气泡，纯文本（官网排版） */
.msg .bubble{flex:1;min-width:0;padding:0;background:transparent}
.msg.a .who{font-family:var(--serif);font-size:14px;font-weight:600;color:var(--ink);margin-bottom:2px;display:flex;justify-content:space-between}
.msg.a .who span:last-child{font-family:var(--sans);font-weight:400;font-size:11.5px;color:var(--muted)}

/* 用户消息：右对齐米色圆角气泡（官网样式） */
.msg.h{justify-content:flex-end}
.msg.h .bubble{flex:0 1 auto;max-width:78%;background:var(--human);border-radius:18px;padding:10px 16px}
/* 编辑时气泡撑满整行，输入框不再被挤窄 */
.msg.h .bubble:has(.edit-area){flex:1;max-width:100%;width:100%}
.msg.h .who{display:none}
.msg.h .text{font-size:15px}

.msg .text{word-wrap:break-word;overflow-wrap:anywhere}
.msg.a .text{font-family:var(--serif);font-size:16px;line-height:1.7}
.msg .gen-img{max-width:100%;border-radius:14px;margin-top:10px;border:1px solid var(--line)}
.msg .files{margin-top:8px;display:flex;flex-wrap:wrap;gap:6px}
.file-chip{font-size:12px;background:var(--chip);border:1px solid var(--line);border-radius:99px;padding:2px 10px;color:var(--muted)}

/* ================= Markdown ================= */
.msg .text p{margin:0 0 10px}.msg .text p:last-child{margin-bottom:0}
.msg .text>*:first-child{margin-top:0}
.msg .text h1,.msg .text h2,.msg .text h3,.msg .text h4{margin:18px 0 8px;line-height:1.35;font-weight:700;font-family:var(--sans)}
.msg .text h1{font-size:1.45em}.msg .text h2{font-size:1.28em}.msg .text h3{font-size:1.12em}.msg .text h4{font-size:1em}
.msg .text ul,.msg .text ol{margin:8px 0;padding-left:24px}.msg .text li{margin:3px 0}
.msg .text code{background:var(--chip);border:1px solid var(--line);border-radius:6px;padding:1px 6px;font-size:.86em;font-family:var(--mono)}
.msg .text blockquote{margin:10px 0;padding:2px 16px;border-left:3px solid var(--accent);color:var(--muted)}
.msg .text hr{border:none;border-top:1px solid var(--line);margin:18px 0}
.msg .text strong{font-weight:700}
.msg .text a{color:var(--accent);text-decoration:none;border-bottom:1px solid var(--accent-soft)}
.msg .text a:hover{border-bottom-color:var(--accent)}
.msg .text table{border-collapse:collapse;margin:12px 0;font-family:var(--sans);font-size:.92em;display:block;max-width:100%;overflow-x:auto}
.msg .text th,.msg .text td{border:1px solid var(--line);padding:6px 12px}
.msg .text th{background:var(--chip);font-weight:600}

/* 代码块 + 工具条（Artifacts） */
.codewrap{margin:12px 0;border-radius:12px;overflow:hidden;border:1px solid var(--line);font-family:var(--sans)}
.codebar{display:flex;align-items:center;justify-content:space-between;background:var(--chip);padding:5px 12px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--line)}
.codebar .cbtns{display:flex;gap:4px}
.codebar button{border:none;background:transparent;color:var(--muted);cursor:pointer;font-size:12px;padding:3px 8px;border-radius:7px;transition:all .12s}
.codebar button:hover{background:var(--accent-soft);color:var(--accent)}
.codewrap pre{margin:0;background:var(--code-bg);color:#f2eee6;padding:14px 16px;overflow-x:auto;font-size:.85em;line-height:1.55;white-space:pre-wrap;word-break:break-word}
.msg .text .codewrap pre code{background:transparent;border:none;color:inherit;padding:0;font-size:1em;font-family:var(--mono)}
.code-missing{background:var(--code-bg);color:#e9b949;padding:14px 16px;font-size:.86em;line-height:1.6}

/* 续聊分割线 + 流式光标 */
.cont-divider{max-width:768px;width:100%;margin:2px auto;text-align:center;font-size:11.5px;color:var(--muted);display:flex;align-items:center;gap:12px;letter-spacing:.5px}
.cont-divider::before,.cont-divider::after{content:"";flex:1;height:1px;background:var(--line)}
.streaming .text::after{content:"▍";color:var(--accent);animation:blink 1s steps(2) infinite;font-family:var(--sans)}
@keyframes blink{50%{opacity:0}}

/* 消息操作 —— 悬停浮现的幽灵按钮 */
.msg-actions{display:flex;gap:4px;margin-top:8px;flex-wrap:wrap;opacity:0;transition:opacity .15s}
.msg:hover .msg-actions{opacity:1}
.act{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:3px 10px;font-size:12px;cursor:pointer;color:var(--muted);transition:all .12s}
.act:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
.act.primary-act{background:var(--accent);color:#fff;border-color:var(--accent)}
.act.primary-act:hover{background:var(--accent-hover);color:#fff}
.edit-area{width:100%;margin-top:8px;border:1px solid var(--accent);border-radius:12px;padding:10px 14px;font:inherit;font-size:15px;resize:none;outline:none;background:var(--panel);color:var(--ink);min-height:60px;box-shadow:0 0 0 3px var(--accent-soft)}
.edit-bar{display:flex;gap:6px;margin-top:8px}

/* ================= 输入区 —— 官网卡片式 ================= */
.composer{padding:10px 28px 16px;background:var(--bg)}
.composer-card{max-width:768px;margin:0 auto;background:var(--panel);border:1px solid var(--line-strong);border-radius:22px;box-shadow:var(--shadow-card);padding:6px 12px 8px;transition:border-color .15s,box-shadow .15s}
.composer-card:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft),var(--shadow-card)}

.attach-row{display:flex;flex-wrap:wrap;gap:8px}
.attach-row:not(:empty){padding:8px 4px 0}
.attach-chip{display:flex;align-items:center;gap:6px;background:var(--chip);border:1px solid var(--line);border-radius:10px;padding:4px 10px;font-size:12px}
.attach-chip img{width:30px;height:30px;object-fit:cover;border-radius:6px}
.attach-chip .x{cursor:pointer;color:var(--muted);font-weight:700}
.attach-chip .x:hover{color:var(--accent)}

#input{width:100%;resize:none;border:none;background:transparent;padding:10px 6px 6px;font:inherit;font-size:15.5px;outline:none;max-height:240px;color:var(--ink)}
#input::placeholder{color:var(--muted)}

.composer-bottom{display:flex;gap:6px;align-items:center;padding:2px 2px 0}
.composer-bottom .spacer{flex:1}
.cbtn{border:none;background:transparent;color:var(--muted);border-radius:9px;width:34px;height:34px;font-size:15px;cursor:pointer;transition:all .12s;display:flex;align-items:center;justify-content:center}
.cbtn:hover{background:var(--side);color:var(--ink)}
.model-sel{border:none;background:transparent;color:var(--muted);border-radius:9px;padding:6px 4px;font-size:12.5px;cursor:pointer;outline:none;max-width:130px}
.model-sel:hover{color:var(--ink);background:var(--side)}

/* 圆形发送 / 停止按钮（官网同款） */
.send-btn{flex:0 0 auto;width:34px;height:34px;border:none;border-radius:99px;background:var(--accent);color:#fff;font-size:16px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;line-height:1}
.send-btn:hover{background:var(--accent-hover)}
.send-btn:disabled{opacity:.45;cursor:not-allowed}
#btnStop.send-btn{background:#4a4a46;font-size:11px}
#btnStop.send-btn:hover{background:#333330}

.composer-hint{max-width:768px;margin:8px auto 0;font-size:11.5px;color:var(--muted);min-height:15px;text-align:center}

/* ================= 记忆 ================= */
.mem{padding:12px 14px;border:1px solid var(--line);border-radius:12px;margin-bottom:8px;background:var(--panel)}
.mem .mem-t{white-space:pre-wrap;font-size:13.5px}
.mem .mem-d{font-size:11px;color:var(--muted);margin-top:4px}

/* ================= 拖拽遮罩 ================= */
.drop-overlay{position:fixed;inset:0;background:rgba(217,119,87,.12);backdrop-filter:blur(3px);z-index:60;display:flex;align-items:center;justify-content:center}
.drop-overlay div{border:2.5px dashed var(--accent);border-radius:22px;padding:36px 56px;font-size:19px;color:var(--accent);background:var(--panel);font-family:var(--serif)}

/* ================= 弹窗 ================= */
.modal{position:fixed;inset:0;background:rgba(30,25,18,.45);display:flex;align-items:center;justify-content:center;z-index:50}
.modal-card{background:var(--panel);color:var(--ink);border-radius:18px;padding:26px;width:min(480px,92vw);max-height:92vh;overflow-y:auto;box-shadow:var(--shadow-pop)}
.modal-card h3{margin:0;font-family:var(--serif);font-size:21px;font-weight:600}
.modal-sub{margin:2px 0 16px;font-size:12.5px;color:var(--muted)}
.modal-card label{display:block;font-size:13px;margin-bottom:14px;color:var(--muted);font-weight:500}
.modal-card .row-label{display:flex;align-items:center;gap:8px;flex-direction:row}
.modal-card input,.modal-card select,.modal-card textarea{width:100%;margin-top:6px;padding:10px 13px;border:1px solid var(--line-strong);border-radius:11px;font:inherit;font-size:14px;outline:none;background:var(--bg);color:var(--ink);transition:all .15s}
.modal-card input:focus,.modal-card select:focus,.modal-card textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.modal-card .row-label input{width:auto;margin:0;accent-color:var(--accent)}
.modal-note{font-size:12px;color:var(--muted);background:var(--bg);padding:12px 14px;border-radius:10px;line-height:1.6}
.modal-note code,.modal-card label code{background:var(--chip);border-radius:5px;padding:1px 5px;font-family:var(--mono);font-size:.92em}
.modal-actions{display:flex;gap:8px;margin-top:10px}
.fetch-row{display:flex;align-items:center;gap:10px;margin:-6px 0 14px}
.fetch-row .ghost{flex:0 0 auto;padding:7px 14px;font-size:12.5px}
.fetch-status{font-size:12px;color:var(--muted);line-height:1.5;word-break:break-all}
.primary{background:var(--accent);color:#fff;border:none;border-radius:99px;padding:10px 24px;cursor:pointer;font-weight:600;font-size:14px;transition:background .15s}
.primary:hover{background:var(--accent-hover)}
.modal-actions .ghost{flex:0 0 auto;border-radius:99px}

/* Artifact 弹窗 */
.art-card{width:min(920px,94vw);height:86vh;display:flex;flex-direction:column;padding:0;overflow:hidden}
.art-head{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-bottom:1px solid var(--line);font-weight:600}
.art-head .ghost{flex:0 0 auto;margin-left:6px;border-radius:99px}
.art-frame{flex:1;width:100%;border:none;background:#fff}

@media print{
  #sidebar,.composer,.thread-head,.msg-actions,.codebar{display:none !important}
  #app,.thread,.messages{display:block;height:auto;overflow:visible}
  .messages{padding:0}
  .msg{break-inside:avoid;border-bottom:1px solid #eee;padding-bottom:10px}
  .msg.h .bubble{border:1px solid #e8e6dc}
}

/* 密码解锁屏 */
.lock{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;background:var(--bg,#f7f5ef)}
.lock.hidden{display:none}
.lock-card{width:min(360px,88vw);text-align:center;padding:36px 28px;background:var(--card,#fff);border:1px solid var(--line,#e8e6dc);border-radius:18px;box-shadow:0 12px 40px rgba(0,0,0,.08)}
.lock-mark{font-size:40px;color:var(--accent,#b5783c)}
.lock-card h2{margin:12px 0 4px;font-size:19px}
.lock-sub{margin:0 0 18px;font-size:12.5px;color:var(--muted,#8a8578)}
.lock-card input[type=password]{width:100%;box-sizing:border-box;padding:11px 14px;border:1px solid var(--line,#e8e6dc);border-radius:10px;font-size:15px;background:var(--bg,#f7f5ef);color:inherit;outline:none}
.lock-card input[type=password]:focus{border-color:var(--accent,#b5783c)}
.lock-remember{display:flex;align-items:center;gap:6px;justify-content:center;margin:12px 0;font-size:12.5px;color:var(--muted,#8a8578);cursor:pointer}
.lock-btn{width:100%;padding:11px 0}
.lock-msg{min-height:18px;margin-top:12px;font-size:12.5px;color:var(--muted,#8a8578)}
body.dark .lock{--bg:#191817;--card:#232221;--line:#3a3835;--muted:#9a958a;--accent:#d19a66}

/* ================= 手机端适配 ================= */
.menu-btn{display:none}
.nav-mask{position:fixed;inset:0;background:rgba(30,25,18,.4);z-index:99;display:none}
body.nav-open .nav-mask{display:block}
.nav-close{display:none}
/* 触摸设备没有悬停,消息操作按钮常显 */
@media (hover:none){ .msg-actions{opacity:1} }

@media (max-width:768px){
  /* 侧栏变抽屉 */
  #sidebar{position:fixed;top:0;left:0;bottom:0;width:min(84vw,320px);z-index:100;
    transform:translateX(-105%);transition:transform .22s ease;box-shadow:var(--shadow-pop)}
  body.nav-open #sidebar{transform:translateX(0)}
  .nav-close{display:flex;position:absolute;top:14px;right:12px;width:32px;height:32px;
    border:none;border-radius:9px;background:transparent;color:var(--muted);font-size:15px;
    align-items:center;justify-content:center;cursor:pointer}
  .nav-close:hover{background:var(--item-active);color:var(--ink)}
  .menu-btn{display:flex;position:fixed;top:10px;left:10px;z-index:90;width:38px;height:38px;
    border-radius:12px;border:1px solid var(--line);background:var(--panel);color:var(--ink);
    font-size:17px;align-items:center;justify-content:center;box-shadow:var(--shadow-card);cursor:pointer}

  /* 主区全屏,给 ☰ 留位 */
  .thread-head{padding:10px 12px 10px 56px;gap:8px}
  .thread-title{font-size:16px}
  .thread-tools .tbtn{padding:6px 6px;font-size:12px}
  .empty{padding:30px 20px 30px 58px}
  .empty h1{font-size:24px}

  /* 消息流 */
  .messages{padding:18px 12px 8px;gap:18px}
  .msg{gap:10px}
  .msg.h .bubble{max-width:86%}
  .msg.a .text{font-size:15.5px}
  .codewrap pre{font-size:.82em;padding:12px}

  /* 输入区 */
  .composer{padding:8px 10px 12px}
  #input{font-size:16px}   /* iOS 聚焦时不再自动放大 */
  #search{font-size:16px}

  /* 弹窗 */
  .modal-card{padding:20px 16px;width:94vw}
  .art-card{width:100vw;height:100dvh;border-radius:0}
}

/* 空状态「开始新对话」按钮 */
.empty-new{margin-top:18px;padding:12px 30px;font-size:15px}

/* 手机端:初始页美化 */
@media (max-width:768px){
  .empty{padding:40px 24px 30px 62px;align-items:flex-start;padding-top:18vh}
  .empty-inner{max-width:100%}
  .empty-mark{font-size:56px;margin-bottom:18px}
  .empty h1{font-size:26px;margin-bottom:10px}
  .empty p{line-height:1.8}
  .empty-new{margin-top:22px;padding:13px 34px;font-size:16px;border-radius:99px;
    box-shadow:0 6px 20px rgba(217,119,87,.35)}
}

/* ================= 手机端顶部重构(v17)================= */
@media (max-width:768px){
  /* 标题栏:通栏 + 毛玻璃 + 适配刘海安全区 */
  .thread-head{position:sticky;top:0;z-index:80;max-width:none;
    background:var(--bg);
    background:color-mix(in srgb, var(--bg) 85%, transparent);
    backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
    padding:calc(env(safe-area-inset-top,0px) + 8px) 8px 8px 54px;
    border-bottom:1px solid var(--line)}
  .menu-btn{top:calc(env(safe-area-inset-top,0px) + 9px);left:10px;box-shadow:none;
    background:transparent;border-color:transparent}
  .menu-btn:hover{background:var(--item-active)}

  /* 抽屉和它的关闭按钮也避开刘海 */
  #sidebar{padding-top:env(safe-area-inset-top,0px)}
  .nav-close{top:calc(env(safe-area-inset-top,0px) + 12px)}

  /* 底部输入区避开 Home 指示条 */
  .composer{padding:8px 10px calc(env(safe-area-inset-bottom,0px) + 10px)}
  .composer-hint{margin-bottom:2px}

  /* 初始页也避开刘海 */
  .empty{padding-top:calc(env(safe-area-inset-top,0px) + 12vh)}
}

/* ================= 状态栏融合 + 首页居中(v18)================= */
html{background:var(--bg)}   /* 状态栏/超出滚动区域与页面同色 */

@media (max-width:768px){
  /* 首页内容真正居中(不再为 ☰ 让位导致偏移) */
  .empty{padding-left:24px;padding-right:24px}
}

/* 深色模式下 html 背景同步变深(修复底部/顶部延伸区域露白边) */
html:has(body.dark){background:#262624}

/* 手机端:隐藏输入框下方的接口/同步提示条,输入框落到底部 */
@media (max-width:768px){
  .composer-hint{display:none}
  .composer{padding-bottom:calc(env(safe-area-inset-bottom,0px) + 8px)}
}

/* 手机端:抽屉底部避开 Home 指示条(用 top:0/bottom:0 锚定,不用 100dvh——主屏模式下 dvh 不准会露白边) */
@media (max-width:768px){
  #sidebar{padding-bottom:env(safe-area-inset-bottom,0px)}
}
