*{box-sizing:border-box}:root{--brand: #e8442c;--brand-hover: #d23d28;--brand-soft: #fef2f0;--brand-soft-bg: #fff8f6;--brand-border: #f3c9c2;--ink: #1f2329;--ink-muted: #6b7078;--on-brand: #ffffff;--surface: #ffffff;--surface-muted: #f4f5f7;--border: #e8e9ec;--success: #2e9c6a;--warn-bg: #fff3e0;--warn-border: #ffd9a0;--warn-ink: #b25400;--skeleton-hi: #eceef1;color-scheme:light}:root[data-theme=dark]{--brand: #ff5a47;--brand-hover: #ff6b5a;--brand-soft: #3a2a26;--brand-soft-bg: #2d1f1c;--brand-border: #5c3a33;--ink: #e8e9ec;--ink-muted: #9aa0a8;--on-brand: #ffffff;--surface: #26282d;--surface-muted: #1a1c20;--border: #35383e;--success: #4ade80;--warn-bg: #3a2a14;--warn-border: #5c4020;--warn-ink: #ffb866;--skeleton-hi: #35383e;color-scheme:dark}html,body,#root{margin:0;padding:0;height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;background:var(--surface-muted);color:var(--ink)}.screen{height:100dvh;display:flex;flex-direction:column}.login-screen{height:100dvh;display:flex;flex-direction:column;justify-content:center;padding:24px;gap:16px}.login-title{font-size:22px;font-weight:700;margin-bottom:4px;text-align:center}.login-subtitle{font-size:13px;color:var(--ink-muted);text-align:center;margin-bottom:20px}.login-input{width:100%;padding:14px 16px;border-radius:12px;border:1px solid var(--border);font-size:16px;background:var(--surface)}.login-input:focus{outline:none;border-color:var(--brand)}.login-input-wrap{position:relative}.login-input-wrap .login-input{padding-right:44px}.login-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;background:transparent;color:var(--ink-muted);cursor:pointer}.login-eye:hover{color:var(--brand)}.login-error{color:var(--brand);font-size:13px;text-align:center}.login-button{width:100%;padding:14px;border-radius:12px;border:none;background:var(--brand);color:var(--on-brand);font-size:16px;font-weight:600}.login-button:disabled{opacity:.5}.chat-header{flex:0 0 auto;padding:14px 16px;padding-top:max(14px,env(safe-area-inset-top));background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.chat-header-title{font-weight:700;font-size:16px}.chat-header-tenant{font-size:12px;color:var(--ink-muted)}.chat-logout{font-size:13px;color:var(--ink-muted);background:none;border:none;padding:6px}.chat-messages{flex:1 1 auto;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;-webkit-overflow-scrolling:touch}.bubble-row{display:flex;width:100%}.bubble-row.user{justify-content:flex-end}.bubble-row.assistant{justify-content:flex-start}.bubble{max-width:78%;padding:10px 14px;border-radius:16px;font-size:15px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.bubble.user{background:var(--brand);color:var(--on-brand);border-bottom-right-radius:4px}.bubble.assistant{background:var(--surface);color:var(--ink);border:1px solid var(--border);border-bottom-left-radius:4px}.confirm-card{max-width:88%;border:1px solid var(--brand-border);background:var(--brand-soft-bg);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:10px}.confirm-card-label{font-size:12px;color:var(--brand);font-weight:700;letter-spacing:.02em}.confirm-card-summary{font-size:14px;line-height:1.6;white-space:pre-wrap;color:var(--ink)}.confirm-card-actions{display:flex;gap:10px}.confirm-fields{display:flex;flex-direction:column;gap:8px;margin:4px 0}.confirm-field{display:flex;flex-direction:column;gap:4px}.confirm-field-label{font-size:12px;color:var(--ink-muted)}.confirm-field-input{width:100%;padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--ink);font-size:14px;font-family:inherit}.confirm-field-input:focus{outline:none;border-color:var(--brand)}.confirm-card-button{flex:1;padding:10px;border-radius:10px;font-size:14px;font-weight:600;border:1px solid transparent}.confirm-card-button.confirm{background:var(--brand);color:var(--on-brand)}.confirm-card-button.cancel{background:var(--surface);color:var(--ink-muted);border-color:var(--border)}.confirm-card-button:disabled{opacity:.5}.confirm-card-status{font-size:13px;color:var(--ink-muted);font-weight:600}.confirm-card-status.confirmed{color:var(--success)}.typing-indicator{display:flex;gap:4px;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:16px;width:fit-content}.typing-dot{width:6px;height:6px;border-radius:50%;background:var(--ink-muted);animation:typing-bounce 1.2s infinite ease-in-out}.typing-dot:nth-child(2){animation-delay:.15s}.typing-dot:nth-child(3){animation-delay:.3s}@keyframes typing-bounce{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-4px);opacity:1}}.chat-input-bar{flex:0 0 auto;display:flex;align-items:flex-end;gap:12px;padding:10px 12px;padding-bottom:max(10px,env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border)}.chat-input-field{flex:1;padding:10px 14px;border-radius:20px;border:1px solid var(--border);font-size:15px;font-family:inherit;line-height:1.4;background:var(--surface-muted);resize:none;max-height:120px;overflow-y:auto}.chat-input-field:focus{outline:none;border-color:var(--brand);background:var(--surface)}.chat-input-field:disabled{background:#efeff1;color:var(--ink-muted);cursor:not-allowed}.chat-send-button{flex:0 0 auto;height:42px;padding:0 18px;border-radius:20px;border:none;background:var(--brand);color:var(--on-brand);font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;transition:background .15s ease}.chat-send-button:hover:not(:disabled){background:var(--brand-hover)}.chat-send-button:disabled{background:#d8dadd}.chat-voice-button{flex:0 0 auto;width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:50%;border:1px solid var(--border);background:var(--surface-muted);color:var(--ink-muted);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.chat-voice-button:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}.chat-voice-button:disabled{opacity:.5}.chat-voice-button.listening{background:var(--brand);border-color:var(--brand);color:var(--on-brand);animation:voice-pulse 1.4s ease-in-out infinite}@keyframes voice-pulse{0%,to{box-shadow:0 0 #e8442c80}50%{box-shadow:0 0 0 8px #e8442c00}}.chat-empty-hint{display:flex;flex-direction:column;align-items:center;gap:16px;padding:48px 20px}.chat-empty-title{color:var(--ink-muted);font-size:14px}.chat-empty-chips{display:flex;flex-direction:column;gap:10px;width:100%;max-width:320px}.example-chip{padding:12px 16px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--ink);font-size:14px;text-align:left;cursor:pointer;transition:border-color .15s,color .15s}.example-chip:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}.example-chip:disabled{opacity:.5}.chat-error{color:var(--brand);font-size:13px;text-align:center;padding:8px}.offline-banner{flex:0 0 auto;padding:8px 16px;background:var(--warn-bg);color:var(--warn-ink);font-size:13px;text-align:center;border-bottom:1px solid var(--warn-border)}.app-layout{display:flex;height:100dvh;overflow:hidden}.chat-screen{flex:1;display:flex;flex-direction:column;min-width:0}.session-sidebar{position:fixed;top:0;left:0;width:280px;height:100dvh;background:var(--surface);border-right:1px solid var(--border);transform:translate(-100%);transition:transform .25s ease;z-index:1000;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top)}.session-sidebar.open{transform:translate(0)}.sidebar-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;opacity:0;pointer-events:none;transition:opacity .25s;z-index:999}.sidebar-overlay.visible{opacity:1;pointer-events:auto}.sidebar-header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid #f0f1f3}.sidebar-title{font-weight:700;font-size:15px}.sidebar-new-button{padding:6px 12px;border-radius:8px;border:none;background:var(--brand);color:var(--on-brand);font-size:13px;font-weight:600}.sidebar-search{flex:0 0 auto;padding:0 12px 8px}.sidebar-search input{width:100%;padding:8px 12px;border-radius:10px;border:1px solid var(--border);background:var(--surface-muted);font-size:14px;font-family:inherit}.sidebar-search input:focus{outline:none;border-color:var(--brand);background:var(--surface)}.sidebar-rename-input{flex:1;min-width:0;padding:4px 8px;border-radius:6px;border:1px solid var(--brand);background:var(--surface);font-size:14px;font-family:inherit}.sidebar-rename-input:focus{outline:none}.sidebar-list{flex:1 1 auto;list-style:none;margin:0;padding:8px;overflow-y:auto}.sidebar-empty{color:var(--ink-muted);font-size:13px;text-align:center;padding:24px 8px}.sidebar-item{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;cursor:pointer;transition:background .15s}.sidebar-item:hover{background:var(--surface-muted)}.sidebar-item.active{background:var(--brand-soft)}.sidebar-item-main{flex:1;min-width:0}.sidebar-item-title{font-size:14px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-item.active .sidebar-item-title{color:var(--brand);font-weight:600}.sidebar-item-time{font-size:11px;color:var(--ink-muted);margin-top:2px}.sidebar-item-icon{flex:0 0 auto;width:24px;height:24px;border-radius:50%;border:none;background:transparent;color:var(--ink-muted);font-size:14px;line-height:1;opacity:.35;transition:opacity .15s,color .15s}.sidebar-item:hover .sidebar-item-icon,.sidebar-item.active .sidebar-item-icon{opacity:.9}.sidebar-item-edit:hover,.sidebar-item-delete:hover{color:var(--brand)}.sidebar-item-delete{font-size:16px}.sidebar-item-confirm{display:flex;gap:4px}.sidebar-confirm-btn{padding:4px 8px;border-radius:6px;border:none;font-size:12px;font-weight:600}.sidebar-confirm-btn.yes{background:var(--brand);color:var(--on-brand)}.sidebar-confirm-btn.no{background:var(--surface-muted);color:var(--ink-muted)}.menu-toggle{flex:0 0 auto;font-size:18px;background:none;border:none;padding:4px 8px;color:var(--ink);cursor:pointer}.theme-toggle{flex:0 0 auto;font-size:16px;background:none;border:none;padding:4px 8px;color:var(--ink-muted);cursor:pointer}.chat-header-info{flex:1;min-width:0}.chat-header .chat-header-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bubble,.confirm-card,.typing-indicator{animation:msg-in .2s ease-out}@keyframes msg-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.chat-messages,.sidebar-list{scrollbar-width:thin;scrollbar-color:#d8dadd transparent}.chat-messages::-webkit-scrollbar,.sidebar-list::-webkit-scrollbar{width:4px}.chat-messages::-webkit-scrollbar-thumb,.sidebar-list::-webkit-scrollbar-thumb{background:#d8dadd;border-radius:2px}.md{display:flex;flex-direction:column;gap:3px}.md-line,.md-li{white-space:pre-wrap;word-break:break-word}.md-li{padding-left:16px;position:relative}.md-bullet,.md-marker{position:absolute;left:2px;font-weight:600}.md-marker{color:var(--brand)}.md-bullet{color:var(--ink-muted)}.md-num{color:var(--brand);font-weight:600;font-variant-numeric:tabular-nums}.md strong{font-weight:700}.bubble.with-copy{position:relative;padding-bottom:22px}.bubble-copy{position:absolute;right:8px;bottom:4px;font-size:11px;color:var(--ink-muted);background:transparent;border:none;padding:2px 6px;border-radius:6px;cursor:pointer;opacity:.55;transition:opacity .15s}.bubble-copy:hover{opacity:1}.suggestion-chips{display:flex;flex-wrap:wrap;gap:8px;padding:2px 0}.suggestion-chip{padding:6px 12px;border-radius:16px;border:1px solid var(--brand-border);background:var(--brand-soft-bg);color:var(--brand);font-size:13px;cursor:pointer;transition:background .15s}.suggestion-chip:hover{background:var(--brand-soft)}.skeleton-bubble{max-width:70%;height:16px;border-radius:8px;background:linear-gradient(90deg,var(--skeleton-hi) 25%,var(--surface-muted) 37%,var(--skeleton-hi) 63%);background-size:400% 100%;animation:skeleton-shimmer 1.4s ease infinite}.skeleton-bubble.short{width:45%}.quick-trigger{flex:0 0 auto;width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:var(--surface-muted);color:var(--ink-muted);font-size:18px;line-height:1;cursor:pointer;transition:border-color .15s,color .15s}.quick-trigger:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}.quick-trigger:disabled{opacity:.5}.qc-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:1099}.qc-sheet{position:fixed;left:0;right:0;bottom:0;max-height:60vh;overflow-y:auto;background:var(--surface);border-radius:16px 16px 0 0;padding:12px 16px max(12px,env(safe-area-inset-bottom));z-index:1100;animation:qc-slide-up .2s ease-out}@keyframes qc-slide-up{0%{transform:translateY(100%)}to{transform:none}}.qc-header{display:flex;align-items:center;justify-content:space-between;font-weight:700;font-size:15px;margin-bottom:4px}.qc-close{font-size:13px;color:var(--ink-muted);background:none;border:none;padding:4px;cursor:pointer}.qc-cat-title{font-size:12px;color:var(--ink-muted);margin:10px 0 6px}.qc-items{display:flex;flex-wrap:wrap;gap:8px}.qc-item{padding:8px 12px;border-radius:16px;border:1px solid var(--border);background:var(--surface-muted);color:var(--ink);font-size:13px;cursor:pointer;transition:border-color .15s,color .15s}.qc-item:hover{border-color:var(--brand);color:var(--brand)}@media (min-width: 768px){.session-sidebar{position:relative;transform:none;flex:0 0 280px}.sidebar-overlay,.menu-toggle{display:none}}
