:root{--bg:#f4efe6;--panel:#fffdf8;--ink:#1c1c1a;--muted:#6f6a60;--line:#e4dccd;--brand:#1f5c4a;--brand-ink:#ffffff;--brand-soft:#e2eee8;--mine:#1f5c4a;--mine-ink:#ffffff;--theirs:#ffffff;--accent:#b5542c;--danger:#b3261e;--radius:14px;--shadow:0 1px 2px rgba(40,30,10,0.06),0 4px 16px rgba(40,30,10,0.06);color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#161714;--panel:#1f201c;--ink:#ecebe6;--muted:#a19c90;--line:#34352f;--brand:#4fa386;--brand-ink:#0d1a15;--brand-soft:#23352e;--mine:#2f7a61;--mine-ink:#ffffff;--theirs:#2a2b26;--accent:#e08a62;--danger:#ef6b62;color-scheme:dark}}*{box-sizing:border-box}body,html{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font:17px/1.5 -apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:default}.btn{border:0;border-radius:999px;padding:10px 18px;background:var(--brand);color:var(--brand-ink);font-weight:600;min-height:44px}.btn.ghost{background:transparent;color:var(--brand);border:1px solid var(--line)}.btn.small{padding:6px 12px;min-height:34px;font-size:15px}.btn.danger{background:var(--danger);color:#fff}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:14px;color:var(--muted)}.input{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--panel);min-height:48px;outline:none}.input:focus{border-color:var(--brand)}.error{color:var(--danger);font-size:15px;margin:8px 0}.muted{color:var(--muted)}.login-wrap{min-height:100dvh;display:grid;place-items:center;padding:24px 16px}.login-card{width:100%;max-width:380px;background:var(--panel);border-radius:20px;padding:32px 24px;box-shadow:var(--shadow)}.login-card h1{font-size:24px;margin:12px 0 4px}.login-card p{margin:0 0 24px;color:var(--muted);font-size:15px}.logo{width:52px;height:52px;border-radius:14px}.app{height:100dvh;display:flex;background:var(--bg)}.sidebar{width:340px;border-right:1px solid var(--line);display:flex;flex-direction:column;background:var(--panel)}.main{flex:1 1;display:flex;flex-direction:column;min-width:0}@media (max-width:760px){.sidebar{width:100%;border-right:0}.app.in-chat .sidebar,.app:not(.in-chat) .main{display:none}}.topbar{display:flex;align-items:center;gap:8px;padding:max(10px,env(safe-area-inset-top)) 12px 10px;border-bottom:1px solid var(--line);background:var(--panel);min-height:58px}.topbar h2{font-size:18px;margin:0;flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon-btn{border:0;background:transparent;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;color:var(--brand)}.icon-btn:hover{background:var(--brand-soft)}.conv-list{flex:1 1;overflow-y:auto}.conv{display:flex;gap:12px;padding:12px 14px;border:0;width:100%;text-align:left;background:transparent;border-bottom:1px solid var(--line)}.conv.active,.conv:hover{background:var(--brand-soft)}.avatar{flex:none;width:46px;height:46px;border-radius:50%;background:var(--brand);color:var(--brand-ink);display:grid;place-items:center;font-weight:700;font-size:18px}.conv-body{flex:1 1;min-width:0}.conv-top{display:flex;justify-content:space-between;gap:8px}.conv-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conv-time{font-size:13px;color:var(--muted);flex:none}.conv-last{font-size:15px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge{background:var(--accent);color:#fff;border-radius:999px;font-size:12px;padding:1px 7px;margin-left:6px}.empty{padding:32px 20px;color:var(--muted);text-align:center}.messages{flex:1 1;overflow-y:auto;padding:16px 12px;gap:10px}.messages,.msg{display:flex;flex-direction:column}.msg{max-width:min(78%,560px)}.msg.mine{align-self:flex-end;align-items:flex-end}.msg .who{font-size:13px;color:var(--muted);margin:0 6px 2px}.bubble{background:var(--theirs);padding:9px 13px;border-radius:16px;border-top-left-radius:4px;box-shadow:var(--shadow);white-space:pre-wrap;word-break:break-word}.msg.mine .bubble{background:var(--mine);color:var(--mine-ink);border-top-left-radius:16px;border-top-right-radius:4px}.tr{margin-top:6px;padding-top:6px;border-top:1px dashed var(--line);font-size:16px}.msg.mine .tr{border-top-color:rgba(255,255,255,.35)}.tr-label{font-size:12px;opacity:.7;display:block}.tr-note{display:block;margin-top:6px;font-size:13px;line-height:1.45;opacity:.85;font-style:italic}.msg-actions{display:flex;gap:10px;margin:3px 6px 0;font-size:13px;color:var(--muted)}.link{border:0;background:transparent;padding:2px 0;color:var(--brand);font-size:13px}.day{align-self:center;font-size:12px;color:var(--muted);margin:6px 0}.composer{border-top:1px solid var(--line);background:var(--panel);padding:8px 10px max(8px,env(safe-area-inset-bottom))}.composer-row{display:flex;gap:8px;align-items:flex-end}.composer textarea{flex:1 1;resize:none;border:1px solid var(--line);border-radius:20px;padding:10px 14px;background:var(--bg);max-height:140px;min-height:44px;outline:none;line-height:1.4}.composer textarea:focus{border-color:var(--brand)}.mic{flex:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--bg);display:grid;place-items:center;color:var(--brand)}.mic.on{background:var(--danger);color:#fff;border-color:var(--danger);animation:pulse 1.2s infinite}@keyframes pulse{0%,to{box-shadow:0 0 0 0 rgba(179,38,30,.4)}50%{box-shadow:0 0 0 8px rgba(179,38,30,0)}}.composer-tools{display:flex;gap:8px;align-items:center;margin-top:6px;flex-wrap:wrap;font-size:14px}.composer-tools select{border:1px solid var(--line);border-radius:999px;padding:4px 10px;background:var(--bg)}.status{font-size:14px;color:var(--muted);padding:4px 4px 6px}.preview{background:var(--brand-soft);border-radius:12px;padding:10px;margin-bottom:8px}.preview textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--panel);resize:vertical;min-height:60px}.preview .row{display:flex;gap:8px;justify-content:flex-end;margin-top:8px;flex-wrap:wrap}.sheet-bg{position:fixed;inset:0;background:rgba(0,0,0,.35);display:grid;place-items:end center;z-index:20}@media (min-width:761px){.sheet-bg{place-items:center}}.sheet{width:100%;max-width:480px;max-height:88dvh;overflow-y:auto;background:var(--panel);border-radius:20px 20px 0 0;padding:20px 18px max(20px,env(safe-area-inset-bottom))}@media (min-width:761px){.sheet{border-radius:20px}}.sheet h3{margin:0 0 14px;font-size:19px}.pick{display:flex;align-items:center;gap:12px;padding:10px 4px;border-bottom:1px solid var(--line)}.pick input{width:22px;height:22px;accent-color:var(--brand)}.sheet .row{justify-content:flex-end;margin-top:16px}.check,.sheet .row{display:flex;gap:10px}.check{align-items:center;margin-bottom:14px}.check input{width:22px;height:22px;accent-color:var(--brand)}hr.sep{border:0;border-top:1px solid var(--line);margin:18px 0}.page{max-width:720px;margin:0 auto;padding:0 16px 40px}.card{background:var(--panel);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);margin-top:16px}.user-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.user-row .grow{flex:1 1;min-width:140px}.tag{font-size:12px;border:1px solid var(--line);border-radius:999px;padding:1px 8px;color:var(--muted)}.grid2{display:grid;grid-template-columns:1fr 1fr;grid-gap:0 12px;gap:0 12px}@media (max-width:520px){.grid2{grid-template-columns:1fr}}