:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#242522;background:#f7f5ef;--line:#dedbd1;--muted:#77766f;--ink:#242522;--accent:#2f776b;--bubble:#fffefa}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#f7f5ef}body{min-height:100vh}.app-shell{width:min(100%,760px);height:100vh;margin:auto;display:flex;flex-direction:column;background:rgba(255,254,250,.55);border-inline:1px solid #ebe8df}.topbar{height:72px;flex:none;padding:12px 18px;display:grid;grid-template-columns:40px minmax(0,1fr) 40px;align-items:center;gap:12px;border-bottom:1px solid var(--line);background:#fbfaf6}.topbar>.icon-button:last-child{grid-column:3}.identity{min-width:0;display:flex;align-items:center;justify-content:center;gap:10px}.identity strong,.identity small{display:block}.identity strong{white-space:nowrap}.identity small{font-size:12px;color:var(--muted);margin-top:3px;white-space:nowrap}.status-dot{flex:0 0 9px;width:9px;height:9px;border-radius:50%;background:#4d9a72;box-shadow:0 0 0 4px #dceee0}.icon-button,.round-button,.send-button{border:0;background:transparent;cursor:pointer;color:var(--ink);font-size:22px;width:40px;height:40px;border-radius:50%}.icon-button:hover,.round-button:hover{background:#eceae2}.chat{flex:1;overflow:auto;padding:24px 20px 12px}.date-divider{text-align:center;color:var(--muted);font-size:12px;margin:2px 0 24px}.messages{display:flex;flex-direction:column;gap:12px}.message{max-width:78%;display:flex;flex-direction:column;gap:5px}.message.ai{align-self:flex-start}.message.human{align-self:flex-end;align-items:flex-end}.bubble{padding:12px 15px;border:1px solid var(--line);border-radius:16px;line-height:1.55;white-space:pre-wrap;word-break:break-word;background:var(--bubble)}.human .bubble{background:#dcece5;border-color:#c4ddd2}.meta{font-size:11px;color:var(--muted);padding:0 5px}.typing{font-size:12px;color:var(--muted);padding:14px 4px}.typing span{display:inline-block;width:5px;height:5px;background:var(--accent);border-radius:50%;margin-right:3px;animation:pulse 1s infinite}.typing span:nth-child(2){animation-delay:.15s}.typing span:nth-child(3){animation-delay:.3s}@keyframes pulse{50%{opacity:.25;transform:translateY(-2px)}}.composer{display:flex;gap:8px;align-items:flex-end;padding:14px 16px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fbfaf6}.composer textarea{flex:1;resize:none;border:1px solid var(--line);border-radius:18px;padding:11px 14px;min-height:42px;max-height:120px;font:inherit;background:white;outline:0}.composer textarea:focus,dialog textarea:focus{border-color:var(--accent)}.send-button{background:var(--accent);color:white;font-weight:700}.send-button:hover{background:#27655b}.drawer{position:fixed;z-index:3;inset:0 auto 0 0;width:min(320px,86vw);padding:22px;background:#fbfaf6;transform:translateX(-100%);transition:transform .2s;border-right:1px solid var(--line)}.drawer.open{transform:none}.drawer-head,.dialog-head{display:flex;align-items:center;justify-content:space-between;font-size:18px}.drawer nav{margin-top:32px;display:grid;gap:8px}.nav-item{border:0;background:transparent;text-align:left;padding:13px;border-radius:8px;font:inherit;cursor:pointer}.nav-item.active,.nav-item:hover{background:#e5eee9;color:#245e54}.drawer-footer{position:absolute;bottom:28px;display:grid;gap:5px;color:var(--muted);font-size:12px}.drawer-footer strong{color:var(--ink);font-size:14px}.backdrop{display:none;position:fixed;z-index:2;inset:0;background:#24252233}.backdrop.open{display:block}dialog{width:min(460px,calc(100% - 32px));border:1px solid var(--line);border-radius:8px;padding:22px;background:#fbfaf6;color:var(--ink)}dialog::backdrop{background:#24252255}dialog label{display:grid;gap:7px;margin-top:20px;font-size:13px;color:var(--muted)}dialog textarea{width:100%;resize:vertical;border:1px solid var(--line);border-radius:7px;padding:10px;font:inherit;background:white;color:var(--ink)}.hint{font-size:12px;color:var(--muted);line-height:1.5;margin:18px 0 0}.dialog-actions{display:flex;justify-content:flex-end;margin-top:16px}.text-button{border:0;border-radius:7px;background:var(--accent);color:#fff;padding:9px 20px;font:inherit;cursor:pointer}@media(max-width:520px){.chat{padding-inline:14px}.message{max-width:88%}.topbar{padding-inline:10px;gap:6px}.identity{gap:8px}.identity small{font-size:11px}}
