[hidden]{display:none!important}
:root{--bg:#141850;--bg2:#1E2468;--bg3:#2A3190;--line:#343b9a;--fg:#fff;--muted:#9AA0C8;--acc:#7C8CFF;--acc2:#5C6BC0;--err:#ff8a8a;
  --safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;background:var(--bg);color:var(--fg);font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}
body{overscroll-behavior:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
#app{display:flex;flex-direction:column;height:var(--app-h,100vh);padding-top:var(--safe-t)}
#top{display:flex;align-items:center;gap:4px;padding:6px 6px;background:var(--bg);border-bottom:1px solid var(--line)}
.icon{width:40px;height:40px;display:grid;place-items:center;border-radius:10px;flex:none}
.icon:active{background:var(--bg3)}
#tabs{flex:1;display:flex;background:var(--bg2);border-radius:12px;padding:3px;gap:2px;min-width:0}
#tabs button{flex:1;padding:7px 4px;border-radius:9px;font-size:14px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#tabs button.on{background:var(--bg3);color:#fff;font-weight:600}
#modelBar{display:flex;align-items:center;gap:8px;padding:6px 12px;font-size:13px;color:var(--muted)}
#model{background:var(--bg2);color:#fff;border:1px solid var(--line);border-radius:8px;padding:4px 8px;font-size:13px;max-width:70%}
#quota{margin-left:auto}
#chat{flex:1;overflow-y:auto;padding:8px 12px 16px;-webkit-overflow-scrolling:touch}
.empty{color:var(--muted);text-align:center;margin-top:18vh;padding:0 20px}
.empty b{display:block;color:#fff;font-size:20px;margin-bottom:6px}
.msg{margin:10px 0;max-width:100%;word-wrap:break-word;overflow-wrap:anywhere}
.msg.user{margin-left:auto;max-width:86%;width:fit-content;background:var(--bg3);padding:8px 12px;border-radius:16px 16px 4px 16px;white-space:pre-wrap}
.msg.user img{max-width:160px;max-height:160px;border-radius:8px;display:block;margin:4px 0}
.msg.bot{padding:2px 2px}
.msg.bot p{margin:.5em 0}
.msg.bot h1,.msg.bot h2,.msg.bot h3{font-size:1.1em;margin:.8em 0 .3em}
.msg.bot ul,.msg.bot ol{padding-left:1.3em;margin:.4em 0}
.msg.bot a{color:var(--acc)}
.msg.bot code{background:var(--bg2);padding:1px 5px;border-radius:5px;font:14px/1.4 ui-monospace,Menlo,Consolas,monospace}
.msg.bot pre{position:relative;background:#0d1040;border:1px solid var(--line);border-radius:10px;padding:10px;overflow-x:auto}
.msg.bot pre code{background:none;padding:0;font-size:13px}
.msg.bot blockquote{border-left:3px solid var(--acc2);margin:.5em 0;padding-left:10px;color:var(--muted)}
.msg.bot table{border-collapse:collapse;display:block;overflow-x:auto;font-size:14px}
.msg.bot td,.msg.bot th{border:1px solid var(--line);padding:4px 8px}
.copy{position:absolute;top:6px;right:6px;font-size:12px;background:var(--bg3);padding:2px 8px;border-radius:6px;color:var(--muted)}
.tools{display:flex;gap:14px;font-size:13px;color:var(--muted);margin-top:2px}
.tools button{padding:2px 0;color:var(--muted)}
.cites{margin-top:8px;display:flex;flex-wrap:wrap;gap:6px}
.cites a{font-size:12px;background:var(--bg2);border:1px solid var(--line);color:#dfe3ff;padding:3px 8px;border-radius:12px;text-decoration:none;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.err{color:var(--err)}
.typing::after{content:"▍";animation:blink 1s steps(2) infinite;color:var(--acc)}
@keyframes blink{50%{opacity:0}}
#attach{display:flex;gap:6px;padding:6px 12px 0;overflow-x:auto}
#attach .th{position:relative;flex:none}
#attach img{width:56px;height:56px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}
#attach button{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:#000a;font-size:12px;line-height:20px}
#composer{display:flex;align-items:flex-end;gap:6px;padding:8px 8px calc(8px + var(--safe-b));border-top:1px solid var(--line);background:var(--bg)}
#input{flex:1;resize:none;max-height:160px;min-height:40px;background:var(--bg2);color:#fff;border:1px solid var(--line);border-radius:20px;padding:9px 14px;font:inherit;outline:none}
#input:focus{border-color:var(--acc2)}
.send{width:40px;height:40px;border-radius:50%;background:var(--acc2);display:grid;place-items:center;flex:none}
.send.stop{background:#c0465c}
.send:disabled{opacity:.4}
#imgBtn.off{opacity:.3;pointer-events:none}
#drawer{position:fixed;inset:0;background:#0008;z-index:10}
.drawer-panel{position:absolute;top:0;bottom:0;left:0;width:min(84vw,340px);background:var(--bg2);padding:calc(10px + var(--safe-t)) 10px 10px;display:flex;flex-direction:column}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:0 4px 8px}
#chatList{flex:1;overflow-y:auto}
.item{display:flex;align-items:center;gap:6px;padding:10px;border-radius:10px}
.item.on{background:var(--bg3)}
.item .t{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.item small{color:var(--muted);font-size:11px;display:block}
.item .del{color:var(--muted);padding:4px 6px}
.link{color:var(--acc);padding:10px;font-size:14px}
.danger{color:var(--err)}
#gate{position:fixed;inset:0;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center;z-index:20}
#gate .logo{width:96px;height:96px;border-radius:50%}
#gate h1{margin:12px 0 4px;font-size:24px}
#gate p{color:var(--muted);max-width:360px}
#codeBox{display:flex;gap:8px;margin-top:8px}
#code{background:var(--bg2);border:1px solid var(--line);color:#fff;border-radius:10px;padding:10px 12px;font:inherit;width:180px}
.primary{background:var(--acc2);border-radius:10px;padding:10px 16px;font-weight:600}
.sel{user-select:text;-webkit-user-select:text;color:#fff;font-weight:600}
