:root{--r-lg:18px;--r-md:14px;--r-sm:12px;--font:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial;--mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bg:#fff;--panel:#fff;--panel2:#f7f7f7;--border:#0000001a;--text:#000000eb;--muted:#0000008f;--accent-warm:#f2c94c;--accent-cool:#7ab6ff;--shadow:0 18px 40px #0000000f;--shadow2:0 8px 20px #0000000f;--focus:#0000002e}html[data-theme=night]{--bg:#0a0b10;--panel:#0f1118;--panel2:#ffffff0a;--border:#ffffff1a;--text:#ffffffeb;--muted:#ffffff9e;--accent-warm:#f6e6a6;--accent-cool:#2b4dff;--shadow:0 22px 60px #00000073;--shadow2:0 10px 28px #00000059;--focus:#ffffff2e}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font);padding-bottom:env(safe-area-inset-bottom)}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.container{max-width:780px;margin:0 auto;padding:18px 14px}.card{background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:22px;overflow:hidden}.topbar{border-bottom:1px solid var(--border);background:linear-gradient(180deg,var(--panel2),transparent);justify-content:space-between;align-items:center;gap:12px;padding:14px;display:flex}.brand{align-items:center;gap:10px;min-width:0;display:flex}.brand .title{flex-direction:column;min-width:0;line-height:1.1;display:flex}.brand .title strong{white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.brand .title span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.avatar{border:1px solid var(--border);background:var(--panel2);border-radius:14px;flex:none;place-items:center;width:36px;height:36px;display:grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.avatar .fallback{color:var(--muted);font-size:12px;font-weight:900}.pill{border:1px solid var(--border);background:var(--panel2);color:var(--text);box-shadow:var(--shadow2);border-radius:999px;align-items:center;gap:8px;padding:8px 10px;font-size:12px;display:inline-flex}.thermo{position:relative;overflow:hidden}.thermo:before{content:"";background:linear-gradient(90deg,color-mix(in oklab,var(--accent-cool)40%,transparent),color-mix(in oklab,var(--accent-warm)45%,transparent));opacity:.22;pointer-events:none;position:absolute;inset:0}.thermo strong{font-weight:900}.thermo small{color:var(--muted)}.btn{border:1px solid var(--border);background:var(--panel2);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:999px;padding:9px 12px;transition:transform 80ms,filter .15s,border-color .15s}.btn:hover{filter:brightness(1.03);border-color:color-mix(in oklab,var(--border)70%,var(--focus))}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--text);color:var(--bg);border-color:#0000}.btn.primary:hover{filter:brightness(1.05)}.btn.danger{background:color-mix(in oklab,#ff3b30 14%,var(--panel2));border-color:color-mix(in oklab,#ff3b30 28%,var(--border))}.input{border:1px solid var(--border);background:var(--panel2);width:100%;color:var(--text);border-radius:16px;outline:none;padding:12px 14px}.input:focus{border-color:color-mix(in oklab,var(--border)50%,var(--focus))}.select{border:1px solid var(--border);background:var(--panel2);width:100%;color:var(--text);border-radius:16px;outline:none;padding:10px 12px}.chatWrap{flex-direction:column;height:calc(100vh - 150px);min-height:560px;display:flex}.chatList{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;flex:1;padding:14px;overflow:auto}.dayHint{text-align:center;color:var(--muted);margin:10px 0 14px;font-size:12px}.row{margin:10px 0;display:flex}.row.user{justify-content:flex-end}.row.assistant{justify-content:flex-start}.row.system{justify-content:center}.bubble{border:1px solid var(--border);background:var(--panel2);white-space:pre-wrap;word-break:break-word;max-width:min(680px,92%);box-shadow:var(--shadow2);border-radius:18px;padding:11px 13px;font-size:14px;line-height:1.5}.bubble.user{background:color-mix(in oklab,var(--accent-cool)18%,var(--panel2));border-color:color-mix(in oklab,var(--accent-cool)22%,var(--border))}html[data-theme=night] .bubble.user{background:color-mix(in oklab,var(--accent-cool)18%,#ffffff0a)}.bubble.assistant{background:color-mix(in oklab,var(--accent-warm)12%,var(--panel2));border-color:color-mix(in oklab,var(--accent-warm)18%,var(--border))}.bubble.system{max-width:92%;color:var(--muted);box-shadow:none;background:0 0;border-color:#0000}.composer{border-top:1px solid var(--border);padding:12px;padding-bottom:calc(12px + env(safe-area-inset-bottom));background:linear-gradient(0deg,var(--panel2),transparent);gap:10px;display:flex}.send{background:linear-gradient(135deg,var(--accent-cool),var(--accent-warm));color:#101114;cursor:pointer;border:1px solid #0000;border-radius:16px;width:92px;font-weight:900;transition:transform 80ms,filter .15s}.send:active{transform:translateY(1px)}.send:disabled{opacity:.55;cursor:not-allowed}.grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (max-width:820px){.grid2{grid-template-columns:1fr}}.panel{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--panel);box-shadow:var(--shadow2);padding:14px}.h1{margin:0;font-size:18px;font-weight:900}.subtle{color:var(--muted);font-size:12px}.noticeOk{color:color-mix(in oklab,#16a34a 70%,var(--text));font-size:13px}.noticeErr{color:color-mix(in oklab,#ef4444 75%,var(--text));font-size:13px}.hr{background:var(--border);height:1px;margin:12px 0}@media (max-width:520px){.container{padding:12px 10px}.card{border-radius:18px}.topbar{flex-direction:column;align-items:stretch;gap:10px;padding:12px}.brand .title strong{font-size:13px}.brand .title span{font-size:12px}.actions{justify-content:flex-start;gap:8px}.pill.thermo{justify-content:center;width:100%}.btn{padding:8px 10px;font-size:12px}.chatWrap{height:calc(100vh - 190px);min-height:520px}.chatList{padding:12px}.bubble{border-radius:18px;max-width:92%;padding:10px 12px;font-size:14px}.composer{gap:8px;padding:10px}.input{border-radius:16px;padding:12px}.send{border-radius:16px;width:78px}}@media (max-width:360px){.btn{padding:7px 9px}.send{width:70px}}
