*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #F9F6F1;--surface: #FFFFFF;--border: rgba(0,0,0,.1);--text: #1C1917;--muted: #78716C;--accent: #C96A38;--user-bg: #1C1917;--drawer-bg: #18171A}@media (prefers-color-scheme: dark){:root{--bg: #18171A;--surface: #221F1C;--border: rgba(255,255,255,.1);--text: #EDE9E3;--muted: #6B6660;--accent: #E07B45;--user-bg: #2C2825;--drawer-bg: #0E0D0C}}html,body{height:100%;overflow:hidden;-webkit-tap-highlight-color:transparent}#root{height:100%}::-webkit-scrollbar{width:3px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.app{height:100dvh;display:flex;flex-direction:column;background:var(--bg);color:var(--text);font-family:DM Sans,Noto Sans SC,-apple-system,BlinkMacSystemFont,sans-serif;position:relative;overflow:hidden}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:10}.drawer{position:absolute;left:0;top:0;bottom:0;width:min(280px,80vw);background:var(--drawer-bg);z-index:20;transform:translate(-100%);transition:transform .28s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column}.drawer.open{transform:translate(0)}.drawer-header{padding:18px 16px 14px;padding-top:max(18px,env(safe-area-inset-top));border-bottom:.5px solid rgba(255,255,255,.07);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.drawer-title{font-size:16px;font-weight:500;color:#ede9e3}.drawer-sub{font-size:11px;color:#5a5550;margin-top:2px}.close-btn{background:none;border:none;cursor:pointer;color:#5a5550;font-size:20px;padding:4px;line-height:1;transition:color .15s}.close-btn:hover{color:#9a9590}.drawer-body{flex:1;overflow-y:auto;padding:12px}.empty{color:#5a5550;font-size:14px;text-align:center;margin-top:32px}.mem-item{padding:10px;border-radius:8px;margin-bottom:6px;border:.5px solid rgba(255,255,255,.06);transition:background .15s}.mem-item:hover{background:#ffffff0a}.mem-tag{font-size:10px;font-weight:600;letter-spacing:.07em;color:var(--accent);display:block;margin-bottom:4px}.mem-text{font-size:13px;color:#c8c3ba;line-height:1.55}.mem-date{font-size:10.5px;color:#3d3935;margin-top:5px;display:block}.drawer-footer{padding:10px 16px;padding-bottom:max(10px,env(safe-area-inset-bottom));border-top:.5px solid rgba(255,255,255,.06);font-size:11px;color:#3d3935;flex-shrink:0}.drawer-actions{display:flex;gap:6px;margin-bottom:8px}.action-btn{flex:1;padding:6px 0;border:.5px solid rgba(255,255,255,.1);border-radius:6px;background:#ffffff0a;color:#9a9590;font-size:10.5px;font-family:inherit;cursor:pointer;transition:background .15s,color .15s}.action-btn:hover{background:#ffffff14;color:#c8c3ba}.action-btn.danger:hover{background:#dc3c3c26;color:#e07070}.drawer-user{font-size:10px;color:#3d3935;text-align:center}.header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top));border-bottom:.5px solid var(--border);flex-shrink:0;background:var(--bg)}.menu-btn{background:none;border:none;cursor:pointer;padding:6px;display:flex;flex-direction:column;gap:5px}.menu-btn span{display:block;height:1.5px;background:var(--text);border-radius:1px;transition:width .2s}.menu-btn span:nth-child(1){width:20px}.menu-btn span:nth-child(2){width:14px}.menu-btn span:nth-child(3){width:20px}.menu-btn:hover span:nth-child(2){width:20px}.header-center{text-align:center}.header-title{font-size:16px;font-weight:500}.header-sub{font-size:11px;color:var(--muted)}.messages{flex:1;overflow-y:auto;padding:16px 0 10px;-webkit-overflow-scrolling:touch}.msg-row{display:flex;padding:0 14px;margin-bottom:12px;animation:fadeUp .25s ease both}.msg-row.user{justify-content:flex-end}.msg-row.assistant{justify-content:flex-start;align-items:flex-start}.avatar{width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;font-size:11px;font-weight:500;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-right:8px;margin-top:3px}.bubble{padding:10px 14px;font-size:15px;line-height:1.65;word-break:break-word;white-space:pre-wrap}.msg-row.user .bubble{background:var(--user-bg);color:#f5f0e8;border-radius:16px 16px 3px}.msg-row.assistant .bubble{background:var(--surface);color:var(--text);border-radius:16px 16px 16px 3px;border:.5px solid var(--border)}.bubble-wrap{max-width:74%;display:flex;flex-direction:column}.msg-row.user .bubble-wrap{align-items:flex-end}.msg-row.assistant .bubble-wrap{align-items:flex-start}.time{font-size:10.5px;color:var(--muted);margin-top:3px;padding:0 4px;-webkit-user-select:none;user-select:none}.code-block{background:#0d0c0b;border-radius:10px;padding:10px 12px;margin:6px 0;font-family:JetBrains Mono,Fira Code,Cascadia Code,monospace;font-size:13px;line-height:1.6;color:#c8c3ba;white-space:pre-wrap;word-break:break-word;overflow-x:auto}.msg-row.user .code-block{background:#ffffff0f;color:#d0c8bb}.bubble.typing{display:flex;align-items:center;gap:4px;padding:13px 16px}.bubble.typing span{width:6px;height:6px;border-radius:50%;background:var(--muted);display:inline-block;animation:blink 1.4s infinite}.bubble.typing span:nth-child(2){animation-delay:.2s}.bubble.typing span:nth-child(3){animation-delay:.4s}.input-bar{padding:10px 14px;padding-bottom:max(14px,env(safe-area-inset-bottom));border-top:.5px solid var(--border);flex-shrink:0;background:var(--bg)}.input-wrap{display:flex;align-items:flex-end;gap:8px;background:var(--surface);border:.5px solid var(--border);border-radius:22px;padding:8px 8px 8px 16px}.input-wrap:focus-within{border-color:var(--accent)}.input-wrap textarea{flex:1;border:none;background:transparent;font-size:15px;color:var(--text);font-family:inherit;line-height:1.5;resize:none;outline:none;max-height:120px;overflow-y:auto}.input-wrap textarea::placeholder{color:var(--muted)}.send{width:32px;height:32px;border-radius:50%;background:var(--border);border:none;cursor:default;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff;transition:background .15s,opacity .15s}.send.active{background:var(--accent);cursor:pointer}.send.active:hover{opacity:.85}.send:disabled{opacity:.45}.hint{font-size:11px;color:var(--muted);text-align:center;margin-top:7px}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes blink{0%,80%,to{opacity:.2}40%{opacity:1}}
