.chat-header{z-index:100;justify-content:space-between;align-items:center;gap:var(--space-3);padding:max(var(--space-3), env(safe-area-inset-top)) max(var(--space-4), calc((100vw - 900px) / 2));background:color-mix(in srgb, var(--surface-raised) 94%, transparent);border-bottom:1px solid var(--border-normal);-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);min-height:4rem;display:flex;position:fixed;top:0;left:0;right:0}.header-content{align-items:center;gap:var(--space-2);display:flex}.hamburger-menu{cursor:pointer;width:2.25rem;height:2.25rem;padding:var(--space-2);margin-right:var(--space-2);background:0 0;border:none;flex-direction:column;justify-content:space-around;display:flex}.hamburger{flex-shrink:0;position:static}.hamburger-menu span{background:var(--text-primary);border-radius:10px;width:100%;height:3px}.header-left{gap:var(--space-1);flex-direction:column;display:flex}.header-title{flex:1;min-width:0}.partner-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:1.1rem;font-weight:700;overflow:hidden}.session-name{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.header-actions{align-items:center;gap:var(--space-2);flex-shrink:0;display:inline-flex}.header-action-btn{border:1px solid var(--border-normal);border-radius:var(--radius-full);background:var(--surface-subtle);width:2rem;height:2rem;color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);justify-content:center;align-items:center;padding:0;display:inline-flex}.header-action-btn:hover{background:var(--surface-hover);color:var(--text-primary);border-color:var(--border-hover,var(--border-normal))}.header-action-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.branch-nav-btn .branch-indicator__icon{font-size:1rem;line-height:1}.affection-display{min-width:0;color:var(--text-secondary);align-items:center;gap:.35rem;display:inline-flex}.affection-icon{opacity:.72;background:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"%23ff69b4\"><path d=\"M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z\"/></svg>") 50%/contain no-repeat;width:17px;height:17px}.affection-value{font-variant-numeric:tabular-nums;color:var(--text-secondary);font-size:.72rem}.chat-container{overscroll-behavior:contain;padding:4.75rem max(var(--space-4), calc((100vw - 900px) / 2)) 9rem;gap:var(--space-4);background:var(--surface);-webkit-overflow-scrolling:touch;box-sizing:border-box;flex-direction:column;flex:1;display:flex;overflow-y:auto}.message{animation:message-in var(--motion-normal) var(--motion-easing-emphasized) both;gap:var(--space-2);overflow-wrap:anywhere;word-break:break-word;flex-direction:column;width:min(100%,900px);min-width:0;max-width:100%;margin:0 auto;display:flex;position:relative}@keyframes message-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.user-message{animation-name:message-in-right}.assistant-message{animation-name:message-in-left}@keyframes message-in-right{0%{opacity:0;transform:translate(12px)translateY(4px)}to{opacity:1;transform:translate(0)translateY(0)}}@keyframes message-in-left{0%{opacity:0;transform:translate(-12px)translateY(4px)}to{opacity:1;transform:translate(0)translateY(0)}}.message.user-message{background:0 0;border:none;align-self:flex-end;width:fit-content;max-width:min(100%,520px);margin-left:auto;margin-right:0;padding:0}.user-message .message-bubble{box-sizing:border-box;background:var(--surface-message-user);width:fit-content;max-width:100%;color:var(--text-primary);border-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);box-shadow:none;word-wrap:break-word;overflow-wrap:break-word}.message-footer--user{justify-content:flex-end;margin-top:.25rem;padding:0 .25rem}.message.assistant-message{background:0 0;border:none;align-self:flex-start;width:fit-content;max-width:min(100%,900px);margin-left:0;margin-right:auto;padding:0}.assistant-message .message-bubble{width:fit-content;max-width:100%;color:var(--text-primary);padding:var(--space-3) 0;word-wrap:break-word;overflow-wrap:break-word;background:0 0;border:none;border-radius:0}.message.tool-message,.message.event_log-message{opacity:.8;background:0 0;border:none;align-self:flex-start;width:fit-content;max-width:min(100%,900px);margin:0;padding:0}.tool-message .message-bubble,.event_log-message .message-bubble{width:fit-content;max-width:100%;font-family:inherit;font-size:inherit;overflow-wrap:anywhere;word-break:break-word;background:0 0;border:none;border-radius:0;min-width:0;padding:0}.message-header{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px dashed var(--border-normal);margin-bottom:.5rem;padding-bottom:.25rem;font-size:.75rem}.message-content{color:var(--text-primary);contain:layout style;contain-intrinsic-size:auto 48px;line-height:var(--line-height-body);overflow-wrap:anywhere;word-break:break-word;min-width:0;max-width:100%;letter-spacing:var(--letter-spacing-normal);font-size:.95rem}.timestamp{color:var(--text-secondary);opacity:.7;font-size:.7rem}.message-footer{margin-top:var(--space-1);justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.message.message--inline-activity{margin:var(--space-1) 0;opacity:1;align-self:flex-start}.message.message--inline-activity .message-bubble{background:0 0;border:none;padding:0;font-family:inherit}.message.message--inline-activity .message-content{contain:none;contain-intrinsic-size:none;line-height:normal}.message.message--inline-activity .message-footer{display:none}.message-footer--assistant{justify-content:flex-start}.message-footer--user{justify-content:flex-end}.message-footer--tool,.message-footer--event_log{display:none}.message.tool-message.message--media-result{opacity:1;align-self:flex-start;width:fit-content;max-width:min(100%,520px);margin:0}.message.tool-message.message--media-result .message-bubble{font-family:inherit;font-size:inherit;background:0 0;border:none;border-radius:0;padding:0}.message.tool-message.message--media-result .message-content{contain:none;contain-intrinsic-size:none}.message.tool-message.message--media-result .message-footer{display:none}.copy-message-btn{border-radius:var(--radius-sm);cursor:pointer;opacity:0;color:var(--text-muted);background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;padding:.35rem;display:flex}.message:hover .copy-message-btn,.copy-message-btn:focus-visible{opacity:1}.copy-message-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.copy-message-btn.copied{background:var(--accent-support);color:#fff;border-color:var(--accent-support)}.message-content h1,.message-content h2,.message-content h3,.message-content h4,.message-content h5,.message-content h6{color:var(--text-primary);letter-spacing:var(--letter-spacing-tight);font-weight:600;line-height:var(--line-height-tight);margin:1.25rem 0 .5rem}.message-content p{line-height:var(--line-height-copy);margin:.6rem 0}.message-content li{line-height:var(--line-height-copy);margin:.35rem 0}.message-content blockquote{border-left:4px solid var(--accent);background:var(--surface-subtle);font-style:italic;line-height:var(--line-height-copy);color:var(--text-secondary);border-radius:4px;margin:.8rem 0;padding:.6rem 1rem}.message-content .callout-note,.message-content .callout-info{border-color:var(--accent);background:#6aa9ff14}.message-content .callout-caution{border-color:var(--status-danger);background:#ff6b6b14}.message-content .table-container{border:1px solid var(--border-normal);background:var(--surface-subtle);border-radius:6px;min-width:0;max-width:100%;margin:.8rem 0;overflow-x:auto}.table-header{border-bottom:1px solid var(--border-normal);background:#0003;justify-content:space-between;align-items:center;padding:.5rem 1rem;display:flex}.table-label{color:var(--text-secondary);text-transform:uppercase;font-size:.75rem;font-weight:600}.copy-table-btn{border:1px solid var(--border-normal);color:var(--text-primary);cursor:pointer;background:0 0;border-radius:4px;align-items:center;gap:.3rem;padding:.3rem .6rem;font-size:.75rem;display:flex}.copy-table-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.copy-table-btn.copied{background:var(--accent-support);color:#fff;border-color:var(--accent-support)}.message-content th,.message-content td{border:1px solid var(--border-normal);text-align:left;padding:.5rem}.message-content th{background:var(--surface-subtle);font-weight:600}.message-content details{border:1px solid var(--border-normal);background:var(--surface-subtle);overflow-wrap:anywhere;word-break:break-word;border-radius:6px;min-width:0;max-width:100%;margin:.8rem 0;padding:.5rem}.tool-call-block,.tool-result,.tool-card{animation:tool-in var(--motion-normal) var(--motion-easing-emphasized) both}@keyframes tool-in{0%{opacity:0;transform:translateY(4px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.message-content .tool-result{margin-top:var(--space-2);margin-bottom:var(--space-2);border-left:0;padding-left:0}.message-content .tool-card{margin-top:var(--space-2);margin-bottom:var(--space-2)}.message-content summary{cursor:pointer;padding:.3rem;font-weight:600}.chat-empty-state{text-align:center;justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-7) var(--space-4);width:100%;max-width:34rem;animation:message-in var(--transition-slow) var(--motion-easing-standard) both;flex-direction:column;margin:auto;display:flex}.chat-empty-state__icon{opacity:.9;margin-bottom:var(--space-1);font-size:3rem;line-height:1}.chat-empty-state__title{color:var(--text-primary);margin:0;font-size:1.4rem;font-weight:600}.chat-empty-state__subtitle{color:var(--text-secondary);margin:0;font-size:.95rem}.chat-empty-state__suggestions{justify-content:center;gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.chat-empty-state__chip{background:var(--surface-raised);border:1px solid var(--border-normal);border-radius:var(--radius-full);color:var(--text-primary);padding:var(--space-2) var(--space-4);cursor:pointer;transition:background-color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);font-size:.85rem}.chat-empty-state__chip:hover{background:var(--surface-hover);border-color:var(--accent);transform:translateY(-1px)}.tool-result-block{overflow-wrap:anywhere;word-break:break-word;border-left:none;width:100%;min-width:0;max-width:100%;display:block}.action-content{overflow-wrap:anywhere;word-break:break-word;min-width:0;max-width:100%;color:var(--text-primary);padding:12px;font-size:.85rem;line-height:1.5}.system-action-block summary{outline:none}.system-action-block summary::-webkit-details-marker{display:none}.system-action-block summary::marker{display:none}.system-action-block summary:focus{outline:none}.tool-result-block summary:hover{background:#ffffff0d}.system-action-block[open] summary{border-bottom:1px solid var(--border-message-ai)}.tools-container{flex-direction:column;gap:.5rem;margin:.5rem 0;display:flex}.tool-call-block{background:var(--surface-code);border-left:3px solid var(--accent);opacity:.9;overflow-wrap:anywhere;word-break:break-word;border-radius:4px;min-width:0;max-width:100%;padding:.5rem;font-size:.85rem}.tool-header{color:var(--text-primary);margin-bottom:.25rem;font-weight:600}.tool-body pre{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;background:0 0;border:none;min-width:0;max-width:100%;margin:0;padding:0;overflow-x:auto}.tool-call-indicator{border-left:3px solid var(--accent);opacity:.85;margin:.5em 0;padding-left:.75em}.tool-call-indicator summary{cursor:pointer;color:var(--text-muted);font-size:.85em}.tool-result summary{cursor:pointer;font-size:.85em;font-weight:600}.tool-result-content{overflow-wrap:anywhere;word-break:break-word;min-width:0;max-width:100%;margin-top:.5em;padding:.5em}.message-actions{gap:var(--space-1);align-items:center;display:flex}.message-action-btn{border-radius:var(--radius-sm);cursor:pointer;opacity:0;color:var(--text-muted);transition:opacity var(--transition-fast), background var(--transition-fast), color var(--transition-fast);background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;padding:.35rem;display:flex}.message:hover .message-action-btn,.message-action-btn:focus-visible{opacity:1}.message-action-btn:hover{background:var(--accent);color:#fff}.message-action-btn.copied{background:var(--accent-support);color:#fff}@media (width<=768px){.message-action-btn{opacity:1}}.edit-modal-overlay{z-index:10000;animation:fade-in var(--transition-fast) var(--motion-easing-standard);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.edit-modal{background:var(--surface);border:1px solid var(--border-normal);border-radius:var(--radius-lg);width:min(90vw,480px);max-height:80vh;animation:modal-in var(--transition-fast) var(--motion-easing-standard);flex-direction:column;display:flex;box-shadow:0 8px 32px #0003}@keyframes modal-in{0%{opacity:0;transform:scale(.95)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.edit-modal__header{padding:var(--space-4);border-bottom:1px solid var(--border-normal);justify-content:space-between;align-items:center;display:flex}.edit-modal__title{color:var(--text-primary);margin:0;font-size:1rem;font-weight:600}.edit-modal__close{border-radius:var(--radius-sm);padding:var(--space-2);cursor:pointer;color:var(--text-muted);transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:0;justify-content:center;align-items:center;display:flex}.edit-modal__close:hover{background:var(--surface-subtle);color:var(--text-primary)}.edit-modal__body{padding:var(--space-4);flex:1;overflow-y:auto}.edit-modal__textarea{resize:vertical;border:1px solid var(--border-normal);border-radius:var(--radius-md);width:100%;min-height:120px;max-height:400px;padding:var(--space-3);color:var(--text-primary);background:var(--surface-subtle);box-sizing:border-box;font-family:inherit;font-size:.95rem;line-height:1.6}.edit-modal__textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-light);outline:none}.edit-modal__footer{gap:var(--space-2);padding:var(--space-4);border-top:1px solid var(--border-normal);justify-content:flex-end;display:flex}.edit-modal__btn{border:1px solid var(--border-normal);border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);font-size:.875rem;font-weight:500}.edit-modal__btn--cancel{color:var(--text-secondary);background:0 0}.edit-modal__btn--cancel:hover{background:var(--surface-subtle);color:var(--text-primary)}.edit-modal__btn--branch{color:var(--text-secondary);background:0 0}.edit-modal__btn--branch:hover{background:var(--surface-subtle);color:var(--text-primary);border-color:var(--accent)}.edit-modal__btn--primary{background:var(--accent);color:#fff;border-color:var(--accent)}.edit-modal__btn--primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.retry-dropdown{background:var(--surface);border:1px solid var(--border-normal);border-radius:var(--radius-md);padding:var(--space-2);min-width:200px;animation:dropdown-in var(--transition-fast) var(--motion-easing-standard);box-shadow:0 4px 16px #00000026}@keyframes dropdown-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.retry-dropdown__item{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;text-align:left;width:100%;transition:background var(--transition-fast);background:0 0;border:0;flex-direction:column;gap:2px;display:flex}.retry-dropdown__item:hover{background:var(--surface-subtle)}.retry-dropdown__icon{color:var(--text-muted);font-size:1rem}.retry-dropdown__label{color:var(--text-primary);font-size:.875rem;font-weight:500}.retry-dropdown__desc{color:var(--text-muted);font-size:.75rem}.streaming-cursor{background:var(--accent);vertical-align:text-bottom;width:2px;height:1em;margin-left:2px;animation:1s step-end infinite cursor-blink;display:inline-block}@keyframes cursor-blink{0%,50%{opacity:1}51%,to{opacity:0}}.message--streaming .message-content{animation:content-fade-in var(--motion-fast) var(--motion-easing-standard)}@keyframes content-fade-in{0%{opacity:.7}to{opacity:1}}.media-image-placeholder.skeleton,.weather-card-pending.skeleton{animation:skeleton-shimmer 1.5s var(--motion-easing-standard) infinite, tool-in var(--motion-normal) var(--motion-easing-emphasized) both}.branch-indicator{padding:var(--space-2) 0;margin:var(--space-1) 0;justify-content:center;align-items:center;display:flex}.branch-indicator__btn{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border:1px solid var(--border-normal);border-radius:var(--radius-full);background:var(--surface-subtle);color:var(--text-muted);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);font-size:.75rem;font-weight:500;display:inline-flex}.branch-indicator__btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.branch-indicator__icon{font-size:.875rem}.branch-indicator__count{font-size:.7rem}.branch-selector{background:var(--surface);border:1px solid var(--border-normal);border-radius:var(--radius-md);min-width:180px;max-width:240px;animation:dropdown-in var(--transition-fast) var(--motion-easing-standard);box-shadow:0 4px 16px #00000026}.branch-selector__header{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-normal);justify-content:space-between;align-items:center;display:flex}.branch-selector__title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.branch-selector__count{color:var(--text-muted);background:var(--surface-subtle);border-radius:var(--radius-full);padding:2px 6px;font-size:.7rem}.branch-selector__list{padding:var(--space-1)}.branch-selector__item{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;text-align:left;width:100%;color:var(--text-primary);transition:background var(--transition-fast);background:0 0;border:0;font-size:.875rem;display:flex}.branch-selector__item:hover{background:var(--surface-subtle)}.assistant-turn-surface{flex-direction:column;align-items:flex-start;gap:0;width:min(100%,900px);max-width:100%;margin:0 auto;display:flex}.assistant-turn-surface .message{width:fit-content;max-width:100%;margin:0}.assistant-turn-surface .message-footer.assistant-turn__secondary-footer,.assistant-turn-surface .tool-message .message-footer{display:none}.assistant-turn-surface .tool-message{opacity:1;align-self:flex-start;width:auto}.assistant-turn-surface .tool-message .message-bubble{padding:0 var(--space-3);font-family:inherit;font-size:inherit;background:0 0;border:0;border-radius:0}.branch-selector__item--active{background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--accent)}.branch-selector__item--active:hover{background:color-mix(in srgb, var(--accent) 15%, transparent)}.branch-selector__icon{flex-shrink:0;font-size:.625rem}.branch-selector__label{flex:1;font-weight:500}.branch-selector__badge{color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent);border-radius:var(--radius-full);padding:2px 6px;font-size:.625rem;font-weight:500}.code-block-header{background:var(--surface-code);border-bottom:1px solid var(--border-normal);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;min-width:0;padding:.5rem 1rem;display:flex}.code-language{overflow-wrap:anywhere;word-break:break-word;min-width:0;color:var(--text-secondary);text-transform:uppercase;font-size:.75rem;font-weight:600}.copy-code-btn{border:1px solid var(--border-normal);color:var(--text-primary);cursor:pointer;background:0 0;border-radius:4px;align-items:center;gap:.3rem;padding:.3rem .6rem;font-size:.75rem;display:flex}.copy-code-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.copy-code-btn.copied{background:var(--accent-support);color:#fff;border-color:var(--accent-support)}.code-block-container code{font-family:var(--font-mono);font-size:.9rem;line-height:var(--line-height-copy);white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}.gfm-alert{border-left:4px solid var(--accent);background:var(--surface-subtle);border-radius:6px;flex-direction:column;gap:.4rem;margin:.8rem 0;padding:.8rem 1rem;display:flex}.gfm-alert__title{text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:.45rem;font-size:.85rem;font-weight:700;display:flex}.gfm-alert__icon{flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;display:inline-flex}.gfm-alert__content{color:var(--text-primary);font-size:.9rem;line-height:1.5}.gfm-alert__content p{margin:.2rem 0}.gfm-alert--note{border-left-color:var(--accent-blue,#58a6ff)}.gfm-alert--note .gfm-alert__title{color:var(--accent-blue,#58a6ff)}.gfm-alert--tip{border-left-color:var(--accent-green,#3fb950)}.gfm-alert--tip .gfm-alert__title{color:var(--accent-green,#3fb950)}.gfm-alert--important{border-left-color:var(--accent-purple,#a371f7)}.gfm-alert--important .gfm-alert__title{color:var(--accent-purple,#a371f7)}.gfm-alert--warning{border-left-color:var(--accent-yellow,#d29922)}.gfm-alert--warning .gfm-alert__title{color:var(--accent-yellow,#d29922)}.gfm-alert--caution{border-left-color:var(--accent-red,#f85149)}.gfm-alert--caution .gfm-alert__title{color:var(--accent-red,#f85149)}.fence-block{background:var(--surface-code);border:1px solid var(--border-normal);border-radius:8px;margin:.9rem 0;overflow:hidden}.fence-header{background:var(--surface-code);border-bottom:1px solid var(--border-normal);justify-content:space-between;align-items:center;gap:.5rem;padding:.35rem .85rem;font-size:.75rem;display:flex}.fence-lang-badge{font-family:var(--font-mono);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:600}.fence-actions{align-items:center;gap:.4rem;display:flex}.fence-action-btn{color:var(--text-secondary);border:1px solid var(--border-normal);cursor:pointer;white-space:nowrap;background:0 0;border-radius:4px;align-items:center;gap:.3rem;padding:.25rem .55rem;font-size:.72rem;font-weight:500;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.fence-action-btn:hover{background:var(--surface-raised,#ffffff0f);color:var(--text-primary);border-color:var(--text-secondary)}.fence-action-btn--active{color:var(--accent);border-color:var(--accent);background:#8a6de926}.fence-block--code pre{background:0 0;margin:0;padding:.9rem 1rem;overflow-x:auto}.fence-block--code code{font-family:var(--font-mono);white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;font-size:.875rem;line-height:1.55}.fence-block--mermaid .fence-mermaid-body{background-color:var(--diagram-workspace-bg);touch-action:none;-webkit-user-select:none;user-select:none;border-radius:0 0 6px 6px;height:380px;min-height:200px;max-height:550px;padding:0;position:relative;overflow:hidden}.fence-mermaid-diagram{display:contents}.fence-mermaid-diagram>svg{z-index:1;background:0 0;width:100%;height:100%;display:block;position:absolute;inset:0}.fence-mermaid-diagram>svg>g[data-viewport-world]{background:0 0}.fence-mermaid-diagram>svg .mindmap-node>.label-container{stroke:var(--diagram-border);stroke-width:1.25px}.fence-mermaid-diagram>svg .mindmap-node.section-root>.label-container{stroke:var(--diagram-root-border);fill:var(--diagram-root-bg)!important}.fence-mermaid-diagram>svg .mindmap-node.section-root :is(text,tspan){fill:var(--diagram-root-text)!important}.fence-mermaid-diagram>svg .mindmap-node.section-root foreignObject *{color:var(--diagram-root-text)!important}.pan-zoom-viewport{cursor:grab;overflow:hidden}.pan-zoom-viewport.is-panning{cursor:grabbing}.viewport-canvas{will-change:transform;width:max-content;height:max-content;position:absolute;top:0;left:0}.viewport-canvas svg{max-width:none;max-height:none;display:block}.fence-mermaid-diagram[data-fence-render-state=pending]:before,.fence-mermaid-diagram[data-fence-render-state=rendering]:before{content:"Rendering diagram…";color:var(--text-secondary);place-items:center;min-height:120px;font-size:.8rem;animation:1.2s ease-in-out infinite fence-pulse;display:grid}@keyframes fence-pulse{0%,to{opacity:.45}50%{opacity:1}}.fence-mermaid-source{background:0 0;width:100%;max-height:400px;margin:0;padding:1rem;overflow:auto}.fence-mermaid-source code{font-family:var(--font-mono);white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;font-size:.85rem}.viewport-controls{background:var(--viewport-controls-surface);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--viewport-border);z-index:10;border-radius:6px;align-items:center;gap:6px;padding:4px 8px;display:flex;position:absolute;bottom:12px;right:12px}.viewport-btn{background:var(--surface-raised);color:var(--viewport-foreground);border:1px solid var(--viewport-border);cursor:pointer;border-radius:4px;padding:3px 8px;font-size:.75rem;font-weight:600;transition:background .15s,color .15s}.viewport-btn:hover{background:var(--surface-hover);color:var(--viewport-foreground)}.fence-block--html-preview .fence-html-body{contain:layout paint;contain-intrinsic-size:auto 240px;background:#fff;min-height:120px;max-height:650px;position:relative;overflow:hidden}.fence-html-loading{color:var(--text-secondary);text-align:center;padding:1.5rem;font-size:.85rem}.fence-html-preview-frame{border:none;width:100%;height:100%;min-height:140px;display:block}.fence-html-source{background:var(--surface-code);max-height:400px;margin:0;padding:1rem;overflow:auto}.input-area{z-index:100;align-items:stretch;gap:var(--space-2);padding-block:var(--space-2);padding-inline:max(var(--space-4), calc((100vw - 900px) / 2), env(safe-area-inset-left,0px)) max(var(--space-4), calc((100vw - 900px) / 2), env(safe-area-inset-right,0px));padding-bottom:max(var(--space-3), env(safe-area-inset-bottom));background:color-mix(in srgb, var(--surface-raised) 94%, transparent);border-top:1px solid var(--border-normal);-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);flex-direction:column;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -12px 32px #0000001f}.composer-controls{align-items:flex-end;gap:var(--space-2);grid-template-columns:auto minmax(0,1fr) auto;width:100%;min-width:0;display:grid}.composer-input-pill{align-items:flex-end;gap:var(--space-1);width:100%;min-width:0;min-height:42px;padding:4px var(--space-2) 4px var(--space-3);background:var(--surface-subtle);border:1px solid var(--border-normal);box-sizing:border-box;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);border-radius:24px;flex:1;display:flex}.composer-input-pill:focus-within{border-color:var(--accent)}.composer-input-pill .voice-btn--mic{flex-shrink:0;margin-bottom:1px}#messageInput{width:100%;min-width:0;min-height:24px;max-height:120px;padding:var(--space-1) 0;color:var(--text-primary);resize:none;appearance:none;background:0 0;border:none;border-radius:0;flex:1;font-family:inherit;font-size:.95rem;line-height:1.4;overflow-y:auto}#messageInput:focus,#messageInput:focus-visible{box-shadow:none;outline:none}#sendButton{border-radius:var(--radius-full);background:linear-gradient(135deg, var(--accent), var(--accent-hover));color:#fff;cursor:pointer;width:42px;min-width:42px;height:42px;box-shadow:var(--shadow-md);transition:transform var(--transition-fast), box-shadow var(--transition-fast);border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}#sendButton svg{margin-top:2px;margin-right:2px}#sendButton:hover{box-shadow:var(--shadow-md);transform:scale(1.05)translateY(-1px)}#sendButton:disabled{opacity:.6;cursor:not-allowed;transform:none}#sendButton.stop-mode{animation:pulse-stop 1.5s var(--motion-easing-standard) var(--motion-repeat-loop);background:#dc3545}#sendButton.stop-mode:hover{background:#c82333;transform:scale(1.05)}.composer-attachments{gap:var(--space-2);flex-wrap:wrap;width:100%;display:flex}.composer-attachments[hidden]{display:none}.composer-chip{align-items:center;gap:var(--space-2);background:var(--surface-subtle);border:1px solid var(--border-normal);border-radius:var(--radius-md);max-width:100%;padding:.2rem .4rem .2rem .2rem;display:inline-flex}.composer-chip__preview{object-fit:cover;border-radius:4px;width:28px;height:28px}.composer-chip__icon{width:28px;height:28px;color:var(--text-secondary);justify-content:center;align-items:center;display:inline-flex}.composer-chip__name{text-overflow:ellipsis;white-space:nowrap;max-width:10rem;font-size:.8rem;overflow:hidden}.composer-chip__remove{width:20px;height:20px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.composer-chip__remove:hover{background:var(--status-danger);color:#fff}.composer-attach{flex-shrink:0;position:relative}.composer-attach-btn{border-radius:var(--radius-full);background:var(--surface-subtle);border:1px solid var(--border-normal);cursor:pointer;width:42px;height:42px;color:var(--text-primary);justify-content:center;align-items:center;font-size:1.4rem;line-height:1;display:flex}.composer-attach-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.composer-meta{align-items:center;gap:var(--space-2);flex-wrap:wrap;width:100%;min-width:0;display:flex}.composer-model-select,.composer-reasoning__effort,.composer-reasoning__budget{border:1px solid var(--border-normal);border-radius:var(--radius-md);background:var(--surface-subtle);width:min(100%,16rem);min-width:0;max-width:16rem;min-height:28px;color:var(--text-primary);font:inherit;text-overflow:ellipsis;white-space:nowrap;padding:.2rem .5rem;font-size:.8rem;overflow:hidden}.composer-reasoning{align-items:center;gap:var(--space-2);flex-wrap:wrap;min-width:0;display:flex}.composer-reasoning[hidden]{display:none}.composer-reasoning__toggle{color:var(--text-secondary);align-items:center;gap:.35rem;font-size:.8rem;display:inline-flex}.visually-hidden-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.memory-activity-status{right:max(var(--space-4), env(safe-area-inset-right));z-index:45;justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap;max-width:min(100% - 2rem,28rem);display:flex;position:fixed;bottom:7.25rem}.memory-activity-indicator{border:1px solid var(--border-normal);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--surface-raised) 96%, transparent);min-width:9rem;max-width:22rem;box-shadow:var(--shadow-md);color:var(--text-primary);font-size:.8rem}.memory-activity-indicator summary{cursor:pointer;align-items:center;gap:.4rem;padding:.45rem .65rem;list-style:none;display:flex}.memory-activity-indicator summary::-webkit-details-marker{display:none}.memory-activity-indicator__mark{font-weight:700}.memory-activity-indicator__details{padding:0 .65rem .6rem;line-height:1.4}.memory-activity-indicator__meta{color:var(--text-secondary);font-size:.75rem}.memory-activity-indicator__error{color:var(--status-danger);font-weight:600}@keyframes pulse-stop{0%,to{box-shadow:0 0 #dc354566}50%{box-shadow:0 0 0 8px #dc354500}}.scroll-to-bottom-btn{right:var(--space-4);z-index:1000;border-radius:var(--radius-full);background:var(--accent);color:#fff;cursor:pointer;width:2.75rem;height:2.75rem;box-shadow:var(--shadow-md);transition:opacity var(--transition-slow), visibility var(--transition-slow), transform var(--motion-normal) var(--motion-easing-emphasized);border:none;justify-content:center;align-items:center;display:flex;position:fixed;bottom:100px}.scroll-to-bottom-btn:hover{box-shadow:var(--shadow-lg);transform:scale(1.05)}.scroll-to-bottom-btn.hidden{opacity:0;visibility:hidden;pointer-events:none}.composer-menu{background:var(--surface-subtle);min-width:240px;box-shadow:var(--shadow-lg);border:1px solid var(--border-normal);border-radius:var(--radius-lg);padding:var(--space-2);z-index:1000;position:absolute;bottom:50px;left:0}.composer-menu__item{width:100%;padding:var(--space-3);border-radius:var(--radius-md);color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:.15rem;display:flex}.composer-menu__item:hover{background:var(--surface)}.composer-menu__label{font-size:.95rem;font-weight:600}.composer-menu__desc{opacity:.7;font-size:.75rem}.composer-menu__library{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--border-normal);max-height:12rem;color:var(--text-secondary);font-size:.85rem;overflow-y:auto}.html-preview-container{margin:var(--space-4) 0;border:1px solid var(--border-normal);border-radius:var(--radius-md);background:var(--surface-subtle);overflow:hidden}.html-preview-header{border-bottom:1px solid var(--border-normal);background:#0003;justify-content:space-between;align-items:center;padding:.5rem 1rem;display:flex}.html-preview-label{color:var(--text-secondary);text-transform:uppercase;align-items:center;gap:.4rem;font-size:.75rem;font-weight:600;display:flex}.html-preview-label svg{width:14px;height:14px}.preview-iframe{background:#fff;border:none;border-radius:0 0 8px 8px;flex:1;width:100%;height:70vh;min-height:300px;max-height:calc(100vh - 200px);display:block;overflow:auto}.preview-placeholder{color:var(--text-secondary);padding:1rem 1rem .8rem;font-size:.85rem;font-style:italic}.preview-error{color:var(--status-danger);padding:1rem;font-size:.85rem}#html-preview-modal{z-index:9999;justify-content:center;align-items:center;display:none;position:fixed;inset:0}#html-preview-modal.active{display:flex}.html-modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;position:absolute;inset:0}.html-modal-content{background:var(--surface);border:1px solid var(--border-normal);border-radius:var(--radius-lg);width:min(95vw,900px);height:85vh;max-height:80vh;box-shadow:var(--shadow-xl);flex-direction:column;display:flex;position:relative;overflow:hidden}.html-modal-header{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-normal);background:#0003;flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.html-modal-title{color:var(--text-primary);font-size:.85rem;font-weight:600}.html-modal-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px;display:flex}.html-modal-close:hover{color:var(--text-primary);background:#ffffff1a}.html-modal-body{background:#fff;flex:1;min-height:300px;max-height:60vh;overflow:hidden}.html-modal-body iframe{background:#fff;border:none;width:100%;height:100%}.html-modal-actions{align-items:center;gap:var(--space-1);display:flex}.html-modal-btn{border:1px solid var(--border-normal);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;padding:var(--space-2);background:0 0;align-items:center;display:flex}.html-modal-btn:hover{color:var(--text-primary);border-color:var(--text-secondary);background:#ffffff1a}.html-modal-btn.active{color:var(--accent);border-color:var(--accent);background:#ff69b433}#html-preview-modal.fullscreen .html-modal-content{border-radius:0;width:100vw;max-width:100vw;height:100vh;max-height:100vh;margin:0}#html-preview-modal.fullscreen .preview-iframe{height:100vh;max-height:100vh}.preview-body-light,.preview-body-dark iframe{background:var(--surface)}.console-panel{border-top:1px solid var(--border-normal);background:var(--surface);flex-shrink:0;max-height:100px;font-family:Hack,Fira Code,Consolas,monospace;font-size:11px;line-height:1.5;display:none;overflow-y:auto}.console-panel.visible{display:block}.console-header{background:var(--surface-raised);border-bottom:1px solid var(--border-normal);justify-content:space-between;align-items:center;padding:4px 8px;display:flex;position:sticky;top:0}.console-header span{color:var(--text-secondary);text-transform:uppercase;font-family:sans-serif;font-size:10px;font-weight:600}.console-clear{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:10px}.console-clear:hover{background:var(--surface-subtle);color:var(--text-primary)}.console-line{white-space:pre-wrap;word-break:break-all;padding:2px 8px}.console-line.log{color:var(--text-primary)}.console-line.warn{color:var(--accent-subtle);background:#d299221a}.console-line.error{color:var(--status-danger);background:#f851491a}.console-line.info{color:var(--accent)}.console-empty{color:var(--text-secondary);padding:8px;font-family:sans-serif;font-size:11px;font-style:italic}.image-viewer-modal{z-index:10000;opacity:0;pointer-events:none;justify-content:center;align-items:center;transition:opacity .15s ease-out;display:flex;position:fixed;inset:0}.image-viewer-modal--active{opacity:1;pointer-events:auto}.image-viewer-backdrop{-webkit-backdrop-filter:blur(8px);background:#0a0e17e0;position:absolute;inset:0}.image-viewer-container{z-index:1;width:100%;max-width:100vw;height:100%;max-height:100vh;padding:env(safe-area-inset-top,16px) env(safe-area-inset-right,16px) env(safe-area-inset-bottom,16px) env(safe-area-inset-left,16px);box-sizing:border-box;flex-direction:column;display:flex;position:relative}.image-viewer-header{justify-content:space-between;align-items:center;gap:var(--space-3,12px);border-radius:var(--radius-md,8px);border:1px solid var(--border-subtle,#ffffff1a);background:#0f172abf;flex-shrink:0;margin-bottom:12px;padding:8px 16px;display:flex}.image-viewer-title{color:var(--text-primary,#e2e8f0);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:.85rem;font-weight:500;overflow:hidden}.image-viewer-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.image-viewer-btn{height:32px;color:var(--text-primary,#e2e8f0);background:var(--surface-subtle,#ffffff14);border:1px solid var(--border-normal,#ffffff26);border-radius:var(--radius-sm,6px);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:0 12px;font-size:.8rem;font-weight:500;text-decoration:none;transition:background .12s,border-color .12s;display:inline-flex}.image-viewer-btn:hover{background:var(--surface-code,#ffffff29);border-color:var(--border-hover,#ffffff4d);color:#fff}.image-viewer-btn--close{padding:0 8px;font-size:.95rem}.image-viewer-btn--details{min-width:32px;height:32px;padding:0 6px}.image-viewer-body{flex:1;justify-content:center;align-items:center;min-height:0;display:flex;position:relative;overflow:hidden}.image-viewer-stage{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.image-viewer-img{object-fit:contain;border-radius:var(--radius-sm,4px);-webkit-user-select:none;user-select:none;width:auto;max-width:100%;height:auto;max-height:100%;box-shadow:0 8px 32px #0006}.image-viewer-details-panel{-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-normal,#ffffff26);border-radius:var(--radius-md,8px);box-sizing:border-box;z-index:10;background:#0f172af2;flex-direction:column;gap:12px;width:360px;max-width:calc(100vw - 32px);max-height:calc(100% - 32px);padding:16px;animation:.18s ease-out details-panel-slide-up;display:flex;position:absolute;bottom:16px;right:16px;overflow-y:auto;box-shadow:0 12px 36px #0009}.image-viewer-details-panel[hidden]{display:none}@keyframes details-panel-slide-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.image-viewer-details-header{border-bottom:1px solid var(--border-subtle,#ffffff1a);justify-content:space-between;align-items:center;padding-bottom:8px;display:flex}.image-viewer-details-title{color:var(--text-primary,#e2e8f0);font-size:.85rem;font-weight:600}.image-viewer-btn--close-panel{height:24px;padding:0 6px;font-size:.8rem}.tool-result.tool-result--media{box-shadow:none;margin:var(--space-2,8px) 0;background:0 0;border:none;padding:0}.tool-result.tool-result--media .tool-result-content{padding:0}.media-image-block:not(.media-image-block--error),.media-image-placeholder{aspect-ratio:4/3;box-sizing:border-box;width:min(75vw,520px);max-width:100%;margin:4px 0}.media-image-button,.attachment-button{cursor:pointer;border-radius:var(--radius-md,8px);text-align:left;background:0 0;border:none;margin:0;padding:0;line-height:0;transition:opacity .12s,transform .12s;display:block;overflow:hidden}.media-image-button{width:100%;height:100%}.media-image-button:hover,.attachment-button:hover{opacity:.92;transform:scale(.995)}.media-image-button:focus-visible,.attachment-button:focus-visible{outline:2px solid var(--accent-primary,#38bdf8);outline-offset:2px}.media-image-img,.attachment-img{object-fit:contain;border-radius:var(--radius-md,8px);width:100%;max-width:100%;height:100%;display:block;box-shadow:0 4px 16px #0003}.attachments{gap:var(--space-2,8px);width:fit-content;max-width:100%;margin-top:var(--space-2,8px);flex-wrap:wrap;display:flex}.attachment-file{align-items:center;gap:var(--space-2,8px);border:1px solid var(--border-normal);border-radius:var(--radius-md,8px);background:var(--surface-subtle);max-width:100%;padding:.5rem .65rem;display:inline-flex}.attachment-file__name{text-overflow:ellipsis;white-space:nowrap;max-width:16rem;overflow:hidden}.attachment-file__download{color:var(--accent-primary,#38bdf8);flex:none;font-size:.8rem}.user-message .attachment-button,.user-message .attachment-img{max-width:min(100%,280px)}.user-message .attachment-img{width:auto;height:auto;max-height:280px}.media-image-placeholder{isolation:isolate;padding:var(--space-3);border-radius:var(--radius-md,8px);border:1px solid var(--border-normal);-webkit-user-select:none;user-select:none;box-sizing:border-box;flex-direction:column;justify-content:flex-end;align-items:center;margin:6px 0;display:flex;position:relative;overflow:hidden}.media-image-placeholder[data-phosphene]:before,.media-image-placeholder[data-phosphene]:after{display:none}.media-image-placeholder.skeleton[data-phosphene]{background:var(--surface-raised);animation:none}.media-image-placeholder__phosphene{pointer-events:none;contain:strict;z-index:1;width:100%;height:100%;display:block;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.media-image-placeholder.skeleton{background:var(--surface-raised);animation:none}}.media-image-placeholder__text{z-index:2;color:var(--text-muted);letter-spacing:.01em;font-size:.85rem;font-weight:500;position:relative}.media-image-block--error{border-radius:var(--radius-md,8px);background:color-mix(in srgb, var(--danger,#ef4444) 8%, var(--surface-subtle,#0f172a99));border:1px solid color-mix(in srgb, var(--danger,#ef4444) 25%, transparent);width:100%;max-width:520px;color:var(--text-primary,#e2e8f0);box-sizing:border-box;padding:10px 14px;font-size:.85rem;display:block}.media-image-error-summary{justify-content:space-between;align-items:center;gap:var(--space-2,8px);flex-wrap:wrap;display:flex}.image-card-library-link{color:var(--accent-primary,#7aa2f7);font-size:.8rem}.media-image-error-label{color:var(--danger,#ef4444);align-items:center;gap:8px;min-width:0;font-weight:500;display:flex}.media-image-error-icon{flex-shrink:0}.details-trigger-btn{min-width:32px;height:32px;color:var(--text-secondary,#94a3b8);background:var(--surface-subtle,#ffffff0f);border:1px solid var(--border-normal,#ffffff1f);border-radius:var(--radius-sm,6px);cursor:pointer;-webkit-user-select:none;user-select:none;flex-shrink:0;justify-content:center;align-items:center;padding:0 6px;font-size:.9rem;line-height:1;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.details-trigger-btn:hover{background:var(--surface-code,#ffffff24);border-color:var(--border-hover,#ffffff40);color:var(--text-primary,#fff)}.details-trigger-btn:focus-visible{outline:2px solid var(--accent-primary,#38bdf8);outline-offset:2px}.image-card-details-panel{border-top:1px solid color-mix(in srgb, var(--danger,#ef4444) 20%, transparent);color:var(--text-secondary,#cbd5e1);margin-top:10px;padding-top:10px;font-size:.8rem}.image-card-details-panel[hidden]{display:none}.image-card-details-panel--open{animation:.15s ease-out details-panel-fade-in;display:block}@keyframes details-panel-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.details-panel-body{flex-direction:column;gap:12px;display:flex}.details-kv-grid{grid-template-columns:80px 1fr;gap:6px 12px;font-size:.82rem;display:grid}.details-kv-row{display:contents}.details-kv-label{color:var(--text-muted,#94a3b8);white-space:nowrap;font-weight:500}.details-kv-value{color:var(--text-primary,#f1f5f9);font-family:var(--font-mono,monospace);word-break:break-all;font-size:.8rem}.details-section{flex-direction:column;gap:4px;display:flex}.details-section-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted,#94a3b8);font-size:.72rem;font-weight:600}.details-section--error .details-section-label{color:var(--danger,#ef4444)}.details-error-message{color:var(--text-primary,#f87171);font-family:var(--font-mono,monospace);white-space:pre-wrap;word-break:break-word;border-radius:var(--radius-sm,6px);background:#00000040;padding:8px 10px;font-size:.8rem}.details-category-value{font-family:var(--font-mono,monospace);color:var(--text-secondary,#cbd5e1);font-size:.8rem}.details-section--prompt{gap:6px;margin-top:4px}.details-section-header{justify-content:space-between;align-items:center;display:flex}.details-section-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted,#94a3b8);font-size:.75rem;font-weight:600}.details-panel-header{border-bottom:1px solid var(--border-subtle,#ffffff1a);justify-content:space-between;align-items:center;padding-bottom:8px;display:flex}.details-panel-title{color:var(--text-primary,#e2e8f0);font-size:.85rem;font-weight:600}.details-panel-header-actions{align-items:center;gap:6px;display:flex}.details-btn--copy,.details-btn--copy-all{height:24px;color:var(--text-secondary,#94a3b8);background:var(--surface-subtle,#ffffff0f);border:1px solid var(--border-normal,#ffffff1f);border-radius:var(--radius-sm,4px);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;padding:0 8px;font-size:.72rem;font-weight:500;transition:all .12s;display:inline-flex}.details-btn--copy:hover,.details-btn--copy-all:hover{color:#fff;background:var(--surface-code,#ffffff24)}.details-prompt-content{color:var(--text-primary,#e2e8f0);border-radius:var(--radius-sm,6px);white-space:pre-wrap;word-break:break-word;background:#00000040;max-height:180px;padding:8px 10px;font-size:.82rem;line-height:1.45;overflow-y:auto}.typing-indicator{opacity:1;background:0 0;align-items:center;gap:.4rem;max-width:fit-content;margin:0;padding:.5rem 0;animation:none;display:flex}.message--typing{animation:none}.message--typing .typing-indicator{opacity:1;animation:none}.typing-indicator span{background:var(--text-primary);width:8px;height:8px;animation:typing-bounce 1.4s var(--motion-easing-standard) var(--motion-repeat-loop) both;border-radius:50%}.typing-indicator span:first-child{animation-delay:-.32s}.typing-indicator span:nth-child(2){animation-delay:-.16s}@keyframes typing-bounce{0%,80%,to{opacity:.5;transform:scale(.6)}40%{opacity:1;transform:scale(1)}}.skeleton{background:linear-gradient(90deg, var(--surface-raised) 25%, var(--surface-hover) 50%, var(--surface-raised) 75%);animation:skeleton-shimmer 1.5s var(--motion-easing-standard) var(--motion-repeat-loop);border-radius:var(--radius-md);background-size:200% 100%}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-chat-container{box-sizing:border-box;flex-direction:column;gap:1.5rem;width:100%;padding:1rem;display:flex}.skeleton-message{background:var(--surface-raised);border:1px solid var(--border-normal);animation:fadeIn var(--motion-slow) var(--motion-easing-standard);border-radius:12px;flex-direction:column;gap:.6rem;max-width:75%;padding:1rem 1.25rem;display:flex}.skeleton-message.ai{background:var(--surface-raised);border-color:var(--border-normal);align-self:flex-start;width:65%}.skeleton-message.user{background:var(--surface-raised);border-color:var(--border-normal);align-self:flex-end;width:45%}.skeleton-message-line{border-radius:var(--radius-sm);background:var(--surface-hover);height:14px}.skeleton-message-line.short{width:45%}.skeleton-message-line.medium{width:75%}.skeleton-message-line.long{width:95%}.skeleton-sidebar-item{border-radius:var(--radius-md);background:var(--surface-raised);align-items:center;gap:.75rem;margin-bottom:.5rem;padding:.75rem 1rem;display:flex}.skeleton-sidebar-icon{border-radius:var(--radius-sm);width:24px;height:24px}.skeleton-sidebar-text{border-radius:var(--radius-sm);flex:1;height:12px}.skeleton-sidebar-meta{border-radius:var(--radius-sm);width:60px;height:10px}.skeleton-code{border-radius:var(--radius-md);height:100px;margin:.5rem 0}.skeleton-image{border-radius:var(--radius-md);height:200px;margin:.5rem 0}.skeleton-name{border-radius:var(--radius-sm);width:80px;height:16px}.loading{text-align:center;color:var(--text-secondary);padding:2rem;font-style:italic}@media (width<=768px){.chat-container{padding-left:var(--space-3);padding-right:var(--space-3)}.message{max-width:100%}.message.user-message,.message.assistant-message{width:fit-content}.message.user-message{max-width:85%}.input-area{padding-left:max(var(--space-3), env(safe-area-inset-left,0px));padding-right:max(var(--space-3), env(safe-area-inset-right,0px))}.scroll-to-bottom-btn{width:42px;height:42px;bottom:90px;right:15px}.code-block-container{font-size:.85rem}.affection-bar{width:80px}}@media (width<=480px){.partner-name{font-size:1rem}.session-name{font-size:.7rem}.chat-header{padding:var(--space-2) var(--space-3);gap:var(--space-2)}.hamburger-menu{width:28px;height:22px}.affection-bar{width:80px}.composer-menu{min-width:200px}}#sendButton,.sidebar-btn,.composer-attach-btn{transition:transform var(--transition-fast), box-shadow var(--transition-normal), background-color var(--transition-normal), border-color var(--transition-normal)}#sendButton:hover:not(:disabled),.sidebar-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0003}.message{transition:transform var(--transition-normal), box-shadow var(--transition-normal)}.scroll-to-bottom-btn{transition:transform var(--transition-normal), opacity var(--transition-normal), box-shadow var(--transition-normal)}.scroll-to-bottom-btn:hover{transform:scale(1.1);box-shadow:0 6px 16px #0000004d}.code-block-header,.mermaid-header{transition:background-color var(--transition-normal)}.sidebar-session-item,.sidebar-link{transition:transform var(--transition-normal), background-color var(--transition-normal), border-color var(--transition-normal)}.dropdown-option,.dropdown-selected{transition:background-color var(--transition-fast), border-color var(--transition-normal)}body{transition:background-color var(--motion-slow) var(--motion-easing-standard), color var(--transition-slow)}.code-block-container,.message,.card,.config-section,.brain-box,.tool-execution,.agentic-status-bar{transition:background-color var(--transition-slow), border-color var(--transition-slow), box-shadow var(--transition-slow)}.mermaid-error{color:var(--text-primary);white-space:pre-wrap;word-break:break-word;background:#ff453a1a;border:1px solid #ff453a4d;border-radius:8px;margin:.5rem 0;padding:.75rem}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms;animation-duration:.01ms;animation-iteration-count:1}.skeleton{background:var(--surface-raised);animation:none}}html,body{background:var(--surface);overflow-wrap:anywhere;word-break:break-word;height:100%;margin:0;padding:0;overflow:hidden}body{flex-direction:column;min-height:100dvh;display:flex}.chat-layout{grid-template-rows:auto minmax(0,1fr) auto;height:100dvh;min-height:0;display:grid;overflow:hidden}.chat-layout>.chat-header,.chat-layout>.input-area{position:relative;inset:auto}.chat-layout>.chat-header{grid-row:1}.chat-layout>.chat-container{grid-row:2}.chat-layout>.input-area{grid-row:3}.chat-layout>.chat-container{min-height:0;padding:var(--space-4) max(var(--space-4), calc((100vw - 900px) / 2));overflow-anchor:none;overscroll-behavior-y:contain;overflow:hidden auto}.scroll-to-bottom-btn{right:max(var(--space-4), env(safe-area-inset-right));z-index:40;position:fixed;bottom:7.5rem}.chat-layout>.chat-container{overflow-anchor:none;overflow:hidden auto}.chat-vault-panel{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-2) max(var(--space-4), calc((100vw - 900px) / 2));background:var(--color-surface-raised,#0000000d);border-top:1px solid var(--color-border,#0000001a);flex-wrap:wrap;font-size:.85rem;display:flex}.chat-vault-panel[hidden]{display:none}.chat-vault-panel__copy{flex-direction:column;gap:2px;min-width:200px;display:flex}.chat-vault-panel__controls{align-items:center;gap:var(--space-2);display:flex}.chat-vault-panel__controls input{border:1px solid var(--color-border);border-radius:var(--radius-sm,4px);padding:4px 8px;font-size:.85rem}.message-content h1,.message-content h2,.message-content h3,.message-content h4,.message-content h5,.message-content h6{color:var(--text-primary);margin:1rem 0 .5rem;font-weight:600}.message-content h4{font-size:1.1rem}.message-content h5{font-size:1rem}.message-content h6{font-size:.9rem}.message-content h1,.message-content h2,.message-content h3{color:var(--text-primary);margin:1rem 0 .5rem}.message-content h1{font-size:1.4em}.message-content h2{font-size:1.2em}.message-content h3{font-size:1.1em}.message-content p{margin:.5rem 0}.message-content ul,.message-content ol{margin:.5rem 0;padding-left:1.5rem}.message-content ul{list-style-type:disc}.message-content ol{list-style-type:decimal}.message-content li{margin:.3rem 0}.message-content ul ul,.message-content ol ul{margin-top:.25rem;list-style-type:circle}.message-content ul ul ul,.message-content ol ul ul{list-style-type:square}.message-content ol ol{list-style-type:lower-alpha}.message-content ol ol ol{list-style-type:lower-roman}.message-content li>ul,.message-content li>ol{margin:.25rem 0 .25rem .5rem}.message-content ul.tight-list,.message-content ol.tight-list{margin:.25rem 0}.message-content blockquote{border-left:4px solid var(--accent);background:var(--surface-subtle);background:var(--surface-code);color:#ffffffd9;border-left:4px solid #7285b7;border-radius:4px;margin:.8rem 0;padding:.5rem 1rem;font-style:italic}.message-content blockquote blockquote{opacity:.9;border-left-color:#7285b7;margin-left:.5rem}.message-content .callout{border-left:4px solid;border-radius:6px;margin:.6rem 0;padding:.6rem .8rem;font-style:normal}.message-content .callout-note,.message-content .callout-info{background:#6aa9ff14;border-color:#6aa9ff}.message-content .callout-tip{background:#4caf5014;border-color:#4caf50}.message-content .callout-warning{background:#ffb34714;border-color:#ffb347}.message-content .callout-caution{background:#ff6b6b14;border-color:#ff6b6b}.message-content .callout-important{background:#9b59b614;border-color:#9b59b6}.message-content .callout-note{border-color:var(--accent-subtle);background:#93a5ff1a}.message-content .callout-warning{border-color:var(--accent);background:#ff85a11a}.message-content .callout-tip{border-color:var(--accent-support);background:#b8e1dd1a}.message-content .callout-important{border-color:var(--accent);background:#8a6de91a}.message-content table{border-collapse:collapse;background:var(--surface-code);border-radius:6px;width:100%;margin:1rem 0;font-size:.9em;overflow:hidden}.message-content th,.message-content td{text-align:left;border:1px solid #7285b74d;padding:.5rem .75rem}.message-content th{color:#fff;background:#00000040;font-weight:600}.message-content tr:nth-child(2n){background:#00000026}.message-content .table-container{background:var(--surface-code);border:1px solid #7285b74d;border-radius:6px;margin:.8rem 0;overflow-x:auto}.message-content .table-container table{border:none;border-radius:0;width:100%;margin:0;display:table}.message-content details{background:var(--surface-code);border:1px solid var(--border-message-ai);border-radius:8px;margin:.5rem 0;overflow:hidden}.message-content summary{cursor:pointer;background:#a8c8ff0d;padding:.5rem 1rem;font-weight:500}.message-content summary:hover{background:#a8c8ff1a}.message-content details[open] summary{border-bottom:1px solid var(--border-message-ai)}.message-content details>:not(summary){padding:.75rem 1rem}.message-content img,.markdown-image{border-radius:8px;max-width:100%;height:auto;margin:.8rem 0;display:block}.message-content img{max-width:100%;box-shadow:var(--shadow-md);border-radius:8px;margin:.5rem 0}.image-error{color:#ff453a;background:#ff453a1a;border:1px solid #ff453a4d;border-radius:8px;align-items:center;gap:.5rem;margin:.8rem 0;padding:1rem;font-size:.9rem;display:flex}.code-block-container{background:#002451;border:1px solid #7285b74d;border-radius:8px;margin:1rem 0;overflow:hidden}.code-block-header{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000040;border-bottom:1px solid #7285b74d;justify-content:space-between;align-items:center;padding:.5rem 1rem;display:flex}.code-language{color:#ffffffb3;text-transform:uppercase;font-size:.75rem;font-weight:600}.copy-code-btn{color:#ffffffd9;cursor:pointer;background:#ffffff1a;border:1px solid #fff3;border-radius:4px;align-items:center;gap:.3rem;padding:.3rem .6rem;font-size:.75rem;display:flex}.copy-code-btn:hover{color:#fff;background:#ffffff2e;border-color:#ffffff59}.copy-code-btn.copied{color:#fff;background:#4caf50;border-color:#4caf50}.code-block-container pre{background:0 0;margin:0;padding:0;overflow-x:auto}.code-block-container code{padding:1rem;font-family:Hack,Fira Code,Consolas,Monaco,monospace;font-size:.9rem;line-height:1.5;display:block;overflow-x:auto}.code-block-container pre code.hljs{padding:1rem;display:block}.message-content code:not(pre code){background:var(--surface-code);color:#fff;word-break:break-word;border:1px solid #7285b74d;border-radius:4px;padding:.15em .4em;font-family:JetBrains Mono,Fira Code,monospace;font-size:.85em}.message-content strong{color:var(--text-primary);letter-spacing:.02em;font-weight:700}.message-content em{color:var(--text-secondary);font-style:italic}.message-content del{color:var(--text-secondary);opacity:.7;text-decoration:line-through}.message-content a{color:var(--accent-subtle);text-underline-offset:2px;-webkit-text-decoration:underline #a8c8ff66;text-decoration:underline #a8c8ff66}.message-content a:hover{color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.message-content hr{border:none;border-top:2px solid var(--accent);opacity:.6;margin:1.5rem 0}.render-error{color:var(--text-primary);white-space:pre-wrap;word-break:break-word;background:#ff453a1a;border:1px solid #ff453a4d;border-radius:8px;margin:.5rem 0;padding:.75rem}.preview-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;align-items:center;gap:.3rem;padding:.3rem .7rem;font-size:.8rem;font-weight:600;display:flex}.preview-btn:hover{background:#ff1493;transform:scale(1.02)}.preview-btn.active{background:#4caf50}.preview-btn svg{width:14px;height:14px}.message-content input[type=checkbox]{appearance:none;border:2px solid var(--text-secondary);cursor:pointer;vertical-align:middle;background:0 0;border-radius:3px;width:1em;height:1em;margin-right:.5em;position:relative}.message-content li.task-list-item:has(input:checked){opacity:.7}.message-content li.task-list-item:has(input:checked){color:var(--text-secondary);text-decoration:line-through}.message-content input[type=checkbox]{appearance:none;border:2px solid var(--border-normal);vertical-align:middle;cursor:pointer;background:var(--surface-subtle);border-radius:3px;width:1em;height:1em;margin-left:-1.5em;margin-right:.5em;position:relative}.message-content input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}.message-content input[type=checkbox]:checked:after{content:"✓";color:#fff;font-size:.8em;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.message-content input[type=checkbox]:checked+li,.message-content input[type=checkbox]:checked~*{opacity:.6;text-decoration:line-through}.message-content ul.contains-task-list{padding-left:1.5em;list-style:none}.message-content li.task-list-item{margin-left:0;list-style:none}.message-content blockquote{border-left:4px solid var(--accent);background:var(--surface-code);color:#ffffffd9;border-radius:4px;margin:.8rem 0;padding:.5rem 1rem;font-style:italic}.message-content blockquote blockquote{border-left-color:color-mix(in srgb, var(--accent) 70%, transparent);background:color-mix(in srgb, var(--surface-code) 95%, white);margin-left:1rem}.message-content blockquote blockquote blockquote{border-left-color:color-mix(in srgb, var(--accent) 50%, transparent);background:color-mix(in srgb, var(--surface-code) 90%, white)}.message-content blockquote blockquote blockquote blockquote{border-left-color:color-mix(in srgb, var(--accent) 30%, transparent);background:color-mix(in srgb, var(--surface-code) 85%, white)}.streaming-cursor{animation:blink 1s steps(1, end) var(--motion-repeat-loop);color:var(--accent);font-weight:700;display:inline-block}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.mermaid-diagram svg{height:auto;overflow-x:auto}.mermaid-error{color:#ff6464;background:#ff64641a;border:1px solid #ff64644d;border-radius:4px;padding:.5rem;font-family:monospace;font-size:.85rem}.mermaid-container pre.mermaid{background:0 0;margin:0;padding:1rem}.mermaid-diagram svg,.mermaid-container svg{max-width:100%;height:auto;overflow-x:auto}.mermaid-diagram{background:var(--surface-code);text-align:center;border-radius:8px;margin:1rem 0;padding:1rem;overflow-x:auto}.mermaid-container{background:var(--surface-code);border:1px solid #7285b74d;border-radius:8px;margin:1rem 0;overflow:hidden}.mermaid-header{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000040;border-bottom:1px solid #7285b74d;justify-content:space-between;align-items:center;padding:.5rem 1rem;display:flex}.mermaid-container pre.mermaid{background:0 0;margin:0;padding:1rem;overflow-x:auto}.mermaid-error{color:var(--status-danger);white-space:pre-wrap;word-break:break-word;background:#ff64641a;border:1px solid #ff64644d;border-radius:8px;margin:.5rem 0;padding:.75rem;font-family:Hack,Fira Code,monospace;font-size:.85rem}.copy-mermaid-btn{color:#ffffffd9;cursor:pointer;background:#ffffff1a;border:1px solid #fff3;border-radius:4px;align-items:center;gap:.3rem;padding:.3rem .6rem;font-size:.75rem;display:flex}.copy-mermaid-btn:hover{color:#fff;background:#ffffff2e;border-color:#ffffff59}.copy-mermaid-btn.copied{color:#fff;background:#4caf50;border-color:#4caf50}.mermaid-container.mermaid-placeholder{flex-direction:column;min-height:120px;display:flex}.mermaid-placeholder .code-block-header{background:#00000040;border-bottom:1px solid #7285b74d;justify-content:space-between;align-items:center;padding:.5rem 1rem;display:flex}.mermaid-placeholder .mermaid-status{color:var(--accent);opacity:.8;font-size:.75rem}.mermaid-placeholder-content{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1rem;padding:1.5rem;display:flex}.mermaid-loader{align-items:center;gap:.75rem;display:flex}.mermaid-loader-icon{width:32px;height:32px;color:var(--accent);animation:mermaidPulse 1.2s var(--motion-easing-standard) var(--motion-repeat-loop)}@keyframes mermaidPulse{0%,to{opacity:.4}50%{opacity:1}}.mermaid-loader-dots{display:none}.mermaid-placeholder-text{color:var(--text-muted);font-size:.85rem;font-style:italic}[data-theme=light] .mermaid-container.mermaid-placeholder{background:var(--surface-code)}[data-theme=light] .mermaid-placeholder .mermaid-status{color:var(--accent)}[data-theme=light] .mermaid-placeholder-text{color:var(--text-muted)}.system-action-block{background:0 0;border:none;border-radius:0;margin:8px 0;overflow:hidden}.command-block,.tool-result-block{border-left:none}.action-header{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;-webkit-user-select:none;user-select:none;background:#0003;align-items:center;padding:8px 12px;font-family:sans-serif;font-size:.8rem;font-weight:600;display:flex}.action-content{overflow-wrap:anywhere;word-break:break-word;color:var(--text-primary);padding:12px;font-size:.85rem;line-height:1.5}.code-font{font-family:JetBrains Mono,Fira Code,Consolas,Monaco,monospace}.message-content .katex-display{scrollbar-width:thin;scrollbar-color:var(--border-focus) transparent;margin:.5rem 0;padding:.8rem 0;overflow:auto hidden}.katex{color:inherit;font-size:1.1em}.katex-display::-webkit-scrollbar{height:6px}.katex-display::-webkit-scrollbar-track{background:0 0}.katex-display::-webkit-scrollbar-thumb{background:var(--border-focus);border-radius:10px}.katex-display::-webkit-scrollbar-thumb:hover{background:var(--accent)}.message-content .cognitive-block{background:0 0;border:0;margin:.5rem 0;padding:0}.message-content .cognitive-block summary{color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;align-items:center;gap:.4rem;padding:.35rem 0;font-size:.85rem;list-style:none;display:flex}.message-content .cognitive-block summary::-webkit-details-marker{display:none}.message-content .cognitive-block summary svg{transition:transform var(--transition-normal);flex-shrink:0}.message-content .cognitive-block[open] summary svg{transform:rotate(90deg)}.message-content .cognitive-block summary:hover{color:var(--text-primary);background:0 0}.message-content .cognitive-block[open] summary{border-bottom:0}.message-content .cognitive-block summary:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.message-content .cognitive-content{border-left:1px solid var(--border-subtle);color:var(--text-muted);white-space:pre-wrap;overflow-wrap:anywhere;scrollbar-width:thin;scrollbar-color:var(--border-focus) transparent;margin:.35rem 0 .75rem .4rem;padding:0 0 0 .8rem;font-family:inherit;font-size:.85rem;line-height:1.5}.message-content .cognitive-content::-webkit-scrollbar{width:5px}.message-content .cognitive-content::-webkit-scrollbar-track{background:0 0}.message-content .cognitive-content::-webkit-scrollbar-thumb{background:var(--border-focus);border-radius:10px}.message-content .cognitive-content::-webkit-scrollbar-thumb:hover{background:var(--border-focus)}.tool-card,details.tool-result,details.tool-call-indicator,details.weather-card,details.image-card{box-sizing:border-box;overflow-wrap:anywhere;word-break:break-word;width:min(100%,900px);min-width:0;max-width:100%;display:block}details.tool-call-indicator>summary{cursor:pointer;-webkit-user-select:none;user-select:none}.tool-result-content{margin-top:var(--space-2);padding:var(--space-2);overflow-wrap:anywhere;word-break:break-word;min-width:0;max-width:100%}.tool-result{width:min(100%,760px);margin:var(--space-2) 0}.tool-result__status{align-items:center;gap:var(--space-2);margin-bottom:var(--space-1);font-size:.78rem;font-weight:650;display:inline-flex}.tool-result-content{margin:0;padding:0}.memory-card{width:fit-content;max-width:100%;height:32px;min-height:32px;margin:var(--space-1) 0;padding:0 var(--space-2);border:1px solid var(--border-normal);border-radius:var(--radius-full,9999px);background:var(--surface-subtle);align-items:center;display:inline-flex;overflow:hidden}.memory-card__summary{justify-content:flex-start;align-items:center;gap:var(--space-2);min-height:30px;padding:0;display:inline-flex}.memory-card__details-trigger{flex:none}.memory-card__identity{align-items:center;gap:var(--space-1);font-size:.8rem;font-weight:600;display:inline-flex}.memory-card__mark{color:var(--status-success)}.memory-card--warning .memory-card__mark{color:var(--status-warning)}.memory-card--muted .memory-card__mark{color:var(--text-muted)}.memory-modal-overlay{z-index:10000}.memory-modal{background:var(--surface-raised,#161b22);border:1px solid var(--border-normal,#ffffff26);border-radius:var(--radius-md,8px);box-sizing:border-box;flex-direction:column;gap:12px;width:min(90vw,480px);max-width:480px;padding:16px;display:flex;box-shadow:0 12px 36px #0009}.memory-modal__body{flex-direction:column;gap:8px;padding-top:4px;display:flex}.memory-modal__section-title{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:.72rem;font-weight:700}.memory-modal__fact{color:var(--text-primary);white-space:pre-wrap;word-break:break-word;font-size:.92rem;line-height:1.5}.memory-modal__fact--error{color:var(--danger,#f87171)}.memory-modal__fact--empty{color:var(--text-muted);font-style:italic}.memory-modal__previous,.memory-modal__metadata{border-radius:var(--radius-sm,6px);background:var(--surface-subtle,#ffffff0a);border:1px solid var(--border-subtle,#ffffff14);margin-top:6px;padding:8px 10px;font-size:.85rem;line-height:1.45}.memory-modal__meta-label{color:var(--text-muted);margin-right:4px;font-weight:600}.memory-modal__previous-text{color:var(--text-secondary)}.memory-modal__meta-value{font-family:var(--font-mono,monospace);color:var(--text-secondary);font-size:.8rem}.tool-card--exec{border:1px solid var(--border-normal);border-radius:var(--radius-md);background:var(--surface-code);width:100%;margin:0;overflow:hidden}.tool-card--exec[open]{background:color-mix(in srgb, var(--surface-code) 96%, var(--surface))}.tool-card--exec>summary::-webkit-details-marker{display:none}.tool-card__header{align-items:center;gap:var(--space-2);overflow-wrap:normal;word-break:normal;min-width:0;max-width:100%;min-height:2.5rem;padding:var(--space-2) var(--space-3);cursor:pointer;-webkit-user-select:none;user-select:none;grid-template-columns:minmax(0,1fr) max-content;grid-template-areas:"identity toggle""meta meta";display:grid}.tool-card__header:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.tool-card__identity{align-items:center;gap:var(--space-2);grid-area:identity;min-width:max-content;display:inline-flex}.tool-card__title{font-weight:650;line-height:var(--line-height-tight);white-space:nowrap}.tool-card__meta-group{justify-content:flex-start;align-items:center;gap:var(--space-2);min-width:0;padding-top:var(--space-1);flex-wrap:wrap;grid-area:meta;display:flex}.tool-card__meta{color:var(--text-muted);font-size:.78rem;line-height:var(--line-height-tight);white-space:nowrap}.tool-card__meta.exec-exit-ok{color:var(--status-success)}.tool-card__meta.exec-exit-fail{color:var(--status-danger)}.tool-card__toggle{color:var(--text-muted);font-size:.75rem;line-height:var(--line-height-tight);white-space:nowrap;grid-area:toggle;justify-self:end}.tool-card__header:hover .tool-card__toggle,.tool-card__header:focus-visible .tool-card__toggle{color:var(--accent)}.tool-card__header:active .tool-card__toggle{color:var(--accent-active)}.tool-card--exec[open] .tool-card__toggle{font-size:0}.tool-card--exec[open] .tool-card__toggle:after{content:"Hide output";font-size:.75rem}.tool-card__body{padding:0 var(--space-3) var(--space-3);min-width:0;max-width:100%}.tool-card--exec:not([open]) .tool-card__body{display:none}.tool-card__command-line{padding:var(--space-2) 0;border-top:1px solid var(--border-normal);color:var(--text-secondary);font-family:var(--font-mono);white-space:pre-wrap;word-break:break-word;font-size:.8rem}.tool-card__command-line span{color:var(--accent)}.tool-card__pre{max-height:18rem;padding:var(--space-3);background:color-mix(in srgb, var(--surface-code) 82%, black);border-radius:var(--radius-sm);white-space:pre-wrap;word-break:break-word;margin:0;overflow:auto}.tool-card__pre:empty{display:none}.tool-card__pre code{font-family:var(--font-mono);font-size:.8rem;line-height:1.5}.tool-card__footer{gap:var(--space-3);min-width:0;padding-top:var(--space-2);color:var(--text-muted);flex-wrap:wrap;font-size:.72rem;display:flex}.tool-card__output-state{margin-left:auto}@media (width<=480px){.tool-card__header{gap:var(--space-1) var(--space-2);grid-template-columns:minmax(0,1fr) max-content}.tool-card__meta-group{gap:var(--space-1) var(--space-2)}}.tool-call-summary{align-items:center;gap:var(--space-1);margin:var(--space-1) 0;color:var(--text-muted);font-size:.78rem;display:inline-flex}.tool-call-summary--done{color:var(--status-success)}.tool-call-block{margin:var(--space-1) 0;border-left:2px solid var(--accent);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);background:color-mix(in srgb, var(--surface-code) 70%, transparent)}.tool-call-block--failed{border-left-color:var(--status-danger)}.tool-card__command{font-family:var(--font-mono);font-size:.72rem}.tool-card__command-line+.tool-card__pre{margin-top:var(--space-1)}.tool-card__output{min-width:0}.tool-card__output-toolbar{justify-content:space-between;align-items:center;gap:var(--space-2);min-width:0;padding:var(--space-1) 0;color:var(--text-muted);font-size:.72rem;display:flex}.tool-card__output-label{letter-spacing:.03em;text-transform:uppercase;font-weight:650}.tool-card__copy svg{width:.9rem;height:.9rem}.tool-card__copy{align-items:center;gap:var(--space-1);min-height:1.75rem;padding:0 var(--space-2);border:1px solid var(--border-normal);border-radius:var(--radius-sm);background:var(--surface-subtle);color:var(--text-secondary);font:inherit;cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);font-size:.72rem;display:inline-flex}.tool-card__copy:hover:not(:disabled){border-color:var(--accent);background:var(--surface-hover);color:var(--text-primary)}.tool-card__copy:active:not(:disabled){background:var(--accent-active);color:var(--text-inverse)}.tool-card__copy:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tool-card__copy:disabled{cursor:not-allowed;opacity:.55}.tool-card__copy.copied{border-color:var(--accent-support);background:var(--accent-support);color:var(--text-inverse)}.tool-card__stream{display:block}.tool-card__stream--stderr{color:var(--status-danger)}.tool-card__stream-label{font-weight:650}.weather-card{padding:var(--space-3);background:var(--surface-subtle);border:1px solid var(--border-normal);border-radius:var(--radius-md);margin:var(--space-2) 0;overflow-wrap:anywhere;word-break:break-word;min-width:0;max-width:100%}.weather-card__header,.weather-card__hero,.weather-card__metrics,.weather-card__forecast{align-items:center;display:flex}.weather-card__header,.weather-card__hero{flex-wrap:wrap;justify-content:space-between;gap:1em;min-width:0}.weather-card__title{overflow-wrap:anywhere;word-break:break-word;min-width:0;font-weight:650}.weather-card__condition,.weather-card__metric-label,.weather-card__day-rain{color:var(--text-muted);font-size:.8em}.weather-card__icon{font-size:2.2em;line-height:1}.weather-card__temp{font-size:1.8em;font-weight:650}.weather-card__metrics{gap:1em}.weather-card__metric{gap:.15em;display:grid}.weather-card__metric-value{font-size:.9em}.weather-card__forecast{gap:var(--space-2);margin-top:var(--space-3);align-items:stretch;overflow-x:auto}.weather-card__day{min-width:6.5em;padding:var(--space-2);border:1px solid var(--border-normal);border-radius:var(--radius-sm);text-align:center}.weather-card__day-name,.weather-card__day-temp{font-size:.8em}.weather-card__day-icon{margin:.25em 0;font-size:1.5em}.weather-card__skeleton{border-radius:var(--radius-sm);height:.75em;display:block}.weather-card__skeleton--location{width:9em;height:1em}.weather-card__skeleton--condition{width:6.5em;margin-top:.35em}.weather-card__skeleton--icon{border-radius:50%;width:1em;height:1em}.weather-card__skeleton--temp{width:2.5em;height:1em}.weather-card__skeleton--metric-label{width:4em;height:.65em}.weather-card__skeleton--metric-value{width:3.5em;height:.75em}.weather-card__skeleton--date,.weather-card__skeleton--range{width:4.5em;margin-inline:auto}.weather-card__skeleton--day-icon{border-radius:50%;width:1em;height:1em;margin-inline:auto}.weather-card__skeleton--rain{width:3.5em;height:.65em;margin-inline:auto}.image-card{margin:var(--space-2) 0;display:block}.image-card img{border-radius:6px;max-width:100%;height:auto}.image-card .image-meta{color:var(--text-muted);margin-top:.25em;font-size:.75em}.image-card__prompt,.image-card__prompt-toolbar,.image-card__prompt-code{min-width:0}.image-card__prompt{margin-bottom:var(--space-3);padding:var(--space-2);border:1px solid var(--border-normal);border-radius:var(--radius-sm);background:var(--surface-code)}.image-card__prompt-toolbar{justify-content:space-between;align-items:center;gap:var(--space-2);min-width:0;padding-bottom:var(--space-1);color:var(--text-muted);font-size:.72rem;display:flex}.image-card__prompt-label{letter-spacing:.03em;text-transform:uppercase;font-weight:650}.image-card__prompt-code{max-width:100%;max-height:10rem;padding:var(--space-2);background:color-mix(in srgb, var(--surface-code) 82%, black);border-radius:var(--radius-sm);white-space:pre-wrap;word-break:break-word;margin:0;overflow:auto}.image-card__prompt-code code{font-family:var(--font-mono);font-size:.8rem;line-height:1.5}.image-card__prompt-toolbar .tool-card__copy{flex:none}.image-card__actions{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.tool-card__media-action{align-items:center;gap:var(--space-1);min-height:1.75rem;padding:0 var(--space-2);border:1px solid var(--border-normal);border-radius:var(--radius-sm);background:var(--surface-subtle);color:var(--text-secondary);transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);font-size:.72rem;text-decoration:none;display:inline-flex}.tool-card__media-action:hover{border-color:var(--accent);background:var(--surface-hover);color:var(--text-primary)}.tool-card__media-action:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (width<=480px){.image-card__prompt-toolbar{flex-wrap:wrap;align-items:flex-start}}.tool-card--generic{width:100%;margin:var(--space-1) 0;overflow-wrap:anywhere;word-break:break-word;background:var(--surface-subtle);border:1px solid var(--border-normal);border-radius:var(--radius-md);min-width:0;max-width:100%;padding:0;display:block}details.tool-card--generic>summary{align-items:center;gap:var(--space-2);min-width:0;padding:var(--space-2) var(--space-3);cursor:pointer;list-style:none;display:flex}.tool-card--generic>summary::-webkit-details-marker{display:none}.tool-card--generic>summary:after{content:"⌄";color:var(--text-muted);margin-left:auto}.tool-card--generic[open]>summary{border-bottom:1px solid var(--border-normal)}.tool-card--generic[open]>summary:after{content:"⌃"}.tool-card--generic>summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.generic-card__header{font-weight:650}.generic-card__title,.generic-card__value,.generic-card__error,.generic-card__empty{overflow-wrap:anywhere;word-break:break-word;min-width:0;max-width:100%}.generic-card__row,.generic-card__error,.generic-card__empty{margin:var(--space-2) var(--space-3)}.generic-card__row+.generic-card__row{padding-top:var(--space-2);border-top:1px solid var(--border-subtle)}.generic-card__key{color:var(--text-muted);font-size:.78rem;font-weight:650}.generic-card__value{margin:var(--space-1) 0 0;white-space:pre-wrap}.generic-card__error{color:var(--status-danger);font-size:.85em}.tool-shimmer{background:var(--surface-raised);border:1px solid var(--border-normal);border-radius:var(--radius-md);padding:var(--space-3);margin:var(--space-2) 0;animation:tool-in var(--motion-normal) var(--motion-easing-emphasized) both}.tool-shimmer__header{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.tool-shimmer__icon{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--surface-hover) 25%, var(--surface-subtle) 50%, var(--surface-hover) 75%);width:20px;height:20px;animation:skeleton-shimmer 1.5s var(--motion-easing-standard) infinite;background-size:200% 100%}.tool-shimmer__label{color:var(--text-muted);font-size:.78rem;font-weight:600}.tool-shimmer__body{gap:var(--space-2);flex-direction:column;display:flex}.tool-shimmer__line{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--surface-hover) 25%, var(--surface-subtle) 50%, var(--surface-hover) 75%);height:12px;animation:skeleton-shimmer 1.5s var(--motion-easing-standard) infinite;background-size:200% 100%}.tool-shimmer__line--short{width:60%}.tool-shimmer__line--medium{width:80%}.tool-shimmer__line--long{width:100%}.tool-shimmer--image{aspect-ratio:16/9;justify-content:center;align-items:center;display:flex}.tool-shimmer--image .tool-shimmer__body{justify-content:center;align-items:center;width:100%;height:100%}.tool-shimmer--image .tool-shimmer__line{width:50%;height:16px}.tool-shimmer--weather{align-items:center;gap:var(--space-4);display:flex}.tool-shimmer--weather .tool-shimmer__icon{border-radius:var(--radius-lg);width:48px;height:48px}.tool-shimmer--weather .tool-shimmer__body{flex:1}.tool-shimmer--memory{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);width:fit-content;display:inline-flex}.tool-shimmer--memory .tool-shimmer__icon{width:16px;height:16px}.tool-shimmer--memory .tool-shimmer__line{width:80px;height:10px}.tool-status{align-items:center;gap:var(--space-1);color:var(--text-muted);font-size:.72rem;font-weight:500;display:inline-flex}.tool-status--working{color:var(--accent)}.tool-status--done{color:var(--status-success)}.tool-status--failed{color:var(--status-danger)}.tool-status__spinner{border:2px solid var(--border-normal);border-top-color:var(--accent);border-radius:50%;width:12px;height:12px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.tool-call-summary--done{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--status-success) 10%, transparent);color:var(--status-success);font-size:.78rem;font-weight:500;display:inline-flex}.tool-call-block--working{border-left-color:var(--accent);animation:tool-pulse 2s var(--motion-easing-standard) infinite}@keyframes tool-pulse{0%,to{border-left-color:var(--accent)}50%{border-left-color:color-mix(in srgb, var(--accent) 50%, transparent)}}.voice-btn{border-radius:var(--radius-sm);cursor:pointer;color:var(--text-muted);transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.voice-btn:hover{background:var(--surface-subtle);color:var(--text-primary)}.voice-btn--mic{width:32px;height:32px;padding:.35rem}.voice-btn--mic svg{flex-shrink:0}.voice-btn--recording{background:var(--status-danger);color:#fff;animation:mic-pulse 1.5s var(--motion-easing-standard) infinite}.voice-btn--recording:hover{background:var(--status-danger);color:#fff}@keyframes mic-pulse{0%,to{box-shadow:0 0 #ff6b6b66}50%{box-shadow:0 0 0 8px #ff6b6b00}}.voice-btn--speaker{padding:.35rem}.voice-btn--speaking{color:var(--accent);animation:speaker-pulse 1s var(--motion-easing-standard) infinite}@keyframes speaker-pulse{0%,to{opacity:1}50%{opacity:.6}}@media (width<=768px){.voice-btn--mic{width:28px;height:28px;padding:.25rem}.voice-btn--speaker{padding:.25rem}}
