:root{--surface-app: #f1f5f9;--surface-panel: #ffffff;--surface-panel-strong: #ffffff;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #64748b;--line-soft: rgba(148, 163, 184, .26);--line-strong: rgba(148, 163, 184, .42);--brand-main: #16a34a;--brand-deep: #15803d;--assistant-bubble: #ffffff;--notice-bubble: #fff8f1;--user-bubble: linear-gradient(135deg, #22c55e 0%, #16a34a 100%);--shadow-soft: 0 16px 34px rgba(15, 23, 42, .08);--shadow-bubble: 0 8px 18px rgba(15, 23, 42, .08);--header-bg: #ffffff;--border: rgba(148, 163, 184, .26);--muted: #64748b;--text: #0f172a}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:PingFang SC,Hiragino Sans GB,Noto Sans SC,sans-serif;color:var(--text-primary);background:linear-gradient(180deg,#f8fbff 0%,var(--surface-app) 52%,#eaf0f8 100%)}.chat-page{position:relative;margin:0 auto;height:100%;max-width:880px;display:flex;flex-direction:column;isolation:isolate}.chat-page--webview .chat-composer{padding-bottom:calc(12px + env(safe-area-inset-bottom,12px))}.chat-header{display:flex;align-items:center;justify-content:center;flex-shrink:0;height:56px;background:var(--header-bg);border-bottom:1px solid var(--border);position:relative;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.chat-header h1{margin:0;letter-spacing:.01em;font-size:17px;font-weight:600}.settings-btn{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:36px;height:36px;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center}.settings-btn:hover{background:var(--border);color:var(--text)}.settings-overlay{position:fixed;inset:0;background:#0000006b;z-index:40;display:flex;align-items:flex-end;justify-content:center}@media(min-width:641px){.settings-overlay{align-items:center}}.settings-popup{width:100%;max-width:420px;background:#fff;border-radius:16px 16px 0 0;padding:20px 16px 24px;animation:slide-up .25s ease-out}@media(min-width:641px){.settings-popup{border-radius:12px;animation:fade-in .2s ease-out}}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fade-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.settings-popup-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;font-size:16px;font-weight:600}.settings-close-btn{width:32px;height:32px;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center}.settings-close-btn:hover{background:var(--border)}.settings-font-levels{display:flex;justify-content:space-between;gap:8px}.settings-font-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 0;border:0;border-radius:10px;background:#fff;cursor:pointer;transition:all .15s ease}.settings-font-btn:hover{background:#f3f4f6}.settings-font-btn.active{background:#f0fdf4}.settings-font-label{line-height:1}.settings-font-name{font-size:12px;color:var(--muted)}.settings-font-btn.active .settings-font-name{color:#22c55e}.chat-body{position:relative;flex:1;min-height:0;padding:12px 10px 8px;overflow:hidden;display:flex;flex-direction:column}.chat-panel{position:relative;z-index:1;height:100%;min-height:0;display:flex;flex-direction:column;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:hidden}.bootstrapping-text{margin:auto;text-align:center;color:var(--text-secondary);font-size:14px}.crisis-guidance{margin:12px 12px 0;padding:12px 14px;border-radius:14px;border:1px solid rgba(251,113,133,.35);background:linear-gradient(180deg,#ffffffeb,#fff1f2e6)}.crisis-guidance h3{margin:0 0 8px;font-size:15px;color:#be123c}.crisis-guidance ul{margin:0 0 8px;padding-left:18px;color:#9f1239;line-height:1.45;font-size:14px}.crisis-guidance p{margin:0;font-size:13px;color:#881337}.message-list{list-style:none;margin:0;padding:14px 10px 12px;overflow-y:auto;flex:1;min-height:0;scroll-behavior:smooth}.message-empty-state{margin:auto;width:min(420px,100%);text-align:center;padding:24px 16px;border-radius:16px;border:1px solid var(--line-soft);background:#f8fafc;box-shadow:inset 0 1px #ffffffbf}.message-empty-title{margin:0;font-size:18px;font-weight:600;color:var(--text-primary)}.message-empty-subtitle{margin:8px 0 0;line-height:1.6;font-size:14px;color:var(--text-secondary)}.message-row{display:flex;margin-bottom:12px}.message-row.role-user{justify-content:flex-end}.message-row.role-assistant,.message-row.role-notice{justify-content:flex-start}.message-item{max-width:min(78%,560px);border-radius:16px;padding:10px 12px 8px;border:1px solid var(--line-soft);box-shadow:var(--shadow-bubble)}.message-row.role-user .message-item{color:#f8fafc;border:0;border-top-right-radius:5px;background:var(--user-bubble)}.message-row.role-assistant .message-item{border-top-left-radius:5px;background:var(--assistant-bubble)}.message-row.role-notice .message-item{border-top-left-radius:5px;background:var(--notice-bubble);border-color:#f59e0b59}.message-item p{margin:0;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;line-height:1.45}.message-content{white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;line-height:1.45}.message-content p{margin:0 0 4px}.message-content p:last-child{margin-bottom:0}.message-content strong{font-weight:600}.message-content em{font-style:italic;color:#555}.message-content ol{margin:4px 0;padding-left:18px}.message-content li{margin-bottom:2px}.message-item small{display:block;margin-top:6px;text-align:right;font-size:11px;color:#0f172a8c}.message-row.role-user .message-item small{color:#f8fafccc}.ai-label{display:block;margin-top:6px;font-size:11px;color:#64748bb3;text-align:left}.typing-dots{display:inline-flex;gap:5px;align-items:center;min-height:20px}.typing-dots span{width:6px;height:6px;border-radius:50%;background:#94a3b8;animation:typing 1s infinite ease-in-out}.typing-dots span:nth-child(2){animation-delay:.13s}.typing-dots span:nth-child(3){animation-delay:.26s}@keyframes typing{0%,80%,to{opacity:.28;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}.chat-footer{flex-shrink:0;background:linear-gradient(180deg,#f8fbff,#f6f9fd);border-top:1px solid var(--line-soft);padding:8px 8px 12px}.chat-status{margin:0 0 8px;padding:9px 12px;border-radius:12px;font-size:13px;color:#166534;background:#22c55e1f;border:1px solid rgba(34,197,94,.25)}.chat-status.chat-status-error{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#9f1239;background:#fb71851a;border-color:#fb71853d}.chat-status p{margin:0}.chat-status button{flex-shrink:0;border:0;border-radius:10px;height:30px;padding:0 12px;background:#e11d48;color:#fff;font-size:12px;font-weight:600}.chat-composer{display:grid;grid-template-columns:1fr auto;gap:8px}.chat-composer input{width:100%;height:42px;border-radius:22px;border:1px solid var(--line-strong);background:#fffffff5;padding:0 14px;font-size:16px;outline:none;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.chat-composer input:focus{border-color:#22c55e99;box-shadow:0 0 0 4px #22c55e1f;background:#fff}.chat-composer input:disabled{opacity:.66}.chat-composer button{height:42px;border-radius:22px;border:0;padding:0 16px;background:linear-gradient(135deg,var(--brand-main),var(--brand-deep));color:#f8fafc;font-size:14px;font-weight:600;box-shadow:0 8px 16px #16a34a52;transition:transform .14s ease,box-shadow .14s ease,opacity .14s ease}.chat-composer button:not(:disabled):active{transform:translateY(1px)}.chat-composer button:disabled{opacity:.5;box-shadow:none}.notice-mask{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:18px;background:radial-gradient(circle at 20% 20%,#0f172a5c,#0f172a94);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.notice-modal{width:min(560px,100%);border-radius:20px;border:1px solid rgba(148,163,184,.32);background:#fffffffa;box-shadow:0 24px 52px #0f172a42;padding:18px}.notice-modal h2{margin:0 0 8px;font-size:19px}.notice-modal p,.notice-modal li{font-size:14px;line-height:1.58;color:var(--text-secondary)}.notice-modal ul{margin:8px 0 0;padding-left:20px}.notice-modal button{margin-top:12px;width:100%;height:42px;border:0;border-radius:12px;background:linear-gradient(135deg,var(--brand-main),var(--brand-deep));color:#fff;font-size:15px;font-weight:600}@media(max-width:640px){.chat-header{height:52px}.chat-body{padding:8px 6px 6px}.message-list{padding:10px 6px}.message-item{max-width:88%;border-radius:14px}.chat-footer{padding:7px 8px calc(10px + env(safe-area-inset-bottom,0px))}.chat-page--webview .chat-composer{padding-bottom:calc(8px + env(safe-area-inset-bottom,12px))}.chat-composer input,.chat-composer button{height:40px}.notice-modal{border-radius:16px;padding:14px}}.tool-status{display:flex;align-items:center;gap:8px;padding:8px 14px;font-size:13px;color:var(--muted);background:#fff;border-top:1px solid var(--border);flex-shrink:0}.tool-status-spinner{width:14px;height:14px;border:2px solid #e5e7eb;border-top-color:#22c55e;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.quota-exceeded-bar{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px;background:#fef3c7;color:#92400e;font-size:14px;border-top:1px solid #fcd34d;flex-shrink:0}
